• No results found

บทท 1 หล กพ นฐานในการเข ยนโปรแกรม

N/A
N/A
Protected

Academic year: 2021

Share "บทท 1 หล กพ นฐานในการเข ยนโปรแกรม"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

กระบวนการเขียนโปรแกรม (Programming process) สําหรับผูไมเคยเขียนโปรแกรมมากอน แนวคิดแบบดั้งเดิมแบบหนึ่งที่เรียกวา กระบวน การเขียนโปรแกรม จัดเปนแนวคิดที่เขาใจไดงาย แนวคิดนี้เปนกระบวนการแกปญหาโดยใชการ เขียนโปรแกรมซึ่งประกอบดวยกิจกรรมตางๆดังนี้ 1. การนิยามปญหา (problem definition) 2. การเตรียมอัลกอริทึม (algorithm) 3. การเตรียมผังงานโปรแกรม (program flowchart) 4. การเขียนโปรแกรม (coding) 5. การตรวจแกขอผิดพลาด (debugging) และการทดสอบ (testing) 6. การจัดทําเอกสาร (documenting) กิจกรรมเหลานี้แสดงในรูปที่ 1.1 การดําเนินกิจกรรม 1 ถึง 5 ตองมีการตรวจสอบแตละขั้นตอนจน มั่นใจจึงจะดําเนินกิจกรรมถัดไป แตบางกรณีอาจมีการทํายอนขั้นตอน หากพบปญหาที่ไมคาดคิด มากอนสวนกิจกรรม 6 เปนการบันทึกวาไดทําอะไรไปบางในกิจกรรม 1 ถึง 5 โดยทําขนานไปกับ กิจกรรมทั้ง 5 นี้ รูปที่ 1.1 กระบวนการเขียนโปรแกรม การนิยามปญหา การเตรียมอัลกอริทึม การตรวจแกขอผิดพลาดและการทดสอบ การเขียนโปรแกรม การเตรียมผังงานโปรแกรม การจัดทําเอกสาร

(2)

ตัวอยางที่ 1.1 : การนับ กําหนดใหมีตัวเลขหนึ่งชุดตองการทราบวามีตัวเลขอยูกี่ตัวเชนถาชุดตัวเลขเปน 22 5 –2 0 –6 3 8 –5 และ 18 พบวามีตัวเลข 9 ตัวการหาคําตอบของปญหานี้ทําโดยใชกระบวนการเขียน โปรแกรมดังนี้ 1. การนิยามปญหา การนิยามปญหาเริ่มจากการกําหนดวาผลลัพธ ที่ตองการคืออะไร ซึ่งตองเขียนไวอยางชัดเจน ดังนี้ กําหนดตัวเลขใหหนึ่งชุด ใหหาวามีตัวเลขทั้งหมดกี่ตัว หลังจากทราบวาผลลัพธที่ตองการคืออะไรแลวจึงไปกําหนดรูปแบบของผลลัพธ เราตองพิจารณาวาขอมูลมีการจัดเก็บอยางไรจึงจะเหมาะตอการประมวลผล ซึ่งขอมูลเขาสําหรับ ปญหานี้อาจกําหนดใหเก็บอยูในแฟมที่ระเบียนแตละระเบียนประกอบดวยฟลดหนึ่งฟลดคือฟลด ชื่อ NUMBER 2. การเตรียมอัลกอริทึม การเขียนอัลกอริทึม เปนการเขียนลําดับของขั้นตอนเพื่อสั่งคอมพิวเตอรทํางานใหตามตองการ ภายใตขอจํากัดความสามารถของคอมพิวเตอรดังนี้ 9 คอมพิวเตอรมีความสามารถในการคํานวณทางคณิตศาสตร ปกติมักจํากัดอยูแคการบวก ลบคูณและหาร 9 คอมพิวเตอรมีความสามารถในการเปรียบเทียบคาสองคา ผลจากการเปรียบเทียบจะเปน ทางเลือกในการทําคําสั่งอื่นตอไป 9 คอมพิวเตอรมีความสามารถในการเคลื่อนยายขอมูลในหนวยความจํา (memory) ของมัน ซึ่งหนวยความจําเปนสวนประกอบสวนหนึ่งของคอมพิวเตอรที่ใชเก็บขอมูลและคําสั่ง 9 คอมพิวเตอรมีความสามารถในการรับขอมูลเขา (อานขอมูลเขาไปเก็บไวในหนวยความ จํา) และแสดงผล (นําผลลัพธออกจากหนวยความจําไปแสดงผลออกทางอุปกรณแสดง ผล) อัลกอริทึมเริ่มตน ถาตองการใหคอมพิวเตอรทําการนับตองมีการใชเนื้อที่ในหนวยความจําของคอมพวิเตอร สําหรับเก็บผลการนับเรียกวา ตัวนับ ไวและทําการนับโดย “บวก 1 เขากับตัวนับ” ทุกครั้งที่มีตัว เลข

(3)

ภายใตขอสมมุติวาคอมพิวเตอรจะรับขอมูลตัวเลขครั้งละตัว แลวจึงไปทําการนับ โดยการ เพิ่มคาตัวนับ หลังจากนั้นตองกลับไปรับขอมูลตัวเลขใหม ทําการประมวลผลตัวเลขเชนนี้ไปเรื่อย ๆจนกวาจะหมดขอมูลตามอัลกอริทึมดังนี้ 1. อานตัวเลขถาอานไมได (ตัวเลขหมด) ใหไปที่ขั้นตอนที่ 3 2. บวก 1 เขากับตัวนับและไปขั้นตอนที่ 1 3. พิมพคาตัวนับ ลําดับการทํางานของอัลกอริทึมปกติทําจากบนลงลาง ตามอัลกอริทึมนี้ ลําดับการทํางาน เปน 1-2-3 หากไมมีการสั่งใหกระโดด (branch) หรือ การสงการควบคุมไปยังขั้นตอนอื่น ตัวอยาง เชนหากเงื่อนไขในขั้นตอนที่ 1 เปนจริง กลาวคืออานตัวเลขไมได (ตัวเลขหมด) ลําดับการทํางาน จะกระโดดไปขั้นตอนที่ 3 โดยขามขั้นตอนที่ 2 การปรับอัลกอริทึม การทํางานตามอัลกอริทึมเริ่มตนที่กลาวมาอาจพบปญหา เนื่องจากเราไมรูวา เมื่อเริ่มตน ทํางาน ตัวนับมีคาเริ่มตนเปนเทาใด อัลกอริทึมนี้อยูภายใตขอสมมติวา เมื่อเริ่มตนทํางานตัวนับมี คาเปน 0 แตในการทํางานจริงของเครื่องเมื่อเริ่มตนทํางานคาตัวนับอาจไมเปน 0 ก็ไดซึ่งจะทําให ผลลัพธที่ไดไมถูกตองตามที่ตองการ ดวยเหตุนี้ ในการเขียนอัลกอริทึมพึงระลึกเสมอวา อะไรที่จะ เกิดขึ้นได ตองพยายามปดกันใหหมด โดยปกติการเขียนโปรแกรม เราจะพยายามเดาปญหาที่จะ เกิดลวงหนาและพยายามหาวิธีที่จะหลีกเลี่ยงปญหาเหลานี้ ดังนั้นในปญหานี้จึงตองมีการกําหนด คาเริ่มตนของตัวนับใหเปน 0 ซึ่งทําใหตองปรับอัลกอริทึมใหมดังนี้ 1. กําหนดคาตัวนับเปน 0 2. อานตัวเลขถาอานไมได (ตัวเลขทั้งหมด) ใหไปที่ขั้นตอนที่ 4 3. บวก 1 เขากับตัวนับและไปขั้นตอนที่ 2 4. พิมพคาตัวนับ นอกจากนี้ การทํางานในขั้นตอนที่ 2 มีการทํางานสองงาน คือ การอานและการตัดสินใจ ซึ่งควรเขียนแยกขั้นตอน เพราะการเขียนโปรแกรม โดยใชภาษาคอมพิวเตอรบางภาษาไมสามารถ ทําในคําสั่งเดียวกันไดจึงตองมีการปรับอัลกอริทึมใหมอีกครั้งดังนี้ 1. กําหนดคาตัวนับเปน 0 2. อานตัวเลข 3. ถาอานไมได (ตัวเลขหมด) ใหไปที่ขั้นตอนที่ 5 4. บวก 1 เขากับตัวนับและไปขั้นตอนที่ 2 5. พิมพคาตัวนับ 6. หยุด

(4)

การตรวจสอบอัลกอริทึม กอนที่จะทํากิจกรรมอื่นตอไป เราตองทําการตรวจสอบอัลกอริทึม เพื่อใหแนใจวาอัลกอริ ทึมทํางานไดถูกตอง วิธีการตรวจสอบทําโดยสมมติขอมูลขึ้นหนึ่งชุด แลวนําขอมูลไป ประมวลผลผานอัลกอริทึมที่สรางขึ้น ในการตรวจสอบนี้ สมมติตัวเลขที่ใชในการตรวจ สอบคือ 22 5 –2 0 –6 3 8 –5 18 การตรวจสอบไดผลดังตาราง ผลจากการตรวจสอบ พบวา เราไดคาตัวนับเปน 9 ซึ่งเปนคาที่ถูกตองนั่นคืออัลกอริทึมทํางานไดถูกตองตามที่ตองการดวยเหตุนี้เอกสาร อัลกอริทึมและเอกสารการทดสอบอัลกอริทึมจึงเปนเอกสารสําคัญชิ้นหนึ่ง

(5)

ตารางที่ 1.1 การตรวจสอบอัลกอริทึมการนับ ลําดับคําสั่ง 1 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 5 6 ตัวเลข -22 22 22 5 5 5 -2 -2 -2 0 0 0 -6 -6 -6 3 3 3 8 8 8 -5 -5 -5 18 18 18 -ตัวนับ 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 9 9

(6)

3. การเตรียมผังงานโปรแกรม หลังจากมั่นใจแลววาอัลกอริทึมทํางานใหไดถูกตอง ตอไปจะเปนการจัดเตรียมผังงาน โปรแกรมซึ่งเปนการแทนอัลกอริทึมดวยสัญลักษณสัญลักษณที่ใชในผังงานโปรแกรมมีดังนี้ ประมวลผล (process) ใชแทนการจัดการอยางใดอยางหนึ่งกับขอมูล เชนการคํานวณทางคณิตศาสตร การเคลื่อนยายขอมูลจากที่หนึ่งไปอีกที่ หนึ่งเปนตน นําเขา/แสดงผล (Input/output) ใชแทนปฏิบัติการการนําขอมูลเขา หรือแสดงผล การเตรียม (preparation) ใชแทนการจัดการการทํางานที่ไมใชการจัด การขอมูลตัวอยางเชนการกําหนดคาเริ่มตนใหตัวนับ การตัดสินใจ (decision) ใชแทนการเปรียบเทียบคา 2 คา ผลจากการ เปรียบเทียบจะไดทางเลือกที่จะทําตอไป ปลายทาง (terminal) ใชแทนจุดเริ่มตนทํางานหรือหยุดทํางานของ โปรแกรม จุดตอ (connector) ใชแทนการออกจากจุดหนึ่งของโปรแกรม หรือการ เขาสูจุดหนึ่งของโปรแกรม เสนไหล (flowline) ใชชี้ลําดับการปฏิบัติการ ปกติจะเขียนจากบนลง ลางและจากซายไปขวา คําอธิบาย (annotation) ใชบรรยายขอสังเกตขั้นตอนการประมวลผล เพื่อใหอานเขาใจงายขึ้น

(7)

START

COUNTER 0 กําหนดคาเริ่มตนตัวนับ

1

READ A RECORD

EOF PRINT COUNTER STOP F COUNTER COUNTER+1 1 รูปที่ 1.2 ผังงานโปรแกรมการนับ 4. การเขียนโปรแกรม เมื่อมั่นใจวาผังงานโปรแกรมทํางานไดตามตองการแลว งานตอไปคือการเขียนคําสั่งเพื่อ สั่งคอมพิวเตอรโดยควรเขียนในรูปแบบที่งาย เพื่อใหผูอื่นสามารถเขาใจได การเขียนคําสั่งจะใช ภาษาคอมพิวเตอรภาษาใดภาษาหนึ่ง โปรแกรมที่เขียนขึ้นจะเรียกวา ซอสโปรแกรม (source program) จากนั้นจะใช โปรแกรมการแปล (translation program) แปลซอสโปรแกรมใหเปน

ออปเจกโปรแกรม (object program) ซึ่งอยูในรูปเลขฐาน 2 (0 กับ 1) ที่คอมพิวเตอรสามารถ เขาใจได

(8)

ตารางที่ 1.2 การตรวจสอบผังงานโปรแกรมการนับ ลําดับคําสั่ง NUMBER COUNTER COUNTER 0 - 0 READ A RECORD 22 0 EOF? 22 0 COUNTER COUNTER+1 22 1 READ A RECORD 5 1 EOF? 5 1 COUNTER COUNTER+1 5 2 READ A RECORD -2 2 EOF? -2 2 COUNTER COUNTER+1 -2 3 | | | | | | READ A RECORD 18 8 EOF? 18 8 COUNTER COUNTER+1 18 9 READ A RECORD - 9 EOF? - 9 PRINT COUNTER - 9 5. การตรวจแกขอผิดพลาดและการทดสอบโปรแกรม หลังจากตรวจสอบโปรแกรมแลวก็ตองปอนเขาเครื่อง หากทํางานไมไดตามตองการจะ กลับไปแกไขซอสโปรแกรม แปล และทดสอบใหม ทําเชนนี้จนกวาจะไดผลลัพธตาม ตองการ 6. การจัดทําเอกสาร ในการแกปญหาตอไปจึงจํากัดขั้นตอนอยูเพียง 4 ขั้นตอนคือ 1. การนิยามปญหา 2. การเตรียมอัลกอริทึม 3. ขอมูลเขาและผลลัพธทดสอบ 4. การเตรียมผังงานโปรแกรม

References

Related documents

After reading, analyzing, and discussing Chapter 7, Public Opinion and Persuasion , students should be able to.. understand what constitutes public opinion, and how it

Students are expected to read all required readings for each class session and be prepared to participate in classroom discussions and exercises.. The course combines the formats

An individual insured under the Group Life Insurance policy may replace all or part of the Life Insurance Benefit with an individual policy with no medical examination or

The EPAS Acquirer protocol is composed of a series of standard ISO 20022 messages (CAPE) for authorising or pre-authorising card payment transactions, cancelling or rejecting

b) children’s programmes (other than schools programmes) with a scheduled duration of 30 minutes or less may not include an advertising or teleshopping break. Such programmes with

If you enroll in a Medicare prescription drug plan, you and your eligible dependents will be eligible to receive all of your current health and prescription drug benefits and

: If this product contains ingredients with exposure limits, personal, workplace atmosphere or biological monitoring may be required to determine the effectiveness of the

• Select the first 50 segments (by left-clicking in the “1” Segment Number box and dragging downwards until the first 50 segments are highlighted) and randomize them with one set