Professional Documents
Culture Documents
(Ou) Review CSLT
(Ou) Review CSLT
(Ou) Review CSLT
Hồ Chí Minh
Khoa Công nghệ Thông tin
Ôn tập
Source (file.cpp)
code
Objiect (file.obj)
code
files.h
file.exe
Library Link Executable
file object file propram
int main()
{
//các lệnh
}
bool int
char double
lưu trữ giá lưu trữ số
lưu trữ ký tự lưu trữ số thực
trị luận lý nguyên
(1 byte) (8 byte)
(1 byte) (4 byte)
#include <string>
int
double double
double
February 15, 2021 OU - Ôn tập CSLT - VTHT 9
Một số hàm toán học
• Để sử dụng hàm toán học, thêm header file cmath
vào đầu chương trình:
#include <cmath>
Thứ tự ưu tiên:
!
< <= >= >
== !=
&&
||
• Biểu thức luận lý được sử dụng trong các câu lệnh rẽ
nhánh if, if...else và lặp for, while, do...while.
b 9
char c = „a‟; c a
• Dung lượng bộ nhớ dành cho các biến khác nhau tuỳ
thuộc vào kiểu dữ liệu của biến đó.
int a = 1024, b = 2;
if ( a % b == 1 );
a += 3;
1027 va 2
cout << a << “ va ”<< b;
do {
statement;
}while(condition);
• Lưu đồ:
• Câu lệnh break dùng để bỏ qua phần còn lại trong câu lệnh switch.
• Câu lệnh break khi được thực hiện bên trong vòng lặp for, while,
do-while thì sẽ thoát khỏi vòng lặp ngay lập tức.
• Ví dụ:
• Câu lệnh continue dùng để bỏ qua phần còn lại trong vòng
lặp for, while, do-while và bắt đầu lần lặp kế tiếp.
• Ví dụ:
for (int count = 1; count <= 10; count++)
{
if (count == 5)
continue;
cout << count << " ";
}
cout << "\n(khong in 5)" << endl;
February 15, 2021 OU - Ôn tập CSLT - VTHT 36
MẢNG
1. Mảng
2. Các thao tác trên mảng
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
1. Mảng
o Khái niệm
o Khai báo
o Khởi tạo
o Truy xuất
2. Các thao tác trên mảng
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
1. Mảng
o Khái niệm
o Khai báo
o Khởi tạo
o Truy xuất
2. Các thao tác trên mảng
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
1. Mảng
o Khái niệm
o Khai báo
o Khởi tạo
o Truy xuất
2. Các thao tác trên mảng
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
• Số phần tử được xác định khi khai báo và không thay đổi.
• Khi khai báo phải biết trước số lượng phần tử tối đa của mảng.
myArr
1. Mảng
o Khái niệm
o Khai báo
o Khởi tạo
o Truy xuất
2. Các thao tác trên mảng
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
1. Mảng
o Khái niệm
o Khai báo
o Khởi tạo
o Truy xuất
2. Các thao tác trên mảng
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
myArr 6
int i = 3;
myArr[i] = 12;
myArr[0] myArr[1] myArr[2] myArr[3] myArr[4] myArr[5] myArr[6] myArr[7] myArr[8] myArr[9]
myArr 12 6
myArr[0] myArr[1] myArr[2] myArr[3] myArr[4] myArr[5] myArr[6] myArr[7] myArr[8] myArr[9]
myArr 12 6 18
1. Mảng
2. Các thao tác trên mảng
o Nhập/xuất
o Tính tổng và giá trị trung bình
o Tìm kiếm
o Tìm giá trị nhỏ nhất, giá trị lớn nhất
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
1. Mảng
2. Các thao tác trên mảng
o Nhập/xuất
o Tính tổng và giá trị trung bình
o Tìm kiếm
o Tìm giá trị nhỏ nhất, giá trị lớn nhất
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
– Yêu cầu người dùng nhập vào đủ số lượng giá trị mà mảng
có thể lưu trữ tối đa.
– Yêu cầu người dùng nhập số lượng phần tử cần dùng. Sau
đó kiểm tra xem có <= giá trị tối đa lưu trữ ?
– Khởi tạo tất cả các phần tử của mảng đều là 0, hoặc khởi tạo
bằng giá trị cụ thể.
double a[MAXSIZE];
a[i] = 0;
– Yêu cầu người dùng nhập vào đủ số lượng giá trị mà mảng
có thể lưu trữ tối đa.
double a[MAXSIZE];
– Yêu cầu người dùng nhập số lượng phần tử cần dùng. Sau
đó kiểm tra xem có <= giá trị tối đa lưu trữ ?
const int MAXSIZE = 10;
double a[MAXSIZE];
int n;
cout << "Ban can nhap bao nhieu phan tu: ";
cin >> n;
if ( n <= MAXSIZE)
{
for (int i = 0; i < n; i++)
{
cout << "\nNhap gia tri phan tu thu " << i << ": ";
cin >> a[i];
}
}
else
cout << "\nMang chi co the luu tru toi da " << MAXSIZE << "
phan tu." << endl;
– Xuất mảng:
//kết quả: 5
1. Mảng
2. Các thao tác trên mảng
o Nhập/xuất
o Tính tổng và giá trị trung bình
o Tìm kiếm
o Tìm giá trị nhỏ nhất, giá trị lớn nhất
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
double tong = 0;
tong += a[i];
1. Mảng
2. Các thao tác trên mảng
o Nhập/xuất
o Tính tổng và giá trị trung bình
o Tìm kiếm
o Tìm giá trị nhỏ nhất, giá trị lớn nhất
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
• Bài toán tìm kiếm: cho mảng gồm n phần tử. Mỗi phần tử đã được
nhận giá trị cụ thể. Tìm xem trong mảng đó xem giá trị x có tồn tại
không?
• Ý tưởng:
– Duyệt từ đầu đến cuối mảng (chỉ số i = 0 đến số phần tử - 1)
– Kiểm tra xem giá trị của mảng a tại từng vị trí thứ i có bằng với x hay
không?
• Nếu có: tìm kiếm thành công. Có thể trả về vị trí tồn tại. (dừng tìm)
• Nếu không: tìm kiếm không thành công.
– Dựa trên giá trị tồn tại, kiểm tra xem giá trị biến i sau khi kết thúc vòng
lặp có <= số phần tử - 1 hay không?
• Nếu có: kết luận x có tồn tại trong mảng.
• Nếu không (đã đi đến hết vòng lặp vẫn không tìm thấy a[i] == x)
thì kết luận x không tồn tại trong mảng.
February 15, 2021 OU - Ôn tập CSLT - VTHT 63
Tìm kiếm
myArr[0] myArr[1] myArr[2] myArr[3] myArr[4] myArr[5]
myArr 5 6 7 12 6 -4
i
x = 13
i=0 (i < 6) myArr[0] != x i++
i=1 (i < 6) myArr[1] != x i++
i=2 (i < 6) myArr[2] != x i++
i=3 (i < 6) myArr[3] != x i++
i=4 (i < 6) myArr[4] != x i++
i=5 (i < 6) myArr[5] != x i++
i=6 (i == 6) thoát khỏi vòng lặp
myArr 5 6 7 12 6 -4
i
x=7
i = 0 (i < 6) myArr[0] != x i++
i = 1 (i < 6) myArr[1] != x i++
i = 2 (i < 6) myArr[2] == x thoát khỏi vòng lặp
• Nếu cần kiểm tra tần số xuất hiện của x trong mảng nếu
có tồn tại ???
1. Mảng
2. Các thao tác trên mảng
o Nhập/xuất
o Tính tổng và giá trị trung bình
o Tìm kiếm
o Tìm giá trị nhỏ nhất, giá trị lớn nhất
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
• Ý tưởng:
– Gán giá trị min = giá trị phần tử đầu tiên của mảng.
– Duyệt từ đầu đến cuối mảng. Mỗi lần duyệt kiểm tra xem
min có lớn hơn giá trị phần tử đang xét không?
• Nếu có: cập nhật min là giá trị phần tử đang xét.
myArr 5 4 1 10 min = 5
i
min = a[0];
min = a[i];
• Ý tưởng:
– Gán giá trị max = giá trị phần tử đầu tiên của mảng.
– Duyệt từ đầu đến cuối mảng. Mỗi lần duyệt kiểm tra xem
max có nhỏ hơn giá trị phần tử đang xét không?
• Nếu có: cập nhật max là giá trị phần tử đang xét.
1. Mảng
2. Các thao tác trên mảng
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
1. Mảng
2. Các thao tác trên mảng
3. Một số lưu ý khi làm việc với mảng
4. Truyền mảng cho hàm
• Nên truyền tham chiếu hằng để tránh bị thay đổi giá trị tham số mảng.
• C++ không cho phép hàm trả về kiểu giá trị có kiểu mảng.
a[i] = 0;
• Hàm xuất các phần tử của mảng truyền giá trị tham số mảng
kiểu tham chiếu hằng:
int main()