Académique Documents
Professionnel Documents
Culture Documents
Chuong 3
Chuong 3
I Kiu d liu
Trong C s dung cac kiu d liu sau:
Ky t (char)
S nguyn (int)
S du phy ng chnh xac
n (float)
S du phy ng chnh xac
gp i (float)
1. Mt gia tr kiu char chim mt byte
(8bit) va biu din c mt ky t
thng qua bang ma ASCII
Thc cht d liu kiu char la mt s
Pham vi biu
din
S ky
t
Kch thc
char
0 255
256
1 byte
int
long int
unsigned
-32768 32767
-2145483648 2145483648
thc
2 byte
4 byte
Pham vi biu
din
s co
ngha
Kch
thc
1.5e-45 3.4e+38
float
7-8
4 byte
5.0e-324
Giai thch: May co th lu
tr c
double
15-16
8 bytes
1.7e+308
II. Hng
Hng la cac ai lng ma cac gia tr cua no khng
thay i trong qua trnh tnh toan. Cac loai hng c
s dung:
Hng du chm ng (float va double) c vit
theo hai cach
Cach 1: (Ky phap t nhin): S c vit theo cach
thng thng ch co khac la du phy thp phn
c thay bi du chm.
V du:
44.356, -43442.54546
Cach 2: (Ky phap khoa hoc): S c tach thanh hai
phn la phn nh tr va phn bc. Phn nh tr
la mt s nguyn hoc s thc c vit theo ky
phap t nhin, phn bc la mt s nguyn. Hai
phn nay cach nhau bi ky t e hoc E
V du:
123.456e-5 (Biu din gia tr 0.00123456)
III. Bin
Moi bin cn phai khai bao trc khi s dung.
Cach khai bao mt bin:
type <tn bin>
V tr khai bao bin: Cac bin khai bao cn
t ngay sau du { u tin cua thn ham va
cn ng trc moi cu lnh. Nh vy, sau
mt cu lnh gan chng han th khng c
khai bao na.
Vic khi u cho cac bin: Nu trong khai
bao, ngay sau tn in ta t du = va mt gia
tr nao o th y chnh la cach va khai bao
va khi u cho mt bin.
V du:
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
CHAR_MIN
1
SCHAR_MI
1
N
1
0
2
SHRT_MIN
2
0
2 or 4
INT_MIN
2 or 4
0
4
LONG_MIN
4
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
%f %e %g
4
double
%lf %le %lg 8
long double %Lf %Le %Lg 10
FLT_MIN
DBL_MIN
LDBL_MIN
FLT_MAX
DBL_MAX
LDBL_MAX
IV Mt s v du v hng va bin:
V du 1: Chng trnh hin th cac gia tr ln nht va
nho nht trong kiu s nguyn
#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;
}
VI.
Mang
Chu y:
Cac phn cua mang c cp phat
cac khoang nh lin tip nhau trong b
nh. Noi cach khac phn t co a ch
lin tip nhau trong b nh.
Trong b nh, cac phn t cua mang
hai chiu c sp xp theo hang.
Truy cp n tng phn t cua mang:
Mi phn t cua mang c xac nh
nh cac ch s cua no.
Ch s cua mang phai co gia tr int
khng vt qua kch thc cua chiu
tng ng.
V du:
V.
1.
Chu y:
Cho phep ly a ch cua mang mt
chiu:
&a[I]
Va khng chp nhn phep tnh:
&b[i][j]
Khi lnh:
nh ngha:
Mt khi lnh la gm day cac cu lnh
c bao bi cac du { va }
V du:
{
a = 4;
b = 5;
printf(\n %6d%6d,a,b)
T o cn nh:
- Gia tr cua mt bin hay mt mang khai bao
bn trong mt khi lnh khng th a ra
s dung bt ky ch nao ngoai khi lnh
o
- bt ky ch nao bn ngoai mt khi lnh
ta khng th can thip n cac bin va cac
mang c khai bao bn trong khi lnh o.
- Nu bn trong mt khi lnh ta dung mt
bin (hay mt mang) co tn la a, th iu nay
khng lam thay i ga tr cua mt bin khac
cung co tn la a (nu co) c dung u
o bn ngoai khi lnh o.
- Tuy nhin, nu mt bin (mang) a c
khai bao ngoai mt khi lnh va trung tn
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;
}
nh ngha:
Bin (mang) khai bao ngoai ham goi la
bin (mang) ngoai.
c trng cua bin, mang ngoai:
Pham v hoat ng: Cac bin (mang)
ngoai hoat ng t v tr khai bao cho
n cui chng trnh. Nh vy, nu
mt bin (mang) ngoai c khai bao
u chng trnh (ng trc tt
cua cac ham) th no co th c s
dung trong bt ky ham nao min la
V du:
#include "stdio.h"
int a= 35, t[][3] ={ {2,4,5},{6,7,8}};
float y[5] = {45.8, 35.6};
float x[4][2] = {{32.5,21.6},{32,65}};
char ch1[]={'I', 'l','o','v','e'};
char ch2[]="I love";
char ch3[6]={'I', 'l','o','v','e'};
char ch4[6]="I love";
main()
{
clrscr();
printf("\n\na = %6d
t(1,2) = %6d
t(1,1) =
%6d",a,t[1][2],t[1][1]);
printf("\n\nx(1,1) = %6.2f x(0,1) = %6.2f x(1,1) =
%6.2f",x[1][1],x[0][1],x[1][1]);
printf("\n\n%5s %10s %10s %15s",ch1,ch2,ch3,ch4);
getch();
return 0;
}