Для перевода десятичного числа в шестнадцатиричное надо делить его на 16, выписывая остатки до тех пор, пока не получим в результате число, меньшее 16. затем записать этот результат и приписать к нему остатки в обратном порядке. в нашем случае результат 3 и остаток 9, поэтому получаем 39. для перехода от шестнадцатиричного числа к двоичному надо каждую его цифру записать в виде четырех двоичных разрядов (тетрады). в старшей тетраде ведущие нули можно не писать. чтобы получить восьмеричное число из двоичного, достаточно разбить его разряды справа налево на триады (т.е. по три разряда) и заменить каждую триаду соответствующей восьмеричной цифрой. тут нужно пронумеровать разряды числа справа налево, начиная с нуля, а затем на местах единиц записать числа, равные двойкам в степени, с полученным номером разряда и полученные результаты сложить здесь принцип тот же, что и в предыдущем примере, только используются степени восьми, а не двух, поскольку основание системы восемь, а не два. и нужно не просто выписывать степени восьмерки, а умножать их значения на числа, стоящие в соответствующих разрядах. нулевые разряды, если бы они были, можно также не принимать в расчет. и здесь принцип, как в предыдущем примере, только берутся степени числа 16, как основания шестнадцатиричной системы похожее мы уже делала в первом примере, когда переходили от восьмеричного числа в шестнадцатиричному. тут - наоборот. каждую восьмеричную цифру заменяем двоичной триадой, потом разбиваем полученное двоичное число справа налево на тетрады и каждую тетраду заменяем соответствующей шестнадцатиричной цифрой.
bezzfamilny631
01.01.2022
Var y, x, a, xn, xk, dx, sum, multiplnegative: real; countnegative: integer; j, m, f: real; begin write('a --> '); read(a); write(' xn --> '); read(xn); write(' xk --> '); read(xk); write(' dx --> '); read(dx); sum : = 0; multiplnegative : = 1; countnegative : = 0; x : = xn; while (x < = xk) do begin if (a + x < 0) then begin f : = (a + x) * -1; f : = ln(f) * (-1); j : = round(abs(a - sqr(x)) * f * 100000) / 100000; end else j : = round(abs(a - sqr(x)) * ln(a + x) * 100000) / 100000; m : = power(sqr(x), 1 / 3) + power(a, 1 / 5); if j < 0 then begin j : = j * (-1); j : = power(j, 1 / 3); j : = j * (-1); end else j : = power(j, 1 / 3); y : = round(j / m * 100000) / 100000; write('x= ', x: 5: 3, ' '); writeln('y= ', y: 7: 5); if y < 0 then begin sum : = sum + y; multiplnegative : = multiplnegative * y; inc(countnegative); end; x : = x + dx; end; writeln; writeln(' y = ', countnegative); writeln('y = ', sum: 7: 5); writeln(' y = ', multiplnegative: 7: 5); readln; end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Добрый день. как в паскале чертежник написать программу, чтобы нарисовать цифры 1, 2, 3, 4, 5