เป็นเครื่องมือที่ช่วยในการออกแบบโปรแกรม โดยใช้ข้อความที่เป็นภาษาพูดในการอธิบายทำงาน
ของโปรแกรมที่เป็นลำ ดับขั้นตอน จะข้ามมาไม่ได้นอกจากจะต้องเขียนสั่งได้ต่างหาก
เพื่อให้เห็นภาพของอัลกอริทึมจากตัวอย่างของอัลกอริทึมง่าย ๆที่พบเห็นในชีวิตประจำวันได้แก่
อัลกอริทึมการสระผม จะต้องเริ่มจากการทำ ผมให้เปียกเมื่อเปียกแล้วจึงใส่แชมพูสระผมลงบนศรีษะ
แล้วขยี้ให้มีฟองเกิดขึ้น หลังจากนั้นก็ล้างออกด้วยนํ้า แล้วเริ่มทำ ใหม่อีกครั้ง เป็นต้น
ของโปรแกรมที่เป็นลำ ดับขั้นตอน จะข้ามมาไม่ได้นอกจากจะต้องเขียนสั่งได้ต่างหาก
เพื่อให้เห็นภาพของอัลกอริทึมจากตัวอย่างของอัลกอริทึมง่าย ๆที่พบเห็นในชีวิตประจำวันได้แก่
อัลกอริทึมการสระผม จะต้องเริ่มจากการทำ ผมให้เปียกเมื่อเปียกแล้วจึงใส่แชมพูสระผมลงบนศรีษะ
แล้วขยี้ให้มีฟองเกิดขึ้น หลังจากนั้นก็ล้างออกด้วยนํ้า แล้วเริ่มทำ ใหม่อีกครั้ง เป็นต้น
การเขียนขั้นตอนวิธี เป็นการเขียนเพื่ออธิบายการทำ งาน มีลักษณะเป็นขั้น
เป็นตอน มีลำ ดับการทำ งานที่ชัดเจน เป็นคำ อธิบายเชิงบรรยาย
ตัวอย่าง การเขียนขั้นตอนวิธี
การลงทะเบียนล่วงหน้า
รับใบลงทะเบียนล่วงหน้าจาก อาจารย์ที่ปรึกษา และรับคำชี้แจง
หลังจากที่ได้ออกแบวิธีในการแก้ปัญหาซึ่งอยู่ในรูปแบบของรหัสลำลองหรือผังงานแล้ว
ขั้นตอน
กรอกรายละเอียดต่าง ๆ
อาจารย์ที่ปรึกษาลงลายมือชื่อ
ยื่นเอกสารลงทะเบียนที่ธนาคาร เพื่อชำ ระเงินยื่นเอกสารและใบเสร็จ ที่สำนักทะเบียน
รหัสเทียม หรือซูโดโค้ด (Pseudo Code)
รหัสเทียม หรือซูโดโค้ด (Pseudo Code)
คือ รหัสจำลองที่ใช้เป็นตัวแทนของอัลกอริทึม
โดยมีถ้อยคำหรือประโยคคำสั่งที่เขียนอยู่ในรูปแบบของภาษาอังกฤษที่ไม่ขึ้นกับภาษาคอมพิวเตอร์ใดภาษาหนึ่ง
หลักการเขียนซูโดโค้ด ถ้อยคำที่ใช้เขียน ใช้ภาษาอังกฤษที่เข้าใจง่าย
หลักการเขียนซูโดโค้ด ถ้อยคำที่ใช้เขียน ใช้ภาษาอังกฤษที่เข้าใจง่าย
ในหนึ่งบรรทัด ให้มีเพียงหนึ่งประโยคคำสั่ง
ใช้ย่อหน้าให้เป็นประโยชน์ ในการแสดงการควบคุมอย่างเป็นสัดส่วน
แต่ละประโยคคำสั่งให้เขียนจากบนลงล่าง และมีทางออกทางเดียว
กลุ่มของประโยคคำสั่งอาจรวมเป็นหมวดหมู่แล้วเรียกใช้เป็นโมดูล
จากผังงานระบบ โดยดึงเอาจุดที่เกี่ยวข้องกับคอมพิวเตอร์มา
วิเคราะห์ว่าจะใช้ทำงานส่วนใดเพื่อที่จะให้ได้มาซึ่งผลลัพธ์ที่ต้องการ
ผังงาน (Flowchart) คือ การแสดงขั้นตอนวิธีการที่ใช้สัญลักษณ์ที่เข้าใจได้ง่าย แต่ให้รายละเอียดได้น้อย
ขั้นตอนการพัฒนาโปรแกรมผังงาน (Flowchart) คือ การแสดงขั้นตอนวิธีการที่ใช้สัญลักษณ์ที่เข้าใจได้ง่าย แต่ให้รายละเอียดได้น้อย
ประเภทของผังงาน
ผังงานทางคอมพิวเตอร์มี
2 ประเภทคือ ผังงานระบบ(System Flowchart) และผังงานโปรแกรม
(Program Flowchart)
ผังงานระบบ(System Flowchart)
ผังงานระบบจะเป็นการแสดงให้เราเห็นว่า ในระบบหนึ่ง ๆ นั้นมีขั้นตอนในการทำงานอย่างไร ซึ่ง
จะมองเห็นในลักษณะภาพกว้าง ๆ ของระบบ แต่จะไม่เจาะลึกลงไปว่าในระบบว่าในแต่ละงานนั้นมีการ
ทำงานอย่างไร คือ จะให้เห็นว่าจุดเริ่มต้นของงานเริ่มจากส่วนใด เป็นข้อมูลแบบใด มีการประมวลผล
อย่างไร และจะได้ผลลัพธ์เป็นอย่างไรและเก็บอยู่ที่ใด
ผังงานโปรแกรม(Program Flowchart)
ผังงานโปรแกรม หรือ เรียกสั้น ๆ ว่า ผังงาน จะเป็นผังงานที่แสดงให้เห็นถึงลำดับขั้นตอนในการ
ทำงานของโปรแกรม ตั้งแต่การรับข้อมูล การประมวลผล ตลอดจนผลลัพธ์ที่ได้ จะทำให้เขียนโปรแกรมได้
ต่อไปคือการพัฒนาโปรแกรมตามผังงานดังกล่าว
ซึ่งถ้านักเขียนโปรแกรมมีความรู้ความชำนาญในการ
เขียนโปรแกรมภาษาหนึ่งภาษาใดอยู่แล้ว จะสามารถทำได้โดยง่าย
อย่างไรก็ตามนักเขียนโปรแกรมก็ยังต้อง
ทำการตรวจสอบว่าโปรแกรมที่ได้พัฒนาขึ้น ทำงานได้ถูกต้อง และให้ผลลัพธ์ที่ไม่ผิดพลาดสำหรับทุกกรณี
จึงจะสามารถนำโปรแกรมดังกล่าวไปใช้งานได้ นอกจากนี้นักเขียนโปรแกรมยังควรที่จะจัดทำเอกสาร ประกอบการ
พัฒนาโปรแกรม ซึ่งเป็นเครื่องมือให้ผู้ที่จะมาพัฒนาโปรแกรมต่อไปในอนาคต ทำความเข้าใจกับโปรแกรม
ที่จัดทำขึ้นได้สะดวกและรวดเร็ว รวมถึงให้ผู้ใช้โปรแกรมเข้าใจวิธีการใช้งานโปรแกรมอย่างรวดเร็ว
ทำการตรวจสอบว่าโปรแกรมที่ได้พัฒนาขึ้น ทำงานได้ถูกต้อง และให้ผลลัพธ์ที่ไม่ผิดพลาดสำหรับทุกกรณี
จึงจะสามารถนำโปรแกรมดังกล่าวไปใช้งานได้ นอกจากนี้นักเขียนโปรแกรมยังควรที่จะจัดทำเอกสาร ประกอบการ
พัฒนาโปรแกรม ซึ่งเป็นเครื่องมือให้ผู้ที่จะมาพัฒนาโปรแกรมต่อไปในอนาคต ทำความเข้าใจกับโปรแกรม
ที่จัดทำขึ้นได้สะดวกและรวดเร็ว รวมถึงให้ผู้ใช้โปรแกรมเข้าใจวิธีการใช้งานโปรแกรมอย่างรวดเร็ว
ประวัติภาษา C
ภาษาซีเป็นภาษาระดับสูง( High-Level-Language) และภาษาโปรแกรมที่โปรแกรมเมอร์นิยมใช้กันมาก เนื่องจากเป็นภาษาที่มีความเร็วในการทำงานสูงใกล้เคียงกับภาษาเครื่อง มีโครงสร้างที่ชัดเจน เข้าใจง่าย สามารถเขียนโปรแกรมเพื่อติดต่อกับฮาร์ดแวร์ของเครื่องคอมพิวเตอร์ได้อย่างดี ภาษาซีเกิดขึ้นในปี ค . ศ .1972 ผู้คิดค้นคือนายเดนนีส ริทชี (Dennis Ritchi) การศึกษาภาษาซีถือว่าเป็นพื้นฐานในการศึกษาภาษาใหม่ ๆ ได้
โครงสร้างของโปรแกรมภาษาซีแบ่งออกเป็น 3 ส่วน
ส่วนหัวของโปรแกรม
ส่วนหัวของโปรแกรมนี้เรียกว่า Preprocessing Directive ใช้ระบุเพื่อบอกให้คอมไพเลอร์กระทำการใด ๆ ก่อนการแปลผลโปรแกรมในที่นี่คำสั่ง #include <stdio.h> ใช้บอกกับคอมไพเลอร์ให้นำเฮดเดอร์ไฟล์ที่ระบุคือ stdio.h เข้าร่วมในการแปลโปรแกรมด้วย โดยการกำหนด preprocessing directives นี้จะต้องขึ้นต้นด้วยเครื่องหมาย # เสมอ
ส่วนของฟังก์ชั่นหลัก
ฟังก์ชั่นหลักของภาษาซี คือ ฟังก์ชั่น main( ) ซึ่งโปรแกรมภาษาซีทุกโปรแกรมจะต้องมีฟังก์ชั่นนี้อยู่ในโปรแกรมเสมอ จะเห็นได้จากชื่อฟังก์ชั่นคือ main แปลว่า “ หลัก ” ดังนั้น การเขียนโปรแกรมภาษซีจึงขาดฟังก์ชั่นนี้ไปไม่ได้ โดยขอบเขตของฟังก์ชั่นจะถูกกำหนดด้วยเครื่องหมาย { และ } กล่าวคือ การทำงานของฟังก์ชั่นจะเริ่มต้นที่เครื่องหมาย { และจะสิ้นสุดที่เครื่องหมาย } ฟังก์ชั่น main( ) สามารถเขียนในรูปแบบของ void main(void) ก็ได้มีความหมายเหมือนกัน คือ หมายความว่า ฟังก์ชั่น main() จะไม่มีอาร์กิวเมนต์ (argument) คือไม่มีการรับค่าใด ๆ เข้ามาประมวลผลภายในฟังก์ชั่น และจะไม่มีการคืนค่าใด ๆ กลับออกไปจากฟังก์ชั่นด้วย
ส่วนรายละเอียดของโปรแกรม
ส่วนรายละเอียดของโปรแกรม
เป็นส่วนของการเขียนคำสั่ง เพื่อให้โปรแกรมทำงานตามที่ได้ออกแบบไว้
ข้อมูลใน C แบ่งชนิดข้อมูลออกเป็น 2 ประเภท คือ
1. Simple data type เป็นชนิดข้อมูลที่ใช้แสดงค่าของสิ่งใดสิ่งหนึ่งเพียงรายการเดียว เช่น
ค่าความสูง นํ้าหนัก จํานวนนักเรียน อุณหภูมิ ระดับคะแนน เป็นต้น
2. Structure เป็นข้อมูลชนิดใช้แสดงค่าของสิ่งใดสิ่งหนึ่งหลายรายการ เช่น ความสูงของนัก
เรียนใน ชั้น ม. 6, รายชื่อนักเรียนใน 1 กลุ่ม ต้องกําหนดเป็นข้อมูล
ชนิดโครงสร้างแบบ อาร์เรย์ (array) แบบโครงสร้าง(structure) หรือแบบยูเนียน(union) เป็นต้น
ข้อมูล Simple data type รายละเอียดชนิดของมูลและช่วงของข้อมูลประเภท Simple data type
คำสั่งควบคุมทิศทางการทำงานของโปรแกรม
จะใช้ในกรณีที่เราพบโจทย์ปัญหาในลักษณะที่มีทางเลือก หรือมีเงื่อนไขในการเลือกทำงาน
ยกตัวอย่างเช่น ถ้าสถานการณ์เป็น ก ให้ทำงานอย่างหนึ่ง ส่วนถ้าสถานการณ์เป็น ข
ให้ทำงานอีกอย่างหนึ่งแทน หรือถ้าตัวเลขที่รับเข้ามาเป็นจำนวนคี่
ให้คูณจำนวนนั้นด้วย 2 แต้าถ้าตัวเลขที่รับเข้ามาเป็นจำนวนคู่
ให้เปลี่ยนเป็นหารจำนวนนั้นด้วย 2 เป็นต้น
คำสั่ง if
คำสั่ง for สามารถเขียนให้อยู่ในรูปแบบได้ดังนี้
เมื่อเริ่มต้น
เป็นการกำหนดค่าตัวแปรเริ่มต้นที่ต้องการ ส่วนเงื่อนไขหากค่าลอจิกมีค่าเป็นจริง
ก็จะทำตามในโครงสร้างของการวนซ้ำคือ run คำสั่ง statement
แต่ถ้าเป็นเท็จก็จะออกจากโครงสร้างการวนซ้ำ ส่วนเปลี่ยนแปลง
จะทำการปรับค่าของตัวแปรที่ต้องการ ยกตัวอย่างเช่น
ใน code ข้างต้น ตัวแปร count
จะเริ่มต้นจากค่า 0 ซึ่งค่า 0 มีค่าน้อยกว่า 10 ก็จะทำคำสั่ง print ค่าของตัวแปร
count จากนั้นค่า count ก็จะเพิ่มค่าเป็น 1 เงื่อนไข count < 10 ก็ยังคงเป็นจริง
ก็จะทำการพิมพ์ ค่าของตัวแปร count วนซ้ำเช่นนี้ จนกระทั่ง count
มีค่าเพิ่มขึ้นจนเป็น 10 เงื่อนไขก็จะเป็นเท็จ และจบโครงสร้างของการวนซ้ำ
การเปลี่ยนแปลงค่าของตัวแปร อาจจะมีการเปลี่ยนแปลงมากกว่า 1 ค่า ยกตัวอย่างเช่น
นอกจากนี้เรายังสามารถใช้ตัวแปร เป็นการกำหนด
ค่าเริ่มต้น เงื่อนไข และ เปลี่ยนแปลงได้ ยกตัวอย่างเช่น
ตัวอย่างที่ 1 แสดงตัวอย่างโปรแกรมภาษาซีเบื้องต้น
ข้อมูลใน C แบ่งชนิดข้อมูลออกเป็น 2 ประเภท คือ
1. Simple data type เป็นชนิดข้อมูลที่ใช้แสดงค่าของสิ่งใดสิ่งหนึ่งเพียงรายการเดียว เช่น
ค่าความสูง นํ้าหนัก จํานวนนักเรียน อุณหภูมิ ระดับคะแนน เป็นต้น
2. Structure เป็นข้อมูลชนิดใช้แสดงค่าของสิ่งใดสิ่งหนึ่งหลายรายการ เช่น ความสูงของนัก
เรียนใน ชั้น ม. 6, รายชื่อนักเรียนใน 1 กลุ่ม ต้องกําหนดเป็นข้อมูล
ชนิดโครงสร้างแบบ อาร์เรย์ (array) แบบโครงสร้าง(structure) หรือแบบยูเนียน(union) เป็นต้น
ข้อมูล Simple data type รายละเอียดชนิดของมูลและช่วงของข้อมูลประเภท Simple data type
การเลือกทำงานตามเงื่อนไข (คำสั่ง IF ELSE SWITCH)
คำสั่งควบคุม (Control
Statement)
คำสั่งควบคุมเป็นคำสั่งที่สำคัญในการเขียนโปรแกรม คือ
ช่วยควบคุมทิศทางการทำงานของโปรแกรมให้เป็นไปตามที่ต้องการ โดยแบ่งออกเป็น 2 ประเภท
คือ คำสั่งเงื่อนไข (Condition Sratement) ได้แก่ if,if-else , switch-case
และคำสั่งทำซ้ำ (Iteration Statement) ได้แก่ for,while,do-while
คำสั่ง if
คำสั่ง if
จะใช้ในกรณีที่มีทางเลือกให้ทำงานอยู่เพียงทางเลือกเดียว
โดยถ้าตรวจสอบเงื่อนไขแล้วเป็นจริง จึงจะทำงานตามคำสั่ง
คำสั่ง for สามารถเขียนให้อยู่ในรูปแบบได้ดังนี้
for ( เริ่มต้น ; เงื่อนไข ;
เปลี่ยนแปลง ) statement; |
for ( count=0 ; count < 10 ;
count++) { printf(“count = %dn”,count); } |
การเปลี่ยนแปลงค่าของตัวแปร อาจจะมีการเปลี่ยนแปลงมากกว่า 1 ค่า ยกตัวอย่างเช่น
for ( count=0 ; count < 10 ; count += 2) //
ตัวแปร count มีค่าเปลี่ยนแปลงเพิ่มขึ้นครั้งละ 2 { (“count = %dn”,count); ;} for ( count=10 ; count > 5 ; count -= 2) // ตัวแปร count มีค่าเปลี่ยนแปลงลดลงครั้งละ 2 { printf(“count = %dn”,count); } |
start = 0; end = 20; step=3; for ( count=start ; count < end ; count += step) { printf(“count = %dn”,count); } |
Code ตัวอย่างโปรแกรม และโปรแกรม
ตัวอย่างที่ 1 แสดงตัวอย่างโปรแกรมภาษาซีเบื้องต้น
#include
<stdio.h>
void main( )
{
/* Display
message to standard output */
printf(“My
first program.”);
ตัวอย่างที่ 2
แสดงตัวอย่างโปรแกรมภาษาซีเบื้องต้น
#include
<stdio.h> void main( ) { /* Display message to standard output */
printf
(“My
first program.”); }
ตัวอย่างที่ 3
แสดงตัวอย่างโปรแกรมภาษาซีเบื้องต้น
#include
<stdio.h>
void
main
()
{
/*
Display message
to
standard
output
*/
printf
(
“My
first program.”
)
;
}
ตัวอย่างที่ 4 แสดงตัวอย่างการใช้ค่าของตัวแปรชนิด
char
#include
<stdio.h>
void
main( ) {
int
no;
char
ch;
ch
= ‘J’;
printf(“char
: %c, dec : %d, oct : %o, hex : %x”, ch, ch, ch, ch);
no
= ch;
printf(“\nno
: %d, ch : %c”, no, ch);
no
= 68;
ch
= no;
printf(“\nno
: %d, ch : %c”, no, ch);
}
ผลการทำงานของโปรแกรม
char
: J, dec : 74, oct : 112, hex : 4a
no
: 74, ch : J
no
: 68, ch : D
ตัวอย่างที่ 5
แสดงตัวอย่างการรับข้อมูลเพื่อนำมาแสดงผล
#include
<stdio.h>
void
main( ) {
char
name[100];
printf("What
is your name ?\n");
scanf("%s",
name);
printf("Very
glad to know you, ");
printf("%s.",name);
}
ผลลัพธ์ของการทำงาน
What
is your name ?
Willy
Very
glad to know you, Willy.
ตัวอย่างที่ 6 แสดงการกำหนดค่าจำนวนจริงให้กับตัวแปรจำนวนเต็ม
#include
<stdio.h>
void
main( ) {
int
x;
x
= 14.8328;
printf(“x
value is %d”, x);
}
ผลการทำงานของโปรแกรม
x
value is 14
ตัวอย่างที่ 7 โปรแกรมหาผลรวมของเลขจำนวนเต็ม
2
จำนวนที่รับข้อมูลจากผู้ใช้
#include
<stdio.h>
void
main( ) {
int
x, y, z;
printf(“Enter
X value : “);
scanf(“%d”,
&x);
printf(“Enter
Y value : “);
scanf(“%d”,
&y);
z
= x + y;
printf(“Summary
of X and Y is %d”, z);
}
ผลการทำงานของโปรแกรม
Enter
X value : 15
Enter
Y value : 20
Summary
of X and Y is 35
ตัวอย่างที่ 8
แสดงการใช้ตัวดำเนินการเพิ่มค่า
#include
<stdio.h>
void
main( ) {
int
y, count;
count
= 1;
y
= count++;
printf(“y
= %d, count = %d”, y, count);
count
= 1;
y
= ++count;
printf(“\ny
= %d, count = %d”, y, count);
}
ผลการทำงานของโปรแกรม
y
= 1, count = 2
y
= 2, count = 2
ตัวอย่างที่ 9
แสดงการใช้ตัวดำเนินการเปลี่ยนชนิดข้อมูล
#include
<stdio.h>
void
main( ) {
int
x;
x
= 2.5 * 2;
printf(“x
value is %d”, x);
x
= (int)2.5 * 2;
printf(“\nx
value is %d”, x);
x
= (int)(2.5 * 2);
printf(“\nx
value is %d”, x);
}
ผลการทำงานของโปรแกรม
x
value is 5
x
value is 4
x
value is 5
ตัวอย่างที่ 10 แสดงของการเปรียบเทียบด้วยตัวกาํเนินการความสัมพันธ์
#include
<stdio.h>
void
main( ) {
int
x, y
printf(“Enter
X : “);
scanf(“%d”,
&x);
printf(“Enter
Y : “);
scanf(“%d”,
&y);
printf(“X
> Y is %d”, x>y);
}
ผลการทำงานของโปรแกรม
Enter
X : 32
Enter
Y : 24
X
> Y is 1