На место минимального элемента массива записать сумму последних К элементов - Pascal ABC
Формулировка задачи:
Задан одномерный массив А(N) (N<=60). На место минимального элемента массива записать сумму последних К элементов массива. Если А[1]>=0, то умножить все элементы этого массива на квадрат минимального элемента данного вектора, а если А[1]<0, то умножить все элементы на квадрат максимального элемента вектора. Полученный массив распечатать. Значение К вводится пользователем.
Решение задачи: «На место минимального элемента массива записать сумму последних К элементов»
textual
Листинг программы
{Задан одномерный массив А(N) (N<=60). На место минимального элемента
массива записать сумму последних К элементов массива. Если А[1]>=0,
то умножить все элементы этого массива на квадрат минимального
элемента данного вектора, а если А[1]<0, то умножить все элементы на
квадрат максимального элемента вектора. Полученный массив распечатать.
Значение К вводится пользователем.}
const
n=60;
var
i,k,sum,imin,min,max:integer;
a:array[1..n] of integer;
begin
writeln('Исходный массив: ');
for i:=1 to n do
begin
a[i]:=random(n) - n div 2;
write(a[i],' ');
end;
min:=a[1]; max:=a[1];
for i:=1 to n do
begin
if a[i]>max then
max:=a[i];
if a[i]<min then
begin
min:=a[i];
imin:=i;
end;
end;
writeln;
writeln('Max: ',max);
writeln('Min: ',min,' в позиции: ',imin);
write('Введите число К: '); readln(k);
sum:=0;
for i:=n-k+1 to n do
sum:=sum+a[i];
writeln('Сумма последних К элементов: ',sum);
a[imin]:=sum;
writeln('Измененный массив с заменой минимума: ');
for i:=1 to n do
write(a[i],' ');
writeln;
if a[1]>=0 then
for i:=1 to n do
a[i]:=a[i]*sqr(min)
else
for i:=1 to n do
a[i]:=a[i]*sqr(max);
writeln('Измененный массив: ');
for i:=1 to n do
write(a[i],' ');
readln;
end.
Объяснение кода листинга программы
- Создается переменная
nсо значением 60. Это будет размер массива. - Создается переменная
aтипаarray[1..n] of integer. Это массив для хранения чисел. - В цикле
forзаполняются элементы массива случайными числами от -30 до 30. - Минимальное и максимальное значения в массиве определяются как первый и последний элементы соответственно.
- Затем происходит поиск индекса первого минимального элемента. Если он находится в первой позиции, то это минимальный элемент, и его значение присваивается переменной
min. Если же он находится в другой позиции, то это максимальный элемент, и его значение присваивается переменнойmax. - После этого происходит поиск индекса следующего минимального элемента, начиная с позиции
n-k+1и до конца массива. Если найден, то его значение добавляется к суммеsum. - Значение
sumприсваивается переменнойmin, которая теперь содержит сумму последнихkэлементов. - В конце кода выводится измененный массив с заменой минимального элемента на значение
sum. - Если
a[1]больше или равно нулю, то все элементы массива умножаются на квадрат минимального элемента. Если жеa[1]меньше нуля, то все элементы умножаются на квадрат максимального элемента. - Конец программы.