ภาษา c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 ภาษาซี (C Language) เป็นภาษาหนึ่งสำหรับเขียนโปรแกรมคอมพิวเตอร์  พัฒนาขึ้นโดยนายเดนนิส 

ริทชี่ (Dennis Ritche)  ในปี ค.ศ. 1972  เพื่อสร้างระบบปฏิบัติการยูนิกซ์(Unix Operating System)   

ทำความรู้จักกับเพื่อนใหม่ Turbo  c/c++ Version 3.0  คอร์ปอเรชั่น (Borland Software Corporation) 

ซึ่งเพรียบพร้อมไปด้วยเครื่องมือต่าง ๆ มากมายอาทิเช่น โปรแกรมเรียบเรียงข้อความ  และโปรแกรม

ตรวจสอบและแปลคำสั่ง  Turbo  c/c++ Version 3.0 เป็นโปรแกรมเขียนภาษา C  โดยบอร์แลนด์ 

ซอฟต์แวร์ 

รายละเอียดของเมนูในภาษาซี

 

  เมนูหลัก (Main Menu) ประกอบด้วย File Edit Search Run Compile Debug

 Project Option Window Help

File

เก็บรวมรวมคำสั่งเกี่ยวกับการเปิด-ปิดไฟล์ การบันทึกไฟล์ การออกจากโปรแกรม

Edit

การแก้ไขโปรแกรม การสำเนาหรือการย้ายข้อความที่ปรากฏบนเอดิเตอร์

Search

ค้นหาคำหรือข้อความที่เขียนในโปรแกรม ตลอดจนการแทนที่คำ

Run

รันโปรแกรมที่เขียนด้วยคำสั่งแบบต่าง ๆ

Compile

แปลข้อมูลของโปรแกรมที่เป็น Source file ให้เป็น Object File

Debug

ตรวจสอบข้อผิดพลาดของโปรแกรม

Project

ใช้ในการระบุไฟล์ต่าง ๆ ที่จำเป็นต้องนำมาใช้ในตัวโปรแกรมและ Project ที่ทำงานอยู่

Option

กำหนดรายละเอียดต่าง ๆ ของคอมไพเลอร์เช้น Directories Compiler เป็นต้น

Window

จัดการเกี่ยวกับหน้าต่างที่ใช้ในการเขียนโปรแกรม

Help

ขอความช่วยเหลือหรือรายละเอียดเกี่ยวกับโปรแกรมในลักษณะต่าง ๆ

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

 ตัวแปร (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

 

int num;

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

float y;

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

char n;

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

void main()

 



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

1.

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

2.

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

3.

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

4.

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

5.

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

 

 

 

 

 

 

 

 

ในการประกาศสร้างตัวแปรต้องมีการกำหนดชื่อ ซึ่งชื่อนั้นไม่ใช่ว่าจะตั้งให้สื่อความหมายถึง

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

ตัวแปรเอาไว้  แล้วถ้าตั้งชื่อผิดหลักการเหล่านี้  โปรแกรมจะไม่สามารถทำงานได้  หลักการตั้ง

ชื่อตัวแปรในภาษา C แสดงไว้ดังนี้

auto

default

float

register

struct

volatile

break

do

far

return

switch

while

case

double

goto

short

typedef

char

else

if

signed

union

const

enum

int

sizeof

unsigned

continue

extern

long

static

void

 

 

 

 

 

 

 

ตัวอย่างการตั้งชื่อตัวแปรในภาษา C ทั้งที่ถูกต้องและไม่ถูกต้องตามหลักการ  แสดงดังนี้

bath_room

ถูกต้อง

n-sync

ผิดหลักการ เนื่องจากมีเครื่องหมาย - ปรากฎในชื่อ

108dots

ผิดหลักการ เนื่องจากขึ้นต้นด้วยตัวเลข

Year#

ผิดหลักการ เนื่องจากมีเครื่องหมาย # อยู่ในชื่อ

_good

ถูกต้อง

goto

ผิดหลักการ  เนื่องจากเป็นคำสงวน

work

ถูกต้อง

break

ผิดหลักการ  เนื่องจากเป็นคำสงวน

เครื่องหมายและการดำเนินการในภาษา C

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

เครื่องหมาย

ความหมาย

ตัวอย่าง

+

บวก

3+2  การบวกเลข 3 บวกกับ 2 ได้ผลลัพธ์คือ 5

-

ลบ

3 - 2 การลบเลข 3 ลบกับ 2 ได้ผลลัพธ์คือ 1

*

คูณ

2*3   การคูณเลข 3 บวกกับ 2 ได้ผลลัพธ์คือ 6

/

หาร

15/2  การหาร 15 หารกับ 2 ได้ผลลัพธ์คือ 7

%

หารเอาเศษ

15%2การหารเอาเศษ 15 หารกับ 2 ได้ผลลัพธ์คือ 1

++

เพิ่มค่าขึ้น 1 โดย
a++ จะนำค่าของ a ไปใช้ก่อนแล้วจึงเพิ่มค่าของ a ขึ้น 1


++a จะเพิ่มค่าของ a ขึ้น 1 ก่อนแล้วจึงนำค่าของ a ไปใช้

b=a++;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
b=a;
a=a+1;


b=++a;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
a=a+1;
b=a;

--

ลดค่า 1 โดย
a-- จะนำค่าของ a ไปใช้ก่อน แล้วจึงลดค่าของ a ลง 1


--a จะลดค่าของ a ลง 1 ก่อน แล้วจึงนำค่าของ a ไปใช้

b=a--;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
ิb=a;
a=a-1;

b=--a;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
a=a-1;
b=a;

 ตัวดำเนินการเปรียบเทียบ

     ใช้เปรียบเทียบค่า 2 ค่าเพื่อแสดงการเลือก ซึ่งโปรแกรมโดยทั่วไปใช้ในการทดสอบเงื่อนไขตามที่กำหนด
การเปรียบเทียบโดยการเท่ากันของ 2 ค่าจะใช้เครื่องหมาย ==

เครื่องหมาย

ความหมาย

ตัวอย่าง

มากกว่า

a > b   a มากกว่า b

>==

มากกว่าหรือเท่ากับ

a >= b a มากกว่าหรือเท่ากับ b

น้อยกว่า

a < b   a น้อยกว่า b

<==

น้อยกว่าหรือเท่ากับ

a <= b a น้อยกว่าหรือเท่ากับ b

==

เท่ากับ

a == b a เท่ากับ b

!=

ไม่เท่ากับ

a != b  a ไม่เท่ากับ b

 

ตัวดำเนินการตรรกะ  ความหมาย   การดำเนินการเปรียบเทียบค่าทางตรรกะ( และ หรือ ไม่)

เครื่องหมาย

ความหมาย

ตัวอย่าง

&&

และ

x < 60 && x > 50   กำหนดให้ x มีค่าในช่วง 50 ถึง 60

||

หรือ

x == 10 || x == 15     กำหนดให้ x มีค่าเท่ากับตัวเลข 2 ค่า คือ 10 หรือ 15

!

ไม่

x = 10  !x  กำหนดให้ x ไม่เท่ากับ 10

การเขียนนิพจน์ในภาษา C

     นิพจน์ในภาษา C ก็คือ การนำข้อมูลและตัวแปรในภาษา C มาดำเนินการด้วยเครื่องหมายทางคณิตศาสตร์  ตรรกศาสตร์  หรือเครื่องหมายเปรียบเทียบในภาษา C เป็นตัวสั่งงาน 

  ลำดับความสำคัญของเครื่องหมาย  ส่วนใหญ่นิพจน์ที่เขียนขึ้นในโปรแกรมมักจะซับซ้อน  มีการดำเนินการหลายอย่างปะปนอยู่ภายในนิพจน์เดียวกัน 

ลำดับความสำคัญ

ลำดับความสำคัญจากสูงไปต่ำ

1

( )

2

!,++,- -

3

*,/,%

4

+,-

5

<,<=,>,>=

6

= =,!=

7

&&

8

||

9

*=,/=,%=,+=,-=

แสดงผลออกทางหน้าจอ

          การทำงานพื้นฐานที่สึดหรือเรียกได้ว่าเป็นส่วนหนึ่งในการทำงานของทุกโปรแกรมคือ  การแสดงผลข้อมูลออกทางจอภาพ 

 โดยในภาษา C  นั้น  การแสดงผลข้อมูลออกทางจอสามารถทำได้ดังนี้

คำสั่ง printf

          คำสั่ง printf  ถือได้ว่าเป็นคำสั่งพื้นฐานที่สุดในการแสดงผลข้อมูลทุกชนิดออกทางหน้าจอไม่ว่าจะเป็นจำนวนเต็ม int

 ทศนิยม float ข้อความ string  หรืออักขระ  นอกจากนี้คำสั่งยังมีความยืดหยุ่นสูง  โดยเราสามารถกำหนดหรือจัดรูปแบบการ

  แสดงผลให้มีระเบียบหรือเหมาะสมตามความต้องการได้อีกด้วย 

รูปแบบคำสั่ง prinft

printf ("format",variable);

format

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

variable

     ตัวแปรหรือนิพจน์ที่ต้องการนำค่าไปแสดงผลให้ตรงกับรหัสควบคุมรูปแบบที่กำหนดไว้

รหัสควบคุมรูปแบบการแสดงผลค่าของตัวแปรออกทางหน้าจอ  แสดงได้ดังนี้

รหัสควบคุมรูปแบบ

การนำไปใช้งาน

%d

แสดงผลค่าของตัวแปรชนิดจำนวนเต็ม

%u

แสดงผลค่าของตัวแปรชนิดจำนวนเต็มบวก

%f

แสดงผลค่าของตัวแปรชนิดจำนวนทศนิยม

%c

แสดงผลอักขระ 1 ตัว

%s

แสดงผลข้อความ หรืออักขระมากกว่า 1 ตัว

           ส่วนตัวอย่างการใช้คำสั่ง  printf  แสดงผลจากค่าของตัวแปรหรือนิพจน์ การคำนวณออกทางหน้าจอ  แสดงได้ดังนี้ 

โดยกำหนดให้   ตัวแปร  x  เก็บจำนวนเต็ม  45

printf("total value = %d",x);   แสดงข้อความ total value = 45 ออกทางจอภาพ

แสดงผลให้เป็นระเบียบด้วยอักขระควบคุมการแสดงผล

          นอกจากนี้เรายังสามารถจัดรูปแบบการแสดงผลให้ดูเป็นระเบียบมากขึ้น  อย่างเช่นขึ้นบรรทัดใหม่  หลังแสดงข้อความ 

หรือเว้นระยะแท็บระหว่างข้อความ  โดยใช้อักขระควบคุมการแสดงผลร่วมกับคำสั่ง printf

อักขระควบคุมการแสดงผล

ความหมาย

\n

ขึ้นบรรทัดใหม่

\t

เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร)

\r

กำหนดให้เคอร์เซอร์ไปอยู่ต้นบรรทัด

\f

เว้นช่องว่างเป็นระยะ 1 หน้าจอ

\b

ลบอักขระสุดท้ายออก 1 ตัว

          การนำอักขระควบคุมการแสดงผลมาใช้  เราต้องเขียนอักขระควบคุมการแสดงผลไว้ภายในเครื่องหมาย "  "  ดังตัวอย่าง

printf("Hello ... \n");

แสดงข้อความ Hello ...  แล้วขึ้นบรรทัดใหม่

printf("Hello...\nLampang\n");

แสดงข้อความ Hello ...แล้วขึ้นบรรทัดใหม่พร้อมกับแสดงข้อความLampang จากนั้นขึ้นบรรทัดใหม่อีกครั้ง

printf("Num1 = %d\tNum2 = %f\n",x,z);

แสดงข้อความ Num1 = 45  ตามด้วยการเว้นช่องว่าง 1 แท็บแล้วต่อด้วยข้อความ Num2 = 20.153

 

คำสั่งรับข้อมูลจากคีย์บอร์ด

          การทำงานของโปรแกรมส่วนใหญ่มักจะเป้นการเชื่อมโยงกับผู้ใช้แบบ  2  ทิศทาง  คือ  ทั้งภาคของการแสดงผลการ

ทำงานออกทางหน้าจอ  และภาคของการรับข้อมูลจากผู้ใช้เข้ามาทางคีย์บอร์ด  เพื่อร่วมในการประมวลผลของโปรแกรม 

คำสั่ง  scanf()

          ในภาษา C  การรับข้อมูลจากคีย์บอร์ดสามารถทำได้โดยการเรียกใช้ฟังก์ชัน  scanf()  ซึ่งเป็นฟังก์ชันมาตรฐานสำหรับ

รับข้อมูลจากคีย์บอร์ด  โดยสามารถรับข้อมูลได้ทุกประเภท  ไม่ว่าจะเป็นจำนวนเต็ม  ทศนิยม  อักขระ หรือข้อความ 

รูปแบบคำสั่ง  scanf()

scanf("format",&variable);

format

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

variable

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

edit @ 28 Sep 2011 00:07:51 by pakpoom

Comment

smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry
smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

Tweet