На место минимального элемента массива записать сумму последних К элементов - 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]
меньше нуля, то все элементы умножаются на квадрат максимального элемента. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д