Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 4/Solution/bg

Sent here from Solution 4/bg.

English · Français · Български · 中文(中国) · 日本語

4Ga - Решение на задачата за Ханойските кули

(author: Tao Yue, state: unchanged)

pascal
(* Автор:    Tao Yue
   Дата:      13 July 2000
   Описание:
      Решение на задачата за Ханойските кули
   Версия:
      1.0 - оригинална версия
*)

program TowersofHanoi;

var
   numdiscs : integer;

(********************************************************)

procedure DoTowers (NumDiscs, OrigPeg, NewPeg, TempPeg : integer);
(* Описание на параметрите:
      NumDiscs -- брой на дисковете на колче OrigPeg
      OrigPeg -- номер на колче на кулата
      NewPeg -- номер на колче, където да се премести кулата
      TempPeg -- колче за временно използване
*)

begin
   (* Обработване на базовия случай -- един диск *)
   if NumDiscs = 1 then
      writeln (OrigPeg, ' ---> ', NewPeg)
   (* Обработване на всички останали случаи *)
   else
      begin
         (* Първо, преместване на всички дискове без на-долния
            на колче TempPeg, използвайки NewPeg за временно колче
            за преместването *)
         DoTowers (NumDiscs-1, OrigPeg, TempPeg, NewPeg);
         (* После, преместване на най-долния диск от колче OrigPeg
            на колче NewPeg *)
         writeln (OrigPeg, ' ---> ', NewPeg);
         (* Накрая, преместване на дисковете, които са в момента на 
            колче TempPeg на колче NewPeg, използвайки OrigPeg като временно
            колче за преместването *)
         DoTowers (NumDiscs-1, TempPeg, NewPeg, OrigPeg)
      end
end;

(********************************************************)

begin    (* Main *)
   write ('Моля въведете броя на дисковете в кулата ===> ');
   readln (numdiscs);
   writeln;
   DoTowers (numdiscs, 1, 3, 2)
end.     (* Main *)

From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 4/Solution/bg", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Edited on wiki.freepascal.org by 2 people, 2021–2022

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
AlpinistbgCreated page
Kai BurghardtKai Burghardt moved page Solution 4/bg to Basic Pascal Tutorial/Chapter 4/Solution/bg: tidy up main name space: create subpage hierarchy for basic Pascal tutorial [cf. [[Special: PermaLink/149778#Clut... (minor)
Kai Burghardtbypass redirects [cf. discussion]
Kai Burghardtbypass language bar/categorization template redirect [cf. discussion] (minor)

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.