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

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

Форум «Всё о Паскале» _ Задачи _ Рекурсивная процедура

Автор: Melany 15.05.2008 0:01

10.gif Народ, если не сложно, помогите с задачей:

Написать рекурсивную процедуру, при выполнении которой на экран будет выводиться отрезок натурального ряда чисел.


Автор: Michael_Rybak 15.05.2008 1:02

поможем. что делала? что не получается?

Автор: kosyak 15.05.2008 1:48

program pr;
var i: integer;

procedure rec(var ii: integer; n: integer);
begin
writeln(ii);
if ii<n then
begin
inc(ii);
rec(ii,n);
end;
end;
begin
i:=1;
rec(i,5);
end.


smile.gif Делов-то...

Добавлено через 4 мин.
program pr;
var i,n: integer;

procedure rec(var ii: integer);
begin
writeln(ii);
if ii<n then
begin
inc(ii);
rec(ii);
end;
end;
begin
i:=1;
write('n='); readln(n);
rec(i);
end.

Ну а так получше будет

Автор: Michael_Rybak 15.05.2008 1:59

М
kosyak, пользуйся тегом CODE


Автор: Melany 15.05.2008 17:47

to kosyak: Спасибо огромное тебе! rolleyes.gif
to Michael_Rybak: Cпс за то, что откликнулся smile.gif

Паскаль начала изучать недавно, поэтому возникают не мало трудностей с написанием программ, но ничего! Учимся, запоминаем yes2.gif

Автор: volvo 15.05.2008 19:00

Цитата
Ну а так получше будет
Лучше чем что? Кстати, почему бы не так:
var
n: integer;

procedure rec(i: integer);
begin
writeln(i);
if i < n then rec(i + 1);
end;


begin
write('n='); readln(n);
rec(1);
end.
?

Автор: kosyak 15.05.2008 19:23

Цитата(volvo @ 15.05.2008 16:00) *

Лучше чем что? Кстати, почему бы не так:
var
n: integer;

procedure rec(i: integer);
begin
writeln(i);
if i < n then rec(i + 1);
end;
begin
write('n='); readln(n);
rec(1);
end.
?


Ну можно и так, уж не такая большая разница.
Я написал 2 кода в одном сообщении... вот второй получше чем первый... Ну может не получше, просто там n вводится с клавы...

Автор: Michael_Rybak 15.05.2008 19:52

я бы вообще n не хранил внешне, а сравнивал бы внутри не с n, а с 0. а n передавал бы как исходный параметр в рекурсию. так, на мой взгляд, чуть изящнее.