การเขียนโปรแกรมเบื5องต ้น (Introduction to Programming) http://www.thaiall.com/article/teachpro.htm
การเขียนโปรแกรมเบื้องตน (Introduction to Programming) เว็บเพจสํารอง (Backup Webpages) : thaiabc.com | thaiall.korattown.com | perlphpasp.com | thaiall.com ปรับปรุง : 2555-01-23 (ปรับแกตัวอยาง pyramid) เรียนเขียนโปรแกรมระดับเทพ expert-programming-tutor.com Android C C++ JavaC# DataStructure เรียนเป็นระบบโดยเน ้นลงมือจริงทําจริ สารบัญ (Contents) ถารักจะเป็นนักคอมพิวเตอร .. ตองพยายามแบบ .. 1. แนวคิดการสอนเขียนโปรแกรม 2. ความหมายของ Structure Programming ฝนทั่งใหเป็นเข็ม 3. การเริ่มตนเขียนโปรแกรม sharpen an anvil to create a pin # 4. การบานคือ บันไดสูประสบการณ 5. ตัวอยางปิรามิด คือแบบฝึกหัดที่ยาก (เพิ่ม 4 ต.ย. สค.46) .. นักศึกษาของผม .. เวลาสอบตก จะพูดวา ถาพยายามจริง ๆ คงทําไดดีกวานีคงทําไดดีกวานี้้้้ 6. ตัวอยางโปรแกรมภาษา Pascal ผมก็จะถามวา กั๊กความพยายมของตน .. ไวทําไม 7. ตัวอยางโปรแกรมภาษา Java Script ขัขัขั้ขันตอนการเรียนรู้้้นตอนการเรียนรู เพื่เพื่่อเป็น่อเป็น Programmer 8. แบงระดับการเขียนโปรแกรม 4 ระดับ 1. เขียนโปรแกรมเบื้องตน 1 ภาษา ( Programming Language ) 9. แบบฝึกหัดสําหรับสอนการเขียนโปรแกรม (60 โจทย มค.47) 2. โครงสรางขอมูล ( Data Structures ) 10. โปรแกรมเมอรคนแรกของโลก (Augusta Lovelace Ada) 3. ระบบฐานขอมูล ( Database System ) 11. 143 ภาษาคอมพิวเตอร 4. การวิเคราะห และออกแบบระบบ ( System Analysis and Design ) 12. ภาษาคอมพิวเตอร (Time Line) 5. โครงงานนักศึกษา ( Student Project ) เพื่อฝึกปฏิบัติจริง
เว็บเพจนี้ คือ ขั้นตอนที่ 1 สูการเป็น Programmer + ผูสนับสนุน ผูสนับสนุน + รับผูสนับสนุน 1. แนวคิดการสอนเขียนโปรแกรม หลายครั้งที่ผมตองเริ่มสอนเขียนโปรแกรม ใหนักเรียนกลุมใหม และก็ตองบอกเลา ดวยประโยคเดิมทุกครั้งวา "การเขียนโปรแกรม ทุกภาษานัทุกภาษานั้้้นน้นน เหมือนกันเหมือนกัน" สิ่งที่แตกตางกัน ของแตละภาษาคือ syntax แตสิ่งที่เหมือนกันของทุกภาษาคือ การใชประสบการณจากภาษาหนึง่ ไปใชในอีกภาษาหนึ่งได ดวยการซึมซับ เรื่องของ Structure Programming จนเขาใจ เพื่อควบคุมในสิ่งที่คลาย ๆ กันคือ input, process และ output ซึงหมายความวา่ ถาทาน เขียนโปรแกรมอะไร ในภาษาหนึงไดแลว่ การเขียนโปรแกรมแบบนั้น ในภาษาอื่นยอมไมใชเรื่องยากอีกตอไป เพียงแตตองศึกษาถึง syntax หรือ รูปแบบ การเขียนของภาษาใหมนั้นเพิ่มเติม แลวนําประสบการณที่เคยเขียน ไปสั่งใหภาษาใหมทํางานตามตองการ ผมจึงมักสนับสนุนใหนักเรียน ไดศึกษาภาษาที่ไม มีตัวชวยมาก เพื่อใหเขาใจในหลักการ และขั้นตอนการทํางาน อยางละเอียดชัดเจน จากการทํางานของตัวแปรภาษาที่มีตัวชวยนอย ทํางานบน dos สามารถ แปลเป็น exe และ นําไปใชไดโดยไมยุงยาก เชน c, pascal, basic, fox... หรือ clipper เป็นตน
2. ความหมายของ Structure Programming การโปรแกรมแบบมีโครงสราง หรือ การโปรแกรมโครงสราง คือ การกําหนดขั้นตอนใหเครื่องคอมพิวเตอรทํางานโดยมีโครงสรางการควบคุม พื้นฐาน 3 หลักการ ไดแก การทํางานแบบตามลําดับ(Sequence) การเลือกกระทําตามเงื่อนไข(Decision) และ การทําซํ้า(Loop) ตําราหลายเลมจะขยายความออกไปวา Decision แยกเป็น If และ Case สวน Loop แยกเป็น While และ Until ถาแยกใหละเอียดก็อาจไดถึง 5 หลักการ แตในที่นี้ขอนําเสนอไวเพียง 3 หลักการ ดังนี้ 2.1 การทํางานแบบตามลําดับ(Sequence) คือ การเขียนใหทํางานจากบนลงลาง เขียนคําสั่งเป็นบรรทัด และทําทีละบรรทัดจากบรรทัดบนสุดลง ไปจนถึงบรรทัดลางสุด สมมติใหมีการทํางาน 3 กระบวนการคือ อานขอมูล คํานวณ และพิมพ จะเขียนเป็นผังงาน(Flowchart) ในแบบตามลําดับไดตาม ภาพ 2.2 การเลือกกระทําตามเงืการเลือกกระทําตามเงื่่่อนไข(Decision)่อนไข(Decision) คือ การเขียนโปรแกรมเพื่อนําคาไปเลือกกระทํา โดยปกติจะมีเหตุการณใหทํา 2 กระบวนการ คือ เงื่อนไขเป็นจริงจะกระทํากระบวนการหนึ่ง และเป็นเท็จจะกระทําอีกกระบวนการหนึง่ แตถาซับซอนมากขึน้ จะตองใชเงื่อนไขหลายชั้น เชนการตัดเกรดนัก ศึกษา เป็นตน ตัวอยางผังงานนี้ จะแสดงผลการเลือกอยางงาย เพื่อกระทํากระบวนการเพียงกระบวนการเดียว 2.3 การทําซํการทําซํ้้้า(Repeation้า(Repeation or Loop) คือ การทํากระบวนการหนึงหลายครั้ง่ โดยมีเงื่อนไขในการควบคุม หมายถึงการทําซํ้าเป็นหลักการที่ทํา ความเขาใจไดยากกวา 2 รูปแบบแรก เพราะการเขียนโปรแกรมแตละภาษา จะไมแสดงภาพอยางชัดเจนเหมือนการเขียนผังงาน(Flowchart) ผูเขียน โปรแกรมตองจินตนาการ ถึงรูปแบบการทํางาน และใชคําสั่งควบคุมดวยตนเอง ตัวอยางผังงานที่นํามาแสดงนี้เป็นการแสดงคําสั่งทําซํ้า(do while) ซึงหมาย่ ถึงการทําซํ้าในขณะที่เป็นจริง และเลิกการทําซํ้าเมื่อเงื่อนไขเป็นเท็จ Sequence Decision Repeation
รายละเอียดเพิ่มเติมที่ http://www.thaiall.com/flowchart
3. การเริการเริ่่่มตนเขียนโปรแกรม่มตนเขียนโปรแกรม X เริ่มตนเขียนโปรแกรม เริ่มตนตรงไหน : สําหรับผม เมื่อไดมาทําหนาที่สอนหนังสือ โดยเฉพาะการเขียนโปรแกรมทุกภาษา ผมจะสอนใหนักศึกษา เขียนโปรแกรมควบคุมตัวเลข เชนการพิมพ 1 ถึง 10 หรือ สูตรคูณ หรือปิรามิดของตัวเลข ที่ตองฝึกใช Structure Programming ใหชํานาญ และปัญหาก็ เกิดขึนทุกครั้ง้ คือ "นักเรียนบนวาไมชอบเขียน ไมมีประโยชน" หรือ "เขียนไมได ถึงเขียนได ก็ไมรูจะเขียนไปทําไม" แลวผมก็ตองกลับไปอธิบายอีกครั้งวา การเริ่มตนแบบนี้ "จะทําใหรูจักควบคุมโปรแกรม ตามหลักการของโปรแกรมแบบมีโครงสรางไดชํานาญขึน้ รูจักเรียนรู และแกปัญหาดวยตนเอง รวมทั้ง รูจักแกไข Syntax พื้นฐานไมใหผิดพลาด เมื่อสามารถเขียนโปรแกรมในระดับตอ ๆ ไปได"
เริเริเริ่เริ่่มตนเขียนโปรแกรมทําอยางไร่มตนเขียนโปรแกรมทําอยางไร (จากหนังสือ พื้นฐานเว็บมาสเตอรบทที่ 17) 1. เลือกภาษา สําหรับนักเรียน นักศึกษานั้นงายที่จะเลือก เพราะอาจารยคอยชี้แนะ 2. หาแหลงขอมูลอางอิงจากหองสมุด ถาทานไมมีอะไรอยูในมือเลย คงนึกโครงสรางภาษาไมออกเป็นแน
1 จาก 7 25/9/2556 8:32 การเขียนโปรแกรมเบื5องต ้น (Introduction to Programming) http://www.thaiall.com/article/teachpro.htm
3. หาตัวแปลภาษา ทุกภาษาตองมีตัวแปลภาษา มีหลายภาษาที่ถูกสรางเป็น Free compiler ตองหาดู 4. เขียนโปรแกรมตัวแรกที่งาย เชน พิมพเลข 5 เป็นตน 5. ศึกษาการทําซํ้า และการเลือกตามเงื่อนไข เชนพิมพสูตรคูณ หรือพิมพ 1 ถึง 10 เป็นตน 6. ติดตอแฟมขอมูล เพื่ออานมาแสดงผล หรือปรับปรุงขอมูลได 7. เขียนเมนู เพื่อเลือกกระทําโปรแกรมตามตัวเลือก 8. ทํารายงานจากการเชื่อมแฟมหลายแฟม โดยกําหนดไดหลายตัวเลือก 9. เขียนโปรแกรมเพิ่มขอมูล เชน ซื้อ ขาย ยืม คืน หรือโปรแกรมลงทะเบียนนักศึกษาแตละภาคเรียนเป็นตน 10. สรางโปรแกรมขึนมาระบบหนึ้ ่งใหสมบูรณ (ความสมบูรณก็คือการสนองทุกความตองการของผูใช)
4. การบานคือ บันไดสูประสบการณ การบาน (Project) : การสั่งงานใหนักเรียนไดทํา เป็นสิ่งที่สําคัญมาก ผมไดเรียนแบบอาจารยที่เคยสอนผมเสมอ คือ สั่งงานเกือบทุกชั่วโมงเรียน ยก เวนเทศกาล หรือวันหยุดราชการ ที่เวนใหนักเรียนไดพักบาง สําหรับ project จะตองใชหลักการที่สําคัญทั้งหมดที่ไดเรียนมา หรือที่ศึกษาคนควาเพิ่มเติม ดวยตนเอง และตองใหญพอที่จะใชเวลาทําทั้งสัปดาหไมเสร็จ แตจะตองใชเวลาทําอยางตอเนื่อง ตลอดทั้งภาคเรียน การยอมรับคําวิงวอนใหลดงานของนัก เรียนนั้น อาจทําไดตามความเหมาะสม กับบทเรียนที่ไดสอนไป แตขนาดงานก็ไมควรนอยกวา การทําใหนักศึกษา ไดฝึกฝน และใชเวลาศึกษาดวยตนเอง (Self learning) อยางนอย 1 สัปดาห เพื่อทําใหโครงงานสําเร็จลุลวง และในบางวิชาของการเขียนโปรแกรม ควรมีโครงงานทั้งกอนสอบกลางภาค และปลาย ภาค คือมี Project 2 ชิ้น ในวิชานั้น และที่สําคัญที่สําคัญที่สุดสําหรับหลักการสั่งงานของผมคือ งานชิ้นใหญจะตองเป็นงานเดี่ยว เพื่อใหทุกคนไดมีโอกาสทํา ดวยตนเอง มีความภูมิใจในความสําเร็จ และเป็นผูรับผิดชอบขั้นตอนทั้งหมดดวยตนเอง ผมจะไมมอบ project ชิ้นใหญเป็นงานกลุม เพราะไมตองการใหนัก เรียนคนใดเลย พลาดขบวนการเรียนรู แมแตขั้นตอนเดียว และอาจารยจะตองมีเวลาที่จะตอบขอซักถามเสมอ เพราะบอยครั้งที่อาจจะสอนผิด สั่งงานผิด นัก เรียนนั่งหลับ นักเรียนจดผิด หนังสืออางอิงเขียนผิด หรือแมแตการตรวจงานผิดของอาจารย ก็เป็นได กรกฎาคม 2545 หลังจากผมสอนมาสิบปี พบวาการมอบหมายงานใหนักศึกษาไปทํางานในคอมพิวเตอรที่บาน โดยใหฝึกปฏิบัติดวยตนเอง ประสบ ความลมเหลวมาโดยตลอด เพราะมีนักศึกษาสวนหนึง่ ไมมีคอมพิวเตอร ไมสนใจที่จะเขียนโปรแกรม ไมตองการที่จะคิด และยอมแพ ทุกครั้งที่ใหเขียน โปรแกรมงาย ๆ ทั้ง ๆ ที่มีโปรแกรมยาก ๆ รออยูอีกมากมาย แตนักศึกษาทําไมได จึงนึกการใหงานแบบลาสุดออกคือ การใหลอกโปรแกรมดวยมือ เชน มีมีมี โปรแกรมงาย ๆ หรือควรรูอยู 15 โปรแกรม จึงมอบหมายใหลอกลงกระดาษลอกลงกระดาษลอกลงกระดาษลอกลงกระดาษ 4444 รอบรอบรอบรอบ และใหเสร็จในและใหเสร็จในและใหเสร็จในและใหเสร็จใน 1 สัปดาห ผลที่ไดคือนักศึกษาไดอานหนังสือ จดจํา รูปแบบภาษาไดมากขึน้ งานที่ใหลอกไมไดหยุดที่ 60 โปรแกรม แตมากขึน้ หรือนอยลงขึนกับความเขาใจ้ และเนื้อหาที่สอน การทําใหนักศึกษา คิดเป็น และ แกปัญหาโจทยได เป็นอีกปัญหาหนึงที่ตองสอนในหองปฏิบัติการ่ สวนการจํารูปแบบคําสั่งไมได แกไขไดดวยการสั่งใหลอกโปรแกรมเทานั้น ความคาดหวัง ของผูสอนวานักศึกษาจะตั้งใจเรียน แลวกลับไปทําคอมพิวเตอรที่บาน โดยไมลอกเพื่อนเพียงอยางเดียว ผมทํามา 10 ปี แตไมไดผลเลย
5. ตัวอยางโจทยปิรามิด คือแบบฝึกหัดทีคือแบบฝึกหัดที่ยากยากยาก่่่ยาก ตัวอยางปิรามิดทีตัวอยางปิรามิดที่่่่มอบหมายใหนักศึกษาไปเขียนมอบหมายใหนักศึกษาไปเขียน (ผมใชสอนในทุกภาษาที่ผมสอนทีเดียว)
1. 2. 3. 4. 11******11 123*** 15***** *1 22****22 234**** 26****** **212 33**33 345***** 37******* ***32123 4444 456****** 48******** ****4321234 Source Code .java Source Code .java Source Code .java Source Code .java
5. 6. (java % and /) 7. 8. 11 1010101010101 111 123** 2**2 10101010101 12221 234*** 3****3 101010101 1233321 345**** 4******4 1010101 123444321 456***** 3****3 10101 12345554321 567****** 2**2 101 1234566654321 678******* 11 1 123456777654321 789********
9. 10. 11. 12. 111111111 151 11 123456789 2222222 12421 2 2 2345678 33333 1233321 3 3 34567 444 123424321 4 4 456 5 12345154321 5 5 5
13. 14. 15. (2 * i - 1) 16. 987654321 12 21 11111 11111 1 * 7654321 23 32 2222 2222 21 ** 54321 34 43 333 333 321 *** 321 45 54 44 44 4321 **** 1 5665 5 5 54321***** X
17. 18. 19. 20. 19191919 1*1*****9 1*********5 1*1 28282828 2**2****8 2******** 4 22**22 37373737 3***3***7 3******* 3 333***333 46464646 4****4**6 4****** 2 4444****4444 55555555 5*****5*5 5***** 1 55555*****55555
2 จาก 7 25/9/2556 8:32 การเขียนโปรแกรมเบื5องต ้น (Introduction to Programming) http://www.thaiall.com/article/teachpro.htm
21. 22. 23. 24. *******1*7 *111111111* 1******1 1*1111111111 ******2**6 * 2222222 * 2***** 2 2***22222222 *****3***5 * 33333 * 3**** 3 3*****333333 ****4****4 * 444 * 4*** 4 4*******4444 ***5*****3 * 5 * 5** 5 5*********55
25. 26. 27. 28. ****5***** 11111* 1 * 54321*12345 ***444**** 2222** 2 ** 5432***2345 **33333*** 333*** 3 *** 543*****345 *2222222** 44**** 4 **** 54*******45 111111111* 5***** 5 ***** 5*********5
29. 30. 31. 32. 1*3*** *********1 11111***** 1234567***3 2*4**** *******21 2222 **** 123456****4 3*5***** *****321 333 *** 12345*****5 4*6****** ***4321 44 ** 1234******6 5*7******* *54321 5 * 123*******7
33. 34. 35. 36. * * 1*1*2 123*321 *** *2* 2*3*4 23***32 ***** *232* 3*5*6 3*****3 *** *2* 4*7*8 23***32 * * 5*9*10 123*321
6. ตัวอยางโปรแกรมภาษา Pascal ไดรับ mail จากคุณ ditthapong itthiwatthawong
var What is your english character? i,j : integer; F c : char; ======begin A writeln ('What is your english character?'); AB readln (c); ABC c := upcase(c); ABCD writeln ('======'); ABCDE for i := 65 to ord(c) do ABCDEF begin for j := 65 to i do write(chr(j)); writeln; end; readln; end.
เมื่อเชานี้นองเคา mail ถึงผมอีกวา ใช function ที่ครูยังไมสอน ผมจึงเขียนใหมแบบที่ไมตองใช function รูสึกงายกวาเดิมอีกครับ
รหัสตนฉบับ (Source Code) ผลลัพธ (Output)
var c,d,g : char; What is your english character? begin D writeln ('What is your english character?'); A readln (g); AB for c := 'A' to g do ABC begin ABCD X for d:= 'A' to c do write(d); writeln; end; readln; end.
7. ตัวอยางโปรแกรมภาษา Java Script
3 จาก 7 25/9/2556 8:32 การเขียนโปรแกรมเบื5องต ้น (Introduction to Programming) http://www.thaiall.com/article/teachpro.htm
ไดรับ mail จากคุณ surasak boonarch
รหัสตนฉบับ (Source Code) ผลลัพธ (Output)
รหัสตนฉบับ (Source Code) ผลลัพธ (Output)
122218. แบงระดับการเขียนโปรแกรม 4 ระดับ ระดับในการเขียนโปรแกรมมีหลายระดับ 1. เขียนตามที่ครูสอน ( ระดับตน ) 2. เขียนโครงงานสงครู ( ระดับกลาง ) 3. เขียนโปรแกรมประยุกตไวใชงาน ( ระดับสูง ) 4. เขียนโปรแกรมเชิงวัตถุใหถูกเรียกใชภายหลัง ( ระดับมืออาชีพระดับมืออาชีพ ) นักเรียนบางคนเกงกวาอาจารยอีกครับ เพราะศาสตรดานคอมพิวเตอรนั้น ปฏิบัติงายกวาทฤษฏีเยอะ หมายความวา การลงมือปฏิบัติดวยตน เอง จะเขาใจไดทันที โดยไมตองมีคําอธิบาย การฟังบรรยาย จะไดเพียงแนวคิด แตจะไมทําใหเกิดความชํานาญ และนําไปประยุกตใชได ดังนั้นเมื่อ ฟังบรรยายในหองเรียนแลว จะตองนําไปทดลองปฏิบัติดวยตนเอง จึงจะเกิดผล ใหเห็นชัดเจน - ไมใชเรื่องแปลก ที่นักเรียนมากมายศึกษาดวยตนเอง ฝึกปฏิบัติอยางจริงจัง และมีความรูมากมายไดลึกซึงกวาอาจารยผูสอน้ .. โดยเฉพาะผูสอนที่ไมพยายามหาประสบการณเพิ่มเติมจากการปฏิบัติจริง ...
9.แบบฝึกหัดสําหรับสอนการเขียนโปรแกรมเบื9.แบบฝึกหัดสําหรับสอนการเขียนโปรแกรมเบื้้้้องตนองตน X เนื่องจากนักศึกษาที่ผมสอน ทําขอสอบกลางภาคไมได เพราะไมไดใชเวลาที่บานฝึกฝน แมจะใหการบานไปทํา แตก็ไมไดไปลงเครื่องใหเกิดความ ชํานาญ จึงตองใหงาน 60 โปรแกรมนี้ใหม เป็นโปรแกรมที่งาย เพราะถายังลอกอีก ก็จะไมผานการสอบปากเปลา ในการถามจุดผิดพลาดวาโปรแกรมที่เขียน มาผิดจุดใด กลุม 1 พิมพขอมูลอยางงาย กลุม 5 ทําซํ้าซอนกัน 1. พิมพ รหัสนักศึกษา 31. พิมพสูตรคูณแม 2 2. พิมพ ชื่อตนเอง 32. พิมพสูตรคูณแม 3 3. พิมพ ตัวเลข จากตัวแปร 33. พิมพสูตรคูณแม 2 จนเสร็จ แลวพิมพแม 3 ตอ 4. พิพม ชื่อ และสกุล คนละบรรทัด 34. พิมพสูตรคูณแม 2 และ 3 คนละ Column
4 จาก 7 25/9/2556 8:32 การเขียนโปรแกรมเบื5องต ้น (Introduction to Programming) http://www.thaiall.com/article/teachpro.htm
5. พิพม รหัส ชื่อ และสกุล คนละบรรทัด 35. พิมพตัวเลขแบบ for ซอนดวย for 6. พิมพ ผลบวก ของเลข 2 จํานวน 36. พิมพตัวเลขแบบ for ซอนดวย while 7. พิมพ ผลบวก ลบ คูณ หาร ของเลข 2 จํานวน 37. พิมพตัวเลขแบบ while ซอนดวย for กลุม 2 รับขอมูลมาคํานวณ 38. พิมพตัวเลขแบบ while ซอนดวย while 8. พิมพ ตัวเลข ที่รับมาจากแปนพิมพ กลุม 6 อารเรย 9. พิมพ อักษร ที่รับมาจากแปนพิมพ 39. อานขอมูลจากอารเรยแบบตัวเลข 3 สมาชิกมาพิมพ ไมใช for 10. พิมพ ผลบวก ของเลข 2 จํานวน ที่รับมาจากแปนพิมพ 40. อานขอมูลจากอารเรยแบบตัวอักษร 3 สมาชิกมาพิมพ ไมใช for 11. พิมพ ผลบวก และลบ ของเลข 2 จํานวน ที่รับมาจากแปน 41. อานขอมูลจากอารเรยแบบตัวเลข 3 สมาชิกมาพิมพ ใช for พิมพ 42. อานขอมูลจากอารเรยแบบตัวอักษร 3 สมาชิกมาพิมพ ใช for 12. พิมพ ผลคูณ และหาร ของเลข 2 จํานวน ที่รับมาจากแปน 43. รับขอมูลจากแปนพิมพเก็บลงอารเรย แลวนํามาพิมพใหม พิมพ 44. รับขอมูลจากแปนพิมพเก็บลงอารเรย แลวนํามาพิมพใหม เฉพาะมากกวา 13. พิมพ ผลบวก ของเลข 3 จํานวน ที่รับมาจากแปนพิมพ 10 กลุม 3 รับขอมูล และเลือกพิมพ 45. รับขอมูลจากแปนพิมพเก็บลงอารเรย แลวนํามาพิมพใหม เฉพาะนอยกวา 14. รับตัวเลขจากแปนพิมพ 2 จํานวน แตพิมพตัวหลังกอนตัว 10 แรก กลุม 7 คํานวณเบื้องตน 15. รับตัวเลขจากแปนพิมพ 2 จํานวน ใหพิมพตัวที่มากกวา 46. พิมพคาสูงสุด จากอารเรยที่ถูกกําหนดเป็นคาคงที่ในโปรแกรม 16. รับตัวเลขจากแปนพิมพ 2 จํานวน ใหพิมพตัวที่นอยกวา 47. พิมพคาตํ่าสุด จากอารเรยที่ถูกกําหนดเป็นคาคงที่ในโปรแกรม 17. รับตัวเลขจากแปนพิมพ ถามากกวา 5 ใหพิมพคําวา wow 48. พิมพคาผลรวม จากอารเรยที่ถูกกําหนดเป็นคาคงที่ในโปรแกรม 18. รับตัวเลขจากแปนพิมพ ถานอยกวา 5 ใหพิมพคําวา oho 49. พิมพคาเฉลี่ย จากอารเรยที่ถูกกําหนดเป็นคาคงที่ในโปรแกรม 19. รับตัวเลขจากแปนพิมพ 3 จํานวน ใหพิมพตัวที่มากที่สุด 50. พิมพคาสูงสุด จากอารเรยที่รับคาจากแปนพิมพ 20. รับตัวเลขจากแปนพิมพ 3 จํานวน ใหพิมพตัวที่นอยที่สุด 51. พิมพคาตํ่าสุด จากอารเรยที่รับคาจากแปนพิมพ กลุม 4 ทําซํ้าอยางงาย 52. พิมพคาผลรวม จากอารเรยที่รับคาจากแปนพิมพ 21. พิมพ 1 ถึง 10 ดวย for 53. พิมพคาเฉลี่ย จากอารเรยที่รับคาจากแปนพิมพ 22. พิมพ 1 ถึง 10 ดวย while กลุม 8 แฟมขอมูล หรือฐานขอมูล 23. พิมพ 10 ถึง 1 ดวย for 54. อานขอมูลจากแฟมขอมูล มาแสดงทางจอภาพ 24. พิมพ 10 ถึง 1 ดวย while 55. อานขอมูลจากแฟมขอมูล มาแสดงทางจอภาพ โดยมีเลขลําดับกํากับ 25. พิมพ 10 ถึง 20 ดวย for 56. อานขอมูลจากแปนพิมพ แลวเขียนลงแฟมขอมูล 26. พิมพ 10 ถึง 20 ดวย while 57. อานขอมูลจากแฟมขอมูล เขียนลงแฟมใหมอีกแฟมหนึ่ง 27. พิมพ 20 ถึง 10 ดวย for 58. เพิ่มขอมูลในแฟมขอมูล เมื่อไดรับขอมูลจากแปนพิมพ 28. พิมพ 20 ถึง 10 ดวย while 59. ลบขอมูล แบบตาง ๆ 29. พิมพเลขคูระหวาง 1 ถึง 10 60. แกไขขอมูล แบบตาง ๆ 30. พิมพเลขคี่ระหวาง 1 ถึง 10
งานทีงานที่่่มอบหมายใหนักศึกษาไปฝึก่มอบหมายใหนักศึกษาไปฝึก หรือทําแกตัวหลังสอบกลางภาค A. จากโจทยแตละขอ ใหเขียนโปรแกรมที่ถูกตอง และที่ผิดอยางละโปรแกรม โดยบอกวาที่ผิด ผิดอยางไร B. ใหแตละขอทําที่ถูกมา 1 ครั้ง และใหทําที่ผิดมา 2 โปรแกรม โดยแยกเฉลยจุดผิดออกจากกัน C. ใหนักศึกษาสลับกัน หาจุดผิดพลาดในโปรแกรมของเพื่อน D. ตัวอยางจุดผิดพลาดที่แนะนํานักศึกษา - เขียนคําสั่งผิด เชน class เป็น ClaSs เป็นตน - ลืมเครื่องหมาย เชน . , ; ( { = เป็นตน - ลืมประกาศตัวแปร หรือ ประกาศตัวแปรซํ้า - ใชงานผิดประเภท เชน ตัวเลข เป็นตัวอักษร หรือไมเปลี่ยนประเภทกอนนํามาประมวลผล - ลืมประกาศ include หรือ IOException หรือ อื่น ๆ - จํานวน { ไมเทากับ } - Compile ไมผาน แตพยายามเรียกใชงาน - ผิดพลาดขณะแปลอยางไร หรือประมวลผล หรือตรวจสอบระหวางประมวลผลผิดพลาด
10. เปรียบเทียมหาคามากกวา การเขียนโปรแกรมตองมีตัวแปลภาษา ตัวอยางชุดนี้เป็น javascript ที่ประมวลผลไดทันทีใน Internet Explorer ถามีขอสงสัยเรื่อง javascript เพิ่มเติมใหเปิดจาก thaiall.com/java สําหรับตัวอยาง 10.2 ถึง 10.4 มี 2 แบบคือ หาเฉพาะคา max และเรียงลําดับคามากไปนอย ซึงมีหลักการคลายกัน่ 10.1 เปรียบเทียบคาคงทีเปรียบเทียบคาคงที่่่่ 2 คา X
10.2 เปรียบเทียบค่าคงที 3 ค่า แบบที 1
10.3 เปรียบเทียบค่าคงที 3 ค่า แบบที 2
10.4 เปรียบเทียบค่าคงที 3 ค่า แบบที 3
10.5 เปรียบเทียบคาในอารเรยดวย Bubble Sort
11. โปรแกรมเมอรคนแรกของโลก :: Augusta Lovelace Ada คือ โปรแกรมเมอรคนแรกของโลก :: Edsger Wybe Dijkstra ใชคําวา โปรแกรมเมอร (Programmer) กับโลกของคอมพิวเตอรเป็นคนแรก [ อางอิง ] X
Do not try to change the world. Give the world the opportunity to change itself Edsger Wybe Dijkstra เป็น theoretical physicist และเสียชีวิตดวยโรคมะเร็ง 6 ส.ค. 2002 (อายุ 72 ปี) http://www.twoguru.com/playground/article/dijkstra.htm http://www.cs.utexas.edu/users/dahlin/Classes/GradOS/papers/p341-dijkstra.pdf
12. 143 ภาษาคอมพิวเตอร :: ขอมูลจาก http://www.thaiall.com/language
6 จาก 7 25/9/2556 8:32 การเขียนโปรแกรมเบื5องต ้น (Introduction to Programming) http://www.thaiall.com/article/teachpro.htm
:: ขอมูลจาก http://dmoz.org/Computers/Programming/Languages/ 143 ภาษา :: ขอมูลจาก http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm 2500 ภาษา :: ขอมูลจาก http://www.levenez.com/lang/ 50 ภาษา (Computer Languages Timeline) :: เป็นนักคอมพิวเตอร ไมจําเป็นตองรูทุกภาษาหรอกครับ .. บางคน รูแคภาษาเดียว ก็มีชีวิตในสังคมไดอยางมีความสุขแลว .. แลวคุณรูภาษาอะไร
1. ABC (4) 41. Euphoria (26) 81. Mumps (22) 121. SQL (41) 2. Ada (335) 42. Forth (202) 82. Oberon (65) 122. Squeak @ (94) 3. ADL (1) 43. Fortran (886) 83. Objective Caml @ (25) 123. Tcl-Tk (113) 4. Algol 60 (15) 44. Fortress (4) 84. Objective-C (21) 124. Tempo (2) 5. Algol 68 (30) 45. FP (2) 85. Obliq (4) 125. TeX @ (402) 6. APL (75) 46. Frontier (46) 86. Occam (20) 126. TOM (2) 7. AppleScript @ (36) 47. Goedel (3) 87. Oz (8) 127. TRAC (4) 8. Assembly (188) 48. Groovy @ (22) 88. Pascal (79) 128. Transcript (25) 9. Awk (21) 49. Haskell (61) 89. Perl (925) 129. Turing (8) 10. BASIC (231) 50. HTML @ (316) 90. PHP (1,495) 130. T3X (3) 11. Befunge (13) 51. HTMLScript @ (63) 91. Pike (7) 131. UML @ (177) 12. BETA (9) 52. HyperCard @ (16) 92. PL (14) 132. VBScript @ (19) 13. Bigwig (1) 53. ICI (3) 93. Pliant (9) 133. Verilog @ (16) 14. Bistro @ (6) 54. Icon (8) 94. PL-SQL (50) 134. VHDL @ (28) 15. Blue (4) 55. IDL (15) 95. POP-11 (11) 135. Visual Basic (464) 16. Brainfuck (14) 56. Intercal (16) 96. PostScript @ (39) 136. Visual DialogScript (4) 17. C (264) 57. Io (10) 97. PowerBuilder @ (98) 137. Visual FoxPro (67) 18. C++ (831) 58. Jal @ (10) 98. Prograph (24) 138. Water (11) 19. Caml @ (3) 59. Java (2,952) 99. Prolog (69) 139. XML @ (749) 20. Cecil (3) 60. JavaScript (566) 100. Proteus (2) 140. XOTcl @ (5) 21. CHILL (3) 61. Jovial (8) 101. Python (469) 141. YAFL (2) 22. Clarion (42) 62. LabVIEW (85) 102. R@ (21) 142. Yorick (8) 23. Clean (3) 63. Lagoona @ (1) 103. REBOL (145) 143. Z (28) 24. Clipper (28) 64. LaTeX @ (117) 104. Refal (7) 25. CLU (4) 65. Leda (4) 105. Rexx (210) 26. Cobol (125) 66. Limbo (6) 106. Rigal (3) 27. CobolScript (2) 67. Lisp (445) 107. RPG (16) 28. Cocoa (3) 68. Logo @ (59) 108. Ruby (223) 29. Component Pascal @ (10) 69. Lua (20) 109. SAS (51) 30. C-sharp (148) 70. m4 (2) 110. Sather (11) 31. Curl (36) 71. Maple @ (26) 111. Scheme @ (144) 32. D (48) 72. Mathematica @ (53) 112. Self @ (16) 33. DATABUS (7) 73. MATLAB @ (146) 113. SETL (6) 34. Delphi (450) 74. Mercury (4) 114. SGML @ (29) 35. DOS Batch @ (118) 75. Miranda (11) 115. Simkin (5) 36. Dylan (20) 76. Miva (63) 116. Simula (8) 37. E (4) 77. ML (52) 117. Sisal (11) 38. Eiffel (71) 78. Modula-2 (27) 118. S-Lang (2) 39. ElastiC (2) 79. Modula-3 (8) 119. Smalltalk (309) 40. Erlang (268) 80. Moto (4) 120. Snobol (6)
แนะนําเว็บใหม : ผลการจัดอันดับ รักลําปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยเนชั่น ศูนยสอบ : รวมบทความ : ไอทีในชีวิตประจําวัน : ดาวนโหลด : [email protected] ติดตอ ทีมงาน ชาวลําปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223
X
7 จาก 7 25/9/2556 8:32