Сумма минимального и последнего отрицательного элементов массива - PascalABC.NET
Формулировка задачи:
Обработка линейного массива.
Протестировать программу (2-3 набора тестов). Найти сумму минимального и последнего отрицательного элемента.
Если отрицательных элементов нет, сообщить об этом.
Решение задачи: «Сумма минимального и последнего отрицательного элементов массива»
textual
Листинг программы
const nmax=100;
var a,a1:array[1..nmax] of integer;
n,i,mn,op,s,k:integer;
begin
randomize;
repeat
write('Размер массива от 3 до ',nmax,' n=');
readln(n);
until n in [3..nmax];
writeln('Массив A');
k:=0;
for i:=1 to n do
begin
a[i]:=-25+random(51);
write(a[i]:4);
if i=1 then mn:=a[1]
else if a[i]<mn then mn:=a[i];
if a[i]<0 then
begin
k:=1;
op:=a[i];
end;
end;
writeln;
writeln('Минимальный элемент=',mn);
if k=0 then write('В массиве нет отрицательных элементов')
else
begin
writeln('Последний отрицательный элемент=',op);
s:=mn+op;
write('Их сумма=',s);
end;
end.
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные:
- n, i, mn, op, s, k - целочисленные переменные для размера массива, цикла, минимального элемента, последнего отрицательного элемента и суммы соответственно.
- Инициализируется генератор случайных чисел.
- Пользователю предлагается ввести размер массива от 3 до 100.
- В цикле формируется массив a.
- В первой итерации цикла присваивается значение mn элементу a[1].
- Если mn не равно a[i], то присваивается новое значение mn.
- Если a[i] отрицательное, то присваиваются значения k, op.
- После цикла выводится mn.
- Если k=0, то выводится сообщение о отсутствии отрицательных чисел в массиве.
- Если k=1, то выводится сообщение с op и вычисляется s.
- Код повторяется, пока не будет введен корректный размер массива.