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

0 голосов
54 просмотров

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

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


Информатика (221 баллов) | 54 просмотров
0

на каком языке программирования?

Дано ответов: 2
0 голосов
Правильный ответ

Const n=10;
type
mas = array[1..n] of integer;

procedure p(a: mas; k: integer);
begin
if k <= n then<br> 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

(194k баллов)
0

тут есть 5 класс

0 голосов

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.

(314k баллов)