IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Помогите решить задачку с рекурсией
Pavel
сообщение 18.06.2003 14:41
Сообщение #1


Гость






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

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

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

Зарание благодаре!
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
OlegP
сообщение 19.06.2003 12:58
Сообщение #2


Гость






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

Код
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 , сразу же выводятся числа, если они отрицательные, иначе происходит еще один вызов процедуры. На возврате печатаются положительные числа.

Сообщение отредактировано: volvo - 17.12.2004 13:31
 К началу страницы 
+ Ответить 
Гость
сообщение 28.11.2012 17:45
Сообщение #3


Гость






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

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

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

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

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

norespect.gif
 К началу страницы 
+ Ответить 
Гость
сообщение 28.11.2012 17:52
Сообщение #4


Гость






Цитата(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 , сразу же выводятся числа, если они отрицательные, иначе происходит еще один вызов процедуры. На возврате печатаются положительные числа.



а тоже самое только без рекурсии как будет выглядеть?
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 10:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"