TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản Cấu trúc một chương trình trong C++: • Tiền xử lý khai báo thư viện.. TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản Biến: - Bi
Trang 1Training Nhập Môn Lập Trình
Trainers: Tống Võ Anh Thuận – MMCL 2021
Trần Công Thành – ATCL 2021Nguyễn Trần Trung Nguyên – ATCL 2021
BHT Đoàn khoa MMT&TT – Training giữa kì I K16
Trang 4TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Cấu trúc một chương trình trong C++:
• Tiền xử lý (khai báo thư viện)
• Khai báo biến, hàm
• Thân hàm chính (chương trình chính)
• Định nghĩa các hàm đã khai báo
Trang 5Một số kiểu dữ liệu cơ bản trong C++:
long long 8 bytes -9223372036854775807 to 9223372036854775807
double 8 bytes 2.3e-308 to 1.8e+308( ~ 15 chữ số)
TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Trang 6TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Biến:
- Biến là một ô nhớ hoặc 1 vùng nhớ dùng để chứa dữ liệu trong quá trình thực
hiện chương trình và có kích thước tùy thuộc vào kiểu dữ liệu của nó
- Giá trị của biến có thể được thay đổi.
- Qui tắc đặt tên biến:
• Không trùng với các từ khóa hoặc tên hàm.
• Ký tự đầu tiên là chữ cái hoặc dấu _
• Không được sử dụng khoảng trắng ở giữa các ký tự.
Trang 7TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Biến:
- Cú pháp khai báo biến:
Trang 8TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Biến:
- Biến được định nghĩa trong một hàm hoặc một block (khối lệnh).
- Chỉ được sử dụng bên trong hàm hoặc block.
- Biến mất khi khối lệnh kết thúc
- Biến được định nghĩa bên ngoài các hàm
- Có thể truy xuất và sử dụng ở mọi hàm trong chương trình.
- Tồn tại cho đến cuối chương trình
Trang 9TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Hằng (constant):
- Hằng đại diện cho một giá trị không đổi trong suốt quá trình thực thi của chương
trình Ta không thể gán lại giá trị cho nó
Trang 10TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Hằng (constant):
- Cách định nghĩa hằng trong C++:
Trang 11TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Các phép toán cơ bản:
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
Trang 12TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Dùng để gán giá trị cho 1 biến
Các phép toán cơ bản:
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 13TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
/ Chia (hoặc chia lấy phần nguyên) x = 10 / 2
Các phép toán cơ bản:
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 14TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Dùng để tăng hoặc giảm 1 đơn vị
Các phép toán cơ bản:
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 15TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Dùng để tăng hoặc giảm 1 đơn vị
Các phép toán cơ bản:
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
Trang 16TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
/= Chia (hoặc chia lấy phần nguyên) x /= 2
Các phép toán cơ bản:
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 17TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Các phép toán cơ bản:
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
Trang 18TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 19TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 20TOPIC 01: Nhập xuất dữ liệu, một số phép toán cơ bản
Các phép toán cơ bản:
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 22TOPIC 02: Cấu trúc rẽ nhánh – Thuật toán
Khối lệnh:
- Khối lệnh là một dãy các câu lệnh được bao bởi cặp dấu { }
- Phạm vi hoạt động của một biến chính là khối lệnh mà nó được khai báo.
Trang 23TOPIC 02: Cấu trúc rẽ nhánh – Thuật toán
Trang 24TOPIC 02: Cấu trúc rẽ nhánh – Thuật toán
Cấu trúc rẽ nhánh
- Trong cấu trúc rẽ nhánh, các câu lệnh chỉ được thực thi khi thỏa mãn một số
điều kiện cho trước
- Bao gồm 2 loại:
oCấu trúc rẽ một trong hai nhánh: if, if…else và toán tử điều kiện (? : )
oCấu trúc rẽ một, hai hoặc nhiều nhánh: câu lệnh switch
Trang 25TOPIC 02: Cấu trúc rẽ nhánh – Thuật toán
Cấu trúc rẽ nhánh
- Sẽ chạy các câu lệnh bên trong tùy thuộc vào tính đúng sai của biểu thức điều kiện
- Có thể lồng các câu lệnh if với nhau để tạo thành cấu trúc rẽ nhiều nhánh
- Kiểm tra một biến duy nhất rồi chọn các câu lệnh để thực thi tùy thuộc vào giá trị của biến đó
- Có thể sử dụng nhánh default làm lựa chọn mặc định khi không có nhánh nào khác được chọn
Trang 26TOPIC 02: Cấu trúc rẽ nhánh – Thuật toán
Cấu trúc rẽ nhánh
- Ví dụ minh họa:
Trang 27TOPIC 02: Cấu trúc rẽ nhánh – Thuật toán
Cấu trúc rẽ nhánh
- Ví dụ minh họa:
Trang 28TOPIC 02: Cấu trúc rẽ nhánh – Thuật toán
Lưu đồ thuật toán:
n>0
Kết thúc
Bắt đầu
Trang 31TOPIC 03: Các cấu trúc điều khiển
Trang 33TOPIC 03: Các cấu trúc điều khiển
Trang 34Vòng lặp for: for ( khở i tạo ; điều kiện ; cập nhật )
statement;
5, 4, 3, 2, 1, bum
TOPIC 03: Các cấu trúc điều khiển
Trang 35Lệnh break:
10, 9, 8, 7, 6, 5, 4,
TOPIC 03: Các cấu trúc điều khiển
dung dem nguoc
Trang 36Lệnh continue:
1, 3, 5, 7, 9
TOPIC 03: Các cấu trúc điều khiển
Trang 37Bài tập áp dụng :
Cho đoạn chương trình sau, đã khai báo đầy
đủ hàm và using namespace std; : Nếu nhập giá trị cho n là 12, kết quả in ra là?
Trang 38Bài tập áp dụng :
Cho đoạn chương trình sau, đã khai báo đầy đủ hàm và
using namespace std; : Kết quả của đoạn code này là gì?
Trang 41Ví dụ:
TOPIC 04: Hàm – đệ quy
Trang 42Tham trị Tham chiếu
Trang 43TOPIC 04: Hàm – đệ quy
Trang 44TOPIC 04: Hàm – đệ quy
Trang 45TOPIC 04: Hàm – đệ quy
Stack
Stack là cấu trúc dữ liệu hoạt
động theo nguyên lý Last In
First Out (LIFO) – vô sau ra
trước.
Trang 46TOPIC 04: Hàm – đệ quy
Điểm dừng
Phần đệ quy
Là điều kiện cho hàm dừng
lại Là khi vấn đề đơn giản
nhất.
Là hàm tự gọi bản thân, chia
nhỏ vấn đề.
Trang 52TOPIC 05 – Mảng 1 chiều và mảng 2 chiều
Trang 53TOPIC 05 – Mảng 1 chiều
Trang 55TOPIC 05 – Mảng 1 chiều
- Tên mảng: MangKyTu - Tên mảng: MangSoNguyen
- Kiểu dữ liệu của phần tử mảng: char - Kiểu dữ liệu của phần tử mảng: int
- Số chiều: 1 chiều - Số chiều: 2 chiều
- Kích thước: 4 phần tử - Kích thước: 2 dòng x 3 cột
Các yếu tố xác định mảng
Trang 56TOPIC 05 – Mảng 1 chiều
• Cú pháp:
<Kiểu dữ liệu> <Tên mảng> [<Số phần tử mảng>];
Khai báo mảng 1 chiều
Trang 58TOPIC 05 – Mảng 1 chiều
Chỉ số mảng:
Trang 59TOPIC 05 – Mảng 1 chiều
<Tên mảng>[<chỉ số mảng>]
• Các phần tử mảng là 1 dãy liên tục có chỉ số từ 0 đến <Số phần tử mảng> - 1
Truy suất phần tử mảng
Trang 61TOPIC 05 – Mảng 1 chiều
• Mảng có thể thay đổi nội dung sau khi thực hiện hàm
• Có thể bỏ số lượng phần tử hoặc sử dụng con trỏ
VD:
void NhapMang(int A[], int n);
void NhapMang(int *A, int n);
Trang 62TOPIC 05 – Mảng 2 chiều
• Cú pháp : <Kiểu dữ liệu> <Tên mảng>[<Số Dòng>][<Số Cột>];
Trang 63TOPIC 05 – Mảng 2 chiều
<Tên mảng>[<Chỉ số dòng>][<Chỉ số cột>]
Truy xuất phần tử mảng
Trang 64TOPIC 05 – Mảng 2 chiều
• Mảng có thể thay đổi nội dung sau khi thực hiện hàm
• Có thể bỏ số lượng phần tử hoặc sử dụng con trỏ
Truyền mảng cho hàm
Trang 66char chuoi[] = “Chuoi”;
Chỉ số chuỗi
Địa chỉ 1884 1885 1886 1887 1888 1889
TOPIC 06 – Mảng kí tự
Trang 67TOPIC 06 – Mảng kí tự
• Kiểu char chỉ chứa được một ký tự
VD:char a = ‘a’ ;
char b = ‘abc’ ; // không được ☹
• Để lưu trữ một chuỗi (nhiều ký tự) ta sử dụng mảng (một chiều) các ký tự
• Chuỗi ký tự kết thúc bằng ký tự “\0‟ (null)
• Độ dài chuỗi = kích thước mảng – 1
Trang 68• Các kiểu khai báo chuỗi
Trang 70Nhập chuỗi
• Hàm nhập chuỗi: getline
• Ví dụ: getline(<tên chuỗi>, <độ dài chuỗi>);
• Hàm tự động thêm ký tự NULL (‘\0’) vào cuối chuỗi
char s[100];
cin.getline(s, 99);
TOPIC 06 – Mảng kí tự
Trang 71TOPIC 06 – Mảng kí tự
• Hàm xuất chuỗi: puts
• Ví dụ: puts(<tên chuỗi>);
char *s = “Hello World”;
puts(s);
Xuất chuỗi
Trang 72TOPIC 06 – Mảng kí tự
Một số hàm thuộc thư viện <string.h>
72
Một số hàm thông dụng trong thư viện
Trang 76NMLT NMĐT t NMLT Contes
19:30
16/12
18:00 18/12 19:30
17/12