You are on page 1of 65

Tin hc i cng

Bi 6: Kiu d liu v biu thc trong C

NGUYN Th Oanh oanhnt@soict.hut.edu.vn


B mn H thng thng tin - Vin CNTT v Truyn Thng i hc Bch Khoa H ni

2010 - 2011

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Ni dung
Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

2 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Cc kiu d liu chun trong C


Kiu DL unsigned char char unsigned int short int int ngha k t khng du K t S nguyn khng du S nguyn c du S nguyn c du Kch thc1 1 byte 1 byte 2 bytes 2 bytes 2 bytes Min gi tr 0 255 128 127 0 65, 535 32, 768 32, 767 32, 768 32, 767

compiler 16bit, dng sizeof (kieu du lieu) bit kch thc chnh xc
3 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Cc kiu d liu chun trong C


unsigned S nguyn khng long du long S nguyn c du float S thc ng, n S thc ng kp S thc ng du phy chnh xc du phy chnh xc du phy 4 bytes 4 bytes 4 bytes 0 4, 294, 967, 295 2, 147, 483, 648 2, 147, 483, 647 3.4E 38 3.4E + 38 1.7E 308 1.7E + 308 3.4E 4932 1.1E + 4932
4 / 65

double

8 bytes

long double

10 bytes

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Khai bo bin Khai bo hng

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Khai bo bin Khai bo hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu
5 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Khai bo bin Khai bo hng

Khai bo bin

! Mt bin trc khi s dng phi c khai bo ! C php khai bo:


hoc: kiu_d_liu tn_bin; hoc: kiu_d_liu tn_bin_1, tn_bin_2, ..., tn_bin_n;

! V d:
int a; float x, y, z ;

6 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Khai bo bin Khai bo hng

Kt hp khai bo v khi to bin

! C php:
hoc: kiu_d_liu tn_bin = gi_tr_khi_to ; hoc: kiu_d_liu tn_bin_1= gi_tr_khi_to_1, ..., tn_bin_n = gi_tr_khi_to_n;

! V d:
int a = 5 ; float x=5.0, y=7.6 ;

7 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Khai bo bin Khai bo hng

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Khai bo bin Khai bo hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu
8 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Khai bo bin Khai bo hng

Khai bo hng

! Cch 1: dng t kha

#define

C php khai bo: #define TN_HNG gi_tr KHNG c du chm phy ( ; ) cui

! V d:
#define MAX_SINHVIEN 50 #define CNTT "Cng ngh thng tin" #define DIEM_CHUAN 23.5

9 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Khai bo bin Khai bo hng

Khai bo hng

! Cch 2: dng t kha

const

C php khai bo: const kiu_d_liu TN_HNG = gi_tr ; C du ; cui lnh

! V d:
const int MAX_SINHVIEN = 50 ; const char CNTT[20] = "Cng ngh thng tin" ; const float DIEM_CHUAN = 23.5 ;

10 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Khai bo bin Khai bo hng

Ch

! Gi tr ca cc hng phi c xc nh ngay khi khai bo ! Trong chng trnh, KHNG th thay i c gi tr ca hng ! #define l ch th tin x l (preprocessing directive )
d c, d thay i d chuyn i gia cc nn tng phn cng hn tc nhanh hn

11 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc Cc php ton (ton t) trong C Cc lnh vo ra d liu
12 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc

Biu thc s hc

! l biu thc m gi tr ca n l ci i lng s hc (s nguyn, s thc) ! cc ton t l cc php ton s hc (cng, tr, nhn, chia. . . ), cc ton hng l cc i lng s hc (s, bin, hng) ! V d: a, b, c l cc bin thuc mt kiu d liu s no
3 3.7 8 + 6/3 a + b c, . . .

13 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc Cc php ton (ton t) trong C Cc lnh vo ra d liu
14 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc

Biu thc logic

! l biu thc m gi tr ca n l cc gi tr logic, tc l mt trong hai gi tr: ng (TRUE) hoc Sai (FALSE)
Gi tr nguyn khc 0: ng (TRUE) Gi tr 0: Sai (FALSE).

! Cc php ton logic gm c;


AND: V logic, k hiu l && OR: HOC logic, k hiu l || NOT: PH NH, k hiu l !

15 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc Cc php ton (ton t) trong C Cc lnh vo ra d liu
16 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc

Biu thc quan h

! l nhng biu thc trong c s dng cc ton t quan h so snh nh ln hn, nh hn, bng nhau, khc nhau, . . . ! ch c th nhn gi tr l mt trong 2 gi tr: ng (TRUE) hoc Sai (FALSE) Biu thc quan h l mt trng hp ring ca BIU THC LOGIC

17 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc

V d- Biu thc logic

Biu thc logic 5>7 9 != 10 2 >= 2 a>b a+1>a (5 > 7)&&(9 != 10) 0||1

Gi tr FALSE ? ? ? ? ?

Biu thc logic (5 > 7)||(9 != 10) 0 !0 3 !3 (a > b)&&(a < b)

Gi tr ? FALSE ? ? ? ?

18 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc Cc php ton (ton t) trong C Cc lnh vo ra d liu
19 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Biu thc s hc Biu thc logic Biu thc quan h S dng biu thc

S dng biu thc

! ! ! ! !

Lm Lm Lm Lm Lm

v phi ca lnh gn ton hng trong cc biu thc tham s thc trong li gi hm ch s cho cc cu trc lp: for, while, do ... while biu thc kim tra cho cc cu trc r nhnh if, switch

20 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Cc php ton trong C

! ! ! ! !

Nhm cc php ton s hc Nhm cc php ton thao tc trn bit Nhm cc php ton quan h Nhm cc php ton logic Cc php ton khc: php gn, ly a ch, ...

21 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng
22 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php ton s hc

23 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng
24 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php ton trn bit

25 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php ton trn bit

26 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng
27 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php ton quan h

28 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php ton logic

29 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng
30 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php gn

! C php:
tn_bin = biu_thc;

! Ly gi tr ca biu_thc gn cho tn_bin ! V d:


int a, b, c; a = 3; b = a + 5; c = a b;

31 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php gn

! Biu thc gn l biu thc nn n cng c gi tr ! Gi tr ca biu thc gn bng gi tr ca biu_thc = C th gn gi tr ca biu thc gn cho mt bin khc hoc s dng nh mt biu thc bnh thng ! V d:
int a, b, c; a = b = 2007; c = (a = 20) (b = 30);

32 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php gn

! Php ton gn thu gn: x = x + y ; ging nh : x += y ;

! Dng lnh gn thu gn ny cn p dng c vi cc php ton khc: +, , , /, %, >>, <<, &, |,

33 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng
34 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Th t u tin cc php ton

http://www.difranco.net/cop2220/op-prec.htm

35 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Th t u tin cc php ton

! V d 1: int x=5, z=7, y ; y = x * z++; y = x * ++z; y = x * (x + z); y = x * x + z; y y y y = = = = ?, ?, ?, ?, z z z z = = = = ?, ?, ?, ?, x x x x = = = = ? ? ? ?

! V d 2: a < 10 && 2 * b < c ( a < 10 ) && ( ( 2 * b ) < c )

36 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng
37 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php tng/gim 1 n v

! Tng 1 n v:
ten_bien = ten_bien+1; ten_bien++; ++ten_bien;

! Gim 1 n v:
ten_bien = ten_bien-1; ten_bien ; ten_bien;

38 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php tng gim 1 n v


! Biu thc dng tin t:
thay i gi tr ca bin trc khi s dng

! Biu thc dng hu t:


tnh ton gi tr ca biu thc bng gi tr ban u ca bin, sau mi thay i gi tr ca bin

! V d: int a, b, c; a = 3; // a bng 3 b = a++; // Dng hu t // b bng 3; a bng 4 c = ++b; // Dng tin t // b bng 4, c bng 4;
39 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php ton ly a ch (&)


! Bin thc cht l mt vng nh c t tn (l tn ca bin) trn b nh ca my tnh ! Mi nh trn b nh my tnh u c nh a ch = Mi bin u c a ch : a ch ca nh u tin trong vng nh dnh cho bin ! C php : &ten_bien; ! V d:

int a= 2006; // = 0x07D6 = gi tr ca &a l 158 hay 9E


40 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php chuyn i kiu bt buc


! Khi cn thit chng trnh dch c th t ng chuyn kiu: char int long int float double long double ! Cc trng hp khc, nu mun chuyn i kiu s dng php chuyn i kiu (p kiu):
d gy ra kt qu khng mong mun (sai d liu): long int a = 50000; int b; // s nguyn: 32768 +32767 b= (int) a; // b = 15536!!!!!!! ch s dng khi tht cn thit; nhng ngi mi bt u nn trnh dng p kiu

! C php:

(kiu_d_liu_mi) biu_thc;
41 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Php chuyn i kiu bt buc


#i n c l u d e < s t d i o . h> #i n c l u d e <c o n i o . h> v o i d main ( ) { long i n t l i ; int i ; f l o a t f ; c l r s c r () ; l i = 50000; f = 123.456; i = ( int ) l i ; p r i n t f ( " \n l i = %l d ; i = %d" , l i , i ) ; i = ( int ) f ; p r i n t f ( " \n f = %f ; getch () ; }

i = %d" , f ,

i);

Kt qu: li = 50000; i = -15536 f= 123.456001; i = 123


42 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Php ton s hc Php ton trn bit Php ton quan h, cc php ton logic Php gn Th t u tin cc php ton Mt s ton t c trng

Biu thc iu kin


! C php:

biu_thc_1 ? biu_thc_2 : biu_thc_3


! Gi tr ca BT K:
l gi tr ca biu_thc_2 nu gi tr ca biu_thc_1 khc 0 (gi tr logic: NG) l gi tr ca biu_thc_3 nu gi tr ca biu_thc_1 bng 0 (gi tr logic: SAI)

! V d: float x, y, z; // khai bo bin x = 3.8; y = 7.6; // gn gi tr cho cc bin x, y z = (x<y) ? x : y; // z s c gi tr bng gi tr // nh nht trong 2 s x v y
43 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Cc lnh vo ra d liu vi cc bin

! C cung cp 2 hm vo ra c bn:
printf(): hm ra scanf(): hm vo

! Mun s dng 2 hm printf() v scanf() ta cn khai bo tp tiu stdio.h:


#include <stdio.h> hoc #include "stdio.h"

44 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu Hm printf() Hm scanf() Mt s hm vo ra khc
45 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Hm printf
! Mc ch:
Hin th ra mn hnh cc loi d liu c bn nh: S, k t v xu k t Mt s hiu ng hin th c bit: xung dng, sang trang,. . .

! C php: printf(xau_dinh_dang [, danh_sach_tham_so]);


xau_dinh_dang : quy nh cch thc hin th d liu ra mn hnh my tnh danh_sach_tham_so : danh sch cc bin s hin th ln mn hnh theo cch thc quy nh trong xau_dinh_dang

46 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

V d

#i n c l u d e <c o n i o . h> #i n c l u d e < s t d i o . h> v o i d main ( ) { int a = 5; float x = 1.234; p r i n t f ( " H i e n t h i mot s o nguyen %d va mot s o t h u c %f " , a , x ) ; getch () ; }

47 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Hm printf
! xau_dinh_dang cha:
Cc k t thng thng: c hin th ra mn hnh Cc nhm k t nh dng: Xc nh quy cch hin th cc tham s trong phn danh_sach_tham_so Cc k t iu khin: Dng to cc hiu ng hin th c bit: xung dng (\n) hay sang trang (\f), ...

! 1 nhm k t nh dng ch dng cho 1 kiu d liu. V d:


%d dng cho kiu nguyn %f dng cho kiu thc

! Nu gia nhm k t nh dng v tham s tng ng khng ph hp vi nhau th s hin th ra kt qu khng nh


48 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Hm printf

! danh_sach_tham_so phi ph hp vi cc nhm k t nh dng trong xau_dinh_dang v :


S lng Kiu d liu Th t

49 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Mt s nhm k t nh dng ph bin

50 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Mt s nhm k t nh dng ph bin

51 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Mt s nhm k t nh dng ph bin

52 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

rng hin th ti thiu


! C t ng xc nh ch cn thit hin th ni dung ! S nguyn, k t, xu k t: %md, %mc, %ms (m >= 0). V d: int a = 1234; printf("%5d", a); // dnh 5 ch hin th a printf("\n%5d", 34); // xung dng, dnh 5 ch hin th gi tr 34 ! S thc: %m.nf (m, n >= 0)
m: rng cho c s thc (phn nguyn, phn thp phn, du chm) n: rng cho phn thp phn V d:printf("%5.2d", 31.23); V d:printf("%.2d", 31.23); V d:printf("%7.2d", 31.23);
53 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

rng hin th ti thiu


Lu : ! Khi rng ch ra trong phn nh dng nh hn s ch thc s cn thit: C t ng cp thm ch mi hin th ! Nu khng: cc v tr cn d th c hiu th bng du trng (space) ! V d: Lnh printf("%f", 12.345); printf("%6.3f", 12.345); printf("%8.3f", 12.345); printf("%8.5f", 12.345); printf("%8.1f", 12.345); printf("%8.2f", 12.345); Hin th 12.345 12.345 12.345 12.34500 12.3 12.35
54 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Cn l
! Cn l phi: mc nh ! Cn l tri: thm du dng

ngay sau du

trong phn nh

Lnh printf("%8.3f", 12.345); printf("%-8.3f", 12.345); printf("%8.1f", 12.345); printf("%-8.1f", 12.345);

Hin th 12.345 12.345 12.3 12.3

printf("%-15s %5.2f", 9, "Nguyen Van A", 7.5,); printf("%15s %5.2f", 9, "Nguyen Van A", 7.5,); Kt qu hin th: Nguyen Van A 7.50 Nguyen Van A 7.50

55 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu Hm printf() Hm scanf() Mt s hm vo ra khc
56 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Hm scanf()

! Mc ch:
hm scanf() dng nhp d liu t bn phm

! C php:

scanf(xau_dinh_dang,[danh_sach_dia_chi]);

! V d: scanf(%d %f, &a, &b);

57 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Hm scanf()
! xau_dinh_dang:
gm cc k t c qui nh cho tng loi d liu c nhp vo (nh dng ging trong hm printf()) V d: kiu nguyn: %d

! danh_sach_dia_chi:
a ch cc bin (ton t &) phn tch nhau bi du

! danh_sach_dia_chi phi ph hp vi cc nhm k t nh dng trong xau_dinh_dang v:


S lng Kiu d liu Th t

! V d: scanf(%d %f, &a, &b);


58 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Hm scanf() - Quy tc c
! c S:
mi k t s, du chm ( ): cc k t hp l khi gp cc du phn cch: tab, xung dng hay du cch (space bar ) th scanf() s hiu l kt thc nhp d liu cho mt s

! c K T:
mi k t c trong b m ca thit b vo chun u l hp l, k c cc k t tab, xung dng hay du cch

! c XU:
Hm scanf() nu gp cc k t du trng, du tab hay du xung dng th n s hiu l kt thc nhp d liu cho mt xu k t

! Trc khi nhp d liu k t hay xu k t ta nn dng lnh fflush(stdin); xa b m


59 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

V d
#i n c l u d e <c o n i o . h> #i n c l u d e < s t d i o . h> v o i d main ( ) { // k h a i bao b i e n i n t a ; f l o a t x ; c h a r ch ; c h a r s t r [ 3 0 ] ; // Nhap du l i e u p r i n t f ( " Nhap vao mot s o nguyen : " ) ; s c a n f ( "%d" ,& a ) ; p r i n t f ( " \n Nhap vao mot s o t h u c : " ) ; s c a n f ( "%f " ,& x ) ; p r i n t f ( " \n Nhap vao mot k i t u : " ) ; f f l u s h ( s t d i n ) ; s c a n f ( "%c " ,& ch ) ; p r i n t f ( " \n Nhap vao mot xau k i t u : " ) ; f f l u s h ( s t d i n ) ; s c a n f ( "%s " , s t r ) ; // H i e n t h i du l i e u vua nhap vao p r i n t f ( " \n Nhung du l i e u vua nhap vao " ) ; p r i n t f ( " \n So nguyen : %d" , a ) ; p r i n t f ( " \n So t h u c : %.2 f " , x ) ; p r i n t f ( " \n Ki t u : %c " , ch ) ; p r i n t f ( " \n Xau k i t u : %s " , s t r ) ; getch () ; }
60 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu Hm printf() Hm scanf() Mt s hm vo ra khc
61 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Mt s hm vo ra khc

! Hm gets():
dng nhp vo t bn phm mt xu k t bao gm c du cch (hm scanf() KHNG lm c) C php: gets (ten_bien); V d: char str[40]; printf("Nhap vao mot xau ki tu:"); fflush(stdin); gets(str);

62 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Mt s hm vo ra khc

! Hm puts(xu_k_t ):
Hin th ra mn hnh ni dung xu_k_t v sau a con tr xung dng mi C php: puts(xu_k_t); V d: puts(Nhap vao xau ki tu:); printf("%s\n","Nhap vao xau ki tu:");

63 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Mt s hm vo ra khc
! Hm getch():
thng dng ch ngi s dng n mt phm bt k ri s kt thc chng trnh C php: getch();

! s dng cc hm gets(), puts(), getch() ta cn khai bo tp tiu conio.h #include<conio.h> hoc #include"conio.h"

64 / 65

Cc kiu d liu chun trong C Khai bo v khi to bin, hng Biu thc trong C Cc php ton (ton t) trong C Cc lnh vo ra d liu

Hm printf() Hm scanf() Mt s hm vo ra khc

Questions & Answers

65 / 65

You might also like