Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2009, 15:33   #1
Lostsage
 
Регистрация: 20.01.2009
Сообщений: 3
По умолчанию Объясните алгоритм программы с рекурсией на паскале

Вобщем есть готовая программа, нужно расказать алгоритм и что к чему: разложить натуральное число в виде суммы натуральных чисел
Код:
Program recur;
var  n: integer;
     c:  array [ 1..100 ]  of integer;
     a: boolean;
     procedure sum(y,k,x:integer);
     const plus:array[boolean] of char=('+',' ');
var  i: integer;

begin
     if y=0 then begin a:=true;
     if a then begin for i:=1 to x-1 do write (c[i], plus[i=x-1]);
     writeln end;
     end else  begin for i:= 1 to k do
     if y-i>=0 then begin c[x]:=i;
     sum(y-i,i,x+1 );

end; end; end;

begin writeln('vvedite 4islo N');
      readln(n);
      sum(n,n, 1 );
      readln
end.
Заранее благодарен

Последний раз редактировалось Stilet; 20.01.2009 в 16:17.
Lostsage вне форума Ответить с цитированием
Старый 20.01.2009, 16:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А чего тут обьяснять?
С клавы считывается n которое передается в процедуру Sum, в этой процедуре выполняются некие действия, затем процедура вызывает себя - передает выполнение своему началу, но уже с другими параметрами. И так до посинения.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.01.2009, 17:40   #3
Lostsage
 
Регистрация: 20.01.2009
Сообщений: 3
По умолчанию

А что именно содержит в себе процедура? Каков образом вычисляется результат?
Lostsage вне форума Ответить с цитированием
Старый 20.01.2009, 18:43   #4
Сергей089
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 214
По умолчанию

Я понял так. В архиве 2 картинки.
Извиняюсь за корявый почерк.
(Наверное непонятно написал )
Вложения
Тип файла: zip объяснение.zip (201.6 Кб, 11 просмотров)
Сергей089 вне форума Ответить с цитированием
Старый 20.01.2009, 20:10   #5
Lostsage
 
Регистрация: 20.01.2009
Сообщений: 3
По умолчанию

Спасибо, логика вроде ясна, только не совсем понятно по какому принципу изменяются переменные i во 2 и последующих пунктах
Lostsage вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить алгоритм программы Alfis Паскаль, Turbo Pascal, PascalABC.NET 1 22.12.2008 00:51
Примерный алгоритм программы и работа с Memo Freestyler Помощь студентам 0 10.12.2008 22:46
Алгоритм и Код на Паскале. NSvirus Фриланс 6 11.11.2008 19:16
Алгоритм программы. Небесный Паскаль, Turbo Pascal, PascalABC.NET 2 16.12.2007 10:23
Алгоритм программы. Небесный Свободное общение 0 09.12.2007 23:30