Bài giảng kỹ thuật lập trình c chương 4 ths trần quang hải bằng - Pdf 32

KỸ THUẬT LẬP TRÌNH C
Chương 4: Cấu trúc lặp



04/2010

Khái niệm vòng lặp
• Một công việc nào đó ñược thực hiện
lặp đi lặp lại nhiều lần
• Ví dụ
– In ra màn hình các số từ 1 đến 10, mỗi số
trên một dòng
• Giải pháp đơn giản
– printf(“1\n”);
– printf(“2\n”);
–…
– printf(“10\n”);
• Giải pháp tổng quát
– Lặp i chạy từ 1 tới 10

printf(“%d\n”, i);



Kỹ thuật lập trình C - Cấu trúc lặp

2


04/2010

quay trở lại bước 2 ñể bắt
đầu các bước lặp mới.


Kỹ thuật lập trình C - Cấu trúc lặp

FALSE
TRUE

4


04/2010

Lặp dạng for
• Biểu thức 1: Thường là 1 phép gán để khởi tạo giá trị ban ñầu cho
biến điều khiển
• Biểu thức 2: Thường là 1 biểu thức điều kiện
• Biểu thức 3: Cũng là 1 phép gán để thay ñổi giá trị biến điều khiển



Kỹ thuật lập trình C - Cấu trúc lặp

5

04/2010




• Khi biểu thức 2 vắng mặt thì nó ñược xem
là ñúng (vòng lặp vô hạn).
– Để thoát khỏi lệnh for trong trường hợp này
phải dùng lệnh break hoặc return

• Có thể sử dụng các lệnh for lồng nhau.


Kỹ thuật lập trình C - Cấu trúc lặp

8


04/2010

Lặp dạng for
1. Tính TBC các số lẻ ≤ N
2. Tìm ước số chung lớn nhất (UCLN) của 2
số a, b
3. Kiểm tra xem số N có phải là số nguyên
tố không?
4. Số tiền nhiều nhất 1 người tham gia “Đấu
trường 100” có thể ñạt được là bao nhiêu
?
5. Hiển thị tất cả các số nguyên tố ≤ N
6. In ra màn hình tam giác cân độ cao N
gồm toàn các dấu ‘*’ có dạng bên


Kỹ thuật lập trình C - Cấu trúc lặp


Do lập trình viên đặt tên

int

a[100];

//a là mảng biểu diễn dãy gồm 100 số nguyên int

Kỹ thuật lập trình C - Cấu trúc lặp



11

04/2010

Kiểu array – ví dụ
#define
SIZE
10
int
a[5];
// a dãy gồm 5 số nguyên
long int big[100]; // big: chiếm 400 bytes!
double d[100];
// d: chiếm 800 bytes!
long double
v[SIZE];
// v:10 long doubles



2 thành phần đầu tiên
được khởi tạo, phần
còn lại: 0

int
i = 7;
const int c = 5;
int
a[i];
double
d[c];
short
primes[];

Kỹ thuật lập trình C - Cấu trúc lặp

12


04/2010

Kiểu array – Lưu ý
• Các thành phần của mảng được truy xuất thông qua chỉ
số của chúng 0..n-1
• Thao tác truy xuất không kiểm tra giới hạn của chỉ số
int
int main()
main()

}}


a

59

0
1

2

2
3
4

-10

5

Kỹ thuật lập trình C - Cấu trúc lặp

13

04/2010

Kiểu array – Thao tác cơ sở
Giới hạn chỉ
số mảng ?


Kỹ thuật lập trình C - Cấu trúc lặp

15

04/2010

Lặp dạng while
• Lệnh lặp while
– Cú pháp
while (biểu thức)
khối lệnh cần lặp;
– Ý nghĩa
• Trong khi biểu thức có giá trị ñúng (khác 0) thì còn
phải thực hiện khối lệnh. Việc lặp dừng lại khi biểu
thức có giá trị sai (bằng 0).
• Lặp while kiểm tra điều kiện trước khi thực hiện
khối lệnh.

– Hãy vẽ sơ ñồ khối biểu diễn lệnh while


Kỹ thuật lập trình C - Cấu trúc lặp

16


04/2010

Lặp dạng while – Ví dụ


• Cú pháp
do
khối lệnh;
while (biểu thức);

• Ý nghĩa
– Thực hiện khối lệnh trong khi biểu thức có giá trị ñúng (khác
0)
– Thực hiện khối lệnh trước khi kiểm tra biểu thức điều kiện
– Khối lệnh được thực hiện ít nhất 1 lần

• Hãy vẽ sơ ñồ khối biểu diễn lệnh do … while


Kỹ thuật lập trình C - Cấu trúc lặp

19

04/2010

Lặp do…while - ví dụ



Kỹ thuật lập trình C - Cấu trúc lặp

20


04/2010

phím nhận 1 mã x
– Nếu phím bị nhấn là phím điều khiển
bộ ñệm
bàn phím tiếp nhận 2 mã liên tiếp ( x và 0 )

• Hàm getch() sẽ ñọc các ký tự có trong bộ
đệm theo thứ tự ngược với thứ tự ñưa vào.


Kỹ thuật lập trình C - Cấu trúc lặp

22


04/2010

Kỹ thuật bắt phím
Bước 1: Kiểm tra bộ ñệm bàn phím xem có
phím nào bị nhấn không kbhit()
Bước 2: Nếu hàm kbhit() trả về giá trị ≠ 0
2.1. Bắt phím lần 1: key1 = getch();
2.2. Kiểm nếu tra key1 == 0
• Sai: xử lý ñối với trường hợp phím thường
• Đúng: Bắt phím lần 2: key2 = getch();
xử lý trường hợp phím điều khiển.



Kỹ thuật lập trình C - Cấu trúc lặp


Phím sang trái ←

0/77

Phím sang phải →

27

Phím ESC

0/59

Phím F1

0/60

Phím F2

0/83

Phím Delete

0/73

Phím PgUp

0/81

Phím PgDn


– Thực hiện lần lặp mới mà không ñi hết các lệnh
còn lại trong thân vòng lặp


Kỹ thuật lập trình C - Cấu trúc lặp

26


04/2010



Kỹ thuật lập trình C - Cấu trúc lặp

27




Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status