Вычислить сумму отрицательных элементов массива - 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.
Объяснение кода листинга программы
Список действий в коде:
- Включается заголовочный файл Crt, который содержит функции для работы с консолью.
- Определяется тип массива Tmass, который представляет собой массив из 50 действительных чисел.
- Определяется процедура P1, которая принимает массив и количество элементов для сортировки. Внутри процедуры используется два вложенных цикла для выбора наибольшего элемента и его перемещения в нужную позицию.
- Определяются переменные a, sum, min, max, pr, n, i, mini, maxi типа Real и integer.
- Пользователю предлагается ввести количество элементов для создания массива от 1 до 50.
- Создается массив a размером n и заполняется случайными числами от -50 до 50.
- Инициализируются переменные min и max значением максимального и минимального целых чисел соответственно.
- Переменная sum инициализируется нулем и используется для хранения суммы отрицательных чисел.
- Переменная pr инициализируется единицей и используется для хранения произведения положительных чисел.
- Используя цикл, в массив добавляются случайные числа, и если число отрицательное, то к сумме sum прибавляется это число.
- Если текущее число больше max, то max заменяется на это число, а maxi на текущий индекс.
- Если текущее число меньше min, то min заменяется на это число, а mini на текущий индекс.
- После заполнения массива выводится на экран, а также выводится сумма отрицательных чисел и произведение положительных чисел.
- Используя цикл, массив a сортируется по возрастанию с помощью процедуры P1.
- Выводится отсортированный массив a.
- Программа ожидает нажатия клавиши для завершения работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д