Tải bản đầy đủ (.pdf) (6 trang)

Tài liệu Giáo trình ngôn ngữ C++ Part 2 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (470.74 KB, 6 trang )

Giáo trình tin học cơ sở II - N
gụn ng
C

8
II. Bin, hng v cỏc kiu d liu trong C

II.1.Bin


Khỏi nim
Bin l i lng cú giỏ tr thuc mt kiu d liu no ú m c chp nhn bi
ngụn ng (xem phn cỏc kiu d liu), giỏ tr ca bin cú th thay i trong thi gian tn
ti ca bin (hay ta núi trong vũng i ca bin).
Cỏc thnh phn ca chng trỡnh s c lu trong b nh trong v bin cng khụng
ngoi l. Tc l bin cng c cp phỏt mt vựng nh lu gi giỏ tr thuc mt kiu
d liu xỏc nh. Vỡ th theo mt khớa cnh no ú cú th núi bin l mt cỏi tờn i din
cho ụ nh trong mỏy tớnh, chng trỡnh cú th truy xut ụ nh (ly hoc ghi giỏ tr) thụng
qua tờn bin.
Mt bin núi chung phi cú cỏc c trng sau:
- Tờn bin
- Kiu d liu: kiu ca bin
- Giỏ tr hin ti nú ang lu gi (giỏ tr ca bin)
( tuy nhiờn sau ny chỳng ta thy trong C cú bin kiu void, ban u coi õy l bin
khụng kiu nhng dn quan nim ú cng l 1 tờn kiu v l kiu khụng xỏc nh)

Tờn bin
Trong C cng nh cỏc ngụn ng lp trỡnh khỏc cỏc bin u phi cú tờn, cỏc tờn bin
hay núi chung l tờn (gm tờn bin, tờn hng, tờn hm, hoc t khoỏ) l mt xõu kớ t v
phi tuõn theo cỏc quy nh ca ngụn ng ú l:


Tờn ch cú th cha kớ t l ch cỏi (a ,..,z; A,..,Z); ch s( 0,..,9) v kớ
t gch di (_), s kớ t khụng quỏ 32.

Kớ t u tiờn ca tờn phi l ch cỏi hoc kớ t gch di

Trong tờn phõn bit ch hoa v ch thng. Tc l hai xõu cựng cỏc kớ t nhng
khỏc nhau bi loi ch hoa hoc ch thng l hai tờn khỏc nhau, vớ d nh vi 2 xõu kớ
t AB v Ab l hai tờn hon ton phõn bit nhau.

Cỏc t khoỏ ca ngụn ng khụng c dựng lm tờn bin, tờn hng, hay tờn hm.
Hay núi khỏc i, trong chng trỡnh cú th bn phi dựng n tờn, tờn ny do bn t theo
ý tng ca bn nhng khụng c trựng vi cỏc t khoỏ.

Vớ d cỏc tờn hp l v khụng hp l

Tờn bin hp l / khụng hp l
Percent hp l
Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
C

9
y2x5__fg7h hợp lệ
ho_ten hợp lệ
_1990_tax hợp lệ
A hợp lệ
ngay-sinh không hợp lệ vì có kí tự -(dấu trừ)
double không hợp lệ vì trùng với từ khoá
9winter
không hợp lệ vì kí tự đầu tiên

là số

¾ Câu lệnh định nghĩa biến
Trong ngôn ngữ lập trình có cấu trúc nói chung và trong C nói riêng, mọi biến đều
phải được định nghĩa trước khi sử dụng. Câu lệnh định nghĩa biến báo cho chương trình
dịch biết các thông tin tên, kiểu dữ liệu và có thể cả giá trị khởi đầu của biến.
Cú pháp khai báo biến :
<kiểu_dữ_liệu> <biến_1> [ = <giá_trị_1>] [, <biến_2>[ = <giá_trị_2>,..];
trong đó:
• <kiểu_dữ_liệu> là tên một kiểu dữ liệu đã tồn tại, đó có thể là tên kiểu dữ liệu
chuẩn hoặc kiểu dữ liệu định nghĩa bởi người lập trình.
• <biến_1>, <biến_2> là các tên biến cần khai báo, các tên này phải tuân theo quy
tắc về tên của ngôn ngữ.
• <giá_tri_1>, <giá_trị_2> là các giá trị khởi đầu cho các biến tương ứng <biến_1>,
<biến_2>. Các thành phần này là tuỳ chọn, nếu có thì giá trị này phải phù hợp với kiểu
của biến.
Trên một dòng lệnh định nghĩa có thể khai báo nhiều biến cùng kiểu, với tên là
<biến_1>, <biến_2>,.. các biến cách nhau bởi dấu phẩy (,) dòng khai báo kết thúc bằng
dấu chấm phẩy (;).
Ví dụ:
int a = 4, b = 6;
float x =4.5,y,z;
unsigned u ;
char c =’A’;
Khi gặp các lệnh định nghĩa biến, chương trình dịch sẽ cấp phát vùng nhớ có kích
thước phù hợp với kiểu dữ liệu của biến, nếu có thành phần khởi đầu thì sẽ gán giá trị
khởi đầu vào vùng nhớ đó.

Giáo trình tin học cơ sở II - N
gụn ng

C

10
II.2. Hng

Khỏi nim
Hng l i lng cú giỏ tr thuc mt kiu d liu nht nh, nhng giỏ tr ca hng
khụng th thay i trong thi gian tn ti ca nú.
Cú hai loi hng mt l cỏc hng khụng cú tờn (chỳng ta s gi l hng thng) ú l
cỏc giỏ tr c th tc thi nh : 8, hay 9.5 hoc d.
Loi th hai l cỏc hng cú tờn ( gi l hng ký hiu). Cỏc hng ký hiu cng phi
nh ngha trc khi s dng, tờn ca hng c t theo quy tc ca tờn. Sau õy nu
khụng cú iu gỡ c bit thỡ chỳng ta gi chung l hng

nh ngha hng
Cỏc hng c nh ngha bng t khoỏ const vi cỳ phỏp nh sau:
const <kiu_d_liu> <tờn_hng> = <giỏ_tr>;
hoc const <tờn_hng> = <giỏ_tr>;
Trong dng th hai, chng trỡnh dch t ng n nh kiu ca hng l kiu ngm
nh, vi BC hay TC l int v nh vy chng trỡnh dch s t ng chuyn kiu ca
<giỏ_tr> v kiu int.
Vớ d:
const int a = 5; // nh ngha hng a kiu nguyờn, cú giỏ tr l 5
const float x = 4; // hng x kiu thc, cú giỏ tr l 4.0
const d = 7; // hng d kiu int, giỏ tr l 7
const c = 1; // hng c kiu int giỏ tr = 49
const char * s = Ngon ngu C;// s l hng con tr, tr ti xõu Ngo ngu C
Cỏc hng s trong C c ngm hiu l h 10, nhng bn cú th vit cỏc hng trong
h 16 hoc 8 bng cỳ phỏp, giỏ tr s h 16 c bt u bng 0x, vớ d nh 0x24, 0xA1
cỏc s h 8 bt u bi s 0, vớ d 025, 057.

Cỏc hng kớ t c vit trong cp du vớ d a, 2 cỏc giỏ tr ny c C hiu l
s nguyờn cú giỏ tr bng mó ca kớ t; a cú giỏ tr l 97, B cú giỏ tr bng 66.
Cỏc xõu kớ t l dóy cỏc kớ t c vit trong cp , vớ d Ngon ngu C, a (xõu kớ
t s c gii thiu trong phn sau)
Chỳ ý: Cỏc bin, hng cú th c nh ngha ngoi mi hm, trong hm hoc trong
mt khi lnh. Vi C chun thỡ khi nh ngha bin, hng trong mt khi thỡ dũng nh
ngha phi cỏc dũng u tiờn ca khi, tc l trc tt c cỏc lnh khỏc ca khi,
nhng trong C++ bn cú th t dũng nh ngha bt k v trớ no.

Giáo trình tin học cơ sở II - N
gụn ng
C

11
II.3. Cỏc kiu d liu chun n gin trong C
Mt trong mc ớch ca cỏc chng trỡnh l x lý, bin i thụng tin, cỏc thụng tin
cn x lý phi c biu din theo mt cu trỳc xỏc nh no ú ta gi l cỏc kiu d liu.
Cỏc kiu d liu ny c quy nh bi ngụn ng lp trỡnh, hay núi khỏc i mi ngụn ng
cú tp cỏc kiu d liu khỏc nhau. Khụng hon ton ging nh khỏi nim kiu d liu
trong toỏn hc, trong cỏc ngụn ng lp trỡnh núi chung mi kiu d liu ch biu din
c mt min giỏ xỏc nh no ú. Chng hn nh s nguyờn chỳng ta hiu l cỏc s
nguyờn t - ti +, nhng trong ngụn ng lp trỡnh min cỏc giỏ tr ny b gii hn, s
gii hn ny ph thuc vo kớch thc ca vựng nh biu din s ú. Vỡ vy khi núi ti
mt kiu d liu chỳng ta phi cp ti 3 thụng tin c trng ca nú ú l:
- tờn kiu d liu
- kớch thc vựng nh biu din nú,min giỏ tr
- cỏc phộp toỏn cú th s dng.
Cỏc kiu d liu n gin trong C ch l cỏc kiu s, thuc hai nhúm chớnh ú l s
nguyờn v s thc (s du phy ng).


Nhúm cỏc kiu nguyờn gm cú: char, unsigned char, int, unsigned int, short, unsigned
short, long, unsigned long c mụ t trong bng sau:

Kiu d liu
tờn kiu (t
khoỏ tờn kiu)
kớch
thc
min giỏ tr
kớ t cú du char 1 byte t -128 ti 127
kớ t khụng du unsigned char 1 byte t 0 ti 255
s nguyờn cú du int 2 byte t -32768 ti 32767
s nguyờn khụng du unsigned int 2 byte t 0 ti 65535
s nguyờn ngn cú du short 2 byte t -32768 ti 32767
s nguyờn ngn cú du unsigned short 2 byte t 0 ti 65535
s nguyờn di cú du long 4 byte t -2,147,483,648 ti 2,147,438,647
s nguyờn di khụng du unsigned long 4 byte t 0 ti 4,294,967,295

Khuụn dng s nguyờn: mc dự nh trờn chỳng ta cú kiu s nguyờn v kớ t (char)
nhng bn cht trong C chỳng u l cỏc s nguyờn m thụi. H thng biu din cỏc s
nguyờn di dng dóy cỏc bit (s nh phõn). Nh chỳng ta ó bit, mt bit ch cú th biu
din c 2 giỏ tr l 0 v 1.
Ta thy vi mt nhúm cú 2 bit (2 s nh phõn) thỡ cú th lu c giỏ tr nh nht khi
c 2 bit u bng 0 v ln nht khi c 2 bit bng 1 cú ngha l nú cú th biu din c
cỏc s 0,1,2,3 tc 2
2
giỏ tr khỏc nhau. Vi s nguyờn 1 byte (unsigned char) thỡ giỏ tr nú
cú th lu tr l 0,1,..,255.
Tng quỏt nu kiu d liu cú kớch thc n bit thỡ cú th biu din 2
n

giỏ tr khỏc
nhau l: 0,1,..(2
n
1).
Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
C

12

Nhưng đó là trong trường hợp tất cả các bit dùng để biểu diễn giá trị số(các con số),
tức là ta có số nguyên không dấu (số dương – unsigned ). Nhưng số nguyên chúng ta cần
có thể là số âm (số có dấu – signed), trong trường hợp này bit cao nhất được dùng biểu
diễn dấu, như vậy chỉ còn n-1 bit để biểu diễn giá trị. Nếu số âm (có dấu) thì bit dấu có
giá trị =1, ngược lại, nếu số có giá trị dương thì bit dấu có giá trị =0.

Ví dụ với kiểu char (signed char) một byte thì có 7 bit để biểu diễn các con số, vậy nó
có thể biểu diễn các số dương 0,1,..,127 và (theo cách biểu diễn số âm – xem phần hệ đếm
và biểu diễn số âm) nó biểu diễn được các số âm –1,..-128. Miền giá trị của các kiểu số
nguyên khác được diễn giải tượng tự.
Các bạn có thể đặt câu hỏi tại sao đã có kiểu int lại vẫn có kiểu short hay có sự khác
nhau giữa int và short hay không?. Thực ra sự khác nhau giữa chúng phụ thuộc vào hệ
thống mà bạn dùng. Trên môi trường 32 bit thì int có kích thước là 4 byte, short có kích
thước 2 byte, còn trên môi trường 16 bit thì chúng giống nhau.
Thực ra sự quy định kích thước của các kiểu nguyên chỉ là:
− kiểu char kích thước là 1 byte
− kiểu short kích thước là 2 byte
− kiểu long kích thước là 4 byte
− kích thước kiểu short <= kích thước kiểu int <= kích thước kiểu long
¾

Nhóm các kiểu số thực gồm: float, double, long double
Khuôn dạng biểu diễn của số thực không giống như số nguyên. Một số thực nói chung
được biểu diễn theo ký pháp khoa học gồm phần định trị và phần mũ.

Trong giáo trình này chúng tôi không có ý định trình bày chi tiết định dạng của số
thực. Bạn đọc cần quan tâm tới vấn đề này hãy tham khảo [3 - Chương 14]. Chính vì

×