1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ lập trình C - Chương 2 potx

39 330 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Các yếu tố cơ bản của ngôn ngữ
Trường học Học viện Kỹ thuật Quân sự
Chuyên ngành Khoa học Máy tính
Thể loại Bài giảng
Năm xuất bản 2008
Thành phố Hà Nội
Định dạng
Số trang 39
Dung lượng 441,13 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

Ch −¬ ng 2

cña ng«n ng÷

Trang 3

2.1 C¸c phÇn tö ng«n ng÷ c¬ b¶n

2.1.1 T p ký t , t p t khóa và tên

Ki u d li u:

char, int, short, long, float, double, signed, unsigned, …

void, enum, struct, union, typedef, …

L nh:

if, else, switch, while, do, for, …

break, continue, goto, return, …

L u tr d li u và chuy n đ i ngôn ng l p trình:

auto, const, extern, register, static, …

asm, pascal, …

T khóa c a C++ b sung vào C:

new, delete, inline, operator, …

class, public, protected, private, this, friend, virtual, …

Trang 4

2.1 C¸c phÇn tö ng«n ng÷ c¬ b¶n

2.1.1 T p ký t , t p t khóa và tên

Tên

L y t t p kí t ngôn ng :

Phân bi t ch cái hoa, th ng.

Không đ c khai báo tên trùng t khóa.

Trang 5

unsigned int (int là ki u vi t ng m đ nh c a signed int)

short int, vi t g n là short (s khác nhau gi a short và int?)

long int, vi t g n là long å 4 byte.

Trang 6

VD: (-1) S * (1,f1 f2 … f23) * 2 E-127 (E: 8 bit)

VD: (-1) S * (1,f1 f2 … f52) * 2 E-1023 (E: 11 bit)

Chú ý v ph m vi bi u di n: [-max … -min] _ [min … max]

Trang 7

C cho phép thao tác v i ký t nh s nguyên !

C xem h ng kí t là ki u nguyên å kích th c 2 byte.

VD: ‘\141’ ~ ‘a’ ä b ng mã ASCII (a ~ 97 ~ 0141)

C++ xem h ng ký t là ki u char å kích th c 1 byte.

Chú ý: ‘a’ ≠ “a”.

Ki u không xác đ nh (r ng) : void.

Ki u bool: có giá tr true và false (~ Pascal).

Ki u wchar_t: dùng cho các t p ký t l n h n (v í d U nicode).

Trang 8

Khai báo m i n i trong ch ng trình ( ≠ ANSI C ? ≠ Pascal ?)

Có th kh i t o giá tr ngay khi khai báo bi n ( ≠ Pascal ?)

const tên_ki u_d _li u tên_h ng = giá_tr ;

VD: const int MAX = 100;

#define tên_h ng xâu_giá_tr ( h ng t ng tr ng)

VD: #define MAX 100

Bi u di n h ng

Phân bi t h ng theo ki u d li u (int, long int, char, float, …).

Trang 9

Phép toán: 1 ngôi, 2 ngôi, 3 ngôi.

Bi u th c đ c phân bi t theo ki u giá tr : nguyên và th c.

M nh đ logic đ c xem là có giá tr nguyên, đúng ~ giá tr khác không (=1) và sai ~ giá tr không (=0).

Tuy v y dùng quen å không c n thi t.

C++ đ a vào nhi u quan ni m m i v bi u th c: bi u th c gán,

bi u th c đi u ki n…

Trang 10

2.2 BiÓu thøc

2.2.2 Phép toán s h c, quan h , logic và thao tác bit

Phép toán đ i d u (1 ngôi):

-– Các phép toán s h c ( 2 ngôi): +, -, *, /, %

Là các phép toán cho c ki u nguyên và th c.

Phép toán / trên ki u nguyên ~ phép toán div trên Pascal.

Phép toán % ch dùng cho ki u nguyên ~ phép toán mod trên Pascal.

Các phép toán quan h ( 2 ngôi): >, >=, <, <=, ==, !=

Chú ý 2 phép toán == (~ phép toán = trên Pascal) và != (~ phép toán <> trên Pascal)

Các phép toán logic: &&, || (2 ngôi), ! (1 ngôi)

Chú ý phép ph đ nh 1 ngôi !

Các phép toán thao tác trên bit ( 2 ngôi): &, |, ^, <<, >>, ~

Chú ý 2 phép << và >>

Chú ý phép ~ (phép bù 1) và ^ (phép ho c lo i tr )

Trang 11

Bi u th c đi u ki n: expr1 ? expr 2 : expr 3

Ki u c a bi u th c bao trùm ki u c a expr2 và expr3.

Trang 12

2.2 BiÓu thøc

2.2.4 Phép toán chuy n ki u, l y đ a ch , l y kích

Chuy n ki u (ép ki u): (ki u) bi u th c ho c: ki u (bi u th c)

C không cho phép s d ng ký pháp th hai.

C++ có th t đ ng chuy n ki u å th t : char – int – long – float – double – long double.

Phép toán l y đ a ch : &bi n

Ch ra giá tr đ a ch c a bi n, không s d ng cho h ng, bi u th c.

Phép toán l y kích th c b nh : sizeof(bi n)

L y kích th c theo byte

Phép toán ph m vi: ::bi n (không có trong C)

C n t i khi s d ng bi n toàn c c trùng tên bi n c c b

Trang 14

2.3 Vµo/ra d÷ liÖu

2.3.1 Vào/ra v i các th vi n stdio.h, conio.h

stdio.h khai báo các hàm vào/ra chu n không ph thu c thi t b

conio.h khai báo các hàm vào/ra s d ng các thi t b xác đ nh (bàn phím, màn hình, …) ~ th vi n crt trong Pascal.

C++ cung c p thêm th vi n iostream.h g m m t s đ i t ng và phép toán vào ra v i m t s đ c tính m i.

S d ng vùng đ m (buffer) trong RAM.

Vào: thi t b vào åvùng đ m åquy cách å giá tr å ch ng trình.

Ra: ch ng trình å giá tr å vùng đ m å quy cách åthi t b ra.

Vào/ra có quy cách (format): printf, scanf, …

C++ cung c p thêm các đ i t ng vào/ra (cin, cout) và các phép toán t ng ng (<<, >>).

Trang 15

~ readkey / keypressed trong Pascal.

putchar/getchar: vào ra v i ký t

puts/gets: vào ra v i xâu ký t

putch, getche, …

Chú ý: tùy vào trình d ch mà các hàm vào/ra có th khác nhau !

Trang 16

2.3 Vµo/ra d÷ liÖu

2.3.2 Hàm printf

Cú pháp: printf(< đ nh d ng> [, <tham s >]);

Hàm tr v s kí t , l i å -1

< đ nh d ng>: xâu “đi u khi n” ch a “đ nh d ng” (b t đ u b ng %)

[, <tham s >]: danh sách các giá tr (h ng, bi n, bi u th c, …) c n

Trang 17

Trong xâu đi u khi n có th :

Ch a các kí t thông th ng ho c các kí t đi u khi n (\n, \f, …)

Không đ a ra giá tr å xâu đi u khi n ph i là h ng, không là

bi n.

Trang 18

2.3 Vµo/ra d÷ liÖu

2.3.3 Hàm scanf

Cú pháp: scanf(< đ nh d ng> [, <tham s >]);

Hàm tr v s giá tr nh n đ c

< đ nh d ng>: xâu “đi u khi n” ch a “đ nh d ng” (b t đ u b ng %)

[, <tham s >]: danh sách các đ a ch bi n l u tr giá tr đ c vào.

VD: scanf ( “%d%f ”, &n, &x );

Trang 19

2.3 Vµo/ra d÷ liÖu

2.3.3 Hàm scanf

Các giá tr vào cách nhau b i d u cách, tab ho c xu ng dòng.

N u không có giá tr vào, bi n s gi nguyên giá tr tr c khi đ c.

Khi nh p nhi u giá tr å t n t i ký t xu ng dòng trong b đ m

Trang 20

2.3 Vµo/ra d÷ liÖu

2.3.4 Vào/ra v i các đ i t ng cin, cout

Th vi n iostream.h (không có trong C).

Các đ i t ng vào/ra: cin ~ bàn phím, cout ~ màn hình.

S d ng các phép toán << (xu t) và >> (nh p).

L nh: cout << giá tr ;

Giá tr có th có ki u b t k : ki u d li u c s , xâu kí t , con tr

N u mu n đ a ra con tr char *, ph i chuy n ki u t ng minh.

L nh: cin >> giá tr ;

Giá tr , quy c, … xem phép toán <<

Ngoài vi c s d ng hàm fflush(stdin) có th dùng l nh: cin.clear();

Trang 22

2.4 C¸c lÖnh ®iÒu khiÓn

2.4.2 Các l nh r nhánh if [else] và switch

L nh if [else]

if ( đi u ki n) l nh 1 [else l nh 2]

ho c [else if ( đi u ki n 1) l nh 3 … else l nh n]

(“l nh” đây có th là câu l nh ho c kh i l nh).

Cú pháp l nh if có m t s ch khác Pascal: ngo c đ n quanh bi u

th c đi u ki n, cho phép g i hàm trong bi u th c đi u ki n, ph i

có d u “;” sau câu l nh (l nh đ n) cu i cùng tr c else.

C++ quy c else đi theo if g n nh t Khi c n thi t, có th dùng

d u kh i l nh “{ … }” đ ch rõ else nào t ng ng if nào.

Cách vi t if (bi u th c !=0) là t ng đ ng v i if (bi u th c)

Ví d : tìm giá tr l n nh t, có và không dùng else.

Trang 23

2.4 C¸c lÖnh ®iÒu khiÓn

2.4.2 Các l nh r nhánh if [else] và switch

switch ( đi u ki n) { case giá tr 1: [l nh 1] [break; ] case giá tr 2: [l nh 2] [break; ]

… default: [l nh n] [break; ] }

Trang 26

2.4 C¸c lÖnh ®iÒu khiÓn

2.4.3 Các l nh t o vòng l p while, for và do while

L nh for vi t l i theo d ng l nh while :

bt1;

while (bt2) {

l nh bt3;

}

Vòng l p for trong C++ có m t s đi m khác bi t so v i

vòng l p for trong Pascal

Có th có nhi u bi n đi u khi n (nh r ng l nh trong C++ có th

có nhi u bi u th c gán cách nhau b i d u “,”).

Các bi u th c bt1, bt2, bt3 có th có m t ho c không (nh ng v n

ph i có d u ; ng n cách) N u bt2 không có ~ bi u th c đi u ki n luôn đúng ~ vòng l p vô h n.

Trang 27

L nh do while c a C++ khác l nh repeat until c a Pascal : Pascal

th c hi n l nh sau repeat cho đ n khi đi u ki n là đúng, còn C++

th c hi n l nh sau repeat trong khi đi u ki n còn đúng.

K c khi không có l nh nào sau do, v n ph i có c p { }.

Nh v y khác v i vòng l p while, “l nh” trong vòng l p do while

v n s đ c th c hi n ít nh t là 1 l n k c khi “đi u ki n” là sai ngay t đ u.

Ví d : ki m tra đi u ki n sau khi th c hi n l nh

Trang 28

2.4 C¸c lÖnh ®iÒu khiÓn

2.4.4 Nói thêm v các l nh break, continue và goto

Thoát kh i l nh switch, vòng l p (for, while, do while).

N u có nhi u vòng l p, l nh break s tác đ ng đ n vòng trong cùng nh t.

Trang 29

2.5 Con trá, tham chiÕu vµ cÊp

2.5.1 Con tr và tham chi u

Con tr :

Là bi n/h ng có giá tr là đ a ch c a m t đ i t ng (bi n/hàm)

Khai báo: ki u_d _li u *tên_con_tr ;

VD: int * i_ptr; float * f_ptr;

Trang 30

2.5 Con trá, tham chiÕu vµ cÊp

2.5.1 Con tr và tham chi u

Con tr void * có th nh n đ a ch ki u b t kì (nguyên, th c, …).

C++ s chuy n ki u t đ ng t con tr ki u khác sang void*

N u c n chuy n ki u ng c l i ng i l p trình ph i vi t t ng minh Tuy v y trong C đi u này không c n thi t.

Tham chi u (không có trong C):

Là “bí danh” cho m t đ i t ng khác & s d ng vùng nh c a đ i

t ng đó ( ~ tham chi u đ n đ i t ng đó).

Bi n tham chi u ph i đ c kh i t o ngay khi khai báo.

Khai báo: ki u_d _li u &bi n_tham_chi u = bi n;

VD: int &r = n;

M t s v n đ khác v tham chi u s đ c mô t trong ph n hàm.

Không nên nh m l n tham chi u v i phép toán đ a ch

Trang 31

2.5 Con trá, tham chiÕu vµ cÊp

2.5.1 Con tr và tham chi u

Khai báo: const ki u_d _li u &bi n_tham_chi u = bi n;

VD: const int &r = n ;

Cho phép s d ng giá tr trong vùng nh , nh ng không cho phép thay đ i giá tr này.

Trang 32

2.5 Con trá, tham chiÕu vµ cÊp

Trang 33

2.5 Con trá, tham chiÕu vµ cÊp

S d ng các hàm trong các th vi n alloc.h, stdlib.h.

S d ng các phép toán new và delete (là các phép toán m i đ c

b sung trong C++, không có trong ANSI C).

Trang 34

2.5 Con trá, tham chiÕu vµ cÊp

Trang 35

2.5 Con trá, tham chiÕu vµ cÊp

Khai báo: ki u_d _li u *bi n_tr ;

bi n_tr = new ki u_d _li u;

Ví d : thao tác v i con tr , tham chi u và c p phát đ ng.

Trang 36

Có th tham kh o sách ti ng Vi t, chú ý hai cu n sách (v ngôn

ng C và C++) c a GS Ph m V n t.

Có th s d ng Help c a Turbo C++3.0.

Chú ý v tham s truy n vào và giá tr tr v

Phân bi t vai trò, ch c n ng c a hai th vi n

stdio.h là th vi n vào/ra chu n (không ph thu c thi t b ).

conio.h là th vi n vào/ra cho các thi t b xác đ nh (màn hình, bàn phím,…).

Trang 37

Có th tham kh o sách ti ng Vi t, chú ý hai cu n sách (v ngôn

ng C và C++) c a GS Ph m V n t.

Có th s d ng Help c a Turbo C++3.0.

Tìm hi u k cách th c t ch c qu n lý b nh tr c khi dùng các hàm trong th vi n

S mô t k h n v n đ qu n lý l u tr d li u trong ch ng 4.

Chú ý v tham s truy n vào và giá tr tr v

Trang 38

2.6 c thêm

2.6.3 B ng mã ASCII, Unicode và mã quét bàn phím

Xem TLTK đ có hình dung s b v mã ASCII.

Tham kh o tài li u ti ng Anh ( đã nêu trong ph n TLTK).

Có th tham kh o sách ti ng Vi t, chú ý hai cu n sách (v ngôn

Trang 39

2.6 c thêm

Ngày đăng: 06/08/2014, 01:20

TỪ KHÓA LIÊN QUAN