Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите решить задачку с рекурсией

Автор: Pavel 18.06.2003 18:41

Помогите пожалуйста с задачкой!!!
--------------------------------------------------------------------------------

Дана последовательность ненулевых целых чисел, за которой  следует 0.
Вывести сначала все отрицательные числа этой последовательности, а затем все положительные( в любом порядке ) - необходимо сделать при помощи рекурсии.
____________________________________________________________________

хотябы с основная часть програмы.

Зарание благодаре!

Автор: OlegP 19.06.2003 16:58

Можно сделать так:

Код
var f:text;

procedure v;
var a:integer;
begin
read(a);
while a<>0 do
begin
 if a<0 then
  begin
   writeln(f,a);
   read(a)
  end
 else
  begin
   v;
   writeln(f,a);
   a:=0
  end
end
end;

BEGIN
assign(f,'c:test.txt');
rewrite(f);
v;
close(f)
END.


прога выводит результаты в файл c:test.txt , сразу же выводятся числа, если они отрицательные, иначе происходит еще один вызов процедуры. На возврате печатаются положительные числа.

Автор: Гость 28.11.2012 21:45

Цитата(Pavel @ 18.06.2003 14:41) *

Помогите пожалуйста с задачкой!!!
--------------------------------------------------------------------------------

Дана последовательность ненулевых целых чисел, за которой  следует 0.
Вывести сначала все отрицательные числа этой последовательности, а затем все положительные( в любом порядке ) - необходимо сделать при помощи рекурсии.
____________________________________________________________________

хотябы с основная часть програмы.

Зарание благодаре!

norespect.gif

Автор: Гость 28.11.2012 21:52

Цитата(OlegP @ 19.06.2003 12:58) *

Можно сделать так:

Код
var f:text;

procedure v;
var a:integer;
begin
read(a);
while a<>0 do
begin
 if a<0 then
  begin
   writeln(f,a);
   read(a)
  end
 else
  begin
   v;
   writeln(f,a);
   a:=0
  end
end
end;

BEGIN
assign(f,'c:test.txt');
rewrite(f);
v;
close(f)
END.


прога выводит результаты в файл c:test.txt , сразу же выводятся числа, если они отрицательные, иначе происходит еще один вызов процедуры. На возврате печатаются положительные числа.



а тоже самое только без рекурсии как будет выглядеть?