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