diff options
| -rw-r--r-- | th-th/pascal.th.html.markdown | 55 | 
1 files changed, 32 insertions, 23 deletions
| diff --git a/th-th/pascal.th.html.markdown b/th-th/pascal.th.html.markdown index e1c5b702..f5f174d0 100644 --- a/th-th/pascal.th.html.markdown +++ b/th-th/pascal.th.html.markdown @@ -1,14 +1,15 @@ ---- +---  language: Pascal  filename: learnpascal.pas  contributors:      - ["Ganesha Danu", "http://github.com/blinfoldking"]      - ["Keith Miyake", "https://github.com/kaymmm"] +translators:      - ["Worajedt Sitthidumrong", "https://github.com/Jedt3D"] -lang: th-th +language: th-th  --- ->Pascal (ปาสกาล) เป็นภาษาโปรแกรมมิ่งทั้งแบบ imperative และ procedural ที่ออกแบบโดย Niklaus Wirth (นิเคล้า เวิร์ท) เมื่อปี 1968-69 และเผยแพร่ตอน 1970 โดยเน้นให้เป็นภาษาที่เล็ก มีประสิทธิภาพ เพื่อเสริมการเขียนโปรแกรมที่มีแนวปฏิบัติที่ดีด้วยการใช้โครงสร้างของตัวภาษา และโครงสร้างข้อมูลมากำกับ ชื่อของภาษานี้ตั้งเป็นเกียรติให้กับนักคณิตศาสตร์ชาวฝรั่งเศส, นักปรัชญา และนักฟิสิกส์ ชื่อ Blaise Pascal (เบลส ปาสกาล) ข้อมูลจาก : [วิกิพีเดีย][1] +> Pascal (ปาสกาล) เป็นภาษาโปรแกรมมิ่งทั้งแบบ imperative และ procedural ที่ออกแบบโดย Niklaus Wirth (นิเคล้า เวิร์ท) เมื่อปี 1968-69 และเผยแพร่ตอน 1970 โดยเน้นให้เป็นภาษาที่เล็ก มีประสิทธิภาพ เพื่อเสริมการเขียนโปรแกรมที่มีแนวปฏิบัติที่ดีด้วยการใช้โครงสร้างของตัวภาษา และโครงสร้างข้อมูลมากำกับ ชื่อของภาษานี้ตั้งเป็นเกียรติให้กับนักคณิตศาสตร์ชาวฝรั่งเศส, นักปรัชญา และนักฟิสิกส์ ชื่อ Blaise Pascal (เบลส ปาสกาล) ข้อมูลจาก : [วิกิพีเดีย][1]  การคอมไพล์และรันโค้ดภาษาปาสกาลนี้ สามารถใช้ปาสกาลคอมไพลเลอร์ฟรีชื่อ Free Pascal ได้ โดย [ดาวน์โหลดที่นี่][2] @@ -37,7 +38,8 @@ type      }  var      { -        ตัวแปร ในภาษาปาสกาล ไม่เหมือนกับภาษาอื่น ๆ เพราะต้องประกาศในบล็อค var ก่อนใช้งานเสมอ +        ตัวแปร ในภาษาปาสกาล ไม่เหมือนกับภาษาอื่น ๆ  +        เพราะต้องประกาศในบล็อค var ก่อนใช้งานเสมอ      }  //มาถึงส่วนโปรแกรมหลัก หรือ main fucntion นั่นเอง @@ -65,7 +67,7 @@ var  var a,b : integer;  ``` -โค้ดตัวอย่างนี้เป็นโปรแกรม Learn_More ที่เป็นโครงสร้างโปรแกรมง่าย ๆ ที่จบสมบูรณ์หนึ่งโปรแกรม มีบล็อค program, const, type, main (Begin..End.) +โค้ดตัวอย่างนี้เป็นโปรแกรม Learn\_More ที่เป็นโครงสร้างโปรแกรมง่าย ๆ ที่จบสมบูรณ์หนึ่งโปรแกรม มีบล็อค program, const, type, main (Begin..End.)  ```pascal  program Learn_More; @@ -77,10 +79,11 @@ const          // ค่าคงที่ ให้ตั้งชื่อเป็น ตัวพิมพ์ใหญ่ ทั้งหมด ใช้กับชนิดข้อมูลใดๆ ก็ได้          // ค่าคงที่ ก็ตามชื่อเลย กำหนดค่าแล้ว ไม่สามารถเปลี่ยนแปลงได้ขณะรัน -// การประกาศชนิดข้อมูลของเราเอง : ชนิดของตัวแปรสองแบบนี้ จะนำไปใช้ด้านล่าง +// การประกาศชนิดข้อมูลของเราเอง +// "ชนิด" ของตัวแปรสองแบบนี้ จะนำไปใช้ด้านล่าง  type      ch_array : array [0..255] of char; -        // อะเรย์ เป็นชนิดข้อมูลอีกแบบ ที่มี ความยาว/ช่องเก็บข้อมูล และ ชนิดข้อมูล +        // อะเรย์ เป็นชนิดข้อมูลที่มี ความยาว/ช่องเก็บข้อมูล และ ชนิดข้อมูล          // โค้ดด้านบน เป็นการประกาศอะเรย์ของตัวอักษา 255 ตัวอักษา          // ซึ่งได้ ความยาว/ช่องเก็บข้อมูลในตัวแปรตัวนี้ 256 ช่องที่เป็นข้อความ       md_array : array of array of integer; @@ -106,14 +109,14 @@ var             // ตัวอักษรเป็นแบบ ASCII 8 bit ดังนั้นจะไม่ใช่ UTF, Unicode       str  : string;             // ตัวแปรสตริงจะเก็บข้อความ หรือ char หลาย ๆ ตัว -           // ชนิดข้อมูลนี้ไม่เป็นมาตรฐานภาษาแต่แทบทุกคอมไพเลอร์ปาสกาลก็จะมีให้ +           // ชนิดข้อมูลนี้ไม่เป็นมาตรฐานภาษาแต่คอมไพเลอร์ปาสกาลก็มักจะมีให้             // ทั่ว ๆ ไปแล้ว จะเป็นอะเรย์ของ char ความยาวตั้งต้น 255       s    : string[50];             // แบบนี้คือ กำหนดความยาว string เอง ให้เก็บ char 50 ตัว             // แบบนี้ก็ทำให้ประหยัดหน่วยความจำมากขึ้นนั่นเอง      my_str: ch_array;             // ชนิดตัวแปร ใช้เป็นชนิดที่เรากำหนดเองก็ได้ อย่างตอนนี้ -           // ch_array เป็น "ชนิดข้อมูล" ที่เราสร้างขึ้นมาเอง ด้านบนที่บล็อค type +           // ch_array เป็น "ชนิดข้อมูล" ที่เราสร้างขึ้นมาในบล็อค type      my_2d : md_array;             // ตัวแปรแบบอะเรย์ที่ไม่ประกาศขนาด (dynamically sized array)             // ก่อนเอาไปใช้จริงต้องระบุขนาดก่อนใช้เสมอ @@ -126,11 +129,13 @@ var      li   : longint;  // มีช่วงข้อมูล [-2,147,483,648..2,147,483,647]      lw   : longword; // มีช่วงข้อมูล [0..4,294,967,295]      c    : cardinal; // ก็คือ longword -    i64  : int64;    // มีช่วงข้อมูล [-9223372036854775808..9223372036854775807] +    i64  : int64;    // มีช่วงข้อมูล  +                     // [-9223372036854775808..9223372036854775807]      qw   : qword;    // มีช่วงข้อมูล [0..18,446,744,073,709,551,615]      // ชนิดข้อมูลแบบ real เพิ่มเติม -    rr   : real;     // มีช่วงข้อมูลที่ขึ้นกับระบบปฏิบัติการ (เช่นเป็นแบบ 8-bit, 16-bit, ฯลฯ) +    rr   : real;     // มีช่วงข้อมูลที่ขึ้นกับระบบปฏิบัติการ  +                     // (เช่นเป็นแบบ 8-bit, 16-bit, ฯลฯ)      rs   : single;   // มีช่วงข้อมูล [1.5E-45..3.4E38]      rd   : double;   // มีช่วงข้อมูล [5.0E-324 .. 1.7E308]      re   : extended; // มีช่วงข้อมูล [1.9E-4932..1.1E4932] @@ -157,25 +162,26 @@ Begin      bool := true xor true;  // bool = false      r := 3 / 2;  // หารด้วย / จะได้ผลเป็น real เสมอ -    r := int;    // เรากำหนดค่า integer ให้ตัวแปร real ได้ แต่ทำกลับกันไม่ได้ +    r := int;    // เรากำหนดค่า integer ให้ตัวแปร real ได้ +                 // แต่ทำกลับกัน โดยกำหนด real ให้ integer ไม่ได้      c := str[1]; // กำหนดค่าแรกใน array str ให้ตัวแปร c ที่เป็น char      str := 'hello' + 'world'; // เรารวม string เข้าด้วยกันด้วย +  -    my_str[0] := 'a'; // กำหนดค่าให้ string เฉพาะตำแหน่งได้แบบตัวแปรอะเรย์ทั่วไป +    my_str[0] := 'a'; // กำหนดค่าให้ string เฉพาะตำแหน่งแบบอะเรย์ทั่วไป      setlength(my_2d,10,10); // ปรับขนาดอะเรย์ 2 มิติให้เป็นขนาด 10x10                              // โดยตัวแปร my_2d นี้สร้างแล้วด้านบน      for c := 0 to 9 do      // อะเรย์เริ่มจาก 0 และจบที่ ความยาว-1 -        for d := 0 to 9 do  // ตัวนับ (counter) จำเป็นต้องประกาศมาก่อนนำมาใช้ตรงนี้ +        for d := 0 to 9 do  // ตัวนับ (counter) จำเป็นต้องประกาศก่อนใช้          my_2d[c,d] := c * d; -          // เรากำหนดอะเรย์หลายมิติได้ด้วยการใช้วงเล็บก้ามปู (square brackets) ชุดเดียว +          // กำหนดอะเรย์หลายมิติ ด้วยการใช้วงเล็บก้ามปู (square brackets)  End.  // จบโปรแกรมบริบูรณ์ ด้วย "."  ``` -ด้านล่าง เป็นตัวอย่างการเขียนโปรแกรมปาสกาลชื่อ Functional_Programming +ด้านล่าง เป็นตัวอย่างการเขียนโปรแกรมปาสกาลชื่อ Functional\_Programming  ```pascal  program Functional_Programming; @@ -200,9 +206,10 @@ Begin  End; // จบ ฟังก์ชั่น ด้วย ";" หลัง End ไม่เหมือนกับจบ โปรแกรม ที่จะใช้ "."  procedure get_integer(var i : integer; dummy : integer); -{ เรารับ input จากผู้ใช้มาเก็บใน parameter i ที่เป็น integer ที่ตั้งขึ้นในพารามิเตอร์ -  โดยใช้ var ประกาศ ทำให้ค่าที่รับเข้ามาจะเปลี่ยนปรับได้จากภายนอกการประกาศพารามิเตอร์นี้  -  ส่วน dummy เป็นตัวแปรที่ปรับเปลี่ยนได้ "เฉพาะจากภายในฟังก์ชั่น,โพรซีเยอร์นั้น ๆ } +{ เรารับ input จากผู้ใช้มาเก็บใน parameter i ที่เป็น integer ที่ตั้งขึ้นใน +  พารามิเตอร์ โดยใช้ var ประกาศ ทำให้ค่าที่รับเข้ามาจะเปลี่ยนปรับได้จาก +  ภายนอกการประกาศพารามิเตอร์นี้ ส่วน dummy เป็นตัวแปรที่ปรับเปลี่ยนได้ +  "เฉพาะจากภายในฟังก์ชั่น,โพรซีเยอร์นั้น ๆ }  Begin      write('Enter an integer: ');      readln(i); @@ -217,11 +224,13 @@ Begin      get_integer(i, dummy);      writeln(i, '! = ', factorial_recursion(i));      // พิมพ์ค่า i! -    writeln('dummy = ', dummy); // จะให้ค่าเป็น '3' เสมอ เพราะจะไม่เปลี่ยนเนื่องด้วย -                                // การประกาศพารามิเตอร์ในโพรซีเยอร์ get_integer ด้านบน +    writeln('dummy = ', dummy); // จะให้ค่าเป็น '3' เสมอ  +                                // เพราะจะไม่เปลี่ยนเนื่องด้วย +                                // การประกาศพารามิเตอร์ใน +                                // โพรซีเยอร์ get_integer ด้านบน  End.  ``` -[1]: https://en.wikipedia.org/wiki/Pascal_(programming_language) -[2]: https://www.freepascal.org/
\ No newline at end of file +[1]:	https://en.wikipedia.org/wiki/Pascal_(programming_language) +[2]:	https://www.freepascal.org/
\ No newline at end of file | 
