Program konversi postfik ke infiks dengan C++

Posted on Updated on


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.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’);

}

output program:

demikian program konversi postfik ke infiks yang saya buat, semoga bisa bermanfaat, ^_^ jangan lupa comment..



Web development jakarta

3 thoughts on “Program konversi postfik ke infiks dengan C++

    h4t1ku said:
    Juli 8, 2011 pukul 5:27 am

    Terima kasih, dgn adanya program ini, saya merasa terbantu dlm mengajar struktur data, mohon ijin unt menggunakan

      codycoding responded:
      Juli 8, 2011 pukul 6:36 am

      u’r welcome,, silakan digunakan,, semoga membantu yaa…^_^

    Archan said:
    Desember 18, 2012 pukul 10:55 am

    ngeruningnya pake app apa?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s