Ребят, кто шарит в проге, это не школьный курс, помогите, плизз

[email protected] в категроии Информатика, вопрос открыт 14.02.2018 в 18:56


Дан массив ненулевых целых чисел из N элементов. Используя рекурсию, напечатать сначала все отрицательные, а потом – все положительные числа этой последовательности. Реализовать в одной функции, которая вызывается один раз.

1 ответ

matsurio , ответ добавлен 14.02.2018 в 19:26

Type 
mas = array[1..11] of integer;

procedure p(a: mas; k: integer);
var  t: integer;
begin 
if a[k] <> 0 then 
begin   
t := a[k];   
if a[k] < 0 then writeln(a[k]);   
p(a, k + 1); 
end 
else t := -1; 
if t > 0 then writeln(t);
end;

var 
n, i: integer; 
a: mas;

begin 
randomize; 
write('Размер последовательности от 2 до 10 n= '); 
readln(n); 
writeln('Последовательность'); 
for i := 1 to n do 
begin   
repeat     
a[i] := -10 + random(21);   
until a[i] <> 0;   
write(a[i]:4); 
end; 
writeln; 
a[n + 1] := 0; 
writeln('Преобразованная последовательность'); 
p(a, 1);
end.

 0   

Оставлять ответы могут только авторизированные пользователи.
Зарегистрируйтесь или  авторизируйтесь на сайте чтобы оставить ответ на вопрос.