Вставить число X после последнего положительного элемента массива B из n элементов - Free Pascal
Формулировка задачи:
Вставить число X после последнего положительного элемента массива B из n элементов(n<=20)
Решение задачи: «Вставить число X после последнего положительного элемента массива B из n элементов»
textual
Листинг программы
var
ar: Array Of Single;
x: Single;
i, n: Byte;
found: Boolean;
begin
repeat
Write('Input array length: ');
ReadLn(n);
until (n in [1..20]);
SetLength(ar, n + 1);
Randomize();
Write('Original array:');
for i := 0 to n - 1 do
begin
ar[i] := Random * 50 - 25;
Write(' ', ar[i]:0:3);
end;
WriteLn;
Write('Input x: '); ReadLn(x);
i := n - 1;
repeat
found := (ar[i] > 0);
if (found)
then
ar[i + 1] := x
else
begin
ar[i + 1] := ar[i];
Dec(i);
end;
until ((i = 0) Or (found));
if (Not found)
then
Write('No one positive!')
else
begin
Write('Modified array:');
for i := 0 to n do
Write(' ', ar[i]:0:3);
end;
end.
Объяснение кода листинга программы
- Объявлены переменные: — ar: Array Of Single (массив из single, размер не указан); — x: Single (число типа single); — i, n: Byte (целые числа типа byte); — found: Boolean (флаг типа boolean).
- Входим в цикл повторения, пока n не будет в диапазоне от 1 до 20.
- Устанавливаем размер массива ar равным n+1.
- Инициализируем генератор случайных чисел.
- Выводим исходный массив на экран.
- Считываем число x с помощью функции ReadLn.
- Устанавливаем i равным n-1.
- Входим во внутренний цикл, пока не найдем положительный элемент или i не станет равным 0.
- Проверяем, является ли элемент ar[i] положительным.
- Если элемент положительный, то присваиваем значение x элементу ar[i+1].
- Если элемент отрицательный, то присваиваем ему значение ar[i].
- Уменьшаем i на 1.
- Повторяем шаги 9-12 до тех пор, пока не найдем положительный элемент или i не станет равным 0.
- Если положительный элемент не найден, выводим сообщение
No one positive!. - Если положительный элемент найден, выводим измененный массив на экран.