В векторе (одномерном массиве) найти: разность первого положительного и последнего отрицательного элемента - Pascal
Формулировка задачи:
В заданном векторе (одномерном массиве) найти: разность первого положительного и
последнего отрицательного элемента
Решение задачи: «В векторе (одномерном массиве) найти: разность первого положительного и последнего отрицательного элемента»
textual
Листинг программы
const
n = 10;
var
kn, kp, i: integer;
a: array[1..n] of integer;
begin
randomize;
kp := 0;
kn := 0;
for i := 1 to n do
begin
a[i] := -n div 2 + random(n);
write(a[i]:5);
end;
for i := 1 to n do
begin
if a[i] > 0 then
begin
kp := i;
break;
end;
end;
writeln;
for i := n downto 1 do
if a[i] < 0 then
begin
kn := i;
break;
end;
if (kp <> 0) and (kn <> 0) then
writeln(a[kp] - a[kn])
else
writeln('Вообще нет или положительных или отрицательных');
end.
Объяснение кода листинга программы
- Объявляется константа
nсо значением 10. - Объявляются переменные:
kn, kp, iтипа integer и массивaразмеромnэлементов. - Генерируется случайное начальное значение для генератора случайных чисел.
- Происходит заполнение массива
aслучайными значениями от-n div 2доn. - Значения массива
aвыводятся в консоль. - Находится индекс первого положительного элемента массива
aи сохраняется в переменнойkp. - Выводится массив
aв консоль. - Находится индекс последнего отрицательного элемента массива
aи сохраняется в переменнойkn. - В случае, если найдены и положительное, и отрицательное число, выводится их разность. Иначе выводится сообщение
Вообще нет или положительных или отрицательных.