var
a: array[1..1000] of real;
i, k, n, z: integer;
begin
writeln('введите число n: ');
readln(n);
writeln('введите число z: ');
readln(z);
writeln('введите ',n,' действительных чисел (каждое с новой строки): ');
for i : = 1 to n do
begin
readln(a[i]);
if a[i] > z then
begin
a[i] : = z;
k : = k + 1;
end;
end;
writeln('количество замен: ', k);
end.
Поделитесь своими знаниями, ответьте на вопрос:
Составить рекурсивную функцию, которая находит k-е число последовательности, описанной в для самостоятельной работы 3 (к тематическому занятию 3), значение k задается пользователем. учесть ограничения, накладываемые диапазоном возможных значений используемого типа данных. вывести на экран таблицу трассировки значений переменных, используемых для рекурсивных вычислений. обязательные поля таблицы: текущий уровень рекурсии, значения на рекурсивном спуске, значения на рекурсивном возврате.
Предлагаемое в условии число представляет собой десятичную дробь, т.е. имеет целую и дробную части. Для целой части незначащими будут левые нули и мы будем искать их в первой тетраде. Для дробной части незначащие нули - последние и мы будем их искать в последней тетраде.
Первая тетрада - представление 1(16)=0001(2). Левые три нуля незначащие и их удаляем, остается 1. Последняя тетрада - представление Е(16)=1110(2). Тут один незначащий ноль - правый, остается 111.. Остальные тетрады переписываем без изменения.
12АС,6Е(16)=1 0010 1010 1100 , 0110 111 (2)
Считаем количество нулей в записи: 9. Это и есть ответ.
Комментарии Отметить нарушение