Tài liệu Môn học phương pháp lập trình

CHUYỂN ĐỔI KIỂU DỮ LIỆU • Phép chuyển đổi kiểu cho phép chuyển đổi dữ liệu từ kiểu này sang kiểu khác. • Cách cơ bản nhất được thừa kế từ ngôn ngữ C là : (Kiểu dữ liệu)

pdf25 trang | Chia sẻ: nguyenlam99 | Lượt xem: 1010 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Tài liệu Môn học phương pháp lập trình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
27/12/201111 1 1 MÔN HỌC PHƯƠNG PHÁPLẬP TRÌNH 2 Giới thiệu • Mục tiêu môn học Cung cấp cho sinh viên kiến thức căn bản về kỹ thuật lập trình và lập trình theo tiếp cận hướng đối tượng, một phương pháp lập trình rất thông dụng hiện nay. • Nội dung • Một số thuật ngữ liên quan đến máy tính và lập trình. • Sơ lược về ngôn ngữ lập trình • Ngôn ngữ minh họa Pseudo code và C/C++ • Các giải thuật cơ bản • Kỹ năng tư duy và thực hành trên ngôn ngữ cụ thể. 3 Phương thức • Phương thức học • Giờ lý thuyết: giảng và báo cáo • Giờ thực hành tại phòng máy • Kiểm tra và thi • Kiểm tra thực hành: kỹ năng lập trình • Thi lý thuyết : trắc nghiệm khách quan • Tài liệu tham khảo • Slide bài giảng Lập Trình Căn Bản • Giáo trình Phương Pháp Lập trình – Khoa CNTT • Tài liệu khác • CDROM bài tập và thực hành 4 CHƯƠNG 1: NHẬP MÔN VỀ MÁY TÍNH VÀ LẬP TRÌNH 27/12/201111 2 5 NỘI DUNG 1. Hệ thống số, các quy tắc chuyển đổi 2. Các khái niệm cơ bản 3. Các thành phần cơ bản trong ngôn ngữ C++ 4. Các kiểu dữ liệu trong C++ 5. Biến, hằng, cách khai báo 6. Lệnh xuất nhập 7. Định dạng kết quả xuất 8. Các toán tử 6 HỆ THỐNG SỐ- CÁC QUY TẮC CHUYỂN ĐỔI 7 Biểu diễn số trong các hệ đếm • Hệ đếm là tập hợp các ký hiệu và qui tắc sử dụng tập ký hiệu đó để biểu diễn và xác định các giá trị các số. Mỗi hệ đếm có một số ký số (digits) hữu hạn. Tổng số ký số của mỗi hệ đếm gọi là cơ số (base hay radix), ký hiệu là b. • b ≥ 2, b là số nguyên dương 8 Hệ đếm thập phân (Decimal system, b=10) Ví dụ: • Số 123 được biểu diễn như sau: • 123 = 1 * 102 + 2 * 101 + 3*100 • Số 5246 có thể được biểu diễn như sau: • 5246 = 5 * 103 + 2 *102 + 4 * 101 + 6 * 100 = 5 * 1000 + 2 * 100 + 4 * 10 + 6 * 1 254.68 =? = 2 * 102 + 5 * 101 + 4 * 100 + 6 * 10-1 + 8 * 10-2 27/12/201111 3 9 Hệ đếm nhị phân (Binary system, b=2) • Ví dụ: • 10101(2) = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 16 + 0 + 4 + 0 + 1 = 21 (10) • 11101.11(2) = 1x24 + 1x23 + 1x22 + 0x21 + 1x20 + 1x2-1 + 1x2-2 = 29.75 (10) 10 Hệ đếm bát phân (Octal system, b=8) • Ví dụ: • 235 . 64 (8) = 2x82 + 3x81 + 5x80 + 6x8-1 + 4x8-2 = 157. 8125(10) 11 Hệ đếm thập lục phân (Hexa-decimal system, b=16) • Khi thể hiện ở dạng hexa-decimal, ta có 16 ký tự gồm 10 chữ số từ 0 đến 9, và 6 chữ in A, B, C, D, E, F để biểu diễn các giá trị số • Ví dụ: 34F5C (16) = 3x164 + 4x163 + 15x162 + 5x161 + 12x160 = 216294 (10) 12 Bảng qui đổi tương đương 16 chữ số đầu tiên của 4 hệ đếm Hệ 10 Hệ 2 Hệ 8 Hệ 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 A B C D E F 27/12/201111 4 13 Đổi một số nguyên từ hệ thập phân sang hệ b • Lấy số nguyên thập phân N(10) lần lượt chia cho b cho đến khi thương số bằng 0. • Kết quả số chuyển đổi N(b) là các dư số trong phép chia viết ra theo thứ tự ngược lại 14 Chuyển thập phân(10) -> nhị phân(2) • Ví dụ 1: • Số 12 (10) = ?(2). Dùng phép chia cho 2 liên tiếp, ta có một loạt các số dư như sau: 15 Ví dụ 2: 0.6875 (10) = ? (2) 16 Chuyển nhị phân -> thập phân 10101(2) = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 16 + 0 + 4 + 0 + 1 = 21 (10) 27/12/201111 5 17 Chuyển cơ số 10 -> 8 • Ví dụ: Chuyển số (3287,5100098)10 -> ?8 Phần nguyên 3287 : 8 thương là 410 dư 7 410 : 8 51 2 51 : 8 6 3 6 : 8 0 6 Vậy (3287)10 = (6328)8 Phần lẻ: 0,5100098 x 8 = 4,0800784 phần nguyên là 4 0,0800784 x 8 = 0,6406272 0 0,6406270 x 8 = 5,1250176 5 0,1250176 x 8 = 1,0001408 1 Vậy (0,5100098)10 = (90,4051)8 Kết quả chung là: (3287,5100098)10 = (6327,4051)8 18 Chuyển cơ số 8 ->10 • Ví dụ: 235 . 64 (8) = 2x82 + 3x81 + 5x80 + 6x8-1 + 4x8-2 = 157. 8125 (10) 19 Chuyển cơ số 16 -> 10 • Cho M = (3A,2F)16 M = 3.161 + 10.160 , 2.16-1 +15.16-2 M = 48 + 10 + 2/16 + 15/256 =( 58,1836)10 20 Chuyển cơ số 10 -> 16 Thực hiện: Phần nguyên 625 : 16 Thương là: 42 dư 3 42 : 16 2 10 (A) 2 : 16 0 2 Phần nguyên là: (2A3)16 Phần lẻ: 0,625 x 16 =10,000 Phần lẻ là 10 = (A) Kết quả chuyển đổi là: M = (675,625)10 = 2A3,A)16 27/12/201111 6 21 Chuyển số nhị phân sang hệ 16 SỐ THẬP PHÂN CƠ SỐ 16 NHỊ PHÂN 4 BIT 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 22 22 CÁC KHÁI NIỆM CƠ BẢN 232 Lập trình • Lập trình máy tính (programming) gọi tắt là lập trình là kỹ thuật cài đặt một hoặc nhiều thuật toán trừu tượng có liên quan với nhau bằng một hoặc nhiều ngôn ngữ lập trình để tạo ra một chương trình máy tính. 242 Thuật toán (giải thuật) • Thuật toán là một bộ các quy tắc hay quy trình cụ thể nhằm giải quyết một vấn đề trong một số bước hữu hạn 27/12/201111 7 252 Ví dụ: Thuật toán để giải phương trình bậc nhất: P(x): ax + b = c, (a, b, c là các số thực), có thể là một bộ các bước sau đây: • Nếu a = 0 • b = c thì P(x) có nghiệm bất kỳ • b ≠ c thì P(x) vô nghiệm • Nếu a ≠ 0 • P(x) có duy nhất một nghiệm x = (c - b)/a 262 Sử dụng lưu đồ (Flowchart): 272 Các Ví Dụ 282 27/12/201111 8 292 Ngôn ngữ lập trình (programming language): • Là một tập con của ngôn ngữ máy tính, là một hệ thống được ký hiệu hóa để miêu tả những tính toán (qua máy tính) trong một dạng mà cả con người và máy đều có thể đọc và hiểu được. • Một tập hợp các chỉ thị được biểu thị nhờ ngôn ngữ lập trình để thực hiện các thao tác máy tính nào đó thông qua một chương trình 303 Ngôn ngữ lập trình (programming language): • Ngôn ngữ lập trình có thể phân theo 2 cách: • Ngôn ngữ cấp cao – ngôn ngữ cấp thấp • Ngôn ngữ hướng thủ tục – ngôn ngữ hướng đối tượng • Ngôn ngữ c++ là ngôn ngữ bậc cao có chứa các đặc trưng của cả 2 loại ngôn ngữ: hướng thủ tục và hướng đối tượng 313 Lớp và đối tượng • Lớp được phân loại dựa vào hai đặc điểm: Dữ liệu Phương pháp có thể áp dụng cho dữ liệu này • Một đối tượng là một trường hợp cụ thể của lớp. 323 Cấu trúc của một chương trình C++ • Một chương trình gồm nhiều đoạn được sắp xếp theo một trình tự logic, mỗi đọan thực hiện một chức năng trong chương trình gọi là modules • Trong C++ modules có thể là lớp hoặc hàm • Mỗi hàm có một tên riêng • Các lệnh của 1 hàm phải đặt trong { } • Mỗi lệnh được kết thúc bằng dấu ; 27/12/201111 9 333 Cấu trúc của một chương trình C++ • Những khai báo, những chỉ thị tiền xử lý. #include #define .... • Khai báo các biến toàn cục • Hàm main () { Các lệnh trong hàm main; } 343 Hàm main() • Mỗi chương trình trong C++ phải có duy nhất một hàm main(), dùng để điều khiển chương trình • Cấu trúc của hàm main main() { program statement; return value; } 353 Ví dụ: chương trình C++ đơn giản #include #include int main () { cout << "Hello World!"; getch(); return 0; } 36 Các tập tin thư viện thông dụng  Đây là các tập tin chứa định nghĩa các hàm thông dụng khi lập trình C/C++.  Muốn sử dụng các hàm trong các tập tin header này thì phải khai báo #include ở phần đầu của chương trình, với FileName.h là tên tập tin thư viện. 27/12/201111 10 37 Các tập tin thư viện thông dụng  Các tập tin thư viện thông dụng gồm: • Stdio.h(C), iostream.h(C++): định nghĩa các hàm vào ra chuẩn như các hàm xuất dữ liệu (printf())/cout), nhập giá trị cho biến (scanf())/cin), nhận ký tự từ bàn phím (getc()), in ký tự ra màn hình (putc()), nhập một chuỗi ký tự từ bàm phím (gets()), xuất chuỗi ký tự ra màn hình (puts()) • Conio.h: định nghĩa các hàm vào ra trong chế độ DOS, như clrscr(), getch(), 38 Các tập tin thư viện thông dụng • math.h: Định nghĩa các hàm toán học như: abs(), sqrt(), log(), log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp(), • alloc.h: định nghĩa các hàm vào ra cấp thấp gồm các hàm open(), _open(), read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(), lock(), 39 39 CÁC THÀNH PHẦN CƠ BẢN TRONG CHƯƠNG TRÌNH C/C++ 404 Bộ ký tự dùng trong ngôn ngữ C++ • Các chữ cái : A, B, C ..., Z, a,b,c,...z • Các chữ số : 0,1,..., 9. • Ký tự gạch nối _ (underscore, chú ý phân biệt dấu - ). • Dấu cách ( space) : dùng để phân biệt các từ Ví dụ : Lop Hoc( 7 kí tự) còn LopHoc( 6 kí tự). 27/12/201111 11 414 Tên(định danh identifier) • Tên ( định danh ) : là 1 dãy kí tự bắt đầu bằng chữ hoặc ký tự gạch dưới, theo sau là chữ cái, chữ số hoặc ký tự gạch nối underscore (_). • Tên : dùng làm tên hằng, tên biến, nhãn, tên hàm.... Ví dụ : - Tên đúng : _abc, Delta_1, BETA. - Tên sai : 1xyz ( vì bắt đầu là 1 chữ số ) A#B ( vì có dâu #) X-1 (vì sử dụng dấu gạch ngang). 424 Tên(định danh identifier) • Chú ý : • + Tên : chữ hoa và chữ thường được xem là khác nhau + Thông thường : . Ðặt chữ hoa cho các hằng, chữ thường cho các đại lượng còn lại (biến, hàm..). . Nên đặt 1 cách gợi nhớ ( 8 kí tự đầu là có nghĩa và tuỳ thuộc chương trình ). 434 Ví dụ: int x, y; int HeA. HeB, HeC; float u,v; Tên(định danh identifier) 444 Từ khóa (keyword) • Một số từ được giữ bởi C++ cho một số mục đích riêng và không thể được dùng cho các định danh gọi là từ khóa 27/12/201111 12 454 Từ khóa (keyword) asm continue float new signed try auto default for operator sizeof typedef break delete friend private static union case do goto protected struct unsigned catch double if public switch virtual char else inline register template void class enum int return this volatile const extern long short throw while 464 Chú thích trong chương trình • Chú thích được dùng để giải thích một vài khía cạnh của chương trình. Trình biên dịch bỏ qua hoàn toàn các chú thích trong chương trình. • C++ cung cấp hai loại chú thích: • Chú thích trên 1 dòng: // • Chú thích trên nhiều dòng: /* và */ 474 Các ký tự đặc biệt \’ : dấu nháy đơn \” : dấu nháy kép \\ : dấu chéo ngược \n : ký tự xuống dòng \0 : ký tự rỗng ( null) \t : phím tab \f : trang kế tiếp 48 48 KIỂU DỮ LIỆU TRONG C++ 27/12/201111 13 494 Kiểu số nguyên Name Description Size Range* char Character or small integer. 1byte signed: -128 to 127 unsigned: 0 to 255 short int (short) Short Integer. 2bytes signed: -32768 to 32767 unsigned: 0 to 65535 int Integer. 4bytes signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 long int (long) Long integer. 4bytes signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 505 Kiểu số thực Name Description Size Range* float Floating point number. 4bytes 3.4e +/- 38 (7 digits) double Double precision floating point number. 8bytes 1.7e +/- 308 (15 digits) long double Long double precision floating point number. 10bytes 1.2e +/- 4932 (19 digits) 515 Kiểu bool bool Boolean value. It can take one of two values: true or false. 1byte true or false 52 52 BIẾN-HẰNG – CÁCH KHAI BÁO 27/12/201111 14 535 BIẾN-CÁCH KHAI BÁO BIẾN Biến đại lượng thay đổi, mỗi biến có 1 tên và địa chỉ vùng nhờ danh riêng cho nó. • CÁCH KHAI BÁO BIẾN: ; Ví dụ: int a; float mynumber; 545 BIẾN-CÁCH KHAI BÁO BIẾN • Nếu các biến có cùng kiểu dữ liệu thì có thể khai báo: <danh sách các biến cách nhau bởi dấu phẩy>; Ví dụ: int a, b, c; 555 BIẾN-CÁCH KHAI BÁO BIẾN • PHẠM VI CỦA BIẾN 565 BIẾN-CÁCH KHAI BÁO BIẾN • KHỞI TẠO GIÁ TRỊ CHO BIẾN type identifier = initial_value ; Ví dụ: int a = 0; type identifier initial_value 27/12/201111 15 575 VÍ DỤ • #include • using namespace std; • int main () • { • int a=5; // initial value = 5 • int b(2); // initial value = 2 • int result; // initial value undetermined(chua XD) • a = a + 3; • result = a - b; • cout << result; • return 0; • } 585 HẰNG – CÁCH KHAI BÁO HẰNG HẰNG (Constants): Là một đại lượng mà giá trị của nó không đổi 595 Hằng nguyên ( Int ) Có giá trị từ -32768 đến 32767 Khi viết theo hệ 16 bằng cách thêm tiền tố Ox Hoặc theo cơ số 8 bằng cách thêm tiền tố O Ví dụ : O3068 =6*80 +0*81 + 3* 82 = 198 trong hệ 10 O3458 = 5*80 +4*81+ 3*82 = 229 trong hệ 10 Ox147 =7*160+4*161+1*162=327 trong hệ 10 606 Hằng long Int • Giống như hằng nguyên, chỉ khác thêm L hoặc l ở cuối. • Ví dụ: 75u // unsigned int 75l // long 75ul // unsigned long 27/12/201111 16 616 Hằng thực ( float và double ) Có 2 cách viết - Cách 1 : dạng thập phân: phần nguyên, dấu chấm thập phân và phần phân. * Ví dụ : 214.35 , - 234.34. - Cách 2 : Viết theo dạng khoa học * Ví dụ : 1.543e7 = 15430000 123.456E-4 = 0.0123456 ( 123.456/105) 626 Hằng ký tự • Viết trong 2 dấu nháy kép. Giá trị của hằng chính là mã ASCII của chữ. • Ví dụ : 'A' = 65; 'd' = 100, '9 ' - '0 ' = 57 - 48 = 9 636 Định nghĩa hằng Cú pháp: #define identifier value Ví dụ: #define PI 3.14159265 #define NEWLINE '\n' 646 Ví dụ // defined constants: calculate circumference #include using namespace std; #define PI 3.14159 #define NEWLINE '\n' int main () { double r=5.0; // radius 27/12/201111 17 656 Ví dụ double circle; circle = 2 * PI * r; cout << circle; cout << NEWLINE; getch(); return 0; } 666 Khai báo hằng (const) Cú pháp: const tên hằng = giá trị Ví dụ: const int pathwidth = 100; const char tabulator = '\t'; 67 67 CÁC LỆNH XUẤT NHẬP CHUẨN 686 Lệnh xuất chuẩn (cout) • Cú pháp: cout<<biểu thức; Trong đó : Biểu thức có thể là: –Biến –Hằng –Chuổi 27/12/201111 18 696 Lệnh xuất chuẩn (cout) • Ví dụ: cout << "This is a sentence."; cout << "This is another sentence."; cout << "Second sentence.\nThird sentence."; 707 Lệnh nhập chuẩn (cin) • Cú pháp: cin>>tên biến; ví dụ: int a; cout<<“nhap gia tri cho a: ”; cin>>a; cout<<“gia tri cua a la :”<<a; 717 Định dạng kết quả xuất • setw(n): ấn định độ rộng để in một số là n • setprecision(n): ấn định số chữ số thập phân sẽ hiển thị. • dec: hiển thị giá trị số ở hệ thập phân • hec: hiển thị giá trị số ở hệ thập lục phân • oct : hiển thị giá trị số ở hệ bát phân 727 Định dạng kết quả xuất • Lưu ý: muốn sử dụng các định dạng thì trong chương trình ta phải khai báo : #include 27/12/201111 19 737 Ví dụ • #include • #include • void main() • { • cout <<setw(5) <<12; //kết quả “...12” • cout <<setw(10); cout <<hex <<15 // kết quả f • cout <<oct <<10; // kết quả 12 • cout <<dec <<0x10; // kết quả 16 • return; • } 74 CÁC TOÁN TỬ 1. Toán tử gán 2. Toán tử số học 3. Các toán tử gán phức hợp 4. Toán tử tăng giảm 5. Tóan tử quan hệ 6. Toán tử logic 7. Toán tử điều kiện 8. Toán tử lấy kích thước 9. Chuyển đổi kiểu dữ liệu 75 TOÁN TỬ GÁN(=) Toán tử gán dùng để gán một giá trị nào đó cho một biến • Ví dụ: a=5// gán giá trị nguyên 5 cho biến a Vế trái của phép gán bắt buộc phải là một biến, vế phải có thể là hằng, biến hay kết quả của một biểu thức. 76 TOÁN TỬ GÁN(=) Toán tử gán luôn được thực hiện từ trái sang phải Ví dụ: a = b; //gán giá trị của biến a bằng giá trị đang chứa trong biến b Cho phép vế phải có thể chứa các phép gán khác. Ví dụ: a = 2 + (b = 5); tương đương với b = 5; a = 2 + b; 27/12/201111 20 77 TOÁN TỬ SỐ HỌC Toán tử Tên Ví dụ + Cộng 12 + 4.9 // kết quả 16.9 - Trừ 3.98 - 4 // kết quả -0.02 * Nhân 2 * 3.4 // kết quả 6.8 / Chia 9 / 2.0 // kết quả 4.5 % Lấy phần dư 13 % 3 // kết quả 1 78 TOÁN TỬ SỐ HỌC Trừ toán tử lấy phần dư (% ) thì tất cả các toán tử số học có thể chấp nhận pha trộn các toán hạng số nguyên và toán hạng số thực. • Nếu cả hai toán hạng là số nguyên thì kết quả sẽ là một số nguyên. • Một hoặc cả hai toán hạng là số thực thì kết quả sẽ là một số thực (real hay double) 79 TOÁN TỬ GÁN PHỨC HỢP Toán Tử Ví dụ Tương đương với += n += 25 n = n + 25 -= n -= 25 n = n – 25 *= n *= 25 n = n * 25 /= n /= 25 n = n / 25 %= n %= 25 n = n % 25 80 Ví dụ: #include int main () { int a, b=3; a = b; a+=2; // tương đương với a=a+2 cout << a; return 0; } 27/12/201111 21 81 TOÁN TỬ TĂNG - GIẢM • Toán tử tăng (++) và toán tử giảm (--) có tác dụng làm tăng hoặc giảm 1 giá trị lưu trong biến. Chúng tương đương với +=1 hoặc -=1. Vì vậy, các dòng sau là tương đương: a++; a+=1; a=a+1; 82 TOÁN TỬ TĂNG - GIẢM • Toán tử tăng/giảm có 2 dạng: • Tiền tố :++a • Hậu tố: a++ 83 TOÁN TỬ TĂNG - GIẢM • Trường hợp toán tử được sử dụng như là một tiền tố ++a: giá trị của a tăng trước khi biểu thức được tính và giá trị đã tăng được sử dụng trong biểu thức • Trong trường hợp toán tử được sử dụng như là một hậu tố a++ : giá trị trong biến a được tăng sau khi đã tính toán. 84 TOÁN TỬ TĂNG - GIẢM Ví dụ 1: B=3; A=++B; Kết quả: A chứa giá trị 4, B chứa giá trị 4 Ví dụ 2: B=3; A=B++; Kết quả: A chứa giá trị 3, B chứa giá trị 4 27/12/201111 22 85 TOÁN TỬ QUAN HỆ Toán tử Tên Ví dụ == So sánh bằng 5 == 5 // kết quả 1 != So sánh không bằng 5 != 5 // kết quả 0 < So sánh nhỏ hơn 5 < 5.5 // kết quả 1 <= So sánh nhỏ hơn hoặc bằng 5 <= 5 // kết quả 1 > So sánh lớn hơn 5 > 5.5 // kết quả 0 >= So sánh lớn hơn hoặc bằng 6.3 >= 5 //kết quả1 86 TOÁN TỬ QUAN HỆ Các toán hạng của một toán tử quan hệ phải ước lượng về một số. Các ký tự là các toán hạng hợp lệ vì chúng được đại diện bởi các giá trị số. Ví dụ (giả sử mã ASCII): 'A' < 'F' // kết quả là 1 (tương đương với 65 < 70) 87 TOÁN TỬ LOGIC Toán tử Ý nghĩa Ví dụ ! Phủ định !(5 == 5) // kết quả là 0 && và 5 < 6 && 6 < 6 // kết quả là 0 || Hoặc 5 < 6 || 6 < 5 // kết quả là 1 0: SAI (false) Khác 0: ĐÚNG (true) 88 TOÁN TỬ ĐIỀU KIỆN • Cú pháp Trong đó E1, E2, E3 là các biểu thức. • Ý nghĩa: Nếu E1 đúng thì E2 được ước lượng và nó trở thành giá trị của biểu thức. Ngược lại, nếu E1 sai, E3 được ước lượng và trở thành giá trị của biểu thức. E1 ? E2 : E3 27/12/201111 23 89 TOÁN TỬ ĐIỀU KIỆN • Ví dụ: X = 10 Y = X > 9 ? 100 : 200 Nếu X>9 thì Y được gán giá trị 100, ngược lại,nếu X nhỏ hơn 9 thì Y sẽ nhận giá trị là 200. E1 E2 E3 90 TOÁN TỬ ĐIỀU KIỆN • Phép toán điều kiện cũng là một biểu thức nên nó có thể được sử dụng như một toán hạng của phép toán điều kiện khác. • Ví dụ: int m = 1, n = 2, p =3; int min =(m < n ? (m < p ? m : p) : (n < p ? n : p)); E1 E2 E3 91 TOÁN TỬ ĐIỀU KIỆN(ví dụ) #include int main () { int a,b,c; a=2; b=7; c = (a>b) ? a : b; cout << c; return 0; } 92 TOÁN TỬ LẤY KÍCH THƯỚC • sizeof(data_Type) : để tính kích thước của bất kỳ hạng mục dữ liệu hay kiểu dữ liệu nào. • Kết quả trả về là kích thước của kiểu dữ liệu đã chỉ định theo byte. • Ví dụ: cout << "char size = " << sizeof(char) << " bytes\n"; 27/12/201111 24 93 TOÁN TỬ BITWISE Toán tử Tên Ví dụ ~ Phủ Định Bit ~'\011' // được '\366' & Và bit '\011' & '\027‘ // được '\001' | Hoặc bit '\011' | '\027‘ // được '\037' ^ Hoặc exclusive bit '\011' ^ '\027‘ // được '\036' << Dịch trái bit '\011' << 2 // được '\044' >> Dịch phải bit '\011' >> 2 // được '\002' 94 TOÁN TỬ BITWISE Ví dụ : 105 & 7 = 1// 01101001 & 0000 0111= 00000001 105 | 7 = 127//01101001 | 0000 0111= 01101111 0x60 = 0x96 /* 0110 1001 = 1001 0110 */ 95 ĐỘ ƯU TIÊN CỦA CÁC TOÁN TỬ TOÁN TỬ ĐỘ Ư/TIÊN ( ) 1 !, ++, --, sizeof() 2 *, /, % 3 +, - 4 > 5 , >= 6 = =, != 7 TOÁN TỬ ĐỘ ƯU TIÊN & 8 ^ 9 | 10 && 11 || 12 ? : 13 =, +=, -=, *=, /= 14 96 CHUYỂN ĐỔI KIỂU DỮ LIỆU • Phép chuyển đổi kiểu cho phép chuyển đổi dữ liệu từ kiểu này sang kiểu khác. • Cách cơ bản nhất được thừa kế từ ngôn ngữ C là : (Kiểu dữ liệu) Ví dụ: 27/12/201111 25 97 CHUYỂN ĐỔI KIỂU DỮ LIỆU • (int) 3.14 // chuyển 3.14 sang int để được 3 • (long) 3.14 // chuyển 3.14 sang long để được 3L • (double) 2 // chuyển 2 sang double để được 2.0 • (char) 122 // chuyển 122 sang char có mã là 122 • (unsigned short) 3.14 // được 3 như là một unsigned short

Các file đính kèm theo tài liệu này:

  • pdf3chuong1_compatibility_mode_4262.pdf
Tài liệu liên quan