ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน
1. ส่วนของเฮดเดอร์ไฟล์ (Header File or Processing Directive) ส่วนนี้จะมีจุดสังเกตที่สำคัญคือจะขึ้นต้นด้วยเครื่องหมาย # เสมอ การทำงานของคอมไพเลอร์จะทำงานในส่วนนี้เป็นส่วนแรก ในส่วนนี้เป็นส่วนที่เก็บไลบรารีมาตรฐานของภาษา C ซึ่งจะถูกดึงเข้ามารวมกับโปรแกรมในขณะแปลภาษาโปรแกรม (Compile) โดยใช้คำสั่ง
# include ซึ่งสามารถเขียนได้ 2 รูปแบบ คือ
รูปแบบที่ 1 : #include<HeaderName>
รูปแบบที่ 2 : #include “HeaderName”
โดยที่ HeaderName เป็นชื่อของ header file
ทั้งสองแบบนี้มีความแตกต่างกันคือ แบบ <…..> คอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์จากไลบรารีของภาษา C เพียงที่เดียวเท่านั้น ส่วนที่ใช้เครื่องหมาย “……” คอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์จากไลบรารีที่เก็บ Source Code ของเราก่อน ถ้าหากไม่เจอจะไปค้นหาที่ไลบรารีของภาษา C เฮดเดอร์ไฟล์จะมีนามสกุลเป็น .h เท่านั้น เฮดเดอร์ไฟล์ที่สำคัญที่ขาดไม่ได้คือ stdio.h
2. ส่วนของตัวแปร Global เป็นส่วนประกาศตัวแปรที่สามารถใช้ได้ทั้งโปรแกรม ส่วนนี้จะมีหรือไม่มีก็ได้
3. ส่วนของฟังก์ชัน (Function) เป็นส่วนการทำงานของโปรแกรม ในโครงสร้างภาษา C จะบังคับให้มีอย่างน้อย 1 ฟังก์ชันคือ ฟังก์ชัน main() ซึ่งเป็นฟังก์ชันเริ่มการทำงานของโปรแกรม (คอมไพเลอร์จะประมวลผลที่ฟังก์ชัน main() เป็นฟังก์ชันแรก) โดยในขอบเขตของฟังก์ชันจะเริ่มต้นด้วยเครื่องหมาย { และสิ้นสุดด้วยเครื่องหมาย }
4. ส่วนของตัวแปร Local เป็นส่วนประกาศตัวแปรที่สามารถใช้ได้เฉพาะภายในฟังก์ชันของตนเองเท่านั้น ส่วนนี้จะมีหรือไม่มีก็ได้
5. ส่วนของตัวโปรแกรม เป็นส่วนคำสั่งการทำงานของโปรแกรม โดยที่คำสั่งแต่ละคำสั่งจะต้องจบด้วยเครื่องหมาย ; เสมอ
6. ส่วนของตัวส่งค่ากลับ เป็นส่วนของการส่งค่าข้อมูลกลับเมื่อฟังก์ชันจบการทำงาน โดยค่าที่ส่งกลับจะต้องเป็นค่าที่มีชนิดของข้อมูลตรงกับชนิดของข้อมูลที่ฟังก์ชันคืนค่ากลับ (Return Type) ในกรณีไม่ต้องการให้มีการส่งค่ากลับ สามารถกำหนดได้โดยใช้คีย์เวิร์ด void
ตัวอย่าง
#include<stdio.h>
#include<conio.h>
Void main(void)
{
printf(“Welcome to C Programming”);
getch();
}
อธิบายโปรแกรม
#include<stdio.h> // เป็นการเรียกใช้ส่วนของเฮดเดอร์ไฟล์ เกี่ยวกับการจัดการอินพุตและเอาต์พุต
#include<conio.h> // เป็นการเรียกใช้ส่วนของเฮดเดอร์ไฟล์ เกี่ยวกับการจัดการเกี่ยวกับหน้าจอทั้งหมด
Void main(void) //ส่วนของฟังก์ชัน main() โดยประกาศชนิดข้อมูลที่คืนค่ากลับเป็น void และค่าที่รับเข้ามาในฟังก์ชันเป็น void หมายถึง ฟังก์ชันนี้จะไม่มีการคืนค่าใดๆ กลับออกไป และไม่มีการรับค่าใด ๆ เข้ามาในฟังก์ชัน
{ // ส่วนเริ่มต้นของฟังก์ชัน main()
printf(“Welcome to C Programming”); //เป็นคำสั่งแสดงผลทางจอภาพ
getch(); //เป็นคำสั่งรับอักขระจากแป้นพิมพ์ เพื่อกำหนดไม่ให้โปรแกรมปิดหน้าต่างผลลัพธ์ เมื่อโปรแกรมจบการทำงาน
} // ส่วนสิ้นสุดของฟังก์ชัน main()
ให้นักเรียนค้นหาข้อมูลในหัวข้อต่อไปนี้ แล้วเขียนลงในกระดาษขนาด A4
กำหนดส่งในคาบเรียนครั้งถัดไป…. !!!
- ตัวแปรและชนิดของข้อมูลในภาษา C
- กฎการตั้งชื่อตัวแปรในภาษา C
C programming language
เริ่มต้นเขียนโปรแกรมภาษาซี
วันจันทร์ที่ 8 กรกฎาคม พ.ศ. 2556
วันอาทิตย์ที่ 16 ตุลาคม พ.ศ. 2554
ขั้นตอนการชิ้นงาน
ขั้นตอนที่ 1 เขียนโปรแกรม (source code)
ขั้นตอนที่ 3 เชื่อมโยงโปรแกรม (link)
ใช้ editor
เขียนโปรแกรมภาษาซีและทำการบันทึกไฟล์ต้นฉบับให้มีนามสกุลเป็น .C
จากนั้นให้คอมไพล์โปรแกรมก็จะได้ไฟล์ออบเจ็กต์โค้ดที่มีนามสกุลเป็น .OBJ
เมื่อทำการเชื่อมโยงไฟล์เข้ากับไลบรารีคำสั่งด้วย Link
ก็จะได้ไฟล์ที่มีนามสกุลเป็น .EXE ที่พร้อมทำงานได้บนเครื่องคอมพิวเตอร์
editor คือ
โปรแกรมที่ใช้สำหรับการเขียนโปรแกรม โดยตัวอย่างของ editor
ที่นิยมนำมาใช้ในการเขียนโปรแกรมได้แก่ Notepad, Edit ของ Dos ,Text Pad
และ Edit Plus เป็นต้น
ผู้เขียนโปรแกรมสามารถเลือกใช้โปรแกรมใดในการเรียนโปรแกรมก็ได้
แล้วแต่ความถนัดของแต่ละบุคคล
ขั้นตอนที่ 2 คอมไพล์โปรแกรม (compile)
นำ source code จากขั้นตอนที่ 1
มาทำการคอมไพล์
เพื่อแปลจากภาษาซีที่มนุษย์เข้าใจไปเป็นภาษาเครื่องที่คอมพิวเตอร์เข้าใจได้
ในขั้นตอนนี้คอมไพเลอร์จะทำการตรวจสอบ source code
ว่าเกิดข้อผิดพลาดหรือไม่
• หากเกิดข้อผิดพลาด จะแจ้งให้ผู้เขียนโปรแกรมทราบ ผู้เขียนโปรแกรมจะต้องกลับไปแก้ไขโปรแกรม และทำการคอมไพล์โปรแกรมใหม่อีกครั้ง
• หากไม่พบข้อผิดพลาด คอมไพเลอร์จะแปลไฟล์ source
code จากภาษาซีไปเป็นภาษาเครื่อง ( ไฟล์นามสกุล .obj) เช่นถ้าไฟล์ source
code ชื่อ work.c ก็จะถูกแปลไปเป็นไฟล์ work.obj
ซึ่งเก็บภาษาเครื่องไว้เป็นต้น
compile เป็นตัวแปล
ภาษารูปแบบหนึ่ง
มีหน้าที่หลักคือการแปลภาษาโปรแกรมที่มนุษย์เขียนขึ้นไปเป็นภาษาเครื่อง
โดยคอมไพเลอร์ของภาษาซี คือ C Compiler ซึ่งหลักการที่คอมไพเลอร์ใช้
เรียกว่า คอมไพล์ (compile)
โดยจะทำการอ่านโปรแกรมภาษาซีทั้งหมดตั้งแต่ต้นจนจบ แล้วทำการ แปลผลทีเดียว
นอกจากคอมไพเลอร์แล้ว ยังมีตัวแปลภาษาอีกรูปแบบหนึ่งที่เรียกว่า อินเตอร์พรีเตอร์ การอ่านและ แปลโปรแกรมทีละบรรทัด เมื่อ
แปลผลบรรทัดหนึ่งเสร็จก็จะทำงานตามคำสั่งในบรรทัดนั้น
แล้วจึงทำการแปลผลตามคำสั่งในบรรทัดถัดไป
หลักการที่อินเตอร์พรีเตอร์ใช้เรียกว่า อินเตอร์เพรต (interpret ) ข้อดีและข้อเสียของตัวแปลภาษาทั้งสองแบบมีดังนี้
ข้อดี
|
ข้อเสีย
|
|
| คอมไพเลอร์ | • ทำงานได้เร็ว เนื่องจากทำการแปลผลทีเดียว แล้วจึงทำงานตามคำสั่งของโปรแกรมในภายหลัง • เมื่อทำการแปลผลแล้ว ในครั้งต่อไปไม่จำเป็นต้องทำการแปลผลใหม่อีก เนื่องจากภาษาเครื่องที่แปลได้จะถูกเก็บไว้ที่หน่วยความจำ สามารถเรียกใช้งานได้ทันที |
• เมื่อเกิดข้อผิดพลาดขึ้นกับโปรแกรมจะตรวจสอบหาข้อผิดพลาดได้ยาก เพราะทำการแปลผลทีเดียวทั้งโปรแกรม |
| อินเตอร์พรีเตอร์ | • หาข้อผิดพลาดของโปรแกรมได้ง่าย เนื่องจากทำการแปลผลทีละบรรทัด • เนื่องจากทำงานทีละบรรทัดดังนั้นจึงสั่งให้โปรแกรมทำงานตามคำสั่งเฉพาะจุดที่ต้องการได้ • ไม่เสียเวลารอการแปลโปรแกรมเป็นเวลานาน |
• ช้า เนื่องจากที่ทำงานทีละบรรทัด |
การเขียนโปรแกรมภาษาซีนั้นผู้เขียนโปรแกรมไม่จำเป็นต้องเขียนคำสั่งต่าง ๆ
ขึ้นใช้งานเอง
เนื่องจากภาษาซีมีฟังก์ชั่นมาตรฐานให้ผู้เขียนโปรแกรมสามารถเรียกใช้งานได้
เช่น การเขียนโปรแกรมแสดงข้อความ “Lampangkanlayanee” ออกทางหน้าจอ
ผู้เขียนโปรแกรมสามารถเรียกใช้ฟังก์ชั่น printf()
ซึ่งเป็นฟังก์ชั่นมาตรฐานของภาษาซีมาใช้งานได้ โดยส่วนการประกาศ
(declaration) ของฟังก์ชั่นมาตรฐานต่าง ๆ
จะถูกจัดเก็บอยู่ในเฮดเดอร์ไฟล์แต่ละตัว แตกต่างกันไปตามลักษณะการใช้งาน
ด้วยเหตุนี้ภาษาเครื่องที่ได้จากขั้นตอนที่ 2 จึงยังไม่สามารถนำไปใช้งานได้
แต่ต้องนำมาเชื่อมโยงเข้ากับ library ก่อน
ซึ่งผลจากการเชื่อมโยงจะทำให้ได้ executable program ( ไฟล์นามสกุล .exe
เช่น work.exe) ที่สามารถนำไปใช้งานได้
ขั้นตอนที่ 4 ประมวลผล (run)
เมื่อนำ executable program จากขั้นตอนที่ 3 มาประมวลผลก็จะได้ผลลัพธ์ (output) ของโปรแกรมออกมา ( ถ้ามี )
ความหมายของภาษาซี
ภาษาซี คือ ภาษาคอมพิวเตอร์ใช้สำหรับพัฒนาโปรแกรมทั่วไป
ถูกพัฒนาโดยเดนนิส ริสชี่ (Dennis Ritchie) เมื่อประมาณต้นปีค.ศ. 1970
เพื่อใช้งานบนระบบปฏิบัติการยูนิกส์ ต่อมาถูกนำไปใช้ในระบบปฏิบัติการต่าง ๆ
จนถูกใช้เป็นภาษาพื้นฐานสำหรับภาษาอื่น เช่น ภาษาจาวา (Java) ภาษาพีเอชพี (PHP) ภาษาซีชาร์ป (C#) ภาษาซีพลัสพลัส (C++)
ภาษาเพิร์ล (Perl) ภาษาไพทอล (Python) หรือภาษารูบี้ (Ruby)
ประวัติความเป็นมาของภาษาซี
ภาษาซีเป็นภาษาระดับสูง( High-Level-Language)
และภาษาโปรแกรมที่โปรแกรมเมอร์นิยมใช้กันมาก
เนื่องจากเป็นภาษาที่มีความเร็วในการทำงานสูงใกล้เคียงกับภาษาเครื่อง
มีโครงสร้างที่ชัดเจน เข้าใจง่าย
สามารถเขียนโปรแกรมเพื่อติดต่อกับฮาร์ดแวร์ของเครื่องคอมพิวเตอร์ได้อย่างดี
ภาษาซีเกิดขึ้นในปี ค . ศ .1972 ผู้คิดค้นคือนายเดนนีส ริทชี (Dennis
Ritchi) การศึกษาภาษาซีถือว่าเป็นพื้นฐานในการศึกษาภาษาใหม่ ๆ ได้
สมัครสมาชิก:
บทความ (Atom)