You are on page 1of 18

Ni dung

TRNG I HC BCH KHOA H NI


VIN CNG NGH THNG TIN V TRUYN THNG

7.1. Cc kiu d liu chun trong C


7.2. Khai bo v khi to bin, hng
7.3. Biu thc trong C
7.4. Cc php ton trong C
7.5. Mt s ton t c trng
7.6. Cc lnh vo ra d liu vi cc bin

TIN HC I CNG
Phn 3. Lp trnh C

Bi 7. Kiu d liu v biu thc trong C

7.1. C|c kiu d liu chun trong C


Kiu d liu

ngha

Kch thc

Min d liu

unsigned char

K t

1 byte

0 255

char

K t

1 byte

-128 127

unsigned int

S nguyn khng 2 byte


du

065.535

short int

S nguyn
c du

2 byte

-32.76832.767

int

S nguyn c du 2 byte

-32.76832.767

7.1. C|c kiu d liu chun trong C


Kiu d liu ngha

Kch thc

Min d liu

unsigned long

S nguyn khng
du

4 byte

0
4,294,967,295

long

S nguyn c du

4 byte

float

S thc du phy
ng,
chnh x|c n
S thc du phy
ng,
chnh x|c kp
S thc du phy
ng,
chnh x|c kp
m rng

4 byte

-2,147,483,648
2,147,483,647
3.4E-38
3.4E+38

double

long double

8 byte

1.7E-308
1.7E+308

10 byte

3.4E-4932
1.1E+4932

Ni dung

7.2.1. Khai b|o v{ khi to bin

7.1. Cc kiu d liu chun trong C


7.2. Khai bo v khi to bin, hng
7.3. Biu thc trong C
7.4. Cc php ton trong C
7.5. Mt s ton t c trng
7.6. Cc lnh vo ra d liu vi cc bin

Mt bin trc khi s dng phi c khai b|o


C php khai bo:

kieu_du_lieu ten_bien;
Hoc:
kieu_du_lieu ten_bien1, , ten_bienN;
V d: Khai b|o mt bin x thuc kiu s nguyn 2
byte c du (int), bin y, z,t thuc kiu thc 4 byte
(float) nh sau:
int
x;
float
y,z,t;
x = 3; y = x + 1;
5

7.2.1. Khai b|o v{ khi to bin (2)

7.2.2. Khai b|o hng

Kt hp khai b|o v{ khi to

Cch 1: Dng t kha #define:

C php:
kieu_du_lieu ten_bien = gia_tri_ban_dau;
Hoc:

C php:

#define ten_hang gia_tri

kieu_du_lieu bien1=gia_tri1, bienN=gia_triN;

V d:

V d:

#define MAX_SINH_VIEN 50
#define CNTT Cong nghe thong tin
#define DIEM_CHUAN 23.5

int a = 3;// sau lenh nay bien a se co gia tri bang 3


float x = 5.0, y = 7.6; // sau lenh nay x co gia
// tri 5.0, y co gia tri 7.6

7.2.2. Khai b|o hng


C|ch 2: Dng t kha

7.2.2. Khai b|o hng


Ch :

const :

Gi| tr ca c|c hng phi c x|c 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)

C php:
const kieu_du_lieu ten_hang = gia_tri;
V d:
const int MAX_SINH_VIEN = 50;
const char CNTT[20] = Cong nghe thong tin;
const float DIEM_CHUAN = 23.5;

D c, d thay i
D chuyn i gia c|c nn tng phn cng hn
Tc nhanh hn
9

Ni dung

10

7.3.1. C|c loi biu thc

7.1. Cc kiu d liu chun trong C


7.2. Khai bo v khi to bin, hng
7.3. Biu thc trong C
7.4. Cc php ton trong C
7.5. Mt s ton t c trng
7.6. Cc lnh vo ra d liu vi cc bin

a. Biu thc s hc:


L{ biu thc m{ gi| tr ca n l{ c|c i lng s
hc (s nguyn, s thc).
C|c to|n t l{ c|c php to|n s hc (cng, tr,
nh}n, chia), c|c to|n hng l{ c|c i lng s
hc (s, bin, hng).
V d:
3 * 3.7
8 + 6/3
a + b c // Vi a, b, c l{ c|c bin thuc mt
kiu d liu s n{o .
11

12

7.3.1. C|c loi biu thc

7.3.1. C|c loi biu thc

b. Biu thc logic:

c. Biu thc quan h:

L{ biu thc m{ gi| tr ca n l{ c|c gi| tr logic,


tc l{ mt trong hai gi| tr: ng (TRUE) hoc
Sai (FALSE).

L{ nhng biu thc trong c s dng c|c


to|n t quan h so s|nh nh ln hn, nh hn,
bng nhau, kh|c 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.

Gi| tr nguyn kh|c 0: ng (TRUE),


Gi| tr 0: Sai (FALSE).

C|c php to|n logic gm c


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

13

14

7.3.1. C|c loi biu thc

7.3.1. C|c loi biu thc

V d v biu thc quan h:

V d v biu thc logic:

15

16

7.3.1. S dng biu thc

Ni dung

7.1. Cc kiu d liu chun trong C


7.2. Khai bo v khi to bin, hng
7.3. Biu thc trong C
7.4. Cc php ton trong C
7.5. Mt s ton t c trng
7.6. Cc lnh vo ra d liu vi cc bin

L{m v phi ca lnh g|n.


L{m to|n hng trong c|c biu thc kh|c.
L{m tham s thc trong li gi h{m.
L{m ch s trong c|c cu trc lp for,
while, do while.
L{m biu thc kim tra trong c|c cu trc r
nhnh if, switch.

17

7.4. Cc php ton trong C

18

7.4.1. Php to|n s hc

Bao gm:
Nhm c|c php to|n s hc
Nhm c|c php to|n quan h
Nhm cc php ton logic
Nhm cc php ton thao tc trn bit
Ngo{i ra C cn cung cp mt s php to|n kh|c
na nh php g|n, php ly a ch

19

20

7.4.2. Php ton trn bit (bitwise)

7.4.2. Php ton trn bit

1)
1)

21

7.4.3. Php to|n quan h

22

7.4.4. Php ton logic

23

24

7.4.5. Php ton gn

7.4.5. Php ton gn

C php
tn_bin = biu_thc;
Ly gi| tr ca biu_thc gn cho tn_bin
V d:

Biu thc g|n l{ biu thc nn n cng c gi| tr.


Gi| tr ca biu thc g|n bng gi| tr ca biu_thc:
C th g|n gi| tr ca biu thc g|n cho mt bin
kh|c hoc s dng nh mt biu thc bnh thng
V d:

int
a =
b =
c =

int a, b, c;
a = b = 2007;
c = (a = 20) * (b = 30);

a, b, c;
3;
a + 5;
a * b;

25

7.4.5. Php ton gn

26

7.4.6. Th t u tin c|c php to|n

Php to|n g|n thu gn:


x = x + y; ging nh
x += y;

Dng lnh g|n thu gn n{y cn |p dng


c vi c|c php to|n kh|c: +, -, *, /, %, >>,
<<, &, |, ^

27

28

V d

Ni dung

a < 10 && 2 * b < c


( a < 10 ) && ( ( 2 * b ) < c )

7.1. Cc kiu d liu chun trong C


7.2. Khai bo v khi to bin, hng
7.3. Biu thc trong C
7.4. Cc php ton trong C
7.5. Mt s ton t c trng
7.6. Cc lnh vo ra d liu vi cc bin

29

Tin t v{ hu t

7.5.1. C|c php to|n tng gim mt n v

Tin t: Thay i gi| tr ca bin trc khi s dng


Hu t: Tnh to|n gi| tr ca biu thc bng gi| tr
ban u ca bin, sau mi thay i gi| tr ca
bin
V d:

Tng hoc gim mt n v cho bin:


<tn bin> = <tn bin> + 1;
<tn bin>++;
<tn bin> = <tn bin> - 1;
<tn bin>--;
V d:
int a =
float x
a++; //
x--; //

30

int a, b, c;
a = 3;
// a bang 3
b = a++;// Dang hau to
// b bng 3; a bng 4
c = ++b;// Dang tien to
// b bng 4, c bng 4;

5;
= 10;
tng ng vi a = a + 1;
tng ng vi x = x 1;

31

32

7.5.2. Php to|n ly a ch bin (&)

7.5.3. Php to|n chuyn i kiu bt buc

Bin thc cht l{ mt vng nh c t tn (l{ tn ca


bin) trn b nh ca m|y tnh.
Mi nh trn b nh m|y tnh u c |nh a ch. Do
mi bin u c a ch

Chng trnh dch s t ng chuyn i kiu


char int long int float
double long double

Ngc li

& <tn bin>;

S nguyn long int 50,000 khng phi l{ mt s nguyn


kiu int v phm vi biu din ca kiu int l{ t (-32,768
n 32,767).
Phi p kiu

V d: int a = 2006;
&a; // co gia tri la 158 hay 9E
1

.
..
..
.

157

D6

158

07

159

C php:
(<kiu d liu mi>) <biu thc>;

160
.
.
.

33

34

7.5.3. Php to|n chuyn i kiu bt buc (2)

7.7.4. Biu thc iu kin

V d:

C php

#include <stdio.h>
#include <conio.h>
void main()
{
long int li;
int i; float f; clrscr();
li = 0x123456; f = 123.456;

biu_thc_1 ? biu_thc_2 : biu_thc_3


Gi| tr ca biu thc iu kin
Gi| tr ca biu_thc_2 nu biu_thc_1 c gi| tr
kh|c 0 (tng ng vi gi| tr logic NG),
Ngc li: Gi| tr ca biu_thc_3 nu biu_thc_1 c
gi| tr bng 0 (tng ng vi gi| tr logic SAI).
V d:

i = (int) li;
printf(\n li = %ld; i = %d,li, i);

i = (int) f;

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

printf(\n f = %f; i = %d,f, i);


getch();
}

Kt qu

li = 1193046; i = 13398
f = 123.456000; i = 123
35

36

Ni dung

7.6. C|c lnh v{o ra d liu

7.1. Cc kiu d liu chun trong C


7.2. Khai bo v khi to bin, hng
7.3. Biu thc trong C
7.4. Cc php ton trong C
7.5. Mt s ton t c trng
7.6. Cc lnh vo ra d liu

C cung cp 2 h{m v{o ra c bn:


printf()
scanf()

Mun s dng 2 h{m printf() v


scanf() ta cn khai b|o tp tiu
stdio.h:
#include <stdio.h>

Hoc
#include stdio.h

37

38

7.6.1. Hm printf

a. Mc ch v{ c ph|p (2)

a. Mc ch v c php:

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

Mc ch:

xau_dinh_dang: Qui nh c|ch thc hin

Hin th ra m{n hnh c|c loi d liu c bn


nh: S, k t v{ x}u k t
Mt s hiu ng hin th c bit nh xung
dng, sang trang,

th d liu ra m{n hnh m|y tnh.

danh_sach_tham_so: Danh s|ch c|c bin s


c hin th gi| tr ln m{n hnh theo c|ch
thc c qui nh trong xau_dinh_dang.

39

40

10

a. Mc ch v{ c ph|p (3)

a. Mc ch v{ c ph|p (4)

V d: Chng trnh sau

Trong xau_dinh_dang cha:

#include <conio.h>
#include <stdio.h>
void main()
{
int a = 5;
float x = 1.234;
printf(Hien thi mot so nguyen %d v mot
so thuc %f,a,x);
getch();
}

C|c k t thng thng: c hin th ra m{n


hnh.
C|c nhm k t nh dng: X|c nh quy c|ch
hin th c|c tham s trong phn
danh_sach_tham_so.
C|c k t iu khin: Dng to c|c hiu ng
hin th c bit nh xung dng (\n) hay sang
trang (\f)

S cho ra kt qu:
Hien thi mot so nguyen 5 va mot so thuc 1.234000
41

42

a. Mc ch v{ c ph|p (5)

a. Mc ch v{ c ph|p (6)

Mi nhm k t nh dng ch dng cho mt


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 .

danh_sach_tham_so phi ph hp vi c|c


nhm k t nh dng trong xau_dinh_dang
v:
S lng
Kiu d liu
Th t

43

44

11

b. Mt s nhm nh dng ph bin


Nhm k t
nh dng

Kiu d liu

b. Mt s nhm nh dng ph bin (2)

Kt qu

Nhm k t
nh dng

Kiu d liu

Kt qu

%c

int, char

K t n l

%ld, %li

long

S thp ph}n

%i, %d

int, char

S thp ph}n

%lo

long

S b|t ph}n

%o

int, char

S b|t ph}n

(khng c 0 ng trc)

%lx, %LX

(khng c 0 ng trc)

%x, %X

int, char
unsigned
int/char

S hexa
(ch thng/ch hoa)

S hexa

%lu

(ch thng/ch hoa)

%u

long
unsigned long

S thp ph}n

S thp ph}n
45

c. rng hin th - s nguyn

c. Mt s nhm nh dng ph bin (3)


Nhm k t
nh dng

Kiu d liu

%s

char []

%f

float/double

%e, %E

float/double

46

i vi s nguyn hoc k t hoc xu k t:

Kt qu

C dng %md, vi m l{ s nguyn khng }m


V d: C s a = 1234

Lnh:

Hin th x}u k t
kt thc bi \0
S thc du phy
tnh
S thc du phy
ng

printf("%5d",a);//danh 5 cho de hien thi a


printf(\n%5d",34);

Cho ra kt qu: 1234


34
( k hiu cho du c|ch n (space) )

48

47

12

c. rng hin th - s nguyn (2)

c. rng hin th - s thc

V d:

m, n l{ 2 s nguyn khng }m

%m.nf

printf("\n%3d %15s %3c", 1, "nguyen van a", 'g');


printf("\n%3d %15s %3c", 2, "tran van b", 'k');

Trong :
m v tr hin th s thc
n v tr trong m v tr hin th phn thp
phn.

Kt qu:
1
2

nguyen van a
tran van b

g
k

49

50

c. rng hin th - s thc (2)

c. rng hin th - Ch

V d:
printf("\n%f",17.345);
printf("\n%.2f",17.345);
printf("\n%7.2f",17.345);
Kt qu:

Khi s ch cn thit hin th ni dung d


liu ln hn trong nh dng:
T ng cung cp thm ch mi hin th ch
khng ct bt ni dung ca d liu.
V d: a=1000

printf(So a la: %1d, a);

17.345000
17.34
17.34

Kt qu:

So a la: 1000

51

52

13

d. Cn l phi, l tr|i

d. Cn l phi, l tr|i (2)

Cn l phi:
V d:
printf("\n%-3d %-15s %.2f %-3c",
9, "nguyen van a", 7.5, 'g');
printf("\n%-3d %-15s %.2f %-3c",
10, nguyen ha", 6.75, 'k');

Khi hin th d liu, mc nh C cn l phi

Cn l tri:
Nu mun cn l tr|i khi hin th d liu ta ch
cn thm du tr - v{o ngay sau du %.

Kt qu:
9 nguyen van a 7.50 g
10 nguyen ha 6.75 k
53

7.6.2. Hm scanf

54

a. Mc ch v{ c ph|p (3)
Xau_dinh_dang:

a. Mc ch v c php:

Gm c|c k t c qui nh cho tng loi d


liu c nhp v{o.
V d: Vi d liu nh nhp v{o l{ kiu nguyn
th x}u nh dng l{ : %d

Mc ch:
H{m scanf() dng nhp d liu t b{n phm

C php:

Danh_sach_dia_chi:

scanf(xau_dinh_dang[,danh_sach_dia_chi]);
V d:
int a; float b;

Bao gm c|c a ch ca c|c bin (to|n t &),


ph}n t|ch nhau bi du phy (,)

scanf(%d %f, &a, &b);


55

56

14

a. Mc ch v{ c ph|p (4)

b. Mt s nhm nh dng ph bin

danh_sach_dia_chi phi ph hp vi c|c


nhm k t nh dng trong xau_dinh_dang
v:

Nhm k t
nh dng

S lng
Kiu d liu
Th t

Kiu d liu

Ch thch

%c

char

K t n l

%d

int

S thp ph}n

%o

int

S b|t ph}n

%x

int

S hexa

%u

unsigned int

S thp ph}n

57

58

V d

c. Mt s nhm nh dng ph bin (3)


Nhm k t
nh dng
%s

Kiu d liu
char*

%f

float

%ld
%lf

long
double

#include <conio.h>
#include <stdio.h>
void main()
{
// khai bao bien
int a; float x;
char ch; char str[30];
// Nhap du lieu
printf(Nhap vao mot so nguyen);
scanf(%d,&a);
printf(\n Nhap vao mot so thuc);
scanf(%f,&x);

Ch thch
Nhp x}u k t kt
thc bi \0
S thc du phy
tnh
S nguyn
S thc du phy
tnh

60

59

15

V d

V d
Kt qu:
Nhap vao mot so nguyen: 2007
Nhap vao mot so thuc: 17.1625
Nhap vao mot ki tu: b
Nhap vao mot xau ki tu: ngon ngu lap trinh C
Nhung du lieu vua nhap vao
So nguyen: 2007
So thuc: 17.16
Ki tu: b
Xau ki tu: ngon

printf(\n Nhap vao mot ki tu);


fflush(stdin); scanf(%c,&ch);
printf(\n Nhap vao mot xau ki tu);
fflush(stdin); scanf(%s,str);
// Hien thi du lieu vua nhap vao
printf(\n Nhung du lieu vua nhap vao);
printf(\n So nguyen: %d,a);
printf(\n So thuc : %.2f,x);
printf(\n Ki tu: %c: ,ch);
printf(\n Xau ki tu: %s,str);
getch();

61

62

c. Mt s quy tc cn lu

c. Mt s quy tc cn lu (tip)

Quy tc 1: Khi c s

Quy tc 2: Khi c k t:
Hm scanf() cho rng 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.

H{m scanf() quan nim rng mi k t s, du


chm (.) u l{ k t hp l.
Khi gp c|c du ph}n c|ch nh tab, xung dng
hay du c|ch (space bar) th scanf() s hiu l{
kt thc nhp d liu cho mt s

63

64

16

c. Mt s quy tc cn lu (tip)

7.6.3. C|c lnh v{o ra kh|c

Quy tc 3: Khi c xu k t:
+ 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.

Hm gets():
Dng nhp v{o t b{n phm mt x}u k t bao
gm c du c|ch, iu m{ h{m scanf() khng
l{m c.
C php :
gets (bin_xu_k_t);
V d:
char str[30];
printf(Nhap vao mot xau ki tu:);
fflush(stdin); gets(str);
65

66

7.6.3. C|c lnh v{o ra kh|c (2)

7.6.3. C|c lnh v{o ra kh|c (3)

Hm puts():

H{m getch(): thng dng ch ngi s


dng n mt phm bt k ri s kt thc
chng trnh.
C php

Hin th ra m{n hnh ni dung x}u_k_t v{


sau a con tr xung dng mi.
C php:
puts(xu_k_t);
V d:
puts(Nhap vao xau ki tu:);
Tng ng vi:
printf(%s\n, Nhap vao xau ki tu:);
Hoc printf(Nhap vao xau ki tu:\n);

getch();
S dng h{m gets(), puts(), cn
khai b|o tp tiu stdio.h
S dng h{m getch(), cn khai b|o tp
tiu conio.h
67

(Hm tng t getchar())

68

17

7.6.3. C|c lnh v{o ra kh|c (4)

C|c lnh nhp xut kh|c

V d:
#include <conio.h>
#include <stdio.h>
void main()
{
char str[30];
puts(Hay cho biet ho ten ban:);
fflush(stdin); gets(str);
printf(Xin chao );
puts(str);
puts(An phim bat ki de ket thuc...);
getch();
}

Kt qu:
Nhap vao mot xau ki tu:
ngon ngu lap trinh C
Xau vua nhap vao:
ngon ngu lap trinh C
An phim bat ki de ket thuc ...

69

70

18

You might also like