C Programming

Download Report

Transcript C Programming

หลักการเขียนโปรแกรมคอมพิวเตอร์ เบือ้ งต้ น
(Programming Fundamental)
โดย
อ.วิริยะ ไตรปัญญาศาสตร์
ขั้นตอนการเรียนรู้ เพือ่ เป็ นนักเขียนโปรแกรม
(Programmer)
1.
2.
3.
4.
เขียนโปรแกรมเบื้องต้น 1 ภาษา (Programming Language)
โครงสร้างข้อมูล (Data Structures)
ระบบฐานข้อมูล (Database System)
การวิเคราะห์และออกแบบระบบ
(System Analysis and Design)
5. โครงงานนักศึกษา (Student Project ) เพื่อฝึ กปฏิบตั ิจริ ง
การออกแบบและพัฒนาโปรแกรม
(Program Design and Development)
การนาคอมพิวเตอร์ไปประยุกต์ใช้งานนั้นต้องอาศัย
การพัฒนาโปรแกรมหรื อชุดของคาสัง่ เป็ นอย่างมาก เพราะ
คอมพิวเตอร์จะประมวลผลไม่ได้หากปราศจากโปรแกรม
ความสาเร็ จของโปรแกรมเหล่านั้นขึ้นอยูก่ บั ทักษะของผูเ้ ขียน
โปรแกรมแต่ละคนเป็ นอย่างมาก
ก่อนที่จะลงมือเขียนโปรแกรมผูเ้ ขียนจะต้องทาความ
เข้าใจกับปั ญหาและวิธีการแก้ปัญหาให้เข้าใจอย่างละเอียดเพื่อ
ให้ได้ผลลัพธ์ที่ดีและมีประสิ ทธิภาพ สาหรับการแก้ปัญหาใดๆ
โดยการใช้คอมพิวเตอร์น้ นั มีข้ นั ตอนในการเขียนโปรแกรม
ดังนี้
ขั้นตอนในการพัฒนาโปรแกรม
1. การวิเคราะห์งาน (Job Analysis)
2. การเขียนผังงาน (Flowcharting)
3. การเขียนโปรแกรม (Programming)
4. การทดสอบโปรแกรม (Program Testing)
5. การทาเอกสารประกอบโปรแกรม (Documentation)
6. การบารุ งรักษาโปรแกรม (Program Maintenance)
การแก้ปัญหาแบบนี้เรี ยกว่า “วิธีการทางคอมพิวเตอร์”
(Computer Method)
การวิเคราะห์ งาน
เป็ นขั้นตอนที่จะต้องศึกษาว่างานที่จะสัง่ ให้คอมพิวเตอร์
ทานั้นมีรายละเอียดอย่างไร เริ่ มตั้งแต่การทาความเข้าใจกับงาน
แล้วกาหนดว่าปั ญหาของงานคืออะไร จะใช้คอมพิวเตอร์แก้ไข
ปั ญหาให้ได้ผลลัพธ์ตามที่ตอ้ งการได้อย่างไร และต้องการผล
ลัพธ์แบบใด ในการวิเคราะห์งานให้ได้ผลดีน้ นั มีแนวทางหลาย
แบบ ซึ่ งในที่น้ ีจะขอเสนอแนวทางการวิเคราะห์งานอย่างง่ายๆ
วิธีการหนึ่ง โดยมีข้ นั ตอนต่างๆ ดังนี้
1. หาสิ่ งทีโ่ จทย์ (งาน) ต้ องการ
คือ พยายามวิเคราะห์ให้ได้วา่ โจทย์หรื องานนั้นต้องการ
ให้คอมพิวเตอร์ช่วยทาอะไร ต้องการอะไรออกมาเป็ นผลลัพธ์
บ้าง ควรเขียนให้ชดั เจนและสมบูรณ์
2. วิเคราะห์ ลกั ษณะของรายงาน (Output)
คือ การศึกษาว่าควรจะกาหนดรู ปแบบของรายงาน
อย่างไร จึงจะทาให้ผอู ้ ่านรายงานสามารถเข้าใจได้ง่าย ขั้นตอน
นี(Report)
้ จะต้องทาการออกแบบ (Design) รู ปแบบของรายงาน
ให้ชดั เจน
Payroll Report
Date 1/11/2010
ID Employee-name Salary Tax Net-Pay
------------------------------------------------xxx xxxxxxxxxxxxxxxxxxx xx,xxx x,xxx xx,xxx
xxx xxxxxxxxxxxxxxxxxxx xx,xxx x,xxx xx,xxx
.
.
------------------------------------------------Total x,xxx,xxx xx,xxx xxx,xxx
3. วิเคราะห์ ลกั ษณะของข้ อมูล (Input)
คือ การวิเคราะห์ลกั ษณะของข้อมูลที่จะป้ อนเข้าสู่ ระบบ
คอมพิวเตอร์เพื่อใช้ในการประมวลผลให้ได้ผลลัพธ์ที่ตอ้ งการ
การพิจารณาข้อมูลต้องสอดคล้องกับวิธีการแก้ปัญหาและรู ป
แบบรายงานที่ตอ้ งการ
Payroll Report
Date 1/11/2010
ID Employee-name Salary Tax Net-Pay
-------------------------------------------------xxx xxxxxxxxxxxxxxxxxxx xx,xxx x,xxx xx,xxx
xxx xxxxxxxxxxxxxxxxxxx xx,xxx x,xxx xx,xxx
.
.
.
-------------------------------------------------Total x,xxx,xxx xx,xxx xxx,xxx
SALARY = RATE * HOURS
Input Input
4. สั ญลักษณ์ หรือตัวแปร (Variables)
คือ การกาหนดสัญลักษณ์หรื อชื่อตัวแปรที่ใช้ในการเก็บ
ค่าข้อมูลต่างๆ ในหน่วยความจา (Memory) ที่ใช้ในโปรแกรม
การตั้งชื่อตัวแปรควรให้มีความหมายสอดคล้องกับงานที่กาลัง
ทาอยู่ เช่น
SALARY TAX
NET-PAY
ID
NAME
STUDENT-NAME
5. วิธีการในการแก้ ปัญหา (Algorithm)
คือ การวางแผนงานและกาหนดลาดับขั้นตอนของวิธีการ
ในการเขียนโปรแกรม (คาสัง่ ) เพื่อแก้ปัญหานั้นๆ
การเขียน Algorithm แสดงลาดับขั้นตอนการแก้ปัญหาสามารถ
เขียนได้ใน 2
ลักษณะ คือ
1. Pseudo code (รหัสเทียม)
ตัวอย่างเช่น
Open the files
Read a COMMISSION record
Do until end of file
Compute commission
Print a detail line
Read a COMMISSION record
ENDDO
Close the files
End of program
An algorithm for finding the binary
representation of a positive integer
2. Flowchart (ผังงาน)
process
Connector
Decision
Terminal
Display
Card
input/output
Offpage connector
Predefined Process
Flow line
Document
Manual input
การเขียนผังงาน
เป็ นการแสดงลาดับขั้นตอนการทางานของชุดคาสัง่ ใน
โปรแกรมโดยใช้คาอธิ บายและสัญลักษณ์ประกอบกันเพื่อให้ดู
ง่ายและไม่ยงุ่ ยากมาก
ผังงานแบ่งออกเป็ น 2
ประเภท คือ
1. ผังงานระบบ (System Flowchart)
2. ผังงานโปรแกรม (Program Flowchart)
EMPLOYEE
RECORD
PAYROLL
PROGRAM
PAYROLL
REPORT
System Flowchart of a Payroll program
Inventory
file
Inventory
transactions
Inventory
processing
Inventory
master
update
Inventory
update report
System flowchart of an Inventory processing
START
A,B
C = A*B
C
STOP
Program Flowchart
START
A,B
Yes
A >= B
A
No
B
STOP
Program Flowchart
การเขียนโปรแกรม
เป็ นขั้นตอนที่จะนาขั้นตอนต่างๆ ที่ได้แสดงไว้ในผังงาน
มาเขียนให้อยูใ่ นรู ปของคาสัง่ ในภาษาคอมพิวเตอร์ที่ถูกต้อง
โดยที่ผเู้ ขียนโปรแกรมจะต้องเลือกภาษาคอมพิวเตอร์ภาษาใด
ภาษาหนึ่งที่เหมาะสมกับงานที่กาลังทาอยู่ เช่น ASSEMBLY ,
FORTRAN , Visual BASIC , COBOL , RPG , Pascal , C ,
Ada เป็ นต้น
10
20
INTEGER A,B,C
READ(5,10) A , B
FORMAT(2I3)
C=A*B
WRITE(6,20)A , B, C
FORMAT(5X,’A = ‘,I5/5X,’B = ‘,I5/5X,’C = ‘,I5)
END
FORTRAN Program
#include <stdio.h>
main( )
{
int a , b , c;
a = 5;
b = 24;
c = a * b;
printf(“number c is %d\n”,c);
}
C Program
Program Variable;
var
a , b , c : Integer;
begin
a := 83;
b := 23;
c := a + b;
writeln(‘c = ‘,c);
end.
Pascal Program
The for loop structure and its
representation in Pascal, C++, C#,
and Java
JavaScript
<html>
<body>
<script type="text/javascript“>
var famname = new Array(6)
Famname[0] = “Jan Egil”
Famname[1] = “Tove”
Famname[2] = “Hege”
Famname[3] = “Stale”
Famname[4] = “Kai Jim”
Famname[5] = “Borge”
for (i=0; i<6; i++)
{
document.write(famname[i] + "<br>")
}
</script>
</body>
</html>
Program
Jan Egil
Tove
Hege
Stale
Kai Jim
Borge
Output
IDENTIFICATION DIVISION.
PROGRAM-ID. SequenceProgram.
AUTHOR. Michael Coughlan.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Num1 PIC 9 VALUE ZEROS.
01 Num2 PIC 9 VALUE ZEROS.
01 Result PIC 99 VALUE ZEROS.
PROCEDURE DIVISION.
CalculateResult.
ACCEPT Num1.
ACCEPT Num2.
MULTIPLY Num1 BY Num2 GIVING Result.
DISPLAY "Result is = ", Result.
STOP RUN.
COBOL Program
การทดสอบโปรแกรม
หลั
ง
จากที
เ
่
ขี
ย
น
โปรแกรมได้เรี ยบร้อยแล้วจะต้อง
ทาการทดสอบโปรแกรมที่เขียนขึ้นในทุกๆสาเหตุที่จะ
ทาให้โปรแกรมให้ผลลัพธ์ที่ผดิ พลาดหรื อไม่ได้ผล
ออกมาซึ่งข้อผิดพลาดที่เกิดขึ้นในโปรแกรมนั้นอาจ
แบ่งได้เป็ น 3 แบบดังนี้คือ
1. การให้รหัสผิดรู ปแบบภาษา (Syntax error)
2. ข้อผิดพลาดที่เกิดขึ้นในระหว่างการ
ปฏิบตั ิงานตามคาสัง่ (Run-time error or Execution
error)
Syntax Error ถูกตรวจพบขณะที่ทาการแปลภาษา (compile)
การทาเอกสารประกอบโปรแกรม
เอกสารประกอบโปรแกรม
มีความสาคัญกับงานการ
เขียนโปรแกรมมาก จะต้องเริ่ มทาพร้อมกับการเริ่ มต้น
เขียนโปรแกรมตั้งแต่ข้นั ตอนแรก มีผเู้ ข้าใจผิดกันมากที่วา่
การทาเอกสารประกอบโปรแกรมนั้นจะทาเมื่อการเขียน
โปรแกรมเสร็ จสิ้ นสมบูรณ์แล้ว การทาเช่นนั้นนับว่าเป็ นสิ่ ง
ไม่
ถ
ก
ู
ต้
อ
ง
เอกสารประกอบโปรแกรมเขี
ย
นได้
2
แบบ
คือ
1. เอกสารสาหรับผูใ้ ช้โปรแกรม (User Document)
2. เอกสารแสดงเทคนิคที่ใช้ในโปรแกรม
(Technical Document)
การบารุงรักษาโปรแกรม
การบารุ งรักษาโปรแกรม มีความหมายใน 2
รู ป
แบบ คือ
1. การปรับปรุ งแก้ไขโปรแกรมให้ถูกต้องหลัง
จากตรวจสอบแล้วพบว่ามีขอ้ ผิดพลาดเกิดขึ้น
2. ผูใ้ ช้โปรแกรมดัดแปลงโปรแกรมเพื่อใช้งาน
ที่มีลกั ษณะใกล้เคียง หรื อในกรณี ที่มีการเปลี่ยนแปลง
ระบบคอมพิวเตอร์ท้ งั ระบบ หรื อบางส่ วนของระบบ
Basic Structure of Flowchart
1. Sequence structure
PROCESS 1
PROCESS 2
PROCESS 3
2. Selection or Condition structure
YES
NO
Condition
PROCESS 1
PROCESS 2
3. Loop structure
- DO While
NO
Condition
YES
PROCESS 1
PROCESS 2
3. Loop structure
- DO Until
PROCESS 1
NO
YES
Condition
PROCESS 2
ใน 1 โปรแกรมจะประกอบด้วยส่ วนต่างๆดังนี้
Initial Value
Input
Process
Output
1. ให้เขียนผังงานเพื่อแสดงการหาค่ารากที่สองของ 2
โดย
การ
ใช้เครือ
่ งหมาย + - * /
2. ให้เขียนผังงานเพื่อแสดงการบวกเลขตั้งแต่ 1 - 99 คือ
1+2+3+4+5+6+…+99 = ?
3. ให้เขียนผังงานเพื่อแสดงการพิมพ์ตวั เลข 3
ตัว โดยเรี ยง
ลาดับจากน้อยไปหามาก เช่น
ป้ อนข้อมูล 5 , 2 , 3
ผลลัพธ์ที่แสดงออกมาเป็ น 2 , 3 , 5
4. ให้เขียนผังงานเพื่อแสดงการหาอายุคนว่าตั้งแต่เกิดจนถึง
ปั จจุบนั มีอายุกี่ปีกี่เดือนกี่วนั โดยกาหนด
1 ปี มี 12 เดือน
1 เดือน มี 30 วัน
5. ให้เขียนผังงานเพื่อป้ อนข้อมูลวันที่เดือนในปัจจุบนั แล้ว
คานวณว่าวันดังกล่าวเป็ นวันที่เท่าไรของปี
6. ให้เขียนผังงานแสดงตัวเลข Fibonacci number ที่มีค่า < 5000
ออกมาทุกค่า โดยค่าตัวเลข Fibonacci หาได้โดยกาหนดค่า 2
เทอมแรกและเทอมถัดไปให้เอา 2 เทอมที่อยูก่ ่อนหน้ามาบวก
กันเช่น 1,1,2,3,5,8,13,21,34,55,89,…..
7. ให้เขียนผังงานและโปรแกรมเพื่อคานวณหา ห.ร.ม. ของเลข
จานวนเต็ม 2 ตัว
เช่น ตัวเลข 24,40 ห.ร.ม. คือ 8
8. ให้เขียนผังงานและโปรแกรมเพื่อหาว่าตัวเลขตั้งแต่ 100 ถึง 999
มีตวั เลขใดบ้างที่เป็ นตัวเลขเฉพาะ (Prime number)
9. ให้เขียนผังงานและโปรแกรมเพื่อคานวณหาค่า n!
เช่น 5! จะได้ค่า = 1*2*3*4*5
= 120
สวัสดีครับ
ขอให้ทุกคนโชคดีในการกาหนดอนาคต
และไปให้ถึงเป้ าหมายที่ต้ งั ใจครับ
สนใจข้อมูลเพิม่ เติม
http://webstaff.kmutt.ac.th/~ivirsart/myhtml.html