Заменить каждый из членов последовательности остатком от деления его квадрата на заданное число - Turbo Pascal
Формулировка задачи:
Даны натуральное число n, целые числа a1, ...,a39. В последовательности a1, ...,a39 заменить каждый из членов остатком от деления его квадрата на n.
Решение задачи: «Заменить каждый из членов последовательности остатком от деления его квадрата на заданное число»
textual
Листинг программы
const n=39;
var
a:array[1..n] of integer;
i,j,k:integer;
s:real;
begin
randomize;
j:=0;
writeln('A:');
for i:=1 to n do begin
a[i]:=random(100);
write(a[i]:6);
j:=j+1;
if j mod 5 =0 then writeln;
end;
writeln;
j:=0;
write('n=');readln(k);
writeln('A_new:');
for i:=1 to n do begin
a[i]:=sqr(a[i]) mod k;
write(a[i]:6);
j:=j+1;
if j mod 5 =0 then writeln;
end;
readln;
end.
Объяснение кода листинга программы
- В первой части кода используется переменная
nдля хранения значения 39, которое является верхним пределом для массиваa. - Создается переменная
a, которая представляет собой массив целых чисел размером от 1 доn. - Затем определяются три переменные
i,jиk, которые будут использоваться в цикле. - Вычисляется значение переменной
sкак случайное число от 0 до 100. - Запускается цикл, который начинается с индекса 1 и продолжается до
n. Внутри цикла присваивается значениеa[i]случайному числу из диапазона от 0 до 100 и выводится на экран. Также увеличивается значение переменнойjна единицу, если текущий индекс делится на 5 без остатка. - После завершения внутреннего цикла выводится символ новой строки.
- Затем считывается значение переменной
kс помощью функцииreadln. - Запускается новый цикл, который повторяется, пока значение переменной
jне станет равным нулю. - Внутри нового цикла вычисляется значение каждого элемента массива
aкак квадрат числа, соответствующего текущему элементу, и берется остаток от деления этого значения наk. - Выводимое значение выравнивается по правому краю, чтобы показать только последние цифры.
- Когда цикл завершается, программа заканчивается и выводится символ новой строки.