การเขียนโปรแกรมเบื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 ภาษา ( ) 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 วาเขียน ปิรามิดดวย pascal แบบเลือกตัวอักษรได เขียนอยางไร ผมจึงเขียนไวใหดูเป็นตัวอยางดังขางลางนี้ โปรแกรมนี้รอรับตัวอักษรจากแปนพิมพ แลวนําไปใชกําหนดเงื่อนไขในการพิมพ เชน สงอักษร D ก็จะพิมพบรรทัด A ถึง บรรทัด D และถาสงอักษร E ก็จะพิมพบรรทัด A ถึง บรรทัด E เป็นตน รหัสตนฉบับ (Source Code) ผลลัพธ (Output)

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 วาเขียน ปิรามิดดวย java ไดไหม อยางไร ผมจึงเขียนไวใหดูเป็นตัวอยางดังขางลางนี้ รหัสตนฉบับ (Source Code) ผลลัพธ (Output)

1

รหัสตนฉบับ (Source Code) ผลลัพธ (Output)

teachp02.htm 1 - 9 2 - 87

รหัสตนฉบับ (Source Code) ผลลัพธ (Output)

teachp01.htm 111

 12221  

8. แบงระดับการเขียนโปรแกรม 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. (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. (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. -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