Tải bản đầy đủ (.ppt) (32 trang)

HẰNG, BIẾN và MẢNG (lập TRÌNH c TRONG WINDOW) (chữ biến dạng do slide dùng font VNI times, tải về xem bình thường)

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 (142.29 KB, 32 trang )

Chương III

HẰNG, BIẾN VÀ
MẢNG


HềNG, BIN VAè MANG
Trong chổồng trỗnh C sổớ duỷng cạc dảng
thäng tin (kiãøu giạ trë) sau: säú ngun (int),
säú thæûc hay säú dáúu pháøy âäüng (float),
säú dáúu pháøy âäüng cọ âäü chênh xạc gáúp
âäi (double) v k tỉû (char).
 Hàịng chênh l mäüt giạ trë thäng tin củ
thãø. Biãún v mng l cạc âải lỉåüng mang
tin. Mäùi loải biãún (mng) cọ thãø chỉïa
mäüt dảng thäng tin no âọ, vê dủ biãún
kiãøu int chỉïa âỉåüc cạc säú ngun, biãún
kiãøu float chỉïa âỉåüc cạc säú thỉûc. Âãø
lỉỉ trỉí thäng tin, biãún v mng cáưn phi
âỉåüc cáúp phạt bäü nhåï.


 Ngỉåìi ta chia biãn ( mng) thnh:
-         Biãún (mng) tỉû âäüng
-         Biãún (mng) ngoi
-         Biãún (mng) ténh.
 Biãún (mng) tỉû âäüng chè täưn tải (âỉåüc
cáúp phạt bäü nhåï) khi no chụng âỉåüc sỉí
dủng.
 Biãún (mng) ngoi v ténh täưn taỷi trong
suọỳt thồỡi gian laỡm vióỷc cuớa chổồng trỗnh.


Caùch tọứ chổùc nhổ vỏỷy vổỡa tióỳt kióỷm
bọỹ nhồù (vỗ cuỡng mọỹt khoaớng nhồù luùc thỗ
phỏn cho bióỳn naỡy, luùc thỗ phán cho biãún
khạc), vỉìa cho phẹp sỉí dủng mäüt tãn
biãún cho cạc âäúi tỉåüng khạc nhau m
khäng gáy ra mäüt sỉû nháưm láùn no.


I Kiãøu dỉỵ liãûu
Trong C sỉí dủng cạc kiãøu dỉỵ liãûu sau:
-         Kyï tæû (char)
-         Säú nguyãn (int)
-         Säú dáúu pháøy âäüng âäü chênh xaïc
âån (float)
-         Säú dáúu pháøy âäüng âäü chênh xaïc
gáúp âäi (float)
1. Mäüt giaï trë kiãøu char chiãúm mäüt
byte (8bit) v biãøu diãùn âỉåüc mäüt k tỉû
thäng qua bng m ASCII
Thỉûc cháút dỉỵ liãûu kiãøu char l mäüt säú
ngun khäng dáúu trong khong tỉì 0 âãún
255.


Dỉåïi âáy l phảm vi v kêch cåỵ biãøu diãùn
ca giạ trë kiãøu char
Kiãøu
char

Phảm vi biãøu

diãùn
0  255

Säú k
tỉû
256

Kêch
thỉåïc
1 byte

2. Giạ trë kiãøu ngun (int). Trong C
cho phẹp sỉí dủng: Säú nguyãn (int),
säú nguyãn daìi (long) vaì säú nguyãn
khäng dáúu (unsigned). Kêch thỉåïc v
phảm vi biãøu diãùn ca chụng l:
Kêch
Kiãøu

Phảm vi biãøu diãùn

int
long int
unsigned

-32768  32767
-2145483648
2145483648

thæåïc

2 byte
4 byte


3. Giạ trë dáúu pháøy âäüng. Trong C cho phẹp
sỉí dủng 2 loải giạ trë dáúu pháøy âäüng l float
v double. Kêch thỉåïc v phảm vë biãøu diãøn
l:

Kiãøu

Phảm vi biãøu
diãùn

Säú chỉỵ
säú cọ
nghéa

Kêch
thỉåïc

1.5e-45 
float
3.4e+38
7-8
4 byte
Gii thêch: Mạy cọ thãø lỉu trỉỵ
double
5.0e-324 
15-16

8 byte
âỉåüc säú1.7e+308
dáúu phy däüng cọ giạ trë

tuût âäúi trong khong tỉì 1.5e-45
âãún 3.4e+38. Säú cọ giạ trë tuût
âäúi nh hån 1.5e-45 âỉåüc xem bàịng
0. Phảm vi biãøu diãùn ca säú double


II.   Hàịng
Hàịng l cạc âải lỉåüng m cạc giạ trë cuớa noù khọng thay
õọứi trong quaù trỗnh tờnh toaùn. Caùc loải hàịng âỉåüc sỉí
dủng:
• Hàịng dáúu cháúm âäüng (float v double) âỉåüc viãút theo
hai cạch
Cạch 1: (K phạp tỉû nhiãn): Säú âỉåüc viãút theo cạch
thäng thỉåìng chè cọ khạc l dáúu pháøy tháûp phán âỉåüc
thay båíi dáúu cháúm.
Vê dủ:
44.356, -43442.54546
Cạch 2: (K phạp khoa hc): Säú âỉåüc tạch thnh hai
pháưn l pháưn âënh trë v pháưn báûc. Pháưn âënh trë l
mäüt säú ngun hồûc säú thỉûc âỉåüc viãút theo k phạp
tỉû nhiãn, pháưn báûc l mäüt säú ngun. Hai pháưn ny
cạch nhau båíi k tỉû e hồûc E
Vê dủ:
123.456e-5 (Biãøu diãùn giaï trë 0.00123456)
0.123E5 (Biãøu diãùn giaï trë 12300)
-123.56e-4 (Biãøu diãùn giaï trë -0.012356)

2E4 (Biãøu diãùn giaï trë 20000)


• Hàịng int l säú ngun cọ giạ trë trong khong
tỉì -32768  32767
• Hàịng long âỉåüc viãút theo kiãøu:
-4234253l hồûc -4234253l
(Thãm l hồûc L). Mäüt säú ngun vỉåüt ra ngoaỡi
mióửn xaùc õởnh cuớa int cuợng õổồỹc xem laỡ hũng
long.
ã Hàịng int hãû 8 âỉåüc viãút theo cạch:
0x1x2x3...
ÅÍ âáy x1, x2, x3, ... l säú ngun trong khong tỉì
0 âãún 7. Hàịng ngun hãû 8 ln ln nháûn giạ
trë dỉång.
• Hàịng int hãû 16 âỉåüc viãút theo cạch:
0xx1x2x3... hồûc 0Xx1x2x3...
ÅÍ âáy x1, x2, x3, ... l säú ngun trong khong tỉì
0 âãún 9 v cạc chỉỵ cại tỉì a(A) âãún f(F). Hàịng
ngun hãû 16 ln ln nháûn giạ trë dỉång.


• Hàịng k tỉû l mäüt k tỉû riãng biãût âỉåüc
viãút trong dáúu nhạy âån (‘), vê dủ: ‘a’, giạ trë ‘a’
chênh l m ASCII ca chỉỵ a. Nhỉ váûy giạ trë
ca ‘a’ l 97. Hàịng k tỉû cọ thãø tham gia vo
cạc phẹp toạn nhỉ mi säú ngun khạc.
 Vê dủ, giạ trë ca biãøu thỉïc:
‘a’ - ‘A’ = 97 - 65 = 32
Hàịng k tỉû cn cọ thãø âỉåüc viãút theo cạch

‘\x1x2x3...’
ÅÍ âáy x1, x2, x3, ... l mäüt säú hãû 8 m hãû giạ
trë ca nọ bàịng m ASCII ca k tỉû cáưn biãøu
diãùn.
Vê dủ:
Chỉỵ a cọ m hãû 10 l 97 âäúi ra hãû 8 l 141.
Váûy hàịng k tỉû ‘a’ cọ thãø viãút dỉåïi dảng
‘\141’


• Hàịng xáu k tỉû: l mäüt dy cạc k tỉû
báút k âàût giỉỵa hai dáúu nhạy kẹp (“)
Vê dủ:
“Dai Hoc Su Pham”
“” /* Xáu räùng */
Caïch âënh nghéa mäüt hàịng:
#define <Tãn hàịng>
ca hàịng>
Hồûc:
const <kiãøu> <tãn hàịng> =
<Giạ trë>


III. Biãún
Mi biãún cáưn phi khai bạo trỉåïc khi sỉí
dủng. Caïch khaïi baïo mäüt biãún:
type <tãn biãún>
Vë trê khaïi baïo biãún: Cạc biãún khai bạo cáưn
âàût ngay sau dáúu { âáưu tiãn ca thán hm v

cáưn âỉïng trỉåïc mi cáu lóỷnh. Nhổ vỏỷy, sau
mọỹt cỏu lóỷnh gaùn chụng haỷn thỗ khäng âỉåüc
khai bạo nỉỵa.
Viãûc khåíi âáưu cho cạc biãún: Nãúu trong khai
baïo, ngay sau tãn iãún ta âàût dáúu = vaỡ mọỹt giaù
trở naỡo õoù thỗ õỏy chờnh laỡ caùch vỉìa khai bạo
vỉìa khåíi âáưu cho mäüt biãún.
Vê dủ:
int a, b = 45, c =50;
float c, b = 35.79;


Cạc kiãøu dỉỵ liãûu
TYPE

FORMAT

BYTES MINIUM

MAXIMUM

Integer

char
signed char
unsigned
char
short [int]
unsigned
short

int
unsigned int
long
unsigned
long

%c
%c
%c
%hi
%hu
%i
%u
%li
%lu

1
1
1
2
2
2 or
4
2 or
4
4
4

CHAR_MIN
SCHAR_MI

N
0
SHRT_MIN
0
INT_MIN
0
LONG_MIN
0

CHAR_MAX
SCHAR_MAX
UCHAR_MAX
SHRT_MAX
USHRT_MAX
INT_MAX
UNIT_MAX
LONG_MAX
ULONG_MAX


TYPE

FORMAT

BYTES MINIUM

MAXIMUM

Real


float
double
long
double

%f %e %g
4
%lf %le %lg
8
%Lf %Le
10
%Lg

FLT_MIN
DBL_MIN
LDBL_MIN

FLT_MAX
DBL_MAX
LDBL_MAX


IV Mäüt säú vê dủ vãư hàịng v biãún:
Vê dủ 1: Chổồng trỗnh hióứn thở caùc giaù trở lồùn nhỏỳt
vaỡ nhoí nháút trong kiãøu säú nguyãn
#include "stdio.h"
#include "limits.h"
int main(void)
{
unsigned long big = ULONG_MAX;

clrscr();
printf(" Minimum int = %i ", INT_MIN);
printf(" \n Maximum int = %i ", INT_MAX);
printf(" \n Maximum unsigned = %u ", UINT_MAX);
printf(" \n Maximum long int = %li ", LONG_MAX);
printf(" \n Maximum unsigned long = %lu ", big);
getch();
return 0;
}


Vờ duỷ 2: Chổồng trỗnh hióứn thở caùc giaù trở
trong kiãøu char
#include "stdio.h"
#include "limits.h"
int main(void)
{
char lower_a ='a';
char lower_z ='z';
clrscr();
printf(" Minimum char = %i ", CHAR_MIN);
printf(" \n Maximum char = %i ", CHAR_MAX);
printf(" \n Sau ky tu '%c' la ky tu '%c' ",lower_a, lower_a+1);
printf(" \n Ky tu hoa cua '%c' la '%c' ",
lower_z,lower_z-'a'+'A');
getch();
return 0;
}



Vê dủ 3: Hy viãút chỉång trinh chuøn âäøi giỉỵa caïc hãû
cå säú:
#include "stdio.h"
int main(void)
{
int dec = 45 , oct = 045, hex = 0xA5, heX =0XA5;
clrscr();
printf("Decimal = %d Octan = %d Hexa = %d, Hexa = %d \n",
dec, oct, hex,heX);
printf("Decimal = %d Octan = %o Hexa = %x\n", dec, oct,
hex);
printf("Decimal = %d Octan = %o Hexa = %X", dec, oct, heX);
getch();
return 0;
}


VI. Mng
Mäüt biãún chè cọ thãø biãøu diãùn âỉåüc
mäüt giạ trë. Âãø biãøu diãùn mäüt dy hay
mäüt bng säú ta cọ thãø dng nhiãưu biãún
nhỉng cạhc ny khäng tiãn låüi. Viãûc sỉí
dủng mng l cạch täút hån nhiãưu trong
nhỉỵng trỉåìng håüp nhỉ váy.
Mng cọ thãø hiãøu l táûp håüp nhiãưu
pháưn tỉí cọ cng mäüt kiãøu giạ trë v cọ
chung mäüt tãn. Mäùi pháưn tỉí ca mng
biãøu diãùn âỉåüc mäüt giạ trở
Coù bao nhióu kióứu bióỳn thỗ cuợng coù bỏỳy
nhióu kióứu mng.

Mng cáưn âỉåüc khai bạo âãø âënh r:
- Loải mng (int, float, double,...)
- Tãn mng
- Säú chiãưu v kêch thỉåïc mäùi chiãöu.


Khai bại mng:
Mng mäüt chiãưu:
<Type > <Array name>[Number of elements]
Mng nhiãưu chiãưu:
<Type> <Array name>[Num of elements1]
[Num of elements ]
Vê dủ:
Khai bạo mng 1 chiãu:
int a[10] /*Khai bạo mäüt mng chỉïa 10
säú ngun*/
Khai bạo mng 2 chiãưu:
int b[5][4] /Khai bạo mäüt ma tráûn cọ
5dng 4 cäüt*/


Chụ :
Cạc pháưn ca mng âỉåüc cáúp phạt cạc
khong nhåï liãn tiãúp nhau trong bäü nhåï.
Nọi cạch khạc pháưn tỉí coï âëa chè liãn
tiãúp nhau trong bäü nhåï.
Trong bäü nhåï, cạc pháưn tỉí ca mng hai
chiãưu âỉåüc sàõp xãúp theo hng.
Truy cáûp âãún tỉìng pháưn tỉí ca mng:
– Mäùi pháưn tỉí ca mng âỉåüc xạc âënh

nhåì cạc chè säú ca nọ.
– Chè säú ca mng phi cọ giạ trë int khäng
vỉåüt quạ kêch thỉåïc ca chiãưu tỉång
ỉïng.
Vê dủ:
a[i]
b[i][j]


V.
1.

Chụ :
Cho phẹp láúy âëa chè ca mng mäüt chiãưu:
&a[I]
V khäng cháúp nháûn phẹp tênh:
&b[i][j]
Khäúi lãûnh:
Âënh nghéa:
Mäüt khäúi lãûnh l gäưm dy cạc cáu lãûnh
âỉåüc bao båíi cạc dáúu { v }
Vê dủ:
{
a = 4;
b = 5;
printf(“\n %6d%6d”,a,b)
}


Mạy xem mäüt khäúi lãûnh cng nhỉ mäüt cáu

lãûnh riãng leớ. Noùi caùhc khaùc, chọứ naỡo trong
chổồng trỗnh õỷt õổồỹc mọỹt cỏu lóỷnh thỗ coù
thóứ õỷt mọỹt khọỳi lóỷnh
2. Khai bạo biãún åí âáưu khäúi lãûnh:
Cạc khai bạo chàóng nhỉỵng cọ thãø âàût åí
âáưu mäùi hm m cn cọ thãø viãút åí âáưu
khäúi lãûnh.
Vê dủ:
{
int a ,b;
float x, y,z;
a=b=3;
x=5; y=a*x;
z= 5-b*y;
printf(“\ny = %8.2f\nz = %8.2f”,y,z);
}


3. Sỉû lng nhau ca cạc khäúi lãûnh:
Bãn trong mäüt khäúi lãûnh lải cọ thãø viãút thãm
cạc khäúi lãûnh khạc. Sỉû läưng nhau theo cạch
nhỉ váûy l khäng hảnh chãú.
4. Phảm vi hoảt âäüng ca biãún v mng:
Mäüt âiãøm cáưn nhåï k l: nãúu ta quan miãûn cạc
biãún v cạc mng khại bạo trong mäüt khäúi lãûnh
s täưn tải sút thồỡi gian laỡm vióỷc cuớa chổồng
trỗnh vaỡ õổồỹc sổớ duỷng trong toaỡn bọỹ chổồng
trỗnh, thỗ caùch hióứu nhổ vỏỷy laỡ khäng dụng.
Thỉûc cháút l: Khi mạy bàõt âáưu lm viãûc vồùi
khoùi lóỷnh thỗ caùc bióỳn vaỡ caùc maớng khai baùo bón

trong noù mồùi õổồỹc hỗnh thaỡnh vaỡ õổồỹc cỏỳp
phaùt bọỹ nhåï. Cạc biãún ny chè täưn tải trong
thåìi gain mạy lm viãûc bãn trong khäúi lãûnh v
chụng s láûp tỉc biãún máút khi ra khoíi khäúi
lãûnh.


Tỉì âọ cáưn nhåï:
- Giạ trë ca mäüt biãún hay mäüt mng khai bạo
bãn trong mäüt khäúi lãûnh khäng thãø âỉa ra âãø
sỉí dủng åí báút k chäø no ngoi khäúi lãûnh
âọ
- ÅÍ báút k chäø no bãn ngoi mäüt khäúi lãûnh ta
khäng thãø can thiãûp âãún cạc biãún v cạc mng
âỉåüc khại bạo bãn trong khäúi lãûnh âọ.
- Nãúu bãn trong mäüt khäúi lãûnh ta duìng mäüt
biãún (hay mäüt maớng) coù tón laỡ a, thỗ õióửu naỡy
khọng laỡm thay âäøi gêa trë ca mäüt biãún khạc
cng cọ tãn l a (nãúu cọ) âỉåüc dng åí âáu âọ
bãn ngoi khäúi lãûnh âọ.
- Tuy nhiãn, nãúu mäüt biãún (mng) â âỉåüc khai
bạo åí ngoi mäüt khäúi lãûnh v trng tãn våïi
cạc bióỳn khai baùo bón trong khọỳi lóỷnh vaỡ naỡy
thỗ bióỳn âọ cọ tãø sỉí dủng c bãn trong cng
nhỉ bãn ngoaìi khäúi lãûnh


Vê duû:
#include "stdio.h"
main()

{
int a, b=50, c, d=30;
float x=35, y,z;
a=c=40;
y=z=a+b+c+d;
{
float y,z;
y=z=a+b-x;
printf("\ny trong = %8.2f \nz trong = %8.2f",y,z);
}
printf("\ny ngoai = %8.2f \nz ngoai = %8.2f",y,z);
getch();
return 0;
}


VI. Vaỡi neùt vóử haỡm vaỡ chổồng trỗnh.
Haỡm laỡ mọỹt õồn vở õọỹc lỏỷp cuớa chổồng
trỗnh. Tờnh õọỹc lỏỷp cuớa hm âỉåüc thãø
hiãûn trãn hai âiãøm:
Khäng cho phẹp xáy dỉûng mäüt
hm bãn trong hm khạc.
Mäùi hm cọ cạc biãún, mng,...
Riãng cuớa mỗnh vaỡ chuùng chố õổồỹc
sổớ duỷng nọỹi bọỹ bón trong haỡm
õoù.
Mọỹt chổồng trỗnh bao gọửm mọỹt hoỷc
nhióửu haỡm. Haỡm main() laỡ thaỡnn phỏửn
bừt buọỹc cuớa chổồng trỗnh. Chổồng trỗnh
bừt âáưu thỉûc hiãûn tỉì lãûnh âáưu tiãn ca

hm main() v kóỳt thổùc khi gỷp dỏỳu }
cuọỳi cuỡng. Khi chổồng trỗnh lm viãûc mạy
cọ thãø âi tỉì hm ny sang hm khaïc.


×