สถาบนั พฒั นาคณุ ภาพวิชาการ (พว.)
หน่วยการเรียนรู้ที่ 6 การเขยี นโปรแกรม การทางานของคอมพวิ เตอร์ โครงสร้างภาษาสาหรับ การเขยี นโปรแกรม ระดบั ของภาษาในการ การออกแบบและเขยี นโปรแกรม เขยี นโปรแกรม ท่มี ีการวนซ้าด้วยคาส่ัง while ตวั แปร การออกแบบและเขยี นโปรแกรม ท่ีมกี ารวนซ้าด้วยคาส่ัง do while
การทางานของคอมพวิ เตอร์ ใชภ้ าษาระดบั สูง เขียนคาสงั่ เพอ่ื สงั่ งาน ตวั แปลภาษา แปลงคาสงั่ เป็น คอมพิวเตอร์ ภาษาเคร่ือง คอมพวิ เตอร์เขา้ ใจ และปฏิบตั ิตามคาสั่ง
การทางานของคอมพวิ เตอร์ประกอบด้วยองค์ประกอบพืน้ ฐาน 5 หน่วย ได้แก่ 1. หน่วยนาเขา้ (input unit) รับคาส่ังขอ้ มูลจากผใู้ ชค้ อมพิวเตอร์ ส่งตอ่ ไปยงั หน่วยประมวลผลกลาง คาสง่ั ขอ้ มูลจากผใู้ ชค้ อมพวิ เตอร์ หน่วยนาเข้า หน่วยประมวลผลกลาง 2. หน่วยประมวลผลกลาง (Central Processing Unit: CPU) ทาหนา้ ที่เปรียบเสมือน สมองของคอมพวิ เตอร์ โดยจะคอยประมวลผลคาส่งั และทางานประสานกบั หน่วยอ่ืน หน่วยความจาหลกั หน่วยนาเขา้ คาสั่ง/ขอ้ มูล หน่วยประมวลผลกลาง หน่วยแสดงผล หน่วยความจาสารอง
การทางานของคอมพวิ เตอร์ประกอบด้วยองค์ประกอบพืน้ ฐาน 5 หน่วย 3. หน่วยความจาหลกั (main memory unit) ทาหนา้ ท่ีเกบ็ ขอ้ มูลชุดคาสั่ง หรือโปรแกรมตา่ ง ที่คอมพวิ เตอร์กาลงั ประมวลผล และยงั เป็นที่พกั ของขอ้ มูลระหวา่ งท่ีหน่วยประมวลผลกลาง กาลงั ประมวลผลอยู่ หน่วยประมวลผลกลาง คาส่ัง/ขอ้ มูล/โปรแกรม หน่วยความจาหลกั 4. หน่วยความจาสารอง (secondary memory unit) ทาหนา้ ท่ีเกบ็ ขอ้ มูลหรือสารองขอ้ มูล แบบถาวรบนคอมพวิ เตอร์ อุปกรณ์ท่ีใชเ้ กบ็ ขอ้ มูลดงั กล่าว เช่น ฮาร์ดดิสก์ ซีดีรอม แฟลชไดร์ฟ ไฟลภ์ าพ โปรแกรม เกบ็ ไวท้ ี่ หน่วยความจา ถูกเรียกใช้ ไฟลเ์ อกสาร ไฟลเ์ กม สารอง โดย ไฟลห์ นงั หน่วยประมวลผลกลาง
การทางานของคอมพวิ เตอร์ประกอบด้วยองค์ประกอบพืน้ ฐาน 5 หน่วย 5. หน่วยแสดงผล (output unit) ทาหนา้ ที่แสดงผลหรือส่งออกขอ้ มูลท่ีไดจ้ ากการประมวลผล ของหน่วยประมวลผลกลางออกมาใหผ้ ใู้ ชค้ อมพิวเตอร์ไดร้ ับทราบ หน่วยประมวลผลกลาง หน่วยแสดงผล ผใู้ ชค้ อมพวิ เตอร์ สรุปภาพรวมการทางาน หน่วยความจาหลกั (main memory unit) นาเขา้ หน่วยแสดงผล (input unit) (output unit) หน่วยประมวลผลกลาง (Central Processing Unit: CPU) หน่วยความจาสารอง (secondary memory unit)
ระดบั ของภาษาในการเขียนโปรแกรม 1. ภาษาเคร่ือง (machine language) ใชต้ วั เลขเพยี ง 2 ตวั ( binary code) คือ 0 และ 1 เรียกวา่ เลขฐานสอง คอมพิวเตอร์สามารถเขา้ ใจและทางานตามโคดโปรแกรมท่ีเขียน ไม่ตอ้ งทาการแปลภาษา มีความซบั ซอ้ นและยากตอ่ การจดจา
2. ภาษาแอสเซมบลี (assembly language) เป็นภาษาที่พฒั นาข้ึนมาเพอื่ แกป้ ัญหาจากความยงุ่ ยากของภาษาเคร่ือง ใชค้ าส่งั ท่ีเป็นคาเฉพาะในภาษาองั กฤษที่มนุษยส์ ามารถเขา้ ใจไดม้ ากข้ึน คอมพิวเตอร์ไม่สามารถทางานดว้ ยภาษาแอสเซมบลีไดโ้ ดยตรงตอ้ งใชแ้ อสเซมเบลอร์ (assembler) แปลภาษาแอสเซมบลีใหเ้ ป็นภาษาเครื่อง Assembly source file assembler machine code file แผนภาพ การแปลงคาสง่ั จากแอสเซมบลีมาเป็นภาษาเคร่ือง
3. ภาษาระดับสูง (high-level language) เป็นภาษาที่พฒั นาข้ึนมาเพื่อแกป้ ัญหาจากความยงุ่ ยากของภาษาเครื่อง และภาษาแอสเซมบลี เพือ่ ใหม้ ีความใกลเ้ คียงกบั ภาษามนุษยม์ ากข้ึน ใชค้ าสัง่ เป็นภาษาองั กฤษที่ง่ายตอ่ การส่ือสารและจดจา คอมพวิ เตอร์ไม่สามารถทางานดว้ ยภาษาระดบั สูงไดโ้ ดยตรงตอ้ งมีการใชค้ อมไพเลอร์ (compiler) หรืออินเทอร์พรีเตอร์ (interpreter) ในการแปลภาษาระดบั สูงให้เป็น ภาษาเครื่อง high-level source file compiler machine code file executer แผนภาพ การแปลงคาสงั่ จากภาษาระดบั สูงมาเป็นภาษาเครื่อง
ตัวแปร ตวั แปร (variable) คือ ส่ิงท่ีใชเ้ กบ็ คา่ เปรียบเทยี บชนิดของข้อมูลกบั หน่วยความจาทใ่ี ช้เกบ็ (values) ท่ีสามารถเปล่ียนค่าในโปรแกรม ข้อมูลทเ่ี หมาะสม ไดใ้ นขณะประมวลผล ตวั แปรมีหลายชนิด แตล่ ะชนิดน้นั จะมีการจองหน่วยความจา ชนิดของข้อมูล ข้อกาหนด ขนาด หรือพ้นื ที่ในการจดั เกบ็ ที่ไม่เท่ากนั ท้งั น้ี boolean ค่าใช่หรือไม่ใช่ 1 บิต ข้ึนอยกู่ บั ชนิดของขอ้ มูลที่เราตอ้ งการจดั เกบ็ byte จานวนเตม็ 8 บิต short จานวนเตม็ 16 บิต int จานวนเตม็ 32 บิต long จานวนเตม็ 64 บิต เปรียบเทียบภาชนะท่ีเหมาะสม float ทศนิยม 32 บิต และไม่เหมาะสมในการเกบ็ ขอ้ มูล double ไม่เกิน 6 ตาแหน่ง 64 บิต char 8 บิต ทศนิยม ไม่เกิน 12 ตาแหน่ง อกั ขระ
โครงสร้างภาษาสาหรับการเขยี นโปรแกรม 1. โครงสร้างของโคดภาษาจาวา (JAVA programming language) คือ ภาษาโปรแกรมเชิงวตั ถุ พฒั นาโดย เจมส์ กอสลิง (James Gosling) และคณะ เพ่อื ใชแ้ ทนภาษาซีพลสั พลสั (C++) การทางานของภาษาจาวามีจุดเด่น คือ เม่ือเขียนแลว้ สามารถนาไปใชไ้ ดก้ บั อุปกรณ์ท่ีหลากหลาย เช่น สมาร์ตโฟน แทบ็ เลต็ เคร่ืองคอมพิวเตอร์- ส่วนบุคคล โครงสร้างของโปรแกรมภาษาจาวาสามารถแสดงได้ ดงั น้ี public class Myclass { 1. คลาส (class) public static void main (string [ ] args) { 2. เมทอ็ ด (method) Statement 1; //comment 1 4. การอธิบาย Statement 2; //comment 2 โปรแกรม (comment) Statement 3; /*comment 3 } comment 4 */ } 3. ชุดคาสง่ั (statement)
โครงสร้างของโคดภาษาจาวา (JAVA programming language) 1. คลาส (class) ตอ้ งมีเครื่องหมาย การต้งั ช่ือคลาสจะข้ึนตน้ ปี กกาคู่ { } กากบั ดว้ ยตวั อกั ษรภาษาองั กฤษ คลาส (class) ตอ้ งมี 1 class เป็นอยา่ งนอ้ ย ตวั พมิ พใ์ หญ่ ช่ือของคลาสจะเป็ น public class Myclass { } ช่ือเดียวกบั ชื่อ โปรแกรม
โครงสร้างของโคดภาษาจาวา (JAVA programming language) 2. เมทอ็ ด (method) ภายใน method จะเขียนชุดคาสั่งซ่ึง เป็นการทางานหลกั ของโปรแกรม ใน 1 class จะตอ้ งมี method อยา่ งนอ้ ย 1 method public class Myclass { public static void main (string [] args) { } }
3. ชุดคาส่ัง (Statement) ทุกคาส่งั จะปิ ดทา้ ยคาสั่งดว้ ย นิยมเขียน 1 คาสั่งต่อ เคร่ืองหมาย ; (Semicolon) 1 บรรทดั เป็นส่วนท่ีสัง่ งานใหโ้ ปรแกรม ทางานตามที่ตอ้ งการ 4. การอธิบายโปรแกรม (comment) เป็นส่วนที่ใชใ้ นการอธิบายเพิม่ เติม หรือจดบนั ทึกกนั ลืม ของผเู้ ขียนโปรแกรม ไม่มีผลใด ต่อการทางานของโปรแกรม การอธิบายโปรแกรมทาได้ 2 ลกั ษณะ (1) การอธิบายโปรแกรม 1 บรรทดั (2) การอธิบายโปรแกรมหลายบรรทดั โดยการใส่เครื่องหมาย // และใส่คาอธิบาย โดยการใส่เครื่องหมาย /* */ และจะใส่ โปรแกรมหลงั เครื่องหมาย คาอธิบายโปรแกรมระหวา่ ง /* กบั */
2. โครงสร้างของโคดภาษาซี (C programming language) ภาษาซี หรือ C programming language มีลกั ษณะการเขียนโปรแกรมแบบโครงสร้าง พฒั นาโดย เดนนิส ริชชี่ (Dennis Ritche) โดยมีจุดมุ่งหมายในการใชเ้ ป็นภาษาสาหรับใช้ ในการเขียนโปรแกรมปฏิบตั ิการระบบยนู ิกส์ ปัจจุบนั ภาษาซีเป็นภาษาหลกั ภาษาหน่ึงดา้ น programming ที่นิยมใชก้ นั ทว่ั โลก โครงสร้างของโปรแกรมภาษาซีสามารถแสดงได้ ดงั น้ี #include <stdio.h> 1. ส่วนหวั ฟังกช์ นั (Header file) หรือ Preprocessordirectives Main ( ) 2. ฟังกช์ นั หลกั (main function) { //comment 1 Statement 1; //comment 2 4. การอธิบาย Statement 2; //*comment 3 โปรแกรม (comment) Statement 3; comment 4 */ } 3. ชุดคาส่ัง(Statement)
โครงสร้างของโคดภาษาซี (C programming language) 1. หัวฟังก์ชัน (Header file) หรือ พรีโปรเซสเซอร์ไดเรกทฟี (Preprocessordirectives) เป็นคาส่ังที่ใชบ้ อก compiler วา่ ตอ้ ง ใชอ้ ุปกรณ์นาเขา้ และแสดงผลพ้นื ฐาน นาเขา้ ส่วนใดจาก libraly และจะติดตอ่ คือ คียบ์ อร์ดและจอภาพ โดยใช้ header ท่ีชื่อ stdio.h และระบุตาแหน่ง directory ที่นาเขา้ กบั อุปกรณ์นาเขา้ และแสดงผลอะไรบา้ ง การสั่งจะดาเนินการบอกตาแหน่ง directory ดว้ ยเคร่ืองหมาย # และใส่ช่ือ header ในเคร่ืองหมาย < > ดงั น้ี #include <stdio.h> หมายถึง #include <conio.h> หมายถึง ไปคน้ หา header file ชื่อ stdio.h ไปคน้ หา header file ชื่อ conio.h ที่ตาแหน่ง directory include ที่ตาแหน่ง directory include
โครงสร้างของโคดภาษาซี (C programming language) 2. ฟังก์ชันหลกั (Main program) ใชป้ ระกาศใหต้ วั แปลคาสั่ง (compiler) รู้วา่ คาสัง่ ขา้ งในชุดปี กกา { } ของ main () เป็นชุดคาสัง่ เป็ นส่วนที่ภาษาซี ซ่ึงเป็นการทางานหลกั ของโปรแกรม ทุกโปรแกรมจะตอ้ งมี 3. ชุดคาส่ัง (Statement) ทุกคาสง่ั จะปิ ดทา้ ยคาส่ังดว้ ย เคร่ืองหมาย ; (Semicolon) เป็นส่วนท่ีสั่งงานใหโ้ ปรแกรม ทางานตามที่เราตอ้ งการ นิยมเขียน 1 คาสง่ั ตอ่ 1 บรรทดั
โครงสร้างของโคดภาษาซี (C programming language) 4. การอธิบายโปรแกรม (comment) เป็นส่วนท่ีใชใ้ นการอธิบายเพิ่มเติม หรือจดบนั ทึกกนั ลืมของผเู้ ขียนโปรแกรม การอธิบายโปรแกรมจะไม่มีผลใด ต่อการทางานของโปรแกรม การอธิบายโปรแกรมทาได้ 2 ลกั ษณะ คือ (1) การอธิบายโปรแกรม 1 บรรทดั . (2) การอธิบายโปรแกรมหลายบรรทดั สามารถทาไดโ้ ดยการใส่เคร่ืองหมาย // สามารถทาไดโ้ ดยการใส่เครื่องหมาย /* */ และใส่คาอธิบายโปรแกรม และจะใส่คาอธิบายโปรแกรมระหวา่ ง /* กบั /* หลงั เครื่องหมาย
การออกแบบและเขยี นโปรแกรมทม่ี กี ารวนซ้าด้วยคาสั่ง while รูปแบบโปรแกรมวนซ้าดว้ ยคาสง่ั while จะมีการตรวจสอบเงื่อนไขก่อนการทางาน หากเหตุการณ์ยงั อยใู่ นเงื่อนไขกจ็ ะทางานท่ีกาหนดและวนซ้าเพ่อื ทางานจนกวา่ เหตุการณ์ จะไม่เป็นไปตามเง่ือนไขแลว้ จึงออกจากการวนซ้า ซ่ึงสามารถแสดงไดด้ งั ผงั งาน เง่ือนไข (condition) ไม่ใช่ boolean expression ใช่ คาสงั่ ทางาน body loop
ตวั อย่างการออกแบบและเขยี นโปรแกรมทม่ี กี ารวนซ้าด้วยคาส่ัง while เหตุการณ์ในชีวติ ประจาวนั โปรแกรมวนซ้า เง่ือนไขทางาน เมื่อเราหิว เราสั่งอาหาร สง่ั อาหาร ไม่อิ่ม รับประทานในร้านและ ส่งั ไปเร่ือย จนกวา่ จะอิ่ม เราจึงจะหยดุ ส่ังอาหาร ไม่อิ่ม ไม่ใช่ ใช่ สัง่ อาหาร
การออกแบบและเขยี นโปรแกรมทม่ี กี ารวนซ้าด้วยคาสั่ง do while โปรแกรมวนซ้าแบบมีเง่ือนไขดว้ ยคาสั่ง do while เป็นการทางานก่อน แลว้ จึงค่อย ตรวจสอบเง่ือนไขการทางานภายหลงั ในการเขียนโปรแกรมเราตอ้ งการใหโ้ ปรแกรม ทางานก่อน 1 รอบ แลว้ จึงคอ่ ยมาตรวจเง่ือนไข ตัวอย่าง คาส่ังทางาน body loop สงั่ อาหาร ใช่ ใช่ ไม่อิ่ม เงื่อนไข (condition) boolean expression ไม่ใช่ ไม่ใช่
THE END
Search
Read the Text Version
- 1 - 22
Pages: