วันอาทิตย์ที่ 11 พฤศจิกายน พ.ศ. 2555

โครงสร้างโปรแกรมภาษาซี


โครงสร้างโปรแกรมภาษาซี


1.      พรีโพรเซสเซอร์ไดเร็กทีฟ (Preprocessor directives)
2.      ส่วนประกาศ (Global declaration)
3.      ส่วนฟังก์ชันหลัก ( The main() function)
4.      การสร้างฟังก์ชันและการใช้ฟังก์ชั่น (Uses-defined function)
5.      ส่วนอธิบายโปรแกรม (Program comments)


พรีโพรเซสเซอร์ไดเร็กทีฟ (Preprocessor directives)
            ส่วนนี้ทุกโปรแกรมต้องมี ใช้สำหรับเรียกไฟล์ที่โปรแกรมต้องการในการทำงานและกำหนดค่าต่างๆ  โดยคอมไพล์เลอร์จะกระทำตามคำสั่งก่อนที่จะคอมไพล์โปรแกรม ซึ่งเริ่มต้นด้วยเครื่องหมาย  ไดเร็กทีฟ (directive) # และตามด้วยชื่อโปรแกรมหรือชื่อตัวแปรที่ต้องการกำหนดค่า  ส่วนนี้อาจเรียกอีกชื่อหนึ่งว่าส่วนหัวโปรแกรม (Header Part) ที่ใช้กันบ่อยๆ ได้แก่
·        #include  เป็นการแจ้งให้คอมไพเลอร์อ่านไฟล์อื่นเข้ามาคอมไพร่วมด้วย รูปแบบการใช้จะทำโดยเขียน #include แล้วตามด้วยชื่อไฟล์ ดังนี้
#include”stdio.h”      หมายความว่า  อ่านไฟล์ stdio.h เข้ามาด้วย
            การกำหนดชื่อไฟล์ตามหลัง #include นั้นอาจใช้เครื่องหมาย <> คร่อมชื่อไฟล์ก็ได้ ซึ่งจะเป็นการอ่านไฟล์จากไดเร็กทอรี่ที่กำหนดไว้ก่อน แต่ถ้าใช้ “ ” เป็นการอ่านไฟล์จากไดเร็กทอรี่ปัจจุบันที่กำลังติดต่ออยู่ และไฟล์ที่จะ include เข้ามานี้จะต้องไม่มีฟังก์ชั่น main()  โดยมากแล้วจะประกอบด้วยโปรแกรมย่อย ค่าคงที่ หรือข้อกำหนดต่างๆ
·        #define  เป็นการกำหนดค่านิพจน์ต่างๆ ให้กับชื่อตัวแปร โดยมีรูปแบบดังนี้
#define NAME VALUE
                        ตัวอย่างเช่น  #define END 20               กำหนด END  มีค่าเท่ากับ 20

ส่วนประกาศ (Global declaration)
            ส่วนนี้จะใช้ในการประกาศตัวแปรหรือฟังก์ชั่นที่ต้องใช้ในโปรแกรม โดยทุกๆ ส่วนของโปรแกรมสามารถจะเรียกใช้ข้อมูลที่ประกาศไว้ในส่วนนี้ได้ ส่วนนี้บางโปรแกรมอาจไม่มีก็ได้

ส่วนฟังก์ชันหลัก ( The main() function)
            ส่วนนี้ทุกโปรแกรมต้องมี จะประกอบไปด้วยประโยคคำสั่งต่างๆ ที่จะให้โปรแกรมทำงาน โดยนำคำสั่งต่างๆมาต่อเรียงกัน แต่ละประโยคคำสั่งจะจบด้วยเครื่องหมาย เซมิโคลอน (Semi colon ;) โดยโปรแกรมหลักนี้จะเริ่มต้นด้วยคำว่า main() ตามด้วยเครื่องหมายปีกกาเปิด { และจะจบด้วยเครื่องหมายปีกกาปิด } ถ้าหากในโปรแกรมมีหลายฟังก์ชั่น ส่วนของฟังก์ชั่น main() เป็นฟังก์ชั่นแรกที่โปรแกรมจะทำงาน

ส่วนกำหนดฟังก์ชั่นขึ้นใช้เอง (Uses-defined function)
          เป็นการเขียนคำสั่งและฟังก์ชั่นต่างๆ ขึ้นใช้ในโปรแกรม โดยต้องอยู่ในเครื่องหมาย { } และสร้างฟังก์ชั่นหรือคำใหม่ที่ให้ทำงานตามที่เราต้องการให้กับโปรแกรมและสามารถเรียกใช้ได้ ภายในโปรแกรม
ตัวอย่างเช่น
            #include”stdio.h”
main()
{
            function();                  /*เรียกใช้ฟังก์ชั่นที่สร้างขึ้น*/
}
function()                               /*สร้างฟังก์ชั่นใหม่ โดยให้ชื่อว่า function*/
{
            return;                        /*คืนค่าที่เกิดจากการทำฟังก์ชั่น*/
            }

ส่วนอธิบายโปรแกรม (Program comments)
            ส่วนนี้ใช้เขียนคอมเมนต์โปรแกรม เพื่ออธิบายการทำงานต่างๆ ทำให้ผู้ศึกษาโปรแกรมในภายหลังทำความเข้าใจโปรแกรมได้ง่ายขึ้น เมื่อคอมไพล์โปรแกรมส่วนนี้จะถูกข้ามไป การเขียนคำอธิบายนี้จะเริ่มด้วยเครื่องหมาย /* และปิดด้วยเครื่องหมาย */ แต่ถ้าหากเขียนคำอธิบายทีละบรรทัดจะใช้เครื่องหมาย // เขียนกำกับบรรทัดคำอธิบายไว้ก็ได้

โปรแกรมขั้นต้นเป็นดังนี้

ตัวอย่างโปรแกรมอย่างง่ายจะประกอบด้วยสองส่วนคือ
1.      ส่วนที่หนึ่งเป็นส่วนหัวหรือส่วนเรียกโมดูลอื่นๆ เข้ามาแปลความหมายร่วม 
2.      ส่วนที่สอง เรียกว่าส่วนฟังก์ชั่นหลักซึ่งเป็นส่วนคำสั่งหรือสเตตเมนต์ (Statement) จะเป็นส่วนที่เก็บคำสั่งต่างๆ ที่จะให้โปรแกรมทำงาน โดยเริ่มต้นด้วยเครื่องหมายปีกกาเปิด { และจบด้วยเครื่องหมายปีกกาปิด } ส่วนนี้จะมีมากกว่าหนึ่งฟังก์ชั่นก็ได้ แต่ทุกโปรแกรมจะต้องมีฟังก์ชั่น main ซึ่งถือว่าเป็นฟังก์ชั่นหลักที่โปรแกรมจะทำงานได้

ตัวอย่างที่ 1  โปรแกรมให้นักเรียนศึกษาโครงสร้างของโปรแกรมภาษาซี
1:
#include<stdio.h>
2:
#include<conio.h>
3:
main()
4:
{
5:
   clrscr():
6:
  printf(“My name is Titaya”)
7:
  getch();
8:
}
ผลลัพธ์ของโปรแกรม
My name is Titaya

อธิบายโปรแกรม

บรรทัดที่ 1    เป็นการบอกให้คอมไพเลอร์นำเฮดเดอร์ไฟล์ชื่อ stdio.h เข้ามาร่วมในการแปลผลด้วย stdio.h ย่อมาจากคำว่า  standard input output เป็นชุดฟังก์ชันในการรับค่าและแสดงผลต่าง ๆ เช่น scanf(), printf() เป็นต้น
บรรทัดที่ 2    เป็นการบอกให้คอมไพเลอร์นำเฮดเดอร์ไฟล์ชื่อ conio.h เข้ามาร่วมในการแปลผลด้วยconio.h ย่อมาจากคำว่า  console input output  เป็นชุดฟังก์ชันในการจัดการหน้าจอทั้งหมด  เช่น clrscr(), getch()  เป็นต้น
บรรทัดที่ 3    คือฟังก์ชั่น main() ซึ่งเป็นฟังก์ชั่นหลักของโปรแกรม การทำงานของโปรแกรมภาษาซีจะเริ่มต้นที่ฟังก์ชั่นนี้
บรรทัดที่ 4    เครื่องหมาย { ระบุจุดเริ่มต้นของฟังก์ชั่น main()
บรรทัดที่ 5    เป็นคำสั่งให้เคลียร์หน้าจอเวลาแสดงผลลัพธ์
บรรทัดที่ 6    เป็นการเรียกฟังก์ชั่น printf() ซึ่งเป็นฟังก์ชั่นมาตรฐานของภาษาซีทำหน้าที่ที่แสดงผลข้อมูลออกทางจอภาพ ในที่นี้แสดงข้อความ  My name Titaya ออกทางจอภาพ
บรรทัดที่ 7    เป็นฟังก์ชันที่ใช้รับค่าจากคีย์บอร์ดโดยตรง การทำงานคือ เมื่อเราพิมพ์อะไรก็ตามลงไป
โดยปกติแล้ว มันจะขึ้นที่หน้าจอด้วยแต่สำหรับคำสั่งนี้ จะไม่ขึ้นมาบนหน้าจอให้
แต่จะเป็นการเก็บค่าไปเลย สำหรับในโปรแกรมนี้จะนำไปหยุดการทำงานเพื่อแสดงผลในชั่วขณะหนึ่งและเมื่อกดปุ่มอีกครั้ง ก็ทำงานต่อไป
บรรทัดที่ 8    เครื่องหมาย { ระบุจุดสิ้นสุดของฟังก์ชั่น main()




 ....................................................................................................................................
แบบฝึกหัดที่ 2
เรื่อง โครงสร้างของโปรแกรมภาษาซี
……………………………………………………………………………………………………………………………………


1. จงบอกความแตกต่างระหว่างส่วนหัวโปรแกรมที่ระบุด้วย #include<stdio.h> และ #include”stdio.h”
    ( 2 คะแนน )
2. จงเขียนโปรแกรมแสดงคำว่า Hello Program C (3 คะแนน )


2 ความคิดเห็น: