7.1 โปรแกรมภาษาซี
ภาษาซี เป็นการเขียนโปรแกรมพื้นฐาน สามารถประยุกต์ใช้กับงานต่างๆได้มากมาย ระบบปฏิบัติการคอมพิวเตอร์ ทางคณิตศาสตร์ โปรแกรมทางไฟฟ้า อิเล็กทรอนิกส์ ไมโครคอนโทรลเลอร์ เช่น โปรแกรม MATLAB (The MathWorks - MATLAB and Simulink for Technical Computing) ซึ่งเวลาใช้สามารถพิมพ์ชุดคำสั่งภาษาซีเพิ่มเข้าไปในโปรแกรมคำนวณทางคณิตศาสตร์ ประมวลผลทางสัญญาณไฟฟ้า ทางไฟฟ้าสื่อสารก็ได้ ทำให้ประสิทธิภาพของงานที่ทำดียิ่งขึ้นครับ และยังมีโปรแกรมอื่นๆ ที่มีภาษาซีประยุกต์ใช้กันอีกมากมาย ไม่สามารถนำมากล่าวได้หมด ถึงแม้ว่าภาษาซีอาจจะดูเก่าไปสำหรับคนอื่น แต่ผมว่าควรศึกษาภาษาซีที่เป็นรากฐานของภาษาอื่นๆเสียก่อน เพราะภาษา C++ จาวา (Java) ฯลฯ และ ระบบลีนุกซ์ เป็นระบบที่ถูกพัฒนามาจากระบบยูนิกซ์ซึ่งก็เป็นที่รู้กันทั่วไปว่า ภาษาคู่บารมีของระบบปฏิบัติการตระกูลยูนิกซ์มีการพัฒนามาจากภาษาซีเช่นกัน
ภาษาซีเป็นภาษาที่บางคนเรียกว่าภาษาระดับกลาง คือไม่เป็นภาษาระดับต่ำแบบแอสเซมบลีหรือเป็นภาษาสูงแบบ เบสิค โคบอล ฟอร์แทรน หรือ ปาสคาล เนื่องจากคุณสามารถจะจัดการเกี่ยวกับเรื่องของพอยน์เตอร์ได้อย่างอิสระ และบางทีคุณก็สามารถควบคุมฮาร์ดแวร์ผ่านทาง ภาษาซี ได้ราวกับคุณเขียนมันด้วยภาษาแอสเซมบลี ด้วยข้อดีเหล่านี้เองทำให้โปรแกรมที่ถูกเขียนด้วยภาษาซีมีความเร็วในการปฏิบัติงานสูงกว่าภาษาทั่วๆไป แต่ก็ต้องแลกกับการเรียนรู้และการฝึกฝนอย่างหนัก
ประวัติภาษาซี
ภาษาซีเป็นภาษาที่ถือว่าเป็นทั้งภาษาระดับสูงและระดับต่ำ ถูกพัฒนาโดยเดนนิส ริดชี (Dennis Ritche) แห่งห้องทดลองเบลล์ (Bell Laboratories) ที่เมอร์รีฮิล มลรัฐนิวเจอร์ซี่ โดยเดนนิสได้ใช้หลักการของภาษา บีซีพีแอล (BCPL : Basic Combine Programming Language) ซึ่งพัฒนาขึ้นโดยเคน ทอมสัน (Ken Tomson) การออกแบบและพัฒนาภาษาซีของเดนนิส ริดชี มีจุดมุ่งหมายให้เป็นภาษาสำหรับใช้เขียนโปรแกรมปฏิบัติการระบบยูนิกซ์ และได้ตั้งชื่อว่า ซี (C) เพราะเห็นว่า ซี (C) เป็นตัวอักษรต่อจากบี (B) ของภาษา BCPL ภาษาซีถือว่าเป็นภาษาระดับสูงและภาษาระดับต่ำ ทั้งนี้เพราะ ภาษาซีมีวิธีใช้ข้อมูลและมีโครงสร้างการควบคุมการทำงานของโปรแกรมเป็นอย่างเดียวกับภาษาของโปรแกรมระดับสูงอื่นๆ จึงถือว่าเป็นภาษาระดับสูง ในด้านที่ถือว่าภาษาซีเป็นภาษาระดับต่ำ เพราะภาษาซีมีวิธีการเข้าถึงในระดับต่ำที่สุดของฮาร์ดแวร์ ความสามารถทั้งสองด้านของภาษานี้เป็นสิ่งที่เกื้อหนุนซึ่งกันและกัน ความสามารถระดับต่ำทำให้ภาษาซีสามารถใช้เฉพาะเครื่องได้ และความสามารถระดับสูง ทำให้ภาษาซีเป็นอิสระจากฮาร์ดแวร์ ภาษาซีสามารถสร้างรหัสภาษาเครื่องซึ่งตรงกับชนิดของข้อมูลนั้นได้เอง ทำให้โปรแกรมที่เขียนด้วยภาษาซีที่เขียนบนเครื่องหนึ่ง สามารถนำไปใช้กับอีกเครื่องหนึ่งได้ ประกอบกับการใช้พอยน์เตอร์ในภาษาซี นับได้ว่าเป็นตัวอย่างที่ดีของการเป็นอิสระจากฮาร์ดแวร์
วิวัฒนาการของภาษาซี
- ค.ศ. 1970 มีการพัฒนาภาษา B โดย Ken Thompson ซึ่งทำงานบนเครื่อง DEC PDP-7 ซึ่ง ทำงานบนเครื่องไมโครคอมพิวเตอร์ไม่ได้ และยังมีข้อจำกัดในการใช้งานอยู่ (ภาษา B สืบทอดมาจาก ภาษา BCPL ซึ่งเขียนโดย Marth Richards)
- ค.ศ. 1972 Dennis M. Ritchie และ Ken Thompson ได้สร้างภาษา C เพื่อเพิ่มประสิทธิภาพ ภาษา B ให้ดียิ่งขึ้น ในระยะแรกภาษา C ไม่เป็นที่นิยมแก่นักโปรแกรมเมอร์โดยทั่วไปนัก
- ค.ศ. 1978 Brian W. Kernighan และ Dennis M. Ritchie ได้เขียนหนังสือเล่มหนึ่งชื่อว่า The C Programming Language และหนังสือเล่มนี้ทำให้บุคคลทั่วไปรู้จักและนิยมใช้ภาษา C ในการเขียน โปรแกรมมากขึ้น
- แต่เดิมภาษา C ใช้ Run บนเครื่องคอมพิวเตอร์ 8 bit ภายใต้ระบบปฏิบัติการ CP/M ของ IBM PC ซึ่งในช่วงปี ค. ศ. 1981 เป็นช่วงของการพัฒนาเครื่องไมโครคอมพิวเตอร์ ภาษา C จึงมี บทบาทสำคัญในการนำมาใช้บนเครื่อง PC ตั้งแต่นั้นเป็นต้นมา และมีการพัฒนาต่อมาอีกหลาย ๆ ค่าย ดังนั้นเพื่อกำหนดทิศทางการใช้ภาษา C ให้เป็นไปแนวทางเดียวกัน ANSI (American National Standard Institute) ได้กำหนดข้อตกลงที่เรียกว่า 3J11 เพื่อสร้างภาษา C มาตรฐานขึ้นมา เรียนว่า ANSI C
- ค.ศ. 1983 Bjarne Stroustrup แห่งห้องปฏิบัติการเบล (Bell Laboratories) ได้พัฒนาภาษา C++ ขึ้นรายละเอียดและความสามารถของ C++ มีส่วนขยายเพิ่มจาก C ที่สำคัญ ๆ ได้แก่ แนวความคิดของการเขียนโปรแกรมแบบกำหนดวัตถุเป้าหมายหรือแบบ OOP (Object Oriented Programming) ซึ่งเป็นแนวการเขียนโปรแกรมที่เหมาะกับการพัฒนาโปรแกรมขนาดใหญ่ที่มีความสลับซับซ้อนมาก มีข้อมูลที่ใช้ในโปรแกรมจำนวนมาก จึงนิยมใช้เทคนิคของการเขียนโปรแกรมแบบ OOP ในการพัฒนาโปรแกรมขนาดใหญ่ในปัจจุบันนี้
รูปแบบของการเขียนโปรแกรมชนิดของข้อมูล ประกอบไปด้วย
1. character (char) ใช้ 1 byte บน Dos มีค่า -128 ถึง127 นิยมใช้เก็บตัวอักษร 1 ตัวอักษร
2. integer (int) ใช้ 2 byte มีค่า -32768 ถึง 32767 และยังมี long ซึ่งคล้าย integer แต่เก็บด้วย ช่วงตัวเลขที่ยาวกว่าจึงกินเนื้อที่ ถึง 4 byte
3. float ใช้ 2 byte ใช้เก็บตัวเลขทศนิยม และยังมี double ซึ่งคล้าย float แต่เก็บด้วยช่วงตัวเลขที่ยาวกว่าจึงกินเนื้อที่ถึง 4 byte
4. ในภาษา C จะไม่มีชนิดข้อมูลเป็น string แต่จะใช้สายของอักษร หรือ Array ของ Char แทนความจริงแล้ว ชนิดของข้อมูลยังสามารถจำแนกไปได้อีกมาก แต่ในที่นี้ขอแนะนำเพียงเท่านี้ก่อน ก็เพียงพอ
Derive Data Type - Array - recore [structure] ที่กล่าวมาข้างต้นว่าถ้าพบข้อความ เช่น "This is a book" ในการโปรแกรมทั้งข้อความนี้เราเรียกว่า string และเนื่องจากในภาษา C ไม่มีตัวแปร String ทำให้เราต้องใช้ Array มาจัดการ นั่นคือเมื่อ C มองเห็น string จะจอง พื้นที่ในหน่วยความจำเป็น Array ของ Character บางคนอาจจะสงสัยว่าการจองพื้นที่ในหน่วยความจำของ Array เป็นอย่างไร ทำไมต้องจอง ก็ขอบอกว่า เวลาที่เราประกาศตัวแปรชนิดใดก็ตาม C ก็จะทำการไปหาเนื้อที่ในหน่วยความจำ ขนาดเท่าๆ กับ ชนิดข้อมูลที่เรากำหนดเอาไว้ ซึ่ง ถ้าเราประกาศตัวแปร 2 ตัว ไม่จำเป็นว่าตัวแปรสองตัวนี้จะถูกจองตรงเนื้อที่ที่มันติดกัน แต่ ถ้าเราจองเนื้อที่เป็นแบบ array นั่นหมายความถึงว่า ทุกๆ สมาชิกที่เป็นสมาชิกของ array จะถูกจองเนื้อที่ติดๆกันไป ตามขนาดความยาวของ array นั้น นั่นเอง ถ้าใครยังไม่เข้าใจก็เดี๋ยวจะมีการพูดถึง array อีกในตอนหลังตอนนี้ มาดูก่อนว่า ถ้าเราจะเก็บ string ที่มีข้อความว่า TOUCHAKORN จะต้องเก็บอย่างไร
T
|
O
|
U
|
C
|
H
|
A
|
K
|
O
|
R
|
N
|
NULL Character
|
ในภาษา C หากต้องการใช้ตัวแปร จะต้องทำการประกาศตัวแปรไว้ที่ส่วนบนก่อนที่จะถึงบรรทัดที่เป็นประโยคคำสั่ง การประกาศตัวแปรจะเป็นการบอก compiler ว่าตัวแปรของเรานั้นเป็นตัวแปรชนิดใด
Datatype
|
Keyword
|
character
integer float double |
Char
int float double |
| Keyword list of variable ; |
| char chr1 , chr2 ; |
ทดลองสังเกตตัวอย่างต่อไปนี้
#include< stdio.h> /* my second program */
main()
{ int First , Second , Sum; /* variable declaration */
First = 10 ;
Second = 20 ;
Sum = First + Second ;
printf( " The sum of %d and %d is %d " , First , Second , Sum );
} ดูโปรแกรมแล้วพบว่านี่คือโปรแกรมที่จะทำการบวกเลข 2 จำนวนคือ 10 และ 20 โดย การเก็บค่า 10 เอาไว้ในตัวแปรชื่อ First และเก็บค่า 20 ไว้ในตัวแปร Second จากนั้นก็ทำการบวกทั้งสองค่าโดยเก็บผลลัพธ์ที่ได้ไว้ในตัวแปรที่ชื่อว่า Sum จากนั้นทำการ แสดงค่าของทั้ง 3 ตัวแปรออกมาทางจอภาพ
อธิบายโปรแกรมโดยละเอียด จะได้ว่า
- ที่บรรทัด int First , Second , Sum ; นั้นเราได้สั่งให้มีการประกาศตัวแปรชนิด integer 3 ตัวคือ First , Second และ Sum
- บรรทัดถัดมา คือ First = 10 ; เป็นการกำหนดค่า จำนวนเต็ม 10 ให้กับตัวแปรที่เป็นจำนวนเต็ม (integer) ส่วนนี้สำคัญคือ เรากำหนดตัวแปรเป็น integer นั่นก็คือ ตัวแปรชนิดนี้จะเก็บเฉพาะค่าที่เป็นจำนวนเต็มเท่านั้น หากเราใส่ค่า 10.2 ให้กับตัวแปร ตัวแปรนั้นก็ยังคงเก็บเลขจำนวนเต็มอยู่เสมอ
- บรรทัดถัดมา คือ Second = 20 ; ก็คือการกำหนดค่า 20 ให้กับตัวแปร Second
- บรรทัดถัดมา คือ Sum = First + Second ; คือการนำค่าของ 2 ตัวแปรมาบอกกันและเก็บไว้ที่ตัวแปร Sum
- บรรทัดต่อมาคือ printf( " The sum of %d and %d is %d " , First , Second , Sum ); จะอธิบายละเอียดในหัวข้อถัดไป
ฟังค์ชัน printf() มีรูปแบบดังนี้
printf ( " control string " , variable list );
|
ตัวกำหนดชนิดข้อมูล
|
ความหมาย
|
%c
%d %f %lf %s %% |
แทนตัวอักษร
แทนเลขจำนวนเต็ม แทนเลขทศนิยม ( float )แทนเลขทศนิยม (double)แทนสตริงก์ แทนเครื่องหมาย % |
printf( " The sum of %d and %d is %d " , First , Second , Sum );พบว่า เรามี ตัวกำหนดชนิดข้อมูลคือ %d ซึ่งแทนชนิดข้อมูลที่เราจะพิมพ์คือ integer ซึ่ง %d ตัวแรกจะใช้แทนค่าของ First ตัวที่สองจะใช้แทนค่าของ Second ตัวที่สามจะใช้แทนค่าของ Sumจากโปรแกรมข้างต้นผล run ที่ออกมาจะปรากฎดังนี้
The sum of 10 and 20 is 30นอกจากนี้เรายังพบว่าเรายังสามารถกำหนดลักษณะการพิมพ์ได้ดังต่อไปนี้
#include <stdio.h>
main()
{ int a;
float b ;
a = 50 ;
b = 10.583 ;
printf ( " a = %d \n " , a ) ;
printf ( " b = %f \n " , b ) ;
printf ( " a = %05d \n " , a );
printf ( " b = %10.4f \n " , b );
printf ( " b = % -10.4f \n " , b );
}
พบว่า ผล run ที่ได้คือ
a = 50
b = 10.583000 พบว่าแสดงทศนิยม 6 หลัก เป็นปกติ
a = 00050 พบว่า a มีความยาว 5 ตำแหน่ง นับจากซ้าย
b = ___10.5830 พบว่า เราสั่งให้ %10.4 คือ การสั่งให้มีความยาวทั้งหมด 10 ตำแหน่ง รวมด้วยการมีทศนิยม 4 ตำแหน่ง
b = 10.5830 คล้ายกับบรรทัดก่อนหน้าแต่เราใส่เครื่องหมาย - เพื่อให้มันพิมพ์ชิดซ้าย
Input command
คำสั่งในการ input ที่ใช้ง่ายๆก็คือ คำสั่ง
scanf(" ตัวกำหนดชนิดข้อมูล",&ตัวแปร);
ยกตัวอย่างเช่น ต้องการรับค่า จำนวนเต็ม มาใส่ไว้ในตัวแปรที่ชื่อ number จะสั่งดังนี้
int number;
scanf("%d",&number); สำคัญอย่าลืมเครื่องหมาย & และหากรับตัวแปร 2 ตัว โดย รับค่า จำนวนเต็มไว้ในตัวแปรชื่อ num1 และ รับค่า จำนวนจริง ไว้ในตัวแปร num2 ทำได้โดย
int num1,num2;
scanf("%d %f",&num1,&num2);หากต้องการรับข้อความ Touchakorn ซึ่งก็คือ 10 character ทำได้โดย
char name[10];
scanf("%c",name); สังเกตไหมครับว่าที่คำสั่ง scanf อันหลังนี้ตรงตัวแปร name ทำไมไม่มีเครื่องหมาย & ปรากฎอยู่ นั่นก็เป็นเพราะว่าเราได้ทำการกำหนดตัวแปร name ไว้เป็นตัวแปร array ชนิด character ดังนั้นการที่เราเรียกชื่อตัวแปรที่เป็น array นั่นก็หมายความว่าเราได้ทำการเรียก"ที่อยู่" ของตัวแปรกลุ่มนั้นไว้แล้วจึงไม่จำเป็นต้องใส่เครื่องหมาย & แต่อย่างใด นั่นเป็นการแสดงให้เห็นว่า เมื่อเราเรียกคำสั่ง scanf ตัวคำสั่งนี้จะทำการยัดค่าที่ผู้ใช้ ใส่ให้เก็บไว้ในตัวแปรตามที่อยู่ที่ให้ไว้นั่นคือ
scanf("%d",&number);
ก็เป็นการยัดค่าตัวแปร integer (รู้ได้จาก %d) ไว้ในที่อยู่(&)ของตัวแปรที่ชื่อ number และเรายังรู้อีกว่าโดยปกติการกำหนดค่าให้กับตัวแปรที่เป็น array นั้นจำเป็นจะต้องมีการใส่ index ให้กับ ตัวแปรนั้นเสมอว่า จะเก็บไว้ใน array ช่องใด เช่นสมมติ ตัวแปรชนิด integer ชื่อ num[7] คือตัวแปรที่ชื่อ num ที่มีช่องสมาชิกย่อยทั้งหมด7ช่องด้วยกันโดย ตัวแปร num จะมีโครงสร้างดังนี้
num[0]
|
num[1]
|
num[2]
|
num[3]
|
num[4]
|
num[5]
|
num[6]
|
คำสั่ง for loop
for(ตัวนับ= i;เงื่อนไขที่จะให้ยังทำงานอยู่ใน loop; การเพิ่มหรือการลดตัวนับ)
{
statement ;
} ก่อนอื่นต้องขออธิบายก่อนว่านี่คือโครงสร้างของ for loop โดยขอให้สังเกตบรรทัดแรกตรงที่มีคำสั่ง for แล้วให้ดูในวงเล็บ ปรากฎว่าตามรูปแบบมาตรฐานนั้น ในส่วนของวงเล็บหลังคำว่า for จะประกอบไปด้วย 3 ส่วน ส่วนแรกก็คือ การกำหนดค่าเริ่มต้นให้กับตัวนับ อาจจะงงว่าตัวนับที่พูดถึงคืออะไร ใน for loop นั้น จำเป็นจะต้องมีตัวนับอยู่ด้วยเสมอ ซึ่งตัวนับนี้ จะเป็นตัวบอกเราว่า loop ของเรานั้นทำการวนซ้ำมาเป็นรอบที่เท่าไรแล้ว และในส่วนแรกนี้เราจำเป็นจะต้องมีการกำหนด ค่าเริ่มต้นให้กับตัวนับก่อน ในส่วนที่สอง เงื่อนไขที่จะให้ยังทำงานอยู่ใน loop นี้ โดยส่วนใหญ่จะเป็นการกำหนดว่าเมื่อตัวนับมีการวนซ้ำ ถึงจำนวนรอบเท่านั้นเท่านี้ก็จะให้หลุดจาก loop ในส่วนที่สาม การเพิ่มหรือการลดตัวนับ ตรงนี้สำคัญ ซึ่งจะเป็นส่วนที่ทำให้ ตัวนับของเรามีการเพิ่มค่าหรือลดค่า ในแต่ละรอบของการวนซ้ำเช่นอาจเพิ่มทีละหนึ่ง หรือ เพิ่มทีละ3 เป็นต้นหรืออาจจะลดทีละ 1 หรือลดทีละ 3 ก็แล้วแต่โปรแกรมจะกำหนด หลังจากวงเล็บที่อยู่หลัง for ก็จะมีเครื่องหมาย ปีกกาเพื่อให้เข้าสู่ส่วนของคำสั่ง ที่จะต้องทำหลังจากบรรทัด for ก็มาถึง statement ซึ่งจะเป็นส่วนที่ให้เราเขียนคำสั่งว่า ในแต่ละรอบนั้น เราจะให้โปรแกรมทำงานอะไร ซึ่งก็อาจมีได้หลายคำสั่ง บรรทัดสุดท้ายก็คือ ปีกกาปิดเพื่อจบโครงสร้าง for loop
ตัวอย่าง การบวกเลขตั้งแต่ 1 ถึง 100 #include<stdio.h>
main()
{
int i,ans;
ans=0;
for(i=1;i<=100;i++)
{ ans=ans+i;
}
printf("answer is %d",ans);
} ในที่นี้เราทำการกำหนดให้ตัวแปร i เป็นตัวแปรนับ ส่วน ans เป็นตัวแปรที่ใช้เก็บค่าคำตอบ ในบรรทัด for นั้นไม่มีปัญหาอะไรยกเว้น ที่เราเจอ i++ นั่นก็หมายถึง i+1 นั่นเอง คือ ใน loop นี้เราจะทำการเพิ่มตัวนับ i ไปทีละ 1
สมมติว่าหากเราต้องการจะแสดงเฉพาะเลขคี่ที่อยู่ระหว่าง 1 ถึง 100 เราจะทำ}
printf("answer is %d",ans);
} ในที่นี้เราทำการกำหนดให้ตัวแปร i เป็นตัวแปรนับ ส่วน ans เป็นตัวแปรที่ใช้เก็บค่าคำตอบ ในบรรทัด for นั้นไม่มีปัญหาอะไรยกเว้น ที่เราเจอ i++ นั่นก็หมายถึง i+1 นั่นเอง คือ ใน loop นี้เราจะทำการเพิ่มตัวนับ i ไปทีละ 1
ตัวอย่าง การแสดงเฉพาะเลขคี่ที่อยู่ในช่วงตั้งแต่ 1 ถึง 100
#include<stdio.h>
main()
{ int i ;
for(i=1;i<=100;i=i+2)
{ printf("Odd number is %d\n",i);
}
} นั่นคือเราก็วน loop เหมือนเดิมเพียงแต่ในแต่ละรอบนั้นเราทำการเพิ่มค่า i ไปทีละ 2 ซึ่งเดิมค่า i มีค่าเท่ากับ 1 พอ compiler มา check ว่า 1<=100 นั้นจริงไหม ปรากฎว่าจริงก็ให้ทำงานใน loop ต่อ โดยมีการเพิ่มค่า i=i+2 นั่นหมายความว่าตอนนี้ i มีค่าเป็น 1+2 ก็คือ 3 นั่นเอง ในรอบต่อมาเราก็แสดงค่า 3 ทำเช่นนี้ไปเรื่อยๆ เราก็จะได้เฉพาะเลขคี่ 1,3,5,7,...,99
สมมติว่าหากเราต้องการจะแสดงเฉพาะเลขคู่ที่อยู่ระหว่าง 1 ถึง 100 เราจะทำอย่างไร
ตัวอย่าง การแสดงเฉพาะเลขคู่ที่อยู่ในช่วงตั้งแต่ 1 ถึง 100
#include<stdio.h>
main()
{ int i ;
for(i=2;i<=100;i=i+2)
{ printf("Odd number is %d\n",i);
}
} เช่นเคยครับไม่ค่อยแตกต่างอะไรกับการ แสดงเฉพาะเลขคี่ แต่จะต่างกันตรงการเริ่มต้นค่าให้กับตัวนับครับ นั่นคือเราทำการเริ่มต้นค่า ตัวนับด้วย 2 นั่นคือตัวแปร i จะมีค่าเริ่มต้นเป็น 2 ในการวน loop รอบแรกครับจากนั้นก็เหมือนเดิมในแต่ละรอบ ค่า i จะถูกเพิ่มทีละ 2 ดังนั้นสุดท้ายเราก็จะได้ 2,4,6,8,10,...,100 ไปตามระเบียบและหากเราต้องการจะแสดงเฉพาะเลขคู่นี่ แต่ต้องการให้แสดงถอยหลัง คือ แสดง 100,98,96,94,...,8,6,4,2 จะทำได้อย่างไร
ตัวอย่าง การแสดงเฉพาะเลขคู่(ถอยหลัง)ที่อยู่ในช่วงตั้งแต่ 1 ถึง 100
#include<stdio.h>
main()
{ int i ;
for(i=100;i>=1;i=i-2)
{ printf("Odd number is %d\n",i);
}
} นั่นคือในบรรทัด for เรากำหนดค่าเริ่มต้นเป็น 100 ที่สำคัญคือเงื่อนไขเดิมเรากำหนดเป็น น้อยกว่าเท่ากับ แต่ในที่นี้เรากำหนดเป็นว่า i มากกว่าเท่า 1 loop จึงจะยังทำงานต่อ และที่สำคัญเช่นเดียวกันคือเราทำการลดค่า i ไปทีละ 2 ก็จะได้ ค่า100,98,96,...,4,2
คำสั่ง while loop
มีอีกหนึ่งโครงสร้างที่มีลักษณะคล้ายกับ for loop ที่อธิบายมาข้างต้น นั่นก็คือ while loop ก่อนอื่นต้องขอบอกถึง ความแตกต่าง ที่เห็นได้ชัดเจนระหว่าง for loop กับ while loop เสียก่อน นั่นคือ เราจะเห็นได้ว่า for loop นั้น เราจะมีการบอกถึง ค่าเริ่มต้น ค่าสิ้นสุด ของตัววิ่ง(จากข้างต้นก็คือตัว i นั่นเอง) แต่ while loop นั้นจะบอกแค่เงื่อนไขการจบเท่านั้น ซึ่งถ้าใน for loop นั้น เงื่อนไขการจบก็คือ การที่ตัววิ่ง วิ่งถึงค่าสิ้นสุด ก็จะหลุดออกจาก loop for แต่ while loop ก็มีลักษณะคล้ายกันแต่อาจจะไม่เหมือนกัน สักทีเดียว ลองมาดูกัน
while ( เงื่อนไขที่ทำให้ยังต้องเข้าไปใน loop )
{ statement ;
}เรามักจะแปลได้ว่า "ขณะที่(.....เงื่อนไข......ยังเป็นจริงอยู่) ก็เข้าไปทำคำสั่งหลังเครื่องหมาย { "
ต่อไปนี้จะขอสร้างตัวอย่างขยายข้อความข้างบนหน่อย โดยเราจะสั่งให้มีการบวกเลขตั้งแต่ 1-100 เหมือนตัวอย่างใน for loop นั่นแหละ
#include<stdio.h>
main()
{ int i , ans;
i=1; /* initial variable */
ans=0;
while ( i <= 100 )
{ ans = ans + i ;
i=i+1; /* increase variable */
}
printf("answer is %d",ans);
}
จากตัวอย่างนี้ สิ่งที่สำคัญที่สุด ก็คือ การกำหนดค่าเริ่มต้นให้กับตัวแปร i , ans อันนี้สำคัญมากเราจะต้องกำหนดไว้เสมอ หากเราไม่กำหนดไว้ตั้งแต่เริ่มต้น โปรแกรมจะไปหยิบค่าอะไรก็ไม่รู้จากใน memory มาเก็บไว้ในตัวแปร i และ ans ซึ่งจะทำให้โปรแกรมของเราผิดพลาดทันที ส่วนใน while loop นั้นอธิบายได้ง่ายๆ ว่า ขณะที่ i ยังน้อยกว่าหรือเท่ากับ 100 อยู่ ก็ให้ทำคำสั่งหลังเครื่องหมาย { นั่นก็คือ ans=ans+i และจุดที่สำคัญอีกจุดหนึ่ง ไม่แพ้การ กำหนดค่าเริ่มต้นให้กับตัวแปร นั่นก็คือ บรรทัด i=i+1 ซึ่งเป็นการบอกว่าให้เพิ่มค่า i ไปทีละ 1 ในทุกๆรอบ หากขาดบรรทัดนี้ไป loop ของเรา จะวิ่งไม่หยุดหรือที่เรียกกันว่า infinite loop นั่นเอง เพราะหากเราไม่เพิ่มค่า i แล้ว ค่า i ตลอดโปรแกรมก็จะยังคงเท่ากับ 1เหมือนที่เรากำหนดไว้ตอนเริ่มต้น ดังนั้นเมื่อ compiler มาตรวจดูเงื่อนไขของ while loop ก็พบว่า ยังเป็นจริงอยู่ นั่นก็คือ 1 ยังคงน้อยกว่าหรือเท่ากับ 100 อยู่วันยังค่ำ นั่นก็คือ loop นี้จะวิ่งไปเรื่อยๆ ไม่มีวันหยุดนั่นเอง
ภาษาซี มีลักษณะเด่น(ข้อดี) ดังนี้ { statement ;
}เรามักจะแปลได้ว่า "ขณะที่(.....เงื่อนไข......ยังเป็นจริงอยู่) ก็เข้าไปทำคำสั่งหลังเครื่องหมาย { "
ต่อไปนี้จะขอสร้างตัวอย่างขยายข้อความข้างบนหน่อย โดยเราจะสั่งให้มีการบวกเลขตั้งแต่ 1-100 เหมือนตัวอย่างใน for loop นั่นแหละ
#include<stdio.h>
main()
{ int i , ans;
i=1; /* initial variable */
ans=0;
while ( i <= 100 )
{ ans = ans + i ;
i=i+1; /* increase variable */
}
printf("answer is %d",ans);
}
จากตัวอย่างนี้ สิ่งที่สำคัญที่สุด ก็คือ การกำหนดค่าเริ่มต้นให้กับตัวแปร i , ans อันนี้สำคัญมากเราจะต้องกำหนดไว้เสมอ หากเราไม่กำหนดไว้ตั้งแต่เริ่มต้น โปรแกรมจะไปหยิบค่าอะไรก็ไม่รู้จากใน memory มาเก็บไว้ในตัวแปร i และ ans ซึ่งจะทำให้โปรแกรมของเราผิดพลาดทันที ส่วนใน while loop นั้นอธิบายได้ง่ายๆ ว่า ขณะที่ i ยังน้อยกว่าหรือเท่ากับ 100 อยู่ ก็ให้ทำคำสั่งหลังเครื่องหมาย { นั่นก็คือ ans=ans+i และจุดที่สำคัญอีกจุดหนึ่ง ไม่แพ้การ กำหนดค่าเริ่มต้นให้กับตัวแปร นั่นก็คือ บรรทัด i=i+1 ซึ่งเป็นการบอกว่าให้เพิ่มค่า i ไปทีละ 1 ในทุกๆรอบ หากขาดบรรทัดนี้ไป loop ของเรา จะวิ่งไม่หยุดหรือที่เรียกกันว่า infinite loop นั่นเอง เพราะหากเราไม่เพิ่มค่า i แล้ว ค่า i ตลอดโปรแกรมก็จะยังคงเท่ากับ 1เหมือนที่เรากำหนดไว้ตอนเริ่มต้น ดังนั้นเมื่อ compiler มาตรวจดูเงื่อนไขของ while loop ก็พบว่า ยังเป็นจริงอยู่ นั่นก็คือ 1 ยังคงน้อยกว่าหรือเท่ากับ 100 อยู่วันยังค่ำ นั่นก็คือ loop นี้จะวิ่งไปเรื่อยๆ ไม่มีวันหยุดนั่นเอง
- เป็นภาษาคอมพิวเตอร์ที่มีการพัฒนาขึ้นใช้งานเพื่อเป็นภาษามาตรฐานที่ไม่ขึ้นกับโปรแกรมจัดระบบงานและไม่ขึ้นกับฮาร์ดแวร์
- เป็นภาษาคอมพิวเตอร์ที่อาศัยหลักการที่เรียกว่า "โปรแกรมโครงสร้าง" จึงเป็นภาษาที่เหมาะกับการพัฒนาโปรแกรมระบบ
- เป็นคอมไพเลอร์ที่มีประสิทธิภาพสูง ให้รหัสออบเจ็กต์สั้น ทำงานได้รวดเร็ว เหมาะกับงานที่ต้องการ ความรวดเร็วเป็นสำคัญ
- มีความคล่องตัวคล้ายภาษาแอสแซมบลี ภาษาซีสามารถเขียนแทนภาษาแอสแซมบลีได้ดี ค้นหาที่ผิดหรือ แก้โปรแกรมได้ง่าย ภาษาซีจึงเป็นภาษาระดับสูงที่ทำงานเหมือนภาษาระดับต่ำ
- มีความคล่องตัวที่จะประยุกต์เข้ากับงานต่างๆ ได้เป็นอย่างดี การพัฒนาโปรแกรม เช่น เวิร์ดโพรเซสซิ่ง สเปรดชีต ดาตาเบส ฯลฯ มักใช้ภาษาซีเป็นภาษาสำหรับการพัฒนา
- เป็นภาษาที่มีอยู่บนเกือบทุกโปรแกรมจัดระบบงาน มีในเครื่องไมโครคอมพิวเตอร์ตั้งแต่ 8 บิต ไปจนถึง 32 บิต เครื่องมินิคอมพิวเตอร์ และเมนเฟรม
- เป็นภาษาที่รวมข้อดีเด่นในเรื่องการพัฒนา จนทำให้ป็นภาษาที่มีผู้สนใจมากมายที่จะเรียนรู้หลักการของภาษา และวิธีการเขียนโปรแกรม ตลอดจนการพัฒนางานบนภาษานี้
ข้อเสีย- เป็นภาษาที่เรียนรู้ยาก
- การตรวจสอบโปรแกรมทำได้ยาก
- ไม่เหมาะกับการเขียนโปรแกรมที่เกี่ยวข้องกับการออกรายงานที่มีรูปแบบซับซ้อนมากๆ
ตัวอย่างโปรแกรม
#include<stdio.h> /* This is my first program. */
main()
{ clrscr();
printf("Hello,world \n");
printf("Press any key to stop \n");
getch();
} /*end of main*/
จากตัวอย่างข้างต้นเราสามารถอธิบายได้ดังนี้
ให้สังเกต ณ บรรทัดแรกที่เขียนว่า #include<stdio.h> บรรทัดนี้กำลังจะบอกเราว่าให้เรานั้นไปเอาไฟล์ที่มีสกุล .h นั้นมาเป็นส่วนหนึ่งของโปรแกรมเรา ซึ่งส่วนนี้ในทุกโปรแกรมจะต้องมี ส่วนไฟล์ที่เราไปเอามานั้นคือ header file ที่มีชื่อว่า stdio.h ถ้าจะจำกันให้ง่ายนั้นมันย่อมาจาก standard Input Output คือเป็นไฟล์ที่ใช้จัดการกับการ รับค่า และ แสดงค่าของโปรแกรม จากโครงสร้างในส่วนต้นนี้คือก่อนที่จะถึงตรงส่วนของคำว่า main() เราจะเรียกส่วนนี้ว่า Preprocessor บรรทัดถัดมาเขียนว่า /*........*/ ในส่วนนี้เราเรียกว่าส่วนของการ comment คือให้เราเขียนข้อความอะไรก็ได้ลงไปซึ่ง อาจจะเป็นการอธิบายโปรแกรมเป็นต้น ในที่นี้เราเขียนว่า This is my first program คือเป็นการบอกว่านี่คือโปรแกรมแรกของฉัน
บรรทัดถัดมาเขียนว่า main() ข้อความนี้เขียนเพื่อบอกให้รู้ว่าหลังจากคำนี้จะมีเครื่องหมาย { และจะจบด้วยเครื่องหมาย } ข้อความหรือคำสั่งที่อยู่ระหว่างเครื่องหมาย { และ } ทั้งหมดนั้นเป็นคำสั่งที่ใช้ในส่วนของ main โปรแกรม
ในทุกโปรแกรมจะต้องมีส่วนของ main ปรากฎอยู่เพราะเมื่อเราสั่ง compile โปรแกรม ตัว compile จะทำการวิ่งไปหา main ทุกครั้งเสมอC a collection of functions one of which must be main() function คำกล่าวนี้บอกเราว่า การโปรแกรม C ประกอบไปด้วย function ซึ่ง function หนึ่งที่จะต้องมี ก็คือ ฟังก์ชัน main() ตอนนี้เราได้เข้ามาสู่ main() เรียบร้อยแล้ว บรรทัดแรกใน main function คือ clrscr(); สังเกตได้ว่าข้อความนี้จบลงด้วย เครื่องหมาย semicolon แสดงว่าข้อความนี้เป็นคำสั่ง และขอบอกไว้เลยว่าคำสั่ง clrscr(); นี้คือ คำสั่ง clear screen นั่นเองคือ เมื่อ โปรแกรมได้ run มาถึงส่วนนี้และได้ทำคำสั่งนี้หน้าจอที่ปรากฎจะถูก clear เพื่อรอทำคำสั่งต่อไป
คำสั่งถัดมาคือ print("....ข้อความ..... \n"); ความจริงแล้วคำสั่ง printf(อ่านว่า พริ้นซ์-เอฟ) มีอยู่หลายรูปแบบแต่เดี๋ยวเราค่อยๆดู กันไปก่อนในแบบแรกนี้คือว่า คำสั่งนี้จะทำการพิ่มพ์ ข้อความที่ปรากฎอยู่ระหว่างเครื่องหมาย " และ " ออกมาบนหน้าจอในที่นี้จะ พิมพ์คำว่า Hello,world ปรากฎขึ้นบนหน้าจอ ส่วนเครื่องหมาย \n ที่ปรากฎอยู่นั่นเป็นเครื่องหมาย tab ซึ่งมีอยู่หลายรูปแบบ เช่นเดียวกันในที่นี้ \n หมายความว่า หลังจากพิมพ์ข้อความแล้วให้ cursor ย้ายไปขึ้นบรรทัดใหม่
บรรทัดถัดมาก็จะมีความหมายเช่นเดียวกับบรรทัดแรกคือ จะพิมพ์คำว่า Press any key to stop จากนั้น cursor ก็จะวิ่งไปขึ้นบรรทัดใหม่เพราะตัว tab \n ที่ผ่านมาคือคำสั่ง print f จะเห็นได้ว่าเป็นคำสั่งประเภท output คือสั่งพิมพ์ออกทางหน้าจอ ต่อมาจะมีคำสั่ง Input บ้าง นี่คือ คำสั่ง getch(); เป็นคำสั่งสำหรับรับค่าจากทาง keyboard เข้ามา ซึ่งจริงๆแล้วรูปแบบของคำสั่งก็มีหลายรูปแบบเช่นกัน แต่ในที่นี้ ที่เราจะต้องใช้คำสั่งนี้ก็เพื่อว่า เมื่อเราพิมพ์ข้อความทั้งสองข้างต้นไปแล้วให้ผู้ใช้ กดปุ่มใดๆก็ได้เพื่อจบโปรแกรม
บรรทัดต่อมามีเครื่องหมาย } เป็นการแสดงว่าจบโปรแกรมในส่วนของ main ส่วนข้อความ /* end of main */ ที่ปรากฎก็คือ comment เช่นเดียวกับที่ได้อธิบายไปข้างต้นแล้ว เราจะสังเกตได้ว่า เมื่อมีเครื่องหมาย ปีกกาเปิด ก็ต้องมีเครื่องหมาย ปีกกาปิด เสมอ และอยู่กันเป็นคู่ๆด้วย
ให้สังเกต ณ บรรทัดแรกที่เขียนว่า #include<stdio.h> บรรทัดนี้กำลังจะบอกเราว่าให้เรานั้นไปเอาไฟล์ที่มีสกุล .h นั้นมาเป็นส่วนหนึ่งของโปรแกรมเรา ซึ่งส่วนนี้ในทุกโปรแกรมจะต้องมี ส่วนไฟล์ที่เราไปเอามานั้นคือ header file ที่มีชื่อว่า stdio.h ถ้าจะจำกันให้ง่ายนั้นมันย่อมาจาก standard Input Output คือเป็นไฟล์ที่ใช้จัดการกับการ รับค่า และ แสดงค่าของโปรแกรม จากโครงสร้างในส่วนต้นนี้คือก่อนที่จะถึงตรงส่วนของคำว่า main() เราจะเรียกส่วนนี้ว่า Preprocessor บรรทัดถัดมาเขียนว่า /*........*/ ในส่วนนี้เราเรียกว่าส่วนของการ comment คือให้เราเขียนข้อความอะไรก็ได้ลงไปซึ่ง อาจจะเป็นการอธิบายโปรแกรมเป็นต้น ในที่นี้เราเขียนว่า This is my first program คือเป็นการบอกว่านี่คือโปรแกรมแรกของฉัน
บรรทัดถัดมาเขียนว่า main() ข้อความนี้เขียนเพื่อบอกให้รู้ว่าหลังจากคำนี้จะมีเครื่องหมาย { และจะจบด้วยเครื่องหมาย } ข้อความหรือคำสั่งที่อยู่ระหว่างเครื่องหมาย { และ } ทั้งหมดนั้นเป็นคำสั่งที่ใช้ในส่วนของ main โปรแกรม
ในทุกโปรแกรมจะต้องมีส่วนของ main ปรากฎอยู่เพราะเมื่อเราสั่ง compile โปรแกรม ตัว compile จะทำการวิ่งไปหา main ทุกครั้งเสมอC a collection of functions one of which must be main() function คำกล่าวนี้บอกเราว่า การโปรแกรม C ประกอบไปด้วย function ซึ่ง function หนึ่งที่จะต้องมี ก็คือ ฟังก์ชัน main() ตอนนี้เราได้เข้ามาสู่ main() เรียบร้อยแล้ว บรรทัดแรกใน main function คือ clrscr(); สังเกตได้ว่าข้อความนี้จบลงด้วย เครื่องหมาย semicolon แสดงว่าข้อความนี้เป็นคำสั่ง และขอบอกไว้เลยว่าคำสั่ง clrscr(); นี้คือ คำสั่ง clear screen นั่นเองคือ เมื่อ โปรแกรมได้ run มาถึงส่วนนี้และได้ทำคำสั่งนี้หน้าจอที่ปรากฎจะถูก clear เพื่อรอทำคำสั่งต่อไป
คำสั่งถัดมาคือ print("....ข้อความ..... \n"); ความจริงแล้วคำสั่ง printf(อ่านว่า พริ้นซ์-เอฟ) มีอยู่หลายรูปแบบแต่เดี๋ยวเราค่อยๆดู กันไปก่อนในแบบแรกนี้คือว่า คำสั่งนี้จะทำการพิ่มพ์ ข้อความที่ปรากฎอยู่ระหว่างเครื่องหมาย " และ " ออกมาบนหน้าจอในที่นี้จะ พิมพ์คำว่า Hello,world ปรากฎขึ้นบนหน้าจอ ส่วนเครื่องหมาย \n ที่ปรากฎอยู่นั่นเป็นเครื่องหมาย tab ซึ่งมีอยู่หลายรูปแบบ เช่นเดียวกันในที่นี้ \n หมายความว่า หลังจากพิมพ์ข้อความแล้วให้ cursor ย้ายไปขึ้นบรรทัดใหม่
บรรทัดถัดมาก็จะมีความหมายเช่นเดียวกับบรรทัดแรกคือ จะพิมพ์คำว่า Press any key to stop จากนั้น cursor ก็จะวิ่งไปขึ้นบรรทัดใหม่เพราะตัว tab \n ที่ผ่านมาคือคำสั่ง print f จะเห็นได้ว่าเป็นคำสั่งประเภท output คือสั่งพิมพ์ออกทางหน้าจอ ต่อมาจะมีคำสั่ง Input บ้าง นี่คือ คำสั่ง getch(); เป็นคำสั่งสำหรับรับค่าจากทาง keyboard เข้ามา ซึ่งจริงๆแล้วรูปแบบของคำสั่งก็มีหลายรูปแบบเช่นกัน แต่ในที่นี้ ที่เราจะต้องใช้คำสั่งนี้ก็เพื่อว่า เมื่อเราพิมพ์ข้อความทั้งสองข้างต้นไปแล้วให้ผู้ใช้ กดปุ่มใดๆก็ได้เพื่อจบโปรแกรม
บรรทัดต่อมามีเครื่องหมาย } เป็นการแสดงว่าจบโปรแกรมในส่วนของ main ส่วนข้อความ /* end of main */ ที่ปรากฎก็คือ comment เช่นเดียวกับที่ได้อธิบายไปข้างต้นแล้ว เราจะสังเกตได้ว่า เมื่อมีเครื่องหมาย ปีกกาเปิด ก็ต้องมีเครื่องหมาย ปีกกาปิด เสมอ และอยู่กันเป็นคู่ๆด้วย
7.2 การพัฒนาโปรแกรม
1. ขั้นตอนการพัฒนาโปรแกรม
ขั้นตอนการพัฒนาโปรแกรมประกอบด้วย
- การวิเคราะห์ปัญหา
- การออกแบบโปรแกรม
- การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
- การทดสอบและแก้ไขโปรแกรม
- การทำเอกสารประกอบโปรแกรม
- การบำรุงรักษาโปรแกรม
1.1. การวิเคราะห์ปัญหา
การวิเคราะห์ปัญหา ประกอบด้วยขั้นตอนต่างๆ ดังนี้
- กำหนดวัตถุประสงค์ของงาน เพื่อพิจารณาว่าโปรแกรมต้องทำการประมวลผลอะไรบ้าง
- พิจารณาข้อมูลนำเข้า เพื่อให้ทราบว่าจะต้องนำข้อมูลอะไรเข้าคอมพิวเตอร์ ข้อมูลมีคุณสมบัติเป็นอย่างไร ตลอดจนถึงลักษณะและรูปแบบของข้อมูลที่จะนำเข้า
- พิจารณาการประมวลผล เพื่อให้ทราบว่าโปรแกรมมีขั้นตอนการประมวลผลอย่างไรและมีเงื่อนไปการประมวลผลอะไรบ้าง
- พิจารณาข้อสนเทศนำออก เพื่อให้ทราบว่ามีข้อสนเทศอะไรที่จะแสดง ตลอดจนรูปแบบและสื่อที่จะใช้ในการแสดงผล
1.2. การออกแบบโปรแกรม
การออกแบบขั้นตอนการทำงานของโปรแกรมเป็นขั้นตอนที่ใช้เป็นแนวทางในการลงรหัสโปรแกรม ผู้ออกแบบขั้นตอนการทำงานของโปรแกรมอาจใช้เครื่องมือต่างๆ ช่วยในการออกแบบ อาทิเช่น คำสั่งลำลอง (Pseudocode) หรือ ผังงาน (Flow chart) การออกแบบโปรแกรมนั้นไม่ต้องพะวงกับรูปแบบคำสั่งภาษาคอมพิวเตอร์ แต่ให้มุ่งความสนใจไปที่ลำดับขั้นตอนในการประมวลผลของโปรแกรมเท่านั้น
1.3. การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
การเขียนโปรแกรมเป็นการนำเอาผลลัพธ์ของการออกแบบโปรแกรม มาเปลี่ยนเป็นโปรแกรมภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ผู้เขียนโปรแกรมจะต้องให้ความสนใจต่อรูปแบบคำสั่งและกฎเกณฑ์ของภาษาที่ใช้เพื่อให้การประมวลผลเป็นไปตามผลลัพธ์ที่ได้ออกแบบไว้ นอกจากนั้นผู้เขียนโปรแกรมควรแทรกคำอธิบายการทำงานต่างๆ ลงในโปรแกรมเพื่อให้โปรแกรมนั้นมีความกระจ่างชัดและง่ายต่อการตรวจสอบและโปรแกรมนี้ยังใช้เป็นส่วนหนึ่งของเอกสารประกอบ
1.4. การทดสอบและแก้ไขโปรแกรม
การทดสอบโปรแกรมเป็นการนำโปรแกรมที่ลงรหัสแล้วเข้าคอมพิวเตอร์ เพื่อตรวจสอบรูปแบบกฎเกณฑ์ของภาษา และผลการทำงานของโปรแกรมนั้น ถ้าพบว่ายังไม่ถูกก็แก้ไขให้ถูกต้องต่อไป ขั้นตอนการทดสอบและแก้ไขโปรแกรม อาจแบ่งได้เป็น 3 ขั้น
- สร้างแฟ้มเก็บโปรแกรมซึ่งส่วนใหญ่นิยมนำโปรแกรมเข้าผ่านทางแป้นพิมพ์โดยใช้โปรแกรมประมวลคำ
- ใช้ตัวแปลภาษาคอมพิวเตอร์แปลโปรแกรมที่สร้างขึ้นเป็นภาษาเครื่อง โดยระหว่างการแปลจะมีการตรวจสอบความถูกต้องของรูปแบบและกฎเกณฑ์ในการใช้ภาษา ถ้าคำสั่งใดมีรูปแบบไม่ถูกต้องก็จะแสดงข้อผิดพลาดออกมาเพื่อให้ผู้เขียนนำไปแก้ไขต่อไป ถ้าไม่มีข้อผิดพลาด เราจะได้โปรแกรมภาษาเครื่องที่สามารถให้คอมพิวเตอร์ประมวลผลได้
- ตรวจสอบความถูกต้องของการประมวลผลของโปรแกรม โปรแกรมที่ถูกต้องตามรูปแบบและกฎเกณฑ์ของภาษา แต่อาจให้ผลลัพธ์ของการประมวลผลไม่ถูกต้องก็ได้ ดังนั้นผู้เขียนโปรแกรมจำเป็นต้องตรวจสอบว่าโปรแกรมประมวลผลถูกต้องตามต้องการหรือไม่ วิธีการหนึ่งก็คือ สมมติข้อมูลตัวแทนจากข้อมูลจริงนำไปให้โปรแกรมประมวลผลแล้วตรวจสอบผลลัพธ์ว่าถูกต้องหรือไม่ ถ้าพบว่าไม่ถูกต้องก็ต้องดำเนินการแก้ไขโปรแกรมต่อไป การสมมติข้อมูลตัวแทนเพื่อการทดสอบเป็นสิ่งที่มีความสำคัญเป็นอย่างมาก ลักษณะของข้อมูลตัวแทนที่ดีควรจะสมมติทั้งข้อมูลที่ถูกต้องและข้อมูลที่ผิดพลาด เพื่อทดสอบว่าโปรแกรมที่พัฒนาขึ้นสามารถครอบคลุมการปฏิบัติงานในเงื่อนไขต่างๆ ได้ครบถ้วน นอกจากนี้อาจตรวจสอบการทำงานของโปรแกรมด้วยการสมมติตัวเองเป็นคอมพิวเตอร์ทีจะประมวลผล แล้วทำตามคำสั่งทีละคำสั่งของโปรแกรมนั้นๆ วิธีการนี้อาจทำได้ยากถ้าโปรแกรมมีขนาดใหญ่ หรือมีการประมวลผลที่ซับซ้อน
1.5. การทำเอกสารประกอบโปรแกรม
การทำเอกสารประกอบโปรแกรมเป็นงานที่สำคัญของการพัฒนาโปรแกรม เอกสารประกอบโปรแกรมช่วยให้ผู้ใช้โปรแกรมเข้าใจวัตถุประสงค์ ข้อมูลที่จะต้องใช้กับโปรแกรม ตลอดจนผลลัพธ์ที่จะได้จากโปรแกรม การทำโปรแกรมทุกโปรแกรมจึงควรต้องทำเอกสารกำกับ เพื่อใช้สำหรับการอ้างอิงเมื่อจะใช้งานโปรแกรมและเมื่อต้องการแก้ไขปรับปรุงโปรแกรม เอกสารประกอบโปรแกรมที่จัดทำ ควรประกอบด้วยหัวข้อต่อไปนี้
- วัตถุประสงค์
- ประเภทและชนิดของคอมพิวเตอร์และอุปกรณ์ที่ใช้ในโปรแกรม
- วิธีการใช้โปรแกรม
- แนวคิดเกี่ยวกับการออกแบบโปรแกรม
- รายละเอียดโปรแกรม
- ข้อมูลตัวแทนที่ใช้ทดสอบ
- ผลลัพธ์ของการทดสอบ
1.6. การบำรุงรักษาโปรแกรม
เมี่อโปรแกรมผ่านการตรวจสอบตามขั้นตอนเรียบร้อยแล้ว และถูกนำมาให้ผู้ใช้ได้ใช้งาน ในช่วงแรกผู้ใช้อาจจะยังไม่คุ้นเคยก็อาจทำให้เกิดปัญหาขึ้นมาบ้าง ดังนั้นจึงต้องมีผู้คอยควบคุมดูแลและคอยตรวจสอบการทำงาน การบำรุงรักษาโปรแกรมจึงเป็นขั้นตอนที่ผู้เขียนโปรแกรมต้องคอยเฝ้าดูและหาข้อผิดพลาดของโปรแกรมในระหว่างที่ผู้ใช้ใช้งานโปรแกรม และปรับปรุงโปรแกรมเมื่อเกิดข้อผิดพลาดขึ้น หรือในการใช้งานโปรแกรมไปนานๆ ผู้ใช้อาจต้องการเปลี่ยนแปลงการทำงานของระบบงานเดิมเพื่อให้เหมาะกับเหตุการณ์ นักเขียนโปรแกรมก็จะต้องคอยปรับปรุงแก้ไขโปรแกรมตามความต้องการของผู้ใช้ที่เปลี่ยนแปลงไปนั่นเอง
2.ภาษาโปรแกรมคอมพิวเตอร์
ภาษาโปรแกรมคอมพิวเตอร์คือ ภาษาที่ใช้ในการสื่อสารระหว่างมนุษย์กับเครื่องคอมพิวเตอร์ ภาษาโปรแกรมคอมพิวเตอร์สำคัญคือหากไม่มีภาษาโปรแกรมคอมพิวเตอร์ เครื่องคอมพิวเตอร์จะไม่สามารถทำงานได้ เนื่องจากขาดชุดคำสั่งในการทำงาน
คอมพิวเตอร์จะสามารถทำงานได้จะต้องมีการเขียนโปรแกรมหรือซอร์ฟแวร์ เพื่อสั่งให้คอมพิวเตอร์ทำงานโปรแกรมต่าง ๆ ที่เขียนขึ้นมานั้น จะต้องเขียนไปตามกฎเกณฑ์ของภาษาที่คอมพิวเตอร์เข้าใจ เรียกว่า ภาษาคอมพิวเตอร์
1. ภาษาเครื่อง (Machine language)
2. ภาษาแอสเซมบลี (Assembly language)
3. ภาษาชั้นสูง (High-level language)หรือ ภาษารุ่นที่ 3 (3GL:Third Generation Language)
4. ภาษาชั้นสูงมาก (Very high-level language)หรือภาษารุ่นที่ 4 (4GL)
1. ภาษาเครื่อง (Machine language)
เป็นภาษาพื้นฐานที่คอมพิวเตอร์สามารถเข้าใจได้ แต่ละคำสั่งประกอบขึ้นจากกลุ่มตัวเลข 0 และ 1 ซึ่งเป็นเลขฐานสอง
2. ภาษาแอสเซมบลี (Assembly language)
เป็นภาษาที่ใช้สัญลักษณ์ข้อความ แทนกลุ่มของตัวเลขฐานสอง เพื่อให้ง่ายต่อการเขียนและการจดจำมากขึ้น การทำงานของโปรแกรมจะต้องทำการแปลภาษาแอสเซมบลีให้เป็นภาษาเครื่อง โดยใช้ตัวแปลที่เรียกว่า แอสเซมเบลอร์ (Assembler)
3. ภาษาชั้นสูง (High-level language) ถูกสร้างขึ้นมาเพื่อให้เขียนโปรแกรมได้ง่ายขึ้น โดยมีลักษณะเหมือนกับภาษาอังกฤษทั่วไป ผู้เขียนไม่จำเป็นต้องมีความรู้เกี่ยวกับฮาร์แวร์แต่อย่างใด ภาษานี้จำเป็นต้องมีตัวแปลภาษาเครื่องเช่นกัน เรียกตัวแปลนี้ว่า คอมไพเลอร์ (compiler)หรือ อินเตอร์พรีเตอร์ (Interpreter)อย่างใดอย่างหนึ่ง ตัวอย่างของภาษาชั้นสูง เช่น ภาษาปาสคาล ภาษาซี ภาษโคบอล ภาษเบสิก ภาษาฟอร์แทรน
ภาษาระดับสูง (High Level Languages)
ภาษาระดับสูง เป็นภาษาที่ง่ายต่อการเรียนรู้และการนำไปประยุกต์ใช้งาน สามารถทำงานบนเครื่องคอมพิวเตอร์ต่างชนิดกันได้ โปรแกรมที่เขียนขึ้นด้วยภาษาระดับสูง จำเป็นต้องมีตัวแปลภาษาเพื่อให้เป็นภาษาเครื่องที่คอมพิวเตอร์เข้าใจ โดยโปรแกรมแปลภาษามี 2 ประเภท คือ คอมไพเลอร์ และอินเตอร์พรีเตอร์ ตัวอย่างของภาษาระดับสูง ได้แก่
5.4.2.1 ภาษาฟอร์แทรน (Fortran Language)
FORTRAN ย่อมาจาก FORmula TRANslator เป็นภาษาระดับสูงภาษาแรกที่ได้มีการใช้อย่างแพร่หลาย เป็นภาษาที่ใช้ได้กับเครื่องคอมพิวเตอร์ชนิดเมนเฟรมคอมพิวเตอร์ มินิคอมพิวเตอร์ และไมโครคอมพิวเตอร์ เหมาะกับงานคำนวณทางด้านวิทยาศาสตร์และคณิตศาสตร์ที่มีการคำนวณมาก ๆ มีฟังก์ชันการคำนวณให้ผู้ใช้เลือกใช้ได้มาก เหมาะกับนักวิจัย นักสถิติ หรือวิศวกร
ข้อดี คือ คำสั่งส่วนใหญ่จะง่ายและสั้น โปรแกรมที่ถูกพัฒนาขึ้นบนเครื่องคอมพิวเตอร์ประเภทหนึ่งจะสามารถนำไปแก้ไขและใช้งานบนเครื่องคอมพิวเตอร์อีกประเภทหนึ่งได้ ข้อเสีย คือ ไม่เหมาะกับงานทางธุรกิจที่ต้องยุ่งเกี่ยวกับงานทางด้านการรับข้อมูลเข้า (Input) และข้อมูลออก (Output) ที่ต้องสร้างรายงานมากๆ หรืองานที่ต้องการเก็บข้อมูลเป็นไฟล์
5.4.2.2 ภาษาโคบอล (Cobol Language)
COBOL ย่อมาจาก Common Business – Oriented Language เนื่องจากภาษาฟอร์แทรนมีข้อจำกัด คือ ไม่เหมาะกับงานธุรกิจ ที่ต้องมีการออกรายงานมากๆ ภาษาโคบอลจึงถูกพัฒนาขึ้นมาเพื่อให้เหมาะกับงานธุรกิจขนาดใหญ่ที่มีข้อมูลมาก ๆ เช่น งานธนาคาร หรือใช้สำหรับออกรายงานที่ซับซ้อนที่ต้องการความสวยงาม
ข้อดีของภาษาโคบอล คือ ไม่ขึ้นอยู่กับเครื่องคอมพิวเตอร์ สามารถเขียนโปรแกรมเพื่อใช้งานได้ทั้งบนไมโครคอมพิวเตอร์ มินิคอมพิวเตอร์ และเมนเฟรมคอมพิวเตอร์ โดยอาจต้องแก้ไขโปรแกรมเพียงเล็กน้อย และยังสามารถจัดการเกี่ยวกับข้อมูลเข้า/ออก ได้ง่าย มีลักษณะใกล้เคียงกับภาษาอังกฤษ ทำให้เป็นภาษาที่อ่านและเข้าใจได้ง่าย และมีความเป็นระเบียบเรียบร้อยในการเขียนโปรแกรม ส่วนข้อเสีย คือ มีความยาวในการเขียนโปรแกรมค่อนข้างมาก และเยิ่นเย้อ ไม่เหมาะกับการคำนวณที่ซับซ้อน
5.4.2.3 ภาษาเบสิค (BASIC Language)
BASIC ย่อมาจาก Beginner’s All-purpose Symbolic Instruction Code ภาษาเบสิคถูกพัฒนาเพื่อใช้ในการสอนนักศึกษา ปัจจุบันได้ขยายการใช้งานไปสู่งานทางธุรกิจอีกด้วย ภาษาเบสิคนิยมใช้กับไมโครคอมพิวเตอร์และมินิคอมพิวเตอร์ สามารถเขียนโปรแกรมได้ง่ายและรวดเร็วกว่าภาษาอื่น เหมาะกับงานธุรกิจขนาดเล็ก และเหมาะสำหรับผู้ที่ต้องการเริ่มศึกษาการเขียนโปรแกรม
ลักษณะการทำงานของภาษาเบสิค เป็นแบบโต้ตอบ (Interactive) คือ ผู้ใช้สามารถ ติดต่อสื่อสารกับเครื่องได้ระหว่างที่มีการเขียนโปรแกรม และรันโปรแกรม ทำให้ผู้เขียนโปรแกรมสามารถพิมพ์โปรแกรมเข้าเครื่อง และแก้ไขข้อผิดพลาดได้ทันที เมื่อพบข้อผิดพลาด ข้อดีของภาษานี้คือ ง่ายต่อการเรียนรู้และสามารถใช้งานได้บนเครื่องทุกระดับ และยังสามารถถูกเขียนขึ้นเพื่อใช้ทำงานได้หลายประเภท ข้อเสีย คือ ไม่ได้ถูกออกแบบมาให้เกื้อหนุนต่อการเขียนโปรแกรมอย่างมีโครงสร้างที่ดี จึงไม่เหมาะในการพัฒนาโปรแกรมที่มีขนาดใหญ่ เนื่องจากมีความเร็วในการประมวลผลค่อนข้างช้า
5.4.2.4 ภาษาปาสคาล (Pascal Language)
ภาษาปาสคาล ถูกพัฒนาขึ้นมาจากภาษา ALGOL – 60 ภาษาปาสคาลเป็นภาษาที่นิยมใช้กับเครื่องเมนเฟรมคอมพิวเตอร์ มินิคอมพิวเตอร์ และไมโครคอมพิวเตอร์ นิยมนำมาใช้ใน การเรียน การสอนเขียนโปรแกรมเบื้องต้นในสถานศึกษาต่าง ๆ
ข้อดี คือ เป็นภาษาที่มีโครงสร้างที่ดีมาก สามารถเขียนโปรแกรมแบ่งเป็นโปรแกรมย่อยได้อย่างง่าย ทำให้การพัฒนาและแก้ไข ทำได้อย่างรวดเร็ว เหมาะกับผู้เริ่มต้นเขียนโปรแกรมอย่างมีโครงสร้าง และไม่จำกัดอยู่กับงานลักษณะใดลักษณะหนึ่ง ส่วนข้อเสีย คือ ไม่เหมาะกับงานธุรกิจอย่างแท้จริง เพราะไม่สามารถจัดการกับข้อมูลที่มีปริมาณมาก ๆได้ดีเท่ากับโคบอล
5.4.2.5 ภาษาซี (C Language)
ภาษาซี เป็นภาษาที่นิยมใช้ในการเขียนโปรแกรมมาก เป็นภาษาระดับสูงที่มีประสิทธิภาพในการทำงานใกล้เคียงกับภาษาแอสแซมเบลอร์ เริ่มแรกการพัฒนาภาษาซีใช้เพื่อเขียนซอฟต์แวร์ระบบ แต่ปัจจุบัน สามารถใช้ในงานด้านต่าง ๆ มากมาย เช่น ระบบการจัดการฐานข้อมูล โปรแกรมทางธุรกิจ โปรแกรมสำเร็จรูป และสามารถสร้างกราฟิกได้
ข้อดีของภาษานี้ คือ ทำงานได้เร็วมากเมื่อเทียบกับภาษาอื่นๆ สามารถทำงานได้บนเครื่องคอมพิวเตอร์ต่างประเภท โดยมีการคอมไพล์ใหม่ แต่ไม่ต้องแก้ไขโปรแกรมอย่างใด ส่วน ข้อเสีย คือ ยากที่จะเรียนรู้มากกว่าภาษาอื่น เนื่องจากลักษณะคำสั่งไม่มีรูปแบบที่แน่นอน และ ตรวจสอบโปรแกรมได้ยาก ไม่เหมาะจะใช้สร้างโปรแกรมที่ต้องมีการออกรายงานที่มีรูปแบบที่ ซับซ้อนมาก ๆ
4. ภาษาชั้นสูงมาก (Very high-level language)เป็นภาษาที่มีลักษณะคล้ายภาษาพูดตามปกติของมนุษย์ ภาษานี้จะช่วยให้การเขียนโปรแกรมเร็วมากขึ้นกว่าภาษาในรุ่นที่ 3 เนื่องจากมีเครื่องมือที่ช่วยในการสร้างแบบฟอร์มหน้าจอ เพื่อจัดการกับข้อมูลรวมไปถึงการออกรายงาน เมนูต่าง ๆ ตัวอย่างของภาษาชั้นสูงมากได้แก่ informix-4GL, MAGIC , Delphi , Power Builder ฯลฯ
รูปแบบ โครงสร้างและการใช้งานภาษาคอมพิวเตอร์
โปรแกรมจะประกอบด้วยโครงสร้างหรือรูปแบบการทำงานที่เป็นโครงสร้างตรรกะเชิงควบคุม โดยมีโครงสร้างของคำสั่งที่คล้ายกันทั่วไปทุกคำสั่งจะมีคำสั่งพื้นฐานต่อไปนี้
1. คำสั่งการรับข้อมูลเข้า และการแสดงผล
2. คำสั่งการกำหนดค่า
3. คำสั่งการเปรียบเทียบเงื่อนไข
4. คำสั่งการทำซ้ำหรือการวนลูป
โครงสร้างของคำสั่งในภาษาแอสแซมบลี
คำสั่งในภาษาแอสแซมบลี แบ่งออกเป็น 2 ส่วน ส่วนแรกกำหนดการทำงาน เรียกว่า OP-CODE (Operation Code) ส่วนที่สองเรียกว่า Operand มีหน้าที่กำหนดเกี่ยวกับข้อมูล
รูปแบบชุดคำสั่ง
• identifier คือชื่ออ้างอิงใช้ตั้งชื่อเพื่อเรียกถึงในภายหลัง (ถ้ามี)
• operation คือคำสั่ง
• operand คือตัวดำเนินการที่ต้องใช้ในคำสั่ง(ถ้ามี)
• ;comment คือคำอธิบายโปรแกรมจะต้องเขียนคำอธิบาย(ถ้ามี)ไว้หลังเครื่องหมายเซมิโคลอน
โปรแกรมในภาษาซี
จะประกอบด้วยฟังก์ชันอย่างน้อย หนึ่งฟังก์ชัน คือ ฟังก์ชัน main โดยโปรแกรมภาษาซีจะเริ่มทำงานที่ฟังก์ชัน main ก่อน ในแต่ละฟังก์ชันจะประกอบด้วย
1. Function Heading ประกอบด้วยชื่อฟังก์ชัน และอาจมีรายการของ argument (บางคนเรียก parameter) อยู่ในวงเล็บ
2. Variable Declaration ส่วนประกาศตัวแปร สำหรับภาษาซี ตัวแปรหรือค่าคงที่ทุกตัว ที่ใช้ในโปรแกรมจะต้องมีการประกาศก่อนว่าจะใช้งานอย่างไร จะเก็บค่าในรูปแบบใดเช่น interger หรือ real number
3. Compound Statements ส่วนของประโยคคำสั่งต่างๆ ซึ่งแบ่งเป็นประโยคเชิงซ้อน (compound statement) กับ ประโยคนิพจน์ (expression statment) โดยประโยคเชิงซ้อนจะอยู่ภายในวงเล็บปีกกาคู่หนึ่ง { และ } โดยในหนึ่งประโยคเชิงซ้อน จะมีประโยคนิพจน์ที่แยกจากกันด้วยเครื่องหมาย semicolon (;) หลายๆ ประโยครวมกัน และ อาจมีวงเล็บปีกกาใส่ประโยคเชิงซ้อนย่อยเข้าไปอีกได้
ภาษาคอมพิวเตอร์แต่ละภาษาจะมีข้อดี ข้อจำกัดและความเหมาะสมในการใช้งานแตกต่างกัน ดังนั้นในการพัฒนาโปรแกรมจึงต้องคำนึงถึงลักษณะงานที่ต้องการทำและภาษาคอมพิวเตอร์ที่มีคุณสมบัติเฉพาะ
ภาษาที่ใช้ในการเขียนโปรแกรม มีการคิดค้นขึ้นมาหลายภาษา เพื่อให้เหมาะสมกับการทำงานในแต่ละแบบ
-Pascal เหมาะสำหรับ การพัฒนาโปรแกรมเชิงวิทยาศาตร์ในระดับกลาง และ application ต่างๆ
-Basic เหมาะสำหรับการฝึก programming กับโปรแกรมที่ไม่มีความซับซ้อนมาก
-Cobol เหมาะสำหรับ การสร้างโปรแกรมทางธุระกิจที่กระชับสำหรับระบบทางธุระกิจ( ภาษานี้เป็นต้นเหตุของ y2k bug เพราะมีการนำไปใช้ในการย่อ วันที่)
-Fortran เหมาะสำหรับ การ programming การคำนวณต่างๆทางคณิตศาตร์
-C เหมาะสำหรับ การเขียนที่ต้องการความรวดเร็ว เล็ก และมีประสิทธิภาพ มีลักษณะเด่นคือสามารถติดต่อกับระดับ hardware ได้มีความใกล้เคียงกับภาษาเครื่องมากที่สุดรองจาก asmbly
การพัฒนาโปรแกรมมัลติมีเดีย
มัลติมีเดีย (Multimedia) หรือ สื่อหลายแบบ เป็นเทคโนโลยีที่ช่วยให้คอมพิวเตอร์ สามารถผสมผสานกันระหว่าง ข้อความ ข้อมูลตัวเลข ภาพนิ่ง ภาพเคลื่อนไหว และเสียง ไว้ด้วยกัน ตลอดจน การนำเอาระบบโต้ตอบกับผู้ใช้ (Interactive) มาผสมผสานเข้าด้วยกัน
การพัฒนาโปรแกรมมัลติมีเดีย จะใช้คอมพิวเตอร์ในการพัฒนาและแสดงผลในลักษณะสื่อหลายชนิด เช่น ตัวหนังสือ รูปภาพ ภาพเคลื่อนไหว และเสียงรวมกัน โดยมุ่งเน้นการโต้ตอบและมีปฏิสัมพันธ์กับผู้ใช้เป็นสำคัญ
2. การพัฒนาโปรแกรมมัลติมีเดีย มีดังนี้
1) เทคโนโลยีมัลติมีเดียที่นำมาใช้ในคอมพิวเตอร์
2) ฮาร์ดแวร์และซอฟต์แวร์ที่จำเป็นสำหรับงานด้านมัลติมีเดีย
3) ประโยชน์ของสื่อมัลติมีเดีย
องค์ประกอบของมัลติมีเดีย
มัลติมีเดียที่สมบูรณ์ควรจะต้องประกอบด้วยสื่อมากกว่า 2 สื่อตามองค์ประกอบ ดังนี้
ตัวอักษร
ภาพนิ่ง ภาพเคลื่อนไหว
เสียง
การเชื่อมโยงแบบปฏิสัมพันธ์
วีดิทัศน์ เป็นต้น
เทคโนโลยีที่เกี่ยวข้องกับมัลติมีเดีย
1. เทคโนโลยีไมโครคอมพิวเตอร์ (Microcomputer Technology)
2. เทคโนโลยีจอภาพ (Screen Technology)
3. เทคโนโลยีอุปกรณ์นำเข้าและแสดงผลข้อมูล (Input&OutputDevice Technology)
4. เทคโนโลยีการเก็บบันทึกข้อมูล (Data Storage Technology)
5. เทคโนโลยีการบีบอัดข้อมูล ( Data Compression Technology)
6. เทคโนโลยีคอมพิวเตอร์เครือข่าย ( Computer Network Technology)
7. เทคโนโลยีซอฟต์แวร์ ( Software Technology)
ส่วนประกอบพื้นฐานของมัลติมีเดียคอมพิวเตอร์
• ไมโครคอมพิวเตอร์ (Microcomputer)
• เครื่องอ่านซีดีรอม (CD-ROM Drive)
• แผงวงจรเสียง (Sound Board)
• ลำโพงภายนอก (External Speaker)
• ซอฟต์แวร์ประยุกต์ (Application Software
เครื่องมือที่ใช้ในการพัฒนาโปรแกรม
หลังจากที่เลือกภาษาที่จะใช้ในการพัฒนาโปรแกรมแล้ว การเลือกเครื่องมือที่ใช้ในการพัฒนาโปรแกรมก็สำคัญเช่นกัน ถ้าเลือกเครื่องมือที่มีลักษณะเข้าใจยาก หาข้อผิดพลาดของโปรแกรมเมื่อเกิด Error ขึ้นยาก ก็จะทำให้ระยะเวลาการพัฒนาโปรแกรมใช้เวลานาน ในขั้นตอนนี้เราต้องเลือกสองสิ่งได้แก่
2.1 เลือกตัวแปลภาษา (Complier) ที่จะใช้
2.2 เลือกโปรแกรมที่ใช้เขียน Code (Editor) ที่ใช้ในการเขียนโปรแกรม
ลักษณะการใช้โปรแกรมสร้างสื่อมัลติมีเดีย
1) การพัฒนาเว็บเพจ
2) การทำการ์ตูน
3) การสร้างงาน 3D Animation
4) การสร้างภาพ Panorama 360 องศา บนอินเทอร์เน็ต
5) การสร้างและตกแต่งรูปภาพ
6) การสร้างงานนำเสนอ
7) การเรียนการสอน เช่น การสร้างคอมพิวเตอร์ช่วยสอน (CAI)
การสร้างสื่อเพื่อนำเสนอข้อมูลนั้น สามารถนำเสนอข้อมูลได้หลายรูปแบบ ไม่ว่าจะเป็นตัวอักษร ภาพ เสียง และอื่นๆ ทั้งนี้ในการนำเสนอนั้นสามารถนำเสนอข้อมูลได้หลายรูปแบบเช่นกัน ไม่ว่าจะเป็นการนำเสนอบนจอภาพคอมพิวเตอร์ พิมพ์ออกแผ่นใส หรือแม้แต่การสร้างเอกสารเว็บที่สื่อผ่านระบบเครือข่ายคอมพิวเตอร์ เป็นต้น
เทคโนโลยีมัลติมีเดียที่นำมาใช้ในคอมพิวเตอร์
เทคโนโลยีมัลติมีเดีย ได้เข้ามามีบาทเป็นอย่างมากในปัจจุบัน ซึ่งสามารถพิจารณาจากการพัฒนาคอมพิวเตอร์ ไม่ว่าจะเป็นด้านสมรรถนะของซีพียู รวมทั้งประสิทธิ์ภาพของอุปกรณ์ฮาร์ดแวร์และซอฟต์แวร์ในปัจจุบันนี้ ต่างก็พัฒนาขึ้นเพื่อรองรับความต้องการของเทคโนโลยีมัลติมีเดียมากขึ้น เช่น
1) ความสามารถของโปรเซสเซอร์ที่สามารถปะมวลผลข้อมูลอย่างรวดเร็ว เพื่อรองรับการคำนวณด้านคอมพิวเตอร์กราฟิกที่มีความซับซ้อนมากขึ้น
2) หน่วยความจำในเครื่องที่มีความเร็วสูงขึ้น และเพิ่มขยายได้มากขึ้น
3) การ์ดแสดงผลที่ช่วยให้แสดงภาพได้อย่างรวดเร็วและมีประสิทธิภาพในการแสดงผลสูง
4) จอภาพขนาดใหญ่
5) การ์ดเสียงและลำโพงที่สมบูรณ์แบบเทียบได้กับเครื่องเสียงราคาแพงๆ
6) อุปกรณ์จัดเก็บข้อมูลที่มีความจุมากขึ้น เช่น ฮาร์ดดิสก์ เป็นต้น
ประโยชน์ของมัลติมีเดีย
มัลติมีเดีย ได้เข้ามามีบทบาทในชีวิตของคนเรามากยิ่งขึ้น โดยมีประโยชน์ ดังนี้
1. เสนอสิ่งเร้าให้กับผู้เรียน ได้แก่ เนื้อหา ภาพนิ่ง คำถาม ภาพเคลื่อนไหว
2. นำเสนอข่าวสารในรูปแบบที่ไม่จำเป็นต้องเรียงลำดับ เช่น บทเรียนมัลติมีเดีย
3. สร้างสื่อเพื่อความบันเทิง
4. สร้างสื่อโฆษณา หรือประชาสัมพันธ์
: http://61.19.202.164/resource/courseware/problem/k02-02.html
: http://kroobee.wordpress.com/2010/09/16/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%84%E0%B8%AD%E0%B8%A1%E0%B8%9E%E0%B8%B4%E0%B8%A7%E0%B9%80%E0%B8%95%E0%B8%AD%E0%B8%A3%E0%B9%8C/
: http://kroobee.wordpress.com/2010/09/16/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%84%E0%B8%AD%E0%B8%A1%E0%B8%9E%E0%B8%B4%E0%B8%A7%E0%B9%80%E0%B8%95%E0%B8%AD%E0%B8%A3%E0%B9%8C/