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

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

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

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

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

textual
Листинг программы
uses  Crt;
type  Tmass=array[1..50] of Real;
procedure P1(var aa:Tmass; an:integer);
var   x,y:integer;
      t:Real;
begin
      for x:=1 to an-1 do
       for y:=1 to an-x do
        if aa[y]>aa[y+1] then
         begin
           t:=aa[y];
           aa[y]:=aa[y+1];
           aa[y+1]:=t;
         end;
end;
var   a:Tmass;
      sum,min,max,pr:Real;
      n,i,mini,maxi:integer;
begin
      ClrScr;
      repeat
         Write('Razmer massiva = '); Readln(n);
      until (n>0) and (n<51);
      Writeln; Randomize;
      Writeln('Massiv A:'); Writeln;
      min:=MaxInt/10; max:=-MaxInt/10;
      sum:=0; mini:=0; maxi:=0; pr:=1;
      for i:=1 to n do
       begin
         a[i]:=(Random(100)-50)/10;
         Write(a[i]:6:1);
         if a[i]<0
          then sum:=sum+a[i];
         if a[i]>max then
          begin
            max:=a[i];
            maxi:=i;
          end;
         if a[i]<min then
          begin
            min:=a[i];
            mini:=i;
          end;
       end;
      Writeln; Writeln;
      if maxi>mini
       then
        for i:=mini+1 to maxi-1 do
         pr:=pr*a[i]
       else
        for i:=maxi+1 to mini-1 do
         pr:=pr*a[i];
      Writeln('Summa otricatelnih = ',sum:1:1);
      Writeln('Proizvedenie mezhdu min i max = ',pr:1:1); Writeln;
      Writeln('Sortirovanniy massiv A:'); Writeln;
      P1(a,n);
      for i:=1 to n do
       Write(a[i]:6:1);
      ReadKey;
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
Похожие ответы