Sabtu, 23 Oktober 2010

Gerbang Logika dengan C++

#include
#include 
#include 
int main(void)
{
    int a,b,ch;
    char user;
do
{
 do
{
clrscr();
printf("\nENTER TWO BINARY VALUES\n");
scanf("\n%d\n%d",&a,&b);
 }while(!(((a==1)||(a==0))&&((b==1)||(b==0))));

printf("PLEASE ENTER THE GATE TO BE USED\n :");
printf("\n\t1.AND");
printf("\n\t2.OR");
printf("\n\t3.NOT");
printf("\n\t4.NAND");
printf("\n\t5.NOR");
printf("\n\t6.XOR\n");

 fflush(stdin);
 scanf("%d",&ch);

 switch(ch)
{
case 1:
{
if(a==1&&b==1)
printf("1 _SATISFIED");
else
printf("0_NOT_SATISFIED");
break;
}
case 2:
{
if(a==1||b==1)
printf("1 _SATISFIED");
else
printf("0_NOT_SATISFIED");
break;
}
case 3:
{
if(a==1)
printf("0_SATISFIED");
else
printf("1 _SATISFIED");
break;
}
case 4:
{
if(a==1&&b==1)
printf("0_SATISFIED");
else
printf("1 _NOT_SATISFIED");
break;
}
case 5:
{
if(a==1||b==1)
printf("0_SATISFIED");
else
printf("1 _NOT_SATISFIED");
break;
}
case 6:
{
if(a==b)
printf("0_SATISFIED");
else
printf("1 _NOT_SATISFIED");
break;
}
}
getchar();
printf("\nDO YOU WANT TO REDO ? (Y/N)\n");
fflush(stdin);
scanf("%c",&user);

}while((user=='y')||(user=='Y'));
getchar();
}

Logika:

Pada program kali ini, kita membuat gerbang logika dari and, or, not, nand, nor, dan xor. Jika kita memasukkan inputan 1(true) dan 0(false) dan memilih gerbang logika yang kita gunakan, maka akan keluar kesimpulan yang didapatkan apakah bernilai statisfied atau not statisfied.


#include
#include


Kode program di atas, #include berfungsi sebagai standart input/output header yang berisi definisi, konstanta, dan deklarasi fungsi dan jenis yang digunakan untuk berbagai standard input dan output operasi. #include adalah file header yang digunakan dalam MS-DOS compiler untuk membuat user interface teks.


int a,b,ch;
    char user;
do
{
 do
{
clrscr(); 
printf("\nENTER TWO BIONARY VALUES\n");
scanf("\n%d\n%d",&a,&b); 


Kode di atas digunakan untuk mendeklarasikan tipe data integer pada variable a, b, ch. Dan melakukan membersihkan layar dengan perintah clrscr(). Mencetak kalimat yang terdapat pada perintah printf dan membaca inputan dengan perintah scanf dan memasukan ke dalam variable a dan b.



}while(!(((a==1)||(a==0))&&((b==1)||(b==0))));

printf("PLEASE ENTER THE GATE TO BE USED :");
printf("\n\t1.AND");
printf("\n\t2.OR");
printf("\n\t3.NOT");
printf("\n\t4.NAND");
printf("\n\t5.NOR");
printf("\n\t6.XOR\n");

 fflush(stdin);
 scanf("%d",&ch);

Perintah di atas digunakan untuk mencetak kata yang akan kita pilih dengan memasukan inputan nomor. Akan melakukan proses ketika a bernilai 1 atau 0 dan b bernilai 1 atau 0. Kemudian akan melakukan proses yang terdapat di dalam pilihan itu. Fflush digunakan untuk membersihkan buffer keluaran dari stream. Kemudian membaca data dengan format tertentu dari string s.

 switch(ch)
{
case 1:
{
if(a==1&&b==1)
printf("1 _SATISFIED");
else
printf("0_NOT_SATISFIED");
break;
}

Program ini juga menggunakan switch-case. Case 1 untuk operasi gerbang logika And. Ketika inputan a dan b bernilai 1 maka akan tercetak 1_statisfied yang artinya bernilai true dan selebihnya bernilai salah.

case 2:
{
if(a==1||b==1)
printf("1 _SATISFIED");
else
printf("0_NOT_SATISFIED");
break;
}

Case 2 untuk operasi gerbang logika Or. Ketika inputan a dan b bernilai 1 maka akan tercetak 1_statisfied yang artinya bernilai true dan selebihnya bernilai salah.

case 3:
{
if(a==1)
printf("0_SATISFIED");
else
printf("1 _SATISFIED");
break;
}

Case 3 untuk operasi gerbang logika Or. Ketika inputan a  bernilai 1 maka akan tercetak 0_statisfied yang artinya bernilai true dan selebihnya bernilai salah.

case 4:
{
if(a==1&&b==1)
printf("0_SATISFIED");
else
printf("1 _NOT_SATISFIED");
break;
}

Case 4 untuk operasi gerbang logika nand. Ketika inputan a dan b  bernilai 1 maka akan tercetak 0_statisfied yang artinya bernilai true dan selebihnya bernilai salah.

case 5:
{
if(a==1||b==1)
printf("0_SATISFIED");
else
printf("1 _NOT_SATISFIED");
break;
}

Case 5 untuk operasi gerbang logika nor. Ketika inputan a dan b  bernilai 1 maka akan tercetak 0_statisfied yang artinya bernilai true dan selebihnya bernilai salah.

case 6:
{
if(a==b)
printf("0_SATISFIED");
else
printf("1 _NOT_SATISFIED");
break;
}
}

Case 6 untuk operasi gerbang logika xor. Ketika inputan a dan b  bernilai 1 atau a==b maka akan tercetak 0_statisfied yang artinya bernilai true dan selebihnya bernilai salah.

getchar();
printf("\nDO YOU WANT TO REDO ? (Y/N)\n");
fflush(stdin);
scanf("%c",&user);

}while((user=='y')||(user=='Y'));
getchar();
}

Getchar () digunakan untuk mendapatkan sebuah karakter dari stdin. Apabila terjadi error maka fungsi akan mengembalikan nilai EOF. Sama seperti getc(stdin). Kemudian mencetak statement dari printf, apakah kita ingin melakukan inputan lagi atau tidak. Kemudian inputak dimasukkan dan disimpan dalam variable user. Ketika Y akan kembali mengulang, ketika N maka akan stop program ini.

Salah satu outputnya sebagai berikut:


Tidak ada komentar:

Posting Komentar