โครงสร้างของภาษาซี
ภาษา C เป็นภาษาคอมพิวเตอร์ที่ถูกค้นคิดขึ้นโดย Denis Ritchie ในปี ค.ศ.
1970
โดยใช้ระบบปฏิบัติการของยูนิกซ์ (UNIX)
นับจากนั้นมาก็ได้รับความนิยมเพิ่มขั้นจนถึงปัจจุบัน ภาษา C
สามารถติดต่อในระดับฮาร์ดแวร์ได้ดีกว่าภาษาระดับสูงอื่น ๆ
ไม่ว่าจะเป็นภาษาเบสิกฟอร์แทน ขณะเดียวกันก็มีคุณสมบัติของภาษาระดับสูงอยู่ด้วย
ด้วยเหตุผลดังกล่าวจึงจัดได้ว่าภาษา C เป็นภาษาระดับกลาง (Middle –lever language)
ภาษา C เป็นภาษาคอมพิวเตอร์ชนิดคอมไพล์ (compiled Language)
ซึ่งมีคอมไพลเลอร์ (Compiler) ทำหน้าที่ในการคอมไพล์ (Compile)
หรือแปลงคำสั่งทั้งหมดในโปรแกรมให้เป็นภาษาเครื่อง (Machine Language)
เพื่อให้เครื่องคอมพิวเตอร์นำคำสั่งเหล่านั้นไปทำงานต่อไป
โครงสร้างของภาษา
C
เฮดเดอร์ไฟล์ (Header Files)
เป็นส่วนที่เก็บไลบรารี่มาตรฐานของภาษา C
ซึ่งจะถูกดึงเข้ามารวมกับโปรแกรมในขณะที่กำลังทำการคอมไพล์
โดยใช้คำสั่ง
#include<ชื่อเฮดเดอร์ไฟล์>
หรือ
#include “ชื่อเฮดเดอร์ไฟล์”
เฮดเดอร์ไฟล์นี้จะมีส่วนขยายเป็น .h เสมอ
และเฮดเดอร์ไฟล์เป็นส่วนที่จำเป็นต้องมีอย่างน้อย 1 เฮดเดอร์ไฟล์ ก็คือ
เฮดเดอร์ไฟล์ stdio.h
ซึ่งจะเป็นที่เก็บไลบรารี่มาตรฐานที่จัดการเกี่ยวกับอินพุตและเอาท์พุต
ส่วนตัวแปรแบบ
Global (Global Variables)
เป็นส่วนที่ใช้ประกาศตัวแปรหรือค่าต่าง ๆ ที่ให้ใช้ได้ทั้งโปรแกรม
ซึ่งใช้ได้ทั้งโปรแกรม ซึ่งในส่วนไม่จำเป็นต้องมีก็ได้
ฟังก์ชัน
(Functions)
เป็นส่วนที่เก็บคำสั่งต่าง ๆ ไว้ ซึ่งในภาษา C จะบังคับให้มีฟังก์ชันอย่างน้อย 1
ฟังก์ชั่นนั่นคือ ฟังก์ชั่น Main() และในโปรแกรม 1
โปรแกรมสามารถมีฟังก์ชันได้มากกว่า 1 ฟังก์ชั่น
ส่วนตัวแปรแบบ Local (Local
Variables)
เป็นส่วนที่ใช้สำหรับประกาศตัวแปรที่จะใช้ในเฉพาะฟังก์ชันของตนเอง
ฟังก์ชั่นอื่นไม่สามารถเข้าถึงหรือใช้ได้
ซึ่งจะต้องทำการประกาศตัวแปรก่อนการใช้งานเสมอ
และจะต้องประกาศไว้ในส่วนนี้เท่านั้น
ตัวแปรโปรแกรม
(Statements)
เป็นส่วนที่อยู่ถัดลงมาจากส่วนตัวแปรภายใน ซึ่งประกอบไปด้วยคำสั่งต่าง ๆ ของภาษา C
และคำสั่งต่าง ๆ จะใช้เครื่องหมาย ; เพื่อเป็นการบอกให้รู้ว่าจบคำสั่งหนึ่ง ๆ แล้ว
ส่วนใหญ่ คำสั่งต่าง ๆ ของภาษา C เขียนด้วยตัวพิมพ์เล็ก เนื่องจากภาษา C
จะแยกความแตกต่างชองตัวพิมพ์เล็กและพิมพ์ใหญ่หรือ Case Sensitive นั่นเอง
ยกตัวอย่างใช้ Test, test หรือจะถือว่าเป็นตัวแปรคนละตัวกัน นอกจากนี้ภาษา C
ยังไม่สนใจกับการขึ้นบรรทัดใหม่
เพราะฉะนั้นผู้ใช้สามารถพิมพ์คำสั่งหลายคำสั่งในบรรทัดเดียวกันได้
โดยไม่เครื่องหมาย ; เป็นตัวจบคำสั่ง
ค่าส่งกลับ (Return
Value)
คือ
ค่าที่ส่งกลับเมื่อฟังก์ชันนั้นๆทำงานเสร็จ
ซึ่งเรื่องนี้ผู้เขียนจะยกไปกล่าวในเรื่องฟังก์ชั่นอย่างละเอียดอีกทีหนึ่ง
หมายเหตุ (Comment) / Remark
ส่วนที่ไม่ต้องประมวลผลมักใช้ในการอธิบายการทำงานของโปรแกรม
ซึ่งจะใช้เครื่องหมาย /*และ */ ปิดหัวและปิดท้ายของข้อความที่ต้องการ
/* นี้คือ Comment */
/* ถ้ามี 2บรรทัด
ในทำแบบนี้
*/
/*
ถ้ามีหลายบรรทัด
ก็สามารถทำแบบนี้
ได้เช่นกัน
*/
โปรแกรมที่ 2 – 1
การตั้งชื่อ
การตั้งชื่อ
(Identifier) ให้กับตัวแปร ฟังก์ชันหรืออื่น ๆ มีกฎเกณฑ์ในการตั้งชื่อ
ดังนี้
1. ตัวแรกของชื่อจะต้องขึ้นต้องด้วยตัวอักษรหรือเครื่องหมาย
_ เท่านั้น
2. ตัวอักษรตั้งแต่ตัวที่ 2 สามารถเป็นตัวเลข
หรือเครื่องหมาย_ก็ได้
3. จะต้องไม่มีการเว้นวรรคภายในชื่อ
แต่สามารถใช้เครื่อง_คั่นได้
4. สามารถตั้งชื่อได้ยาไม่จำกัด
แต่จะใช้ตัวอักษรแค่ 31 ตัวแรกในการอ้างอิง
5.
ชื่อที่ตั้งด้วยตัวอักษรพิมพ์ใหญ่และพิมพ์เล็ก จะถือว่าเป็นคนละตัวกัน
6. ห้ามตั้งชื่อซ้ำกับคำสงวนของภาษา C
ชนิดข้อมูล
ในการเขียนโปรแกรมภาษา
C นั้น ผู้ใช้จะต้องกำหนดชนิดให้กับตัวแปรนั้นก่อนที่จะนำไปใช้งาน
โดยผู้ใช้จะต้องรู้ว่าในภาษา C นั้นมีชนิดข้อมูลอะไรบ้าง
เพื่อจะเลือกใช้ได้อย่างถูก
ต้องและเหมาะสม ในภาษา C จะมี 4 ชนิดข้อมูลมาตรฐาน
ดังนี้
ชนิดข้อมูลแบบไม่มีค่า หรือ Void Type
(Void)
ข้อมูลชนิดนี้
จะไม่มีค่าและจะไม่ใช้ในการกำหนดชนิดตัวแปร แต่ส่วนใหญ่จะใช้เกี่ยวกับฟังก์ชั่น
ซึ่งจะขอยกไปอธิบายในเรื่องฟังก์ชั่น
ชนิดข้อมูลมูลแบบจำนวนเต็ม
หรือ Integer Type (int)
เป็นชนิดข้อมูลที่เป็นตัวเลขจำนวนเต็ม ไม่มีทศนิยม ซึ่งภาษา C
จะแบ่งข้อมูลชนิดนี้ออกได้เป็น 3 ระดับ คือ short int , int และ long int
ซึ่งแต่ละระดับนั้นจะมีขอบเขตการใช้งานที่แตกต่างกัน
ชนิดข้อมูลแบบอักษร หรือ Character Type
(char)
ข้อมูลชนิดนี้ก็คือ ตัวอักษรตั้งแต่ A-Z เลข 0-9
และสัญลักษณ์ต่าง ๆ ตามมาตรฐาน ACSII (American Standard Code Information
Interchange) ซึ่งเมื่อกำหนดให้กับตัวแปรแล้วตัวแปรนั้นจะรับค่าได้เพียง 1
ตัวอักษรเท่านั้น และสามารถรับข้อมูลจำนวนเต็มตั้งแต่ถึง 127 จะใช้ขนาดหน่วยความจำ
1ไบต์หรือ 8 บิต
ชนิดข้อมูลแบบทศนิยม หรือ Floating Point Type
(flat)
เป็นข้อมูลชนิดตัวเลขที่มีจุดทศนิยม
ซึ่งสามารถแบ่งออกเป็น 3 ระดับ คือ float, double และ long double
แต่ละระดับนั้นจะมีขอบเขตที่แตกต่างกันในการใช้งาน ดังแสดงในตารางที่
2-2
ตัวแปร
ตัวแปร คือ ชื่อที่ใช้อ้างถึงตำแหน่งต่าง ๆ ในหน่วยความจำ
ซึ่งใช้เก็บข้อมูลต่าง ๆ ด้วยขนาดตามชนิดข้อมูล
การประกาศตัวแปร
การประกาศตัวแปรในภาษา C นั้นสามรถทำได้ 2 ลักษณะ คือ การประกาศตัวแปรแบบเอกภาพ
หรือการประกาศตัวแปรแบบ Global คือ ตัวแปรที่จะสามารถเรียกใช้ได้ทั้งโปรแกรม
และแบบที่สองการประกาศตัวแปรแบบภายใน หรือการประกาศตัวแปรแบบ Local
ซึ่งตัวแปรแระเภทนี้จะใช้ได้ในเฉพาะฟังก์ชั่นของตัวเองเท่านั้น
#include<stdio.h>
#include<conio.h>
int total;
/*การประกาศตัวแปรแบบ Global */
main()
{
int
price, money; /*การประกาศตัวแปรแบบ Local*/
…
}
การกำหนดค่าให้กับตัวแปร
การกำหนดค่าให้กับตัวแปรนั้น
จะสามารถกำหนดได้ตั้งแต่ตอนที่ประกาศตัวแปรเลยหรือจะกำหนดให้ภายในโปรแกรมก็ได้
ซึ่งการกำหนดค่าจะใช้เครื่องหมาย = กั้นตรงกลาง
int
total = 0;
ถ้ามีตัวแปรข้อมูลชนิดเดียวกัน
ก็สามารถทำแบบนี้ได้
int total
=0,sum
หรือ
int
total =0,sum=0;
ถ้าเป็นการกำหนดภายในโปรแกรม
ซึ่งตัวแปรนั้นได้ประกาศไว้แล้วสามารถทำแบบนี้
total = 50;
หรือ
total =
total+sum
หรือกำหนดค่าจาการพิมพ์ข้อมูลเข้าทางคีย์บอร์ด
scanf(“%d”,&total);
โปรแกรมที่ 2-2
การกำหนดชนิดข้อมูลแบบชั่วคราว
เมื่อผู้ใช้ได้กำหนดชนิดข้อมูลให้กับตัวแปรใด ๆ
ไปแล้ว ตัวแปรตัวนั้นจะมีชนิดข้อมูลเป็นแบบที่กำหนดให้ตลอดไป
บางครั้งการเขียนโปรแกรมอาจจะต้องมีความจำเป็นต้องเปลี่ยนชนิดข้อมูลของตัวแปรตัวนั้น
ซึ่งภาษาซี ก็มีความสามารถที่จะทำเช่นนั้นได้
รูปแบบ
([ชนิดข้อมูล])[ตัวแปร]
โปรแกรมที่ 2-3
ชนิดข้อมูลแบบค่าคงที่
(Constants)
ชนิดข้อมูลประเภทนี้
ชื่อก็บอกอยู่ว่าเป็นชนิดข้อมูลแบบค่าคงที่ ซึ่งก็คือข้อมูลตัวแปรประเภทที่เป็น
Constants ผู้ใช้จะไม่สามารถเปลี่ยนแปลงค่าของตัวแปรตัวนั้น
ในขณะที่โปรแกรมทำงานอยู่
รูปแบบ
Const[ชนิดข้อมูล][ตัวแปร]=[ค่าหรือ นิพจน์]
โปรแกรมที่ 2-4
nstant นั้นสามารถแบ่งออกได้ ดังนี้
Integer Constants
เป็นค่าคงที่ชนิดข้อมูลแบบตัวเลขจำนวนเต็มไม่มีจุดทศนิยม
const int a = 5;
Floating-Point Constants
เป็นค่าคงที่ชนิดข้อมูลแบบตัวเลขที่มีจุดทศนิยม
const float
b = 5.6394;
Character Constants เป็นค่าคงที่ชนิดตัวอักษร ซึ่งจะต้องอยู่ภายในเครื่องหมาย
‘’เท่านั้น
const char b = ‘t’;
String Constants เป็นค่าคงที่เป็นข้อความ
ซึ่งจะต้องอยู่ภายใต้เครื่องหมาย “”เท่านั้น
“”
“h”
“Hello
world\n”
“HOW ARE YOU”
“Good
Morning!”
โปรแกรมที่ 2-5
Statements
statements ในภาษา c คือ คำสั่งต่าง ไ ที่ประกอบขึ้นจนเป็นตัวโปรแกรม
ซึ่งในภาษา c นั้นได้แบ่งออกเป็น 6 แบบ คือ Expression Statement และ Compound
Statement ณ.ที่นี้จะมีด้วยกัน 2 แบบ
Expression Statement หรือเรียกอีกอย่างหนึ่งว่า Single
Statement ซึ่ง Statement แบบนั้นจะต้องมีเครื่องหมาย; หลังจาก statement
เมื่อภาษา C พบเครื่องหมาย ; จะทำให้มันรู้ว่าจบชุดคำสั่งแล้ว แล้วจึงข้ามไปทำ
Statement ชุดต่อไป
a = 2;
หรือ
printf(“x
contains %d, y contains %d\n”,x,y);
Compound Statement คือ
ชุดคำสั่งที่มีคำสั่งต่าง ๆ รวมอยู่ด้านใน Block ซึ่งจะใช้เครื่องหมาย
{เป็นการเปิดชุดคำสั่ง และใช้} เป็นตัวปิดชุดคำสั่ง ตัวอย่างที่เห็นได้ชัดเจนสำหรับ
Statement แบบนี้ คือ ตัวฟังก์ชั่น Main โดยทั่ว ๆ ไปในภาษา C Compound Statement
จะเป็นตัวฟังชั่น
ผังงาน
ผังงาน
(Flowchart)
มีไว้เพื่อให้ผู้ใช้ออกแบบขั้นตอนการทำงนของโปรแกรมก่อนที่จะลงมือเขียนโปรแกรม
ซึ่งจะช่วยให้ผู้ใช้เขียนโปรแกรมได้ง่ายขึ้นและไม่สับสนซึ่งผังงานที่นิยมใช้มีมาตรฐานมากมายหลายแบบ
โดยมีสัญลักษณ์ของผังงานดังนี้
โดยการออกแบบผังงาน จะมี 3 แบบ
ดังนี้
1
.
แบบเรียงลำดับ จะเป็นลักษณะการทำงานที่เรียงกันไปเรื่อย ๆ
โดยไม่มีการวนซ้ำ ดังรูป
2.
แบบทางเลือก
จะเป็นลักษณะการทำงานที่มีทางเลือก ซึ่งจะพบในเรื่องคำสั่งเงื่อนไข เช่น คำสั่ง
if…else ดังรูป
NO
Yes
3
. แบบการทำงานซ้ำ จะเป็นลักษณะการทำงานที่วนการทำงานแบบเดิม
จนครบตามจำนวนที่ต้องการ ซึ้งจะพบในเรื่องคำสั่ง วนลูป เช่น คำสั่ง do….while
ดังรูป