หัดเขียนโปรแกรม ภาษาจาวา

Java basic | Java OOP | โครงสร้างข้อมูล | โจทย์ ACM



[Java]คำสั่งวนลูป การใช้ for

No comments


          การใช้งานคำสั่ง For มี 2 แบบ


                    แบบที่ 1

 /**
 *
 * @author http://javaagkasit.blogspot.com
 */
public class basic_For {
    public static void main(String [] args){
        String [] item = {"For_1 = for","For_2 = For-each Loop"};
          for(int i = 0 ; i < item.length;i++){
              System.out.println(item[i]);
          }
    }
}
                       
                แบบที่ 2

/**
 *
 * @author http://javaagkasit.blogspot.com
 */
public class basic_For2 {
    public static void main(String [] args){
        String [] item = {"For_1 = for","For_2 = For-each Loop"};
          for(String s : item){
              System.out.println(s);
          }
    }
}
                 
                          Output.



                 output ทั้ง 2 แบบเหมือนกันทุกประการ ถ้าจะถามว่าทำไมถึงมี 2 แบบ เขียนโปรแกรมบ่อยๆก็จะเข้าใจเอง 
              

          การทำงานของคำสั่ง For Loop

                     Sentex:

                            แบบที่ 1
 

for(initialization ; Boolean_expression ; update)
{
   //Statements
}
          
                            แบบที่ 2


for (type var : arr) {
    //Statements 
 }

                 Explained by flow control.

share

No comments :

Post a Comment

[Java]การใช้ switch case

1 comment
      

               I have the source code.


/** ตัวอย่างการใช้งาน switch case
 * ตัวอย่างนี้ เป็นการแปลงตัวเลขเป็นตัวอักษร โดยนำ   switch case มาใช้งาน
 *
 * @author http://javaagkasit.blogspot.com/
 */
public class switchCase {
    public static void main(String [] args){
        for(int i = 0 ; i < 10 ; i++){
            System.out.println(revertNumberToString(i));//Show  Number String
        }
    }
    //Mathode revert Number to String.
    public static String revertNumberToString(int i){
        switch(i){
            case 0 : return "zero";     //if i == 0  then return "zero"
            case 1 : return "one";      //if i == 1  then return "one"
            case 2 : return "two";      //if i == 2  then return "two"
            case 3 : return "tree";     //if i == 3  then return "tree"
            case 4 : return "four";     //if i == 4  then return "four"
            case 5 : return "five";     //if i == 5  then return "five"
            case 6 : return "six";      // .
            case 7 : return "seven";    // .
            case 8 : return "eigth";    // .
            case 9 : return "nine";     //if i == 9  then return "nine"
            default : return"ten";      //others in condition then == "ten"
         
    }
    }
}
         
           สาเหตุที่ไม่มีคำสัง break  เหมือน switch case แบบที่เราเคยเห็นทั่วไป คือ ในลักษณะการทำงานนี้ทำครั้งเดียวอยู่แล้วไม่จำเป็นต้อง ใช้คำสั่ง break

          Explained by this.

       

         Output.



share

1 comment :

Post a Comment

[JAVA] ACM Reverse and Add


        The Problem

                  เป็นการนำตัวเลขมาสลับ(Reverse)แล้วบวกกับค่าเดิม และกระทำเช่นนั้นไปเรื่อยๆจนกว่าผลลัพธ์จะเป็น palindrome ก็คือตัวเลขที่เรียงจากซ้ายไปขวา เรียงขวาไปซ้ายเป็นเลขเดียวกัน สังเกตุจากรูปด้านล่าง ผลลัพธ์ 9339  เรียงซ้ายไปขวา เรียงขวาไปซ้าย ก็ ได้ตัวเลขเดียวกัน


         Sample input / output


         I have a Java code.

     import java.util.Scanner;

    /**
    * @author http://javaagkasit.blogspot.com/
    */
    public class ReverseAndAdd {
             static  long MAX = (long) 4294967295.0;//ค่ามากสุด
             private String sum ;                 // เช่น 195
             private long sumba;                //ถ้า sum เป็น  195 ,sumba ก็จะเป็น 951

    public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            ReverseAndAdd rev = new ReverseAndAdd();
                  long sum2 = 0 ,re ;    //re ไว้ตัวเลขที่กลับตำแหน่งแล้ว
                  String sum = "";         //เก็บตัวเลขที่อ่านมาจากไฟล์

                  try{
                       do{
                           sum = input.nextLine();      //อ่านข้อมูลมาที่ละบรรทัด
                           int count = 0;
           
                           while(true){//ทำไปเรื่อย
                                sum2 = Long.parseLong(sum);
                                re = rev.Reverse(sum);

                                if(sum2 == re)
                                   break;//ออกจากการวนลูป (เจอ)
                                else if((count == 1000)|(sum2 > MAX)) {          
                                    System.out.println("not palindrome foun");
                                     break; //ออกจากการวนลูป(ไม่เจอ)
                                }else {//เก็บผลลัพธ์ล่าสุด
                                     sum = rev.ans(sum2, re);
                                     count++;
                                }
                            }
                            rev.print(count, sum2,sum);//โชว์คำตอบออกทาง output
                          }while(!"0".equals(sum));
                }catch(Exception e){
                        e.getMessage();
                       System.out.println("Input errors.!!!\nTry put, 195 ");  
                }
    }
   // เมทอต สำหรับสลับตำแหน่งตัวเลข เช่น 159 ก็จะสลับเป็น 951
    public long  Reverse(String sum){
             StringBuffer sb = new StringBuffer(sum);
               sb.reverse();                
            sumba = Long.parseLong(sb.toString());
      return sumba;
    }
   //เอา sum + sumba
   public String ans(long sum,long sumba){  
             sum += sumba;      //sum = sum +sumba
             String an = String.valueOf(sum);        
    return an;
   }
    //ปริ๊นคำตอบออก output
    public void print(int count,long sum,String sums){
              if((count == 1000)|(sum >= MAX)|(sums.equals("0")))
                  ;
             else
                  System.out.println(count+" "+sum);
    }
}
          Result.
           
 !!!Download code there.!!!
!!!Download problem.!!!


share

[JAVA] ACM PrimaryArthmeticQ




             Sample Input
          123 456
          555 555
          123 594
           0 0
             Sample Output        
 

         No carry operation.                                             
         3 carry operations.
         1 carry operation.

              I have a java code.


/**
 *
 * @author http://javaagkasit.blogspot.com/
 */
import java.util.Scanner;
public class PrimaryArthmeticQ {
    static int ten =10,zero = 0,one =1;
    private int ans = zero, carry = zero, totalcarry = zero;
   
    public static void main(String[] args)throws Exception{
    Scanner sc = new Scanner(System.in);
    PrimaryArthmeticQ PAQ =new PrimaryArthmeticQ();
   
    try{
       
    while(true){   
        String inputS= sc.nextLine();
       
        if(!inputS.equals("0 0")){
            String[] input =inputS.split(" ");
            PAQ.process(input[zero], input[one]);
            PAQ.print();
        }else{
            System.out.print("");
            break;           
        }
    }
    }catch(Exception e){
        System.out.println(e.getClass());
        System.out.println("Re-enter.!!!");
    }
    }
   
    public void process(String s1,String s2){
        String ss1 = reverseStr(s1);//ตัวตั่ง
        String ss2 = reverseStr(s2);//ต้วบวก
        int last = lengthLoop(ss1,ss2);//จำหลักของตัวเลข
        int op=zero,op2=zero;
        for(int i =zero ; i < last ;i++){
            if( i < ss1.length())
                 op = Integer.parseInt(ss1.charAt(i)+"");else  op = zero;   
            if( i < ss2.length())
                op2 = Integer.parseInt(ss2.charAt(i)+"");else op2 = zero;
                add(op,op2);//ตัวตั่งกับ ต้วบวกบวกกัน                                     
            }
        this.carry = zero;//clear carry =0
    }
   
    public void print(){
        if(totalcarry == one)
            System.out.println(totalcarry+" "+"carry operation.");
        else if(totalcarry == zero)
            System.out.println("No carry operation.");
        else
            System.out.println(totalcarry+" "+"carry operations.");   
        this.totalcarry = zero;//clear totalcarry =0
    }   
   
    private void add(int op,int op2){
        ans = op + op2 +carry;
            Ccarray();
    }
    private void Ccarray(){
        if(ans >= ten){
            this.carry = one;
            totalcarry++;
        }else
            this.carry = zero;
    }

    private String reverseStr(String st){
        StringBuffer str = new StringBuffer(st);
        str.reverse();
        String ss = str.toString();
        return ss;
    }
    private int lengthLoop(String s1,String s2){
        int last=zero;
        if(s1.length() > s2.length()){
            last=s1.length();
        }else{
            last=s2.length();
        }       
        return last;
    }
}

       
             Result.

share

[Java basic] การใช้ if else if



             
             ตัวอย่าง การใช้งาน if else if

/**
 *
 * @author http://javaagkasit.blogspot.com/
 */
public class ifelseif {
    public static void main(String [] args){
   
        int score = 60;
       
        if(score <= 49){
            System.out.println("gate F");
        }else if (score <= 59 ){
            System.out.println("gate D");
            }else if(score <= 69){
                System.out.println("gate C");
            }else if(score <= 79){
                System.out.println("gate B");
            }else if(score <= 100){
                System.out.println("gate A");
            }else{
                System.out.println("enter score");
            }
               
       }
}

                                 

                อธิบายเป็นภาพล่ะกันนะ


            output 




share

[Java ] การใช้ if else

No comments


             ตัวอย่าง การใช้งาน if else


 int score = 60;
                   if(score > 49){
                         System.out.println("you pass.");
                  }else{
                         System.out.println("you fail.");
                 }

            อธิบายเป็นภาพล่ะกันนะ


การทำงานของ เงื่่อนไง if - else

share

No comments :

Post a Comment

หนังสือจาวาฟรี Free Java Ebooks

หนังสือ Java ฟรี ภาษาไทย

  • สำหรับคนที่ชอบอ่านโค้ด  http://downloads.se-ed.com/ เป็นโค้ดที่มากับหนังสือที่ขาย ของ se-ed book
  • อ่านแล้วไม่เข้าใจก็ฟังเอา http://www.javathailand.com/ ฟังแล้วเข้าใจลองดู

share

[c#] Set QoS Bandwidth Reserve Setting เพื่อเพิ่ม bandwidth ในการท่องเน็ตให้เร็วขึ้น

Set QoS Bandwidth Reserve Setting
เพื่อเพิ่ม bandwidth ในการท่องเน็ตให้เร็วขึ้น

   


Set Bandwidth == 1
 
 public void NonBestEffortLimit()
 { 
         Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\     Windows\Psched", "NonBestEffortLimit", 1, RegistryValueKind.DWord);
}



use Bandwidth default (Bandwidth == 20)
public void reNonBestEffortLimit()
 {
           Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\   Windows\Psched", "NonBestEffortLimit", 20, RegistryValueKind.DWord);
 }

share