ใครก็ได้ช่วยผมหน่อยครับ ด่วนมาก !!!! เกี่ยวกับ Java

ใครก็ได้ช่วยผมหน่อยครับ ด่วนมากๆๆ สำหรับคนที่เก่งภาษาคอมพิวเตอร์ ถ้าท่านเข้ามาแล้วช่วยดูหน่อยครับ  ถ้าใครโหลด bit เช่น TM , bitded ,SM , Todaybit ,torrentmove  หรืออยากจะได้ invites  กับค่าอัพโหลด
ขอดีว่า อาจารย์ให้ผม Project ชิ้นหนึ่งชึ่งเกี่ยวกับโปรแกรมทางคอมพิวเตอร์ คือ สามารถใช้ภาษาอะไรก็ได้
แต่ผมใช้ java อ่า เดี่ยวแสดงให้ดูครับ

[img]http://postto.me/12/t_owi.jpg[/img]

นั้นเป็นโปรแกรมเกี่ยวกับการหาค่า ของ Three-address code แต่ว่า มันหาได้แค่ 3 ADDRESS CODE GENERATION เท่านั้น
ดังรูปที่ให้อ่าครับ  คือรับ input = b+(c*d)+(c*d)  ต่อมาก็จะเป็น

[img]http://postto.me/12/bko.jpg[/img]  

โดยจะสังเกตุได้ว่าโปรแกรมไม่ Error  แต่ถ้าเมื่อใดผมรับค่า input เป็น a + a * (b – c) + (b – c) * d คือ
[img]http://postto.me/12/bkp.jpg[/img]  

โปรแกรมจะฟ้อง Error ทันทีครับ เพราะคิดว่ามันน่าจะมากกว่า 3 ตัวอ่ารับ  #ผมไม่รุ้ว่าจะแก้ codeยังไงแล้วอ่าครับ  ไงก็ขอช่วยหน่อยแล้วกันนะครับ ใช้ภาษาไหนก็ได้ครับ       ยิ่ง C,C++, หรือ Java ยิ่งดีครับ    ถ้าใครโหลด bit เช่น TM , bitded ,SM , Todaybit ,torrentmove  หรืออยากจะได้ invites  กับค่าอัพโหลด


[img]http://postto.me/12/cd4.jpg[/img]

[img]http://postto.me/12/ccw.jpg[/img]

ส่วนนี้ Code ครับ


import java.io.*;
import java.util.Scanner;  

class pong
{
    //a=b+(c*d)+(c*d)

    public static void main(String args[])
    {
    int n,m,n1,m1,n2,n3;
    String temp=null,temp1=null,temp2=null;
    Scanner Sc = new Scanner(System.in);  
    String s1 = Sc.nextLine();  
    System.out.print("Insert Number1 : ");  
    System.out.println("3 ADDRESS CODE GENERATION:");    
    System.out.println("---------------------------------");

//    String s1= "a=b+(c*d)+(c*d)";
    System.out.println("INPUT");
    System.out.println(s1);
    StringBuffer sb=new StringBuffer(s1);
    n=s1.indexOf('(');
    m=s1.indexOf(')');
    n1=s1.lastIndexOf('(');
    m1=s1.lastIndexOf(')');
    temp=s1.substring(n+1,m);
    System.out.println();
    System.out.println("\n OUTPUT");
    System.out.println("t1="+temp);
    sb.replace(n,m+1,"t1");
    System.out.println(sb);
    temp=sb.toString();
    n1=temp.indexOf('(');
    m1=temp.indexOf(')');
    sb.replace(n1,m1+1,"t1");
    System.out.println(sb);
    temp=sb.toString();
    n2=temp.indexOf("t1");
    temp2=temp.substring(n2,sb.length());
    System.out.println("t2="+temp2);
    sb.replace(n2,sb.length(),"t2");
    System.out.println(sb);
    temp=sb.toString();
    n3=temp.indexOf('b');
    temp1=temp.substring(n3);
    System.out.println("t3="+temp1);
    System.out.println(s1.charAt(0)+"=t3");
    }
}




อย่างเช่นว่า ให้แสดง "ดังรูป"

[img]http://postto.me/12/bkh.jpg[/img]

ปล. ถ้าผิดก็ขออภัยนะคับ พอดีส่งต้องรีบทำอ่าครับ รบกวนช่วยแก้ code ให้หน่อยครับ เพราะผมต้องส่งอาจารย์ภายในอาทิตยหน้าแล้วอ่าครับ

นั้นนี้ code ครับ http://upload.one2car.com/download.aspx?pku=20A7F84B47WNMWZN9DM7KWR3K4KLM6  

ขอบคุณครับ heloman
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่