บทที่ 2 การเขียนคำสั่งขั้นพื้นฐาน

Preview:

DESCRIPTION

 

Citation preview

การเขี�ยนคำาสั่� งขี��นพื้��นฐาน

บทท� 2

ประเภทขีองขี�อมู�ลและตั�วดำาเน"นการ

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

ชน"ดำขีองขี�อมู�ล           ภาษาซี�เป/นอ�กภาษาหน0�งที่��ม�ช้น�ดของ

ข อม!ลให ใช้ งานหลายอย�างด วยก�น ซี0�งช้น�ดของข อม!ลแต�ละอย�างม�ขนาดเน��อที่��ที่��ใช้ ในหน�วย

คืวามจ�าที่��แตกต�างก�น และเน��องจากการที่��ม� ขนาดที่��แตกต�างก�นไป ด�งน��นในการเล�อกใช้ งาน

ประเภที่ข อม!ลก�คืวรจะคื�าน0งถ้0งคืวามจ�าเป/นในการใช้ งานด วย

ช้น�ดขนาดคืวามกว าง

ช้�วงของคื�า การใช้ งาน

char 8 บ�ต ASCII character (-128 ถ้0ง 127)

เก�บข อม!ลช้น�ดอ�กขระ

Unsigned char

8 บ�ต 0-255เก�บข อม!ลอ�กขระแบบไม�คื�ด

เคืร��องหมายint 16 บ�ต -32768 ถ้0ง 32767 เก�บข อม!ลช้น�ดจ�านวนเต�ม

long 32 บ�ต -2147483648 ถ้0ง 2147483649

เก�บข อม!ลช้น�ดจ�านวนเต�มแบบยาว

Float 32 บ�ต3.4E-38 ถ้0ง

3.4E+38 หร�อ ที่ศน�ยม 6 ต�าแหน�ง

เก�บข อม!ลช้น�ดเลขที่ศน�ยม

Double 64 บ�ต1.7E-308 ถ้0ง

1.7E+308 หร�อ ที่ศน�ยม 12 ต�าแหน�ง

เก�บข อม!ลช้น�ดเลขที่ศน�ยม

Unsigned int

16 บ�ต 0 ถ้0ง 65535เก�บข อม!ลช้น�ดจ�านวนเต�ม ไม�

คื�ดเคืร��องหมาย

Unsigned long

32 บ�ต 0 ถ้0ง 4294967296เก�บข อม!ลช้น�ดจ�านวนเต�ม

แบบยาว ไม�คื�ดเคืร��องหมาย

ร�ปแบบในการประกาศตั�วแปรในภาษา C          การสำร างต�วแปรข0�นมาใช้ งานจะเร�ยกว�า การประกาศต�วแปร (Variable Declaration) โดยเข�ยนคื�าสำ��งให ถ้!กต องตามแบบการประกาศต�วแปร แสำดงด�งน��type name;

type : ช้น�ดของต�วแปร name : ช้��อของต�วแปร ซี0�งต องต��งให ถ้!กต องตามหล�กของภาษา C การเข�ยนคื�าสำ��งเพื้��อประกาศต�วแปร สำ�วนใหญ่�แล วจะเข�ยนไว ในสำ�วนห�วของโปรแกรมก�อนฟั5งก�ช้� �น main ซี0�งการเข�ยนไว ในต�าแหน�งด�งกล�าว จะที่�าให ต�วแปรเหล�าน��นสำามารถ้เร�ยกใช้ จากที่��ใดก�ได ในโปรแกรม

ตั�วอย)าง

#include <stdio.h>int num; การร�บต�วแปรช้��อ num เพื้��อเก�บข อม!ลช้น�ดต�วเลขfloat y; การร�บต�วแปรช้��อ y เก�บเป/นข อม!ลต�วเลขที่ศน�ยม

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

1.ต องข0�นต นด วยต�วอ�กษร A-Z หร�อ a-z หร�อ

เคืร��องหมาย _(Underscore) เที่�าน��น

2.ภายในช้��อต�วแปรสำามารถ้ใช้ ต�วอ�กษร A-Z หร�อ a-

z หร�อต�วเลข 0-9 หร�อเคืร��องหมาย _

3.ภายในช้��อห ามเว นช้�องว�าง หร�อใช้ สำ�ญ่ล�กษณ์�นอก

เหน�อจากข อ 2

4. ต�วอ�กษรเล�กหร�อใหญ่�ม�คืวามหมายแตกต�างก�น

5.ห ามต��งช้��อซี��าก�บคื�าสำงวน (Reserved Word)

ด�งน��

คื�าสำงวนใน C มาตรฐาน ( ANSI Standard C)

autodefault

floatregist

erstruc

tvolati

lebreak

do far returnswitc

hwhile case

double

gotoshor

ttyped

efchar else if

signed

union

const

enum intsizeo

funsigned

continue

extern

long static void      

คื�าสำงวนที่��ม�เพื้��มใน Borland C

asm _cs _ds _es _ss cdecl farhug

einterrupt

nearpasc

al_export

   

char name[n] = "str";name

: ช้��อของต�วแปร

n: ขนาดของข อคืวาม หร�อจ�านวนอ�กขระในข อคืวาม

str

: ข อคืวามเร��มต นที่��จะก�าหนดให ก�บต�วแปรซี0�งต องเข�ยนไว ภายในเคืร��องหมาย " "

ตั�วแปรสั่าหร�บขี�อคำวามู          ในภาษา C ไม�ม�การก�าหนดช้น�ดของต�วแปรสำ�าหร�บข อคืวามโดยตรง แต�จะใช้ การก�าหนดช้น�ดของต�วแปรอ�กขระ (char) ร�วมก�บการก�าหนดขนาดแที่น และจะเร�ยกต�วแปรสำ�าหร�บเก�บข อคืวามว�า ต�วแปรสำตร�ง (string) ร!ปแบบการประกาศต�วแปรสำตร�งแสำดงได ด�งน��

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

เคืร��องหมาย

คืวามหมาย ต�วอย�าง

+ บวก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

เคำร� องหมูายการคำานวณทางคำณ"ตัศาสั่ตัร,     เคืร��องหมายที่��ใช้ สำ�าหร�บการคื�านวณ์ที่างคืณ์�ตศาสำตร�ใช้ ภาษา C  สำร:ปด�งน��

เคืร��องหมาย คืวามหมาย ต�วอย�าง>   มากกว�า a > b   a มากกว�า b

>==มากกว�าหร�อ

เที่�าก�บa >= b a มากกว�าหร�อ

เที่�าก�บ b<   น อยกว�า a < b   a น อยกว�า b

<==น อยกว�าหร�อ

เที่�าก�บa <= b a น อยกว�าหร�อ

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

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

เคืร��องหมาย

คืวามหมาย

ต�วอย�าง

&& และx < 60 && x > 50   ก�าหนดให x ม�

คื�าในช้�วง 50 ถ้0ง 60

|| หร�อx == 10 || x == 15   ก�าหนดให x

ม�คื�าเที่�าก�บต�วเลข 2 คื�า คื�อ 10 หร�อ 15

! ไม� x = 10  !x  ก�าหนดให x ไม�เที่�าก�บ 10

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

ล�าด�บคืวามสำ�าคื�ญ่

ล�าด�บคืวามสำ�าคื�ญ่จากสำ!งไปต��า

1 ( )

2 *,/,%

3 +,-

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

คำาสั่� งในภาษา Cคำาสั่� ง printf          คื�าสำ��ง printf  ถ้�อได ว�าเป/นคื�าสำ��งพื้��นฐานที่��สำ:ดในการแสำดงผ่ลข อม!ลที่:กช้น�ดออกที่างหน าจอไม�ว�าจะเป/นจ�านวนเต�ม int ที่ศน�ยม float ข อคืวาม string  หร�ออ�กขระ  นอกจากน��คื�าสำ��งย�งม�คืวามย�ดหย:�นสำ!ง  โดยเราสำามารถ้ก�าหนดหร�อจ�ดร!ปแบบการแสำดงผ่ลให ม�ระเบ�ยบหร�อเหมาะสำมตามคืวามต องการได อ�กด วย 

รห�สำคืวบคื:มร!ปแบบ

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

%dแสำดงผ่ลคื�าของต�วแปรช้น�ด

จ�านวนเต�ม

%uแสำดงผ่ลคื�าของต�วแปรช้น�ด

จ�านวนเต�มบวก

%fแสำดงผ่ลคื�าของต�วแปรช้น�ดจ�านวน

ที่ศน�ยม

%c แสำดงผ่ลอ�กขระ 1 ต�ว

%sแสำดงผ่ลข อคืวาม หร�ออ�กขระ

มากกว�า 1 ต�ว

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

printf("Hello Program C");

แสำดงข อคืวาม Hello

Program C ออกที่างจอภาพื้

printf("Lampang kunlayanee

school");

แสำดงข อคืวาม Lampang kunlayanee school

ออกที่างจอภาพื้

printf("Lampang Thailand");

แสำดงข อคืวาม Lampang

Thailand  ออกที่างจอภาพื้

ตั�วอย)างการใช�คำาสั่� ง printf  แสั่ดำงผลขี�อคำวามูธรรมูดำาออกทางหน�าจอ ดำ�งน��

คำาสั่� ง  scanf()          ในภาษา C  การร�บข อม!ลจากคื�ย�บอร�ดสำามารถ้ที่�าได โดยการเร�ยกใช้ ฟั5งก�ช้�น  scanf()  ซี0�งเป/นฟั5งก�ช้�นมาตรฐานสำ�าหร�บร�บข อม!ลจากคื�ย�บอร�ด  โดยสำามารถ้ร�บข อม!ลได ที่:กประเภที่  ไม�ว�าจะเป/นจ�านวนเต�ม  ที่ศน�ยม  อ�กขระ หร�อข อคืวาม 

ร�ปแบบคำาสั่� ง  scanf()scanf("format",&variable);form

at

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

variable

     ต�วแปรที่��จะใช้ เก�บคื�าข อม!ลที่��ร �บเข ามาจากคื�ย�บอร�ด  โดยช้น�ดของต�วแปรจะต องตรงก�บรห�สำคืวบคื:มร!ปแบบที่��ก�าหนดไว   นอกจากน��หน าช้��อของต�วแปรจะต องน�าหน าด วยเคืร��องหมาย  &  ยกเว นต�วแปรสำตร�ง  สำ�าหร�บเก�บข อคืวามเที่�าน��นที่��ไม�ต องน�าหน าด วยเคืร��องหมาย &

จ�ดำทาโดำยนายอนพื้�ช้ บ�อพื้ลอย เลขที่�� 2นายว:ฒิ�ภ�ที่ร เถ้��อนคื�า เลขที่�� 3นายสำ:ที่ธ์�เดช้ ผ่�วอ�อนด� เลขที่�� 8นายภคืว�ต ภคืว�กร�ย เลขที่�� 12นายว�ช้า มโนม�ยเพื้��มพื้!น เลขที่�� 13นายศ�ร�ว�ฒิน� พื้:ที่ธ์อ�นที่ร�ศร เลขที่�� 14

ม.6/2

Recommended