Решение задачи на одномерный массив - Pascal ABC
Формулировка задачи:
Help
В одномерном массиве А(N) (N<=60) найти максимальный элемент. Все отрицательные элементы массива А умножить на этот элемент. Преобразованный массив распечатать.
Я попытался сделать, но ой как не уверен что хоть что-нибудь правильно.
Решение задачи: «Решение задачи на одномерный массив»
textual
Листинг программы
const nmax=60;
var a:array[1..nmax] of integer;
i,n,max:integer;
begin
repeat
write('n<=',nmax,', n = ');readln(n);
until (n>0)and(n<=nmax);
writeln('Исходный массив:');
randomize;
for i:=1 to n do
begin
a[i]:=-50+random(101);
write(a[i],' ')
end;
writeln;
Max:=a[1];
for i:=2 to n do if max<a[i] then max:=a[i];
writeln ('максимальный элемент в массиве=',Max);
writeln('Преобразованный массив:');
for i:=1 to n do
begin
if a[i]<0 then a[i]:=a[i]*max;
write(a[i],' ')
end
end.
Объяснение кода листинга программы
- Переменная nmax инициализируется значением 60.
- Создается переменная a типа array[1..nmax] of integer.
- Задаются три переменные: i, n и max.
- Запускается цикл repeat, который продолжается до тех пор, пока n больше или равно 0 и n меньше или равно nmax.
- В каждой итерации цикла выводится запрос на ввод значения n.
- После окончания цикла выводится сообщение об исходном массиве.
- Запускается цикл randomize, который генерирует случайное число в диапазоне от 0 до 100 для каждой итерации цикла.
- Запускается цикл for, который повторяется n раз.
- В каждой итерации цикла выводится значение a[i] с пробелом слева.
- Значение max инициализируется первым элементом массива a[1].
- Запускается еще один цикл for, который повторяется от 2 до n.
- Если max меньше a[i], то max присваивается значение a[i].
- После окончания второго цикла выводится сообщение о максимальном элементе в массиве.
- Выводится сообщение о преобразованном массиве.
- Запускается еще один цикл for, который повторяется от 1 до n.
- Если a[i] меньше 0, то a[i] умножается на max и присваивается обратно в a[i].
- После окончания третьего цикла выводится преобразованный массив.
- Программа завершается.