Program Konversi Postfik ke Infiks dengan Bahasa Pemrograman Borland C++

Sabtu, Januari 19, 2013
Pada artikel ini saya akan membahas tentang program yang saya buat yaitu program konversi notasi postfik ke dalam notasi infik,, konversi postfik ke infik ini merupakan salah satu aplikasi dari penggunaan stack. yang agak rumit di program ini adalah mengatur tampilan programnya
(bikin saya nangis bombay) hahaa,,,lebay :D.
langsung aja kita liat listingnya :

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int karakter,top2,maks,pindah,top,i,j,a,b;

char ulang;
char infiks[20];
char postfiks[20];
char stack2[10];
char hasil[20];
void konversi(int y){

int a,z;
int b = 0;
pindah = 0;
top2 = 0;
fflush(stdin);

for(i=0;i<y;i++){
z = 0;
if(infiks[i]==’(‘){
stack2[top2]=infiks[i];
top2 = top2 + 1;
}
else if(infiks[i]==’)'){
a = top2 – 1;
while(stack2[a]!=’(‘){
if(a < 0){
break;
}

else{
hasil[b]=stack2[a];
b = b+1;
a = a-1;
top2 = top2 – 1;
}

}
if(a < 0){
gotoxy(3,15);printf(“hasil : error => (kurang kurung buka)”);
break;
}

top2 = top2 – 1;
}
else if(infiks[i]==’+'){
if((stack2[top2-1]==’-')||(stack2[top2-1]==’*')||(stack2[top2-1]==’/')||(stack2[top2-1]==’^')){
hasil[b]=stack2[top2-1];
b = b+1;
stack2[top2-1]=infiks[i];
}

else{
stack2[top2]=infiks[i];
top2 = top2 + 1;
}

}
else if(infiks[i]==’-'){
if((stack2[top2-1]==’+')||(stack2[top2-1]==’*')||(stack2[top2-1]==’/')||(stack2[top2-1]==’^')){
hasil[b]=stack2[top2-1];
b = b+1;
stack2[top2-1]=infiks[i];
}

else{
stack2[top2]=infiks[i];
top2 = top2 + 1;
}

}
else if(infiks[i]==’*'){
if((stack2[top2-1]==’/')||(stack2[top2-1]==’^')){
hasil[b]=stack2[top2-1];
b = b+1;
stack2[top2-1]=infiks[i];
}

else{
stack2[top2]=infiks[i];
top2 = top2 + 1;
}

}
else if(infiks[i]==’/'){
if((stack2[top2-1]==’*')||(stack2[top2-1]==’^')){
hasil[b]=stack2[top2-1];
b = b+1;
stack2[top2-1]=infiks[i];
}

else{
stack2[top2]=infiks[i];
top2 = top2 + 1;
}

}
else if(infiks[i]==’^'){
if(stack2[top2-1]==’^'){
hasil[b]=stack2[top2-1];
b = b+1;
stack2[top2-1]=infiks[i];
}
else{
stack2[top2]=infiks[i];
top2 = top2 + 1;
}
}
else if(infiks[i]==’;'){
if(top2>0){
a = top2 – 1;
while(a>=0){
if(stack2[a]==’(‘){
gotoxy(3,15);printf(“hasil : error => (kurang kurung tutup)”);
a = a-1;
break;
}
else{
hasil[b]=stack2[a];
b = b+1;
a = a-1;
top2 = top2 – 1;
}
}
}

}
else{
hasil[b]=infiks[i];
b = b+1;
}

gotoxy(3+(i*2),7);cout<<”–”;
gotoxy(3+(i*2),8);cout<<infiks[i];
gotoxy(3+(i*2),9);cout<<”–”;
for(j=(top2-1);j>=0;j–){
gotoxy(3+(i*2),10+z);cout<<stack2[j];
z++;
}
}
gotoxy(3,15);cout<<”hasil :  ”;
for(i=0;i<b;i++){
gotoxy(11+i,15);cout<<hasil[i];
}
}

void main(){

do{
for(i=0;i<20;i++){
gotoxy(1,i);cout<<”                                                                        ”;
}

maks=0;
top =0;
gotoxy(3,4);printf(“Masukan statement infix (akhiri dengan tanda ;) : “);
gotoxy(3,5);cin>>infiks;
karakter = strlen(infiks);
konversi(karakter);
gotoxy(3,17);cout<<”ulangi program[Y/T]: “;cin>>ulang;
}
while(ulang==’y'||ulang==’Y');
}



* * *

Setelah Program tadi kita jalankan, maka tampilan output program akan seperti ini:

 













demikian program konversi postfik ke infiks yang saya buat, semoga bisa bermanfaat, ^_^

* * *

sumber : CodyCoding

Tidak ada komentar:

Posting Komentar

Terima Kasih telah melihat dan membaca artikel di atas.
Jika ada yang kurang dimengerti, silahkan tinggalkan komentar anda dengan bahasa yang baik dan bijak. bukan SARA, SPAM, SAMPAH, dan berbau PORNOGRAFI..

Anda Juga dapat memberikan kritik dan saran kepada blog ini demi terciptanya kemajuan dan perkembangan blog ini

Semoga Bermanfaat.

Arsip Blog

Kunjungan Negara

Free counters!

Teman