SlideShare a Scribd company logo
1 of 16
Download to read offline
Data Operations and Processing - 02                                  Computer Programming using Java               15
  CHAPTER                               การดําเนินการและประมวลผลข้อมูล
      02                                 (Data Operations and Processing)
1. ประเภทข้ อมลและตัวแปร (Data Types and Variables)
              ู
1. ประเภทข้ อมลหรื อชนิดตัวแปร (Data Types)
                ู
   1.1 ประเภทข้ อมูลแบบดังเดิม (Primitive Data Types) แบ่งออกเป็ น 4 กลุม ได้ แก่
                         ้                                               ่
   1) ตัวเลขจํานวนเต็ม (Integer) คือ จํานวนเต็มบวก จํานวนเต็มลบ จํานวนเต็มศูนย์
        ชนิดตัวแปร ขนาดตัวแปร                             ช่ วงของข้ อมล
                                                                       ู                           ค่ าเริ่มต้ น
        byte                8 bits      -128 ถึง 127                                                    0

        short              16 bits      -32,768 ถึง 32,767                                              0

        int                32 bits      -2,147,483,648 ถึง 2,147,483,647                                0

                                        -9,223,372,036,854,775,808 ถึง
        long               64 bits                                                                     0L
                                        9,223,372,036,854,775,807

    2) ตัวเลขจํานวนจริง (Floating Point / Real Number) คือ จํานวนที่มีจดทศนิยม
                                                                       ุ
         ชนิดตัวแปร ขนาดตัวแปร                         ช่ วงของข้ อมลู                             ค่ าเริ่มต้ น
        float            32 bits      -3.40292347E+38 ถึง 3.40292347E+38                             0.0F

                                      -1.79769313486231570E+308 ถึง
        double           64 bits                                                                     0.0D
                                      1.79769313486231570E+308

    3) ตัวอักขระ (Character) คือ ตัวอักษร (Letter) หรื อตัวเลข (Digit) หรื อสัญลักษณ์ (Symbol) เพียง 1 ตัว
         ชนิดตัวแปร ขนาดตัวแปร                          ช่ วงของข้ อมล ู                    ค่ าเริ่มต้ น
        char             16 bits    'u0000' ถึง 'uFFFF' (0 - 65535)                      'u0000'
                                    เช่น 'A' หรื อ 'a' (คล่อมด้ วยเครื่ องหมาย '…')

    4) ตัวตรรกะ (Boolean) คือ ค่าความจริง ซึงมีเพียงสองค่าคือ จริง (True) หรื อ เท็จ (False)
                                            ่
         ชนิดตัวแปร ขนาดตัวแปร                        ช่ วงของข้ อมลู                        ค่ าเริ่มต้ น
        boolean          ไม่ระบุ   true หรื อ false                                           false


    1.2 ประเภทข้ อมูลแบบอ้ างอิง (Reference Data Types) แบ่งออกเป็ น 1 กลุม (ยังมีมากกว่านี ้) ได้ แก่
                                                                               ่
    1) สตริง (String) หรือข้ อความ คือ กลุมของอักขระหรื อสายอักขระตังแต่ 0 ตัวขึ ้นไปมาเรี ยงต่อกัน
                                              ่                              ้
         ชนิดตัวแปร ขนาดตัวแปร                            ช่ วงของข้ อมลู                        ค่ าเริ่มต้ น
         String             ไม่ระบุ      เช่น "Java Chula" หรื อ "1" หรื อ "F50" หรื อ              null

                                         "" (Empty String) (คล่อมด้ วยเครื่ องหมาย "…")


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
16     Computer Programming using Java                                         02 - Data Operations and Processing


                                        ์
         1.3 การเรี ยงลําดับขนาดและศักดิศรี ของประเภทข้ อมูล (เฉพาะตัวเลข) มีดงนี ้
                                                                              ั
               byte             short            int              long             float            double


                 เล็ก                                                                                      ใหญ่

     2. การตังชื่อตัวแปร
             ้
        1) กฎการตังชื่อตัวแปร (บังคับและต้ องทําตาม)
                      ้
           (1) ชื่อตัวแปรสามารถประกอบไปด้ วย ตัวอักษร ตัวเลข สัญลักษณ์ '$' (Dollar Sign) และสัญลักษณ์
               '_' (Underscore) เช่น num, $_$, _hey, $1, xxx3, test1_$ เป็ นต้ น

           (2) ชื่อตัวแปรห้ามขึ ้นต้ นชื่อด้ วยตัวเลข เช่น 3girl1man, 2you, 5hundredMile เป็ นต้ น
           (3) ชื่อตัวแปรห้ามมีช่องว่างและสัญลักษณ์พิเศษอื่นๆ นอกเหนือจากที่กล่าวไว้ ในข้ อที่ 1
           (4) ชื่อตัวแปรห้ามตังชื่อซํ ้ากับคําสงวน (Reserved Words / Keywords) ซึงมี 53 คําดังต่อไปนี ้
                                 ้                                                  ่
                 abstract           assert             boolean           break            byte             case
                 catch              char               class             const *          continue         default
                 do                 double             else              enum             extends          false
                 final              finally            float             for              goto *           if
                 implements         import             instanceof        int              interface        long
                 native             new                null              package          private          protected
                 public             return             short             static           strictfp         super
                 switch             synchronized       this              throw            throws           transient
                 true               try                void              volatile         while

             (5) ชื่อตัวแปรห้ามตังชื่อซํ ้ากันภายในเมท็อดเดียวกัน (แต่ตางเมท็อดกันอาจตังชื่อซํ ้ากันได้ )
                                 ้                                     ่                 ้
             (6) ชื่อตัวแปรมีความยาวได้ ไม่จํากัด (จะยาวกี่กิโลเมตรก็ได้ แต่ควรให้ มีความยาวเหมาะสม)
             (7) ตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กมีความหมายต่างกันเสมอ (Case-Sensitive) เช่น var ต่างกับ Var
         2) ธรรมเนียมการตังชื่อตัวแปร (ไม่ บังคับแต่ ควรทําตาม)
                                ้
            (1) ชื่อตัวแปร (และชื่อเมท็อด) นิ ยมขึ ้นต้ นด้ วยอักษรพิมพ์เล็ก / ชื่อคลาสนิ ยมขึ ้นต้ นด้ วยอักษรพิมพ์ใหญ่
            (2) ชื่อตัวแปรนิ ยมใช้ เป็ นภาษาอังกฤษ (แต่อาจใช้ เป็ นภาษาใดก็ได้ ขึ ้นกับการรองรับของ Editor ที่เขียน)
            (3) ชื่อตัวแปรควรตังชื่อให้ สื่อความหมายกับค่าของตัวแปรนัน เช่น stdID, firstName, birthDate เป็ นต้ น
                                  ้                                        ้
            (4) ชื่อตัวแปรถ้ าประกอบด้ วยคําหลายคําให้ เขียนคําแรกขึ ้นต้ นด้ วยอักษรพิมพ์เล็ก ส่วนคําถัดๆ ไปขึ ้นต้ น
                ด้ วยอักษรพิมพ์ใหญ่ เช่น hostName, numberOfCourse, currentTime, firstDayOfMonth เป็ นต้ น
            (5) ชื่อตัวแปรถ้ าเป็ นค่าคงที่นิยมตังชื่อด้ วยอักษรพิมพ์ใหญ่ทงหมด เช่น PI, MONTH_OF_YEAR เป็ นต้ น
                                                 ้                           ั้
            (6) พยายามหลีกเลี่ยงการใช้ สญลักษณ์ '$' และ สัญลักษณ์ '_'
                                              ั

     3. การประกาศและกําหนดค่ าตัวแปร
        1) การประกาศตัวแปร
               <ประเภทข้ อมูล> <ชื่อตัวแปร>;

             ตัวอย่าง   int x;     double num;       String lastName;          boolean check;


     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Data Operations and Processing - 02                                  Computer Programming using Java                17
    2) การกําหนดค่ าตัวแปร                              อาจเป็ นค่าคงที่ (Constant) หรื อค่าจากตัวแปรอื่นก็ได้
         <ชื่อตัวแปรที่ประกาศไว้ แล้ ว> = <ค่าของตัวแปร>;
                                                                         ซ้ ายต้ องใหญ่หรื อพอดีกบขวา
                                                                                                 ั
       ตัวอย่าง x = 5; num = 4.01; lastName = "Rukchula"; check =                              true;      a = b;

    3) การประกาศพร้ อมกับการกําหนดค่ าตัวแปร (รวมวิธีที่ 1 และ 2 เข้ าด้ วยกัน)                    ซ้ ายตังขวายัด
                                                                                                          ้
         <ประเภทข้ อมูล> <ชื่อตัวแปร> = <ค่าของตัวแปร>;

       ตัวอย่าง int x = n; double num = 4.01; char ch = 'A';                           float y = 2.9f;

    4) การประกาศและกําหนดค่ าตัวแปรหลายตัวที่มีประเภทข้ อมูลเดียวกัน                            คันด้ วย Comma
                                                                                                  ่
         <ประเภทข้ อมูล> <ชื่อตัวแปร>, <ชื่อตัวแปร> = <ค่าของตัวแปร>, ...;

        ตัวอย่าง   int x = n, year, age = 18, z, a;


4. ค่ าของตัวแปรตามประเภทข้ อมล
                              ู
   1) ค่ าของจํานวนเต็ม
           ประเภทข้ อมลู                     รปแบบการเขียน / ตัวอย่ างค่ าที่จัดเก็บ
                                              ู
         byte และ short   เขียนเลขจํานวนเต็มทัวไป เช่น byte x = 12; short y = 199;
                                                  ่
         int (ฐานสิบ)     เขียนเลขจํานวนเต็มทัวไป เช่น int dec = 26;
                                                    ่
         int (ฐานแปด)     เขียน 0 (ศูนย์) นําหน้ าเลขจํานวนเต็ม เช่น int oct = 032;
         int (ฐานสิบหก)   เขียน 0x หรื อ 0X นําหน้ าเลขจํานวนเต็ม เช่น int hex = 0x1A;
         long             เขียนเลขจํานวนเต็มแล้ วมีอกษร l หรื อ L ต่อท้ าย เช่น long n = 26L;
                                                       ั
    2) ค่ าของจํานวนจริง
            ประเภทข้ อมล
                       ู                          รปแบบการเขียน / ตัวอย่ างค่ าที่จัดเก็บ
                                                   ู
         float                   เขียนเลขจํานวนจริงแล้ วมีอกษร f หรื อ F ต่อท้ าย เช่น float f = 1.3F;
                                                           ั
         double    (รูปทัวไป) เขียนเลขจํานวนจริงทัวไป เช่น double d = 1.3;
                         ่                           ่
         double    (รูปเต็ม)     เขียนเลขจํานวนจริงแล้ วมีอกษร d หรื อ D ต่อท้ าย เช่น double d = 1.3D;
                                                             ั
         double    (รูป a x 10b) เขียนค่า a ในรูปของเลขจํานวนเต็มหรื อเลขจํานวนจริงทัวไป ตามด้ วยอักษร e
                                                                                           ่
                                 หรื อ E และตามด้ วยค่า b ในรูปของเลขจํานวนเต็ม (เท่านัน) เช่น
                                                                                             ้
                                                                                             8
                                     double s = 93.478e8; มีคาเท่ากับ 93.478 x 10
                                                                  ่
                                                                                    –5
                                     double t = 631E-5; มีคาเท่ากับ 631 x 10
                                                                ่
                                                                                       200
                                     double u = 2.0e+200; มีคาเท่ากับ 2.0 x 10
                                                                    ่
    3) ค่ าของตัวอักขระและสตริง
            ประเภทข้ อมล ู                  รปแบบการเขียน / ตัวอย่ างค่ าที่จัดเก็บ
                                             ู
        char (รู ปทัวไป)
                    ่       เขียนอักขระทัวไปคล่อมด้ วย Single Quote เช่น char c =
                                         ่                                                         'a';


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
18     Computer Programming using Java                                     02 - Data Operations and Processing


                ประเภทข้ อมล  ู                        รปแบบการเขียน / ตัวอย่ างค่ าที่จัดเก็บ
                                                        ู
              char (รู ป Unicode)    เขียนรหัส Unicode คล่อมด้ วย Single Quote เช่น char c = 'u0043';
                                         'u0030' หรื อ รหัส 48 (ฐานสิบ)     มีคาเท่ากับอักขระ '0'
                                                                                ่
                                         'u0041' หรื อ รหัส 65 (ฐานสิบ)     มีคาเท่ากับอักขระ 'A'
                                                                                  ่
                                         'u0061' หรื อ รหัส 97 (ฐานสิบ)     มีคาเท่ากับอักขระ 'a'
                                                                                    ่
                                         'u0E01' หรื อ รหัส 3585 (ฐานสิบ)      มีคาเท่ากับอักขระ 'ก'
                                                                                      ่
              char (รู ปพิเศษ)       เขียนรหัสพิเศษคล่อมด้ วย Single Quote เช่น char tab = 't';
              String (รู ปทัวไป)
                             ่       เขียนสายอักขระคล่อมด้ วย Double Quote เช่น String s = "Bank";
              String (รู ปอ๊ อบเจ็ค) สร้ างอ๊ อบเจ็คจากคลาส String เช่น String t = new String("CU");


     โจทย์ ข้อที่ 1 [ระดับง่ าย] จงพิจารณาคําสั่งต่ อไปนีผิด ( ) หรื อถูก ( ) พร้ อมบอกเหตุผล (15 คะแนน)
                                                         ้
     1)           integer x; .

     2)           int x = 1.5; .

     3)           byte x = 1000; .

     4)           int null = 5; .

     5)           Int y = 1; .

     6)           float cal = 15.763; .

     7)           String id = "1"; .

     8)           char c = 'Tuksin'; .

     9)           String s1 = 'Apisit'; .

     10)          String 3Type = "One Two Three"; .

     11)          short _$abcdefghijklmnopqrstuvwxyz0123456789$_; .

     12)          boolean flag = 1; .

     13)          float ตัวเลข = 139L; .

     14)          String _ = "ヰベ㈣㈠ヘョ"; .

     15)          int ch = 'u0044'; .


     โจทย์ ข้อที่ 2 [ระดับปานกลาง] จงเติมเต็มคําสั่งการประกาศและกําหนดค่ าของตัวแปรต่ อไปนีให้ สมบรณ์
                                                                                              ้     ู
     พร้ อมทังระบุค่าที่เก็บอย่ ูในตัวแปรแต่ ละข้ อ (15 คะแนน)
              ้
       ข้ อ ประเภทตัวแปร                การประกาศและกําหนดค่ าตัวแปร            ค่ าที่เก็บในตัวแปร
         1.                        var1 = 014;

         2.                        var2 = 014f;

         3. int                    var3 = 'C';



     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Data Operations and Processing - 02                                 Computer Programming using Java              19
  ข้ อ    ประเภทตัวแปร             การประกาศและกําหนดค่ าตัวแปร                      ค่ าที่เก็บในตัวแปร
   4.                        var4 = 0E-0;

   5.    double              var5 = 0x1D;

   6.                        var6 = 1.0e2.0;

   7.                        var7 = .1000;

   8.                        var8 = 08;

   9.                        var9 = null;

  10.                        var10 = 100E012;

  11.                        var11 = 1f + "";

  12.                        var12 = 1e1 + "";

  13.                        var13 = 0d;

  14.                        var14 = 3.f;

  15.                        var15 = 0xbeef;



2. การรั บเข้ าและส่ งออกข้ อมล (Input and Output the Data)
                              ู
1. การรับเข้ าข้ อมล (Input the Data)
                     ู
   การรับเข้ าข้ อมูลในภาษาจาวามีอยูหลายวิธีด้วยกัน แต่ในเอกสารชุดนี ้จะนําเสนอการรับเข้ าข้ อมูลที่นิยมใช้ กน
                                      ่                                                                      ั
   มากในปั จจุบน นันคือการรับเข้ าข้ อมูลด้ วยคลาส Scanner ซึงมีขนตอนการใช้ งานดังต่อไปนี ้
                  ั ่                                        ่ ั้
   1) การนําเข้ าคลาส Scanner ก่อนเรี ยกใช้ งานคลาส Scanner จะต้ องนําเข้ าคลาส Scanner ก่อนเสมอ โดย
      ใช้ คําสัง import java.util.Scanner; ซึงระบุไว้ ก่อนเขียนหัวคลาส ดังตัวอย่าง
               ่                                    ่
         1    import java.util.Scanner;
         2    public class Test {
         3      ...
         4    }


    2) การสร้ างตัวอ่ านจากแปนพิมพ์ เป็ นการกําหนดชื่อตัวอ่านเพื่อใช้ สําหรับรับค่าข้ อมูลต่างๆ จากแปนพิมพ์
                               ้                                                                     ้
       โดยจะสร้ างเพียงครังเดียวเท่านัน และจะใช้ งานตัวอ่านนันตลอดทังโปรแกรม ซึงมีคําสังดังนี ้
                          ้           ้                      ้      ้             ่       ่
         Scanner <ชื่อตัวอ่าน> = new Scanner(System.in);


         1    import java.util.Scanner;
         2    public class Test {
                                                                                  System.in หมายถึง
         3      public static void main(String[] args) {
         4        Scanner kb = new Scanner(System.in);                            แปนพิมพ์ (keyboard)
                                                                                    ้
         5        ...
         6      }           ตัวอ่านชื่อว่า kb
         7    }


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
20     Computer Programming using Java                                     02 - Data Operations and Processing


         3) การรับค่ าข้ อมลด้ วยตัวอ่ านจากแปนพิมพ์ ตัวอ่านจากแปนพิมพ์ที่สร้ างขึ ้นสามารถรับค่าข้ อมูลประเภท
                           ู                  ้                      ้
            จํานวนเต็ม จํานวนจริง และสตริ ง โดยใช้ คําสังและเมท็อดต่อไปนี ้
                                                        ่
            1) คําสังรับค่าจํานวนเต็มประเภท int โดยใช้ เมท็อด nextInt() หลังชื่อเมท็อด nextInt ต้ องตามด้ วย
                    ่
                                                                                วงเล็บเสมอ จึงได้ เป็ น   nextInt()
                   int <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextInt();                  (ห้ ามลืมเด็ดขาด)
                 เช่น int num = kb.nextInt(); (รับค่า int จากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร num)
                                                                                      ั
              2) คําสังรับค่าจํานวนเต็มประเภท long โดยใช้ เมท็อด nextLong()
                      ่
                   long <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextLong();


                 เช่น long n = kb.nextLong(); (รับค่า long จากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร n)
                                                                                       ั
              3) คําสังรับค่าจํานวนจริ งประเภท float โดยใช้ เมท็อด nextFloat()
                      ่
                   float <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextFloat();


                 เช่น float f = kb.nextFloat(); (รับค่า float จากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร f)
                                                                                          ั
              4) คําสังรับค่าจํานวนจริ งประเภท double โดยใช้ เมท็อด nextDouble()
                      ่
                   double <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextDouble();


                 เช่น double d = kb.nextDouble(); (รับค่า double จากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร d)
                                                                                             ั
              5) คําสังรับค่าข้ อมูลประเภท String ทีละบรรทัด โดยใช้ เมท็อด nextLine()
                      ่
                   String <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextLine();


                 เช่น String s1 = kb.nextLine(); (รับค่า String ทังบรรทัดจากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร s1)
                                                                           ้                                    ั
              6) คําสังรับค่าข้ อมูลประเภท String ทีละคําหรื อทีละช่วง (แต่ละช่วงคันด้ วยช่องว่างหรื อ t หรื อ n)
                      ่                                                            ่
                 โดยใช้ เมท็อด next()
                   String <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.next();


                 เช่น   String s2 = kb.next();      (รับค่า String คําแรกจากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร s2)
                                                                                                     ั
     โจทย์ ข้อที่ 3 [ระดับง่ าย] จงเติมเต็มคําสั่งการรั บค่ าของตัวแปรในแต่ ละข้ อต่ อไปนีให้ สมบรณ์ พร้ อมทัง
                                                                                          ้      ู           ้
     ระบุค่าที่เก็บอย่ ในตัวแปรแต่ ละข้ อ (15 คะแนน)
                       ู
      Scanner kb = new Scanner(System.in);


                  ประเภท             การรั บค่ าจากแปนพิมพ์ เพื่อ
                                                     ้                     ค่ าที่ปอนเข้ ามา
                                                                                   ้                  ค่ าที่เก็บใน
       ข้ อ
                  ตัวแปร               เก็บยังตัวแปรที่กาหนด
                                                        ํ                   ทางแปนพิมพ์
                                                                                     ้                   ตัวแปร
        1.                      var1 = kb.nextInt();                      087

        2.                      var2 = kb.nextLong();                     -0


     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Data Operations and Processing - 02                                   Computer Programming using Java           21
            ประเภท              การรั บค่ าจากแปนพิมพ์ เพื่อ
                                                ้                         ค่ าที่ปอนเข้ ามา
                                                                                  ้           ค่ าที่เก็บใน
  ข้ อ
            ตัวแปร                เก็บยังตัวแปรที่กาหนด
                                                   ํ                       ทางแปนพิมพ์
                                                                                    ้            ตัวแปร
   3.    int                                                             7.0

   4.                      var4 = kb.nextFloat();                        22.50000

   5.    long                                                            46L

   6.    float                                                           7.2F

   7.    double                                                          -0.1

   8.    double                                                          -13

   9.    double            var10 = kb.nextInt();                         1

  10.    double            var11 = kb.nextInt();                         1.0

  11.    int               var12 = kb.nextDouble();                      1.0

  12.                      var13 = kb.nextLine();                        22.50000

  13.                      var14 = kb.nextLine();                        Hi java CU

  14.                      var15 = kb.next();                            Hi java CU

  15.    String            var16 = kb.nextInt();                         191


2. การส่ งออกข้ อมล (Output the Data)
                   ู
   การส่งออกข้ อมูลหรื อการแสดงผลข้ อมูลสามารถทําได้ หลายช่องทาง แต่ช่องทางที่พื ้นฐานที่สดนันก็คือจอภาพ
                                                                                               ุ ่
   (Monitor/Screen) โดยรายละเอียดของคําสังเบื ้องต้ นได้ กล่าวไปแล้ วในบทที่ 1 ซึงมีคําสังดังนี ้
                                          ่                                      ่       ่
   1) การแสดงผลออกทางจอภาพแบบไม่ขึ ้นบรรทัดใหม่ โดยใช้ เมท็อด print()
         System.out.print(...);                                            System.out หมายถึงจอภาพ


    2) การแสดงผลลัพธ์ออกทางจอภาพแบบขึ ้นบรรทัดใหม่ โดยใช้ เมท็อด println()
         System.out.println(...);


    สิงที่สามารถระบุและแสดงผลภายในวงเล็บของเมท็อดทังสองได้ นนมีดงนี ้
      ่                                              ้      ั้ ั
    1) ตัวแปร เช่น System.out.print(num);
    2) ตัวเลข เช่น System.out.print(13);
    3) นิพจน์ เช่น System.out.print(x * y + (10 – z));
    4) ข้ อความหรื อสตริ ง เช่น System.out.print("Hello Java");
    5) ข้ อ 1-4 ปะปนกัน เช่น System.out.print("Money = " + (x *                   y + 92.4) + " Baht");

                                                         ใช้ เครื่ องหมาย + เป็ นตัวเชื่อม
                                                         แต่ละช่วงเข้ าด้ วยกัน

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
22     Computer Programming using Java                                          02 - Data Operations and Processing


     3. รปแบบการเขียนโปรแกรมรั บเข้ าและส่ งออกข้ อมลที่ต้ องปฏิบตตาม มีรายละเอียดดังตัวอย่างต่อไปนี ้
         ู                                          ู            ั ิ
           1 import java.util.Scanner;                  ต้ องนําเข้ าคลาส Scanner
           2 public class Test {
           3    public static void main(String[] args) {
           4      Scanner kb = new Scanner(System.in);                         ต้ องสร้ างตัวอ่าน
           5      System.out.print("Please enter number: ");
           6      int num = kb.nextInt();                                           ต้ องแสดงข้ อความว่าต้ อง
           7
           8      ...                     หลังชื่อเมท็อดอย่าลืมใส่วงเล็บ            การรับเข้ าข้ อมูลอะไร โดย
           9
           10
                                                                                    ใช้ เมท็อด print()
                  System.out.println("Result is " + num);
           11   }
           12 }                                    ต้ องแสดงผลลัพธ์ โดยใช้ เมท็อด println()

          โปรแกรมจะแสดงผลลัพธ์ออกทางจอภาพดังนี ้                โปรแกรมจะแสดงข้ อความเพื่อแจ้ งให้ ผ้ ใช้ ทราบว่า
                                                                                                      ู
           Please enter number:            .                    ระบบกําลังรอรับค่าตัวเลขหนึงค่าจากแปนพิมพ์
                                                                                           ่            ้

           Please enter number: 15 .
                                                       ผู้ใช้ พิมพ์ตวเลข 15 ผ่านทางแป้ นพิมพ์พร้ อมทังกดปุ่ ม Enter เพื่อขึ ้น
                                                                    ั                                ้
                                                       บรรทัดใหม่ ซึงทําให้ คาของตัวเลข 15 เข้ าไปเก็บอยูในตัวแปร num
                                                                       ่      ่                          ่

           Please enter number: 15                    โปรแกรมแสดงค่าที่เก็บอยูในตัวแปร num
                                                                             ่
           Result is 15
            .                                         ขึ ้นบนจอภาพ


     โจทย์ ข้อที่ 4 [ระดับง่ าย] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บเลขประจําตัวนิสิต ชื่อ-นามสกุล
                                                             ู
     นิสิต อายุนิสิต และผลการเรี ยนเฉลี่ยสะสมของนิสิต เข้ ามาทางแปนพิมพ์ เก็บไว้ ในตัวแปร id, name,
                                                                   ้
     age และ gpa ตามลําดับ และแสดงค่ าของทังสี่ตวแปรนันออกทางจอภาพให้ สวยงาม (10 คะแนน)
                                               ้ ั      ้
      1     2     3     4




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Data Operations and Processing - 02                                Computer Programming using Java              23
โจทย์ ข้อที่ 5 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็ม สอง
                                                                 ู
จํานวนเข้ ามาทางแปนพิมพ์ เก็บไว้ ในตัวแปร a และ b ตามลําดับ แล้ วทําการสลับค่ าของสองตัวแปรนัน
                     ้                                                                        ้
โดยที่ค่าของตัวแปร a หลังการสลับจะเท่ ากับค่ าเก่ าของตัวแปร b และค่ าของตัวแปร b หลังการสลับจะ
เก็บค่ าเก่ าของตัวแปร a พร้ อมทังแสดงผลลัพธ์ ออกทางจอภาพตามตัวอย่ างต่ อไปนี ้ (10 คะแนน)
                                 ้
 1      2     3     4                                                           Enter   a:   13
                                                                                Enter   b:   21
                                                                                Value   of   a: 21
                                                                                Value   of   b: 13




3. ตัวดําเนินการและคลาสมาตรฐาน (Operators and Standard Class)
1. ตัวดําเนินการ (Operators) แบ่งออกเป็ น 5 กลุมหลักดังต่อไปนี ้
                                              ่
   1) ตัวดําเนินการทางคณิตศาสตร์ (Arithmetic Operators) ได้ แก่
          สัญลักษณ์               ความหมาย                                       ตัวอย่ าง
              +       การบวก                                x + y หรื อ a     + b + c
              -       การลบ                                 x - y หรื อ a     - b - c
              *       การคูณ                                x * y หรื อ a     * b * c
              /       การหาร                                x / y หรื อ a     / b / c
              %       การหารเอาแต่เศษ (Modulo)              x % y หรื อ a     % b % c


     2) ตัวดําเนินการเพิ่มค่ าและลดค่ า (Increment and Decrement Operators) ได้ แก่
           สัญลักษณ์                     ความหมาย                              ตัวอย่ าง
              x++        ใช้ งานตัวแปร x ก่อนเพิ่มค่าขึ ้นอีก 1 ให้ x = 2, y = 1 จะได้ วา x++
                                                                                        ่         + y = 3
              ++x        เพิ่มค่าขึ ้นอีก 1 ก่อนใช้ งานตัวแปร x ให้ x = 2, y = 1 จะได้ วา ++x
                                                                                          ่       + y = 4
              x--        ใช้ งานตัวแปร x ก่อนลดค่าลงอีก 1 ให้ x = 2, y = 1 จะได้ วา x--     ่     + y = 3
              --x        ลดค่าลงอีก 1 ก่อนใช้ งานตัวแปร x ให้ x = 2, y = 1 จะได้ วา --x       ่   + y = 2

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
24     Computer Programming using Java                                       02 - Data Operations and Processing


         3) ตัวดําเนินการเปรียบเทียบค่ า (Comparison/Relational Operators) ได้ แก่
               สัญลักษณ์                 ความหมาย                                ตัวอย่ าง
                   ==      เท่ากัน                            x == y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน) ้
                   !=      ไม่เท่ากัน                         x != y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน)   ้
                    <      น้ อยกว่า                          x < y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน)
                                                                                                       ้
                    >      มากกว่า                            x > y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน)้
                   <=      น้ อยกว่าหรื อเท่ากัน              x <= y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน)     ้
                   >=      มากกว่าหรื อเท่ากัน                x >= y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน)       ้
         4) ตัวดําเนินการทางตรรกศาสตร์ (Logical Operators) ได้ แก่
               สัญลักษณ์              ความหมาย                            ตัวอย่ าง
                   &&      และ (AND)                         (x >= y) && (x != 0)
                   ||      หรื อ (OR)                        (x == y) || (x == z)
                    !      นิเสธ (NOT)                       !(x <= y)


         5) ตัวดําเนินการกําหนดค่ า (Assignment Operators) ได้ แก่
               สัญลักษณ์                       ความหมาย                                  ตัวอย่ าง
                    =       เท่ากับ                             x        = y นําค่า y เก็บไว้ ใน x
                   +=       x += y มีคาเท่ากับ x = x + y
                                       ่                        x        += 14 จะได้ วา x = x + 14
                                                                                       ่
                   -=       x -= y มีคาเท่ากับ x = x - y
                                         ่                      x        -= 1 จะได้ วา x = x - 1
                                                                                     ่
                   *=       x *= y มีคาเท่ากับ x = x * y
                                           ่                    x        *= y-- จะได้ วา x = x * y--
                                                                                         ่
                   /=       x /= y มีคาเท่ากับ x = x / y
                                             ่                  x        /= 5.8 จะได้ วา x = x / 5.8
                                                                                           ่
     โจทย์ ข้อที่ 6 [ระดับง่ าย] จงแสดงผลลัพธ์ จากส่ วนของโปรแกรมต่ อไปนี ้ (5 คะแนน)
       ข้ อ                             ส่ วนของโปรแกรม                               ผลลัพธ์ ท่ แสดง
                                                                                                 ี
       1. int a = 21, b = 0;
              System.out.println("a" + a - b);

        2.    double x = 1.0, y = 1.000;
              System.out.println(x > y);

        3.    double a = 1.6; a += 5.1;
              System.out.println(a % 4);

        4.    int x = 6;
              System.out.println(x-- + ++x - --x - x-- + x++ + x);

        5.    boolean a = true, b = true, c = false;
              System.out.println(a || b && c);


     2. กฎการพิจารณาลําดับตัวดําเนินการ (เฉพาะที่ใช้ กนบ่อยๆ)
                                                      ั
        ลําดับ ชื่อตัวดําเนินการ / ตัวดําเนินการ                ตัวอย่ างการทํางาน
          1. วงเล็บ (Parentheses)            (…)  x – (2 + y) จะทํา (2 + y) ก่อนนํา x มาลบออก

          2. เรี ยกเมท็อด (Method Call) () Math.sqrt(a + 2) จะทํา Math.sqrt(…) ก่อน
     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Data Operations and Processing - 02                                Computer Programming using Java              25
     ลําดับ ชื่อตัวดําเนินการ / ตัวดําเนินการ                         ตัวอย่ างการทํางาน
            ค่าบวก (Unary Plus)            +       2 * +a จะทํา +a ก่อนนํา 2 ไปคูณกับคําตอบ
       3.
            ค่าลบ (Unary Minus)            -       –a / 3 จะทํา –a ก่อนนําคําตอบไปหาร 3

            คูณ (Multiplication)           *       x * 3 + 2 จะทํา x * 3 ก่อนนําคําตอบไปบวก 2

       4. หาร (Division)                   /       3 – 5 / x จะทํา 5 / x ก่อนนํา 3 มาลบออก

            หารเอาแต่เศษ (Modulo)          %       y % 2 + 1 จะทํา y % 2 ก่อนนําคําตอบไปบวก 1

            บวก (Addition)                 +       x + 17 > 19 จะทํา x + 17 ก่อนทํา >
       5.
            ลบ (Subtraction)               -       x – 9.5 = 42.5 จะทํา x – 9.5 ก่อนทํา =

       6. การเปรี ยบเทียบค่า : น้ อยกว่า (<), น้ อยกว่าเท่ากัน (<=), มากกว่า (>), มากกว่าเท่ากัน (>=)
       7. การเปรี ยบเทียบค่า : เท่ากัน (==), ไม่เท่ากัน (!=)
       8. และ (Logical AND)               &&       a || b && c จะทํา && ก่อน ||

       9. หรื อ (Logical OR)              ||       x = d > 3 || d <= 15 จะทํา || ก่อนทํา =

      10. เท่ากับ (Assignment)             =       จะถูกพิจารณาหลังสุด
     หมายเหตุ ในกรณีที่ตวดําเนินการมีลาดับความสําคัญเท่ากัน ให้ พิจารณาการทํางานจากซ้ ายไปขวา
                         ั            ํ

โจทย์ ข้อที่ 7 [ระดับง่ าย] จงแสดงลําดับการทํางานที่ถูกต้ องของตัวดําเนินการของนิพจน์ ต่อไปนี ้ โดยให้
เขียนหมายเลขลําดับกํากับไว้ บนตัวดําเนินการนัน (5 คะแนน)
                                               ้

1)   a * (b + -(c / d) / e) + (f – g % h)


2)   (1.0 / 2.0) * Math.sin(x – Math.PI / Math.sqrt(y))


3)   a * b + (-c) / d / e * f - g % h


4)   cal = (1 – x % 2.5 + y * z) + 3 * k – -7 / w


5)   cal = x == 5 || x <= 3 && x >= -3 || (x != 0)


3. ประเภทข้ อมลที่เป็ นผลลัพธ์ สุดท้ ายจากการดําเนินการ
              ู
   สามารถสรุปความสัมพันธ์ของประเภทข้ อมูล ตัวเลข ตัวอักขระ ตัวตรรกะ และ สตริ ง ได้ 20 รูปแบบ ดังนี ้
    รปแบบ ข้ อมลที่ 1
     ู             ู             กลุ่มของตัวดําเนินการ         ข้ อมลที่ 2 ประเภทข้ อมลสุดท้ าย
                                                                     ู                     ู
       1.       ตัวเลข                 + - * / %                  ตัวเลข ตัวเลข (ที่ มีศักดิ์ศรีสูงสุด)
       2.       ตัวเลข             = += -= *= /=                ตัวเลข[1] ตัวเลข (ของข้ อมลที่ 1)
                                                                                              ู
       3.       ตัวเลข            == != < > <= >=                 ตัวเลข boolean
       4.       ตัวเลข     + - * / % = += -= *= /=                char     ตัวเลข

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
26     Computer Programming using Java                                            02 - Data Operations and Processing


          รปแบบ ข้ อมลที่ 1
           ู          ู                    กลุ่มของตัวดําเนินการ                ข้ อมลที่ 2 ประเภทข้ อมลสุดท้ าย
                                                                                      ู                     ู
             5.    ตัวเลข                           ++ --                             -     ตัวเลข
             6.       -                             ++ --                          ตัวเลข ตัวเลข
             7.     char                         + - * / %                         char     ตัวเลข (โดยทัวไปคือ int)
                                                                                                         ่
             8.     char                      = += -= *= /=                       char        char
             9.     char                    == != < > <= >=                       char        boolean

             10.    char                         + - * / %                        ตัวเลข      ตัวเลข
             11.    char                       += -= *= /=                        ตัวเลข      char

             12.    char                                =                        ตัวเลข[2]    char

             13.    char                            ++ --                            -        char

             14.      -                             ++ --                         char        char
             15.  String                                +                      ทุกประเภท      String
             16. ทุกประเภท                              +                       String        String
             17.  String                                =                       String        String
             18.  String                            == !=                       String        boolean
             19. boolean                           = && ||                      boolean       boolean
             20.      -                                 !                       boolean       boolean      (ค่ าตรงข้ าม)
         [1]
                                                    ั ์
             ประเภทข้ อมูลของข้ อมูลที่ 1 ต้ องมีศกดิศรี สูงกว่าหรือเท่ากับประเภทข้ อมูลของข้ อมูลที่ 2
         [2]
                                                                           ั ์
             ประเภทข้ อมูลของข้ อมูลที่ 2 ต้ องเป็ นตัวเลขจํานวนเต็มที่มีศกดิศรี ตํ่ากว่าหรื อเท่ากับ int เท่านัน
                                                                                                                ้

     โจทย์ ข้อที่ 8 [ระดับง่ าย] จงระบุประเภทข้ อมลที่เป็ นผลลัพธ์ สุดท้ ายและค่ าคําตอบจากการดําเนินการ
                                                  ู
     ของนิพจน์ ต่อไปนี ้ (10 คะแนน)
       ข้ อ                      นิพจน์                     ประเภทข้ อมลสุดท้ าย
                                                                          ู               คําตอบ
        1. (5 + 4) + ((3 + 2L) – 1)
        2. (5 – 2 / 1) + 0.000 + 'u0000'
        3. 5.0F * 6 – ('D' - 'A')
       *4. 2 % (0.4 + 0.3F)
       *5. !("Java" == "Jaba");
        6. (13 / 5) + (2 / 3)
        7. '0' - '1' + "5" + false
        8. 4E1 / 2
        9. !false || true && false || !true
       10. 0.0 / (10 + 'q' – 'Y') != 0L

     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Data Operations and Processing - 02                                  Computer Programming using Java               27
4. การเปลี่ยนประเภทข้ อมล (Type Conversions)
                         ู
   1) เปลี่ยนแบบอัตโนมัติ โดยทัวไปคอมไพเลอร์ ของภาษาจาวาจะปรับเปลี่ยนประเภทข้ อมูลให้ อตโนมัติตาม
                               ่                                                                 ั
      ความเหมาะสม ซึงเป็ นไปตามความสัมพันธ์ทง้ั 19 รูปแบบที่ได้ กล่าวไปในหัวข้ อที่แล้ ว ดังตัวอย่างต่อไปนี ้
                    ่
         double a = 34 + 1.0F;          //a = 35.0          int c = 'A';                        //c = 65
         float b = 4L / 3;              //b = 1.0F          char d = 65;                        //d = 'A'


    2) เปลี่ยนโดยการบังคับตามที่ระบุ (Casting) จะเป็ นการบังคับหรื อกําหนดประเภทข้ อมูลที่ต้องการจะให้
       เป็ น โดยการใส่วงเล็บชื่อประเภทข้ อมูลหน้ าข้ อมูลที่จะเปลี่ยน ดังรูปแบบคําสังและตัวอย่างต่อไปนี ้
                                                                                    ่
         (<ประเภทข้ อมูล>) <ข้ อมูล/ตัวแปร>             ใช้ กบข้ อมูลประเภทตัวเลข (เต็ม/จริ ง) และอักขระ เท่านัน
                                                             ั                                                 ้

         byte b = 50;                                       char c = '1';
         b = (byte)(b * 2);             //b = 100           int num = (int) c;                  //num = 49

         double x = 5.99;                                   int ten = (int) "10";                    //Error
         long y = (long) x;             //y = 5             boolean f = (boolean) 1;                 //Error


โจทย์ ข้อที่ 9 [ระดับง่ าย] จงระบุประเภทข้ อมลที่เป็ นผลลัพธ์ สุดท้ ายและค่ าคําตอบจากการดําเนินการ
                                             ู
ของนิพจน์ หรือคําสั่งต่ อไปนี ้ (10 คะแนน)
  ข้ อ                      นิพจน์                     ประเภทข้ อมลสุดท้ าย
                                                                     ู               คําตอบ
   1. (byte)(3 + 5.4) / 7
   2. (3 + 5.4) / (float) 7
   3. (float)((3 + 2) / 7)
   4. char c = (double) 'A';
   5. char c = (int) 'b'; c += 1.7;
   6. char c = 67 + (int) 3.91
   7. (int) 19.8E-1
   8. (short)((double) 1 / 2) == 00L + 0
   9. (byte) 011 + (short) 1.9991
  10. (byte) '0' – '6' + (char) 1.5

5. คลาสมาตรฐานทางคณิตศาสตร์ (Mathematic Class) มีเมท็อดที่สําคัญดังนี ้
    ลําดับ      รปแบบคําสั่ง
                 ู                    ประเภทข้ อมลรับเข้ า
                                                   ู                         หน้ าที่
      1. Math.toRadians(degree)             double              เปลี่ยนองศาเป็ นเรเดียน
      2. Math.toDegrees(radian)             double              เปลี่ยนเรเดียนเป็ นองศา
      3. Math.sin(radian)                   double              คํานวณค่าไซน์ (Sine)
      4. Math.cos(radian)                   double              คํานวณค่าโคไซน์ (Cosine)
© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
28     Computer Programming using Java                                         02 - Data Operations and Processing


            ลําดับ            รปแบบคําสั่ง
                               ู                          ประเภทข้ อมลรับเข้ า
                                                                     ู                               หน้ าที่
              5.  Math.sqrt(x)                                   double              คํานวณค่ารากที่สอง
              6.  Math.pow(x, y)                           double, double            คํานวณค่าเลขยกกําลัง xy
              7.  Math.abs(x)                                    double              คํานวณค่าสัมบูรณ์ (Absolute)
              8.  Math.max(x, y)                           double, double            คํานวณค่ามากระหว่าง x กับ y
              9.  Math.min(x, y)                           double, double            คํานวณค่าน้ อยระหว่าง x กับ y
             10.  Math.log10(x)                                  double              คํานวณค่าล๊ อกาลิทมฐานสิบ
                                                                                                           ึ
             11.  Math.PI                               ค่าคงที่ PI ซึงเท่ากับ 3.141592653589793…
                                                                      ่
                  Math.random()                             ไม่มีข้อมูลรับเข้ า      สร้ างตัวเลขสุมในช่วง [0.0, 1.0)
                                                                                                   ่
             12.
                  (int)(Math.random() * (b – a + 1) + a) สร้ างตัวเลขสุมจํ านวนเต็มในช่วง a ถึง b
                                                                                         ่
           หมายเหตุ ผลลัพธ์ที่ได้ ทกข้ อจะเป็ นประเภท double (ยกเว้ นข้ อที่ 12 ส่วนล่าง ผลลัพธ์จะเป็ นประเภท int)
                                   ุ

     โจทย์ ข้อที่ 10 [ระดับง่ าย] จงเขียนคําสั่งคํานวณ (Assignment Statement) จากนิพจน์ ต่อไปนีให้ ถูกต้ อง
                                                                                               ้
     ตามหลักไวยากรณ์ ของภาษาจาวา พร้ อมทังประกาศประเภทตัวแปรที่ใช้ ให้ ครบสมบรณ์ (6 คะแนน)
                                                  ้                                  ู
      ข้ อ            นิพจน์                                          คําสั่ง

                 2πr 2
      1.
                b 2 − 4ac


              m−n    p2 − q2
      2.           −
               2mn   p+q


                 3x 3 + 4 y 4
      3.                       + πxy
              ( x + y)( x − y)



     โจทย์ ข้อที่ 11 [ระดับง่ าย] จงเขียนคําสั่งภาษาจาวาที่ถูกต้ องสมบรณ์ เพื่อกําหนดค่ าให้ กับตัวแปร n โดย
                                                                      ู
     ใช้ การสุ่มค่ าตัวเลขจํานวนเต็มตามเงื่อนไขต่ อไปนี ้ (6 คะแนน)
      ข้ อ                เงื่อนไข                                      คําสั่ง
       1. สุมตัวเลข 0 – 9
              ่
       2. สุมตัวเลข 1 – 10
                ่
       3. สุมตัวเลข 0 – 10
                  ่
       4. สุมตัวเลข 0 – 987
                    ่
       5. สุมตัวเลข 1 – 500
                      ่
       6. สุมตัวเลข 2 – 600
                        ่

     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Data Operations and Processing - 02                                Computer Programming using Java              29
โจทย์ ข้อที่ 12 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มที่มี
                                                                  ู
ความยาว 4 หลักหนึ่งค่ าเข้ ามาทางแปนพิมพ์ แล้ วทําการสลับหลักของตัวเลขนันดังตัวอย่ างการแสดงผล
                                   ้                                    ้
ต่ อไปนี ้ (10 คะแนน)                                                Enter number: 1234
 1     2     3     4                                                          Reversed number: 4321

                                                                              Enter number: 9753
                                                                              Reversed number: 3579




โจทย์ ข้อที่ 13 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มจาก
                                                           ู
แปนพิมพ์ ยาว 6 หลัก แล้ วทําการตัดตัวเลข 2 หลักแรก และ 2 หลักสุดท้ าย เพื่อนํามาคํานวนหาค่ า
  ้
ผลบวกและผลต่ างของสองตัวเลขนัน พร้ อมทังแสดงผลลัพธ์ ออกทางจอภาพให้ สวยงาม (10 คะแนน)
                               ้         ้
 1     2     3     4




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
30     Computer Programming using Java                                     02 - Data Operations and Processing


     โจทย์ ข้อที่ 14 [ระดับยาก] ธนาคารลานเกียร์ แห่ งประเทศไทยได้ ว่าจ้ างให้ นิสิตชันปี ที่ 1 ของคณะวิศว-
                                                                                       ้
     กรรมศาสตร์ จุฬาลงกรณ์ มหาวิทยาลัย ซึ่งกําลังเรี ยนวิชาการเขียนโปรแกรมด้ วยภาษาจาวาเบืองต้ น     ้
     เพื่อสร้ างเครื่ องคํานวณจํานวนเงิน (Money Machine) โดยเมื่อผ้ ูใช้ ระบุจานวนเงินเข้ ามา โปรแกรมจะทํา
                                                                              ํ
     การคํานวณดว่ าจะต้ องใช้ ธนบัตรใบละ 1000 บาท 500 บาท 100 บาท 50 บาท และ 20 บาท อย่ างละกี่
                      ู
     ใบ และเหรี ยญ 10 บาท 5 บาท 2 บาท และ 1 บาท อย่ างละกี่เหรี ยญ โดยมีตัวอย่ างของผลการทํางาน
     ดังต่ อไปนี ้ (15 คะแนน)                                                              Money : 2897
      1     2     3     4                                                                     1000 Baht    :   2
                                                                                              500 Baht     :   1
                                                                                              100 Baht     :   3
                                                                                              50 Baht      :   1
                                                                                              20 Baht      :   2
                                                                                              10 Baht      :   0
                                                                                              5 Baht       :   1
                                                                                              2 Baht       :   1
                                                                                              1 Baht       :   0




            Do you know?

      1 / 0                   =    Error
      1.0 / 0.0               =    Infinity
      -1.0 / 0.0              =    -Infinity
      1.0 / (1.0 / 0)         =    0.0
      0.0 / 0.0               =    NaN


     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้

More Related Content

What's hot

Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionIMC Institute
 
Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets Hitesh-Java
 
Java Exception Handling and Applets
Java Exception Handling and AppletsJava Exception Handling and Applets
Java Exception Handling and AppletsTanmoy Roy
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣDimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8Dimitris Psounis
 
Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009Martin Odersky
 
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Unguryan Vitaliy
 
Exception Handling In Java
Exception Handling In JavaException Handling In Java
Exception Handling In Javaparag
 
Introduction to Java 8
Introduction to Java 8Introduction to Java 8
Introduction to Java 8Knoldus Inc.
 
Java 8 presentation
Java 8 presentationJava 8 presentation
Java 8 presentationVan Huong
 
Simple Introduction to JADE (Java Agent DEvelopment) Framework
Simple Introduction to JADE (Java Agent DEvelopment) FrameworkSimple Introduction to JADE (Java Agent DEvelopment) Framework
Simple Introduction to JADE (Java Agent DEvelopment) FrameworkAhmed Gad
 
Packages,static,this keyword in java
Packages,static,this keyword in javaPackages,static,this keyword in java
Packages,static,this keyword in javaVishnu Suresh
 

What's hot (20)

Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : Introduction
 
Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets
 
Java Exception Handling and Applets
Java Exception Handling and AppletsJava Exception Handling and Applets
Java Exception Handling and Applets
 
Java 8 Lambda Expressions
Java 8 Lambda ExpressionsJava 8 Lambda Expressions
Java 8 Lambda Expressions
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 
colas de prioridad
colas de prioridad colas de prioridad
colas de prioridad
 
Lecture 8 Library classes
Lecture 8 Library classesLecture 8 Library classes
Lecture 8 Library classes
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
 
Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009
 
09. Java Methods
09. Java Methods09. Java Methods
09. Java Methods
 
Java8 features
Java8 featuresJava8 features
Java8 features
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.
 
5.Methods cs
5.Methods cs5.Methods cs
5.Methods cs
 
Exception Handling In Java
Exception Handling In JavaException Handling In Java
Exception Handling In Java
 
Introduction to Java 8
Introduction to Java 8Introduction to Java 8
Introduction to Java 8
 
Java 8 presentation
Java 8 presentationJava 8 presentation
Java 8 presentation
 
Simple Introduction to JADE (Java Agent DEvelopment) Framework
Simple Introduction to JADE (Java Agent DEvelopment) FrameworkSimple Introduction to JADE (Java Agent DEvelopment) Framework
Simple Introduction to JADE (Java Agent DEvelopment) Framework
 
Packages,static,this keyword in java
Packages,static,this keyword in javaPackages,static,this keyword in java
Packages,static,this keyword in java
 

Viewers also liked

Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsJava-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsWongyos Keardsri
 
การเขียนแผนงาน/โครงการ ในงานสร้างเสริม ป้องกันโรค กองทุนทันตกรรม โดย ธงชัย ส...
การเขียนแผนงาน/โครงการ ในงานสร้างเสริม ป้องกันโรค กองทุนทันตกรรม  โดย ธงชัย ส...การเขียนแผนงาน/โครงการ ในงานสร้างเสริม ป้องกันโรค กองทุนทันตกรรม  โดย ธงชัย ส...
การเขียนแผนงาน/โครงการ ในงานสร้างเสริม ป้องกันโรค กองทุนทันตกรรม โดย ธงชัย ส...Nithimar Or
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File OperationsWongyos Keardsri
 
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysJava-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysWongyos Keardsri
 
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsJava-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsWongyos Keardsri
 
Java-Chapter 11 Recursions
Java-Chapter 11 RecursionsJava-Chapter 11 Recursions
Java-Chapter 11 RecursionsWongyos Keardsri
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Wongyos Keardsri
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Wongyos Keardsri
 
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and ObjectsJava-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and ObjectsWongyos Keardsri
 
ทฤษฎีระบบราชการ
ทฤษฎีระบบราชการทฤษฎีระบบราชการ
ทฤษฎีระบบราชการwiraja
 
ทฤษฎีการจัดการแบบวิทยาศาสตร์
ทฤษฎีการจัดการแบบวิทยาศาสตร์ทฤษฎีการจัดการแบบวิทยาศาสตร์
ทฤษฎีการจัดการแบบวิทยาศาสตร์wiraja
 
แนวความคิดและทฤษฎีการบริหาร
แนวความคิดและทฤษฎีการบริหารแนวความคิดและทฤษฎีการบริหาร
แนวความคิดและทฤษฎีการบริหารguest3d68ee
 
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมการควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมkorn27122540
 
บทที่ 2 พัฒนาการของแนวคิดและทฤษฎีการจัดการ
บทที่ 2 พัฒนาการของแนวคิดและทฤษฎีการจัดการบทที่ 2 พัฒนาการของแนวคิดและทฤษฎีการจัดการ
บทที่ 2 พัฒนาการของแนวคิดและทฤษฎีการจัดการNapin Yeamprayunsawasd
 
Chapter : 2 Organization Theory (บทที่ 2 ทฤษฎีองค์การ)
Chapter : 2 Organization Theory (บทที่ 2 ทฤษฎีองค์การ)Chapter : 2 Organization Theory (บทที่ 2 ทฤษฎีองค์การ)
Chapter : 2 Organization Theory (บทที่ 2 ทฤษฎีองค์การ)Aj.Mallika Phongphaew
 
ทฤษฏีการบริหาร
ทฤษฏีการบริหารทฤษฏีการบริหาร
ทฤษฏีการบริหารguest6b6fea3
 
How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramHow to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramWongyos Keardsri
 

Viewers also liked (20)

Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsJava-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and Applications
 
Ac current46
Ac current46Ac current46
Ac current46
 
การเขียนแผนงาน/โครงการ ในงานสร้างเสริม ป้องกันโรค กองทุนทันตกรรม โดย ธงชัย ส...
การเขียนแผนงาน/โครงการ ในงานสร้างเสริม ป้องกันโรค กองทุนทันตกรรม  โดย ธงชัย ส...การเขียนแผนงาน/โครงการ ในงานสร้างเสริม ป้องกันโรค กองทุนทันตกรรม  โดย ธงชัย ส...
การเขียนแผนงาน/โครงการ ในงานสร้างเสริม ป้องกันโรค กองทุนทันตกรรม โดย ธงชัย ส...
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File Operations
 
Java-Chapter 08 Methods
Java-Chapter 08 MethodsJava-Chapter 08 Methods
Java-Chapter 08 Methods
 
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysJava-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional Arrays
 
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsJava-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration Statements
 
Java-Chapter 11 Recursions
Java-Chapter 11 RecursionsJava-Chapter 11 Recursions
Java-Chapter 11 Recursions
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
 
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and ObjectsJava-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
 
IP address anonymization
IP address anonymizationIP address anonymization
IP address anonymization
 
ทฤษฎีระบบราชการ
ทฤษฎีระบบราชการทฤษฎีระบบราชการ
ทฤษฎีระบบราชการ
 
ทฤษฎีการจัดการแบบวิทยาศาสตร์
ทฤษฎีการจัดการแบบวิทยาศาสตร์ทฤษฎีการจัดการแบบวิทยาศาสตร์
ทฤษฎีการจัดการแบบวิทยาศาสตร์
 
แนวความคิดและทฤษฎีการบริหาร
แนวความคิดและทฤษฎีการบริหารแนวความคิดและทฤษฎีการบริหาร
แนวความคิดและทฤษฎีการบริหาร
 
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมการควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรม
 
บทที่ 2 พัฒนาการของแนวคิดและทฤษฎีการจัดการ
บทที่ 2 พัฒนาการของแนวคิดและทฤษฎีการจัดการบทที่ 2 พัฒนาการของแนวคิดและทฤษฎีการจัดการ
บทที่ 2 พัฒนาการของแนวคิดและทฤษฎีการจัดการ
 
Chapter : 2 Organization Theory (บทที่ 2 ทฤษฎีองค์การ)
Chapter : 2 Organization Theory (บทที่ 2 ทฤษฎีองค์การ)Chapter : 2 Organization Theory (บทที่ 2 ทฤษฎีองค์การ)
Chapter : 2 Organization Theory (บทที่ 2 ทฤษฎีองค์การ)
 
ทฤษฏีการบริหาร
ทฤษฏีการบริหารทฤษฏีการบริหาร
ทฤษฏีการบริหาร
 
How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramHow to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master Program
 

Similar to Java-Chapter 02 Data Operations and Processing

Java Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming LanguageJava Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming LanguageIMC Institute
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา JavaItslvle Parin
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา JavaItslvle Parin
 
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือกกลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือกNaphamas
 
บทที่ 2 ชนิดของตัว
บทที่ 2 ชนิดของตัวบทที่ 2 ชนิดของตัว
บทที่ 2 ชนิดของตัวTheeravaj Tum
 
ใบความรู้ที่ 5
ใบความรู้ที่  5ใบความรู้ที่  5
ใบความรู้ที่ 5SubLt Masu
 
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือก
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือกPowerpointการเขียนคำสั่งควบคุมแบบมีทางเลือก
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือกNaphamas
 
ตัวแปรในภาษาซี
ตัวแปรในภาษาซีตัวแปรในภาษาซี
ตัวแปรในภาษาซีboky_peaw
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอchupong roddee
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3KEk YourJust'one
 
เขียนโปรแกรมด้วยไพธอน
เขียนโปรแกรมด้วยไพธอนเขียนโปรแกรมด้วยไพธอน
เขียนโปรแกรมด้วยไพธอนNuchy Suchanuch
 
ตัวแปรพื้นฐานเขียนโปรแกรม
ตัวแปรพื้นฐานเขียนโปรแกรมตัวแปรพื้นฐานเขียนโปรแกรม
ตัวแปรพื้นฐานเขียนโปรแกรมpongpakorn Suklertpong
 

Similar to Java-Chapter 02 Data Operations and Processing (20)

ภาษา C#
ภาษา C#ภาษา C#
ภาษา C#
 
Java Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming LanguageJava Programming [2/12] : Overview of Java Programming Language
Java Programming [2/12] : Overview of Java Programming Language
 
งานทำ Blog บทที่ 2
งานทำ Blog บทที่ 2งานทำ Blog บทที่ 2
งานทำ Blog บทที่ 2
 
ตัวแปรกับชนิดของข้อมูล
ตัวแปรกับชนิดของข้อมูลตัวแปรกับชนิดของข้อมูล
ตัวแปรกับชนิดของข้อมูล
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือกกลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
 
บทที่ 2 ชนิดของตัว
บทที่ 2 ชนิดของตัวบทที่ 2 ชนิดของตัว
บทที่ 2 ชนิดของตัว
 
Work
WorkWork
Work
 
ใบความรู้ที่ 5
ใบความรู้ที่  5ใบความรู้ที่  5
ใบความรู้ที่ 5
 
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือก
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือกPowerpointการเขียนคำสั่งควบคุมแบบมีทางเลือก
Powerpointการเขียนคำสั่งควบคุมแบบมีทางเลือก
 
ตัวแปรในภาษาซี
ตัวแปรในภาษาซีตัวแปรในภาษาซี
ตัวแปรในภาษาซี
 
งาน
งานงาน
งาน
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอ
 
3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล
 
3.3 ชนิดของข้อมูล
3.3 ชนิดของข้อมูล3.3 ชนิดของข้อมูล
3.3 ชนิดของข้อมูล
 
3.3 ชนิดของข้อมูล
3.3 ชนิดของข้อมูล3.3 ชนิดของข้อมูล
3.3 ชนิดของข้อมูล
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
 
เขียนโปรแกรมด้วยไพธอน
เขียนโปรแกรมด้วยไพธอนเขียนโปรแกรมด้วยไพธอน
เขียนโปรแกรมด้วยไพธอน
 
ตัวแปรพื้นฐานเขียนโปรแกรม
ตัวแปรพื้นฐานเขียนโปรแกรมตัวแปรพื้นฐานเขียนโปรแกรม
ตัวแปรพื้นฐานเขียนโปรแกรม
 

More from Wongyos Keardsri

The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsThe next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsWongyos Keardsri
 
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingWongyos Keardsri
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemWongyos Keardsri
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageWongyos Keardsri
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIWongyos Keardsri
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIWongyos Keardsri
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IWongyos Keardsri
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsWongyos Keardsri
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsWongyos Keardsri
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityWongyos Keardsri
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 CountingWongyos Keardsri
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsWongyos Keardsri
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIWongyos Keardsri
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IWongyos Keardsri
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesWongyos Keardsri
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesWongyos Keardsri
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationWongyos Keardsri
 

More from Wongyos Keardsri (19)

The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsThe next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applications
 
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
 
Discrete-Chapter 10 Trees
Discrete-Chapter 10 TreesDiscrete-Chapter 10 Trees
Discrete-Chapter 10 Trees
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
 
Discrete-Chapter 01 Sets
Discrete-Chapter 01 SetsDiscrete-Chapter 01 Sets
Discrete-Chapter 01 Sets
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
 

Java-Chapter 02 Data Operations and Processing

  • 1. Data Operations and Processing - 02 Computer Programming using Java 15 CHAPTER การดําเนินการและประมวลผลข้อมูล 02 (Data Operations and Processing) 1. ประเภทข้ อมลและตัวแปร (Data Types and Variables) ู 1. ประเภทข้ อมลหรื อชนิดตัวแปร (Data Types) ู 1.1 ประเภทข้ อมูลแบบดังเดิม (Primitive Data Types) แบ่งออกเป็ น 4 กลุม ได้ แก่ ้ ่ 1) ตัวเลขจํานวนเต็ม (Integer) คือ จํานวนเต็มบวก จํานวนเต็มลบ จํานวนเต็มศูนย์ ชนิดตัวแปร ขนาดตัวแปร ช่ วงของข้ อมล ู ค่ าเริ่มต้ น byte 8 bits -128 ถึง 127 0 short 16 bits -32,768 ถึง 32,767 0 int 32 bits -2,147,483,648 ถึง 2,147,483,647 0 -9,223,372,036,854,775,808 ถึง long 64 bits 0L 9,223,372,036,854,775,807 2) ตัวเลขจํานวนจริง (Floating Point / Real Number) คือ จํานวนที่มีจดทศนิยม ุ ชนิดตัวแปร ขนาดตัวแปร ช่ วงของข้ อมลู ค่ าเริ่มต้ น float 32 bits -3.40292347E+38 ถึง 3.40292347E+38 0.0F -1.79769313486231570E+308 ถึง double 64 bits 0.0D 1.79769313486231570E+308 3) ตัวอักขระ (Character) คือ ตัวอักษร (Letter) หรื อตัวเลข (Digit) หรื อสัญลักษณ์ (Symbol) เพียง 1 ตัว ชนิดตัวแปร ขนาดตัวแปร ช่ วงของข้ อมล ู ค่ าเริ่มต้ น char 16 bits 'u0000' ถึง 'uFFFF' (0 - 65535) 'u0000' เช่น 'A' หรื อ 'a' (คล่อมด้ วยเครื่ องหมาย '…') 4) ตัวตรรกะ (Boolean) คือ ค่าความจริง ซึงมีเพียงสองค่าคือ จริง (True) หรื อ เท็จ (False) ่ ชนิดตัวแปร ขนาดตัวแปร ช่ วงของข้ อมลู ค่ าเริ่มต้ น boolean ไม่ระบุ true หรื อ false false 1.2 ประเภทข้ อมูลแบบอ้ างอิง (Reference Data Types) แบ่งออกเป็ น 1 กลุม (ยังมีมากกว่านี ้) ได้ แก่ ่ 1) สตริง (String) หรือข้ อความ คือ กลุมของอักขระหรื อสายอักขระตังแต่ 0 ตัวขึ ้นไปมาเรี ยงต่อกัน ่ ้ ชนิดตัวแปร ขนาดตัวแปร ช่ วงของข้ อมลู ค่ าเริ่มต้ น String ไม่ระบุ เช่น "Java Chula" หรื อ "1" หรื อ "F50" หรื อ null "" (Empty String) (คล่อมด้ วยเครื่ องหมาย "…") © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 2. 16 Computer Programming using Java 02 - Data Operations and Processing ์ 1.3 การเรี ยงลําดับขนาดและศักดิศรี ของประเภทข้ อมูล (เฉพาะตัวเลข) มีดงนี ้ ั byte short int long float double เล็ก ใหญ่ 2. การตังชื่อตัวแปร ้ 1) กฎการตังชื่อตัวแปร (บังคับและต้ องทําตาม) ้ (1) ชื่อตัวแปรสามารถประกอบไปด้ วย ตัวอักษร ตัวเลข สัญลักษณ์ '$' (Dollar Sign) และสัญลักษณ์ '_' (Underscore) เช่น num, $_$, _hey, $1, xxx3, test1_$ เป็ นต้ น (2) ชื่อตัวแปรห้ามขึ ้นต้ นชื่อด้ วยตัวเลข เช่น 3girl1man, 2you, 5hundredMile เป็ นต้ น (3) ชื่อตัวแปรห้ามมีช่องว่างและสัญลักษณ์พิเศษอื่นๆ นอกเหนือจากที่กล่าวไว้ ในข้ อที่ 1 (4) ชื่อตัวแปรห้ามตังชื่อซํ ้ากับคําสงวน (Reserved Words / Keywords) ซึงมี 53 คําดังต่อไปนี ้ ้ ่ abstract assert boolean break byte case catch char class const * continue default do double else enum extends false final finally float for goto * if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while (5) ชื่อตัวแปรห้ามตังชื่อซํ ้ากันภายในเมท็อดเดียวกัน (แต่ตางเมท็อดกันอาจตังชื่อซํ ้ากันได้ ) ้ ่ ้ (6) ชื่อตัวแปรมีความยาวได้ ไม่จํากัด (จะยาวกี่กิโลเมตรก็ได้ แต่ควรให้ มีความยาวเหมาะสม) (7) ตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กมีความหมายต่างกันเสมอ (Case-Sensitive) เช่น var ต่างกับ Var 2) ธรรมเนียมการตังชื่อตัวแปร (ไม่ บังคับแต่ ควรทําตาม) ้ (1) ชื่อตัวแปร (และชื่อเมท็อด) นิ ยมขึ ้นต้ นด้ วยอักษรพิมพ์เล็ก / ชื่อคลาสนิ ยมขึ ้นต้ นด้ วยอักษรพิมพ์ใหญ่ (2) ชื่อตัวแปรนิ ยมใช้ เป็ นภาษาอังกฤษ (แต่อาจใช้ เป็ นภาษาใดก็ได้ ขึ ้นกับการรองรับของ Editor ที่เขียน) (3) ชื่อตัวแปรควรตังชื่อให้ สื่อความหมายกับค่าของตัวแปรนัน เช่น stdID, firstName, birthDate เป็ นต้ น ้ ้ (4) ชื่อตัวแปรถ้ าประกอบด้ วยคําหลายคําให้ เขียนคําแรกขึ ้นต้ นด้ วยอักษรพิมพ์เล็ก ส่วนคําถัดๆ ไปขึ ้นต้ น ด้ วยอักษรพิมพ์ใหญ่ เช่น hostName, numberOfCourse, currentTime, firstDayOfMonth เป็ นต้ น (5) ชื่อตัวแปรถ้ าเป็ นค่าคงที่นิยมตังชื่อด้ วยอักษรพิมพ์ใหญ่ทงหมด เช่น PI, MONTH_OF_YEAR เป็ นต้ น ้ ั้ (6) พยายามหลีกเลี่ยงการใช้ สญลักษณ์ '$' และ สัญลักษณ์ '_' ั 3. การประกาศและกําหนดค่ าตัวแปร 1) การประกาศตัวแปร <ประเภทข้ อมูล> <ชื่อตัวแปร>; ตัวอย่าง int x; double num; String lastName; boolean check; © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 3. Data Operations and Processing - 02 Computer Programming using Java 17 2) การกําหนดค่ าตัวแปร อาจเป็ นค่าคงที่ (Constant) หรื อค่าจากตัวแปรอื่นก็ได้ <ชื่อตัวแปรที่ประกาศไว้ แล้ ว> = <ค่าของตัวแปร>; ซ้ ายต้ องใหญ่หรื อพอดีกบขวา ั ตัวอย่าง x = 5; num = 4.01; lastName = "Rukchula"; check = true; a = b; 3) การประกาศพร้ อมกับการกําหนดค่ าตัวแปร (รวมวิธีที่ 1 และ 2 เข้ าด้ วยกัน) ซ้ ายตังขวายัด ้ <ประเภทข้ อมูล> <ชื่อตัวแปร> = <ค่าของตัวแปร>; ตัวอย่าง int x = n; double num = 4.01; char ch = 'A'; float y = 2.9f; 4) การประกาศและกําหนดค่ าตัวแปรหลายตัวที่มีประเภทข้ อมูลเดียวกัน คันด้ วย Comma ่ <ประเภทข้ อมูล> <ชื่อตัวแปร>, <ชื่อตัวแปร> = <ค่าของตัวแปร>, ...; ตัวอย่าง int x = n, year, age = 18, z, a; 4. ค่ าของตัวแปรตามประเภทข้ อมล ู 1) ค่ าของจํานวนเต็ม ประเภทข้ อมลู รปแบบการเขียน / ตัวอย่ างค่ าที่จัดเก็บ ู byte และ short เขียนเลขจํานวนเต็มทัวไป เช่น byte x = 12; short y = 199; ่ int (ฐานสิบ) เขียนเลขจํานวนเต็มทัวไป เช่น int dec = 26; ่ int (ฐานแปด) เขียน 0 (ศูนย์) นําหน้ าเลขจํานวนเต็ม เช่น int oct = 032; int (ฐานสิบหก) เขียน 0x หรื อ 0X นําหน้ าเลขจํานวนเต็ม เช่น int hex = 0x1A; long เขียนเลขจํานวนเต็มแล้ วมีอกษร l หรื อ L ต่อท้ าย เช่น long n = 26L; ั 2) ค่ าของจํานวนจริง ประเภทข้ อมล ู รปแบบการเขียน / ตัวอย่ างค่ าที่จัดเก็บ ู float เขียนเลขจํานวนจริงแล้ วมีอกษร f หรื อ F ต่อท้ าย เช่น float f = 1.3F; ั double (รูปทัวไป) เขียนเลขจํานวนจริงทัวไป เช่น double d = 1.3; ่ ่ double (รูปเต็ม) เขียนเลขจํานวนจริงแล้ วมีอกษร d หรื อ D ต่อท้ าย เช่น double d = 1.3D; ั double (รูป a x 10b) เขียนค่า a ในรูปของเลขจํานวนเต็มหรื อเลขจํานวนจริงทัวไป ตามด้ วยอักษร e ่ หรื อ E และตามด้ วยค่า b ในรูปของเลขจํานวนเต็ม (เท่านัน) เช่น ้ 8 double s = 93.478e8; มีคาเท่ากับ 93.478 x 10 ่ –5 double t = 631E-5; มีคาเท่ากับ 631 x 10 ่ 200 double u = 2.0e+200; มีคาเท่ากับ 2.0 x 10 ่ 3) ค่ าของตัวอักขระและสตริง ประเภทข้ อมล ู รปแบบการเขียน / ตัวอย่ างค่ าที่จัดเก็บ ู char (รู ปทัวไป) ่ เขียนอักขระทัวไปคล่อมด้ วย Single Quote เช่น char c = ่ 'a'; © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 4. 18 Computer Programming using Java 02 - Data Operations and Processing ประเภทข้ อมล ู รปแบบการเขียน / ตัวอย่ างค่ าที่จัดเก็บ ู char (รู ป Unicode) เขียนรหัส Unicode คล่อมด้ วย Single Quote เช่น char c = 'u0043'; 'u0030' หรื อ รหัส 48 (ฐานสิบ) มีคาเท่ากับอักขระ '0' ่ 'u0041' หรื อ รหัส 65 (ฐานสิบ) มีคาเท่ากับอักขระ 'A' ่ 'u0061' หรื อ รหัส 97 (ฐานสิบ) มีคาเท่ากับอักขระ 'a' ่ 'u0E01' หรื อ รหัส 3585 (ฐานสิบ) มีคาเท่ากับอักขระ 'ก' ่ char (รู ปพิเศษ) เขียนรหัสพิเศษคล่อมด้ วย Single Quote เช่น char tab = 't'; String (รู ปทัวไป) ่ เขียนสายอักขระคล่อมด้ วย Double Quote เช่น String s = "Bank"; String (รู ปอ๊ อบเจ็ค) สร้ างอ๊ อบเจ็คจากคลาส String เช่น String t = new String("CU"); โจทย์ ข้อที่ 1 [ระดับง่ าย] จงพิจารณาคําสั่งต่ อไปนีผิด ( ) หรื อถูก ( ) พร้ อมบอกเหตุผล (15 คะแนน) ้ 1) integer x; . 2) int x = 1.5; . 3) byte x = 1000; . 4) int null = 5; . 5) Int y = 1; . 6) float cal = 15.763; . 7) String id = "1"; . 8) char c = 'Tuksin'; . 9) String s1 = 'Apisit'; . 10) String 3Type = "One Two Three"; . 11) short _$abcdefghijklmnopqrstuvwxyz0123456789$_; . 12) boolean flag = 1; . 13) float ตัวเลข = 139L; . 14) String _ = "ヰベ㈣㈠ヘョ"; . 15) int ch = 'u0044'; . โจทย์ ข้อที่ 2 [ระดับปานกลาง] จงเติมเต็มคําสั่งการประกาศและกําหนดค่ าของตัวแปรต่ อไปนีให้ สมบรณ์ ้ ู พร้ อมทังระบุค่าที่เก็บอย่ ูในตัวแปรแต่ ละข้ อ (15 คะแนน) ้ ข้ อ ประเภทตัวแปร การประกาศและกําหนดค่ าตัวแปร ค่ าที่เก็บในตัวแปร 1. var1 = 014; 2. var2 = 014f; 3. int var3 = 'C'; © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 5. Data Operations and Processing - 02 Computer Programming using Java 19 ข้ อ ประเภทตัวแปร การประกาศและกําหนดค่ าตัวแปร ค่ าที่เก็บในตัวแปร 4. var4 = 0E-0; 5. double var5 = 0x1D; 6. var6 = 1.0e2.0; 7. var7 = .1000; 8. var8 = 08; 9. var9 = null; 10. var10 = 100E012; 11. var11 = 1f + ""; 12. var12 = 1e1 + ""; 13. var13 = 0d; 14. var14 = 3.f; 15. var15 = 0xbeef; 2. การรั บเข้ าและส่ งออกข้ อมล (Input and Output the Data) ู 1. การรับเข้ าข้ อมล (Input the Data) ู การรับเข้ าข้ อมูลในภาษาจาวามีอยูหลายวิธีด้วยกัน แต่ในเอกสารชุดนี ้จะนําเสนอการรับเข้ าข้ อมูลที่นิยมใช้ กน ่ ั มากในปั จจุบน นันคือการรับเข้ าข้ อมูลด้ วยคลาส Scanner ซึงมีขนตอนการใช้ งานดังต่อไปนี ้ ั ่ ่ ั้ 1) การนําเข้ าคลาส Scanner ก่อนเรี ยกใช้ งานคลาส Scanner จะต้ องนําเข้ าคลาส Scanner ก่อนเสมอ โดย ใช้ คําสัง import java.util.Scanner; ซึงระบุไว้ ก่อนเขียนหัวคลาส ดังตัวอย่าง ่ ่ 1 import java.util.Scanner; 2 public class Test { 3 ... 4 } 2) การสร้ างตัวอ่ านจากแปนพิมพ์ เป็ นการกําหนดชื่อตัวอ่านเพื่อใช้ สําหรับรับค่าข้ อมูลต่างๆ จากแปนพิมพ์ ้ ้ โดยจะสร้ างเพียงครังเดียวเท่านัน และจะใช้ งานตัวอ่านนันตลอดทังโปรแกรม ซึงมีคําสังดังนี ้ ้ ้ ้ ้ ่ ่ Scanner <ชื่อตัวอ่าน> = new Scanner(System.in); 1 import java.util.Scanner; 2 public class Test { System.in หมายถึง 3 public static void main(String[] args) { 4 Scanner kb = new Scanner(System.in); แปนพิมพ์ (keyboard) ้ 5 ... 6 } ตัวอ่านชื่อว่า kb 7 } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 6. 20 Computer Programming using Java 02 - Data Operations and Processing 3) การรับค่ าข้ อมลด้ วยตัวอ่ านจากแปนพิมพ์ ตัวอ่านจากแปนพิมพ์ที่สร้ างขึ ้นสามารถรับค่าข้ อมูลประเภท ู ้ ้ จํานวนเต็ม จํานวนจริง และสตริ ง โดยใช้ คําสังและเมท็อดต่อไปนี ้ ่ 1) คําสังรับค่าจํานวนเต็มประเภท int โดยใช้ เมท็อด nextInt() หลังชื่อเมท็อด nextInt ต้ องตามด้ วย ่ วงเล็บเสมอ จึงได้ เป็ น nextInt() int <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextInt(); (ห้ ามลืมเด็ดขาด) เช่น int num = kb.nextInt(); (รับค่า int จากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร num) ั 2) คําสังรับค่าจํานวนเต็มประเภท long โดยใช้ เมท็อด nextLong() ่ long <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextLong(); เช่น long n = kb.nextLong(); (รับค่า long จากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร n) ั 3) คําสังรับค่าจํานวนจริ งประเภท float โดยใช้ เมท็อด nextFloat() ่ float <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextFloat(); เช่น float f = kb.nextFloat(); (รับค่า float จากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร f) ั 4) คําสังรับค่าจํานวนจริ งประเภท double โดยใช้ เมท็อด nextDouble() ่ double <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextDouble(); เช่น double d = kb.nextDouble(); (รับค่า double จากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร d) ั 5) คําสังรับค่าข้ อมูลประเภท String ทีละบรรทัด โดยใช้ เมท็อด nextLine() ่ String <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.nextLine(); เช่น String s1 = kb.nextLine(); (รับค่า String ทังบรรทัดจากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร s1) ้ ั 6) คําสังรับค่าข้ อมูลประเภท String ทีละคําหรื อทีละช่วง (แต่ละช่วงคันด้ วยช่องว่างหรื อ t หรื อ n) ่ ่ โดยใช้ เมท็อด next() String <ชื่อตัวแปร> = <ชื่อตัวอ่าน>.next(); เช่น String s2 = kb.next(); (รับค่า String คําแรกจากตัวอ่าน kb มาเก็บไว้ ที่ตวแปร s2) ั โจทย์ ข้อที่ 3 [ระดับง่ าย] จงเติมเต็มคําสั่งการรั บค่ าของตัวแปรในแต่ ละข้ อต่ อไปนีให้ สมบรณ์ พร้ อมทัง ้ ู ้ ระบุค่าที่เก็บอย่ ในตัวแปรแต่ ละข้ อ (15 คะแนน) ู Scanner kb = new Scanner(System.in); ประเภท การรั บค่ าจากแปนพิมพ์ เพื่อ ้ ค่ าที่ปอนเข้ ามา ้ ค่ าที่เก็บใน ข้ อ ตัวแปร เก็บยังตัวแปรที่กาหนด ํ ทางแปนพิมพ์ ้ ตัวแปร 1. var1 = kb.nextInt(); 087 2. var2 = kb.nextLong(); -0 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 7. Data Operations and Processing - 02 Computer Programming using Java 21 ประเภท การรั บค่ าจากแปนพิมพ์ เพื่อ ้ ค่ าที่ปอนเข้ ามา ้ ค่ าที่เก็บใน ข้ อ ตัวแปร เก็บยังตัวแปรที่กาหนด ํ ทางแปนพิมพ์ ้ ตัวแปร 3. int 7.0 4. var4 = kb.nextFloat(); 22.50000 5. long 46L 6. float 7.2F 7. double -0.1 8. double -13 9. double var10 = kb.nextInt(); 1 10. double var11 = kb.nextInt(); 1.0 11. int var12 = kb.nextDouble(); 1.0 12. var13 = kb.nextLine(); 22.50000 13. var14 = kb.nextLine(); Hi java CU 14. var15 = kb.next(); Hi java CU 15. String var16 = kb.nextInt(); 191 2. การส่ งออกข้ อมล (Output the Data) ู การส่งออกข้ อมูลหรื อการแสดงผลข้ อมูลสามารถทําได้ หลายช่องทาง แต่ช่องทางที่พื ้นฐานที่สดนันก็คือจอภาพ ุ ่ (Monitor/Screen) โดยรายละเอียดของคําสังเบื ้องต้ นได้ กล่าวไปแล้ วในบทที่ 1 ซึงมีคําสังดังนี ้ ่ ่ ่ 1) การแสดงผลออกทางจอภาพแบบไม่ขึ ้นบรรทัดใหม่ โดยใช้ เมท็อด print() System.out.print(...); System.out หมายถึงจอภาพ 2) การแสดงผลลัพธ์ออกทางจอภาพแบบขึ ้นบรรทัดใหม่ โดยใช้ เมท็อด println() System.out.println(...); สิงที่สามารถระบุและแสดงผลภายในวงเล็บของเมท็อดทังสองได้ นนมีดงนี ้ ่ ้ ั้ ั 1) ตัวแปร เช่น System.out.print(num); 2) ตัวเลข เช่น System.out.print(13); 3) นิพจน์ เช่น System.out.print(x * y + (10 – z)); 4) ข้ อความหรื อสตริ ง เช่น System.out.print("Hello Java"); 5) ข้ อ 1-4 ปะปนกัน เช่น System.out.print("Money = " + (x * y + 92.4) + " Baht"); ใช้ เครื่ องหมาย + เป็ นตัวเชื่อม แต่ละช่วงเข้ าด้ วยกัน © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 8. 22 Computer Programming using Java 02 - Data Operations and Processing 3. รปแบบการเขียนโปรแกรมรั บเข้ าและส่ งออกข้ อมลที่ต้ องปฏิบตตาม มีรายละเอียดดังตัวอย่างต่อไปนี ้ ู ู ั ิ 1 import java.util.Scanner; ต้ องนําเข้ าคลาส Scanner 2 public class Test { 3 public static void main(String[] args) { 4 Scanner kb = new Scanner(System.in); ต้ องสร้ างตัวอ่าน 5 System.out.print("Please enter number: "); 6 int num = kb.nextInt(); ต้ องแสดงข้ อความว่าต้ อง 7 8 ... หลังชื่อเมท็อดอย่าลืมใส่วงเล็บ การรับเข้ าข้ อมูลอะไร โดย 9 10 ใช้ เมท็อด print() System.out.println("Result is " + num); 11 } 12 } ต้ องแสดงผลลัพธ์ โดยใช้ เมท็อด println() โปรแกรมจะแสดงผลลัพธ์ออกทางจอภาพดังนี ้ โปรแกรมจะแสดงข้ อความเพื่อแจ้ งให้ ผ้ ใช้ ทราบว่า ู Please enter number: . ระบบกําลังรอรับค่าตัวเลขหนึงค่าจากแปนพิมพ์ ่ ้ Please enter number: 15 . ผู้ใช้ พิมพ์ตวเลข 15 ผ่านทางแป้ นพิมพ์พร้ อมทังกดปุ่ ม Enter เพื่อขึ ้น ั ้ บรรทัดใหม่ ซึงทําให้ คาของตัวเลข 15 เข้ าไปเก็บอยูในตัวแปร num ่ ่ ่ Please enter number: 15 โปรแกรมแสดงค่าที่เก็บอยูในตัวแปร num ่ Result is 15 . ขึ ้นบนจอภาพ โจทย์ ข้อที่ 4 [ระดับง่ าย] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บเลขประจําตัวนิสิต ชื่อ-นามสกุล ู นิสิต อายุนิสิต และผลการเรี ยนเฉลี่ยสะสมของนิสิต เข้ ามาทางแปนพิมพ์ เก็บไว้ ในตัวแปร id, name, ้ age และ gpa ตามลําดับ และแสดงค่ าของทังสี่ตวแปรนันออกทางจอภาพให้ สวยงาม (10 คะแนน) ้ ั ้ 1 2 3 4 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 9. Data Operations and Processing - 02 Computer Programming using Java 23 โจทย์ ข้อที่ 5 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็ม สอง ู จํานวนเข้ ามาทางแปนพิมพ์ เก็บไว้ ในตัวแปร a และ b ตามลําดับ แล้ วทําการสลับค่ าของสองตัวแปรนัน ้ ้ โดยที่ค่าของตัวแปร a หลังการสลับจะเท่ ากับค่ าเก่ าของตัวแปร b และค่ าของตัวแปร b หลังการสลับจะ เก็บค่ าเก่ าของตัวแปร a พร้ อมทังแสดงผลลัพธ์ ออกทางจอภาพตามตัวอย่ างต่ อไปนี ้ (10 คะแนน) ้ 1 2 3 4 Enter a: 13 Enter b: 21 Value of a: 21 Value of b: 13 3. ตัวดําเนินการและคลาสมาตรฐาน (Operators and Standard Class) 1. ตัวดําเนินการ (Operators) แบ่งออกเป็ น 5 กลุมหลักดังต่อไปนี ้ ่ 1) ตัวดําเนินการทางคณิตศาสตร์ (Arithmetic Operators) ได้ แก่ สัญลักษณ์ ความหมาย ตัวอย่ าง + การบวก x + y หรื อ a + b + c - การลบ x - y หรื อ a - b - c * การคูณ x * y หรื อ a * b * c / การหาร x / y หรื อ a / b / c % การหารเอาแต่เศษ (Modulo) x % y หรื อ a % b % c 2) ตัวดําเนินการเพิ่มค่ าและลดค่ า (Increment and Decrement Operators) ได้ แก่ สัญลักษณ์ ความหมาย ตัวอย่ าง x++ ใช้ งานตัวแปร x ก่อนเพิ่มค่าขึ ้นอีก 1 ให้ x = 2, y = 1 จะได้ วา x++ ่ + y = 3 ++x เพิ่มค่าขึ ้นอีก 1 ก่อนใช้ งานตัวแปร x ให้ x = 2, y = 1 จะได้ วา ++x ่ + y = 4 x-- ใช้ งานตัวแปร x ก่อนลดค่าลงอีก 1 ให้ x = 2, y = 1 จะได้ วา x-- ่ + y = 3 --x ลดค่าลงอีก 1 ก่อนใช้ งานตัวแปร x ให้ x = 2, y = 1 จะได้ วา --x ่ + y = 2 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 10. 24 Computer Programming using Java 02 - Data Operations and Processing 3) ตัวดําเนินการเปรียบเทียบค่ า (Comparison/Relational Operators) ได้ แก่ สัญลักษณ์ ความหมาย ตัวอย่ าง == เท่ากัน x == y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน) ้ != ไม่เท่ากัน x != y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน) ้ < น้ อยกว่า x < y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน) ้ > มากกว่า x > y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน)้ <= น้ อยกว่าหรื อเท่ากัน x <= y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน) ้ >= มากกว่าหรื อเท่ากัน x >= y (คําตอบเป็ นค่าจริ งหรื อเท็จเท่านัน) ้ 4) ตัวดําเนินการทางตรรกศาสตร์ (Logical Operators) ได้ แก่ สัญลักษณ์ ความหมาย ตัวอย่ าง && และ (AND) (x >= y) && (x != 0) || หรื อ (OR) (x == y) || (x == z) ! นิเสธ (NOT) !(x <= y) 5) ตัวดําเนินการกําหนดค่ า (Assignment Operators) ได้ แก่ สัญลักษณ์ ความหมาย ตัวอย่ าง = เท่ากับ x = y นําค่า y เก็บไว้ ใน x += x += y มีคาเท่ากับ x = x + y ่ x += 14 จะได้ วา x = x + 14 ่ -= x -= y มีคาเท่ากับ x = x - y ่ x -= 1 จะได้ วา x = x - 1 ่ *= x *= y มีคาเท่ากับ x = x * y ่ x *= y-- จะได้ วา x = x * y-- ่ /= x /= y มีคาเท่ากับ x = x / y ่ x /= 5.8 จะได้ วา x = x / 5.8 ่ โจทย์ ข้อที่ 6 [ระดับง่ าย] จงแสดงผลลัพธ์ จากส่ วนของโปรแกรมต่ อไปนี ้ (5 คะแนน) ข้ อ ส่ วนของโปรแกรม ผลลัพธ์ ท่ แสดง ี 1. int a = 21, b = 0; System.out.println("a" + a - b); 2. double x = 1.0, y = 1.000; System.out.println(x > y); 3. double a = 1.6; a += 5.1; System.out.println(a % 4); 4. int x = 6; System.out.println(x-- + ++x - --x - x-- + x++ + x); 5. boolean a = true, b = true, c = false; System.out.println(a || b && c); 2. กฎการพิจารณาลําดับตัวดําเนินการ (เฉพาะที่ใช้ กนบ่อยๆ) ั ลําดับ ชื่อตัวดําเนินการ / ตัวดําเนินการ ตัวอย่ างการทํางาน 1. วงเล็บ (Parentheses) (…) x – (2 + y) จะทํา (2 + y) ก่อนนํา x มาลบออก 2. เรี ยกเมท็อด (Method Call) () Math.sqrt(a + 2) จะทํา Math.sqrt(…) ก่อน © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 11. Data Operations and Processing - 02 Computer Programming using Java 25 ลําดับ ชื่อตัวดําเนินการ / ตัวดําเนินการ ตัวอย่ างการทํางาน ค่าบวก (Unary Plus) + 2 * +a จะทํา +a ก่อนนํา 2 ไปคูณกับคําตอบ 3. ค่าลบ (Unary Minus) - –a / 3 จะทํา –a ก่อนนําคําตอบไปหาร 3 คูณ (Multiplication) * x * 3 + 2 จะทํา x * 3 ก่อนนําคําตอบไปบวก 2 4. หาร (Division) / 3 – 5 / x จะทํา 5 / x ก่อนนํา 3 มาลบออก หารเอาแต่เศษ (Modulo) % y % 2 + 1 จะทํา y % 2 ก่อนนําคําตอบไปบวก 1 บวก (Addition) + x + 17 > 19 จะทํา x + 17 ก่อนทํา > 5. ลบ (Subtraction) - x – 9.5 = 42.5 จะทํา x – 9.5 ก่อนทํา = 6. การเปรี ยบเทียบค่า : น้ อยกว่า (<), น้ อยกว่าเท่ากัน (<=), มากกว่า (>), มากกว่าเท่ากัน (>=) 7. การเปรี ยบเทียบค่า : เท่ากัน (==), ไม่เท่ากัน (!=) 8. และ (Logical AND) && a || b && c จะทํา && ก่อน || 9. หรื อ (Logical OR) || x = d > 3 || d <= 15 จะทํา || ก่อนทํา = 10. เท่ากับ (Assignment) = จะถูกพิจารณาหลังสุด หมายเหตุ ในกรณีที่ตวดําเนินการมีลาดับความสําคัญเท่ากัน ให้ พิจารณาการทํางานจากซ้ ายไปขวา ั ํ โจทย์ ข้อที่ 7 [ระดับง่ าย] จงแสดงลําดับการทํางานที่ถูกต้ องของตัวดําเนินการของนิพจน์ ต่อไปนี ้ โดยให้ เขียนหมายเลขลําดับกํากับไว้ บนตัวดําเนินการนัน (5 คะแนน) ้ 1) a * (b + -(c / d) / e) + (f – g % h) 2) (1.0 / 2.0) * Math.sin(x – Math.PI / Math.sqrt(y)) 3) a * b + (-c) / d / e * f - g % h 4) cal = (1 – x % 2.5 + y * z) + 3 * k – -7 / w 5) cal = x == 5 || x <= 3 && x >= -3 || (x != 0) 3. ประเภทข้ อมลที่เป็ นผลลัพธ์ สุดท้ ายจากการดําเนินการ ู สามารถสรุปความสัมพันธ์ของประเภทข้ อมูล ตัวเลข ตัวอักขระ ตัวตรรกะ และ สตริ ง ได้ 20 รูปแบบ ดังนี ้ รปแบบ ข้ อมลที่ 1 ู ู กลุ่มของตัวดําเนินการ ข้ อมลที่ 2 ประเภทข้ อมลสุดท้ าย ู ู 1. ตัวเลข + - * / % ตัวเลข ตัวเลข (ที่ มีศักดิ์ศรีสูงสุด) 2. ตัวเลข = += -= *= /= ตัวเลข[1] ตัวเลข (ของข้ อมลที่ 1) ู 3. ตัวเลข == != < > <= >= ตัวเลข boolean 4. ตัวเลข + - * / % = += -= *= /= char ตัวเลข © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 12. 26 Computer Programming using Java 02 - Data Operations and Processing รปแบบ ข้ อมลที่ 1 ู ู กลุ่มของตัวดําเนินการ ข้ อมลที่ 2 ประเภทข้ อมลสุดท้ าย ู ู 5. ตัวเลข ++ -- - ตัวเลข 6. - ++ -- ตัวเลข ตัวเลข 7. char + - * / % char ตัวเลข (โดยทัวไปคือ int) ่ 8. char = += -= *= /= char char 9. char == != < > <= >= char boolean 10. char + - * / % ตัวเลข ตัวเลข 11. char += -= *= /= ตัวเลข char 12. char = ตัวเลข[2] char 13. char ++ -- - char 14. - ++ -- char char 15. String + ทุกประเภท String 16. ทุกประเภท + String String 17. String = String String 18. String == != String boolean 19. boolean = && || boolean boolean 20. - ! boolean boolean (ค่ าตรงข้ าม) [1] ั ์ ประเภทข้ อมูลของข้ อมูลที่ 1 ต้ องมีศกดิศรี สูงกว่าหรือเท่ากับประเภทข้ อมูลของข้ อมูลที่ 2 [2] ั ์ ประเภทข้ อมูลของข้ อมูลที่ 2 ต้ องเป็ นตัวเลขจํานวนเต็มที่มีศกดิศรี ตํ่ากว่าหรื อเท่ากับ int เท่านัน ้ โจทย์ ข้อที่ 8 [ระดับง่ าย] จงระบุประเภทข้ อมลที่เป็ นผลลัพธ์ สุดท้ ายและค่ าคําตอบจากการดําเนินการ ู ของนิพจน์ ต่อไปนี ้ (10 คะแนน) ข้ อ นิพจน์ ประเภทข้ อมลสุดท้ าย ู คําตอบ 1. (5 + 4) + ((3 + 2L) – 1) 2. (5 – 2 / 1) + 0.000 + 'u0000' 3. 5.0F * 6 – ('D' - 'A') *4. 2 % (0.4 + 0.3F) *5. !("Java" == "Jaba"); 6. (13 / 5) + (2 / 3) 7. '0' - '1' + "5" + false 8. 4E1 / 2 9. !false || true && false || !true 10. 0.0 / (10 + 'q' – 'Y') != 0L © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 13. Data Operations and Processing - 02 Computer Programming using Java 27 4. การเปลี่ยนประเภทข้ อมล (Type Conversions) ู 1) เปลี่ยนแบบอัตโนมัติ โดยทัวไปคอมไพเลอร์ ของภาษาจาวาจะปรับเปลี่ยนประเภทข้ อมูลให้ อตโนมัติตาม ่ ั ความเหมาะสม ซึงเป็ นไปตามความสัมพันธ์ทง้ั 19 รูปแบบที่ได้ กล่าวไปในหัวข้ อที่แล้ ว ดังตัวอย่างต่อไปนี ้ ่ double a = 34 + 1.0F; //a = 35.0 int c = 'A'; //c = 65 float b = 4L / 3; //b = 1.0F char d = 65; //d = 'A' 2) เปลี่ยนโดยการบังคับตามที่ระบุ (Casting) จะเป็ นการบังคับหรื อกําหนดประเภทข้ อมูลที่ต้องการจะให้ เป็ น โดยการใส่วงเล็บชื่อประเภทข้ อมูลหน้ าข้ อมูลที่จะเปลี่ยน ดังรูปแบบคําสังและตัวอย่างต่อไปนี ้ ่ (<ประเภทข้ อมูล>) <ข้ อมูล/ตัวแปร> ใช้ กบข้ อมูลประเภทตัวเลข (เต็ม/จริ ง) และอักขระ เท่านัน ั ้ byte b = 50; char c = '1'; b = (byte)(b * 2); //b = 100 int num = (int) c; //num = 49 double x = 5.99; int ten = (int) "10"; //Error long y = (long) x; //y = 5 boolean f = (boolean) 1; //Error โจทย์ ข้อที่ 9 [ระดับง่ าย] จงระบุประเภทข้ อมลที่เป็ นผลลัพธ์ สุดท้ ายและค่ าคําตอบจากการดําเนินการ ู ของนิพจน์ หรือคําสั่งต่ อไปนี ้ (10 คะแนน) ข้ อ นิพจน์ ประเภทข้ อมลสุดท้ าย ู คําตอบ 1. (byte)(3 + 5.4) / 7 2. (3 + 5.4) / (float) 7 3. (float)((3 + 2) / 7) 4. char c = (double) 'A'; 5. char c = (int) 'b'; c += 1.7; 6. char c = 67 + (int) 3.91 7. (int) 19.8E-1 8. (short)((double) 1 / 2) == 00L + 0 9. (byte) 011 + (short) 1.9991 10. (byte) '0' – '6' + (char) 1.5 5. คลาสมาตรฐานทางคณิตศาสตร์ (Mathematic Class) มีเมท็อดที่สําคัญดังนี ้ ลําดับ รปแบบคําสั่ง ู ประเภทข้ อมลรับเข้ า ู หน้ าที่ 1. Math.toRadians(degree) double เปลี่ยนองศาเป็ นเรเดียน 2. Math.toDegrees(radian) double เปลี่ยนเรเดียนเป็ นองศา 3. Math.sin(radian) double คํานวณค่าไซน์ (Sine) 4. Math.cos(radian) double คํานวณค่าโคไซน์ (Cosine) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 14. 28 Computer Programming using Java 02 - Data Operations and Processing ลําดับ รปแบบคําสั่ง ู ประเภทข้ อมลรับเข้ า ู หน้ าที่ 5. Math.sqrt(x) double คํานวณค่ารากที่สอง 6. Math.pow(x, y) double, double คํานวณค่าเลขยกกําลัง xy 7. Math.abs(x) double คํานวณค่าสัมบูรณ์ (Absolute) 8. Math.max(x, y) double, double คํานวณค่ามากระหว่าง x กับ y 9. Math.min(x, y) double, double คํานวณค่าน้ อยระหว่าง x กับ y 10. Math.log10(x) double คํานวณค่าล๊ อกาลิทมฐานสิบ ึ 11. Math.PI ค่าคงที่ PI ซึงเท่ากับ 3.141592653589793… ่ Math.random() ไม่มีข้อมูลรับเข้ า สร้ างตัวเลขสุมในช่วง [0.0, 1.0) ่ 12. (int)(Math.random() * (b – a + 1) + a) สร้ างตัวเลขสุมจํ านวนเต็มในช่วง a ถึง b ่ หมายเหตุ ผลลัพธ์ที่ได้ ทกข้ อจะเป็ นประเภท double (ยกเว้ นข้ อที่ 12 ส่วนล่าง ผลลัพธ์จะเป็ นประเภท int) ุ โจทย์ ข้อที่ 10 [ระดับง่ าย] จงเขียนคําสั่งคํานวณ (Assignment Statement) จากนิพจน์ ต่อไปนีให้ ถูกต้ อง ้ ตามหลักไวยากรณ์ ของภาษาจาวา พร้ อมทังประกาศประเภทตัวแปรที่ใช้ ให้ ครบสมบรณ์ (6 คะแนน) ้ ู ข้ อ นิพจน์ คําสั่ง 2πr 2 1. b 2 − 4ac m−n p2 − q2 2. − 2mn p+q 3x 3 + 4 y 4 3. + πxy ( x + y)( x − y) โจทย์ ข้อที่ 11 [ระดับง่ าย] จงเขียนคําสั่งภาษาจาวาที่ถูกต้ องสมบรณ์ เพื่อกําหนดค่ าให้ กับตัวแปร n โดย ู ใช้ การสุ่มค่ าตัวเลขจํานวนเต็มตามเงื่อนไขต่ อไปนี ้ (6 คะแนน) ข้ อ เงื่อนไข คําสั่ง 1. สุมตัวเลข 0 – 9 ่ 2. สุมตัวเลข 1 – 10 ่ 3. สุมตัวเลข 0 – 10 ่ 4. สุมตัวเลข 0 – 987 ่ 5. สุมตัวเลข 1 – 500 ่ 6. สุมตัวเลข 2 – 600 ่ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 15. Data Operations and Processing - 02 Computer Programming using Java 29 โจทย์ ข้อที่ 12 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มที่มี ู ความยาว 4 หลักหนึ่งค่ าเข้ ามาทางแปนพิมพ์ แล้ วทําการสลับหลักของตัวเลขนันดังตัวอย่ างการแสดงผล ้ ้ ต่ อไปนี ้ (10 คะแนน) Enter number: 1234 1 2 3 4 Reversed number: 4321 Enter number: 9753 Reversed number: 3579 โจทย์ ข้อที่ 13 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มจาก ู แปนพิมพ์ ยาว 6 หลัก แล้ วทําการตัดตัวเลข 2 หลักแรก และ 2 หลักสุดท้ าย เพื่อนํามาคํานวนหาค่ า ้ ผลบวกและผลต่ างของสองตัวเลขนัน พร้ อมทังแสดงผลลัพธ์ ออกทางจอภาพให้ สวยงาม (10 คะแนน) ้ ้ 1 2 3 4 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 16. 30 Computer Programming using Java 02 - Data Operations and Processing โจทย์ ข้อที่ 14 [ระดับยาก] ธนาคารลานเกียร์ แห่ งประเทศไทยได้ ว่าจ้ างให้ นิสิตชันปี ที่ 1 ของคณะวิศว- ้ กรรมศาสตร์ จุฬาลงกรณ์ มหาวิทยาลัย ซึ่งกําลังเรี ยนวิชาการเขียนโปรแกรมด้ วยภาษาจาวาเบืองต้ น ้ เพื่อสร้ างเครื่ องคํานวณจํานวนเงิน (Money Machine) โดยเมื่อผ้ ูใช้ ระบุจานวนเงินเข้ ามา โปรแกรมจะทํา ํ การคํานวณดว่ าจะต้ องใช้ ธนบัตรใบละ 1000 บาท 500 บาท 100 บาท 50 บาท และ 20 บาท อย่ างละกี่ ู ใบ และเหรี ยญ 10 บาท 5 บาท 2 บาท และ 1 บาท อย่ างละกี่เหรี ยญ โดยมีตัวอย่ างของผลการทํางาน ดังต่ อไปนี ้ (15 คะแนน) Money : 2897 1 2 3 4 1000 Baht : 2 500 Baht : 1 100 Baht : 3 50 Baht : 1 20 Baht : 2 10 Baht : 0 5 Baht : 1 2 Baht : 1 1 Baht : 0 Do you know? 1 / 0 = Error 1.0 / 0.0 = Infinity -1.0 / 0.0 = -Infinity 1.0 / (1.0 / 0) = 0.0 0.0 / 0.0 = NaN © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้