На место минимального элемента массива записать сумму последних К элементов - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Задан одномерный массив А(N) (N<=60). На место минимального элемента массива записать сумму последних К элементов массива. Если А[1]>=0, то умножить все элементы этого массива на квадрат минимального элемента данного вектора, а если А[1]<0, то умножить все элементы на квадрат максимального элемента вектора. Полученный массив распечатать. Значение К вводится пользователем.

Решение задачи: «На место минимального элемента массива записать сумму последних К элементов»

textual
Листинг программы
  1. {Задан одномерный массив А(N) (N<=60). На место минимального элемента
  2. массива записать сумму последних К элементов массива. Если А[1]>=0,
  3. то умножить все элементы этого массива на квадрат минимального
  4. элемента данного вектора, а если А[1]<0, то умножить все элементы на
  5. квадрат максимального элемента вектора. Полученный массив распечатать.
  6. Значение К вводится пользователем.}
  7. const
  8.   n=60;
  9. var
  10.   i,k,sum,imin,min,max:integer;
  11.   a:array[1..n] of integer;
  12. begin
  13.   writeln('Исходный массив: ');
  14.   for i:=1 to n do
  15.     begin
  16.       a[i]:=random(n) - n div 2;
  17.       write(a[i],' ');
  18.     end;
  19.   min:=a[1]; max:=a[1];
  20.   for i:=1 to n do
  21.     begin
  22.       if a[i]>max then
  23.         max:=a[i];
  24.       if a[i]<min then
  25.         begin
  26.           min:=a[i];
  27.           imin:=i;
  28.         end;
  29.     end;
  30.   writeln;
  31.   writeln('Max: ',max);
  32.   writeln('Min: ',min,' в позиции: ',imin);
  33.   write('Введите число К: ');  readln(k);
  34.   sum:=0;
  35.   for i:=n-k+1 to n do
  36.     sum:=sum+a[i];
  37.   writeln('Сумма последних К элементов: ',sum);
  38.   a[imin]:=sum;
  39.   writeln('Измененный массив с заменой минимума: ');
  40.   for i:=1 to n do
  41.       write(a[i],' ');
  42.   writeln;
  43.   if a[1]>=0 then
  44.     for i:=1 to n do
  45.       a[i]:=a[i]*sqr(min)
  46.   else
  47.     for i:=1 to n do
  48.       a[i]:=a[i]*sqr(max);
  49.   writeln('Измененный массив: ');
  50.   for i:=1 to n do
  51.       write(a[i],' ');
  52.   readln;
  53. end.

Объяснение кода листинга программы

  1. Создается переменная n со значением 60. Это будет размер массива.
  2. Создается переменная a типа array[1..n] of integer. Это массив для хранения чисел.
  3. В цикле for заполняются элементы массива случайными числами от -30 до 30.
  4. Минимальное и максимальное значения в массиве определяются как первый и последний элементы соответственно.
  5. Затем происходит поиск индекса первого минимального элемента. Если он находится в первой позиции, то это минимальный элемент, и его значение присваивается переменной min. Если же он находится в другой позиции, то это максимальный элемент, и его значение присваивается переменной max.
  6. После этого происходит поиск индекса следующего минимального элемента, начиная с позиции n-k+1 и до конца массива. Если найден, то его значение добавляется к сумме sum.
  7. Значение sum присваивается переменной min, которая теперь содержит сумму последних k элементов.
  8. В конце кода выводится измененный массив с заменой минимального элемента на значение sum.
  9. Если a[1] больше или равно нулю, то все элементы массива умножаются на квадрат минимального элемента. Если же a[1] меньше нуля, то все элементы умножаются на квадрат максимального элемента.
  10. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы