45
Web Application Programming 1 ปรับปรุงจากเอกสารของ อ . สิทธิโชค ทรัพย์ไพบูลย์กิจ ภาคการเรียนที2/2556 204202 IT II 1

Web Application Programming 1 - cs.science.cmu.ac.th การเขียนโปรแกรม(Programming) คือขั้นตอนในการถ่ายทอด ขั้นตอนวิธี

  • Upload
    haquynh

  • View
    246

  • Download
    0

Embed Size (px)

Citation preview

Web Application Programming 1ปรบปร งจากเอกสารของ อ .สทธโชค ทรพยไพบลยกจ

ภาคการเรยนท 2/2556 204202 IT II 1

What is Programming ? การเขยนโปรแกรม (Programming) คอขนตอนในการถายทอดขนตอนวธ (Algorithm) ใหอยในรปแบบของสญลกษณ หรอ ภาษาทคอมพวเตอรสามารถน าไปประมวลผลได สงส าคญทสดในการเขยนโปรแกรมคอ อลกอรทม ไมใช ภาษาทใชในการเขยนโปรแกรม หากไมม อลกอรทม กจะไมสามารถเขยนโปรแกรมออกมาได Computer Science ไมไดเปนสาขาวชาทเนนเรองการเขยนโปรแกรม การเขยนโปรแกรมเปนแคสวนทจะใชถายทอดวธการแกปญหาของเราไปยงคอมพวเตอร

ภาคการเรยนท 2/2556 204202 IT II 2

What is Algorithm ? Algorithm (ขนตอนวธ) คอการอธบายล าดบการแกโจทยปญหาอยางใดอยางหนง อยางมข นตอนแนนอน ไมก ากวม เมอปฏบตตามขนตอนทใหมาแลวแลว จะตองน าไปสผลลพธ (จดสนสด) เสมอ สวนประกอบส าคญทใชในการอธบาย อลกอรทม คอ การตดสนใจ การท าตามล าดบ การท าซ า

การแกปญหาใดๆ อาจม อลกอรทม ไดมากกวาหนง

ภาคการเรยนท 2/2556 204202 IT II 3

Programming Methodology

วธการเขยนโปรแกรม

การแกปญหา (Problem Solving)1 การวเคราะหปญหา (Problem Analysis)◦ ระบปญหา และท าการวเคราะหปญหา

2 การออกแบบโปรแกรม (Program Design)◦ การออกแบบโปรแกรมเพอแกปญหา หรอการออกแบบขนตอนวธ

(Algorithm Design)3 การเขยนโปรแกรม (Program Coding)◦ เลอกภาษาในการเขยนโปรแกรม◦ เขยนโปรแกรมจากขนตอนวธทออกแบบไว

4. ทดสอบโปรแกรม และแกขอผดพลาด (Program Testing and Debugging)

ภาคการเรยนท 2/2556 204202 IT II 4

โดยท าการวเคราะหรายละเอยดตาง ๆ ดงน

1. วตถประสงคหลก (Main purpose)

2. ผลลพธทแสดง (Output requirement)

วตถประสงคของการแกปญหา ก าหนดรปแบบการน าเสนอผลลพธ

3. ขอมลทตองน าเขา (Input Requirement)

ปญหาบอกขอมลอะไรบาง ก าหนดรปแบบของขอมลทรบเขา

4. ตวแปรทใช (Variable)

5. วธการประมวลผล (Process)

ก าหนดคา ก าหนดสตรหรอวธการ ก าหนดเงอนไขของการค านวณ (ถาม) เพอปองกนไมใหโปรแกรมท างานผดพลาด เชน กรณการหารดวยศนยการวนซ าไมรจบ

1. การวเคราะหและการก าหนดคณสมบตของปญหา

ภาคการเรยนท 2/2556 204202 IT II 5

2. การออกแบบโปรแกรม (Program Design) หรอการออกแบบขนตอนวธ (Algorithm Design)

น าผลการวเคราะหจากขนตอนท 1 การวเคราะหปญหา มาแสดงรายละเอยด

ได 2 รปแบบ คอ

2.1 ผงงาน (Flowchart) คอ การใชรปภาพหรอสญลกษณ แทน

รายละเอยดขนตอนการแกปญหาอยางเปนเหตเปนผล

2.2 รหสเทยม (Pseudo code) คอการใชภาษาเขยนแทนรายละเอยด

ขนตอนการแกปญหาอยางเปนเหตเปนผล

ภาคการเรยนท 2/2556 204202 IT II 6

แผนภาพแสดงล าดบขนตอนการท างาน เปนเครองมอทใช

ในการวางแผนขนแรก โดยใชสญลกษณตาง ๆ ในการเขยนผงงาน

เพอจดล าดบขนตอนในการแกปญหา ซงชวยในการเขยนโปรแกรม

เปนวธทนยมใชเพราะท าใหเหนภาพในการท างานของโปรแกรมงาย

กวาใชขอความ หากมขอผดพลาด สามารถดจากผงงานจะท าใหการ

แกไขหรอปรบปรงโปรแกรมท าไดงายขน

ทวา อาจไมเหมาะกบโปรแกรมทซบซอนมากๆ

ภาคการเรยนท 2/2556 204202 IT II 7

การเขยนผงงาน (Flowchart)

การเขยนรหสเทยม (Pseudo Code)

เปนการเขยนบรรยายเพออธบายขนตอนการแกปญหาเชนเดยวกบ

ผงโปรแกรม สามารถใชภาษาองกฤษ หรอภาษาอนได สามารถเปลยนเปน

ภาษาคอมพวเตอรไดงาย มลกษณะเปนโครงสรางคลายกบผงโปรแกรม

ภาคการเรยนท 2/2556 204202 IT II 8

2.1 การเขยนผงโปรแกรม (Flowchart)

กระบวนการพนฐาน ม 3 กระบวนการไดแก

1.การรบขอมลเขา (Input)

2.การประมวลผล (Process)

3.การแสดงผลลพธ (Output)

การประมวลผลขอมลเขา ผลลพธ

ภาคการเรยนท 2/2556 204202 IT II 9

เครองหมายสญลกษณทใชในการเขยนผง

โปรแกรม

ภาคการเรยนท 2/2556 204202 IT II 10

สญลกษณ ความหมาย ตวอยาง

การเรมตนหรอ สนสด

กระบวนการทว ๆ ไป

เชนการค านวณ

การเปรยบเทยบเงอนไข

การน าขอมลเขา หรอ

แสดงผลขอมลทาง

อปกรณแสดงผล

Terminator

Start

Stop

Process

Decision

Input/

Output

sum = sum + x

Read X

N > 20yes no

เครองหมายสญลกษณทใชในการเขยนผง

โปรแกรม

ภาคการเรยนท 2/2556 204202 IT II 11

สญลกษณ ความหมาย ตวอยาง

ตวเชอมตอ

การเชอมตอไปหนาอน

ลกศรชทศทาง และ

ล าดบการท างาน

ค านวณพนท

A A

1

1

2.2 รหสเทยม (Pseudo code)

รหสเทยม หมายถง

◦ ค าอธบายทมโครงสรางและรปแบบชดเจน

◦ แบบล าดบ แบบเลอก แบบวนซ า

◦ ไมขนกบภาษาคอมพวเตอรใดภาษาหนงโดยเฉพาะ

◦ สามารถเปลยนไปเปนภาษาคอมพวเตอรไดงาย

◦ นยมใชภาษาองกฤษ

◦ ตองบอกจดเรมตนและสนสด◦ เรมตน คอ Start

◦ สนสด คอ Stop

ภาคการเรยนท 2/2556 204202 IT II 12

การเขยนผงโปรแกรม และรหสเทยมแบบโครงสราง

แบงออกเปน 3 โครงสรางใหญ ๆ ดงน

A.1. โครงสรางแบบเรยงล าดบ (Sequential Structure)

A.2. โครงสรางแบบมเงอนไข (Decision / Selection Structure)

A.3. โครงสรางแบบวนซ า (Repetition Structure)

ภาคการเรยนท 2/2556 204202 IT II 13

A.1 โครงสรางแบบเรยงล าดบ (Sequential Structure)

เปนการจดล าดบค าส งตามล าดบกอนหลงสามารถเขยน

เปนรปแบบโครงสราง

ภาคการเรยนท 2/2556 204202 IT II 14

การเขยนโครงสรางแบบเรยงล าดบ

FLOWCHART PSUEDO CODE

ภาคการเรยนท 2/2556 204202 IT II 15

กระบวนการ 1

กระบวนการ 2

กระบวนการ 3

DO

Process 1

Process 2

END

ตวอยางโจทยโครงสรางแบบเรยงล าดบ

จงเขยนผงโปรแกรมและรหสเทยมส าหรบรบขอมลจ านวน

ชวโมงการท างานใน 1 สปดาห และอตราเงนไดตอชวโมงเพอ

ค านวณรายไดตอสปดาห และเงนไดหลงหกภาษ ก าหนด

อตราภาษเทากบ 10% ของเงนไดตอสปดาห

การวเคราะหโจทย

วตถประสงคหลก เงนไดตอสปดาห และเงนไดหลงหกภาษ

ผลลพธทแสดง “Gross pay is เงนไดตอสปดาห”

“Net pay is เงนไดหลงหกภาษ”

ภาคการเรยนท 2/2556 204202 IT II 16

การวเคราะหโจทย(ตอ)

ขอมลเขา จ านวนชวโมงการท างาน และ อตราเงนไดตอชวโมง

ตวแปรทใช Hours แทนจ านวนชวโมงการท างานใน 1 สปดาห

Rate แทนอตราเงนไดตอชวโมง

Tax_Rate แทนอตราภาษทหก

Tax แทนเงนภาษทตองจาย

Gross เงนไดกอนหกภาษ

Net เงนไดหลงหกภาษ

การประมวลผล Gross = Hours * Rate

Tax = Gross * Tax_Rate

Net = Gross – Tax

ภาคการเรยนท 2/2556 204202 IT II 17

ผงโปรแกรม ดงรป Start

Tax_Rate = 0.1

Read Hours, Rate

Gross = Hours * Rate

Tax = Gross * Tax_Rate

Net = Gross – Tax

Print “Gross pay is”,Gross

“Net pay is”, Net

Stop

ภาคการเรยนท 2/2556 204202 IT II 18

StartTax_Rate = 0.1Read Hours, RateGross = Hours * RateTax = Gross * Tax_RateNet = Gross – TaxPrint “Gross pay is ”, Gross, “Net pay is”, Net

Stop

ภาคการเรยนท 2/2556 204202 IT II 19

รหสเทยม ดงตอไปน

ตวอยางขอมลเขา และผลลพธขอมลเขา ผลลพธ

Hours = 100Rate = 30

Gross pay is 3000Net pay is 2700

Hours = 20 Rate = 27.5

Gross pay is 550Net pay is 495

ภาคการเรยนท 2/2556 204202 IT II 20

แบบฝกหด จงเขยน Flowchart และ Pseudo code ส าหรบวเคราะหปญหาการทอนเหรยญ 1,5 หรอ 10 โดยไดเงนทอนมา M บาท ดงตวอยางแสดง

ดานลางตวอยาง

เงนทอน 17 บาท (กรณท M = 17)- เงนทอน เหรยญ 10 บาท 1 เหรยญ - เงนทอน เหรยญ 5 บาท 1 เหรยญ 1 เหรยญ- เงนทอน เหรยญ 1 บาท 2 เหรยญ

ภาคการเรยนท 2/2556 204202 IT II 21

A.2 โครงสรางแบบมเงอนไข (Decision/Selection Structure)

เปนโครงสรางทมทางเลอกแบงเปน 2 ประเภท

A.2.1 โครงสรางแบบมเงอนไขใหเลอกกระท าโดยใช IF

◦ มสงทใหเลอกท าไดสองอยาง จะเลอกอยางไหนขนอยกบ Condition

A.2.2 โครงสรางแบบมเงอนไขใหเลอกกระท าหลายทาง CASE

◦ มสงทใหเลอกท าไดมากกวาสองอยาง ◦ สามารถใช IF หลายๆตวในการเขยน CASE ได

◦ แต CASE จะงายตอการใชงานมากกวา

ภาคการเรยนท 2/2556 204202 IT II 22

โครงสราง IF THEN

FLOW CHART PSEUDO CODE

IF condition THEN

Process 1

ENDIF

ภาคการเรยนท 2/2556 204202 IT II 23

Process 1

เงอนไขจรง

เทจ

ตองมการทดสอบเงอนไขกอน แลวเลอกกระท า ถาเงอนไขเปน จรงจะท า Process 1 ถาไมจรงไมท าอะไร

โครงสราง IF THEN ELSE

FLOW CHART PSEUDO CODE

IF condition THEN

Process 1

ELSE

Process 2

ENDIF

ภาคการเรยนท 2/2556 204202 IT II 24

ค าส ง X ค าส ง Y

เงอนไข เทจจรง

ตองมการทดสอบเงอนไขกอน แลวเลอกกระท า ถาเงอนไขเปนจรงจะท า Process 1 ถาเงอนไขเปนเทจจะท า Process 2

ภาคการเรยนท 2/2556 204202 IT II 25

ตองมการทดสอบเงอนไขกอน แลวเลอกกระท า ถาเงอนไขเปนจรงจะท า Process 1

ถาเงอนไขเปนเทจจะทดสอบเงอนไขถดไป ถาจรงท า Process 2 ถาไมจรงเชค

เงอนไขอนอก เรอย ๆ จนกวาจะเจอเงอนไขทจรง และท า Process นนๆ หรอถาไม

เจอกท า Process X ในเงอนไขสดทาย (ELSE) กอนจบการท างาน

โครงสรางแบบ NESTED IF

โครงสราง NESTED IFFLOW CHART PSEUDO CODE

IF condition THEN

Process 1

IF condition THEN

Process 2

ELSE

Process 3

ENDIFELSE

Process 4

ENDIF

ภาคการเรยนท 2/2556 204202 IT II 26

ค าส ง X

ค าส ง Y

เงอนไข 1เทจจรง

เงอนไข 2

ค าส ง Z

เทจจรง

ภาคการเรยนท 2/2556 204202 IT II 27

ตวอยางโครงสรางแบบมเงอนไขใหเลอกกระท าโดยใช IF

จงเขยนผงโปรแกรมเพอรบเลขจ านวนเตม 2 จ านวน แลว

เปรยบเทยบวาจ านวนไหนมากกวา ถาเทากนใหบอกวาเทากน

การวเคราะหโจทย

วตถประสงคหลก เปรยบเทยบเลข 2 จ านวน

ผลลพธทแสดง The greater number is เลขจ านวนทมากกวา

Both numbers are equal

ภาคการเรยนท 2/2556 204202 IT II 28

การวเคราะหโจทย(ตอ)

ขอมลเขา เลขจ านวนเตม 2 จ านวน

ตวแปรทใช num1 แทนเลขจ านวนท 1

num 2 แทนเลขจ านวนท 2

การประมวลผล ถา num1 > num2 พมพ

“The greater number is”, num1

ถา num1 < num2 พมพ

“The greater number is”, num2

ถา num1 = num2 พมพ

“Both numbers are equal”

ภาคการเรยนท 2/2556 204202 IT II 29

ผงโปรแกรม ดงรป

START

READ num1,num2

IF num1 > num2 THEN

PRINT “The greater number is”, num1

ELSE

IF num1 = num2

PRINT “Both number are equal”

ELSE

PRINT “The greater number is”, num2

ENDIF

END IF

STOP

ภาคการเรยนท 2/2556 204202 IT II 30

รหสเทยม ดงตอไปน

ตวอยางขอมลเขา และผลลพธขอมลเขา ผลลพธ

num1 = 5num2 = 12

The greater number is 12

num1 = 20 num2 = 2

The greater number is 20

num1 = 134num2 = 134

Both number are equal

ภาคการเรยนท 2/2556 204202 IT II 31

แบบฝกหดใหท าการเปรยบเทยบตวเลข 3 คา คอ ตวเลข A, B, C แลวใหแสดงคาออกมาวาตวไหนมคามากทสด ตวไหนมคานอยทสด ตวไหนเปนคากลางจงออกแบบโปรแกรมตดเกรดของคะแนนนกศกษา 1 คน และแสดงผลเกรดโดยมเงอนไขดงน

◦ท าการวเคราะหโจทย เขยน Flowchart และ Pseudo code

ภาคการเรยนท 2/2556 204202 IT II 32

คะแนน เกรด

0-50 F

51-60 D

61-70 C

71-80 B

81-100 A

ภาคการเรยนท 2/2556 204202 IT II 33

A.2.2 ผงโปรแกรมของโครงสรางแบบมเงอนไขใหเลอกกระท า

หลายทาง (CASE structure)

ค าส ง A ค าส ง B

เงอนไข

คาท 2คาท 1

ค าส ง C ค าส ง D

คาท 4คาท 3

ถาเงอนไขไหนเปนจรงจะท าตามขบวนการหนงใน

หลาย ๆ ทางเลอก สามารถเขยนเปนโครงสรางดง

รป

PSEUDO CODE OF CASE

CASE expression case 1 : process 1case 2 : process 2

...case n : process ndefault : process

ENDCASE

ภาคการเรยนท 2/2556 204202 IT II 34

ภาคการเรยนท 2/2556 204202 IT II 35

ตวอยางโครงสรางแบบมเงอนไขใหเลอกกระท าหลายทาง

จงเขยนผงโปรแกรมเพอหาชนปของนกศกษา

การวเคราะหโจทย

วตถประสงคหลก ชนปของนกศกษา

ผลลพธทแสดง ชนป คอ

ขอมลเขา ตวเลขปของนกศกษา

ตวแปรทใช Y แทนปของนกศกษา

ภาคการเรยนท 2/2556 204202 IT II 36

การวเคราะหโจทย (ตอ)

การประมวลผล CASE Y

1 พมพ “Freshy”

2 พมพ “Sophomore”

3 พมพ “Junior”

4 พมพ “Senior”

อน ๆ พมพ Invalid

ภาคการเรยนท 2/2556 204202 IT II 37

ผงโปรแกรม ดงรป

STARTREAD YCASE OF Y

case “1” : PRINT “Freshy”

case “2” : PRINT “Sophomore”

case “3” : PRINT “Junior”

case “4” :PRINT “Senior”

default : PRINT “Invalid”

ENDCASESTOP

ภาคการเรยนท 2/2556 204202 IT II 38

รหสเทยม ดงตอไปน

ตวอยางขอมลเขา และผลลพธขอมลเขา ผลลพธ

1 Freshy

4 Senior

6 Invalid

a Invalid

ภาคการเรยนท 2/2556 204202 IT II 39

ขนตอนนเปนการน าสวนออกแบบโปรแกรมทออกแบบไวแลว จาก

ขนตอนท 2 (ผงงาน หรอรหสเทยม) มาเขยนเปนภาษาคอมพวเตอร

3. การเขยนโปรแกรม

ภาคการเรยนท 2/2556 204202 IT II 40

แบงการตรวจสอบออกเปน 3 สวนคอ

4.1. ความผดพลาดทางไวยากรณ (Syntax Error)

4.2. ความผดพลาดในการด าเนนงาน (Runtime Error)

4.3. ความผดพลาดทางตรรกะ (Logical Error)

4. การทดสอบโปรแกรม

ภาคการเรยนท 2/2556 204202 IT II 41

เปนขอผดพลาดทเกดเนองจากเขยนค าส งของภาษาไม

ถกตอง ไมถกตามหลกไวยากรณ ขอผดพลาดนโปรแกรมจะ

หยดการท างานและพบไดในชวงแปลโปรแกรม เชน จาก ค าส ง

ตวอยาง

4.1 ความผดพลาดทางไวยากรณ (Syntax Error)

ภาคการเรยนท 2/2556 204202 IT II 42

4.2 ความผดพลาดในการด าเนนงาน (Runtime Error)

เกดจากวธการเขยนโปรแกรม เชน การหารดวยศนย

ชนดขอมลไมถกตอง ขอมลทไดเกนขดจ ากดบน หรอ

นอยกวาขดจ ากดลาง ขอผดพลาดนโปรแกรมจะหยด

การปฏบตการ และพบไดในชวงการปฎบตงานโปรแกรม

ภาคการเรยนท 2/2556 204202 IT II 43

4.3 ความผดพลาดทางตรรกะ (Logical Error)

เกดเนองจากผเขยน เขยนผดขนตอน ผเขยน ตความหมาย

ของปญหาผด ท าใหไดผลลพธไมถกตอง เชน ตองการ 2+4

แตพมพผดเปน 2*4 ท าใหไดค าตอบทไมถกตอง ขอผดพลาดน

โปรแกรมจะไมหยดการท างาน จงตองท าการทดสอบการท างาน

ของโปรแกรมวาถกตองเปนไปตามทตองการหรอไม

ภาคการเรยนท 2/2556 204202 IT II 44

แบบฝกหดแปลงการออกแบบโปรแกรมตดเกรดใหเปนจาก IF ,ELSE IF, ELSE ใหเปนแบบ CASEจงออกแบบโปรแกรมในการใหผใชเลอกชนดสนคา เพยง 1 ชนด และใสจ านวนสนคาชนดนนทจะซอ เพอแสดงมลคารวมของสนคาทผใชเลอก ดงน (โดยตวแปรทรบคาจ านวนสนคา คอ N) ◦ 1. Note book เครอง ละ 15000 บาท◦ 2. PC ชด ละ 20000 บาท◦ 3. หฟง ชดละ 300 บาท◦ 4. กระดาษ รมละ 250 บาท◦หากเปนสนคาชนดอน ใหแสดงขอความวา ไมมขาย

ภาคการเรยนท 2/2556 204202 IT II 45