บทที่ 1
1.Steps in program development
1.Steps in program development
กำหนดปัญหา
- ร่างรายระเอียดการแก้ไขปัญหา
- พัฒนาอัลกอลิทึ่ม
- ตรวจสอบความถูกต้องของอัลกอลิทึ่ม
- เขียนโปรแกรม
- ทดสอบโปรแกรม
- จัดทำเอกสารและบำรุงรักษาโปรแกรม
กำหนดปัญหาประกอบไปด้วย
- Input
- Output
- Processing
Outline the solution
- แตกงานให้เป็นชิ้นงานย่อยๆหรือเป็นขั้นเป็นตอน (หลังการกำหนดปัญหา)
- การร่างรายละเอียดแนวทางการแก้ไขปัญหาต่างๆประกอบด้วย
- ขั้นตอนการประมวลผลส่วนหลัก
- ส่วนหลักของงานที่ได้มีการแตแย่อย
- ส่วนความสัมพันธ์กับผู้ใช้งาน
- โครงสร้างที่ใช้ควบคุม เช่น การวนซ้ำ หรือการกำหนดทางเลือก
- ตัวแปรและโครงสร้างของเรคอร์ด
- ตรรกะโปรแกรม
Develop and Algorithm
- ขั้นตอนที่ใช้อธิบายลำดับการทำงาน และหากได้ปฏิบัติตามขั้นตอนของอัลกอริทึ่มที่ออกมา
- ซูโดโค้ดเป็นตัวแทนอัลกอริทึ่มเพื่อใช้แก้ปัญหาทางคอมพิวเตอร์
Test the algorithm for Correctness
- ตรวจสอบทั้งตรรกะของอัลกอลิทึ่ม ตัวแปรหลัก และการนำข้อมูลทดสอบเข้าไปประมวลผลในแต่ละขั้นตอน
Programming
- นำอัลกอลิทึ่มที่ได้รับการออกแบบอย่างสมบูรณ์มาพัฒนาด้วยการเขียนโปรแกรม
Testing
- นำข้อมูลป้อนเข้าไปเพื่อทดสอบบนเครื่องกับโปรแกรมที่ได้เขียนขึ้นว่าถูกต้องหรือไม่
- การตรวจสอบ
- รูปแบบชุดคำสั่ง
- โปรแกรม
- ข้อมูลทดสอบต้องมีความแตกต่างกันออกไปตามแต่ละสถาณการณ์และสภาพแวดล้อม
Document and Maintain the Program
- กาารจัดทำเอกสารประกอบโปรแกรมจะต้องจัดทำตั้งแต่ขั้นตอนการกำหนดปัญหาจนถึงขั้นตอนสุดท้าย คือ การทดสอบผลลัพธ์
- เอกสารประกอบโปรแกรมจะประกอบไปด้วย
- เอกสานภายนอก เช่น ผังโครงสร้าง
- เอกสารภายใน คือ ชุดคำสั่งในโปรแกรม
- การบำรุงรักษาโปรแกรมจะเกี่ยวข้องกับงานดูแลและปรับปรุงโปรแกรม
2.Program design Methodology
- การออกแบบโปรแกรมแบบ Procedure-Driven
- แนวความคิด>>มีกระบวนการ(Processes)หรือฟังก์ชัน(Function)
- การออกแบบโปรแกรมแบบ Event-Driven
- แนวความคิด>>เหตุการณ์หรือโต้ตอบจากภยนอกเป็นสำคัญ ที่ส่งผลต่อ
โปรแกรมในด้านของการเปลี่ยนแปลงในแต่ละสถานะ
โปรแกรมในด้านของการเปลี่ยนแปลงในแต่ละสถานะ
- การออกแบบโปรแกรมแบบ Data-Driven
- แนวความคิด>>ข้อมูลในโปรแกรมมมากกว่ากระบวนการ โดยเริ่มต้นจากการวิเคราะห์ข้อมูล
และความสัมพันธ์ระหว่างข้อมูล มีการกำหนดโครงสร้างข้อมูลเบื้องต้นและเมื่อโครงสร้างข้อมูล
ได้ถูกกำหนดขึ้น ความต้องการในผลลัพธ์ของข้อมูลก็จะถูกพิจารณาในลำดับถัดไปว่า
มีกระบวนการใดที่ทำการแปลงข้อมูลนำเข้าเพื่อไปสู่ผลลัพธ์หรือเอาต์พุตที่ต้องการ
และความสัมพันธ์ระหว่างข้อมูล มีการกำหนดโครงสร้างข้อมูลเบื้องต้นและเมื่อโครงสร้างข้อมูล
ได้ถูกกำหนดขึ้น ความต้องการในผลลัพธ์ของข้อมูลก็จะถูกพิจารณาในลำดับถัดไปว่า
มีกระบวนการใดที่ทำการแปลงข้อมูลนำเข้าเพื่อไปสู่ผลลัพธ์หรือเอาต์พุตที่ต้องการ
3. Procedural และ Object-Oriented
- การเขียนโปรแกรมแบบบนลงล่าง(Top-Down Development)
- การออกแบบโปรแกรมในลักษณะโมดูล (Modular Design
- การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
4.Objective of Structured Program Design Techniques
- ต้องการให้โปรแกรมมีคุณภาพและคาดหมายพฤติกรรมการทำงานของโปรแกรมได้ว่าจะเกิดผลลัพธ์อะไรขึ้นในเงื่อนไขกรณีต่างๆ
- โปรแกรมสามารถที่จะแก้ไข ปรับปรุง หรือดัดแปลงได้ง่ายในอนาคต
- ทำให้ขั้นตอนของการเขียนโปรแกรมเป็นไปอย่างมีระบบ มีความสะดวกและง่ายขึ้น
- ลดเวลาในการพัฒนาโปรแกรม
5.Introduction to Algorithm and Pseude Code
- อัลกอริทึม (Algorithm) คือ กลุ่มของขั้นตอนหรือกฎเกณฑ์ที่จะนำพาไปสู่การแก้ไขปัญหาได้ หรือขั้นตอนวิธีซึ่งจะใช้อธิบายว่า งานนั้นทำงานอย่างไร เมื่อได้ปฏิบัติตามขั้นตอนจนครบก็จะได้ผลลัพธ์ที่ถูกต้องตามต้องการ
- คุณสมบัติของอัลกอริทึมที่ดี
-ไม่กำกวม อ่านแล้วเข้าใจง่าย
- ต้องมีความถูกต้องในผลลัพธ์ที่ใช้แก้ไขปัญหาในกรณีต่างๆ
- การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
4.Objective of Structured Program Design Techniques
- ต้องการให้โปรแกรมมีคุณภาพและคาดหมายพฤติกรรมการทำงานของโปรแกรมได้ว่าจะเกิดผลลัพธ์อะไรขึ้นในเงื่อนไขกรณีต่างๆ
- โปรแกรมสามารถที่จะแก้ไข ปรับปรุง หรือดัดแปลงได้ง่ายในอนาคต
- ทำให้ขั้นตอนของการเขียนโปรแกรมเป็นไปอย่างมีระบบ มีความสะดวกและง่ายขึ้น
- ลดเวลาในการพัฒนาโปรแกรม
5.Introduction to Algorithm and Pseude Code
- อัลกอริทึม (Algorithm) คือ กลุ่มของขั้นตอนหรือกฎเกณฑ์ที่จะนำพาไปสู่การแก้ไขปัญหาได้ หรือขั้นตอนวิธีซึ่งจะใช้อธิบายว่า งานนั้นทำงานอย่างไร เมื่อได้ปฏิบัติตามขั้นตอนจนครบก็จะได้ผลลัพธ์ที่ถูกต้องตามต้องการ
- คุณสมบัติของอัลกอริทึมที่ดี
-ไม่กำกวม อ่านแล้วเข้าใจง่าย
- ต้องมีความถูกต้องในผลลัพธ์ที่ใช้แก้ไขปัญหาในกรณีต่างๆ
- กระบวนการหรือขั้นตอนที่ระบุไว้ในอัลกอริทึมต้องมีความเรียบง่ายเพียงพอต่อการดำเนินงานเพื่อประมวลผลในคอมพิวเตอร์ได้
-ต้องมีจุดสิ้นสุด
ซูโดโค้ด(Pseudo Code) สามารถนำมาใช้แทนอัลกอริทึมได้ โปรแกรมเมอร์สามารถนำอัลกอริทึมที่นำเสนอ ในรูปแบบซูโดโค้ดไปเขียนเป็นชุดคำสั่งภาษาโปรแกรมได้ทันที
หลักการเขียนซูโดโค้ด
- ถ้อยคำที่ใช้เขียน ใช้ภาษาอังกฤษที่เข้าใจง่าย
- ในหนึ่งบรรทัด ให้มีเพียงหนึ่งประโยคคำสั่ง
ซูโดโค้ด(Pseudo Code) สามารถนำมาใช้แทนอัลกอริทึมได้ โปรแกรมเมอร์สามารถนำอัลกอริทึมที่นำเสนอ ในรูปแบบซูโดโค้ดไปเขียนเป็นชุดคำสั่งภาษาโปรแกรมได้ทันที
หลักการเขียนซูโดโค้ด
- ถ้อยคำที่ใช้เขียน ใช้ภาษาอังกฤษที่เข้าใจง่าย
- ในหนึ่งบรรทัด ให้มีเพียงหนึ่งประโยคคำสั่ง
- ใช้ย่อหน้าให้เป็นประโยชน์ ในการแสดงการควบคุมอย่างเป็นสัดส่วน
- แต่ละประโยคคำสั่งให้เขียนจากบนลงล่าง และมีทางออกทางเดียว
- กลุ่มของประโยคคำสั่งอาจรวมเป็นหมวดหมู่แล้วเรียกใช้เป็นโมดูล
6.Six Basic Computer Operations
- รับข้อมูลได้ (input device)
-อุปกรณ์รับข้อมูล เช่น เทอร์มินัล คีย์บอร์ด หรือรับข้อมูลจากการอ่านไฟล์ข้อมูลบนสื่อจัดเก็บข้อมูล เช่น ดิสก์ หรือเทป
-ในการอ่านข้อมูลจะใช้ read และ get เพื่อใช้ในการเขียนซูโดโค้ด
-read ใช้เมื่อมีการรับหรืออ่านเรคคอร์ดจากไฟล์ข้อมูล
-get ใช้สำหรับรบข้อมูลจากแป้นคีย์บอร์ด
- รับข้อมูลได้ (input device)
-อุปกรณ์รับข้อมูล เช่น เทอร์มินัล คีย์บอร์ด หรือรับข้อมูลจากการอ่านไฟล์ข้อมูลบนสื่อจัดเก็บข้อมูล เช่น ดิสก์ หรือเทป
-ในการอ่านข้อมูลจะใช้ read และ get เพื่อใช้ในการเขียนซูโดโค้ด
-read ใช้เมื่อมีการรับหรืออ่านเรคคอร์ดจากไฟล์ข้อมูล
-get ใช้สำหรับรบข้อมูลจากแป้นคีย์บอร์ด
ตัวอย่าง
read studentName
get systemDate
read number1,number2
get taxCode
get systemDate
read number1,number2
get taxCode
- คอมพิวเตอร์สามารถแสดงผลลัพธ์ได้
-print ใช้สำหรับการส่งผลลัพธ์ออกทางแป้นพิมพ์
-write ใช้สำหรับการส่งออกเอาต์พุตเพื่อเก็บบันทึกลงในไฟล
-put,output หรือ display ใช้สำหรับการส่งเอาต์พุตออกไปแสดงผลทางจอภาพ
ตัวอย่าง
print “Program Completed”
write customer record to master file
put name,address and postcode
output totalTax
display “End of data”
write customer record to master file
put name,address and postcode
output totalTax
display “End of data”
- คอมพิวเตอร์สามารถแสดงผลลัพธ์ได้(Cont)
-คำสั่ง prompt ที่ใช้สำหรับแสดงข้อความก่อนที่จะใช้คำสั่ง get,เพื่อจะได้สามารถสือสารโต้ตอบกับยูสเซอร์ได้อย่างสมบูรณ์ยิ่งขึ้น
-คำสั่ง prompt ที่ใช้สำหรับแสดงข้อความก่อนที่จะใช้คำสั่ง get,เพื่อจะได้สามารถสือสารโต้ตอบกับยูสเซอร์ได้อย่างสมบูรณ์ยิ่งขึ้น
-คำกริยาที่ใช้ในการคำนวณจะใช้ compute และ calculate
สัญลักษณ์ที่ใช้ในการคำนวณ
+ ใช้แทนการบวก (Add)
- ใช้แทนการลบ (subtract)
* ใช้แทนการคูณ (multiply)
/ ใช้แทนการหาร (divide)
() ใช้แทนเครื่องหมายวงเล็บเปิด/ปิด
ตัวอย่าง
divide totalMarks by studentCount
salesTax costPrice*0.10
computeC=(F-32)*5/9
- คอมพิวเตอร์สามารถกำหนดค่าตัวแปรได้สามารถทำได้ 3 รูปแบบ ดังนี้
- ใช้คำกริยา initialize หรือคำว่า set เพือกำหนดค่าเริ่มต้นให้กับตัวแปร
- ใช้สัญลักษณ์เครื่องหมาย = หรือเครื่องหมาย ←เพื่อกำหนดค่าให้กับตัวแปร
- ใช้คำกริยา store ในการจัดเก็บข้อมูลให้กับตัวแปร
ตัวอย่าง
initialize totalPrice to zero
set studentCount to o
totalPrice = costPrice+salesTax
totalPrice ← costPrice+salesTax
store customerId lastCustomerID
set studentCount to o
totalPrice = costPrice+salesTax
totalPrice ← costPrice+salesTax
store customerId lastCustomerID
- คอมสามารถเปรียบเทียบ หรือเลือกทำงานได้
- ใช้คำ if…then…else และจบด้วย end if เสมอ
ตัวอย่าง
if employeeStatus is partTime then
add to partTimeCount
else
add to fullTimeCount
end if
add to partTimeCount
else
add to fullTimeCount
end if
- คอมพิวเตอร์สามารถทำงานซ้ำๆได้
-ใช้คำ dowhile…enddo หรือ repeat..until
ตัวอย่าง
dowhile file_flag<>”eof”
read student record
print studentName,address to report
add 1 to studentTotal
enddo
read student record
print studentName,address to report
add 1 to studentTotal
enddo
7. The Three Basic Control Structures
- Repetition Format
dowhile
dowhile condition p is ture
statement block
enddo
- Repetition Format (Cont)
repeat….until
repeatstatement
statement
statement
:
:
until condition is true
----------------------------------------------------------------------------
บทที่ 2
1.Revew C Language
- คำสั่งพื้นฐานต่างๆ
เช่น printf( “abc” );
printf( “%s”, ”abc” );
เช่น scanf( “%d”,&x);
- Format Code ใช้ในการแสดงผลที่นิยมใช้ ได้แก่
%d ใช้กับข้อมูลแบบ integer
%c ใช้กับข้อมูลแบบ character
%f ใช้กับข้อมูลแบบ floating
%s ใช้กับข้อมูลแบบ string
2.Operator
แบ่งออกเป็น 3 ชนิด คือ
แบ่งออกเป็น 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;
}
statement-1;
statement-2;
……
statement-n;
}
-for statement
Format :
Format :
for (expression -1; expression-2; expression-3 )
{
statement -1 ;
statement -2 ;
…..
statement -n ;
}
{
statement -1 ;
statement -2 ;
…..
statement -n ;
}
-do-while statement
Format :
Format :
do {
statement -1 ;
statement -2 ;
…..
statement -n ;
} while (expression);
statement -1 ;
statement -2 ;
…..
statement -n ;
} while (expression);
5.Function
ข้อดี
ข้อดี
-เขียนโค้ดครั้งเดียว แต่สามารถเรียกใช้ได้หลายครั้ง
-สามารถนำหลับมาใช้ใหม่ในโปรแกรมอื่นได้
-ถ้าต้องการเปลี่ยนแปลงแก้ไขเพียงที่เดียว
-ทำให้โปรแกรมมีความเป็นโครงสร้าง
-สามารถนำหลับมาใช้ใหม่ในโปรแกรมอื่นได้
-ถ้าต้องการเปลี่ยนแปลงแก้ไขเพียงที่เดียว
-ทำให้โปรแกรมมีความเป็นโครงสร้าง
-สามารถแบ่งเป็นโมดูลย่อยๆได้
ฟังก์ชันแบ่งเป็น 2 ประเภท คือ
ฟังก์ชันแบ่งเป็น 2 ประเภท คือ
- Library Function
Format :
#include<file-name>
ตัวอย่าง
#include<stdio.h>
#include<conio.h >
etc.
#include<stdio.h>
#include<conio.h >
etc.
วิธีเรียกใช้งาน Library Function
-เรียกชื่อของฟังก์ชันที่ต้องการใช้งาน
-เอาค่าที่จะส่งไปทำงานในฟังก์ชัน ใส่ลงในวงเล็บตามหลังชื่อฟังก์ชันนั้น
-เรียกชื่อของฟังก์ชันที่ต้องการใช้งาน
-เอาค่าที่จะส่งไปทำงานในฟังก์ชัน ใส่ลงในวงเล็บตามหลังชื่อฟังก์ชันนั้น
ตัวอย่าง Library Function
strcpy () –อยู่ในแฟ้มข้อมูล string.h
ทำหน้าที่ : คัดลอกข้อมูลจาก string หนึ่งไปยัง string หนึ่ง
strcpy () –อยู่ในแฟ้มข้อมูล string.h
ทำหน้าที่ : คัดลอกข้อมูลจาก string หนึ่งไปยัง string หนึ่ง
Format :
strcpy (str1, str2);
6.User Defined Function
- คือ ฟังก์ชันที่ผู้เขียนโปรแกรมสามารถเขียนฟังค์ชันขึ้นใช้เอง โดยฟังก์ชันนี้อาจจะรวมอยู่กับโปรแกรมหลักเป็นแฟ้มเดียวกัน หรือยกฟังก์ชันเหล่านี้ไว้คนละแฟ้มข้อมูลก็ได้
- การสร้างฟังก์ชัน ประกอบด้วย
- Function Definition
- Function Prototype
- Invocation
- Function Definition หรือนิยามฟังก์ชัน คือ รายละเอียดในการทำงานของฟังก์ชัน
Format :
Format :
data-type function-name(type argument )
{
declaration;
statement;
return(value);
}
{
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);
}
ซึ่งหากภายในฟังก์ชันมีการเปลี่ยนแปลงค่าของ argument ที่ส่งไป ก็จะมีผลทำให้ค่าของ argument นั้นใน
โปรแกรมที่เรียกใช้เปลี่ยนไปด้วย
ตัวอย่าง :
void swap(int * num1, int * num2) {
int tmp;
tmp = *num1;
*num1 =* num2;
*num2 = tmp;
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น