Berikut adalah program Menara Hanoi
Berikut script program menara hanoi
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
hanoi(char A, char C, char B, int n)
{
if
(n==1)
{
cout<<"pindahkan
cakram ke-"<<n<<" dari "<<A<<" ke
"<<C<<"\n";
}
else
{
hanoi(A,B,C,n-1);
cout<<"pindahkan cakram ke-"<<n<<"
dari "<<A<<" ke "<<C<<"\n";
hanoi(B,C,A,n-1);
}
}
Hanoi()
{
int
jum;
int
n, v;
char
X='A';
char
Y='B';
char
Z='C';
char
s [100];
char
pilih;
pertama:
clrscr();
gotoxy(30,2); cout<<"Program Menara Hanoi";
gotoxy(20,3);
cout<<"---------------------------------------"<<endl<<endl;
//input
cout<<"input
banyak balok : "; cin>>s;
n =
atoi (s);
for
(v=0;v<strlen(s);v++)
{
if
(!isdigit(s[v]))
{
cout<<endl;
cout<<"input
salah !"<<endl;
cout<<"tidak
boleh angka negatif, atau huruf";
getch();
goto pertama;
}
}
if
(n>0)
{
cout<<endl;
//memanggil
fungsi hanoi
hanoi(X,Z,Y,n);
//menghitung jumlam perpindahan pada fungsi
jum=pow(2,n)-1;
cout<<endl<<"jumlah perpindahan sebanyak =
"<<jum<<" kali"<<endl;
}
cout<<endl<<endl<<"\t\t\t---------------------------------"<<endl;
cout<<"\t\t\t>> inputkan \"a\" untuk ulang
lagi"<<endl;
cout<<"\t\t\t>> inputkan yang lain untuk
selesai"<<endl;
cout<<"\t\t\t--> "; cin>>pilih;
//perulangan
if
(pilih=='a')
goto
pertama;
}
void main()
{
char
opsi;
menu:
gotoxy(18,1); cout <<
"==============================================\n";
gotoxy(27,2); cout << "Program Hanoi \n";
gotoxy(18,3); cout <<
"==============================================\n";
gotoxy(18,4);cout << endl;
gotoxy(18,5);cout << "[1] Hanoi \n";
gotoxy(18,6);cout << "[2] Exit \n";
gotoxy(18,7);cout << "Input Pilihan : ";
gotoxy(35,7);cin >> opsi;
switch (opsi)
{
case '1':
Hanoi();
break;
case '2':
exit(0);
default : cout<<"pilihan anda tidak ada, silahkan pilih
pilihan yang ada:";
goto menu;
break;
}
}
|