Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
2,4 MB
Nội dung
KỸ THUẬT LẬPTRÌNH C/C++ (C/C++ PROGRAMMING) GIẢNG VIÊN: TS NGUYỄN DUY HUY BỘ MƠN: TIN HỌC MỎ Thơng tin mơn học (1) • Mã số: 4080531 • Số tín chỉ: 03 (45 tiết) • Lý thuyết: 22 • Bài tập: 08 • Thực hành: 15 • Tự học: 75 (ở nhà) • Điều kiện thi: • Tham dự 80% số tiết lý thuyết • Hồn thành 100% tập + thực hành • Tham dự kiểm tra kỳ 7/25/2017 Kỹ thuật lậptrình C/C++ Thơng tin mơn học (2) • Mơn học trước: Tin học đại cương (4080201) • Đánh giá mơn học: • Điểm chun cần: 10% • Kiểm tra tập + thực hành + kiểm tra kỳ: 30% • Điểm thi kết thúc học phần: 60% • Tài liệu tham khảo: • [1] Nguyễn Tuấn Anh Kỹ thuật lậptrình hướng đối tượng C++ NXB Giáo dục Việt Nam, 2016 • [2] Hồng Kim Bảng Cơ sở lậptrình Trường Đại học Mỏ - Địa chất • [3] Phạm Văn Ất C++lậptrình hướng đối tượng NXB Khoa học Kỹ thuật, 2000 • [4] Lê Đăng Hưng, Tạ Tuấn Anh, Nguyễn Hữu Đức, Nguyễn Thanh Thủy Lậptrình hướng đối tượng với C++ NXB Khoa học Kỹ thuật, 2005 7/25/2017 Kỹ thuật lậptrình C/C++ Thơng tin mơn học (3) • Tài liệu tham khảo – Website học C/C++ • http://www.learncpp.com/ • http://www.cplusplus.com/doc/tutorial/ • http://www.cprogramming.com/tutorial/c++-tutorial.html • https://www.sololearn.com/Course/CPlusPlus/ • http://www.tutorialspoint.com • https://www.codeproject.com/ • http://vietjack.com/cplusplus/ • https://cpp.daynhauhoc.com/ 7/25/2017 Kỹ thuật lậptrình C/C++ Nội dung mơn học (1) • Chương 1: Giớithiệuchung • Giớithiệu C/C++ • Cấu trúc chươngtrình C/C++ • Các kiểu liệu • Các phép tốn • Nhập xuất liệu C/C++ • Ví dụ • Chương 2: Cấu trúc điều khiển vòng lặp • Lệnh rẽ nhánh IF • Lệnh rẽ nhánh SWITCH • Vòng lặp FOR • Vòng lặp WHILE • Vòng lặp DO … WHILE • Bài tập 7/25/2017 Kỹ thuật lậptrình C/C++ Nội dung mơn học (2) • Chương 3: Mảng, cấu trúc trỏ • Kiểu liệu mảng (1 chiều chiều) • Kiểu liệu cấu trúc • Kiểu liệu trỏ (con trỏ địa chỉ/mảng) • Bài tập • Chương 4: Hàm • Hàm C/C++ • Cấu trúc hàm • Hàm inline trỏ hàm • Nạp chồng hàm • Bài tập 7/25/2017 Kỹ thuật lậptrình C/C++ Nội dung mơn học (3) • Chương 5: Lớp đối tượng • Khai báo lớp • Nạp chồng hàm/phương thức • Hàm lớp bạn • Con trỏ kiểu lớp • Bài tập • Chương 6: Tệp C/C++ • Khai báo tệp • Mở tệp • Đọc liệu từ tệp • Ghi liệu vào tệp • Di chuyển trỏ tệp • Bài tập 7/25/2017 Kỹ thuật lậptrình C/C++ Chương – Giớithiệuchung • Chương 1: Giớithiệuchung • Giớithiệu C/C++ • Cấu trúc chươngtrình C/C++ • Các kiểu liệu • Các phép tốn • Nhập xuất liệu C/C++ • Ví dụ 7/25/2017 Kỹ thuật lậptrình C/C++ Giớithiệu (1) - C • Giới thiệu: • C Dennis Ritchie (Người Mỹ) sáng chế Bell Telephone (AT&T), 1972, viết hệ điều hành Unix • Tiền thân ngơn ngữ B, KenThompson, Bell Telephone • C viện chuẩn hoá Mỹ (ANSI: American National Standard Institute) làm thành tiêu chuẩn với tên gọi ANSI C năm 1983 • Là ngơn ngữ lậptrình có cấu trúc phân biệt chữ HOA - thường (case sensitive) 7/25/2017 Kỹ thuật lậptrình C/C++ Giớithiệu (2) - C • Điểm mạnh C: • Rất mạnh mềm dẻo: Viết hệ điều hành, trình điều khiển, soạn thảo văn bản,…, chươngtrình dịch • Được sử dụng rộng rãi • Có tính khả chuyển, dễ thích nghi, thay đổi hệ thống máy tính khác • C có từ khố (32) • C có cấu trúc module, sử dụng chươngtrình loại hàm, sử dụng nhiều lần • Hạn chế C: • Cú pháp lạ khó học • Một số kí hiệu C có nhiều nghĩa khác (ví dụ kí hiệu * tốn tử nhân, tốn tử khơng định hướng, thay thế…) • C mềm dẻo (truy nhập tự vào liệu, trộn lẫn tốn tử…) 7/25/2017 Kỹ thuật lậptrình C/C++ 10 Thứ tự ưu tiên phép toán C/C++ • Tốn tử phẩy: • Các biểu thức đặt cặp dấu ngoặc đơn, cách dấu phẩy (,) • Các biểu thức con: tính từ trái sang phải • Biểu thức kết quả: ngồi bên phải • Vd: • • 7/25/2017 x = (a++, b = b + 2); a++; b = b + 2; x = b; Kỹ thuật lậptrình C/C++ 47 Thứ tự ưu tiên phép tốn C/C++ • Thứ tự ưu tiên toán tử: Độ ưu tiên Toán tử () [] -> ! ++ - ~ sizeof() (tốn tử ngơi) * / % + > < >= == != & | ^ && || ?: = += -= *= /= %= &= ^= |= = 7/25/2017 Kỹ thuật lậptrình C/C++ 48 Thứ tự ưu tiên phép tốn C/C++ • Thứ tự ưu tiên tốn tử: • Quy tắc thực hiện: • • • • Thực biểu thức ( ) sâu trước Thực theo thứ tự ưu tiên toán tử Tự chủ động thêm ( ) Vd: • • n = + * 5; n = + (3 * 5); a > && b < 2; (a > 1) && (b < 2) • Biểu thức cho mệnh đề: • Cùng dấu: • ((a>0) && (b>0)) || ((a0) || (a –5 && x < 5) Kỹ thuật lậptrình C/C++ 50 Nhập xuất liệu C/C++ • Nhập xuất liệu C: • Xuất liệu hình: • • • Thư viện yêu cầu: #include Cú pháp: printf(“Thông báo quy cách định dạng”, danh sách giá trị/biểu thức); Vd: • • Văn bản: printf(“Hello World!”); printf(“a + b”); Ký tự điều khiển: • Gồm dấu \ ký tự quy ước Ký tự điều khiển • Vd: • printf(“\n”); \a \b • printf(“\t”); \n • printf(“\t\n”); \t \\ \? \” 7/25/2017 Kỹ thuật lậptrình C/C++ Ý nghĩa Tiếng chuông Lùi lại bước Xuống dòng Dấu tab In dấu \ In dấu ? In dấu “ 51 Nhập xuất liệu C/C++ • Xuất liệu hình: • Quy cách định dạng liệu: • • Gồm dấu % ký tự quy ước (quy định kiểu liệu muốn xuất) Xuất giá trị biến/biểu thức Đặc tả %c %d, %ld %f, %lf %s %u, %lu %x, %X %o %e, %E 7/25/2017 Ý nghĩa 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ũ Kỹ thuật lậptrình C/C++ Kiểu liệu char char, int, short, long float, double char[], char* unsigned int/short/long 52 Nhập xuất liệu C/C++ • Xuất liệu hình: • 7/25/2017 Quy cách định dạng liệu: • Vd: • • • • • • • int a = 10, b = 20; printf(“%d”, a); printf(“%d”, b); printf(“%d %d”, a, b); float x = 15.06; printf(“%f”, x); printf(“%f”, 1.0/3); // Xuất 10 // Xuất 20 // Xuất 10 20 // Xuất 15.060000 // Xuất 0.333333 Kỹ thuật lậptrình C/C++ 53 Nhập xuất liệu C/C++ • Xuất liệu hình: • Quy cách định dạng liệu: • • Cú pháp: • Số nguyên: %nd • Số thực %n.kf Vd: • int a = 1706; float x = 176.85; • printf(“%10d”, a); printf(“\n”); • printf(“%10.2f”, x); printf(“\n”); • printf(“%.2f”, x); printf(“\n”); 7/25/2017 6 Kỹ thuật lậptrình C/C++ 54 Nhập xuất liệu C/C++ • Xuất liệu hình: • 7/25/2017 Quy cách định dạng liệu: • Kết hợp: • int a = 1, b = 2; • Xuất cong bang xuống dòng • printf(“%d”, a); // Xuất giá trị biến a • printf(“ cong ”); // Xuất chuỗi “ cong ” • printf(“%d”, b); // Xuất giá trị biến b • printf(“ bang ”); // Xuất chuỗi “ bang ” • printf(“%d”, a + b); // Xuất giá trị a + b • printf(“\n”); // Xuất điều khiển xuống dòng \n printf(“%d cong %d bang %d\n”, a, b, a+b); Kỹ thuật lậptrình C/C++ 55 Nhập xuất liệu C/C++ • Nhập liệu từ bàn phím: • • • Thư viện: #include Cú pháp: scanf(“Thông báo quy cách”, &); Quy cách: Mã quy cách %c %d %u %hd, %hu %ld, %lu %f, %e %lf %lu %s 7/25/2017 Ý nghĩa 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 xâu Kỹ thuật lậptrình C/C++ 56 Nhập xuất liệu C/C++ • Nhập liệu từ bàn phím: • • • • 7/25/2017 Nguyên tắc đọc: • • Số: máy nhảy qua kí tự dấu chấm câu gặp kí tự chữ số, đọc đến gặp kí tự khơng chữ số Xâu kí tự: đọc số kí tự mà ta u cầu Vai trò dấu cách mã định dạng: • Gặp dấu cách mã định dạng, máy nhảy qua dấu cách để đọc số/kí tự Khn đọc: • • Đọc số phạm vi m chữ số gõ vào Vd: scanf(“%3d%3d”,&n,&p) Xoá nhớ đệm: fflush(stdin); Kỹ thuật lậptrình C/C++ 57 Nhập xuất liệu C/C++ • Nhập liệu từ bàn phím: • Hàm đọc liệu: • • • • 7/25/2017 Hàm getchar(); //Đọc kí tự từ bàn phím Hàm getch(); /* Đọc kí tự từ bàn phím gõ vào khơng đợi ấn phím Enter khơng hiển thị hình Đọc thẳng từ bàn phím, khơng qua nhớ đệm Dùng để dừng chươngtrình xem kết */ Hàm getche(); //Giống getch(), hiển thị kí tự lên hình Hàm gets(); //Đọc xâu kí tự gõ Enter Kỹ thuật lậptrình C/C++ 58 Nhập xuất liệu C/C++ • Định dạng hiển thị hình: • • Thư viện: #include Hàm sử dụng: • • • • • 7/25/2017 Hàm gotoxy(int x, int y); //Đưa trỏ vào toạ độ X, Y (X: 180, Y: 125) Hàm clrscr(); //Xố hình, đưa trỏ góc trái Hàm clreol(); //Xố kí tự nằm bên phải trỏ hình Hàm đặt màu chữ/màu nền: • textcolor(int color); //đặt màu cho chữ • textbackground(int color); đặt màu Hàm window(x1,y1,x2,y2); //Tạo cửa sổ góc trái (x1,y1) góc phải (x2,y2) Kỹ thuật lậptrình C/C++ 59 Nhập xuất liệu C/C++ • Nhập xuất liệu C++: • Xuất liệu hình: • • • • • Thư viện: #include Không gian: using namespace std; Cú pháp: cout> >>giá_trị_n; • • • Hàm getline(); //Đọc chuỗi ký tự có khoảng trắng từ bàn phím gán cho biến lưu trữ Cú pháp: getline(cin, ); Thường kèm với cout • cout