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