1.ขั้นตอนการกำหนดปัญหา ( Define the Program)
- Input
- Outputs
- Processing
- แตกงานให้เป็นช้นย่อยๆหรือเป็นขั้นเป็นตอน(หลังจากกำหนดปัญหา)
- การร่างรายละเอียดแนวทางการแก้ไขปัญหาต่างๆประกอบด้วย
- ขั้นตอนการประเมณผลส่วนหลักๆ
- ส่วนหลักของงานที่ได้มีการแตกย่อย(Subtask)
- ส่วนความสัมพันธ์กับผู้ใช้งาน
- โครงสร้างที่ใช้ควบคุม เช่น การวนซ้ำ หรือการกำหนดทางเลือก
- ตัวแปรและโครงสร้างของเรคอร์ด
- ตรรกะโปรแกรม(Logic)
- ขั้นตอนที่ใช้อธิบายลำดับการทำงาน และหากได้ปฏิบัติตามขั้นตอนของอัลกิริทึมที่ออกมา
- ซูโดโค้ดเป็นตัวแทนอัลกอริทึมเพื่อใช้แก้ไขปัญาหาทางคอมพิวเตอร์
4. ตรวจสอบความถูกต้องอัลกอลิทึ่ม (Test the Algorithm for Correctness)
- เป็นขั้นตอนที่สำคัญที่สุด
- ตรวจสอบทั้งตรรกะของอัลกอริทึมตัวแปรหลักและการนำข้อมูลทดสอบเข้าไปประมวลผลในแต่ละขั้นตอน
5. เขียนโปรแกรม (Programming)
- นำอัลกอริทึมที่ได้รับการออกแบบอย่างสมบูรณ์มาพัฒนาด้วยการเขียนโปรแกรม(ชุดคำสั่ง)
- เลือกใช้ภาษาระดับสูงเพื่อใช้เขียนโปรแกรม เช่น c,PASCAL เป็นต้น
6. ทดสอบโปรแกรม (Testing)
- นำข้อมูลป้อนเข้าไปเพื่อทดสอบบนเครื่องกับโปรแกรมที่ได้เขียนขึ้นว่าถูกต้องหรือไม่
- การตรวจสอบ
- รูปแบบชุดคำสั่ง(Syntax Errors)
- โปรแกรม(Logic Errors)
- ข้อมูลทดสอบต้องมีความแตกต่างกันออกไปตามแต่ละสภาพแวดล้อม
7. จัดทำเอกสารและบำรุงโปรแกรม(Document and Maintain the Program)
- การจัดทำเอกสารประกอบโปรแกรมจะต้องจัดทำขึ้นตั้งแต่ขั้นตอน การกำหนดปัญหาจนถึงขั้นตอน
สุดท้าย คือการทดสอบผลลัพธ์ - เอกสารประกอบโปรแกรมประกอบด้วย
- เอกสารภายนอก(External document) เช่น ผังโครงสร้างอัลกอริทึมที่ใช้แก้ปัญหาและผลของการทดสอบข้อมูล
- เอกสารภายใน(Internal document) คือ ชุดคำสั่งในโปรมแกรม
- การบำรุงรักษาโปรแกรมจะเกี่ยวข้องกับการดูแลและปรับปรุงโปรแกรม
วิธีการออกแบบโปรแกรม
- การออกแบบโปรแกรมแบบ Procedure-Driven
แนวความคิด>>มีกระบวนการ(Processes)หรือฟังก์ชัน(Function) - การออกแบบโปรแกรมแบบ Event-Driven
แนวความคิด>>เหตุการณ์หรือโต้ตอบจากภยนอกเป็นสำคัญ ที่ส่งผลต่อ
โปรแกรมในด้านของการเปลี่ยนแปลงในแต่ละสถานะ - การออกแบบโปรแกรมแบบ Data-Driven
แนวความคิด>>ข้อมูลในโปรแกรมมมากกว่ากระบวนการ โดยเริ่มต้นจากการวิเคราะห์ข้อมูล
และความสัมพันธ์ระหว่างข้อมูล มีการกำหนดโครงสร้างข้อมูลเบื้องต้นและเมื่อโครงสร้างข้อมูล
ได้ถูกกำหนดขึ้น ความต้องการในผลลัพธ์ของข้อมูลก็จะถูกพิจารณาในลำดับถัดไปว่า
มีกระบวนการใดที่ทำการแปลงข้อมูลนำเข้าเพื่อไปสู่ผลลัพธ์หรือเอาต์พุตที่ต้องการ
การเขียนโปรแกรมแบบ Procedural และ Object-Oriented
- การเขียนโปรแกรมแบบบนลงล่าง(Top-Down Development)
- การออกแบบโปรแกรมในลักษณะโมดูล (Modular Design)
- การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
วัตถุประสงค์ของการใช้เทคนิคการออกแบบโครงสร้างโปรแกรม
(Objective of Structured Program Design Techniques)
- ต้องการให้โปรแกรมมีคุณภาพและคาดหมายพฤติกรรมการทำงานของโปรแกรมได้ว่าจะเกิดผลลัพธ์อะไรขึ้นในเงื่อนไขกรณีต่างๆ
- โปรแกรมสามารถที่จะแก้ไข ปรับปรุง หรือดัดแปลงได้ง่ายในอนาคต
- ทำให้ขั้นตอนของการเขียนโปรแกรมเป็นไปอย่างมีระบบ มีความสะดวกและง่ายขึ้น
- ลดเวลาในการพัฒนาโปรแกรม
ความรู้เบื้องต้นเกี่ยวกับอัลกอริทึมและซูโดโค้ด(Introduction to Algorithm and Pseud Code)
อัลกอริทึม (Algorithm) คือ กลุ่มของขั้นตอนหรือกฎเกณฑ์ที่จะนำพาไปสู่การแก้ไขปัญหาได้ หรือขั้นตอนวิธีซึ่งจะใช้อธิบายว่างานนั้นทำงานอย่างไร เมื่อได้ปฏิบัติตามขั้นตอนจนครบก็จะได้ผลลัพธ์ที่ถูกต้องตามต้องการ
คุณสมบัติของอัลกอริทึมที่ดีในการแก้ปัญหาทางคอมพิวเตอร์
- ไม่กำกวม อ่านแล้วเข้าใจง่าย
- ต้องมีความถูกต้องในผลลัพธ์ที่ใช้แก้ไขปัญหาในกรณีต่างๆ
- กระบวนการหรือขั้นตอนที่ระบุไว้ในอัลกอริทึมต้องมีความเรียบง่ายเพียงพอต่อการดำเนินงานเพื่อประมวลผลในคอมพิวเตอร์ได้
- อัลกอลิทึมต้องมีจุดสิ้นสุด
หลักวิธีการเขียนซูโดโค้ด
- ถ้อยคำที่ใช้เขียน ใช้ภาษาอังกฤษที่เข้าใจง่าย
- ในหนึ่งบรรทัด ให้มีเพียงหนึ่งประโยคคำสั่ง
- ใช้ย่อหน้าให้เป็นประโยชน์ ในการแสดงการควบคุมอย่างเป็นสัดส่วน
- แต่ละประโยคคำสั่งให้เขียนจากบนลงล่าง และมีทางออกทางเดียว
- กลุ่มของประโยคคำสั่งอาจรวมเป็นหมวดหมู่แล้วเรียกใช้เป็นโมดูล
Six Basic Computer Operations
รับข้อมูลได้ (input device)
- อุปกรณ์รับข้อมูล เช่น เทอร์มินัล คีย์บอร์ด หรือรับข้อมูลจากการอ่านไฟล์ข้อมูลบนสื่อจัดเก็บ ข้อมูล เช่น ดิสก์ หรือเทป
- ในการอ่านข้อมูลจะใช้ read และ get เพื่อใช้ในการเขียนซูโดโค้ด-read ใช้เมื่อมีการรับหรืออ่านเรคคอร์ดจากไฟล์ข้อมูล-get ใช้สำหรับรบข้อมูลจากแป้นคีย์บอร์ด
คอมพิวเตอร์สามารถแสดงผลลัพธ์ได้
การแสดงผลลัพธ์จะใช้คำกิริยา
- -print ใช้สำหรับการส่งผลลัพธ์ออกทางแป้นพิมพ์
- -write ใช้สำหรับการส่งออกเอาต์พุตเพื่อเก็บบันทึกลงในไฟล์
- -put,output หรือ display ใช้สำหรับการส่งเอาต์พุตออกไปแสดงผลทางจอภาพ
คอมพิวเตอร์สามารถคำนวณได้
สัญลักษณ์ที่ใช้ในการคำนวณ
+ ใช้แทนการบวก (Add)
- ใช้แทนการลบ (subtract)
* ใช้แทนการคูณ (multiply)
/ ใช้แทนการหาร (divide)
() ใช้แทนเครื่องหมายวงเล็บเปิด/ปิด
คอมพิวเตอร์สามารถกำหนดค่าตัวแปรได้
ทำได้ 3 รูปแบบ
- ใช้คำกริยา initialize หรือคำว่า set เพือกำหนดค่าเริ่มต้นให้กับตัวแปร
- ใช้สัญลักษณ์เครื่องหมาย = หรือเครื่องหมาย ←เพื่อกำหนดค่าให้กับตัวแปร
- ใช้คำกริยา store ในการจัดเก็บข้อมูลให้กับตัวแปร
คอมพิวเตอร์สามารถเปรียบเทียบ และ เลือกการทำงานได้
- ใช้คำ if…then…else และจบด้วย end if เสมอ
คอมพิวเตอร์สามารถทำงานซ้ำๆได้
- ใช้คำ dowhile…enddo หรือ repeat..until
The Three Basic Control Structures
- The Three Basic Control Structures
แบบเรียงลำดับ (Sequence) ทำงานตามชุดคำสั่งแบบลำดับ จากบนลงล่าง - แบบเลือกการทำงาน (Selection)
เปรียบเทียบเงื่อนไขโดยใช้คำสั่ง
if…
then….
else ….
end if - แบบทำงานซ้ำ (Repetition)
dowhile จะทำงานซ้ำไปเรื่อยๆ เมื่อตรงกับเงื่อนไข
จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะหลุดออกจากลูป
dowhile condition p is true
statement block
end do
ส่วน repeat …. until จะทำการ execute statement
ก่อนเช็คเงื่อนไข
repeat
statement
statement
until condition is true
บทที่ 2 Review C Language
1.Review C Language- คำสั่งพื้นฐานต่างๆ
เช่น printf( “abc” );printf( “%s”, ”abc” );เช่น scanf( “%d”,&x);- Format Code ใช้ในการแสดงผลที่นิยมใช้ ได้แก่
%d ใช้กับข้อมูลแบบ integer%c ใช้กับข้อมูลแบบ character%f ใช้กับข้อมูลแบบ floating%s ใช้กับข้อมูลแบบ string2.Operator
แบ่งออกเป็น 3 ชนิด คือ- Arithmetic Operators ได้แก่ +, - , *, /, % , -- , ++
- Relational and Equality Operators ได้แก่ < , > , <= , >= , == , !=
- - Logical Operators ได้แก่ ! , && , ||
3.selection/Condition- if statement
- if - else statement
- if - else statement (Nested if)
- switch statement
4.Repetition/Loop- while statement
Format :while (expression) { statement-1; statement-2; …… statement-n; }- for statement
Format :
for (expression -1; expression-2; expression-3 ) { statement -1 ; statement -2 ; ….. statement -n ; }- do-while statement
Format :
do { statement -1 ; statement -2 ; ….. statement -n ; } while (expression);5.Function ข้อดี- เขียนโค้ดครั้งเดียว แต่สามารถเรียกใช้ได้หลายครั้ง
สามารถนำหลับมาใช้ใหม่ในโปรแกรมอื่นได้
ถ้าต้องการเปลี่ยนแปลงแก้ไขเพียงที่เดียว
ทำให้โปรแกรมมีความเป็นโครงสร้าง - สามารถแบ่งเป็นโมดูลย่อยๆได้
ฟังก์ชันแบ่งเป็น 2 ประเภท คือ
- Library Function
Format :#include<file-name>ตัวอย่าง #include<stdio.h> #include<conio.h > etc.วิธีเรียกใช้งาน Library Function
- เรียกชื่อของฟังก์ชันที่ต้องการใช้งาน
- เอาค่าที่จะส่งไปทำงานในฟังก์ชัน ใส่ลงในวงเล็บตามหลังชื่อฟังก์ชันนั้น
ตัวอย่าง Library Function strcpy () –อยู่ในแฟ้มข้อมูล string.h ทำหน้าที่ : คัดลอกข้อมูลจาก string หนึ่งไปยัง string หนึ่งFormat :strcpy (str1, str2);
6.User Defined Functionคือ ฟังก์ชันที่ผู้เขียนโปรแกรมสามารถเขียนฟังค์ชันขึ้นใช้เอง โดยฟังก์ชันนี้อาจจะรวมอยู่กับโปรแกรมหลักเป็นแฟ้มเดียวกัน หรือยกฟังก์ชันเหล่านี้ไว้คนละแฟ้มข้อมูลก็ได้การสร้างฟังก์ชัน ประกอบด้วย- Function Definition
- Function Prototype
- Invocation
Function Definition หรือนิยามฟังก์ชัน คือ รายละเอียดในการทำงานของฟังก์ชัน Format :data-type function-name(type argument ) { declaration; statement; return(value); }Function Prototype เป็นตัวบอกให้ Compiler ทราบว่าการประกาศฟังก์ชันขึ้นและฟังก์ชันนั้นมีค่าที่ส่งกลับเป็นอะไร มีการรับพารามิเตอร์อะไรบ้าง มีประโยชน์ในการตรวจสอบข้อผิดพลาดระหว่างการเรียกใช้ฟังก์ชันInvocation คือการเรียกใช้ฟังก์ชันลักษณะของฟังก์ชัน- ฟังก์ชันที่ไม่มีการส่งค่ากลับ การเรียกใช้ทำได้โดยอ้างถึงชื่อฟังก์ชัน
...........
Print_banner () ; - ฟังก์ชันที่มีการส่งค่ากลับ การเรียกใช้ทำได้เหมือนแบบแรก แต่ต้องมีตัวแปรมารับค่าที่จะต้องส่งกลับด้วย
int main(void) {int k, j;j = prompt ()k = prompt ();printf(“j = %d and k = %d”, j, k);- ฟังก์ชันที่มีการรับค่า argument
การเรียกใช้ฟังก์ชันทำได้โดยอ้างถึงชื่อของฟังก์ชัน พร้อมทั้งส่งค่าของตัวแปร(parameter)ไปด้วย โดยจะ ต้องมีชนิดสอดคล้องกับ argument ของฟังก์ชัน ที่เรียกใช้- การผ่านค่า argument ให้ฟังก์ชัน ทำได้ 2 แบบ คือ
Pass by Value คือ การส่งค่าไปยังฟังก์ชันที่ถูกเรียกใช้โดยส่งค่าของตัวแปรหรือค่าที่ส่งไปโดย ค่าคงที่ผ่านให้กับค่าฟังก์ชันจะถูกคัดลอกส่งให้กับ ฟังก์ชันและจะถูกเลี่ยนแปลงเฉพาะภายในฟังก์ชัน โดยค่าของ argumentในโปรแกรมที่เรียกใช้จะไม่เปลี่ยนแปลง ตัวอย่าง :void swap(int num1, int num2) {int tmp;tmp = num1;num1 = num2;num2 = tmp;print(“A is %d B is %d\n”, num1, num2);}Pass by Referenceคือ การส่งค่าไปยังฟังก์ชันที่ถูกเรียกใช้โดยส่งเป็นตำแหน่งที่อยู่ของตัวแปรไป ซึ่งหากภายในฟังก์ชันมีการเปลี่ยนแปลงค่าของ argument ที่ส่งไป ก็จะมีผลทำให้ค่าของ argument นั้นใน โปรแกรมที่เรียกใช้เปลี่ยนไปด้วย ตัวอย่าง :void swap(int * num1, int * num2) {int tmp;tmp = *num1;*num1 =* num2;*num2 = tmp;}
-
ไม่มีความคิดเห็น:
แสดงความคิดเห็น