โปรแกรมภาษาC++

posted on 04 Jul 2011 19:33 by amisocute

                                                 ภาษาซี (C Language)


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

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

Operating System

ทำความรู้จักกับเพื่อนใหม่ Turbo  c/c++ Version 3.0

         Turbo  c/c++ Version 3.0 เป็นโปรแกรมเขียนภาษา C  โดยบอร์แลนด์  ซอฟต์แวร์

คอร์ปอเรชั่น (Borland Software Corporation)  ซึ่งเพรียบพร้อมไปด้วยเครื่องมือต่างๆ

มากมายอาทิเช่น โปรแกรมเรียบเรียงข้อความ  และโปรแกรมตรวจสอบและแปลคำสั่ง

เมนูหลัก (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()

 

{

 

     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) ดังนี้

 

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 ไม่มีการกำหนดชนิดของตัวแปรสำหรับข้อความโดยตรง  แต่จะใช้การกำหนดชนิดของตัวแปรอักขระ (char) ร่วมกับการกำหนดขนาดแทน  และจะเรียกตัวแปรสำหรับเก้บข้อความว่า  ตัวแปรสตริง (string) รูปแบบการประกาศตัวแปรสตริงแสดงได้ดังนี้

char name[n] = "str";

name

ชื่อของตัวแปร

n

ขนาดของข้อความ หรือจำนวนอักขระในข้อความ

str

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

ตัวอย่างการประกาศตัวแปรสำหรับเก็บข้อความ  แสดงได้ดังนี้

char name[5] = "kwan" ;

สร้างตัวแปร name สำหรับเก็บ ข้อความ kwan ซึ่งมี  4 ตัวอักษร ดังนั้น name ต้องมีขนาด 5

char year[5] = "2549";

สร้างตัวแปร year สำหรับเก็บ ข้อความ 2549 ซึ่งมี  4 ตัวอักษร ดังนั้น year ต้องมีขนาด 5

char product_id[4] = "A01";

สร้างตัวแปร product_id สำหรับเก็บ ข้อความ A01 ซึ่งมี  3 ตัวอักษร ดังนั้น product_id ต้องมีขนาด 4

 

เครื่องหมายและการดำเนินการในภาษา 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

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

 

ตัวอย่างการทำงานของโอเปอเรเตอร์

จงหาค่าของนิพจน์  8 + 7 * 6

วิธีทำ
1.  ให้สังเกตที่ตัวโอเปอเรเตอร์ก่อนเสมอว่ามีโอเปอเรเตอร์อะไรบ้าง  ในที่นี้มี + และ *
2.  ทำการไล่ลำดับความสำคัญของโอเปอเรเตอร์ทั้งหมดเปรียบเทียบกัน จากตัวที่มีลำดับความสำคัญสูงสุดไปยังตัวที่มีลำดับสำคับต่ำสุด

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

โอเปอเรเตอร์

 

*

+

3.  จากข้อ  2  จะได้ลำดับการทำงานเป็นดังนี้
     ขั้นที่  1  7 * 6 = 42
ื     ขั้นที่  2  8 + ค่าที่ได้จากขั้นที่  1
                  = 8 + 42 
                          = 50
ดังนั้น          8 + 7 * 6 = 50

จงหานิพจน์ต่อไปนี้

x*y - 20%z

1)

x * y

2)

20%z

3)

1) - 2)

(a - b)*10/c && d + 5

1)

a - b

2)

1)*10

3)

2)/c

4)

d+5

5)

3) && 4)

(a + b) * 4 = = c%d(e+10)

1)

a + b

2)

e + 10

3)

1) * 4

4)

d * 2)

5)

c %4)

6)

3) = = 5)

</