ng 2 Ch ươ CÁC PH N T C B N Ầ Ử Ơ Ả C A NGÔN NG C Khoa H th ng thông tin qu n lý ả

Ủ ệ ố

Hà N i – 2013

N i dung

1

Các thành ph n c b n ơ ả ầ

2

C u trúc ch ng trình C ấ ươ

3

Các ki u li u c s ơ ở ể ệ

4

Câu l nh-Bi u th c ứ ệ ể

5

Th t u tiên các phép toán ứ ự ư

6

S d ng môi tr ng làm vi c C ử ụ ườ ệ

7

Vào – ra d li u trong C ữ ệ

11/7/13 ng 2 - Các ph n t c b n c a 2/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

1. Các thành ph n c b n

ơ ả

o B t

ộ ừ ự

a, b, c, …, z

A, B, C, …, Z ng:

ọ t :

ố _ và kho ng tr ng ả

+ – * / = < > ( ) ệ . , : ; [ ] % \ # $ ‘ ^ & @ ắ

‘ ’, d u tab, ấ

v ng c a C n Các ch cái hoa: ữ n Các ch cái th ữ ườ n Các ch s : ữ ố 0, 1, 2, 4, 5, 6, 7, 8, 9 n Các ký hi u toán h c : ệ n Các ký t đ c bi ự ặ n Ký t g ch n i ự ạ xu ng dòng ố

11/7/13 ng 2 - Các ph n t c b n c a 3/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

1. Các thành ph n c b n (tt)

ơ ả

keyword)

có tác

ừ dành riêng trong ngôn ng , m i t

ỗ ừ

o T khóa ( n Các t ụ

n Không th s d ng t

khóa đ đ t tên cho bi n,

ể ặ

ế

ể ử ụ ươ

d ng và ý nghĩa c th ụ ể ừ ng trình con. khóa thông d ng:

n M t s t

hàm, tên ch ộ ố ừ

o const, enum, signed, struct, typedef, unsigned… o char, double, float, int, long, short, void o case, default, else, if, switch o do, for, while o break, continue, goto, return

11/7/13 ng 2 - Các ph n t c b n c a 4/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

1. Các thành ph n c b n (tt)

ơ ả

ị n Tên là dãy kí t

ự ề

ướ

ữ ố ả

li n nhau g m các ch cái a..z, ữ A..Z, các ch s 0..9, và d u g ch n i. ố ạ c khi s d ng ử ụ ng

t ch HOA, th

ườ

khoá

t nh

, d u ch m

ượ ứ

c đ t

o Tên/Đ nh danh (Identificater) ồ ấ n M i tên đ u ph i khai báo tr n Tên trong C phân bi ệ ữ n Đ dài t i đa m c đ nh là 32 kí tự ộ ị ố o Quy t c đ t tên ặ ắ n Tên không đ ượ n Không đ n Không ch a kí t n Tên ph i ả g i nh n Cùng ph m vi không đ ạ

c trùng v i các c b t đ u b ng ắ ầ ằ đ c bi ệ ự ặ ớ v đ i t ề ố ượ ượ

t ch sữ ố ư d u cách ấ ấ ng đ c đ t tên ặ ượ ặ 2 tên trùng nhau

11/7/13 ng 2 - Các ph n t c b n c a 5/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

1. Các thành ph n c b n (tt)

ơ ả

: GiaiPhuongTrinh, Bai_Tap1, PI

o Ví d Tên/Đ nh danh (Identifier) ị ợ ệ

n Các tên h p l n Các tên không h p l

ợ ệ

ữ ố

ằ ệ

: ắ ầ ứ ứ

n Phân bi

o 1A b t đ u b ng ch s o PI$ ch a kí hi u $ o Giai phuong trinh ch a d u cách ấ o char trùng t khoá char ừ ng t ch hoa ch th

ữ ườ , do đó các tên sau

o Th th

ng dùng ch HOA đ t tên cho h ng, ch ữ ặ ng cho các d i t

ng khác.

ệ đây khác nhau: o A, a o BaiTap, baitap, BAITAP, bAItaP, … ữ ườ ố ượ ườ

11/7/13 ng 2 - Các ph n t c b n c a 6/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

1. Các thành ph n c b n (tt)

ơ ả

o D u ch m ph y ; ấ

n Dùng đ phân cách các câu l nh. n Ví d : printf(“Hello World!”)

; printf(“\n”);

o Câu chú thích ặ ặ

ấ /* */ ho c ặ // (C++)

n Đ t gi a c p d u ữ n Ví d : ụ /*Ho & Ten: NVA*/, // MSSV: 0712078

o H ng ký t ằ

và h ng chu i ỗ ằ ự ‘A’, ‘a’, … ỗ “Hello World!”, “Nguyen Van A”

ự n H ng ký t : ằ n H ng chu i: ằ n Chú ý: ‘A’ khác “A”

11/7/13 ng 2 - Các ph n t c b n c a 7/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

2. C u trúc chung ch

ng trình C

ươ

ế

ặ ố

ế

#include <…> /*G i các t p ti n x lý */ ị #define /* Đ nh nghĩa */ ể ị typedef /*Đ nh nghĩa ki u */ /* Khai báo bi n ngoài */ int x; ằ /*Khai báo h ng */ const … /*Khai báo các hàm, có th có ho c không */ ữ ể Ki u_d _li u tên_hàm(các tham s ); Khai báo các bi n, h ng {

ả ạ

Các l nh c a hàm return(); /*Tr l i giá tr */

ả /* B t bu c ph i có hàm main */ ằ

} ... ắ main() { Khai báo các bi n, h ng ủ

ộ ế Các l nh c a hàm ể return (); /*Có th có ho c không */

} 11/7/13

ng 2 - Các ph n t c b n c a 8/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

ng trình C

Ví d ch ụ

ươ

o Ví d 1: Vi ụ

ế

t ra màn hình dòng ch CHAO MUNG DEN VOI NGON NGU C

ư

#include /*Th vi n vào ra chu n */ #include int main() { clrscr(); /*Xoá màn hình */

printf(“CHAO MUNG DEN VOI NGON NGU C”); getch(); /*D ng màn hình */ return 0;

}

11/7/13 ng 2 - Các ph n t c b n c a 9/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

ng trình C

Ví d ch ụ

ươ

o Ví d 2: Tính chu vi và di n tích hình tròn v i ớ

bán kính r nh p t

bàn phím.

ậ ừ

ư

ư

#include /*Th vi n vào ra chu n */ #include #include /*Th vi n hàm toán h c*/ int main() { float r,cv,dt; /*Khai báo bi n*/ế

clrscr(); /*Xoá màn hình */ printf(“Nhap ban kinh: ”); scanf(“%f”,&r); cv=2*M_PI*r; dt=M_PI*r*r; printf(“Chu vi: %0.2f”,cv); printf(“Dien tich: %0.2f”,dt); getch(); /*D ng màn hình */ return 0;

} 11/7/13

ng 2 - Các ph n t c b n c a 10/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

M t s quy t c khi vi

t ch

ng trình

ộ ố

ế

ươ

t trên m t hay nhi u

ể ế

o M i câu l nh có th vi ệ ư

o Đ báo cho C bi

ấ ; dòng, nh ng ph i k t thúc b ng d u ằ ả ế v n còn ỗ ở ự ẫ ế c khi xu ng dòng i, thêm d u \ tr ố

t m t chu i kí t ướ ấ

ướ

ể dòng d n Ví d : ụ printf(“CHAO MUNG \ DEN VOI NGON NGU C”);

q L i chú thích có th vi

t trên 1 ho c nhi u ặ

ể ế dòng, đ t gi a c p d u ữ

q Các l nh theo cùng nhóm ph i th ng hàng

ấ /*…*/ ả

theo chi u d c ọ ề

11/7/13 ng 2 - Các ph n t c b n c a 11/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

3. Các ki u d li u c s

ữ ệ

ơ ở

ữ ệ

n M t t p h p các giá tr mà m t bi n thu c ki u đó

ế

c,

o Ki u d li u (data type) là: ợ ậ

ộ ậ ể

có th nh n đ ượ n Trên đó xác đ nh m t s phép toán ị

ộ ố

Ki u c s ơ ở ể

Ki u vô ng h đ n gi n ả ể ướ ơ i dùng ườ

S nguyên ố S th c ố ự Ki u kí t ể Ki u logic (Boolean) ể Ki u li t kê ể ệ Do ng đ nh nghĩa ị ể

Ki u d li u ữ ệ có c u trúc ấ Ki u m ng (array) ể ả Kiể u d ữ li uệ

Ki u c u trúc (struct) ể ấ

Ki u t p (file) ể ệ Ki u con tr ể ỏ

11/7/13 ng 2 - Các ph n t c b n c a 12/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Bi nế

o Là đ i l

ạ ượ

ổ ượ

c giá tr ị

Bi nế

ng có th thay đ i đ ể Ví d :ụ int i; int j, k; unsigned char dem; float ketqua, delta;

Cú pháp ; ể

ữ ệ

ế

c ch a trong ô nh có đ a ch

ượ

o Trong C, giá tr ị i đ

ỉ &i

11/7/13 ng 2 - Các ph n t c b n c a 13/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

H ngằ

o Là đ i l

ạ ượ

H ng ằ nườ th g

ng có giá tr không đ i ổ ị Ví dụ const int A = 1506; const int B = 01506; const int C = 0x1506; const float D = 15.06e-3;

const char RC=‘\r’

Cú pháp const = ;

ữ ệ

ị ằ

11/7/13 ng 2 - Các ph n t c b n c a 14/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

H ng (tt)

Ví dụ #define MAX 100 #define PI 3.14 #define TRUE 1 #defien FALSE 0

H ngằ ng t ượ tr ngư

Cú pháp #define

11/7/13 ng 2 - Các ph n t c b n c a 15/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Các ki u d li u c s

ữ ệ

ơ ở

: giá tr c a nó là các s nguyên

o C có 4 ki u c s ơ ở ể n Ki u s nguyên ố

ị ủ

nh 2912, -1706, …

n Ki u s th c

ể ư ể

ố ự : giá tr c a nó là các s th c nh ư

ố ự

ị ủ

3.1415, 29.12, -17.06, …

trong b ng mã ASCII.

ự: 256 ký t

: giá tr đúng ho c sai.

n Ki u ký t ể n Ki u boolean ể

ự ị

ả ặ

11/7/13 ng 2 - Các ph n t c b n c a 16/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Ki u s nguyên ố

o Các ki u s nguyên (có d u)

n n bit có d u: –2n – 1 … +2n – 1 – 1

ố ấ

Ki uể (Type)

Đ l nộ ớ (Byte)

Mi n giá tr ề (Range)

1

char

–128 … +127

2

int

–32.768 … +32.767

2

short

–32.768 … +32.767

4

long

–2.147.483.648 … +2.147.483.647

11/7/13 ng 2 - Các ph n t c b n c a 17/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Ki u s nguyên (tt)

n n bit không d u: 0 … 2n – 1

o Các ki u s nguyên (không d u) ấ

Ki uể (Type)

Đ l nộ ớ (Byte)

Mi n giá tr ề (Range)

unsigned char

1

0 … 255

unsigned int

2

0 … 65.535

unsigned short

2

0 … 65.535

unsigned long

4

0 … 4.294.967.295

11/7/13 ng 2 - Các ph n t c b n c a 18/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Ki u s nguyên (tt)

o Các phép tính s h c v i s nguyên

ớ ố

ố ọ

Phép toán

Ví d b ng s ụ ằ

Kí hi uệ +

Ví dụ x+y

C ngộ

-

x-y

Trừ

*

x*y

Nhân

/

x/y

3/2=1 ch không ph i là 1.5

%

x%y

5%3 = 2

Chia l y ph n ấ nguyên Chia l y s d ấ

ố ư

o Chú ý:

ố ự

n Th n tr ng tránh hi n t

ng

n Chia 2 s nguyên là s nguyên, mu n là s th c ố ph i vi ả ế (float)x/y ậ

ố t ọ

tràn số

ệ ượ

11/7/13 ng 2 - Các ph n t c b n c a 19/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Ki u s nguyên (tt)

o Bi u di n s nguyên d ng h đ m 16 (Hexa)

ệ ế

0x41 ho c ặ 0X41

ạ ố ễ n B t đ u b ng kí t ự 0x ho c ặ 0X ằ ắ ầ n Ví d : ụ 65 đ t là c vi ượ ế 0xF ho c ặ 0XF t là c vi ế ượ

15 đ

ệ ế

0101

o Bi u di n s nguyên d ng h đ m 8 (Octa) ố ễ n B t đ u b ng kí t ằ ắ ầ ự 0 n Ví d : ụ 65 đ c vi t là ế ượ t là c vi ế ượ 017

15 đ

ướ

ố n Thêm m t kí t

cu i vào s :

o H ng s nguyên đ nh tr ộ

ị ố

c ki u ể ố L (long), U (unsigned

ự integer, UL (unsigned long)

n Ví d : ụ 50000U, 012345L, 0x50000U ng 2 - Các ph n t

c b n c a 20/59 11/7/13 ầ ử ơ ả ươ ủ

Ch ngôn ng Cữ

Ki u s th c ố ự

t bình th

ng

o D ng vi ạ

ế

ườ

n Ví d : ụ 3.14 3.0 -24.12345 -0.453

o D ng vi ạ

ế

n G m: ph n đ nh tr và ph n mũ vi

t khoa h c ọ ị ị

ế

ữ E

t sau ch (ho c ặ e), gi a chúng không có kho ng cách ả

n Ví d : ụ 6.2144E+02

n Chú ý:

o N u không có ph n mũ thì ph n đ nh tr b t bu c ph i ả

ị ắ

ế

có d u ấ .

Ph n đ nh tr Ph n mũ ầ ầ ị ị

.1212)

ố ở ầ

o Có th không c n s 0 ể o KHÔNG t n t

ầ i phép

ồ ạ

đ u (vd: % cho s th c ố ự

11/7/13 ng 2 - Các ph n t c b n c a 21/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Ki u s th c ố ự

o Các ki u s th c ể

ố ự

Ki uể (Type)

Đ l nộ ớ (Byte)

Mi n giá tr ề (Range)

float

4

1.24E-38 … 3.4E38 Đ chính xác kho ng 7 ch s

ữ ố

double

8

2.2E-308 … 1.8E308 Đ chính xác kho ng 15 ch s

ữ ố

long double

10

3.4E4932…3.4E4932 Đ chính xác kho ng 19 ch s

ữ ố

11/7/13 ng 2 - Các ph n t c b n c a 22/59 ầ ử ơ ả ủ ươ

o H ng s th c đ nh tr

c ki u

ố ự

ướ

n Thêm kí t

cu i:

ố F (float), L (long double)

n Ví d : ụ 0.1234567-20L 4E12F

Ch ngôn ng Cữ

Ki u ký t

o Đ c đi m ặ

trong b ng mã ASCII.

ể n Tên ki u: ể char n Mi n giá tr : 256 ký t ị n Chính là ki u s nguyên do: ể o Không l u tr c ti p ký t

mà ch l u mã ASCII c a ký t

ư

ế

ỉ ư

đó.

n L u s 65 t n L u s 97 t

ng đ ng đ

‘A’ ‘a’

o Ví dụ ư ư

ươ ươ

ươ ươ

ng v i ký t ớ ng v i ký t ớ

ự ự

ố ố o H ng kí t ự ằ ữ

n Đ t gi a hai d u ph y trên ẩ n Ví d : ụ ‘a’ ‘A’ ‘z’

11/7/13 ng 2 - Các ph n t c b n c a 23/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Ki u ký t

(tt)

trong b ng mã ASCII

o Bi u di n m t kí t ễ

i d ng

c vi

t d

ự n \xHHH (HHH là giá tr s Hexa c a kí t ) ự n \DDD (DDD là giá tr s Octa c a kí t ) ự n Ví d : ‘ụ A’ đ

ị ố ị ố ế ướ ạ

ượ

ủ \x41 ho c ặ \101

Dãy mã

Giá tr trong b ng ASCII

Kí tự

Xoá trái

\b

x08

Nh y cách ngang

\t

x09

Xu ng dòng

\n

x0A

\”

x22

D u “ấ

\’

x27

D u ‘ấ

\\

x5C

D u \ấ

Mã null

\0

x00

11/7/13 ng 2 - Các ph n t c b n c a 24/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Ki u ký t

(tt)

o Các hàm x lí kí t

ng

ể ể ể

n toASCII(c): chuy n c thành giá tr mã ASCII n tolower(c): chuy n thành ch th ữ ườ n toupper(c): chuy n thành ch hoa ữ

ế

o H ng xâu kí t ự n H ng xâu kí t ằ n Xâu kí t

đ

“” ớ ề

đ ự ượ c l u tr trong m t m ng ô nh li n ộ ự ượ ư ố

t trong c p nháy kép ả ố

c l u là:

c vi ữ nhau và có ô cu i cùng ch a mã s 0 (null) o Ví d : Xâu ụ

ứ ượ ư

“Viet nam” đ

i

t

m

\0

e n H ng xâu kí t

không đ

n c vi

ượ

a t trong bi u th c s ố ể

ế

V ằ h cọ

11/7/13 ng 2 - Các ph n t c b n c a 25/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Ki u Boolean

o Đ c đi m ặ

n C ng m đ nh m t cách không t

ng minh:

ể ầ

ườ

ộ ị

ị o false (sai): giá tr 0. o true (đúng): giá tr khác 0, th

ng là 1.

ườ

n C++: bool

o Ví dụ

n 0 (false), 1 (true), 2 (true), 2.5 (true) n 1 > 2 (0, false), 1 < 2 (1, true)

11/7/13 ng 2 - Các ph n t c b n c a 26/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

4. Câu l nh – Bi u th c

o Bi u th c ể

n T o thành t

toán tử (Operator) và các toán

các h ngạ (Operand).

tác đ ng lên các giá tr c a toán h ng và

n Toán t

ị ủ

ấ ị

n Toán t n Toán h ng:

i g i hàm

...

ộ cho giá tr có ki u nh t đ nh. : ử +, –, *, /, %…. ạ

h ngằ , bi nế , l

ờ ọ

o Ví dụ

n 2 + 3, a / 5, (a + b) * 5, …

11/7/13 ng 2 - Các ph n t c b n c a 27/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Câu l nhệ

o Khái ni mệ

ị ự ự

ộ ố

ấ ị

ế ệ

n Là m t ch th tr c ti p, hoàn ch nh nh m ra l nh cho máy tính th c hi n m t s tác v nh t đ nh nào đó.

n Các câu l nh cách nhau b ng d u ch m ph y ẩ ; n Trình biên d ch b qua các kho ng tr ng (hay tab

ấ ắ

ỏ ho c xu ng dòng) chen gi a l nh.

ấ ả ữ ệ

ặ o Ví dụ a=2912; a = 2912; a = 2912;

11/7/13 ng 2 - Các ph n t c b n c a 28/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Câu l nh (tt) ệ

ỉ ồ

ơ

n Câu l nh đ n: ch g m m t câu l nh. n Câu l nh ph c (kh i l nh): g m nhi u câu l nh ề

ứ c bao b i

ố ệ ở { và }

o Phân lo iạ ệ ệ đ n đ ượ ơ o Ví dụ

ơ

a = 2912;

// Câu l nh đ n

// Câu l nh ph c/kh i l nh

{

a = 2912; b = 1706;

}

11/7/13 ng 2 - Các ph n t c b n c a 29/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Phép gán

ị ơ

o Phép gán giá tr đ n gi n =

c

ế Ví d : ụ i=3; i=i+4; ị ủ

n Giá tr c a bi u th c bên ph i d u gán = đ ứ

ả ấ

ế

ượ đ t vào ô nh c a bi n n m bên trái d u gán. n V trái ch có th là tên c a m t bi n ho c là giá

ể ớ ủ ể

ế

ằ ủ tr d ng m t đ a ch ô nh . ớ ộ ị

ặ ế ị ạ o Phép gán kép

ế a,b,c

a=b=c=3; Gán giá tr 3 cho c 3 bi n

ớ b và gán k t ế

a=b+(c=3); Gán 3 cho c, sau đó c ng v i qu nh n đ

c cho

a

ượ

11/7/13 ng 2 - Các ph n t c b n c a 30/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

S hi u ch nh d li u khi tính toán ữ ệ

ự ệ

o Máy t

ơ

ự ơ

ể ể ổ ể

ế

đông chuy n ki u đ n gi n lên ki u ể cao h n đ quy đ i ki u k t qu , theo th t : ứ ự ả int  long  float  double  long double

char

o Chuy n đ i cho ki u kí t ổ

ự ể n Chuy n đ i qua l i gi a char và int ạ ể n Ví d : ‘A’ + 1 = 66

o C ý chuy n đ i ki u giá tr (typecast) ổ ể

n Cú pháp: ki uể (bi nế ) ho c ặ (ki uể )bi nế n Ví d : f =

float(1) / 2; g = float(1 / 2);

11/7/13 ng 2 - Các ph n t c b n c a 31/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

5. Th t

u tiên các phép toán

ứ ự ư

Toán t ử o Toán t ỉ

toán h c ọ 1 ngôi ử ộ

ứ -- (gi m 1 đ n v ) ị

ể ơ

ơ

ặ ướ

n Ch có m t toán h ng trong bi u th c. ạ n ++ (tăng 1 đ n v ), ị n Đ t tr ạ o Ví d ụ ++x hay --x: th c hi n tăng/gi m

c toán h ng ự

ả tr

c.ướ

n Đ t sau toán h ng

o Ví d xụ ++ hay x--: th c hi n tăng/gi m

ả sau.

o Ví dụ

n x = 10; y = x++; n x = 10; y = ++x;

// y = 10 và x = 11 // x = 11 và y = 11

11/7/13 ng 2 - Các ph n t c b n c a 32/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Các toán t

toán h c

o Toán t

2 ngôi

n Có hai toán h ng trong bi u th c. ạ n +, –, *, /, % (chia l y ph n d ) ư

o Ví dụ

n a = 1 + 2; b = 1 – 2; c = 1 * 2; d = 1 / 2; n e = 1*1.0 / 2; n h = 1 % 2; n x = x * (2 + 3*5);  x *= 2 + 3*5;

11/7/13 ng 2 - Các ph n t c b n c a 33/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Phép gán m r ng

ở ộ

o C cho phép vi

ế ệ

t l nh gán m r ng theo quy ở ộ

đ nh: ị

x+=y  x= x+y x-=y  x= x-y x*=y  x= x*y x/=y  x= x/y x%=y  x= x%y x>>=y  x= x>>y x<<=y  x= x<

11/7/13 ng 2 - Các ph n t c b n c a 34/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Các toán t

trên bit

o Các toán t

trên bit

n Tác đ ng lên các bit c a toán h ng (nguyên). n & (and), | (or), ^ (xor), ~ (not hay l y s bù 1) n >> (shift right), << (shift left) n Toán t

g p:

ử ộ &=, |=, ^=, ~=, >>=, <<=

& 0 1 | 0 1

0 0 0 0 0 1

1 0 1 1 1 1

~ 0 1 ^ 0 1

1 0 0 0 1

1 1 0

>>

a>>n = a/2n

<<

a<

11/7/13 ng 2 - Các ph n t c b n c a 35/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Các toán t

trên bit

o Ví dụ

void main() {

int a = 5; // 0000 0000 0000 0101 int b = 6; // 0000 0000 0000 0110

int z1, z2, z3, z4, z5, z6; z1 = a & b; // 0000 0000 0000 0100 z2 = a | b; // 0000 0000 0000 0111 z3 = a ^ b; // 0000 0000 0000 0011 z4 = ~a; // 1111 1111 1111 1010 z5 = a >> 2;// 0000 0000 0000 0001 z6 = a << 2;// 0000 0000 0001 0100

}

11/7/13 ng 2 - Các ph n t c b n c a 36/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Các toán t

quan h

o Các toán t

quan h ệ n So sánh 2 bi u th c v i nhau ớ ứ ể n Cho ra k t qu 0 (hay false n u sai) ho c 1 (hay ế

ế

ả true n u đúng) ế

n ==, >, <, >=, <, <=, !=

o Ví dụ

n s1 = (1 == 2);s2 = (1 != 2); n s3 = (1 > 2); n s5 = (1 < 2);

s4 = (1 >= 2); s6 = (1 <= 2);

11/7/13 ng 2 - Các ph n t c b n c a 37/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Các toán t

logic

o Các toán t

logic ể ề

ổ ợ

ệ ớ

n T h p nhi u bi u th c quan h v i nhau. ứ n && (and), || (or), ! (not)

&& 0 1 || 0 1

0 0 0 0 0 1

n Ví dụ

o s1 = (1 > 2) && (3 > 4); o s2 = (1 > 2) || (3 > 4); o s3 = !(1 > 2);

1 0 1 1 1 1

11/7/13 ng 2 - Các ph n t c b n c a 38/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Toán t

đi u ki n

ử ề

o Toán t

đi u ki n

ử ề

ạ :

ể ứ

ứ ể o đúng thì giá tr là . o sai thì giá tr là .

ệ n Đây là toán t 3 ngôi (g m có 3 toán h ng) ử n ? ể ể ể

ứ ứ

o Ví dụ

n s1 = (1 > 2) ? 2912 : 1706; n int s2 = 0; n 1 < 2 ? s2 = 2912 : s2 = 1706;

11/7/13 ng 2 - Các ph n t c b n c a 39/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Toán t

ph y ẩ

o Toán t

t đ

trái sang

ph y ẩ n Các bi u th c đ t cách nhau b ng d u ấ , ứ ể n Các bi u th c con ừ ứ ể

ằ l n l c tính t ầ ượ ượ

c là

giá tr c a bi u th c

n Bi u th c m i nh n đ

ượ

ị ủ

ph iả . ể

.

ứ ớ bên ph i cùng ả

o Ví dụ

n x = (a++, b = b + 2); n  a++; b = b + 2; x = b;

11/7/13 ng 2 - Các ph n t c b n c a 40/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Đ u tiên c a các toán t ủ

ộ ư

Đ u tiên

ộ ư

1 ngôi)

Toán tử () [] -> ! ++ -- - ~ sizeof() (toán t * / % + - << >> < <= > >= == != & | ^ && || ?: = += -= *= /= %= &= ^= |= <<= >>=

             

11/7/13 ng 2 - Các ph n t c b n c a 41/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Đ u tiên c a các toán t ủ

ộ ư

o Quy t c th c hi n

c.

ự n Th c hi n bi u th c trong ( ) sâu nh t tr ấ ướ ứ ệ n Th c hi n theo th t . u tiên các toán t ử ứ ự ư ệ => T ch đ ng thêm ( ) ủ ộ

ắ ự ự ự o Ví dụ

n n = 2 + 3 * 5; => n = 2 + (3 * 5);

n a > 1 && b < 2 => (a > 1) && (b < 2)

11/7/13 ng 2 - Các ph n t c b n c a 42/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Vi

t bi u th c cho các m nh đ

ế

o x l n h n hay b ng 3

ơ

ớ x >= 3

o a và b cùng d uấ

((a>0) && (b>0)) || ((a<0) && (b<0))

(a>0 && b>0) || (a<0 && b<0)

o p b ng q b ng r

(p == q) && (q == r) ho cặ (p == q && q == r)

o –5 < x < 5

(x > –5) && (x < 5) ho cặ (x > –5 && x < 5)

11/7/13 ng 2 - Các ph n t c b n c a 43/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

6. S d ng môi tr

ng làm vi c C

ử ụ

ườ

o Môi tr

ng Turbo C++

ườ

ng n m trong TC\BIN

n Các file c b n: ơ ả o TC.EXE – th ằ ườ o Các t p *.H (stdio.h, conio.h, math.h…) – th

ườ

ng n m ằ

trong th m c TC\include ở ộ

ng trình: Ctrl + F9

ư ụ n Kh i đ ng: TC\BIN\TC.EXE n T o t p m i: File  New ớ ạ ệ n M t p: F3 ở ệ n L u t p: F2 ư ệ n Thoát: Alt + X n D ch: Alt + F9 ị n Ch y ch ạ

ươ

11/7/13 ng 2 - Các ph n t c b n c a 44/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

S d ng môi tr

ử ụ

ườ

ng làm vi c C (tt) ệ

ườ

n T o m i:

o Môi tr ạ

ng Dev-C++ ớ

o File  New  Project  Console Application o File  New  Source File

ng trình: Ctrl + F10 ươ ạ

n M file/project: File -> Open Project or file ở n D ch: Ctrl + F9 ị n Ch y ch ạ n D ch và ch y: F9 ị n G r i: ỡ ố o G r i: F8 ỡ ố o Ch y t

con tr : Shift + F4

ạ ừ

11/7/13 ng 2 - Các ph n t c b n c a 45/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

7. Vào – Ra d li u trong C

ữ ệ

Xu t d li u ấ ữ ệ o Th vi n ư ệ

n #include (standard input/output)

o Cú pháp

n printf(“dãy mã quy cách”, dãy các bi u th c) ứ n dãy mã quy cách là dãy các đ nh d ng đ ượ

ể ạ

c đ t ặ

ườ

“ ”. ặ ng (literal text) ả đi u khi n (escape sequence) ể ự ề

trong c p nháy kép o Văn b n th o Ký t o Đ c t

(conversion specifier)

ặ ả

11/7/13 ng 2 - Các ph n t c b n c a 46/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Mã quy cách

o Văn b n th ườ ấ

ng (literal text) n Đ c xu t y h t nh lúc gõ trong chu i đ nh ư

ỗ ị

ả ượ d ng.ạ

ỗ Hello World

o Ví dụ n Xu t chu i ấ  printf(“Hello ”); printf(“World”);

 printf(“Hello World”);

ỗ a + b

n Xu t chu i ấ  printf(“a + b”);

11/7/13 ng 2 - Các ph n t c b n c a 47/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Mã quy cách (tt)

o Ký t

n G m d u \ và m t ký t

nh trong b ng sau:

đi u khi n (escape sequence) ự ề ả ấ ồ

ư

Ký t đi u khi n Ý nghĩa ự ề ể

c ộ ướ ạ

o Ví dụ

\a \b \n \t \\ \? \” Ti ng chuông ế Lùi l i m t b Xu ng dòng ố D u tab In d u \ấ In d u ?ấ In d u “ấ

n printf(“\t”); printf(“\n”); n printf(“\t\n”); ươ

11/7/13 ng 2 - Các ph n t c b n c a 48/59 ầ ử ơ ả ủ

Ch ngôn ng Cữ

Mã quy cách (tt)

o Đ c t ặ ả ồ

. ự

ị ố ố

ấ ố

ế

ố ấ ị cách nhau d u ph y.

t kê theo th t

đ

(conversion specifier) n G m d u % và m t ký t ộ n Xác đ nh ki u c a bi n/giá tr mu n xu t. ế n Các đ i s chính là các bi n/giá tr mu n xu t, ứ ự

c li ượ ệ

Ý nghĩa Đ c tặ ả

char char, int, short, long float, double char[], char* unsigned int/short/long ấ

ạ ạ

%c %d, %ld %f, %lf %s %u %lu %x, %X %o %e, %E Ký tự S nguyên có d u ố S th c ố ự Chu i ký t ự ỗ S nguyên không d u S nguyên d ng Hexa S nguyên d ng Octa S th c d ng mũ ạ ố ố ố ố ự

11/7/13 ng 2 - Các ph n t c b n c a 49/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Mã quy cách (tt)

o Ví dụ

n int a = 10, b = 20; n printf(“%d”, a); n printf(“%d”, b); n printf(“%d %d”, a, b);

 Xu t ra 10 ấ  Xu t ra 20 ấ  Xu t ra 10 20

 Xu t ra 15.060000

n float x = 15.06; n printf(“%f”, x); n printf(“%f”, 1.0/3);

ấ  Xu t ra 0.333333

11/7/13 ng 2 - Các ph n t c b n c a 50/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Đ nh d ng xu t ấ ạ

o Cú pháp

nd

n Đ nh d ng xu t s nguyên: % n Đ nh d ng xu t s th c: % n.kf

ấ ố ấ ố ự

ạ ạ

ị ị

int a = 1706; float x = 176.85; printf(“%10d”, a);printf(“\n”); printf(“%10.2f”, x);printf(“\n”); printf(“%.2f”, x);printf(“\n”);

1 7 0 6

6 . 8 5 1 7

1 7 6 . 8 5

11/7/13 ng 2 - Các ph n t c b n c a 51/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Mã quy cách (tt)

o Ph i h p các thành ph n

ố ợ

.

ố ị ủ

ị ủ

n int a = 1, b = 2; n Xu t ấ 1 cong 2 bang 3 và xu ng dòng // Xu t giá tr c a bi n a ế // Xu t chu i “ cong ” ỗ // Xu t giá tr c a bi n b ế // Xu t chu i “ bang ” ỗ ị ủ

o printf(“%d”, a); o printf(“ cong ”); o printf(“%d”, b); o printf(“ bang ”); o printf(“%d”, a + b); o printf(“\n”);

ấ ấ ấ ấ // Xu t giá tr c a a + b // Xu t đi u khi n xu ng dòng \n ể ấ

ấ ề

 printf(“%d cong %d bang %d\n”, a, b, a+b);

11/7/13 ng 2 - Các ph n t c b n c a 52/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Nh p d li u

ữ ệ

o Th vi n

ư ệ

n #include (standard input/output)

o Hàm scanf()

n scanf(“dãy mã quy cách”, dãy các đ a ch các bi n); n Danh sách các bi n: là tên các bi n s ch a giá tr nh p

ế ậ

ế

ế c và có d u ấ & đ t tr ặ ướ Ý nghĩa

Mã quy cách

lu

%c %d %u %hd, %hu %ld %lu %f, %e %lf ho c %ặ %s Ký t char S nguyên int ố S nguyên unsigned int ố S nguyên short int/ unsigned int ố S nguyên long int, unsiged long ố S th c ố ự S th c double ố ự Xâu không ch a d u cách, dùng v i đ a ch xâu ứ ớ ị ấ ỉ

11/7/13 ng 2 - Các ph n t c b n c a 53/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Nh p d li u (tt)

ữ ệ

o Nguyên t c đ c ắ n S : máy ố

các kí tự là các d u ch m câu g p ặ ch sữ ố, đ c đ n khi ọ

ế

ọ nh y qua ả g p kí t ặ

ự ự không là ch sữ ố. ố

ự ọ ấ

ầ ạ

mà ta yêu c u : đ c đúng s kí t o Vai trò c a d u cách trong mã đ nh d ng ả

các d u cách đ đ c s /kí t

cho đ n khi ế kí t n Xâu kí t ủ ấ ấ

n G p d u cách trong mã đ nh d ng, máy nh y qua ố

ể ọ

o Khuôn đ cọ ọ

ộ ố

n Đ c m t s trong ph m vi m ch s gõ vào ữ ố n Ví d : ụ scanf(“%3d%3d”,&n,&p)

o Xoá b nh đ m: ộ

ớ ệ

fflush(stdin);

11/7/13 ng 2 - Các ph n t c b n c a 54/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Nh p d li u (tt)

ữ ệ

bàn phím

t ự ừ

bàn phím

ngay khi gõ vào không đ i ợ

, không qua b nh đ m

. ớ ệ

ng trình

bàn phím ươ

xem k t quế

n Gi ng getch(), nh ng

hi n th

lên màn hình

o Hàm getchar() n Đ c m t kí t ọ o Hàm getch() n Đ c kí t t ự ừ ọ Enter và không hi n th ra màn hình n phím ể n Đ c th ng t ẳ ọ n Dùng đ ể d ng ch ừ o Hàm getche() ố

ị kí t

ư

cho đ n khi gõ

Enter

o Hàm gets() ọ

n Đ c m t xâu kí t ộ

ế

11/7/13 ng 2 - Các ph n t c b n c a 55/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Trình bày màn hình

ư ệ

o Th vi n: o Hàm gotoxy(int x, int y) n Đ a con tr vào to đ X, Y (X: 180, Y: 125) ạ ộ

ỏ ư o Hàm clrscr()

n Xoá màn hình, đ a con tr v góc trên trái

ỏ ề

ư

n m bên ph i con tr màn hình

ự ằ

o Hàm đ t màu ch /màu n n

o Hàm clreol() n Xoá các kí t ặ

ả ề

n textcolor(int color): đ t màu cho ch n textbackground(int color): đ t màu n n

ặ o Hàm window(x1,y1,x2,y2):

n T o ra m t c a s góc trái trên là (x1,y1) và góc ph i d

ộ ử

i ả ướ

là (x2,y2)

11/7/13 ng 2 - Các ph n t c b n c a 56/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Bài t p lý thuy t ế

1. Trình bày các ki u d li u c s trong C và

ơ ở

ữ ệ

cho ví d .ụ

2. Trình bày khái ni m v bi n và cách s d ng

ề ế

ử ụ

l nh gán. ệ 3. Phân bi

ng và h ng ký hi u.

T i sao nên s d ng c p ngo c đ n.

ơ

t h ng th ườ ệ ằ Cho ví d minh h a. ọ ụ 4. Trình bày khái ni m v bi u th c. ệ ử ụ ị

ứ ặ 9. Trình bày cách đ nh d ng xu t. ấ

ề ể ặ ạ

11/7/13 ng 2 - Các ph n t c b n c a 57/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Bài t p th c hành

ườ

i và tính tu i ổ

6. Nh p năm sinh c a m t ng i đó.

7. Nh p 2 s a và b. Tính t ng, hi u, tính và

ng c a hai s đó.

th

ườ ố ủ 8. Nh p tên s n ph m, s l ả

ậ c a ng ủ ậ ươ ậ

ố ẩ

t:

ế

ế

ng và đ n giá. ơ Tính ti n và thu giá tr gia tăng ph i tr , bi ả ả a.

ố ượ ị ng * đ n giá ơ

b.

ề ti n = s l ề thu giá tr gia tăng = 10% ti n

ố ượ ị

ế

11/7/13 ng 2 - Các ph n t c b n c a 58/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ

Bài t p th c hành

9. Nh p đi m thi và h s 3 môn Toán, Lý, Hóa ệ ố c a m t sinh viên. Tính đi m trung bình c a ộ ủ sinh viên đó.

10. Nh p bán kính c a đ

ng tròn. Tính chu vi và

ườ

c?

bi

ậ di n tích c a hình tròn đó. ủ ệ ồ ố ậ t s xe c a b n đ ủ ế ố

11. Nh p vào s xe (g m 4 ch s ) c a b n. Cho ượ

ữ ố ủ c m y n ướ ấ

11/7/13 ng 2 - Các ph n t c b n c a 59/59 ầ ử ơ ả ủ ươ

Ch ngôn ng Cữ