Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 30. 11. 2014 23:49

Buránek
Příspěvky: 56
Reputace:   
 

Rekurze Pascal

Dobrý den,

mám problém s jedním příkladem v Pascalu, s Hanoiskými věžmi.

Zadání je takové, Na vstupu prectete cislo n urcujici pocet kotoucu. Vypiste posloupnost pokynu, jak prestehovat n kotoucu z prvni tyce na tyc druhou. Instrukce piste stylem "Kotouc cislo_kotouce z cislo_tyce na cislo_tyce", kde cislo_kotouce a poobakrat cislo_tyce jsou cisla. Kazdou instrukci piste na zvlastni radek. Tedy napriklad na vstup 2 vypisete tri radky a to: "Kotouc 1 z 1 na 3" "Kotouc 2 z 1 na 2" a "Kotouc 1 z 3 na 2" .

Potřebuji do svého programu nějak zakomponovat to číslo kotouče, které se přesouvá, což se mi zatím nedaří...

Mnohokrát děkuji"

Mám naprogramovaný následující kod:
program hanoj;
var n:integer;
procedure Hanoj(n: integer; pocatecni, cilova, odkladaci: char);
begin
    if n>1 then Hanoj(n-1, pocatecni, odkladaci, cilova);
    writeln('Přesuneme kotouč z věže ', pocatecni, ' na věž ', cilova);
    if n>1 then Hanoj(n-1, odkladaci, cilova, pocatecni)
end;
begin
readln(n)
Hanoj(n, 1,2,3)
end,

Tento program mi vypíše pomocí rekurze, jaké jsou tahy věžema. Ale já bych potřeboval přijít na to, jak do kodu zakomponovat to, jakou věž (jaké číslo věže) jsme kam v daném kroku přemístili?

Předem mnohokrát děkuji!

Offline

 

#2 01. 12. 2014 10:35 — Editoval Honzc (01. 12. 2014 11:02)

Honzc
Příspěvky: 4641
Reputace:   248 
 

Re: Rekurze Pascal

↑ Buránek:
Stačí přepsat řádek
writeln('Přesuneme kotouč z věže ', pocatecni, ' na věž ', cilova);
tímto
writeln('Přesuneme kotouč ',n,' z věže ', pocatecni, ' na věž ', cilova);

Poznámky:
Opravdu ti program pracuje?
1.Chybí ti tam totiž pár středníků
2.Hanoj(n, 1,2,3)- nemělo by to spíš být Hanoj(n,'1','2','3');
3.Také bývá dobré před načítáním n napsatt uživateli co se po něm chce, aby zadal
   např. Write('Zadej pocet kotoucu na tyci 1: ');
4.Nevím jak je to s češtinou, ale do výpisů piš raději bez diakritiky

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson