Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужна помощь в создании программы Ханойские башни на Visual Basic

Игорь Моисеев Мастер (2289), на голосовании 14 лет назад
Мне нужно сделать программу про ханойские башни на Визуал Бэйсике, в которой указывается кол-во дисков и решается сама автоматически. Мне хотя бы понять сам алгоритм вычисления ходов. Вот пример на Паскале

procedure Solve(n: integer; a,b,c: Char);
begin
if n > 0 then
begin
Solve(n-1, a, c, b);
Writeln('Переместить диск со стержня ', a, ' на стержень ',b);
Solve(n-1, c, b, a);
end;
end;

begin
Solve(4, '1','2','3');
end.

Пытался перевести на Визуал Бэйсик но не вышло, не работает так как надо, типа этого(

Private Sub Solve(n As Integer, a As Integer, b As Integer, c As Integer)
If n > 0 Then
Call Solve(n - 1, a, b, c)
Picture1.Print "Переместить диск со стержня "; a; " на стержень "; b
Call Solve(n - 1, b, c, a)
End If
End Sub
Дополнен 14 лет назад
Повторяю, что я знаю как на Паскале, мне не понятно как на Визуал Бэйсике сделать
Голосование за лучший ответ
sTudeNT Профи (750) 14 лет назад
вот полная реализация на паскале.. .
uses crt;
var n: integer;
procedure q(n:integer;a,b,c: char);
begin
if n>0 then
begin
q(n-1,a,c,b);
write('disc',n,':',a,'-->',c);
writeln;
q(n-1,b,a,c);
end;
end;
begin
clrscr;
readln(n);
if n>0 then q(n,'a','b','c')
else writeln('not....');
readkey;
end.
Ольга Константинова Мастер (1366) 14 лет назад
В коде, написаном на паскале имеются еще строчки с данными самой процедуры:
begin
Solve(4, '1','2','3');
end.

а у тебя они не указаны!
Похожие вопросы