Вычислить сумму отрицательных элементов массива - Free Pascal

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

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

В одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение элементов массива, расположенных между максимальным и минимальным элементами. 3) Упорядочить элементы массива по возрастанию. Оформить решения задачи с помощью процедур и/или функций (При решении задач не использовать глобальные переменные) Если есть альтруисты, помогите пожалуйста бедному студенту получить автомат))

Решение задачи: «Вычислить сумму отрицательных элементов массива»

textual
Листинг программы
  1. uses  Crt;
  2. type  Tmass=array[1..50] of Real;
  3. procedure P1(var aa:Tmass; an:integer);
  4. var   x,y:integer;
  5.       t:Real;
  6. begin
  7.       for x:=1 to an-1 do
  8.        for y:=1 to an-x do
  9.         if aa[y]>aa[y+1] then
  10.          begin
  11.            t:=aa[y];
  12.            aa[y]:=aa[y+1];
  13.            aa[y+1]:=t;
  14.          end;
  15. end;
  16. var   a:Tmass;
  17.       sum,min,max,pr:Real;
  18.       n,i,mini,maxi:integer;
  19. begin
  20.       ClrScr;
  21.       repeat
  22.          Write('Razmer massiva = '); Readln(n);
  23.       until (n>0) and (n<51);
  24.       Writeln; Randomize;
  25.       Writeln('Massiv A:'); Writeln;
  26.       min:=MaxInt/10; max:=-MaxInt/10;
  27.       sum:=0; mini:=0; maxi:=0; pr:=1;
  28.       for i:=1 to n do
  29.        begin
  30.          a[i]:=(Random(100)-50)/10;
  31.          Write(a[i]:6:1);
  32.          if a[i]<0
  33.           then sum:=sum+a[i];
  34.          if a[i]>max then
  35.           begin
  36.             max:=a[i];
  37.             maxi:=i;
  38.           end;
  39.          if a[i]<min then
  40.           begin
  41.             min:=a[i];
  42.             mini:=i;
  43.           end;
  44.        end;
  45.       Writeln; Writeln;
  46.       if maxi>mini
  47.        then
  48.         for i:=mini+1 to maxi-1 do
  49.          pr:=pr*a[i]
  50.        else
  51.         for i:=maxi+1 to mini-1 do
  52.          pr:=pr*a[i];
  53.       Writeln('Summa otricatelnih = ',sum:1:1);
  54.       Writeln('Proizvedenie mezhdu min i max = ',pr:1:1); Writeln;
  55.       Writeln('Sortirovanniy massiv A:'); Writeln;
  56.       P1(a,n);
  57.       for i:=1 to n do
  58.        Write(a[i]:6:1);
  59.       ReadKey;
  60. end.

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

Список действий в коде:

  1. Включается заголовочный файл Crt, который содержит функции для работы с консолью.
  2. Определяется тип массива Tmass, который представляет собой массив из 50 действительных чисел.
  3. Определяется процедура P1, которая принимает массив и количество элементов для сортировки. Внутри процедуры используется два вложенных цикла для выбора наибольшего элемента и его перемещения в нужную позицию.
  4. Определяются переменные a, sum, min, max, pr, n, i, mini, maxi типа Real и integer.
  5. Пользователю предлагается ввести количество элементов для создания массива от 1 до 50.
  6. Создается массив a размером n и заполняется случайными числами от -50 до 50.
  7. Инициализируются переменные min и max значением максимального и минимального целых чисел соответственно.
  8. Переменная sum инициализируется нулем и используется для хранения суммы отрицательных чисел.
  9. Переменная pr инициализируется единицей и используется для хранения произведения положительных чисел.
  10. Используя цикл, в массив добавляются случайные числа, и если число отрицательное, то к сумме sum прибавляется это число.
  11. Если текущее число больше max, то max заменяется на это число, а maxi на текущий индекс.
  12. Если текущее число меньше min, то min заменяется на это число, а mini на текущий индекс.
  13. После заполнения массива выводится на экран, а также выводится сумма отрицательных чисел и произведение положительных чисел.
  14. Используя цикл, массив a сортируется по возрастанию с помощью процедуры P1.
  15. Выводится отсортированный массив a.
  16. Программа ожидает нажатия клавиши для завершения работы.

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


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

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

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

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

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

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