รถไฟฟ้า..มาหานะเธอ (Bangkok Traffic love Story)

ประเภท  : romantic, comedy
ผู้กำกับ : อดิสรณ์ ตรีสิริเกษม
นักแสดง : เคน ธีรเดช วงศ์พัวพันธ์ ,คริส หอวัง,แพท อังศุมาลิน สิรภัทรศักดิ์เมธา
กำหนดฉาย : 15/ต.ค./2552
เว็บไซต์ :  -
ตัวอย่างหนัง : http://www.youtube.com/watch?v=ZSMUF8izOJM

สภาพจราจรในปี 2552 ยังเป็นปัญหาหนักอกของคนกรุงเทพฯ ด้วยแม้จะมีถนน สะพาน ทางด่วใหม่ๆผุดขึ้นหลายต่อหลายสาย ผิวจราจรเหล่านั้นก็ยังติดขัดและไม่เพียงพอต่อความต้องการ...ถนนในกทม.ก็เหมือนหนุ่มหล่อแสนดี ที่มีน้อยและไม่เคยเพียงพอต่อความต้องการ!

        เหมยลี่ (คริส หอวัง) เป็นสาวอายุ 30 ที่มีพฤติกรรมป่วนประจำตัวอย่างหนึ่ง คือ การเมาในงานแต่งงานเพื่อน เพราะมันช่างตอกย้ำซ้ำเติมชีวิตโสดสนิทไร้ชายใดมาแผ้วพานของลี่ วันหนึ่งหลังลากสังขารกลับจากการส่งเพื่อนสาวสุดซี้เข้าห้องหอ ลี่ขับรถเสยเข้ากับแผงโจ๊กในตลาดโต้รุ่ง ส่งผลให้รถเก๋งคันงามของเธอถูกป๊าผู้ต่อต้านแอลกอฮอลล์ทุกชนิดขายทิ้ง โทษฐานเมาแล้วขับ 
        ชีวิตที่ไม่มีชายหนุ่มคอยไปรับไปส่งอย่างลี่ จึงต้องออกไปผจญการจราจรสุดโหดของเมืองบางกอกเพียงลำพัง แต่ละวันลี่ต้องปากกัดตีนถีบ ขึ้นมอเตอร์ไซค์ ต่อรถตู้ โบกแท็กซี่ โหนรถเมล์ โดดลงเรือ ฯลฯ สารพันความเมื่อยล้าจากการเดินทางแบบเมก้าฮิตทำให้เวลานอนของลี่แปรปรวน คืนหนึ่งลี่ตื่นมากลางดึกและแอบขึ้นไปกินเบียร์บนดาดฟ้า โชคดีปนร้าย ลี่บังเอิญไปเจอลูกจ้างชายหญิงกำลังแสดง ‘หนังสด’ กันอยู่ กลายเป็นคดีอื้อฉาวกลางดึกที่นำพาให้ลี่ได้พบกับ ลุง (เคน – ธีรเดช วงศ์พัวพันธ์) วิศกร Maintenance แห่งรถไฟฟ้า BTS 

        การได้พบกับผู้ชายชื่อแปลกคนนี้แบบไม่เมา ในคืนต่อมาทำให้ลี่เริ่มรู้สึกแปลกๆ ขึ้นมาเป็นครั้งแรกในสามสิบฝน ในหัวลี่อัดแน่นด้วยคำถาม “ผู้ชายที่ทั้งขาว ทั้งหล่อ ทั้งเท่ ไหงถึงมาซ่อนตัวทำงานรถไฟฟ้ากะดึกอยู่อย่างนี้” ลี่รู้สึกราวลุง คือ ขุมทรัพย์ที่เธอบังเอิญไปพบลายแทงเข้า หากเธอไม่ลงมือทำอะไร ไม่ทำในสิ่งที่ใจต้องการ เธออาจกลายเป็นหญิงโสดคนสุดท้ายในกรุงเทพมหานคร  

       ลี่ตัดสินใจทำในสิ่งที่ผู้หญิงทุกคนเคยคิดแต่ไม่กล้าลงมือ นั่นคือ การจีบผู้ชายก่อน 
       แต่ทุกอย่างมันก็ไม่ง่ายสำหรับมือใหม่หัดจีบอย่างลี่ ไหนจะเวลาไม่ตรงกันจนเหมือนอยู่คนละโลกของเขากับเธอ ไหนจะถูก เพลิน (แพท - อังศุมาลิน สิรภัทรศักดิ์เมธา) สาวน้อยข้างบ้านหักหลัง แปรพักตร์จากครูไปเป็นคู่แข่งความรัก
        แต่ไม่ว่าจะต้องผจญอุปสรรคไหนๆ ลี่ก็ไม่คิดถอดใจ ตั๋วรักรถไฟ(ฟ้า) เที่ยวสุดท้ายใบนี้ ลี่สาบานว่าจะไม่ยอมให้หลุดมือเด็ดขาด!
 
 

การออกฉายและรายได้

รถไฟฟ้ามาหานะเธอ ออกฉายรอบปฐมทัศน์เมื่อวันที่ 13 ตุลาคม พ.ศ. 2552 โดยทีมงาน นักแสดง ผู้บริหารเปิดตัวจากบนรถไฟฟ้าเดินลงมาพรมแดงลานดิสคัพเวอรี่ สยามดิสคัพเวอรี่ภาพยนตร์ออกฉายรอบปกติในโรงภาพยนตร์วันที่ 15 ตุลาคม พ.ศ. 2552 ได้รับเรตติ้ง "ท" (ภาพยนตร์ที่เหมาะสมกับผู้ดูทั่วไป) เปิดตัวรายได้ในวันแรกที่ 15.1 ล้านบาท ทำลายสถิติรายได้วันเปิดตัวในปีนี้ของภาพยนตร์ ห้าแพร่ง ที่ 14.9 ล้านบาททำรายได้ 4 วันที่ 57 ล้านบาทและมีรายได้เป็นอันดับ 1 ของสัปดาห์นั้นในสัปดาห์ที่ 2 ยังคงที่ในอันดับที่ 1 รวมรายรับอีก 4 วันที่ 30.3 ล้านบาทในสัปดาห์ที่ 3 ทำรายได้อีก 14.3 ล้านบาท รายได้จากการเข้าฉายในประเทศไทย (เฉพาะกรุงเทพฯและปริมณฑล) รวมสัปดาห์ที่ 3 ภาพยนตร์ รถไฟฟ้า มาหานะเธอ ทำรายได้ที่ 131 ล้านบาทในสัปดาห์ที่ 4 ยังคงสามารถทำรายได้เป็นอันดับ 1 ติดต่อกัน 4 สัปดาห์ โดยรายได้รวมอยู่ที่ 141.1 ล้านบาทรายได้รวมทำลายสถิติภาพยนตร์เรื่องแฟนฉัน ที่เป็นภาพยนตร์ทำรายได้สูงสุดของค่ายจีทีเอชไปได้ ในสัปดาห์ที่ 5 ตกจากอันดับ 1 ทำรายได้เพิ่มอีก 1.1 ล้านบาท ทำรายได้รวม 147 ล้านบาท ถือเป็นภาพยนตร์ไทยที่ทำรายได้สูงสุดของปี พ.ศ. 2552 และเป็นภาพยนตร์ที่ทำรายได้สูงสุดของค่ายจีทีเอช

ด้านการออกฉายในต่างประเทศ ภาพยนตร์ รถไฟฟ้า มาหานะเธอ ออกฉายในเทศกาลภาพยนตร์โอกินาว่า ประเทศญี่ปุ่น เมื่อวันที่ 26 มีนาคม พ.ศ. 2553 โดยเข้าประกวดในหนังสายสันติภาพแต่ไม่ได้รับรางวัลภาพยนตร์ออกฉายอย่างเป็นทางการในสิงคโปร์ เมื่อวันที่ 29 กรกฎาคม พ.ศ. 2553 ได้รับเรตติ้ง "G" จัดจำหน่ายโดยโกลเดนวิลเลจพิกเจอร์ส

 

คอบคำถาม

posted on 16 Aug 2011 20:12 by laksanagaga

1. มัลติมิเดีย คืออะไร เกี่ยวกับการนำเสนออย่างไร
ตอบ : มัลติมีเดีย คือการนำเสนอข้อมูลหลายๆรูปแบบพร้อมๆกัน เพื่อส่งเสริมการรับรู้และความเข้าใจของผู้รับข้อมูล มัลติมีเดียมีความเกี่ยวข้องกับการนำเสนอ คือ มัลติมีเดียมีส่วนช่วยให้การนำเสนอข้อมูลมีความน่าสนใจมากขึ้น ทำให้สามารถทำสื่อได้ง่ายขึ้น และสามารถนำเสนอในสิ่งที่ถูกต้อง และมีความปลอดภัยของข้อมูลมากกว่า

 
2.การนำเสนอข้อมูลในรูปแบบเว็ฐใวต์ดีกว่าเอกสารสิ่งพิมพ์อย่างไร
ตอบ : - การนำเสนอผ่านเว็บไซต์สามารถส่งถึงผู้รับได้เร็วกว่า แบบ สื่อพิมพ์

- สามารถนำสื่อที่อยู่ในรูปของเว็บไซต์ ไปเสนอที่ใดก็ได้ อย่างสะดวก และรวดเร็ว
- มีความคงทนไม่สูญหาย สลายเหมือนกับเอกสารสิ่งพิมพ์
- ประหยัดค่าใช้จ่ายมากกว่า เช่น ไม่ต้องเสียค่ากระดาษในการพิมพ์เอกสาร ค่าหมึก และค่าใช่จ่ายอีกมากมาย

3.Micosoft Powerpoint สามารถนำเสนอข้อมูลในรูปแบบใดได้บ้าง
ตอบ : สามารถเสนอข้อมูลในรูปแบบของตัวอักษร รูปภาพ ภาพยนตร์ วีดีโอคลิป และมีเสียงประกอบได้


4.การเชื่อมโยงภายในและภายนอก micosoft Power Point แตกต่างกันอย่างไร
ตอบ : แตกต่างกันโดยการสร้างจุดเชื่อมโยงไปยังจุดเชื่อมโยงต่างๆ ในไฟล์เดียวกัน ส่วนการเชื่อมโยงภายนอก คือ การเชื่อมโยงไปยังแหล่งข้อมูลอื่นๆนอกไฟล์งานนำเสนอ


5.นอกจากคอมพิวเตอร์แล้วยังมีเทคโนโลยีใดที่ช่วยส่งเสริมการนำเสนอข้อมูลบ้าง
ตอบ : นอกจากคอมพิวเตอร์แล้วยังมีเทคโนโลยีที่ส่งเสริมการนำเสนอข้อมูล คือ จอทีวี จอโปรเจคเตอร์ จอมอนิเตอร์และ อื่นๆ


6.น.ร คิดว่าการนำเสนอข้อมูลในรูปแบบใดสามารถทำได้ง่านที่สุด เพราะเหตุใด
ตอบ : การนำเสนอข้อมูลแบบ ใช้ power point เพราะสามารถ แสดงข้อมูลที่ชัดเจน มีรูปแบบการนำเสนอที่เข้าใจง่าย น่าสนใจ สามารถแทรกสื่อรูปแบบต่างได้ เช่น แทรกรูปและ เสียงในการนำเสนองานให้มีความน่าสนใจมากขึ้นด้วย


7.การตกแต่งเพิ่มเติมด้ยโปรแกรมแม่แบบใน micosoft Power Point สามารถทำได้อย่างไร
ตอบ : การตกแต่งนั้นสามารถทำได้โดยการเลือกที่แม่แบบ โดยเริ่มจากคลิกขวาบริเวณที่ว่าง แล้วเลือกอออกเเบบภาพนิ่ง จะมีแม่แบบขึ้นมาให้เราเลือกมากมาย


8.การกำหนดกล่องข้อความ หรือกำหนดวัตถุให้เคลื่อนไหวใน micosoft Power Point สามารถตั้งค่าได้ที่ใด
ตอบ : การกำหนดกล่องข้อความ หรือวัตถุให้เคลื่อนที่ทำได้โดย

1.)คลิกเลือกกล่องข้อความ หรือวัตถุที่ต้องการให้เคลื่อนไหว
2.) คลิกขวาเลือกการเคลื่อนไหวแบบกำหนดเอง
3.)เลือกลักษณะพิเศษ แล้วตั้งค่าการเคลื่อนไหวตามต้องการ

9. ยกตัวอย่างซอฟต์แว ที่ใช้สำหรับ นำเสนอข้อมูล ตัวหนังสือ หรืออักษรมาอย่างน้อย 3โปรแกรม
ตอบ : Microsoft office excel , Microsoft  PowerPoint ,movie maker

10. ถ้าไม่มีกล่องข้อความใน micosoft  powerpoint จะสามารถสร้างงานนำเสนอได้หรือไม่อย่างไร
ตอบ : สามารถทำได้โดยการนำเสนอในรูปแบบอื่นที่ไม่ใช่ตัวอักษร เช่น รูป เสียง วีดีโอ หรือโดยการใช้โปรแกรมอื่นร่วม


11.เครืองพิมพ์เป็นฮาร์แวที่จำป็นสำคัญหรับการนำเสนอข้อมูลด้วย micosoft  powerpoint หรือไม่อย่างไร
ตอบ : เครื่องพิมพ์เป็นสิ่งที่ไม่จำเป็นสำหรับโปรแกรม Microsoft  PowerPoint เพราะโปรแกรมนี้สามารถนำเสนอข้อมูลผ่านทางจอคอมพิวเตอร์ รือจออื่นๆได้ จึงไม่จำเป็นที่จะต้องพิมพ์ข้อมูลออกมาเพื่อนำเสนอก็ได้


12.micosoft  powerpoint สามารถ แทรกรูปภาพ ภาพยนตร์ และเสียงได้หรือไม่ ถ้าได้มีวิธีการอย่างไร
ตอบ :

     แทรกรูปภาพ
1.) คลิกเลือกแถบเมนู -> เลือกรูปภาพ โดยเลือกจากแฟ้มข้อมูล
2.)เมื่อมีหน้าต่างแทรกรูปภาพปรากฏขึ้น เลือกรูปจากที่ๆบันทึกรูปเอาไว้
3.)คลิกแทรกรูปภาพ
     แทรกภาพยนตร์ และ เสียง
1.)คลิกแทรกที่แถบมุม
2.)เลือกภาพยนตร์ และเสียง
3.)เลือกภาพยนตร์ จากแฟ้มหรือ เสียงจากแฟ้ม

13. การนำเสนอข้อมูลด้วยแผนภูมิ แผนผัง และ กราฟดีกว่าการนำเสนอข้อมูลด้วยตัวหนังสือ หรือตัวอักษรอย่างไร
ตอบ : การนำเสนอแบบเป็นแผนภาพ แผนภูมิจะทำให้ ผู้ที่ได้รับ สื่อมีความเข้าใจในข้อมูลที่นำเสนอต้องการนำเสนอได้มากขึ้น เพราะ มีความชัดเจนของข้องมูลมากกว่า



14. การสร้างงานนำเสนอด้วย Micosoft powerpoint สำหรับผู้รับข้อมูล20 คนพร้อมกัน จะใช้ฮาร์ดเเวร์ และซฮฟแวร์ ใดบ้าง
ตอบ : ใช้ซอฟต์แวร์ คือ โปรแกรม Microsoft PowerPoint และอาจมีโปรแกรมอื่นที่ใช้ช่วยในการ เปิดเพลง คลิปวีดีโอ และฮาร์ทฟแวร์ คือ คอมพิวเตอร์ ลำโพง จอฉาย เป็นต้น

15.ยกตัวอย่างเทคโนโลยีที่ส่งเสริมการนำเสนอข้อมูล ในรู)แบบตัวหนังสือ กรือตัวอักษร รูปภาพ หรือภาพนิ่ง แผนภูมิ แผนผัง กราฟ เสียง และภาพเคลื่อนไหวได้พร้อมกัน
ตอบ : มัลติมีเดียเว็บไซต์

 

 

ภาษาปาสคาล

posted on 10 Jul 2011 21:14 by laksanagaga
     ในอดีตภาษาคอมพิวเตอร์ที่เรียกว่าฟอร์แทรนและโคบอลเป็นภาษาที่นิยมให้มากที่สุด ภาษาฟอร์แทรนพัฒนาขึ้นใช้ในปี พ.ศ. 2499 เป็นภาษาที่ใช้เพื่อประยุกต์
งานด้านตัวเลขได้ดีเยี่ยม ส่วนภาษาโคบอลพัฒนาขึ้นในปี พ.ศ. 2502 มุ่งใช้งานด้านประมวลผลธุรกิจ สำหรับภาษาปาสคาลได้รับการพัฒนาขึ้นในปี พ.ศ. 2513 
โดย นิเคลาส์ เวียร์ธ(Niklaus Wirth) แห่งเทคนิเคิล ยูนิเวอร์ซิตี้ ในเมืองซูริค ประเทศสวิสเซอร์แลนด์ ซึ่งกำลังเป็นที่นิยมแพร่หลายในปัจจุบันและจะนิยมกันมาก
ในอนาคต จุดประสงค์ของการใช้ภาษาปาสคาลเบื้องแรกก็คือ ฝึกนิสัยการเขียนโปรแกรมให้มีระเบียบระบบหรือฝึกการเขียนโปรแกรมโครงสร้าง ภาษาปาสคาลเป็น
ภาษาที่ออกแบบขึ้นให้มีความง่ายต่อการทำงาน การเข้าใจและการใช้ ปาสคาลเป็นชื่อของนักคณิตศาสตร์ชาวฝรั่งเศสชื่อว่า Blaise Pascal ซึ่งได้คิดเครื่องคำนวณ
ระบบกลไกขึ้นเป็นคนแรกจึงได้รับเกียรติให้ตั้งเป็นชื่อภาษาคอมพิวเตอร์ซึ่งเวียร์ธเป็นผู้สร้างภาษานี้ขึ้น ใช้กันกว้างขวางในสหรัฐอเมริกาและยุโรปเพื่อสอนการเขียน
โปรแกรมโครงสร้าง และใช้เป็นภาษาเอนกประสงค์(general purpose) ซึ่งประยุกต์ใช้ได้ทั้งคอมพิวเตอร์เครื่องใหญ่และไมโครคอมพิวเตอร์โปรแกรมง่าย ๆ

โปรแกรมภาษาปาสคาลที่สมบูรณ์และง่ายที่สุดจะต้องเป็นดังนี้

PROGRAM MyfirstProgram(OUTPUT);
BEGIN
WRITELN(‘This is my program);
END.
    เมื่อโปรกรม ดำเนินการจะให้ผลลัพธ์ดังนี้ This my program. โปรแกรมภาษาปาสคาลจะเขียนอักษรตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่ เมื่อไร ตรงไหนปนเปกันอย่างไร
ก็ได้ คอมพิวเตอร์จะดูด้วยตนเองว่ามันจะทำงานจริงหรือไม่

รงสร้างของโปรแกรมปาสคาล
       โครงสร้างของโปรแกรมประกอบด้วยการตั้งหัวเรื่อง โดยการตั้งชื่อของโปรแกรมขึ้นเองในบรรทัดแรกด้วยคำว่า PROGRAM MyfirstProgram คำว่าBEGIN เป็นส่วนที่แสดงจุดเริ่มต้นของโปรแกรม ในทางตรงกันข้าม END. แสดงว่าเป็นส่วนของโปรแกรมที่สิ้นสุดการทำงาน และเมื่อจั่วหัวโปรแกรมจะตามด้วยชื่อโปรแกรมที่เรา
ตั้งเอง แล้วตามด้วยเครื่องหมาย ; สรุปได้ว่าโครงสร้างของโปรแกรมเป็นดังนี้
ในขั้นแรก ไปดูโครงสร้างของการเขียน pascal กันค่ะ

โครงสร้าง pascal
program ...;
var ...

begin

end.


program
เป็นส่วน ตั้งชื่อของโปรแกรมเพื่อให้รู้ว่าคือโปรแกรมอะไร
ท้ายของชื่อ ให้เขียน ; (semi-colon) เพื่อเป็นการจบคำสั่ง
ส่วนนี้เราจะเขียนหรือไม่ก็ได้ เพราะส่วนนี้เป็นเพียงชื่อเท่านั้น
program  myprogram;
var ...

begin

end.


var   ส่วนนี้เป็นส่วนที่ใช้สำหรับประกาศตัวแปร
program  myprogram;
var
a : integer ;
b : string ;
c : char ;

begin

end.


ในเรื่องของตัวแปร ( variable )
การประกาศตัวแปรให้ เริ่มด้วย var

ตามด้วย
ชื่อของตัวแปร : ชนิดของตัวแปร ;
( ส่วนประกอบของตัวแปร )

ชื่อของตัวแปร
ให้เป็นภาษาอังกฤษ .. ส่วนจะเขียนตัวเล็ก หรือ ใหญ่มีผลเหมือนกัน
ตัวแรกห้ามเป็นตัวเลข และห้ามเว้นวรรค ให้ใช้ ขีดล่างแทน ( _ )

ตัวอย่าง
MyNumber : integer ;  /
mynumber : integer ;  /
12number : integer ;   X
my_num : integer ;    /
my num : integer ;     X



ชนิดของตัวแปร
มีหลายชนิด ส่วนที่ใช้บ่อยๆ มีดังนี้
ชนิดของตัวแปร ขอบเขต
Shortint -128 ... +127
Byte 0 ... 255
Integer -32768 ... +32767
Word 0 ... 65535
Longint -2147483648 ... +2147483647
Real 2.9 * 10-39  ...  1.7 * 1038
String ตัวอักษร 255 ตัวอักษร
Char ตัวอักษร 1 ตัวอักษรเท่านั้น

               ที่ต้องมี การกำหนด ชนิดตัวแปรไว้หลายประเภทนี้ ก็เพื่อ
สะดวกในการใช้งาน
เช่น integer ก็ไว้สำหรับตัวแปรตัวเลขที่ใช้คำนวณ ส่วน string ก็ใช้จัดการข้อมูลตัวอักษร
เพื่อความเหมาะสม  คือ เมื่อเราประกาศตัวแปรแล้ว โปรแกรมจะทำการจองหน่วยความจำ
ให้กับตัวแปรหากเราใช้ ชนิดตัวแปรให้กว้างที่สุดแบบเดียวกันหมด.. ก็อาจจะกินหน่วยความ
จำมากเกินไปก็เลยกำหนดไว้หลายประเภท เพื่อให้เหมาะสมกับขนาดของข้อมูล


ตัวอย่าง

myname : string ;
yourname : string ;
age : byte ;
money : word ;

* ในการตั้งชื่อตัวแปร *
ควรตั้งชื่อ ที่สื่อความหมายได้ดี
เพื่อสะดวกในการแก้ไขโปรแกรม



begin

end. ส่วนนี้มีไว้สำหรับ สั่งให้คอมพิวเตอร์ทำงาน
program  myprogram;
var
a : integer ;
b : string ;
c : char ;
begin

write(' this is my first program') ;

end.

คำสั่งพื้นฐานที่จะต้องทำความรู้จักก็คือ

write( ) ;
ใช้สำหรับสั่งให้แสดงตัวอักษรบนจอ โดยใช้ร่วมกับเครื่องหมาย ' ... '
หรือจะใช้ตัวแปร ช่วยในการแสดงตัวอักษรก็ได้
ตัวอย่างที่ 1 write( ); this is a string in pascal program
program   write_string ;
var
        mystring : string ;

begin
        mystring := ' in pascal program' ;
        write('this is a string') ;
        write(mystring);
end.


หลังจากเขียนโปรแกรมนี้เสร็จให้ลอง Compile โดย กด Ctrl+F9
ตามด้วย Alt+F5 เพื่อดูผลลัพธ์


โครงสร้างขั้นพื้นฐาน
เป็นไปตามที่ได้กล่าวไว้ค่ะ ได้แก่
    1. ส่วนประกาศตัวแปร ( var .. )
   2. ส่วนการทำงาน ( begin .. ไปถึง end.)แต่ความจริงยังมีส่วนประกอบ อีกหลายส่วน เช่น การประกาศค่าคงที่ การเรียกยูนิตมาใช้การเขียน โพรซีเจอร์ และฟังชั่น
การประกาศตัวแปร local และ global


 ลักษณะการใช้ถ้อยคำและชื่อในภาษาปาสคาลมี2 ลักษณะ
   1. คำสงวน (Reserved word) คือชื่อต่าง ๆ ที่มีความหมายอย่างเดียวกันเสมอไม่ว่าจะเขียนขึ้นที่ใดของโปรแกรม เป็นคำหรือชื่อที่นิยามไว้เป็นการเฉพาะ เช่น คำที่เขียน
ว่า BEGIN END REPEAT DIVเป็นต้น
    2. ชื่อที่ตั้งขึ้น (identifier) คือชื่อต่าง ๆ ที่ผู้เขียนโปรแกรมตั้งขึ้นเพื่อจะระบุถึงตัวแปรที่จะเก็บไว้ในหน่วยความจำเพื่อช่วยเตือนความทรงจำของผู้เขียนโปรแกรมว่าชื่อที่ตั้ง
ขึ้นมีจุดประสงค์ที่จะใช้ในโปรแกรมอย่างไร ดังนั้นจึงนิยามขึ้นมาเฉพาะในแต่ละโปรแกรม ความหมายของชื่อจึงเปลี่ยนไป ชื่อที่ตั้งขึ้น(identifier) จะต้องด้วยตัวอักษรแล้วตาม
ด้วยศูนย์ หรือตัวอักษรหรือตัวเลขเท่านั้น และต้องเขียนทุกตัวติดกันหมด เช่น CURRENTSCORE,Y12,MY_BIRTH_DAY, NCC1997 เป็นต้น จำนวนตัวอักษรหรือ
ความยาวของชื่อเขียนได้โดยไม่จำกัด แต่คอมไพเลอร์บางตัวจะใช้อักขระเพียง 8 ตัวแรกเท่านั้น นิยมใช้ชื่อที่สื่อความหมายในสิ่งที่เราหมายถึงโดยใช้คำสั้น ๆ แทนข้อความที่สมบูรณ์
กฎเกณฑ์ของซีนเท็กซ์ (syntax)  คือกฎที่นิยามโครงสร้างของภาษา                ภาษาที่เราใช้ในการเขียนโปรแกรมมนุษย์สามารถเข้าใจความหมายได้แต่คอมพิวเตอร์ไม่สามารถเข้าใจเว้นแต่โปรแกรมปาสคาลนี้จะต้องถูกแปลหรือคอมไพล์ให้เป็นภาษาเครื่อง
ก่อนหากถูกคอมไพล์โดยไม่ผิดพลาดในเรื่องซีนแท็กซ์แล้วละก็ โปรแกรมสามารถดำเนินการ(execute) ได้  

การควบคุมให้เลือกทำงาน  

  

if - then - else
      อันนี้เป็นโครงสร้างของโปรแกรมชนิดหนึ่งซึ่งหากเงื่อนไขเป็นจริงโปรแกรมจึงจะทำงานมารู้จักเครื่องหมายที่
ใช้เปรียบเทียบกันก่อน   ได้แก่

=
เท่ากับ
<>
ไม่เท่ากับ
>
มากกว่า
>=
มากกว่าหรือเท่ากับ
<
น้อยกว่า
<=
น้อยกว่าหรือเท่ากับ

คำสั่ง if/then (if/then statement)

การใช้ if/then จะใช้เมื่อมีการเลือกกระทำในทางเดียว (one- way selection) และประเมินเงื่อนไขโดยใช้การคำนวณแบบบูลีน(Boolean expression) ว่า "หากเป็นจริงให้ดำเนินการตามประโยคหลัง then" ซึ่งมีรูปแบบทั่วไปดังนี้

ถ้ามีเพียง  1  คำสั่ง  "Single  Statement"

รูปแบบ if (เงื่อนไขบูลีน) then <คำสั่ง>
ตัวอย่างการใช้ if - then

uses crt ;
var
      i : integer ;      

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;

      if  i>10 then
          write(' i more than 10 ' ) ;

          readln ;
end.
insert i=
หากใส่ ตัวเลขที่น้อยกว่า 10 หรือใส่ 10
คำสั่งที่อยู่ด้านหลัง then จะไม่ทำงาน
หากใส่ตัวเลขที่มากกว่า 10 โปรแกรมจะทำงานดังนี้


i more than 10



ถ้ามีการทำงานมากว่า  1 คำสั่ง เราเรียกว่า  " Compound  Statement"
หากเราต้องการให้ทำงานมากกว่า 1 คำสั่ง ต้องกั้นหน้าหลัง ด้วย begin - end ;
สังเกตที่ end นะค่ะว่า เป็น ; (semi-colon) ไม่ใช่ . (dot)

uses crt ;
var
      i : integer ;      

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;

      if  i>10 then
       begin
         writeln('condition is true') ;
         write(' i more than 10 ' ) ;
       end;
          

          readln ;
end.
insert i=
หากใส่ ตัวเลขที่น้อยกว่า 10 หรือใส่ 10
คำสั่งที่อยู่ด้านหลัง then จะไม่ทำงาน
หากใส่ตัวเลขที่มากกว่า 10 โปรแกรมจะทำงานดังนี้


condition is true
i more than 10


Else

หากต้องการให้ทำคำสั่งหนึ่งเมื่อเงื่อนไขเป็นจริงและให้ทำอีกคำสั่งหนึ่งเมื่อเงื่อนไขเป็นเท็จต้องใช้ else ค่ะ

uses crt ;
var
      i : integer ;      

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;

      if  i>10 then
         write(' i more than 10 ' )
      else
         write( 'i less than or equal 10' ) ;
          

          readln ;
end.
insert i=
หากใส่ตัวเลขที่มากกว่า 10 โปรแกรมจะทำงานดังนี้

i more than 10
หากใส่ ตัวเลขที่น้อยกว่า 10 หรือใส่ 10 จะเป็นดังนี้

i less than or equal 10

ให้สังเกตที่ คำสั่ง writeln() ; ก่อน else นะค่ะว่า จะเว้นไม่ใส่ ; (semi-colon)
เป็นรูปแบบที่ใช้สำหรับ else โดยเฉพาะค่ะ




ในตัวอย่างด้านล่างนี้ก็เป็น การกำหนดว่าหากเงื่อนไขเป็นจริง ให้เขียนคำตอบ สีฟ้า และหากเงื่อนไขเป็นเท็จ
ให้เขียนคำตอบ สีเขียว ให้สังเกตที่ end ข้างหน้า else ว่าจะไม่ใส่ semi-colon ค่ะ

uses crt ;
var
      i : integer ;      

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;

      if  i>10 then
        begin
            textcolor(11);
            write(' i more than 10');
            textcolor(7);
        end
      else
        begin
             textcolor(10);
             write(' i less than 10 or equal 10');
             textcolor(7);
         end;
          
          readln ;
end.
insert i=
หากใส่ตัวเลขที่มากกว่า 10 โปรแกรมจะแสดงผล
i more than 10
หากใส่ ตัวเลขที่น้อยกว่า 10 หรือใส่ 10 โปรแกรมจะแสดงผล
i less than 10 or equal 10


คำสั่ง if/then แบบใช้ซ้อนกัน
     การใช้ if/then ซ้อนกันตั้งแต่ 2 ครั้งขึ้นไปจะเกิดขั้นได้เมื่อเราต้องการ จะใช้เงื่อนไขที่มีความซับซ้อนยิ่งขึ้น เช่น
if (X=Y) then

BEGIN
WRTELN('X and Y are eaual');
if (X>20) then WRITELN ('X and Y are between 20 and 30 ')
END;

ตัวอย่างนี้เราสามารถใช้ซีนแท็กซ์อย่างอื่นซึ่งเข้าใจง่ายกว่าได้ดังนี้

if (X=Y) then
BEGIN WRTELN('X and Y are eaual');
if (X>20) AND (X<30) then
WRITELN ('X and Y are between 20 and 30 ')
END;

ดังนั้นการใช้ if/then ที่ซ้อนกันจึงไม่ค่อยจะกระทำกัน เพราะว่าไม่มีความจำเป็นอะไรเนื่องจากมีวิธีที่สั้นกว่าดังที่ยกตัวอย่าง
เปรียบเทียบให้เห็นแล้ว จากตัวอย่างข้างต้นนี้จะเห็นว่าเราสามารถจะใช้ if/then กับ AND, OR และ NOT ได้ หากการ
แก้ปัญหาในโปรแกรมต้องใช้เงื่อนไขการเลือกแบบนั้น เช่นเราอาจจะต้องเลือกกระทำดังตัวอย่างต่อไปนี้

if(SEX = 'MALE') then
if (MARRIED > 0) OR (LWA* > O )
then COUNTER := COUNTER+1 : หรือใช้ AND, OR ตามตัวอย่างต่อไปนี้ซึ่งก็ได้ผล เช่นเดียวกับตัวอย่างข้างต้น
if (SEX = 'MALE') AND ((MARRIED>O) OR (LWS>O)) then
COUNTER := COUNTER+1;

คำสั่ง if/then/else (if/then/else statement)

การใช้ if/the/else จะมีลักษณะเลือกกระทำ เป็น 2 ทางเลือก (two - way selection) แต่จะเลือกทำอย่างใดอย่างหนึ่ง
เท่านั้นหลังจากได้ประเมินเงื่อนไขแบบบูลแล้วว่า หากเป็นจริงตามเงื่อนไขให้ดำเนินการตามประโยคหลัง then แต่ถ้าไม่จริงให้
ดำเนินการตามประโยคหลัง else คำสั่ง if / the /else มีรูปแบบการใช้ดังนี้

รูปแบบ if (เงื่อนไขบูลีน) then < คำสั่ง 1 > (*ไม่ต้องใส่เซมิโคลอน*) else < คำสั่ง 2 >;
ตัวอย่าง if (X >O) then

WRITELN ('X is greater than zeri.')
else WRITELN ('X isless than zero or equal.');
อย่างไรก็ตามจากตัวอย่างข้างบนนี้หากจะใช้คำสั่ง if / then ก็สามารถจะทำได้โดยโปรแกรมจะยังให้ผลอย่างเดียวกันคือ
if (X >O) then WRITELN ( 'X is greater than zero.') ;
if NOT( X >O) then WRITELN ( X is less than zero or equal.') ;
ข้อสังเกตอย่างหนึ่งก็คือ if NOT ( X > 0) สามารถใช้ if (X <= 0) ได้ การจะใช้ซีแท็กซ์ใดที่ให้ผลอย่างเดียวกันเป็นความต้องการของโปรแกรมเมอร์แต่ละคน

คำสั่ง if/then/else แบบใช้ซ้อนกัน
เช่นเดียวกับการใช้ if/then ซ้อนกันดังที่กล่าวแล้วในข้างต้น เราสามารถสร้างเงื่อนไขซ้อนกันหลายเงื่อนไขได้โดยใช้รูปแบบของ if/then/else ดังนี้

รูปแบบ
  if (เงื่อนไขบูลีน 1) then
<คำสั่ง>
else
if(เงื่อนไขบูลีน 2 ) then <คำสั่ง 2>
else

<คำสั่ง 3>;
      รูปแบบนี้จะเห็นว่าใช้ if/then/else ซ้อนไปได้เรื่อยๆ ไม่มีข้อจำกัดอะไรเลยแต่ในกรณีที่มีการซ้อนกันเกินกว่า 2 ครั้งเราจะมีวิธีอื่นใช้แทนวิธีนี้คือ ใช้คำสั่ง case/of ซึ่งจะกล่าวต่อไป ข้อที่จะต้องระมัดระวังการใช้ if/then/else ก็คือการใช้เครื่องหมาย ; เพราะหลังประโยคหรือคำสั่งที่อยู่ก่อนหน้า else จะใส่เครื่องหมาย ; ไม่ได้ กล่าวคือภาษาปาสคาลถือว่ายังเป็นประโยคเดียวกันถ้าท่านลืมซีนแท็กซ์นี้ใส่เครื่องหมายดังกล่าวคอมไพเลอร์จะแสดงความ
ผิดพลาดให้รู้

Logical Operators
     มีไว้เชื่อมเงื่อนไข เข้าด้วยกันที่ผมใช้เป็นหรือเคยได้ใช้ ได้แก่

AND
OR
XOR
NOT
ตัวอย่างการใช้ AND(1)
uses crt ;
var
      i : integer ;      

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;

      if  ( i > 10 ) and ( i < 50 ) then
           write( ' i more than 10 AND i less than 50' ) ;
          
          readln ;
end.
โปรแกรมจะ รอรับค่า i
insert i =

ถ้า i มากกว่า 10  และ i น้อยกว่า 50
โปรแกรมจะ แสดง
i more than 10 AND i less than 50


แต่ถ้า ไม่เป็นไปตามเงื่อนไข
คือ i ไม่ได้อยู่ระหว่าง 10 ถึง 50

โปรแกรมจะ ไม่แสดงข้อความ

ตัวอย่างการใช้ AND(2)
uses crt ;
var
      i : integer ;      
     k : integer ;

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;
    write( 'insert k=' ) ; readln( k ) ;

      if  ( i > 10 ) and ( i > k ) then
           i := i - k ;
          
          write( 'i=', i ) ;
          readln ;
end.
โปรแกรมจะ รอรับค่า i และค่า k ตามลำดับ
insert i =
insert k =

ถ้า i มากกว่า 10  และ i มากกว่า k
โปรแกรมจะ นำค่า i ไปลบค่า k
และเก็บผลลัพธ์ที่ได้ ไว้ที่ตัวแปร i



แต่ถ้า ไม่เป็นไปตามเงื่อนไข
คือ i ไม่มากกว่า 10 หรือ i ไม่มากกว่า k
อย่างใดอย่างหนึ่ง หรือไม่ตรงกับเงื่อนไขทั้งสองกรณี

i ก็ยังคงมีค่าเท่ากับตอนที่เราป้อนค่า ทางคีร์บอร์ด

หลังจากตรวจสอบเงื่อนไขแล้ว โปรแกรมจะแสดง

i = ผลลัพธ์

หากคุณได้ลองไปพิมพ์ และทดสอบ Run ดู ก็จะเข้าใจได้เร็วขึ้นค่ะ

ตัวอย่างการใช้ AND(3)
uses crt ;
var
      i : integer ;      
     k : integer ;

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;
    write( 'insert k=' ) ; readln( k ) ;

      if  ( i > 10 ) and ( i > k ) then
        begin
                 i := i - k ;		
                 write( ' i - k = ', i ) ;
        end
      else
        begin
                  i := i + k ;
                  write( ' i + k= ', i ) ;
         end;
          
          readln ;
end.
โปรแกรมจะ รอรับค่า i และค่า k ตามลำดับ
insert i =
insert k =

ถ้า i มากกว่า 10  และ i มากกว่า k

โปรแกรมจะ นำค่า i ไปลบค่า k
และเก็บผลลัพธ์ที่ได้ ไว้ที่ตัวแปร i

และจะแสดง i - k = ผลลัพธ์

แต่ถ้า ไม่เป็นไปตามเงื่อนไข
คือ i ไม่มากกว่า 10 หรือ i ไม่มากกว่า k
อย่างใดอย่างหนึ่ง หรือไม่ตรงกับเงื่อนไขทั้งสองกรณี

โปรแกรมจะทำตาม คำสั่งข้างหลัง ELSE คือ
นำ i ไปบวก k แล้วเก็บค่าไว้ในตัวแปร i

และจะแสดง i + k = ผลลัพธ์





    ตัวอย่างการใช้ OR(1)
uses crt ;
var
      i : integer ;      
     k : integer ;

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;
    write( 'insert k=' ) ; readln( k ) ;

      if  ( i = 10 ) or ( k = 10 ) then          
          write( 'i or k or both = 10' ) ;

          readln ;
end.
โปรแกรมจะ รอรับค่า i และค่า k ตามลำดับ
insert i =
insert k =

ถ้า i เท่ากับ 10  หรือ k เท่ากับสิบ
หรือตรงตามเงื่อนไข ทั้งสองกรณี


โปรแกรมจะ แสดง

i or k or both = 10

(both แปลว่า ทั้งคู่ครับ)
แต่ถ้า ไม่เป็นไปตามเงื่อนไข
คือ i ไม่เท่ากับ 10 และ k ไม่เท่ากับ 10
( ไม่ตรงกับเงื่อนไขทั้งสองกรณี )


ก็จะไม่มีการแสดงข้อความใดๆ



    ตัวอย่างการใช้ OR(2)
uses crt ;
var
      i : integer ;      
     k : integer ;

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;
    write( 'insert k=' ) ; readln( k ) ;

      if  ( i > 10 ) or ( i > k ) then
        begin
                 i := i - k ;
                 write( ' i - k = ', i ) ;
        end
      else
        begin
                  i := i + k ;
                  write( ' i + k= ', i ) ;
         end;
          
          readln ;
end.
โปรแกรมจะ รอรับค่า i และค่า k ตามลำดับ
insert i =
insert k =

ถ้า i มากกว่า 10  หรือ i มากกว่า k
หรือตรงตามเงื่อนไขทั้งสองกรณี


โปรแกรมจะ นำค่า i ไปลบค่า k
และเก็บผลลัพธ์ที่ได้ ไว้ที่ตัวแปร i

และจะแสดง
i - k = ผลลัพธ์

แต่ถ้า ไม่เป็นไปตามเงื่อนไข
คือ i ไม่มากกว่า 10 และ i ไม่มากกว่า k
( ไม่ตรงกับเงื่อนไขทั้งสองกรณี )


โปรแกรมจะทำตาม คำสั่งข้างหลัง ELSE คือ
นำ i ไปบวก k แล้วเก็บค่าไว้ในตัวแปร i

และจะแสดง
i + k = ผลลัพธ์


    ตัวอย่างการใช้ XOR
uses crt ;
var
      i : integer ;      
     k : integer ;

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;
    write( 'insert k=' ) ; readln( k ) ;

      if  ( i > 10 ) xor ( i > k ) then
           i := i - k ;
          
          write( 'i=', i ) ;
          readln ;
end.
โปรแกรมจะ รอรับค่า i และค่า k ตามลำดับ
insert i =
insert k =

ถ้า i มากกว่า 10  หรือ i มากกว่า k
แต่เงื่อนไขทั้งสองกรณี ไม่ได้เป็นจริงพร้อมกัน

โปรแกรมจะ นำค่า i ไปลบค่า k
และเก็บผลลัพธ์ที่ได้ ไว้ที่ตัวแปร i

แต่ถ้า ไม่เป็นไปตามเงื่อนไข คือ
i ไม่มากกว่า 10 และ i ไม่มากกว่า k
( ไม่ตรงกับเงื่อนไขทั้งสองกรณี )

หรือ เงื่อนไขเป็นจริงทั้งสองกรณี

i ก็ยังคงมีค่าเท่ากับตอนที่เราป้อนค่า ทางคีร์บอร์ด

หลังจากตรวจสอบเงื่อนไขแล้ว โปรแกรมจะแสดง

i = ผลลัพธ์


ข้อแตกต่างระหว่าง OR กับ XOR คือ
     เงื่อนไข XOR จะเป็นจริงต่อเมื่อมีเพียงกรณีเดียวที่เป็นจริงหากทั้งสองกรณีเป็นจริง เงื่อนไข XOR จะเป็นเท็จ
และหากทั้งสองกรณีเป็นเท็จ เงื่อนไข XOR ก็จะเป็นเท็จส่วนเงื่อนไข OR จะเป็นเท็จ เมื่อทั้งสองกรณีเป็นเท็จ เท่านั้น
หากกรณีใดกรณีหนึ่งเป็นจริง.. OR ก็จะเป็นจริงหากทั้งสองกรณีเป็นจริง OR ก็จะเป็นจริง


สัญลักษณ์ " NOT "

ตัวอย่างการใช้ NOT(1)
uses crt ;
var
      i : integer ;      

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;

      if  not ( i=25 ) then
           write( ' i is not 25' );
         
          readln ;
end.
โปรแกรมจะ รอรับค่า i
insert i =
align=absmiddle>

หากว่า i ไม่เท่ากับ 25 โปรแกรมจะแสดง
i is not 25

ตัวอย่างการใช้ NOT(2)
uses crt ;
var
      i : integer ;      

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;

      if  ( i > 10 ) and not ( i=25 ) then
           write( 'i more than 10 AND i is not 25' );
         
          readln ;
end.
โปรแกรมจะ รอรับค่า i
insert i =
align=absmiddle>

หากว่า i มากกว่า 10   และ  i ไม่เท่ากับ 25 โปรแกรมจะแสดง
i more than 10 AND i is not 25


ความจริงใช้เครื่องหมายไม่เท่ากับ (<>) แทน NOT ก็ได้ค่ะ
uses crt ;
var
      i : integer ;      

begin
    clrscr ;
    write( 'insert i=' ) ; readln( i ) ;

      if  ( i > 10 ) and ( i <> 25 ) then
           write( 'i more than 10 AND i is not 25' );
         
          readln ;
end.
โปรแกรมจะ รอรับค่า i
insert i =
align=absmiddle>

หากว่า i มากกว่า 10   และ  i ไม่เท่ากับ 25 โปรแกรมจะแสดง
i more than 10 AND i is not 25