Удалить первый отрицательный элемент - Pascal ABC
Формулировка задачи:
Заполнить массив из 10 элементов случайными числами в интервале [-50;50]. Вывести массив на экран. Удалить первый отрицательный элемент. Вывести на экран в строку получившийся массив.
Решение задачи: «Удалить первый отрицательный элемент»
textual
Листинг программы
var a:array[1..10] of integer;
n,i,p:integer;
begin
randomize;
n:=10;
writeln('Исходный массив');
for i:=1 to n do
begin
a[i]:=-50+random(101);
write(a[i]:4);
end;
writeln;
p:=0;
i:=1;
while (i<=n)and(p=0) do
if a[i]<0 then p:=i else inc(i);
if p=0 then write('В массиве нет отрицательных элементов')
else
begin
if p=n then n:=n-1
else
begin
for i:=p to n-1 do
a[i]:=a[i+1];
n:=n-1;
end;
writeln('Удаление первого отрицательного');
for i:=1 to n do
write(a[i]:4);
end;
end.
Объяснение кода листинга программы
- Создается переменная
aтипаarray[1..10] of integer. Это означает, что создается массив из 10 целых чисел. - Задаются три переменные:
n,iиp. Переменнаяnустанавливается равной 10, а переменныеiиpинициализируются нулевыми значениями. - Выводится сообщение
Исходный массив. - Запускается цикл
for i:=1 to n do, который выполняется 10 раз (отiот 1 доn). - Внутри цикла генерируется случайное число в диапазоне от 0 до 100 с помощью функции
random(101). Это число присваивается переменнойa[i]. - Выводится значение
a[i]с помощью функцииwrite(a[i]:4), где4- это количество знаков после запятой. - После завершения внутреннего цикла выводится символ новой строки (
writeln). - Задается переменная
pравной 0. - Запускается внешний цикл
while (i<=n)and(p=0) do, который будет выполняться до тех пор, пока значение переменнойiменьше или равно значению переменнойnи значение переменнойpравно 0. - Если условие истинно, то значение переменной
pустанавливается равным значению переменнойi. Если условие ложно, то значение переменнойiувеличивается на 1. - После завершения внешнего цикла выводится сообщение
В массиве нет отрицательных элементов, если значение переменнойpравно 0. - Если значение переменной
pравноn, то значение переменнойnуменьшается на 1. - Если значение переменной
pне равноn, то выполняется блок кода, который перебирает индексы отpдоn-1и присваивает значениеa[i]значениюa[i+1]. Затем значение переменнойnуменьшается на 1. - После завершения внутреннего цикла выводится сообщение
Удаление первого отрицательного. - Выводится значение каждого элемента массива
aс помощью функцииwrite(a[i]:4), гдеi- это индекс элемента. - Конец программы.