intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:0

107
lượt xem
19
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo bài giảng về Ngôn ngữ lập trình C++ gồm 7 chương - Chương 2 Các yếu tố cơ bản của ngôn ngữ

Chủ đề:
Lưu

Nội dung Text: Ngôn ngữ lập trình C - Chương 2

  1. Ch−¬ng 2 Ch C¸c yÕu tè c¬ b¶n cña ng«n ng÷
  2. 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ập kí tự • Chữ cái: a-z, A-Z – Phân biệt chữ thường, chữ in (≠ Pascal) • Chữ số: 0-9 – Chữ số bắt đầu bằng 0 hệ 8, 0x, 0X hệ 16. – Chữ số kết thúc bằng L, l: long, U, u: unsigned. • Kí tự khác: ; kết thúc một câu lệnh. – { } bắt đầu và kết thúc khối chương trình. – ‘ ’ bắt đầu và kết thúc hằng ký tự. – “ ” bắt đầu và kết thúc hằng xâu ký tự. – • Nếu xâu kí tự dài hơn một dòng thì đặt dấu \ trước khi xuống dòng. –… • Kí tự đặc biệt: – \n: xuống dòng, \b: backspace, \t: tab, \0: null, \r: cr, \f: lf, ... 2 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  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 – Tập từ khóa • 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, … 3 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  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. • Quy cách đặt tên: Chứa chữ cái, chữ số, dấu gạch nối ( _ ). – Không chứa dấu cách, dấu của phép toán. – Ký tự đầu tiên phải là chữ cái hoặc dấu gạch nối. – Độ dài mặc định là 32. – 4 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  5. 2.1 C¸c phÇn tö ng«n ng÷ c¬ b¶n 2.1.2 Các kiểu dữ liệu cơ sở – Kiểu số nguyên • int 2 byte. • Các kiểu biến thể của int: – 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. • Các kiểu biến thể của long: – unsigned long int, viết gọn là unsigned long (long int là ngầm định của signed long int) • Phạm vi biểu diễn ? số byte • Chú ý khi gán giá trị kiểu nguyên: – Số dạng long có L hoặc l ở cuối – Số trong hệ cơ số 8 (16) có 0 (0x, 0X) ở đầu. 5 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  6. 2.1 C¸c phÇn tö ng«n ng÷ c¬ b¶n 2.1.2 Các kiểu dữ liệu cơ sở – Kiểu số thực (số dấu chấm động): • float 4 byte • double 8 byte, long double 10 byte • Biểu diễn số thực trong máy tính: – Độ chính xác biểu diễn ? – Chuẩn IEEE 754: v = s * m * 2e • VD: (-1)S * (1,f1 f2 … f23) * 2E-127 (E: 8 bit) • VD: (-1)S * (1,f1 f2 … f52) * 2E-1023 (E: 11 bit) – Chú ý về phạm vi biểu diễn: [-max … -min] _ [min … max] không nên so sánh bằng với các số thực ! – • Lưu ý hai ký pháp viết số dấu chấm động: – Kiểu thông thường (dạng thập phân). – Kiểu khoa học (dạng mũ): 1E5, 1.234E-5, 12.345e6, -123.45e-6 6 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  7. 2.1 C¸c phÇn tö ng«n ng÷ c¬ b¶n 2.1.2 Các kiểu dữ liệu cơ sở – Kiểu ký tự • char 1 byte (kiểu viết ngầm định của signed char ). – Kiểu khác : unsigned char. • 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. – Các kiểu C++ bổ sung vào C : bool, wchar_t. • 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ụ Unicode). 7 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  8. 2.1 C¸c phÇn tö ng«n ng÷ c¬ b¶n 2.1.3 Biến và hằng – Khai báo biến • Kiểu_dữ_liệu tên_biến; – VD: int m, n; float x, y; • ≠ Pascal ? – 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 ?) – Khai báo hằng • 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, …). 8 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  9. 2.2 BiÓu thøc 2.2.1 Biểu thức – Biểu thức: • Kết hợp phép toán và toán hạng diễn đạt công thức. – Toán hạng: hằng, biến, biểu thức con, lời gọi hàm, … – 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). – So với Pascal: • Pascal: đúng ~ True, sai ~ False. • Trong C++ có thể định nghĩa lại: – #define TRUE 1 – #define FALSE 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… 9 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  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): >, >=,
  11. 2.2 BiÓu thøc 2.2.3 Biểu thức gán, biểu thức điều kiện và phép toán tăng, giảm 1 đơn vị – Biểu thức gán: biến = biểu thức • Lệnh gán: biến = biểu thức; • Có thể sử dụng cùng các phép toán số học. – Ký pháp đặc biệt: • Cho phép thực hiện phép toán số học, xử lý bit gọn hơn • +=, -=, *=, /=, %=, &=, |=, ^=, >>=, c?a:c):(b>c?b:c); – Phép toán tăng, giảm 1 đơn vị: ++, -- • Trong một biểu thức, việc thực hiện trước hay sau phụ thuộc vào vị trí phép toán (tiền tố, hậu tố). 11 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  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 thước bộ nhớ và phạm vi – 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ộ. 12 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  13. 2.2 BiÓu thøc 2.2.5 Quy tắc thực hiện biểu thức Mức Phép toán Thứ tự thực hiện Mức Phép toán Thứ tự thực hiện 1 :: (phạm vi, không có trong C) 9 & (phép toán và bit) Trái sang phải 2 ( ), [ ], ->, . (truy nhập thành Trái sang phải 10 (phép toán hoặc bit)| Trái sang phải phần biến cấu trúc) 3 !, ~, ++, --, -, () (chuyển kiểu), Phải sang trái 11 ^ (phép toán hoặc lại trừ Trái sang phải * (tham chiếu nội dung biến bit trỏ), & (địa chỉ), sizeof 4 *, /, % (phép toán số học) Trái sang phải 12 && (phép toán và lôgic) Trái sang phải 5 +, - (phép toán số học) Trái sang phải 13 || (phép toán hoặc lôgic) Trái sang phải 6 (dịch trái, dịch phải Trái sang phải 14 ? : (phép toán điều kiện) Phải sang trái bit) 7 = (phép toán so Trái sang phải 15 =, +=, -=, *=, /=, %=, Phải sang trái sánh) >>=,
  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 – Thư viện vào/ra • 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. – Cơ chế vào/ra: • 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 (). 14 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  15. 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 – Một số hàm đơn giản • clrscr xóa màn hình – ~ clrscr trong Pascal. • getch chờ ấn một phím, hàm trả về kí tự vừa bấm (hoặc đã có sẵn trong buffer) – ~ readkey / keypressed trong Pascal. – Một số hàm khác: • putchar/getchar: vào ra với ký tự. • puts/gets: vào ra với xâu ký tự. • putch, getche, … – Đọc thêm tài liệu tra cứu về các hàm vào/ra trên. • Chú ý: tùy vào trình dịch mà các hàm vào/ra có thể khác nhau ! 15 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  16. 2.3 Vµo/ra d÷ liÖu 2.3.2 Hàm printf – Cú pháp: printf( [, ]); • Hàm trả về số kí tự, lỗi -1 • : xâu “điều khiển” chứa “định dạng” (bắt đầu bằng %) • [, ]: danh sách các giá trị (hằng, biến, biểu thức, …) cần đưa ra (có thể có hoặc không) • VD: printf ( “ Can bac 2 cua %d la : %f ”, x, sqrt (x) ); – Các định dạng đơn giản thường gặp: Số nguyên: %d, %i, %ld, %li, %o, %lo, %u, %x, %lx, %X, … • Số thực: %f, %lf, %e, %E, … • Số thực: %g, %G, … • Ký tự, xâu: %c, %s, … • Khác: %p, … • 16 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  17. 2.3 Vµo/ra d÷ liÖu 2.3.2 Hàm printf – Ghi vị trí theo quy cách: • %4d, %5.2f, %17.7e, … • %20s, %-10s, … • %*.5f, … – Chú ý về con số định dạng và kiểu trình bày • VD: printf ( “ %-4d , %5.3f ”, n, x ); • VD: printf ( “ %f , %*.2f “, x, n, y ); – 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. – Đọc thêm tài liệu tra cứu về các định dạng trên. 17 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  18. 2.3 Vµo/ra d÷ liÖu 2.3.3 Hàm scanf – Cú pháp: scanf( [, ]); Hàm trả về số giá trị nhận được • : xâu “điều khiển” chứa “định dạng” (bắt đầu bằng %) • [, ]: danh sách các địa chỉ biến lưu trữ giá trị đọc vào. • VD: scanf ( “%d%f ”, &n, &x ); • – Các định dạng đơn giản thường gặp: Số nguyên: %d, %ld, %o, %lo, %x, %lx, … • Số thực: %f, %lf, %e, %le, … • Ký tự, xâu: %c, %s, … • Không chứa số vị trí như trong printf. • 18 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  19. 2.3 Vµo/ra d÷ liÖu 2.3.3 Hàm scanf – Chú ý khi dùng 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 – Có thể sử dụng hàm fflush(stdin) để bỏ qua các kí tự xuống dòng. – Cũng có thể dùng dấu * sau dấu %. • Xâu định dạng có thể chứa kí tự khác ngoài định dạng. – Người mới học ngôn ngữ C++ chưa nên dùng. – Chú ý: dấu cách cũng là ký tự khác không nên có dấu cách trong xâu định dạng. – Đọc thêm tài liệu tra cứu về các định dạng trên. 19 Bài giảng C++. 14/10/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD
  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 > (nhập). – Ghi dữ liệu lên thiết bị ra chuẩn (màn hình). • Lệnh: cout > giá trị; • Giá trị, quy ước, … xem phép toán
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2