Script Program c++ Menara Hanoi

Posted by belajar


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;
}
}