Ví dụ 1: Viết chương trình nhập vào số nguyên dương và tính n!
Ví dụ 2: viết chương trình nhập vào một số nguyên n. Kiểm tra xem số đó có phải là số nguyên tố hay không.
7/2020 Cơ sở lập trình 97
Chức năng: Thực hiện lặp đi lặp lại một khối lệnh khi điều kiện lặp vẫn còn thỏa mãn.
Cú pháp
while (điều_kiện)
{ // khối lệnh }
Trong đó:
Có thể bạn quan tâm!
- Cơ sở lập trình - Trường ĐH Thương mại - 4
- Cơ sở lập trình - Trường ĐH Thương mại - 5
- Cơ sở lập trình - Trường ĐH Thương mại - 6
- Cơ sở lập trình - Trường ĐH Thương mại - 8
- Cơ sở lập trình - Trường ĐH Thương mại - 9
- Cơ sở lập trình - Trường ĐH Thương mại - 10
Xem toàn bộ 113 trang tài liệu này.
điều_kiện là là một biểu thức nhận giá trị nguyên
hoặc thực
while là từ khóa
7/2020 Cơ sở lập trình 98
Sự hoạt động
Bước 1: Tính giá trị của biểu thức điều_kiện
Bước 2: Nếu biểu thức điều_kiện có giá trị sai thì trình biên dịch sẽ thoát khỏi cấu trúc while. Nếu biểu thức điều kiện có giá trị đúng thì khối lệnh sẽ được thực hiện và quay trở lại bước 1.
Nhận xét
Khối lệnh của while có thể không được thực hiện
lần nào.
7/2020 Cơ sở lập trình 99
Chú ý
Biểu thức điều_kiện có thể là một dãy các biểu thức đặt cách nhau bởi dấu phẩy. Giá trị của điều_kiện là giá trị của biểu thức cuối cùng trong dãy.
Tránh lỗi đặt dấu ; sau biểu thức dieu_kien
Sử dụng câu lệnh break để tránh tình huống vòng lặp không dừng.
Các câu lệnh while có thể lồng nhau hoặc lồng các các câu lệnh lặp khác. Khi gặp lệnh break, máy sẽ ra khỏi câu lệnh while sâu nhất chứa lệnh này
7/2020 Cơ sở lập trình 100
Ví dụ 1: Tính tổng các số nhập vào từ bàn phím khi tổng còn <100.
Ví dụ 2: Xây dựng chương trình thể hiện thuật toán Euclid để tìm UCLN của 2 số nguyên a và b.
Ví dụ 3: Viết chương trình nhập vào số
nguyên dương và tính n!
7/2020 Cơ sở lập trình 101
Chức năng: do … while là cấu trúc lặp trong đó một khối lệnh sẽ được thực hiện đi thực hiện lại khi điều kiện lặp vẫn còn thỏa mãn.
Cú pháp
do
{ // khối lệnh } while(dieu_kien);
Trong đó:
do và while là hai từ khóa
dieu_kien là biểu thức điều kiện nhận giá trị nguyên hoặc thực
7/2020 Cơ sở lập trình 102
Sự hoạt động
Bước 1: Thực hiện khối lệnh
Bước 2: Xác định giá trị của biểu thức
Bước 3: Nếu biểu thức có giá trị đúng thì trình biên dịch sẽ quay lại bước 2. Nếu biểu thức có giá trị sai thì trình biên dịch sẽ thoát khỏi cấu trúc lặp do while.
So sánh với cấu trúc while
Khối lệnh sẽ được thực hiện trước khi xác định giá trị của biểu thức, vì vậy khối lệnh luôn được thực hiện ít nhất là một lần.
Chú ý: tương tự cấu trúc while
7/2020 Cơ sở lập trình 103
Ví dụ 1: Viết chương trình đọc một số cho đến khi số đó là số dương.
Ví dụ2: Viết chương trình cho phép người dùng nhập một kí tự từ bàn phím in ra mã của kí tự cho đến khi người dùng nhập phím Enter để thoát.
Ví dụ 3: Viết chương trình nhập vào số nguyên dương và tính n!
7/2020 Cơ sở lập trình 104
Đều là câu lệnh lặp nhưng cấu trúc for có số lần lặp xác định và bước nhảy rõ ràng, while và do … while không xác định số lần lặp
Cấu trúc for và while: điều kiện được kiểm tra trước →khối lệnh có thể không được thực hiện lần nào. Cấu trúc do … while: điều kiện được kiểm tra sau →khối lệnh luôn được thực hiện ít nhất một lần
7/2020 Cơ sở lập trình 105
3.1. Mảng và xâu
3.2. Con trỏ
7/2020 Cơ sở lập trình 106
3.1.1. Mảng
3.1.2. Xâu
7/2020 Cơ sở lập trình 107
Đặt vấn đề: Bài toán quản lý dãy số với n biến đơn
Khái niệm: mảng là một dãy các phần tử có cùng kiểu dữ liệu được đặt liên tiếp trong bộ nhớ và có thể truy xuất đến từng phần tử thông qua chỉ số mảng.
Các yếu tố của mảng
▪ Kiểu mảng
▪ Tên mảng
▪ Số phần tử/kích thước của mảng
7/2020 Cơ sở lập trình 108
Khai báo mảng
<type> <name> [size1][[size2][…[sizeN]]];
Trong đó:
type là các kiểu dữ liệu cơ sở/ cấu trúc
name: là tên được đặt cho mảng
Size1, size2,.., sizeN là các số nguyên qui định kích cỡ
của mảng hoặc số phần tử của mảng.
Số lượng thành phần [ ] được đặt sau tên mảng sẽ
qui định chiều của mảng đó.
7/2020 Cơ sở lập trình 109
Ví dụ
int a[10];
float arr[2][3];
Chú ý
Mảng chỉ thực sự làm việc tốt với mảng tối đa 3 chiều
Trường size1,...sizeN phải là một giá trị hằng khi khai báo (vì mảng là một khối nhớ tĩnh có kích cỡ xác định)
Ví dụ
int n,m;
int a[n][m];
7/2020 Cơ sở lập trình 110
Khởi tạo mảng
Đối tượng áp dụng: Biến toàn cục
Cách thức: tự động hoặc có thể gán giá trị khởi tạo cho các phần tử của mảng
Với mảng 1chiều
<type> <name> [size]={v1,v2,v3,..,vk}; //( k<=N)
Hoặc <type> <name> [ ]={v1,v2,v3,..,vk};
Ví dụ
char a[5] = { 0, 1, 4, 3, 2 };
7/2020 Cơ sở lập trình 111
Với mảng 2chiều
<type> <name> [size1][size2] ={
{a11,a12,a13,...},
{a21,a22,a23,... },
…
};
Ví dụ: int a[][4]={ {0},{1,3,5}, {2,4,6,8} }
Cách khởi tạo khác
<type> <name>[size1][size2] ={v1,v2,..,vK}; (k<=size1*size2)
Ví dụ: int a[3][2]={1,2,3,4,5,6};
7/2020 Cơ sở lập trình 112