Кто шарит в проге, это не школьный курс, , дан массив ненулевых целых чисел из n элементов. используя рекурсию, напечатать сначала все отрицательные, а потом – все положительные числа этой последовательности. реализовать в одной функции, которая вызывается один раз.

Этоясказал Этоясказал    2   18.09.2019 12:30    18

Ответы
VadimRichard VadimRichard  07.10.2020 23:58
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.
ПОКАЗАТЬ ОТВЕТЫ
detka201080 detka201080  07.10.2020 23:58
Const n=10;
type
mas = array[1..n] of integer;

procedure p(a: mas; k: integer);
begin
if k <= n then
 begin
 if a[k] < 0 then write(a[k]:4);
 p(a, k+1);
 if a[n-k+1] > 0 then write(a[n-k+1]:4);
 end
end;

var
a: mas; i: integer;

begin
randomize;
writeln('Последовательность');
for i := 1 to n do
 begin
 a[i] := random(21)+1;
 if random(2)=1 then a[i]:=-a[i];
 write(a[i]:4);
 end;
writeln;
writeln('Преобразованная последовательность');
p(a, 1);
end.

Пример:
Последовательность
20 8 -9 15 -1 16 -9 -12 7 2
Преобразованная последовательность
-9 -1 -9 -12 20 8 15 16 7 2
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика