SlideShare a Scribd company logo
ใบความรูที่ 1.3
                โครงสรางโปรแกรมภาษา C# และขอมูลพื้นฐานและตัวดําเนินการ

        การโปรแกรมภาษา C# ขั้นพื้นฐานที่มเี ฉพาะสวนของโปรแกรมหลักและไมมีโปรแกรมยอย
(subroutine) จะมีสวนประกอบดังนี้
 namespace ___(A)___
 {
    class ___(B)___
    {
       static void Main()
       {
          ___(C)___
       }
    }
 }

        ตามโครงสรางขางตน ณ ตําแหนง (A), (B), and (C) มีความหมายดังตอไปนี้
     • ตําแหนง (A) ระบุชื่อของเนมสเปซ (namespace) ซึ่งใชในการกําหนดขอบเขตใหกบคลาสตาง ๆ
                                                                                        ั
       รวมถึงใชในการจัดโครงสรางของโปรแกรมขนาดใหญใหเปนสัดสวนอีกดวย โดยเฉพาะอยางยิ่ง
       ในการพัฒนาแอพลิเคชันทีซับซอนโดยผูพัฒนาหลายคน การกําหนดเนมสเปซของตนเองสามารถ
                                  ่
       ปองกันปญหาการตั้งชื่อคลาสหรือคาคงที่อื่น ๆ ซ้ํากันได สวนไลบรารีของภาษา C# ที่มีใหเรา
       เรียกใชงานได ก็ถูกเตรียมเอาไวในเนมสเปซชื่อตาง ๆ เชนเดียวกัน
     • ตําแหนง (B) ระบุชื่อของคลาส (class)
     • ตําแหนง (C) เปนพื้นที่สําหรับคําสั่งตาง ๆ ที่ผูเขียนโปรแกรมตองการใหคอมพิวเตอรปฏิบัติตาม
        นอกจากนี้โปรแกรมที่ไมซบซอนมากยังสามารถละสวนที่ระบุเนมสเปซทิ้งไปได คลาสที่ถูกสราง
                               ั
ขึ้นมาโดยไมอยูในขอบเขตของเนมสเปซใดจะถือวาอยูในเนมสเปซกลาง (global namespace)
 class ___(B)___
 {
    static void Main()
    {
       ___(C)___
    }
 }




18                                   สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
โปรแกรมภาษา C# ซึ่งแสดงขอความ Hello World! ออกทางจอภาพ จากนั้นรอจนกวาผูใชจะกด Enter และ
จบการทํางาน โปรแกรมนี้อยูในเนมสเปซชื่อ HelloApp และคลาสชื่อ HelloClass
 namespace HelloApp
 {
    class HelloClass
    {
       static void Main()
       {
          System.Console.WriteLine("Hello World!");
          System.Console.ReadLine();
       }
    }
 }

โปรแกรมภาษา C# ซึ่งใหผลลัพธเชนเดียวกับโปรแกรมขางตน แตเขียนโดยไมระบุเนมสเปซ
 class HelloClass
 {
    static void Main()
    {
       System.Console.WriteLine("Hello World!");
       System.Console.ReadLine();
    }
 }

กฎการตังชื่อตัวระบุในภาษา C#
       ้
        โปรแกรมภาษา C# ที่นําไปใชงานจริงมักจะมีการใชงานตัวระบุ (identifier) อยูทั่วไปภายใน
โปรแกรม เชนชื่อของเนมสเปซและคลาสที่ไดกลาวไปขางตน ภาษา C# ไดจํากัดกฎเกณฑการตั้งชื่อใหตัว
ระบุเอาไวดังตอไปนี้
   • ชื่อตัวระบุตองประกอบดวยตัวอักษรภาษาอังกฤษ (A-Z,a-z) ตัวเลข (0-9) หรือเครื่องหมายขีดเสน
     ใต (_) เทานั้น
   • ตัวอักษรตัวแรกของชื่อตองเปนตัวอักษรภาษาอังกฤษ หรือตัวขีดเสนใต
   • ชื่อตัวระบุจะมีความยาวไดไมเกิน 63 ตัวอักษร
   • ชื่อตัวระบุตองไมซ้ํากับคําสงวน (reserved word) เชน class, namespace, int, void,
       static




                                  สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี               19
ชนิดขอมูล (Data Types) ใน C#
         C# กําหนดชนิดของขอมูลไวหลากหลายชนิดเพื่อรองรับการจัดเก็บขอมูลหลาย ๆ ประเภท
ตารางที่ 1 แสดงชนิดขอมูลหลัก ๆ ที่พบบอยในโปรแกรมทั่วไป
                                ตารางที่ 1 ชนิดขอมูลหลัก ๆ ของภาษา C#
ชนิดขอมูล    คําอธิบาย
char          อักขระเดียว เชน a
                       ่
bool          คาความจริง เปนไปไดสองคาคือ true หรือ false
byte          จํานวนเต็มไมมีเครื่องหมาย ตั้งแต 0 ถึง 255
int           จํานวนเต็มมีเครื่องหมาย ตังแต- 2,147,483,648 ถึง 2,147,483,647
                                        ้
uint          จํานวนเต็มไมมีเครื่องหมาย ตั้งแต 0 ถึง 4,294,967,295
long          จํานวนเต็มมีเครื่องหมาย ตังแต- 9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807
                                          ้
ulong         จํานวนเต็มไมมีเครื่องหมาย ตั้งแต 0 and 18,446,744,073,709,551,615
float         จํานวนจริง (มีทศนิยมได) เชน 3.14159
double        จํานวนจริงที่เก็บความละเอียดมากเปนสองเทา
string        ขอความ (สายอักขระ) เชน Hello

ตัวแปร (Variables)
         ตัวแปร (variable) เปนตัวระบุประเภทหนึ่งที่นํามาใชในการอางถึงขอมูล โดยคาของมันสามารถ
ถูกเปลี่ยนแปลงไดตลอดเวลาที่โปรแกรมกําลังทํางานอยู ในภาษา C# ตัวแปรทุกตัวตองถูกประกาศ
กอนที่จะถูกนํามาใชงาน โดยมีการระบุชนิดขอมูลที่จะใชกับตัวแปรนั้น ๆ ไวดวยตามรูปแบบดังนี้
 DataType variableName;

         ในที่นี้ variableName คือชื่อของตัวแปร และ DataType คือชื่อของชนิดขอมูลที่ตัวแปรนี้
เก็บคาได (ตามตัวอยางในตารางที่ 1)
        นอกจากการประกาศตัวแปรตามแบบขางตนแลว เรายังสามารถกําหนดคาเริ่มตนใหกับตัวแปรนั้น
ๆ ไดอีกดวย โดยมีรูปแบบดังนี้
 DataType variableName = initialValue;

        จะเห็นวาสวนที่เพิ่มขึ้นมาคือเครื่องหมาย = และ initialValue ซึ่งระบุคาเริ่มตนใหกับตัว
แปรชื่อvariableName




20                                    สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
คําสั่งดานลางประกาศตัวแปรชื่อ distance ที่มีชนิดขอมูลเปน uint และไมมีการกําหนดคาเริ่มตน
  uint distance;

คําสั่งดานลางประกาศตัวแปรชื่อ salary ที่มีชนิดขอมูลเปน long และคาเริ่มตนเปน 30000
  long salary = 30000;

คาคงที่ (Constants)
       คาคงที่เปนตัวระบุอีกประเภทหนึ่งที่นํามาใชในการอางถึงขอมูลเชนเดียวกับตัวแปร สิ่งที่แตกตาง
จากตัวแปรก็คอคาของมันไมสามารถเปลี่ยนแปลงไดอกหลังจากการประกาศ
            ื                                       ี
      ในภาษา C# คาคงที่ตองถูกประกาศโดยระบุชนิดขอมูลและคาตั้งตนกอนถูกนํามาใชงานเสมอ
การประกาศคาคงที่จะคลายคลึงกับการประกาศตัวแปร แตกตางกันตรงที่ตองมีการระบุดวยคียเวิรด
const ดังแสดง

  const DataType constantName = value;

         ในที่นี้ constantName คือชื่อของคาคงที่ สวน DataType คือชื่อชนิดขอมูลที่คาคงที่นี้ใช
อางถึง และ value ระบุคาที่คาคงที่นี้ถูกใชเปนตัวแทน
                         

คําสั่งดานลางประกาศคาคงที่ชื่อ myconst โดยมีชนิดขอมูลเปนแบบ double และใชแทนคา 2.71828
  const double myconst = 2.71828;

      การใชงานคาคงที่มีประโยชนมากในกรณีที่เราตองอางอิงถึงคาใด ๆ ซ้ํากันอยูบอยครั้งภายใน
โปรแกรม ดังเชนตัวอยางตอไปนี้

        โปรแกรมดานลางเปนโปรแกรมที่ทําใหคอมพิวเตอรกลาวคําทักทายทัว ๆ ไปสองบรรทัดกับผูใช
                                                                                ่
ซึ่งสมมติวาชื่อ Harry จะเห็นวาหากเราตองการเปลี่ยนชือผูใชเปนชื่ออื่นนั้นก็สามารถทําไดงาย ๆ โดยแกไข
                                                      ่
บรรทัด ที่ 5 ใหคาคงที่แทนดวยคาอืนเทานั้น
                                    ่
 1: using System;
 2:
 3: class Intro {
 4:    static void Main() {
 5:       const string MY_NAME = "Harry";
 6:
 7:       Console.WriteLine("Hello {0}, how are you?", MY_NAME);
 8:       Console.WriteLine("And how can I help you, {0}?",
 9:            MY_NAME);
 10:      Console.ReadLine();
 11:   }
 12: }




                                      สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี                      21
ตัวแปร)รวมถึงคาคงที่ (ที่มีชนิดขอมูลแบบเดียวกันสามารถถูกประกาศรวมกันภายในคําสั่งเดียวกัน
ไดโดยคั่นดวยเครื่องหมายคอมมา
  const int FreezingPoint = 32;
  int x, y;
  int wd = 5, ht = 8;
  const double PI = 3.1424;
  char ch = 'A';
  string mynote = "Hello, Kitty";
  int j = 5;

นิพจนทางคณิตศาสตร (Arithmetic Expressions)
          นิพจน (expression) ภายในโปรแกรมภาษา C# หมายถึงสวนของโปรแกรมที่สามารถถูกตีความ
เปนคาตาง ๆ ได โดยนิพจนอาจประกอบดวยเทอมเพียงเทอมเดียว หรือเกิดจากการผสมกันของนิพจนอื่น
ที่เล็กกวา ดานลางเปนตัวอยางของนิพจนที่ประกอบดวยเทอมเพียงเทอมเดียว
     • ตัวเลขโดด เชน 3000, 1.414
     • ขอความ เชน "Hello,        World"

     • คาความจริง ไดแก true และ false
     • ตัวแปรหรือคาคงที่เดี่ยว ๆ ที่ผานการกําหนดคาใหแลว เชน    myName, salary

        ในที่นี้จะเนนการศึกษาเกี่ยวกับนิพจนที่ใหคาเปนตัวเลข เรียกวา นิพจนทางคณิตศาสตร (arithmetic
expression)       โดยเราสามารถผสมนิพจนตาง ๆ ใหเ ปน นิพจน ที่ซับซอนขึ้นโดยอาศัยตัวดําเนินการ
ทางคณิตศาสตรที่มีใหในภาษา C# ดังตารางที่2
                                ตารางที่ 2 ตัวดําเนินการทางคณิตศาสตร
     ตัวดําเนินการ     สัญลักษณ จํานวนนิพจนที่นํามาผสม              ตัวอยาง      คาของนิพจนเมื่อ x = 20

บวก (add)                  +                      2                     x+4                   24

ลบ (subtract)              -                      2                    32-x                   12

คูณ (multiply)             *                      2                     x*2                   40

หาร (divide)               /                      2                     x/2                   10

หารเอาเศษ
                           %                      2                     x%6                    2
(modulo)


22                                    สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
ตัวดําเนินการ        สัญลักษณ จํานวนนิพจนที่นามาผสม
                                                  ํ                     ตัวอยาง      คาของนิพจนเมื่อ x = 20

กลับเครื่องหมาย
                             -                      1                      -x                   -20
(negate)

จัดกลุม                   ( )                    N/A                 (x+2)*3                   66

        หากนิพจนที่สรางขึ้นมาใหมประกอบดวยตัวดําเนินการมากกวาหนึ่งตัว C# จะคํานวณคาเรียง
ตามลําดับกอนหลังดังนี้
    • ( )
    • *, / และ %
    • + และ -
    • หากตัวดําเนินการมีลําดับเทาเทียมกัน คํานวณจากซายไปขวา

คําสั่งที่ใชในการแสดงผล
          คําสั่งหลักที่ใชในการแสดงขอความออกทางจอภาพไดแกคําสั่ง Write และ WriteLine
ซึ่งถูกนิยามไวในคลาสชื่อ Console และเนมสเปสชื่อ System สองคําสั่งนี้มีการใชงานในลักษณะ
เดียวกัน แตกตางกันที่คําสั่ง WriteLine จะพิมพขอความตามดวยการขึ้นบรรทัดใหมหลังจากพิมพเสร็จ
ลองพิจารณาการใชงานจากตัวอยางตอไปนี้

การเรียกใชงานคําสั่ง Write และ WriteLine โดยระบุเนมสเปสเต็มรูปแบบ
  class Hello
  {
     static void Main()
     {
        System.Console.Write("Hello, ");
        System.Console.WriteLine("everybody");
     }
  }

            สังเกตวาการเรียกใชคําสั่ง Write และ WriteLine นั้นตองระบุถึงคลาส Console ซึ่งเปน
คลาสที่นิยามคําสั่งนี้เอาไว และเนื่องจากคลาส Console เปนคลาสที่อยูในเนมสเปส System จึงตอง
ระบุ ช่ื อ เนมสเปสไว ด ว ยตามตั ว อย าง อย า งไรก็ ต ามเราสามารถทํ า โปรแกรมใหสั้ น ลงได โดยใช คํา สั่ ง
using ซึ่งเปนการสั่งใหคอมไพเลอรคนหาคลาสที่เรียกใชงานในเนมสเปสที่ระบุ ดังตัวอยางตอไปนี้

การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชคําสั่ง using
  using System;




                                        สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี                         23
class Hello
 {
    static void Main()
    {
       Console.Write("Hello, ");
       Console.WriteLine("everybody");
    }
 }

คําสั่ง Write และ WriteLine นั้นยังสามารถเรียกใชงานในรูปแบบที่ซับซอนกวานี้อีกมาก ดังแสดง
ในตัวอยางตอไปนี้

การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบ (formatting
string)
 using System;

 class Hello
 {
    static void Main()
    {
       int width = 80, height = 30;
       Console.WriteLine("Area of {0}x{1} rectangle = {2}",
          width, height, width*height);
    }
 }

         จะเห็นวาสตริงที่เปนพารามิเตอรตัวแรกของคําสั่ง WriteLine นั้นเปนสตริงที่ใชสําหรับ
กําหนดรูปแบบในการแสดงผลของนิพจนที่ตามมาอีกสามตัว สัญลักษณ {0} {1} และ {2} คือตําแหนง
ที่ C# จะนําคาของนิพจน width, height และ width*height มาแทนที่




24                                สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
ความรูเพิ่มเติม

สตริงกําหนดรูปแบบ (Formatting String)

        การแสดงผลลัพธทางจอภาพดวยคําสั่ง Write หรือ WriteLine ที่มีพารามิเตอรมากกวา
หนึ่งตัวนั้นบางครั้งเราตองการแสดงผลลัพธของนิพจนพรอมกับการจัดรูปแบบการแสดงผล เชน การระบุ
ตําแหนงการแสดงผลนิพจนในขอความหรือการระบุความกวาง) จํานวนตัวอักษร (สําหรับการแสดงผลหรือ
การจัดรูปแบบชิดซายหรือการจัดชิดขวา ในภาษา C# เราสามารถทําสิ่งเหลานี้ไดโดยใชวิธีการกําหนด
รูปแบบ ซึ่งในภาษา C# จะมี สตริงกําหนดรูปแบบ (formatting string) เพื่อใชสําหรับแสดง
ผลลัพธของนิพจนตามที่เราตองการ โดยทั่วไปแลวสตริงกําหนดรูปแบบจะมีรูปแบบดังนี้
       “{index [,alignment] [:formatSpecifier]}”

                                                                                      ถูกนําไปแสดงผล
       จากนั้นตามดวยลําดับของอารกิวเมนต เชน

       Console.WriteLine(" Two sample integers are {0} and {1}. ", 3, 9)



จะแสดงผลลัพธเปน “Two     sample integers are 3 and 9”

          โดยที่ index เปนจํานวนเต็มเริ่มตนที่ศูนยใชสําหรับระบุอารกิวเมนตที่ตองการจะจัดรูปแบบ
เชน ถา index มีคาเปน 0 จะหมายถึงคาของอารกิวเมนตตัวแรกจะถูกแสดงในตําแหนงที่ index
ปรากฏอยู และถา index มีคาเปน 1 จะหมายถึงคาของอารกิวเมนตตัวที่สองจะถูกแสดงในตําแหนงที่
index ปรากฏอยูเปนตน สวน alignment เปนจํานวนเต็มที่ใชสําหรับระบุความกวางหรือจํานวน
ตัวอักษรที่จะแสดงผลพรอมกับจัดการแสดงผลแบบชิดซายหรือชิดขวา ถา alignment มีคาเปนลบจะ
จัดชิดซายและถา alignment มีคาเปนบวกจะจัดชิดขวา และตัวสุดทาย formatSpecifier
คือตัวกําหนดรูปแบบ (format specifier) ใชสําหรับกําหนดรูปแบบการแสดงผลของนิพจน
เชนแสดงผลลัพธของนิพจนในรูปแบบทศนิยมเปนตน สวนเครื่องหมาย [ ] หมายถึงจะมีหรือไมมีสวน
นี้กได ตัวกําหนดรูปแบบพื้นฐานสําหรับตัวเลขที่สําคัญแสดงในตารางตอไปนี้
    ็




                                    สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี                  25
อักขระกําหนดรูปแบบ                                    ความหมาย
     (Format Character)
E    หรือ   e                   Exponential (แสดงผลในรูปแบบตัวเลขทางวิทยาศาสตร)
F    หรือ   f                   Fixed-point            (แสดงผลในรูปแบบทศนิยม)
                                General (แสดงผลในรูปแบบทั่วไป เชนตัวเลขจะถูกแสดงผล
G    หรือ   g
                                ในรูปแบบสั้นที่สุด)
                                Number (แสดงผลในรูปแบบตัวเลขเหมือนกับ Fixed-
N    หรือ   n
                                point แตจะใสเครื่องหมาย comma คั่นทุก ๆ 3 หลัก)
                                Percentage (ตัวเลขจะถูกเปลี่ยนอยูในรูปแบบของ
P    หรือ   p
                                เปอรเซ็นต)
X    หรือ   x                   Hexadecimal (แสดงผลในรูปแบบของเลขฐานสิบหก)

ตัวอยาง การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบ

    using System;
    class MainClass
    {
         public static void Main(string[] args)
         {
               Console.WriteLine("x = {0} y = {1}",123,456);
               Console.WriteLine("123456789");
               Console.WriteLine("{0,9}", 123);
               Console.WriteLine("123456789");
               Console.WriteLine("{0,-9}", 123);
               Console.WriteLine("123456789123456789");
               Console.WriteLine("{0,-9}{0,9}", 123,456);
         }
    }




ผลลัพธจากการรันโปรแกรม




26                             สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
ตัวอยาง การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบพรอมกับ
ตัวกําหนดรูปแบบ


 using System;
 class MainClass
 {
      public static void Main(string[] args)
      {
            int n = 123456789;
            Console.WriteLine("{0:E}", n);
            Console.WriteLine("{0:F}", n);
            Console.WriteLine("{0:G}", n);
            Console.WriteLine("{0:N}", n);
            Console.WriteLine("{0:P}", n);
            Console.WriteLine("{0:X}", n);
      }
 }



ผลลัพธจากการรันโปรแกรม




ตัวอยาง การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบพรอมกับการ
กําหนดความกวาง และใชตัวกําหนดรูปแบบพรอมกัน
 using System;
 class MainClass
 {
      public static void Main(string[] args)
      {
            int n = 123456789;
            Console.WriteLine("{0,20:E}", n);
            Console.WriteLine("{0,20:F}", n);
            Console.WriteLine("{0,20:G}", n);
            Console.WriteLine("{0,20:N}", n);
            Console.WriteLine("{0,20:P}", n);
            Console.WriteLine("{0,20:X}", n);
      }
 }




                               สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี         27
จากโปรแกรมจะกําหนดใหแสดงผลกวาง 20 ตัว ผลลัพธจากการรันโปรแกรมจะเปนดังนี้




        นอกจากนี้เรายังสามารถระบุจํานวนของตัวเลขหลังจุดทศนิยมที่ตองการแสดงออกทางจอภาพได
โดยใส ตั ว เลขจํ า นวนเต็ ม หลั ง ตั ว กํ า หนดรู ป แบบ เช น Console.WriteLine("{0:F2}",
123.4500); ตัวเลข 2 หลังตัวอักษร F หมายถึงใหแสดงผลตัวเลข 123.4500 เปนทศนิยมสอง
ตําแหนงนั่นคือ 123.45




28                               สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี

More Related Content

PDF
เครื่องหมายและการดำเนินการในภาษาซี
PDF
ภาษา C#
PDF
งานนำเสนอ1
PDF
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
PPTX
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
PDF
บทที่1 พื้นฐานโปรแกรมภาษาซี
PPT
C slide
DOC
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
เครื่องหมายและการดำเนินการในภาษาซี
ภาษา C#
งานนำเสนอ1
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
บทที่1 พื้นฐานโปรแกรมภาษาซี
C slide
การเขียนคำสั่งควบคุมขั้นพื้นฐาน

What's hot (20)

PDF
การสร้างแบบสอบถาม
PDF
ตัวแปรกับชนิดของข้อมูล
PDF
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
PDF
บทที่ 3 พื้นฐานภาษา Java
PDF
Intro c
PDF
การเขียนฟังก์ชั่นในภาษา C
PDF
3.5 การแสดงผลและการรับข้อมูล
PDF
ความรู้พื้นฐานเกี่ยวกับภาษา PHP
PDF
บทที่ 2 ตัวแปร
PDF
การประกาศตัวแปรในภาษาซี
PDF
พื้นฐานโปรแกรมภาษาจาวา
PDF
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
PPT
โครงสร้างของภาษา C
PDF
การเขียนคำสังควบคุมขั้นพื้นฐาน 2
PPTX
บทที่ 2
PDF
ใบความรู้ที่ 5
PDF
การสร้างตัวแปรใน javascript
PDF
ภาษาซีเบื้องต้น
การสร้างแบบสอบถาม
ตัวแปรกับชนิดของข้อมูล
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
บทที่ 3 พื้นฐานภาษา Java
Intro c
การเขียนฟังก์ชั่นในภาษา C
3.5 การแสดงผลและการรับข้อมูล
ความรู้พื้นฐานเกี่ยวกับภาษา PHP
บทที่ 2 ตัวแปร
การประกาศตัวแปรในภาษาซี
พื้นฐานโปรแกรมภาษาจาวา
ค่าตัวแปรและตัวดำเนินการ [Web-Programming]
โครงสร้างของภาษา C
การเขียนคำสังควบคุมขั้นพื้นฐาน 2
บทที่ 2
ใบความรู้ที่ 5
การสร้างตัวแปรใน javascript
ภาษาซีเบื้องต้น
Ad

Similar to Know1 3 (20)

PPTX
c# part1.pptx
PDF
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
DOC
ตัวแปรชุดและตัวแปรอักขระ
PDF
บทที่ 3 พื้นฐานภาษา Java
PPTX
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
PPT
02 basic
PDF
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
PDF
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
PDF
Power point
PDF
PDF
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
PDF
การใช้สูตรในการคำนวณ โปรแกรม Microsoft Excel
PDF
c# part1.pptx
กลุ่ม3การเขียนคำสั่งควบคุมแบบมีทางเลือก
ตัวแปรชุดและตัวแปรอักขระ
บทที่ 3 พื้นฐานภาษา Java
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
02 basic
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
Power point
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
การใช้สูตรในการคำนวณ โปรแกรม Microsoft Excel
Ad

More from โรงเรียนอุตรดิตถ์ดรุณี (20)

Know1 3

  • 1. ใบความรูที่ 1.3 โครงสรางโปรแกรมภาษา C# และขอมูลพื้นฐานและตัวดําเนินการ การโปรแกรมภาษา C# ขั้นพื้นฐานที่มเี ฉพาะสวนของโปรแกรมหลักและไมมีโปรแกรมยอย (subroutine) จะมีสวนประกอบดังนี้ namespace ___(A)___ { class ___(B)___ { static void Main() { ___(C)___ } } } ตามโครงสรางขางตน ณ ตําแหนง (A), (B), and (C) มีความหมายดังตอไปนี้ • ตําแหนง (A) ระบุชื่อของเนมสเปซ (namespace) ซึ่งใชในการกําหนดขอบเขตใหกบคลาสตาง ๆ ั รวมถึงใชในการจัดโครงสรางของโปรแกรมขนาดใหญใหเปนสัดสวนอีกดวย โดยเฉพาะอยางยิ่ง ในการพัฒนาแอพลิเคชันทีซับซอนโดยผูพัฒนาหลายคน การกําหนดเนมสเปซของตนเองสามารถ ่ ปองกันปญหาการตั้งชื่อคลาสหรือคาคงที่อื่น ๆ ซ้ํากันได สวนไลบรารีของภาษา C# ที่มีใหเรา เรียกใชงานได ก็ถูกเตรียมเอาไวในเนมสเปซชื่อตาง ๆ เชนเดียวกัน • ตําแหนง (B) ระบุชื่อของคลาส (class) • ตําแหนง (C) เปนพื้นที่สําหรับคําสั่งตาง ๆ ที่ผูเขียนโปรแกรมตองการใหคอมพิวเตอรปฏิบัติตาม นอกจากนี้โปรแกรมที่ไมซบซอนมากยังสามารถละสวนที่ระบุเนมสเปซทิ้งไปได คลาสที่ถูกสราง ั ขึ้นมาโดยไมอยูในขอบเขตของเนมสเปซใดจะถือวาอยูในเนมสเปซกลาง (global namespace) class ___(B)___ { static void Main() { ___(C)___ } } 18 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
  • 2. โปรแกรมภาษา C# ซึ่งแสดงขอความ Hello World! ออกทางจอภาพ จากนั้นรอจนกวาผูใชจะกด Enter และ จบการทํางาน โปรแกรมนี้อยูในเนมสเปซชื่อ HelloApp และคลาสชื่อ HelloClass namespace HelloApp { class HelloClass { static void Main() { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); } } } โปรแกรมภาษา C# ซึ่งใหผลลัพธเชนเดียวกับโปรแกรมขางตน แตเขียนโดยไมระบุเนมสเปซ class HelloClass { static void Main() { System.Console.WriteLine("Hello World!"); System.Console.ReadLine(); } } กฎการตังชื่อตัวระบุในภาษา C# ้ โปรแกรมภาษา C# ที่นําไปใชงานจริงมักจะมีการใชงานตัวระบุ (identifier) อยูทั่วไปภายใน โปรแกรม เชนชื่อของเนมสเปซและคลาสที่ไดกลาวไปขางตน ภาษา C# ไดจํากัดกฎเกณฑการตั้งชื่อใหตัว ระบุเอาไวดังตอไปนี้ • ชื่อตัวระบุตองประกอบดวยตัวอักษรภาษาอังกฤษ (A-Z,a-z) ตัวเลข (0-9) หรือเครื่องหมายขีดเสน ใต (_) เทานั้น • ตัวอักษรตัวแรกของชื่อตองเปนตัวอักษรภาษาอังกฤษ หรือตัวขีดเสนใต • ชื่อตัวระบุจะมีความยาวไดไมเกิน 63 ตัวอักษร • ชื่อตัวระบุตองไมซ้ํากับคําสงวน (reserved word) เชน class, namespace, int, void, static สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี 19
  • 3. ชนิดขอมูล (Data Types) ใน C# C# กําหนดชนิดของขอมูลไวหลากหลายชนิดเพื่อรองรับการจัดเก็บขอมูลหลาย ๆ ประเภท ตารางที่ 1 แสดงชนิดขอมูลหลัก ๆ ที่พบบอยในโปรแกรมทั่วไป ตารางที่ 1 ชนิดขอมูลหลัก ๆ ของภาษา C# ชนิดขอมูล คําอธิบาย char อักขระเดียว เชน a ่ bool คาความจริง เปนไปไดสองคาคือ true หรือ false byte จํานวนเต็มไมมีเครื่องหมาย ตั้งแต 0 ถึง 255 int จํานวนเต็มมีเครื่องหมาย ตังแต- 2,147,483,648 ถึง 2,147,483,647 ้ uint จํานวนเต็มไมมีเครื่องหมาย ตั้งแต 0 ถึง 4,294,967,295 long จํานวนเต็มมีเครื่องหมาย ตังแต- 9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807 ้ ulong จํานวนเต็มไมมีเครื่องหมาย ตั้งแต 0 and 18,446,744,073,709,551,615 float จํานวนจริง (มีทศนิยมได) เชน 3.14159 double จํานวนจริงที่เก็บความละเอียดมากเปนสองเทา string ขอความ (สายอักขระ) เชน Hello ตัวแปร (Variables) ตัวแปร (variable) เปนตัวระบุประเภทหนึ่งที่นํามาใชในการอางถึงขอมูล โดยคาของมันสามารถ ถูกเปลี่ยนแปลงไดตลอดเวลาที่โปรแกรมกําลังทํางานอยู ในภาษา C# ตัวแปรทุกตัวตองถูกประกาศ กอนที่จะถูกนํามาใชงาน โดยมีการระบุชนิดขอมูลที่จะใชกับตัวแปรนั้น ๆ ไวดวยตามรูปแบบดังนี้ DataType variableName; ในที่นี้ variableName คือชื่อของตัวแปร และ DataType คือชื่อของชนิดขอมูลที่ตัวแปรนี้ เก็บคาได (ตามตัวอยางในตารางที่ 1) นอกจากการประกาศตัวแปรตามแบบขางตนแลว เรายังสามารถกําหนดคาเริ่มตนใหกับตัวแปรนั้น ๆ ไดอีกดวย โดยมีรูปแบบดังนี้ DataType variableName = initialValue; จะเห็นวาสวนที่เพิ่มขึ้นมาคือเครื่องหมาย = และ initialValue ซึ่งระบุคาเริ่มตนใหกับตัว แปรชื่อvariableName 20 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
  • 4. คําสั่งดานลางประกาศตัวแปรชื่อ distance ที่มีชนิดขอมูลเปน uint และไมมีการกําหนดคาเริ่มตน uint distance; คําสั่งดานลางประกาศตัวแปรชื่อ salary ที่มีชนิดขอมูลเปน long และคาเริ่มตนเปน 30000 long salary = 30000; คาคงที่ (Constants) คาคงที่เปนตัวระบุอีกประเภทหนึ่งที่นํามาใชในการอางถึงขอมูลเชนเดียวกับตัวแปร สิ่งที่แตกตาง จากตัวแปรก็คอคาของมันไมสามารถเปลี่ยนแปลงไดอกหลังจากการประกาศ ื ี ในภาษา C# คาคงที่ตองถูกประกาศโดยระบุชนิดขอมูลและคาตั้งตนกอนถูกนํามาใชงานเสมอ การประกาศคาคงที่จะคลายคลึงกับการประกาศตัวแปร แตกตางกันตรงที่ตองมีการระบุดวยคียเวิรด const ดังแสดง const DataType constantName = value; ในที่นี้ constantName คือชื่อของคาคงที่ สวน DataType คือชื่อชนิดขอมูลที่คาคงที่นี้ใช อางถึง และ value ระบุคาที่คาคงที่นี้ถูกใชเปนตัวแทน  คําสั่งดานลางประกาศคาคงที่ชื่อ myconst โดยมีชนิดขอมูลเปนแบบ double และใชแทนคา 2.71828 const double myconst = 2.71828; การใชงานคาคงที่มีประโยชนมากในกรณีที่เราตองอางอิงถึงคาใด ๆ ซ้ํากันอยูบอยครั้งภายใน โปรแกรม ดังเชนตัวอยางตอไปนี้ โปรแกรมดานลางเปนโปรแกรมที่ทําใหคอมพิวเตอรกลาวคําทักทายทัว ๆ ไปสองบรรทัดกับผูใช ่ ซึ่งสมมติวาชื่อ Harry จะเห็นวาหากเราตองการเปลี่ยนชือผูใชเปนชื่ออื่นนั้นก็สามารถทําไดงาย ๆ โดยแกไข ่ บรรทัด ที่ 5 ใหคาคงที่แทนดวยคาอืนเทานั้น ่ 1: using System; 2: 3: class Intro { 4: static void Main() { 5: const string MY_NAME = "Harry"; 6: 7: Console.WriteLine("Hello {0}, how are you?", MY_NAME); 8: Console.WriteLine("And how can I help you, {0}?", 9: MY_NAME); 10: Console.ReadLine(); 11: } 12: } สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี 21
  • 5. ตัวแปร)รวมถึงคาคงที่ (ที่มีชนิดขอมูลแบบเดียวกันสามารถถูกประกาศรวมกันภายในคําสั่งเดียวกัน ไดโดยคั่นดวยเครื่องหมายคอมมา const int FreezingPoint = 32; int x, y; int wd = 5, ht = 8; const double PI = 3.1424; char ch = 'A'; string mynote = "Hello, Kitty"; int j = 5; นิพจนทางคณิตศาสตร (Arithmetic Expressions) นิพจน (expression) ภายในโปรแกรมภาษา C# หมายถึงสวนของโปรแกรมที่สามารถถูกตีความ เปนคาตาง ๆ ได โดยนิพจนอาจประกอบดวยเทอมเพียงเทอมเดียว หรือเกิดจากการผสมกันของนิพจนอื่น ที่เล็กกวา ดานลางเปนตัวอยางของนิพจนที่ประกอบดวยเทอมเพียงเทอมเดียว • ตัวเลขโดด เชน 3000, 1.414 • ขอความ เชน "Hello, World" • คาความจริง ไดแก true และ false • ตัวแปรหรือคาคงที่เดี่ยว ๆ ที่ผานการกําหนดคาใหแลว เชน myName, salary ในที่นี้จะเนนการศึกษาเกี่ยวกับนิพจนที่ใหคาเปนตัวเลข เรียกวา นิพจนทางคณิตศาสตร (arithmetic expression) โดยเราสามารถผสมนิพจนตาง ๆ ใหเ ปน นิพจน ที่ซับซอนขึ้นโดยอาศัยตัวดําเนินการ ทางคณิตศาสตรที่มีใหในภาษา C# ดังตารางที่2 ตารางที่ 2 ตัวดําเนินการทางคณิตศาสตร ตัวดําเนินการ สัญลักษณ จํานวนนิพจนที่นํามาผสม ตัวอยาง คาของนิพจนเมื่อ x = 20 บวก (add) + 2 x+4 24 ลบ (subtract) - 2 32-x 12 คูณ (multiply) * 2 x*2 40 หาร (divide) / 2 x/2 10 หารเอาเศษ % 2 x%6 2 (modulo) 22 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
  • 6. ตัวดําเนินการ สัญลักษณ จํานวนนิพจนที่นามาผสม ํ ตัวอยาง คาของนิพจนเมื่อ x = 20 กลับเครื่องหมาย - 1 -x -20 (negate) จัดกลุม ( ) N/A (x+2)*3 66 หากนิพจนที่สรางขึ้นมาใหมประกอบดวยตัวดําเนินการมากกวาหนึ่งตัว C# จะคํานวณคาเรียง ตามลําดับกอนหลังดังนี้ • ( ) • *, / และ % • + และ - • หากตัวดําเนินการมีลําดับเทาเทียมกัน คํานวณจากซายไปขวา คําสั่งที่ใชในการแสดงผล คําสั่งหลักที่ใชในการแสดงขอความออกทางจอภาพไดแกคําสั่ง Write และ WriteLine ซึ่งถูกนิยามไวในคลาสชื่อ Console และเนมสเปสชื่อ System สองคําสั่งนี้มีการใชงานในลักษณะ เดียวกัน แตกตางกันที่คําสั่ง WriteLine จะพิมพขอความตามดวยการขึ้นบรรทัดใหมหลังจากพิมพเสร็จ ลองพิจารณาการใชงานจากตัวอยางตอไปนี้ การเรียกใชงานคําสั่ง Write และ WriteLine โดยระบุเนมสเปสเต็มรูปแบบ class Hello { static void Main() { System.Console.Write("Hello, "); System.Console.WriteLine("everybody"); } } สังเกตวาการเรียกใชคําสั่ง Write และ WriteLine นั้นตองระบุถึงคลาส Console ซึ่งเปน คลาสที่นิยามคําสั่งนี้เอาไว และเนื่องจากคลาส Console เปนคลาสที่อยูในเนมสเปส System จึงตอง ระบุ ช่ื อ เนมสเปสไว ด ว ยตามตั ว อย าง อย า งไรก็ ต ามเราสามารถทํ า โปรแกรมใหสั้ น ลงได โดยใช คํา สั่ ง using ซึ่งเปนการสั่งใหคอมไพเลอรคนหาคลาสที่เรียกใชงานในเนมสเปสที่ระบุ ดังตัวอยางตอไปนี้ การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชคําสั่ง using using System; สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี 23
  • 7. class Hello { static void Main() { Console.Write("Hello, "); Console.WriteLine("everybody"); } } คําสั่ง Write และ WriteLine นั้นยังสามารถเรียกใชงานในรูปแบบที่ซับซอนกวานี้อีกมาก ดังแสดง ในตัวอยางตอไปนี้ การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบ (formatting string) using System; class Hello { static void Main() { int width = 80, height = 30; Console.WriteLine("Area of {0}x{1} rectangle = {2}", width, height, width*height); } } จะเห็นวาสตริงที่เปนพารามิเตอรตัวแรกของคําสั่ง WriteLine นั้นเปนสตริงที่ใชสําหรับ กําหนดรูปแบบในการแสดงผลของนิพจนที่ตามมาอีกสามตัว สัญลักษณ {0} {1} และ {2} คือตําแหนง ที่ C# จะนําคาของนิพจน width, height และ width*height มาแทนที่ 24 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
  • 8. ความรูเพิ่มเติม สตริงกําหนดรูปแบบ (Formatting String) การแสดงผลลัพธทางจอภาพดวยคําสั่ง Write หรือ WriteLine ที่มีพารามิเตอรมากกวา หนึ่งตัวนั้นบางครั้งเราตองการแสดงผลลัพธของนิพจนพรอมกับการจัดรูปแบบการแสดงผล เชน การระบุ ตําแหนงการแสดงผลนิพจนในขอความหรือการระบุความกวาง) จํานวนตัวอักษร (สําหรับการแสดงผลหรือ การจัดรูปแบบชิดซายหรือการจัดชิดขวา ในภาษา C# เราสามารถทําสิ่งเหลานี้ไดโดยใชวิธีการกําหนด รูปแบบ ซึ่งในภาษา C# จะมี สตริงกําหนดรูปแบบ (formatting string) เพื่อใชสําหรับแสดง ผลลัพธของนิพจนตามที่เราตองการ โดยทั่วไปแลวสตริงกําหนดรูปแบบจะมีรูปแบบดังนี้ “{index [,alignment] [:formatSpecifier]}” ถูกนําไปแสดงผล จากนั้นตามดวยลําดับของอารกิวเมนต เชน Console.WriteLine(" Two sample integers are {0} and {1}. ", 3, 9) จะแสดงผลลัพธเปน “Two sample integers are 3 and 9” โดยที่ index เปนจํานวนเต็มเริ่มตนที่ศูนยใชสําหรับระบุอารกิวเมนตที่ตองการจะจัดรูปแบบ เชน ถา index มีคาเปน 0 จะหมายถึงคาของอารกิวเมนตตัวแรกจะถูกแสดงในตําแหนงที่ index ปรากฏอยู และถา index มีคาเปน 1 จะหมายถึงคาของอารกิวเมนตตัวที่สองจะถูกแสดงในตําแหนงที่ index ปรากฏอยูเปนตน สวน alignment เปนจํานวนเต็มที่ใชสําหรับระบุความกวางหรือจํานวน ตัวอักษรที่จะแสดงผลพรอมกับจัดการแสดงผลแบบชิดซายหรือชิดขวา ถา alignment มีคาเปนลบจะ จัดชิดซายและถา alignment มีคาเปนบวกจะจัดชิดขวา และตัวสุดทาย formatSpecifier คือตัวกําหนดรูปแบบ (format specifier) ใชสําหรับกําหนดรูปแบบการแสดงผลของนิพจน เชนแสดงผลลัพธของนิพจนในรูปแบบทศนิยมเปนตน สวนเครื่องหมาย [ ] หมายถึงจะมีหรือไมมีสวน นี้กได ตัวกําหนดรูปแบบพื้นฐานสําหรับตัวเลขที่สําคัญแสดงในตารางตอไปนี้ ็ สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี 25
  • 9. อักขระกําหนดรูปแบบ ความหมาย (Format Character) E หรือ e Exponential (แสดงผลในรูปแบบตัวเลขทางวิทยาศาสตร) F หรือ f Fixed-point (แสดงผลในรูปแบบทศนิยม) General (แสดงผลในรูปแบบทั่วไป เชนตัวเลขจะถูกแสดงผล G หรือ g ในรูปแบบสั้นที่สุด) Number (แสดงผลในรูปแบบตัวเลขเหมือนกับ Fixed- N หรือ n point แตจะใสเครื่องหมาย comma คั่นทุก ๆ 3 หลัก) Percentage (ตัวเลขจะถูกเปลี่ยนอยูในรูปแบบของ P หรือ p เปอรเซ็นต) X หรือ x Hexadecimal (แสดงผลในรูปแบบของเลขฐานสิบหก) ตัวอยาง การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบ using System; class MainClass { public static void Main(string[] args) { Console.WriteLine("x = {0} y = {1}",123,456); Console.WriteLine("123456789"); Console.WriteLine("{0,9}", 123); Console.WriteLine("123456789"); Console.WriteLine("{0,-9}", 123); Console.WriteLine("123456789123456789"); Console.WriteLine("{0,-9}{0,9}", 123,456); } } ผลลัพธจากการรันโปรแกรม 26 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี
  • 10. ตัวอยาง การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบพรอมกับ ตัวกําหนดรูปแบบ using System; class MainClass { public static void Main(string[] args) { int n = 123456789; Console.WriteLine("{0:E}", n); Console.WriteLine("{0:F}", n); Console.WriteLine("{0:G}", n); Console.WriteLine("{0:N}", n); Console.WriteLine("{0:P}", n); Console.WriteLine("{0:X}", n); } } ผลลัพธจากการรันโปรแกรม ตัวอยาง การเรียกใชงานคําสั่ง Write และ WriteLine โดยใชสตริงกําหนดรูปแบบพรอมกับการ กําหนดความกวาง และใชตัวกําหนดรูปแบบพรอมกัน using System; class MainClass { public static void Main(string[] args) { int n = 123456789; Console.WriteLine("{0,20:E}", n); Console.WriteLine("{0,20:F}", n); Console.WriteLine("{0,20:G}", n); Console.WriteLine("{0,20:N}", n); Console.WriteLine("{0,20:P}", n); Console.WriteLine("{0,20:X}", n); } } สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี 27
  • 11. จากโปรแกรมจะกําหนดใหแสดงผลกวาง 20 ตัว ผลลัพธจากการรันโปรแกรมจะเปนดังนี้ นอกจากนี้เรายังสามารถระบุจํานวนของตัวเลขหลังจุดทศนิยมที่ตองการแสดงออกทางจอภาพได โดยใส ตั ว เลขจํ า นวนเต็ ม หลั ง ตั ว กํ า หนดรู ป แบบ เช น Console.WriteLine("{0:F2}", 123.4500); ตัวเลข 2 หลังตัวอักษร F หมายถึงใหแสดงผลตัวเลข 123.4500 เปนทศนิยมสอง ตําแหนงนั่นคือ 123.45 28 สถาบันสงเสริมการสอนวิทยาศาสตรและเทคโนโลยี