สอน เขียนโปรแกรม อย่างง่าย ( How to programming )
เว็บเพจสำรอง (Backup webpages) : thaiabc.com | thaiall.korattown.com | perlphpasp.com | thaiall.com
ปรับปรุง : 2549-06-26 (เพิ่ม pyramid เป็น 36)
    สารบัญ (Contents)
  1. แนวคิดการสอนเขียนโปรแกรม
  2. ความหมายของ Structure Programming
  3. การเริ่มต้นเขียนโปรแกรม
  4. การบ้านคือหัวใจของความเข้าใจ
  5. ตัวอย่างปิรามิด คือแบบฝึกหัดที่ยาก (มี .class 4 ตัวอย่าง สค.46)
  6. ตัวอย่างโปรแกรมภาษา Pascal
  7. ตัวอย่างโปรแกรมภาษา Java Script
  8. แบ่งระดับการเขียนโปรแกรม 6 ระดับ
  9. แบบฝึกหัดสำหรับสอนการเขียนโปรแกรม (โจทย์ 60 ข้อ มค.47)
    ขั้นตอนการเรียนรู้ เพื่อเป็น Programmer
  1. เขียนโปรแกรมเบื้องต้น 1 ภาษา ( Programming Language )
  2. โครงสร้างข้อมูล ( Data Structures )
  3. ระบบฐานข้อมูล ( Database System )
  4. การวิเคราะห์ และออกแบบระบบ ( System Analysis and Design )
  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 ซึ่งแตกต่างกัน แต่ผมก็ยังนับว่าการเขียนโปรแกรม แบบมีโครงสร้างนั้น มองให้ออกแค่ 3 อย่างก็พอแล้ว และหลายท่านอาจเถียงผมว่าบางภาษาไม่จำเป็นต้องใช้ Structure Programming แต่เท่าที่ผมศึกษามา ยังไม่มีภาษาใด เลิกใช้หลักการทั้ง 3 นี้อย่างสิ้นเชิง เช่น MS Access ที่หลายคนบอกว่าง่าย ซึ่งก็อาจจะง่ายจริง ถ้าจะศึกษาเพื่อสั่งให้ทำงานตาม wizard หรือตามที่เขาออกแบบมาให้ใช้ แต่ถ้าจะนำมาใช้งานจริง ตามความต้องการของผู้ใช้แล้ว ต้องใช้ประสบการณ์ในการเขียน Structure Programming เพื่อสร้าง Module สำหรับควบคุม Object ทั้งหมดให้ทำงานประสานกัน
    2.1 การทำงานแบบตามลำดับ(Sequence) : รูปแบบการเขียนโปรแกรมที่ง่ายที่สุดคือ เขียนให้ทำงานจากบนลงล่าง เขียนคำสั่งเป็นบรรทัด และทำทีละบรรทัดจากบรรทัดบนสุดลงไปจนถึงบรรทัดล่างสุด สมมติให้มีการทำงาน 3 กระบวนการคือ อ่านข้อมูล คำนวณ และพิมพ์ จะเขียนเป็นผังงาน(Flowchart) ในแบบตามลำดับได้ตามภาพ
    2.2 การเลือกกระทำตามเงื่อนไข(Decision) : การตัดสินใจ หรือเลือกเงื่อนไขคือ เขียนโปรแกรมเพื่อนำค่าไปเลือกกระทำ โดยปกติจะมีเหตุการณ์ให้ทำ 2 กระบวนการ คือเงื่อนไขเป็นจริงจะกระทำกระบวนการหนึ่ง และเป็นเท็จจะกระทำอีกกระบวนการหนึ่ง แต่ถ้าซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรดนักศึกษา เป็นต้น ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอย่างง่าย เพื่อกระทำกระบวนการเพียงกระบวนการเดียว
    2.3 การทำซ้ำ(Repeation or Loop) : การทำกระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม หมายถึงการทำซ้ำเป็นหลักการที่ทำความเข้าใจได้ยากกว่า 2 รูปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือนการเขียนผังงาน(Flowchart) ผู้เขียนโปรแกรมต้องจินตนาการ ถึงรูปแบบการทำงาน และใช้คำสั่งควบคุมด้วยตนเอง ตัวอย่างผังงานที่นำมาแสดงนี้เป็นการแสดงคำสั่งทำซ้ำ(do while) ซึ่งหมายถึงการทำซ้ำในขณะที่เป็นจริง และเลิกการทำซ้ำเมื่อเงื่อนไขเป็นเท็จ
Sequence
Decision
Repeation
รายละเอียดเพิ่มเติมที่ http://www.thaiall.com/flowchart

3. การเริ่มต้นเขียนโปรแกรม
    เริ่มต้นเขียนโปรแกรม เริ่มต้นตรงไหน : สำหรับผม เมื่อได้มาทำหน้าที่สอนหนังสือ โดยเฉพาะการเขียนโปรแกรมทุกภาษา ผมจะสอนให้นักศึกษาเขียนโปรแกรมควบคุมตัวเลข เช่นการพิมพ์ 1 ถึง 10 หรือ สูตรคูณ หรือปิรามิดของตัวเลข ที่ต้องฝึกใช้ Structure Programming ให้ชำนาญ และปัญหาก็เกิดขึ้นทุกครั้ง คือ "นักเรียนบ่นว่าไม่ชอบเขียน ไม่มีประโยชน์" หรือ "เขียนไม่ได้ ถึงเขียนได้ ก็ไม่รู้จะเขียนไปทำไม" แล้วผมก็ต้องกลับไปอธิบายอีกครั้งว่า การเริ่มต้นแบบนี้ "จะทำให้รู้จักควบคุมโปรแกรม ตามหลักการของโปรแกรมแบบมีโครงสร้างได้ชำนาญขึ้น รู้จักเรียนรู้ และแก้ปัญหาด้วยตนเอง รวมทั้งรู้จักแก้ไข Syntax พื้นฐานไม่ให้ผิดพลาด เมื่อสามารถเขียนโปรแกรมในระดับต่อ ๆ ไปได้"
      เริ่มต้นเขียนโปรแกรมทำอย่างไร (จากหนังสือ พื้นฐานเว็บมาสเตอร์บทที่ 17)
    1. เลือกภาษา สำหรับนักเรียน นักศึกษานั้นง่ายที่จะเลือก เพราะอาจารย์คอยชี้แนะ
    2. หาแหล่งข้อมูลอ้างอิงจากห้องสมุด ถ้าท่านไม่มีอะไรอยู่ในมือเลย คงนึกโครงสร้างภาษาไม่ออกเป็นแน่
    3. หาตัวแปลภาษา ทุกภาษาต้องมีตัวแปลภาษา มีหลายภาษาที่ถูกสร้างเป็น Free compiler ต้องหาดู
    4. เขียนโปรแกรมตัวแรกที่ง่าย เช่น พิมพ์เลข 5 เป็นต้น
    5. ศึกษาการทำซ้ำ และการเลือกตามเงื่อนไข เช่นพิมพ์สูตรคูณ หรือพิมพ์ 1 ถึง 10 เป็นต้น
    6. ติดต่อแฟ้มข้อมูล เพื่ออ่านมาแสดงผล หรือปรับปรุงข้อมูลได้
    7. เขียนเมนู เพื่อเลือกกระทำโปรแกรมตามตัวเลือก
    8. ทำรายงานจากการเชื่อมแฟ้มหลายแฟ้ม โดยกำหนดได้หลายตัวเลือก
    9. เขียนโปรแกรมเพิ่มข้อมูล เช่น ซื้อ ขาย ยืม คืน หรือโปรแกรมลงทะเบียนนักศึกษาแต่ละภาคเรียนเป็นต้น
    10. สร้างโปรแกรมขึ้นมาระบบหนึ่งให้สมบูรณ์ (ความสมบูรณ์ก็คือการสนองทุกความต้องการของผู้ใช้)

4. การบ้าน คือหัวใจของความเข้าใจ
    การบ้าน (Project) : การสั่งงานให้นักเรียนได้ทำ เป็นสิ่งที่สำคัญมาก ผมได้เรียนแบบอาจารย์ที่เคยสอนผมเสมอ คือ สั่งงานเกือบทุกชั่วโมงเรียน ยกเว้นเทศกาล หรือวันหยุดราชการ ที่เว้นให้นักเรียนได้พักบ้าง สำหรับ project จะต้องใช้หลักการที่สำคัญทั้งหมดที่ได้เรียนมา หรือที่ศึกษาค้นคว้าเพิ่มเติม ด้วยตนเอง และต้องใหญ่พอที่จะใช้เวลาทำทั้งสัปดาห์ไม่เสร็จ แต่จะต้องใช้เวลาทำอย่างต่อเนื่อง ตลอดทั้งภาคเรียน การยอมรับคำวิงวอนให้ลดงานของนักเรียนนั้น อาจทำได้ตามความเหมาะสม กับบทเรียนที่ได้สอนไป แต่ขนาดงานก็ไม่ควรน้อยกว่า การทำให้นักศึกษา ได้ฝึกฝน และใช้เวลาศึกษาด้วยตนเอง (Self learning) อย่างน้อย 1 สัปดาห์ เพื่อทำให้โครงงานสำเร็จลุล่วง และในบางวิชาของการเขียนโปรแกรม ควรมีโครงงานทั้งก่อนสอบกลางภาค และปลายภาค คือมี Project 2 ชิ้น ในวิชานั้น และที่สำคัญที่สำคัญที่สุดสำหรับหลักการสั่งงานของผมคือ งานชิ้นใหญ่จะต้องเป็นงานเดี่ยว เพื่อให้ทุกคนได้มีโอกาสทำด้วยตนเอง มีความภูมิใจในความสำเร็จ และเป็นผู้รับผิดชอบขั้นตอนทั้งหมดด้วยตนเอง ผมจะไม่มอบ project ชิ้นใหญ่เป็นงานกลุ่ม เพราะไม่ต้องการให้นักเรียนคนใดเลย พลาดขบวนการเรียนรู้ แม้แต่ขั้นตอนเดียว และอาจารย์จะต้องมีเวลาที่จะตอบข้อซักถามเสมอ เพราะบ่อยครั้งที่อาจจะสอนผิด สั่งงานผิด นักเรียนนั่งหลับ นักเรียนจดผิด หนังสืออ้างอิงเขียนผิด หรือแม้แต่การตรวจงานผิดของอาจารย์ ก็เป็นได้
    กรกฎาคม 2545 หลังจากผมสอนมาสิบปี พบว่าการมอบหมายงานให้นักศึกษาไปทำงานในคอมพิวเตอร์ที่บ้าน โดยให้ฝึกปฏิบัติด้วยตนเอง ประสบความล้มเหลวมาโดยตลอด เพราะมีนักศึกษาส่วนหนึ่ง ไม่มีคอมพิวเตอร์ ไม่สนใจที่จะเขียนโปรแกรม ไม่ต้องการที่จะคิด และยอมแพ้ ทุกครั้งที่ให้เขียนโปรแกรมง่าย ๆ ทั้ง ๆ ที่มีโปรแกรมยาก ๆ รออยู่อีกมากมาย แต่นักศึกษาทำไม่ได้ จึงนึกการให้งานแบบล่าสุดออกคือ การให้ลอกโปรแกรมด้วยมือ เช่น มีโปรแกรมง่าย ๆ หรือควรรู้อยู่ 15 โปรแกรม จึงมอบหมายให้ลอกลงกระดาษ 4 รอบ และให้เสร็จใน 1 สัปดาห์ ผลที่ได้คือนักศึกษาได้อ่านหนังสือ จดจำรูปแบบภาษาได้มากขึ้น งานที่ให้ลอกไม่ได้หยุดที่ 60 โปรแกรม แต่มากขึ้น หรือน้อยลงขึ้นกับความเข้าใจ และเนื้อหาที่สอน การทำให้นักศึกษา คิดเป็น และแก้ปัญหาโจทย์ได้ เป็นอีกปัญหาหนึ่งที่ต้องสอนในห้องปฏิบัติการ ส่วนการจำรูปแบบคำสั่งไม่ได้ แก้ไขได้ด้วยการสั่งให้ลอกโปรแกรมเท่านั้น ความคาดหวังของผู้สอนว่านักศึกษาจะตั้งใจเรียน แล้วกลับไปทำคอมพิวเตอร์ที่บ้าน โดยไม่ลอกเพื่อนเพียงอย่างเดียว ผมทำมา 10 ปี แต่ไม่ได้ผลเลย

5. ตัวอย่างโจทย์ปิรามิด คือแบบฝึกหัดที่ยาก
ตัวอย่างปิรามิดที่มอบหมายให้นักศึกษาไปเขียน (ผมใช้สอนในทุกภาษาที่ผมสอนทีเดียว)
1.
11******11
 22****22
  33**33
   4444
source code .java
2.
123***
234****
345*****
456******
source code .java
3.
15*****
26******
37*******
48********
source code .java
4.
*1
**212
***32123
****4321234
source code .java
5.
   11
  2**2
 3****3
4******4
 3****3
  2**2
   11
6. (java % and /)
1010101010101
 10101010101
  101010101
   1010101
    10101
     101
      1
7.
      111
     12221
    1233321
   123444321
  12345554321
 1234566654321
123456777654321
8.
123**
 234***
  345****
   456*****
    567******
     678*******
      789********
9.
111111111
 2222222
  33333
   444
    5
10.
    151
   12421
  1233321
 123424321
12345154321
11.
    11
   2 2
  3  3
 4   4
5    5
12.
123456789
 2345678
  34567
   456
    5
13.
987654321
  7654321
    54321
      321
        1
14.
12        21
 23      32
  34    43
   45  54
    5665
15. (2 * i - 1)
11111 11111
2222   2222
333     333
44       44
5         5
16.
1        *
21      **
321    ***
4321  ****
54321*****
17.
19191919
28282828
37373737
46464646
55555555
18.
1*1*****9
1**2****8
3***3***7
4****4**6
5*****5*5
19.
1*********5
2******** 4
3*******  3
4******   2
5*****    1
20.
1*1
22**22
333***333
4444****4444
55555*****55555
21.
*******1*7
******2**6
*****3***5
****4****4
***5*****3
22.
*111111111*
* 2222222 *
*  33333  *
*   444   *
*    5    *
23.
1******1
2***** 2
3****  3
4***   4
5**    5
24.
1*1111111111
2***22222222
3*****333333
4*******4444
5*********55
25.
****5*****
***444****
**33333***
*2222222**
111111111*
26.
11111*
2222**
333***
44****
5*****
27.
1 *
2  **
3   ***
4    ****
5     *****
28.
54321*12345
5432***2345
543*****345
54*******45
5*********5
29.
1*3***
2*4****
3*5*****
4*6******
5*7*******
30.
*********1
 *******21
  *****321
   ***4321
    *54321
31.
11111*****
2222  ****
333    ***
44      **
5        *
32.
1234567***3
123456****4
12345*****5
1234******6
123*******7
33.
    *
   ***
  *****
   ***
    *
34.
    *
   *2*
  *232*
   *2*
    *
35.
   1*1*2
   2*3*4
   3*5*6
   4*7*8
   5*9*10
36.
123*321
23***32
3*****3
23***32
123*321

6. ตัวอย่างโปรแกรมภาษา Pascal
    ได้รับ mail จากคุณ ditthapong itthiwatthawong <ryojung@samart.co.th>
    ว่าเขียน ปิรามิดด้วย pascal แบบเลือกตัวอักษรได้ เขียนอย่างไร ผมจึงเขียนไว้ให้ดูเป็นตัวอย่างดังข้างล่างนี้
    โปรแกรมนี้รอรับตัวอักษรจากแป้นพิมพ์ แล้วนำไปใช้กำหนดเงื่อนไขในการพิมพ์
    เช่น ส่งอักษร D ก็จะพิมพ์บรรทัด A ถึง บรรทัด D และถ้าส่งอักษร E ก็จะพิมพ์บรรทัด A ถึง บรรทัด E เป็นต้น
Source program
Result
var
   i,j : integer;
   c : char;
begin
   writeln ('What is your english character?');
   readln (c);
   c := upcase(c);
   writeln ('======');
   for i := 65 to ord(c) do
   begin
      for j := 65 to i do  write(chr(j));
      writeln;
   end;
   readln;
end.
What is your english character?
F
======
A
AB
ABC
ABCD
ABCDE
ABCDEF
    เมื่อเช้านี้น้องเค้า mail ถึงผมอีกว่า ใช้ function ที่ครูยังไม่สอน
    ผมจึงเขียนใหม่แบบที่ไม่ต้องใช้ function รู้สึกง่ายกว่าเดิมอีกครับ
Source program
Result
var c,d,g : char;
begin
   writeln ('What is your english character?');
   readln (g);
   for c := 'A' to g do
   begin
     for d:= 'A' to c do write(d);
     writeln;
   end;
   readln;
end.
What is your english character?
D
A
AB
ABC
ABCD

7. ตัวอย่างโปรแกรมภาษา Java Script
    ได้รับ mail จากคุณ surasak boonarch <putter_@yahoo.com>
    ว่าเขียน ปิรามิดด้วย java ได้ไหม อย่างไร ผมจึงเขียนไว้ให้ดูเป็นตัวอย่างดังข้างล่างนี้
Source program
Result
<body><font face="fixedsys" size=0>
<script language="JavaScript" type="text/javascript">
<!--
var k = 5;
for(i=1;i<=k;i++) {
  document.write( i + "<br>")
}
// -->
</script>
</body>
1
2
3
4
5

Source program
Result
<html><title>teachp02.htm</title>
<body><font face="fixedsys" size=0>
<script language="JavaScript" type="text/javascript">
<!--
var k = 5;
for(i=1;i<=k;i++) {
  document.write( i + " - ")
  for(j=1;j<=i;j++) {
    document.write( 11 - j - i )
  }
  document.write("<br>")
}
// -->
</script>
</body></html>
1 - 9
2 - 87
3 - 765
4 - 6543
5 - 54321

Source program
Result
<html><title>teachp01.htm</title>
<body><font face="fixedsys" size=0><pre>
<script language="JavaScript" type="text/javascript">
<!--
var k = 9;
for(i=1;i<=k;i++) {
  for(j=1;j<=k-i+1;j++) { document.write( " " ) }
  for(j=1;j<=i;j++) { document.write( j ) }
  document.write( i )
  for(j=i;j>=1;j--) { document.write( j ) }
  document.write("<br>")
}
// -->
</script>
</body></html>
        111
       12221
      1233321
     123444321
    12345554321
   1234566654321
  123456777654321
 12345678887654321
1234567899987654321

8. แบ่งระดับการเขียนโปรแกรม 6 ระดับ
    ระดับในการเขียนโปรแกรมมีหลายระดับ
  1. เขียนโปรแกรมได้ตามที่ครูสอน ( ระดับต้น )
  2. เขียนโปรแกรมได้ตาม project ที่ครูมอบหมาย ( ระดับกลาง 1 )
  3. เขียนโปรแกรมเพื่อเตรียมสอนนักเรียน ( ระดับกลาง 2 )
  4. เขียนโปรแกรมเพื่อทำตาราไว้สอนนักเรียน ( ระดับกลาง 3 )
  5. เขียนโปรแกรมเพื่อสร้าง application ไว้ใช้งานจริง ( ระดับสูง )
  6. เขียนโปรแกรมเพื่อสร้างคำสั่งใหม่ ที่ภาษาไม่มีให้ ไว้ใช้งานจริง ( ระดับมืออาชีพ )
    (นักเรียนบางคนเก่งกว่าอาจารย์อีกครับ เพราะศาสตร์ด้านคอมพิวเตอร์นั้น ปฏิบัติง่ายกว่าทฤษฏีเยอะ หมายความว่า การลงมือปฏิบัติด้วยตนเอง จะเข้าใจได้ทันที โดยไม่ต้องมีคำอธิบายมาก การฟังบรรยาย จะได้เพียงแนวคิด แต่จะไม่ทำให้เกิดความชำนาญ และนำไปประยุกต์ใช้ได้ ดังนั้นเมื่อฟังบรรยายในห้องเรียนแล้ว จะต้องไปทดลองปฏิบัติด้วยตนเอง จึงจะเกิดผล ให้เห็นชัดเจน - นักเรียนมากมายที่ศึกษาเรื่องหลายอย่าง ด้วยการปฏิบัติอย่างจริงจัง และรู้หลายเรื่องได้ลึกซึ้งมากกว่า อาจารย์ผู้สอนมาก .. โดยเฉพาะผู้สอนที่ไม่พยายามหาประสบการณ์เพิ่มเติมจากการปฏิบัติจริง ... )

9.แบบฝึกหัดสำหรับสอนการเขียนโปรแกรมเบื้องต้น
    เนื่องจากนักศึกษาที่ผมสอน ทำข้อสอบกลางภาคไม่ได้ เพราะไม่ได้ใช้เวลาที่บ้านฝึกฝน แม้จะให้การบ้านไปทำ แต่ก็ไม่ได้ไปลงเครื่องให้เกิดความชำนาญ จึงต้องให้งาน 60 โปรแกรมนี้ใหม่ เป็นโปรแกรมที่ง่าย เพราะถ้ายังลอกอีก ก็จะไม่ผ่านการสอบปากเปล่า ในการถามจุดผิดพลาดว่าโปรแกรมที่เขียนมาผิดจุดใด
      Group : 1 พิมพ์ข้อมูลอย่างง่าย
    1. โปรแกรม พิมพ์ รหัสนักศึกษา
    2. โปรแกรม พิมพ์ ชื่อตนเอง
    3. โปรแกรม พิมพ์ ตัวเลข จากตัวแปร
    4. โปรแกรม พิพม์ ชื่อ และสกุล คนละบรรทัด
    5. โปรแกรม พิพม์ รหัส ชื่อ และสกุล คนละบรรทัด
    6. โปรแกรม พิมพ์ ผลบวก ของเลข 2 จำนวน
    7. โปรแกรม พิมพ์ ผลบวก ลบ คูณ หาร ของเลข 2 จำนวน

      Group : 2 รับข้อมูลมาคำนวณ
    8. โปรแกรมพิมพ์ ตัวเลข ที่รับมาจากแป้นพิมพ์
    9. โปรแกรมพิมพ์ อักษร ที่รับมาจากแป้นพิมพ์
    10. โปรแกรมพิมพ์ ผลบวก ของเลข 2 จำนวน ที่รับมาจากแป้นพิมพ์
    11. โปรแกรมพิมพ์ ผลบวก และลบ ของเลข 2 จำนวน ที่รับมาจากแป้นพิมพ์
    12. โปรแกรมพิมพ์ ผลคูณ และหาร ของเลข 2 จำนวน ที่รับมาจากแป้นพิมพ์
    13. โปรแกรมพิมพ์ ผลบวก ของเลข 3 จำนวน ที่รับมาจากแป้นพิมพ์

      Group : 3 รับข้อมูล และเลือกพิมพ์
    14. โปรแกรม รับตัวเลขจากแป้นพิมพ์ 2 จำนวน แต่พิมพ์ตัวหลังก่อนตัวแรก
    15. โปรแกรม รับตัวเลขจากแป้นพิมพ์ 2 จำนวน ให้พิมพ์ตัวที่มากกว่า
    16. โปรแกรม รับตัวเลขจากแป้นพิมพ์ 2 จำนวน ให้พิมพ์ตัวที่น้อยกว่า
    17. โปรแกรม รับตัวเลขจากแป้นพิมพ์ ถ้ามากกว่า 5 ให้พิมพ์คำว่า wow
    18. โปรแกรม รับตัวเลขจากแป้นพิมพ์ ถ้าน้อยกว่า 5 ให้พิมพ์คำว่า oho
    19. โปรแกรม รับตัวเลขจากแป้นพิมพ์ 3 จำนวน ให้พิมพ์ตัวที่มากที่สุด
    20. โปรแกรม รับตัวเลขจากแป้นพิมพ์ 3 จำนวน ให้พิมพ์ตัวที่น้อยที่สุด

      Group : 4 ทำซ้ำอย่างง่าย
    21. โปรแกรม พิมพ์ 1 ถึง 10 ด้วย for
    22. โปรแกรม พิมพ์ 1 ถึง 10 ด้วย while
    23. โปรแกรม พิมพ์ 10 ถึง 1 ด้วย for
    24. โปรแกรม พิมพ์ 10 ถึง 1 ด้วย while
    25. โปรแกรม พิมพ์ 10 ถึง 20 ด้วย for
    26. โปรแกรม พิมพ์ 10 ถึง 20 ด้วย while
    27. โปรแกรม พิมพ์ 20 ถึง 10 ด้วย for
    28. โปรแกรม พิมพ์ 20 ถึง 10 ด้วย while
    29. โปรแกรม พิมพ์เลขคู่ระหว่าง 1 ถึง 10
    30. โปรแกรม พิมพ์เลขคี่ระหว่าง 1 ถึง 10

      Group : 5 ทำซ้ำซ้อนกัน
    31. โปรแกรม พิมพ์สูตรคูณแม่ 2
    32. โปรแกรม พิมพ์สูตรคูณแม่ 3
    33. โปรแกรม พิมพ์สูตรคูณแม่ 2 จนเสร็จ แล้วพิมพ์แม่ 3 ต่อ
    34. โปรแกรม พิมพ์สูตรคูณแม่ 2 และ 3 คนละ Column
    35. โปรแกรม พิมพ์ตัวเลขแบบ for ซ้อนด้วย for
    36. โปรแกรม พิมพ์ตัวเลขแบบ for ซ้อนด้วย while
    37. โปรแกรม พิมพ์ตัวเลขแบบ while ซ้อนด้วย for
    38. โปรแกรม พิมพ์ตัวเลขแบบ while ซ้อนด้วย while

      Group : 6 อาร์เรย์
    39. โปรแกรม อ่านข้อมูลจากอาร์เรย์แบบตัวเลข 3 สมาชิกมาพิมพ์ ไม่ใช้ for
    40. โปรแกรม อ่านข้อมูลจากอาร์เรย์แบบตัวอักษร 3 สมาชิกมาพิมพ์ ไม่ใช้ for
    41. โปรแกรม อ่านข้อมูลจากอาร์เรย์แบบตัวเลข 3 สมาชิกมาพิมพ์ ใช้ for
    42. โปรแกรม อ่านข้อมูลจากอาร์เรย์แบบตัวอักษร 3 สมาชิกมาพิมพ์ ใช้ for
    43. โปรแกรม รับข้อมูลจากแป้นพิมพ์เก็บลงอาร์เรย์ แล้วนำกลับมาพิมพ์ใหม่
    44. โปรแกรม รับข้อมูลจากแป้นพิมพ์เก็บลงอาร์เรย์ แล้วนำกลับมาพิมพ์ใหม่ เฉพาะที่มากกว่า 10
    45. โปรแกรม รับข้อมูลจากแป้นพิมพ์เก็บลงอาร์เรย์ แล้วนำกลับมาพิมพ์ใหม่ เฉพาะที่น้อยกว่า 10

      Group : 7 คำนวณเบื้องต้น
    46. โปรแกรม พิมพ์ค่าสูงสุด จากอาร์เรย์ที่ถูกกำหนดเป็นค่าคงที่ในโปรแกรม
    47. โปรแกรม พิมพ์ค่าต่ำสุด จากอาร์เรย์ที่ถูกกำหนดเป็นค่าคงที่ในโปรแกรม
    48. โปรแกรม พิมพ์ค่าผลรวม จากอาร์เรย์ที่ถูกกำหนดเป็นค่าคงที่ในโปรแกรม
    49. โปรแกรม พิมพ์ค่าเฉลี่ย จากอาร์เรย์ที่ถูกกำหนดเป็นค่าคงที่ในโปรแกรม
    50. โปรแกรม พิมพ์ค่าสูงสุด จากอาร์เรย์ที่รับค่าจากแป้นพิมพ์
    51. โปรแกรม พิมพ์ค่าต่ำสุด จากอาร์เรย์ที่รับค่าจากแป้นพิมพ์
    52. โปรแกรม พิมพ์ค่าผลรวม จากอาร์เรย์ที่รับค่าจากแป้นพิมพ์
    53. โปรแกรม พิมพ์ค่าเฉลี่ย จากอาร์เรย์ที่รับค่าจากแป้นพิมพ์

      Group : 8 แฟ้มข้อมูล
    54. โปรแกรม อ่านข้อมูลจากแฟ้มข้อมูล มาแสดงทางจอภาพ
    55. โปรแกรม อ่านข้อมูลจากแฟ้มข้อมูล มาแสดงทางจอภาพ โดยมีเลขลำดับกำกับ
    56. โปรแกรม อ่านข้อมูลจากแป้นพิมพ์ แล้วเขียนลงแฟ้มข้อมูล
    57. โปรแกรม อ่านข้อมูลจากแฟ้มข้อมูล เขียนลงแฟ้มใหม่อีกแฟ้มหนึ่ง
    58. โปรแกรม เพิ่มข้อมูลในแฟ้มข้อมูล เมื่อได้รับข้อมูลจากแป้นพิมพ์
    59. โปรแกรม ลบข้อมูล แบบต่าง ๆ
    60. โปรแกรม แก้ไขข้อมูล แบบต่าง ๆ

    งานที่มอบหมายให้นักศึกษาไปฝึก หรือทำแก้ตัวหลังสอบกลางภาค
    A. จากโจทย์แต่ละข้อ ให้เขียนโปรแกรมที่ถูกต้อง และที่ผิดอย่างละโปรแกรม โดยบอกว่าที่ผิด ผิดอย่างไร
    B. ให้แต่ละข้อทำที่ถูกมา 1 ครั้ง และให้ทำที่ผิดมา 2 โปรแกรม โดยแยกเฉลยจุดผิดออกจากกัน
    C. ให้นักศึกษาสลับกัน หาจุดผิดพลาดในโปรแกรมของเพื่อน
    D. ตัวอย่างจุดผิดพลาดที่แนะนำนักศึกษา
    - เขียนคำสั่งผิด เช่น class เป็น ClaSs เป็นต้น
    - ลืมเครื่องหมาย เช่น . , ; ( { = เป็นต้น
    - ลืมประกาศตัวแปร หรือ ประกาศตัวแปรซ้ำ
    - ใช้งานผิดประเภท เช่น ตัวเลข เป็นตัวอักษร หรือไม่เปลี่ยนประเภทก่อนนำมาประมวลผล
    - ลืมประกาศ include หรือ IOException หรือ อื่น ๆ
    - จำนวน { ไม่เท่ากับ }
    - Compile ไม่ผ่าน แต่พยายามเรียกใช้งาน
    - ผิดพลาดขณะแปลอย่างไร หรือประมวลผล หรือตรวจสอบระหว่างประมวลผลผิดพลาด

Do not try to change the world. Give the world the opportunity to change itself
Edsger Wybe Dijkstra เป็น theoretical physicist และเสียชีวิตด้วยโรคมะเร็ง 6 ส.ค. 2002 (อายุ 72 ปี)
Augusta Lovelace Ada คือ โปรแกรมเมอร์คนแรกของโลก
http://www.twoguru.com/playground/article/dijkstra.htm
http://www.cs.utexas.edu/users/dahlin/Classes/GradOS/papers/p341-dijkstra.pdf

แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยโยนก
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : yourname@thaiall.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223