Как вывести элементы массива в обратном порядке без введения второго цикла ? - Turbo Pascal
Формулировка задачи:
- Program Massiv2;
- uses Crt;
- const N = 10;
- var A: array [1..N] of integer;
- begin
- ClrScr;
- writeln(‘ Введённый массив:’);
- for i:= 1 to N do begin
- A[i]:=Random;
- write(A[i]:4);
- end;
- writeln;
- for i:= N downto 1 do
- write(A[i]:4);
- readln
- end.
- 0 3 86 20 27 67 31 16 37 42
- 42 37 16 31 67 27 20 86 3 0
Решение задачи: «Как вывести элементы массива в обратном порядке без введения второго цикла ?»
- program test;
- const
- N = 10;
- type
- TArray = array [1..N] of integer;
- procedure FillAndShowArray(var A: TArray);
- procedure recurse(i: integer);
- begin
- if i > N then
- begin
- writeln;
- exit;
- end;
- A[i] := i;
- Write(A[i]: 4);
- recurse(i + 1);
- Write(A[i]: 4);
- end;
- begin
- recurse(1);
- writeln;
- end;
- var
- A: TArray;
- begin
- FillAndShowArray(A);
- end.
Объяснение кода листинга программы
В данном коде объявлен тип данных TArray
, представляющий собой массив целых чисел размером до 10 элементов. Также определен процедурный модуль FillAndShowArray
, который заполняет массив случайными числами и выводит его элементы в обратном порядке.
Внутри процедуры FillAndShowArray
используется рекурсивный алгоритм, который начинает с индекса 1 и последовательно заполняет элементы массива A
значениями i
, затем выводит их на экран. Если индекс i
превышает размер массива N
, то выводится пустая строка и рекурсия прекращается.
Процедура recurse
является вспомогательной для FillAndShowArray
. Она вызывает саму себя с увеличенным на 1 индексом i
, пока i
меньше или равно N
. После каждого вызова recurse
значение i
увеличивается на единицу, а также выводится на экран соответствующий элемент массива A
.
В основной части кода вызывается процедура FillAndShowArray
для заполнения и вывода массива A
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д