Tải bản đầy đủ (.ppt) (83 trang)

Vòng lặp while, do while, for (NHẬP môn về lập TRÌNH SLIDE)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (621.09 KB, 83 trang )

Chương 5

Vòng lặp
while / do-while /
for
Presenter:

Nhập mơn về lập trình (C5)

Slide 1


Learning outcomes
L.O.3.1 – Liệt kê được các kiểu điều khiển và vẽ sơ đồ mô
tả chúng.
L.O.3.2 – Mô tả được được nguyên tắc kết hợp các kiểu
điều khiển để mô tả các giải thuật.
L.O.3.3 – Hiện thực được các kiểu điều khiển bằng ngôn
ngữ C.
L.O.3.4 – Sử dụng các cấu trúc điều khiển để giải quyết bài
tốn thực tế.

Nhập mơn về lập trình (C5)

Slide 2


Vịng lặp là gì ?
 In ra 5 dịng chữ “Hello”
printf("Hello\n");
printf("Hello\n");


printf("Hello\n");
printf("Hello\n");
printf("Hello\n");
 In ra 100 dịng chữ “Hello”

Nhập mơn về lập trình (C5)

Slide 3


Vịng lặp là gì ?
 Bài tốn: Nhập và tính tổng điểm của 10 sinh viên
 float
a;
float
sum = 0;
scanf(“%f”, a);
sum = sum + a;
scanf(“%f”, a);
sum = sum + a;
…………………………………

Nhập môn về lập trình (C5)

Slide 4


Vịng lặp là gì ?
 Chương trình sẽ rất dài nếu yêu cầu nhập và tính tổng
điểm cho 100, 200, 1000 sinh viên v.v.

 Để ý thấy chương trình trên lặp đi lặp lại động tác sau
nhiều lần:
scanf(“%f”, a);
sum = sum + a;

Nhập mơn về lập trình (C5)

Slide 5


Vịng lặp là gì ?
 Vịng lặp là các phát biểu điều khiển dùng để thực hiện
một công việc nhiều lần.
 Các phát biểu thực hiện cơng việc trong vịng lặp gọi là
thân vịng lặp.
 Một vịng lặp thường có các phần :
• Khởi động vịng lặp.
• Thân vịng lặp.
• Điều khiển vịng lặp.

 Có thể phân loại vịng lặp theo các tiêu chuẩn sau :
• Điều kiện : đi trước hoặc đi sau.
• Số lần lặp : biết trước hoặc khơng biết trước.
Nhập mơn về lập trình (C5)

Slide 6


Vòng lặp
Phân loại

 VC++ cho phép sử dụng 3 loại vịng lặp với cú pháp như
sau:
• Vịng lặp while
while (condition) statement;
• Vịng lặp do
do statement while (condition);

• Vịng lặp for
for (initopt ; condopt ; loopopt ) statement;

Nhập môn về lập trình (C5)

Slide 7


Vòng lặp while
Cú pháp

:

while (condition) statement

Nghĩa là : trong khi điều kiện condition cịn đúng thì làm
phát biểu statement.
• condition là biểu thức luận lý điều khiển vòng lặp:
 Đúng thì lặp.
 Sai thì kết thúc.
• statement có thể là phát biểu ghép { ... }.

Vòng lặp while là vòng lặp có điều kiện đi trước và số lần

lặp khơng biết trước.

Nhập mơn về lập trình (C5)

Slide 8


Vịng lặp while
Lưu đờ vận hành
Điều kiện đi trước
Sai

condition
condition
Đúng
Statement
Statement
Kết thúc lặp

Nhập mơn về lập trình (C5)

Slide 9


Vòng lặp while
 In ra các số từ 1 đến 10
int count;
count = 1; // initialize count
printf(“%d ", count);
count = count + 1;

printf(“%d ", count);
count = count + 1;
printf(“%d ", count);
count = count + 1;
…………………………………………………………..
Nhập mơn về lập trình (C5)

Slide 10


Vịng lặp while

Nhập mơn về lập trình (C5)

Slide 11


Vòng lặp while
int count;
count = 1; // initialize count
while (count <= 10)
{
printf("%d ", count);
count = count + 1;
}

Nhập môn về lập trình (C5)

// increment count


Slide 12


Lặp dựa trên biến đếm
 Bài tốn:
• Cần nhập 10 giá trị số thực, sau đó tính giá trị trung bình của 10
giá trị trên
gán total (tổổ
ng điểổ
m) bằng 0
gán biểế
n đểế
m sổếlầầ
n nhập điểổ
m bằng 1
while biểế
n đểế
m nhoổhơn hoặc bằng 10
yểu cầầ
u người dùng nhập giá trị tiểế
p theo
đọc giá trị
cộng giá trị này vào total
cộng biểế
n đểế
m lển 1
giá trị trung bình bằng total chia cho 10
in giá trị trung bình

Nhập mơn về lập trình (C5)


Slide 13


Lặp dựa trên biến đếm
 Kỹ thuật sử dụng một biến để đếm số lần lặp
 Vòng lặp dừng khi biến đếm vượt quá một số cho trước
 Gọi là lặp dựa trên biến đếm (counter-controlled
repitition)
 Lặp hữu hạn vì biết trước số lần lặp
 Hãy hiện thực đoạn mã giả trên vào chương trình mẫu

Nhập mơn về lập trình (C5)

Slide 14


Lặp dựa trên biến đếm
int counter;
float val, total, average;
total = 0.0;
counter = 1;
while (counter <= 10){
printf("Nhap gia tri: ");
scanf("%f", &val);
total = total + val;
counter = counter + 1;
}
average = total/10.0;
printf("Gia tri trung binh la %f", average);

Nhập mơn về lập trình (C5)

Slide 15


Lặp dựa trên biến đếm

Nhập mơn về lập trình (C5)

Slide 16


Lặp dựa trên biến cờ
 Bài tốn:
• Viết ứng dụng tính điểm trung bình cho lớp, với số sinh viên ngẫu
nhiên trong mỗi lần nhập điểm

 Khác với bài toán trước:
• Chúng ta khơng biết trước số lần nhập
• Làm sao biết khi nào dừng nhập điểm?

Nhập môn về lập trình (C5)

Slide 17


Lặp dựa trên biến cờ
 Dùng biến cờ (sentinel) để báo kết thúc nhập
 Giá trị biến cờ phải không lẫn lộn với giá trị nhập vào có
nghĩa






Điểm là số nguyên không âm
Chọn giá trị biến cờ là -1
95, 96, 75, 89 rồi -1
Trung bình điểm sẽ là (95 + 96 + 75 + 89)/4

 Xây dựng giải thuật để giải bài tốn

Nhập mơn về lập trình (C5)

Slide 18


Từ trên xuống, tinh chỉnh từng bước
 Kỹ thuật xây dựng ứng dụng có cấu trúc chặt chẽ
 Trên là một câu lệnh thể hiện chức năng chung của ứng
dụng
xác định điểổ
m trung bình cuổ
a lớp



Chỉ thể hiện ứng dụng, chưa đủ để viết ứng dụng C#
Bắt đầu tinh chỉnh


Nhập mơn về lập trình (C5)

Slide 19


Từ trên xuống, tinh chỉnh từng bước
 Chia trên thành các tác vụ nhỏ hơn và liệt kê theo thứ tự
thực hiện
 Bước tinh chỉnh đầu tiên:
khơổ
i tạo biểế
n
nhập giá trị, tính tổổ
ng lại rổầ
i đểế
m sổếđiểổ
m đã nhập
tính tốn và in ra điểổ
m trung bình




Mỗi lần tinh chỉnh mơ tả cùng giải thuật, chỉ khác về mức
độ chi tiết
Ba bước chung: khởi tạo, nhập và xử lý biến, tính tốn
và xuất kết quả

Nhập mơn về lập trình (C5)


Slide 20


Từ trên xuống, tinh chỉnh từng bước
 Ta xác định từng biến cụ thể





Tổng điểm qua từng bước
Số lượng điểm đã nhập
Giá trị từng điểm do người dùng nhập
Điểm trung bình
khơổ
i tạo biểế
n
khơổ
i tạo biểế
n total (tổổ
ng điểổ
m) bằng 0
khơổ
i tạo biểế
n counter (sổếlượng điểổ
m) bằng 0

Nhập môn về lập trình (C5)

Slide 21



Từ trên xuống, tinh chỉnh từng bước
nhập giá trị, tính tổổ
ng lại rổầ
i đểế
m sổếđiểổ
m đã nhập

 Cần lặp nhưng khơng biết số lần lặp
• Dùng lặp theo biến cờ
• Ứng dụng phải kiểm tra giá trị nhập vào phải biến cờ hay khơng
để dừng vịng lặp
nhắế
c người dùng nhập điểổ
m
nhập điểổ
m đầầ
u tiển (có thểổlà biểế
n cờ)
while người
thểm
cộng
nhắế
c
nhập

Nhập mơn về lập trình (C5)

dùng chưa nhập biểế

n cờ
điểổ
m vào total
biểế
n đểế
m lển 1
người dùng nhập điểổ
m tiểế
p
điểổ
m tiểế
p (có thểổlà biểế
n cờ)

Slide 22


Từ trên xuống, tinh chỉnh từng bước
tính tốn và in ra điểổ
m trung bình
nểế
u biểế
n đểế
m khác 0
gán biểế
n trung bình là tổổ
ng chia cho biểế
n đểế
m
in giá trị trung bình

ngược lại
in "Khổng thầế
y điểổ
m nhập"

 Kiểm tra biến đếm khác 0 để phòng trường hợp ứng dụng
bị dừng do nhập sai

Nhập mơn về lập trình (C5)

Slide 23


Từ trên xuống, tinh chỉnh từng bước
int
grade, total, counter;
float average;
total = 0;
counter = 0;
printf("Nhap diem dau tien: ");
scanf("%d", &grade);
while (grade >= 0){
total = total + grade;
counter = counter + 1;
printf("Nhap diem tiep theo: ");
scanf("%d", &grade);
}
Nhập mơn về lập trình (C5)

Slide 24



Từ trên xuống, tinh chỉnh từng bước

Nhập môn về lập trình (C5)

Slide 25


×