تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 1 از 1

نام تاپيک: برنامه تبدیل عبارت منظم infix به prefix

  1. #1
    داره خودمونی میشه setaieshh's Avatar
    تاريخ عضويت
    Jun 2008
    محل سكونت
    tehran
    پست ها
    69

    پيش فرض برنامه تبدیل عبارت منظم infix به prefix

    سلام
    یه برنامه به زبان جاوا نوشتم که ورودی رو به صورت infix میگیره و خروجی رو به صورت prefix چاپ میکنه.
    اما هر کاریش میکنم error داره.
    کسی میتونی راهنماییم کنه؟
    این برنامه رو به دو صورت نوشتم:
    1) با استفاده از کلاس Scanner
    2) با استفاده از کلاس StringTokenizer
    توی هردوش به مشکل برخوردم
    فعلا همون روش اول رو آپلود میکنم. اگر راهنماییم کنین ممنون میشم.


    import java.util.Scanner;
    //import java.io.*;
    //import java.util.*;
    //import javax.swing.JOptionPane;

    public class Converter {

    public static String str1="";
    public static String Arr="";
    public static int loopCounter;
    public static char char1=' ';
    public static int i,j,e,n,t=0;
    public static char prefixStack[],prefix[];
    public static char stackA[];

    public static int olaviat(int primt){
    switch(primt)
    {
    case '+':
    case '-':
    {return 1;}
    case '*':
    case '/':
    {return 2;}
    case '&':
    case '|':
    {return 3;}
    case '@':
    case '#':
    {return 4;}
    case '(':
    case ')':
    {return 5;}
    default: return 0;
    }
    }

    public static void main (String[] args){
    //get input
    Scanner input = new Scanner(System.in);
    System.out.println("Infix To Prefix(without space):");
    str1 = input.next();

    Arr=str1;

    loopCounter=str1.length();
    char prefixStack[]=new char [str1.length()];
    char prefix[]=new char [str1.length()];
    char stackA[]=new char [str1.length()];

    while(loopCounter != 0)
    {
    char1=Arr.charAt(i);
    if(char1==')')
    {stackA[i]=char1;} //push

    else if(char1=='1' || char1=='2' || char1=='3' || char1=='4' || char1=='5' || char1=='6' || char1=='7' || char1=='8' || char1=='9' || char1=='0' )
    {prefixStack[i]=char1;}//chap dar khoroojy

    else if(char1=='(')
    { e=i;
    do{
    prefixStack[e]=stackA[j];
    j--;
    e++;
    }while (stackA[j]!=')');
    stackA[i]=' ';//parantez baste ra var midaram
    }

    else if(char1=='+' || char1=='-' || char1=='*' || char1=='/' || char1=='&' || char1=='|' || char1=='@' || char1=='#' )
    {
    do{
    prefixStack[i]=stackA[n];
    i++;
    }while(olaviat(stackA[n])>= olaviat(char1));
    stackA[i]=char1; //push
    }
    i++;
    }

    //now: chap prefixStack[i] be soorate reverse
    t=str1.length();
    for(int y=0;y!=str1.length(); y++)
    {
    prefix[y] =prefixStack[t];
    t--;
    }




    }
    }
    Last edited by setaieshh; 13-12-2013 at 16:40.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •