ใครก็ได้ช่วยผมหน่อยครับ ด่วนมากๆๆ สำหรับคนที่เก่งภาษาคอมพิวเตอร์ ถ้าท่านเข้ามาแล้วช่วยดูหน่อยครับ ถ้าใครโหลด 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
ใครก็ได้ช่วยผมหน่อยครับ ด่วนมาก !!!! เกี่ยวกับ Java
ขอดีว่า อาจารย์ให้ผม 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