การใช้ภาษาซี

23 Sep

การใช้ภาษาซี

ประวัติความเป็นมา ภาษาซีเป็นภาษาระดับสูง( High-Level-Language) และภาษาโปรแกรมที่โปรแกรมเมอร์นิยมใช้กันมาก เนื่องจากเป็นภาษาที่มีความเร็วในการทำงานสูงใกล้เคียงกับภาษาเครื่อง มีโครงสร้างที่ชัดเจน เข้าใจง่าย สามารถเขียนโปรแกรมเพื่อติดต่อกับฮาร์ดแวร์ของเครื่องคอมพิวเตอร์ได้อย่างดี ภาษาซีเกิดขึ้นในปี ค . ศ .1972 ผู้คิดค้นคือนายเดนนีส ริทชี (Dennis Ritchi) การศึกษาภาษาซีถือว่าเป็นพื้นฐานในการศึกษาภาษาใหม่ ๆ ได้
การเขียนโปรแกรมในภาษาซี นั้นสามารถเขียนได้ 2 แบบ
แบบที่ 1 เขียนแบบโครงสร้าง
หรือเป็นบรรทัดไปเรื่อย ๆ หรือทั้งโปรแกรมมีเพียงหนึ่งฟังก์ชันคือ ฟังชันก์ main( ) การเขียนแบบนี้มีข้อดีคือ เหมาะสำหรับโปรแกรมสั้น ๆ แต่เมื่อนำไปใช้กับโปรแกรมที่มีขนาดยาวถ้าในโปรแกรมมีชุดคำสั่งที่ซ้ำกัน และการตรวจสอบหาข้อผิดพลาดนั้นทำได้ยาก เพราะจะต้องรันทั้งโปรแกรม
แบบที่ 2 เขียนแบบฟังก์ชัน
เป็นการเขียนโปรแกรมโดยแบ่งการทำงานของโปรแกรมออกเป็นฟังก์ชันย่อย แต่ยังต้องมีฟังก์ชัน main( ) อยู่เหมือนเดิม แต่ฟังก์ชัน main( ) นี้จะไปเรียกฟังก์ชันอื่นขึ้นมาทำงานต่อไป การเขียนแบบนี้มีข้อดีคือ การทำงานของโปรแกรมนั้นตรวจสอบได้ง่าย เพราะสามารถรันเฉพาะฟังก์ชันได้ และทำให้ตัวโปรแกรมนั้นสั้นลงในกรณีที่ชุดคำสั่งที่เหมือนกัน ซึ่งโปรแกรมเมอร์เกือบทั้งหมดนิยมเขียนในลักษณะนี้
การเขียนโปรแกรมแบบฟังก์ชั
การเขียนโปรแกรมแบบฟังก์ชันมีขั้นตอนดังนี้
1. ประกาศฟังก์ชันที่ต้องการไว้ในส่วนแรกของโปรแกรม
2. เรียกใช้ฟังก์ชันที่ประกาศไว้
3. กำหนดหรือสร้างรายละเอียดของฟังก์ชันนั้น โปรแกรม 5 – 1 แสดงขั้นตอน 3 ขั้นตอนของการสร้างฟังก์ชัน
clip_image002[1]clip_image004

จากตัวอย่างข้างต้นจะเห็นได้ว่า สิ่งที่จำเป็นสำหรับเรื่องฟังก์ชันก็คือ ชื่อของฟังก์ชันเพราะถ้าเรียกใช้ หรือประกาศชื่อฟังก์ชันไว้ไม่ตรงกัน โปรแกรมที่เขียนขึ้นก็จะเกิด Error  ขึ้นมาได้ ฉะนั้นจะต้องรู้ว่าโปรแกรมที่เขียนนั้นมีฟังก์ชันอะไรบ้าง

การสร้างฟังก์ชัน
clip_image005

รูปที่ 5 – 2 ส่วนประกอบต่าง ๆ ของฟังก์ชัน

ส่วนหัวของฟังก์ชัน  ( Function Header )ประกอบด้วย 3 ส่วนหลัก คือ ชนิดข้อมูลของค่าที่ส่งกลับ  (Return Type )ชื่อฟังก์ชัน ( Function name )   และรายชื่อพารามิเตอร์ซึ่งจะมีการบอกชนิดข้อมูล เหมือนการประกาศตัวแปร และสามารถมีหลายตัวได้โดยเครื่องหมาย , คั้นระหว่างแต่ละพารามิเตอร์ถ้าไม่ได้ใช้ Return type ภาษาซี จะถือว่ามีค่าที่ส่งกลับเป็นชนิดข้อมูลแบบ Integer  แล้ว ในส่วนรายละเอียดของฟังก์ชันจะต้องมีคำสั่ง Return  ด้วนในบรรทัดที่ต้องการออกจากฟังก์ชัน ถ้าไม่ต้องการให้ฟังก์ชันนั้นมีการส่งค่ากลับ ให้ใส่ Return Type เป็น Void และไม่ต้องใส่คำสั่ง Return และในส่วนของรายชื่อพารามิเตอร์ ถ้าไม่ต้องการส่งค่ากลับก็ไม่ต้องใส่ก็ได้ หรือใส่เป็น Void ไว้ส่วนรายละเอียดของฟังก์ชัน ประกอบด้วย การประกาศตัวแปรแบบ Local และ ชุดคำสั่งต่าง ๆ ของฟังก์ชันนั้น เมื่อต้องการจบฟังก์ชัน ถ้ามีการใส่ Return Type  ไว้ก็ให้ส่งค่ากลับตามชนิดของ  Return Type  ที่ใส่ เช่น return 0; แต่ถ้าไม่มีการส่งค่ากลับใส่ ก็ไม่จำเป็นต้องมีคำสั่ง return  หรือให้ใส่คำสั่งดังนี้ return ;

clip_image007

รูปที่ 5 – 3 แสดงตัวอย่างของฟังก์ชัน

ตัวแปรในภาษาซี

ตัวแปร (Variable) คือ การจองพื้นที่ในหน่วยความจำของคอมพิวเตอร์สำหรับเก็บข้อมูลที่ต้องใช้ในการทำงานของโปรแกรม โดยมีการตั้งชื่อเรียกหน่วยความจำในตำแหน่งนั้นด้วย เพื่อความสะดวกในการเรียกใช้ข้อมูล ถ้าจะใช้ข้อมูลใดก็ให้เรียกผ่านชื่อของตัวแปรที่เก็บเอาไว้

ชนิดของข้อมูล
ภาษาซีเป็นอีกภาษาหนึ่งที่มีชนิดของข้อมูลให้ใช้งานหลายอย่างด้วยกัน ซึ่งชนิดของข้อมูลแต่ละอย่างมีขนาดเนื้อที่ที่ใช้ในหน่วยความจำที่แตกต่างกัน และเนื่องจากการที่มีขนาดที่แตกต่างกันไป ดังนั้นในการเลือกใช้งานประเภทข้อมูลก็ควรจะคำนึงถึงความจำเป็นในการใช้งานด้วย สำหรับประเภทของข้อมูลมีดังนี้คือ

1.  ข้อมูลชนิดตัวอักษร (Character) คือข้อมูลที่เป็นรหัสแทนตัวอักษรหรือค่าจำนวนเต็มได้แก่ ตัวอักษร ตัวเลข และกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต์
2. ข้อมูลชนิดจำนวนเต็ม (Integer)  คือข้อมูลที่เป็นเลขจำนวนเต็ม ได้แก่ จำนวนเต็มบวก จำนวนเต็มลบ ศูนย์ ใช้พื้นที่ในการเก็บ 2 ไบต์
3. ข้อมูลชนิดจำนวนเต็มที่มีขนาด 2 เท่า (Long Integer) คือข้อมูลที่มีเลขเป็นจำนวนเต็ม ใช้พื้นที่  4 ไบต์
4. ข้อมูลชนิดเลขทศนิยม (Float) คือข้อมูลที่เป็นเลขทศนิยม ขนาด 4 ไบต์
5. ข้อมูลชนิดเลขทศนิยมอย่างละเอียด (Double) คือข้อมูลที่เป็นเลขทศนิยม ใช้พื้นที่ในการเก็บ 8 ไบต์

ชนิด

ขนาดความกว้าง

ช่วงของค่า

การใช้งาน

Char

8 บิต

ASCII character (-128 ถึง 127)

เก็บข้อมูลชนิดอักขระ

Unsignedchar

8 บิต

0-255

เก็บข้อมูลอักขระแบบไม่คิดเครื่องหมาย

Int

16 บิต

-32768 ถึง 32767

เก็บข้อมูลชนิดจำนวนเต็ม

long

32 บิต

-2147483648 ถึง 2147483649

เก็บข้อมูลชนิดจำนวนเต็มแบบยาว

Float

32 บิต

3.4E-38 ถึง 3.4E+38 หรือ ทศนิยม 6

เก็บข้อมูลชนิดเลขทศนิยม

Double

64 บิต

1.7E-308 ถึง 1.7E+308 หรือ ทศนิยม 12

เก็บข้อมูลชนิดเลขทศนิยม

Unsigned int

16 บิต

0 ถึง 65535

เก็บข้อมูลชนิดจำนวนเต็ม ไม่คิดเครื่องหมาย

Unsigned long

32 บิต

0 ถึง 4294967296

เก็บข้อมูลชนิดจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย

รูปแบบในการประกาศตัวแปรในภาษา C

การสร้าวตัวแปรขึ้นมาใช้งานจะเรียกว่า การประกาศตัวแปร (Variable Declaration) โดยเขียนคำสั่งให้ถูกต้องตามแบบการประกาศตัวแปร แสดงดังนี้

type name; type :  ชนิดของตัวแปร
name : ชื่อของตัวแปร ซึ่งต้องตั้งให้ถูกต้องตามหลักของภาษา C

การเขียนคำสั่งเพื่อประกาศตัวแปร ส่วนใหญ่แล้วจะเขียนไว้ในส่วนหัวของโปรแกรมก่อนฟังก์ชัน main ซึ่งการเขียนไว้ในตำแหน่งดังกล่าว จะทำให้ตัวแปรเหล่านั้นสามารถเรียกใช้จากที่ใดก็ได้ในโปรแกรม ดังตัวอย่าง

#include <stdio.h>

 

int num;

สร้างตัวแปรชื่อ num เพื่อเก็บข้อมูลชนิดจำนวนเต็ม

float y;

สร้างตัวแปรชื่อ y เพื่อเก็บข้อมูลชนิดเลขทศนิยม

char n;

สร้างตัวแปรชื่อ n เพื่อเก็บข้อมูลชนิดตัวอักขระ

void main()

 
   

     printf("Enter number : ")

 

     scanf("%d",&num);

 

     printf("Enter name : ");

 

     scanf("%f",&n);

 

     printf("Thank you");

 
   

หลักการตั้งชื่อตัวแปร

ในการประกาศสร้างตัวแปรต้องมีการกำหนดชื่อ ซึ่งชื่อนั้นไม่ใช่ว่าจะตั้งให้สื่อความหมายถึงข้อมูลที่เก็บอย่างเดียว โดยไม่คำนึงถึงอย่างอื่น เนื่องจากภาษา C มีข้อกำหนดในการตั้งชื่อตัวแปรเอาไว้ แล้วถ้าตั้งชื่อผิดหลักการเหล่านี้ โปรแกรมจะไม่สามารถทำงานได้ หลักการตั้งชื่อตัวแปรในภาษา C แสดงไว้ดังนี้

1.

ต้องขึ้นต้นด้วยตัวอักษร A-Z หรือ a-z หรือเครื่องหมาย _(Underscore) เท่านั้น

2.

ภายในชื่อตัวแปรสามารถใช้ตัวอักษร A-Z หรือ a-z หรือตัวเลข0-9 หรือเครื่องหมาย _

3.

ภายในชื่อห้ามเว้นชื่องว่าง หรือใช้สัญลักษณ์นอกเหนือจากข้อ 2

4.

ตัวอักษรเลขหรือใหญ่มีความหมายแตกต่างกัน

5.

ห้ามตั้งชื่อซ้ำกับคำสงวน (Reserved Word)

การใช้ตัวแปร

ค่าของตัวอักษรที่ว่า เราเรียกว่ารหัส ASCII – แอสกี้ ครับ ถ้าเราอยากรู้ว่ารหัสแอสกี้ตัวไหน แทนตัวอักษรอะไร ให้เราลองเข้าโปรแกรมเวิร์ด หรือโน้ตแพ็ด หรือในช่องคอมเมนต์ของบล็อกผมก็ยังได้ ขอให้เป็นช่องที่พิมพ์ตัวอักษรได้เป็นพอ ลองกด Alt ค้าง แล้วตามด้วยเลข ต็งแต่ 30 ถึง 127 ดูครับ (จริงๆเกินกว่านี้ก็ได้ แต่จะเป็นภาษาอื่น(ไทย)ซึ่งโปรแกรมภาษาซีที่เราเขียนตอนนี้ยังไม่รองรับ) จะเห็นว่ามีตัวอักษรแปลกๆโผล่มาต่างกัน

การพิมพ์และการรับข้อมูล
ในภาษา C  จะมีฟังก์ชันสำหรับการพิมพ์และการรับข้อมูลไว้ให้ใช้มากมาย การพิมพ์ก็คือ การนำข้อมูลไปแสดงที่หน้าจอ และการรับข้อมูลก็คือ การรับข้อมูลจากคีย์บอร์ดเข้ามา ซึ่งในภาษา C นั้นจะมองอุปกรณ์ในเครื่องคอมพิวเตอร์เป็นไฟล์ทั้งหมด ยกตัวอย่างเช่น จอภาพจะเป็น Standard Output File  และคีย์บอร์ดจะเป็น Standard Input File ดังรูป
clip_image008

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: