Напишите программу, преобразует массив по следующему правилу (через x' обозначены элементы массива x после пре - Pascal ABC
Формулировка задачи:
преобразует массив по следующему правилу (через x' обозначены элементы массива x после преобразования):
x'[k]=max x[i] при 1≤i≤k, k=1..n
Решение задачи: «Напишите программу, преобразует массив по следующему правилу (через x' обозначены элементы массива x после пре»
textual
Листинг программы
uses crt;
var x:array[1..100] of real;
n,i,k:integer;
mx:real;
begin
write('Введите размер массива от 2 др 100 n=');
readln(n);
randomize;
writeln('Исходный массив');
for i:=1 to n do
begin
x[i]:=9*random;
write(x[i]:5:2);
end;
writeln;
writeln('Преобразованный массив');
mx:=x[1];
for k:=1 to n do
begin
for i:=1 to k do
if x[i]>mx then mx:=x[i];
x[k]:=mx;
write(x[k]:5:2);
end;
end.
Объяснение кода листинга программы
- Программа начинается с объявления переменных: n, i, k - целые числа, и x - массив размером от 1 до 100 элементов типа real.
- Пользователю предлагается ввести размер массива от 2 до 100.
- Используется функция randomize для инициализации генератора случайных чисел.
- Выводится сообщение «Исходный массив».
- Запускается цикл for, который выполняется n раз. В каждой итерации создается новый элемент массива x[i] и присваивается ему значение 9*random, где random - случайное число, сгенерированное функцией randomize.
- Выводится значение каждого элемента массива x[i].
- Выводится сообщение «Преобразованный массив».
- Создается переменная mx и присваивается ей первое значение из массива x.
- Запускается еще один цикл for, который также выполняется n раз.
- В каждой итерации проверяется, какой элемент из массива x имеет наибольшее значение. Если это так, то значение этого элемента присваивается переменной mx.
- После завершения внутреннего цикла выводится значение переменной mx.
- Программа завершается.