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

bai thuc hanh 6_Lap voi so lan chua biet truoc8

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 (756.16 KB, 26 trang )

KIỂM TRA BÀI CŨ:
Câu 1: Hãy nêu cú pháp của câu lệnh lặp
While…do và các bước thực hiện câu
lệnh này ?
While <điều kiện> do <câu lệnh>;
While <điều kiện> do <câu lệnh>;
Điều kiện: thường là một phép so sánh.
Câu lệnh : có thể là câu lệnh đơn giản hay câu lệnh
ghép.
Trong đó :
Điều kiện
Câu lệnh
sai
đúng
BT: Hãy chỉ ra các lỗi sai trong các câu
lệnh sau:
b) X:=10; While X = 10 do X X+5;
c) S := 0; n := 0;
while s <= 10 do
n := n+1;
s := s + n;
a) X:= 10; While X 10 do X:= X +5;
Begin
End;
:==
=
:=
SỬ DỤNG CÂU LỆNH
SỬ DỤNG CÂU LỆNH
LẶP WHILE… DO


LẶP WHILE… DO
Bài thực hành 6
Bài 1 / 72 SGK
Viết chương trình sử dụng lệnh lặp
while… do để tính trung bình n số thực
x
1
, x
2
, x
3
,… , x
n
. Các số n và x
1
, x
2
, x
3
,… ,
x
n
được nhập từ bàn phím.
INPUT: Số n, các số thực x
1
, x
2
, x
3
,… , x

n
.
OUTPUT: Giá trị trung bình (x
1
+ x
2
+ x
3
+
… + x
n
) / n.

Số n không biết trước mà chỉ được
nhập từ bàn phím khi chương trình
đã được chạy, vì vậy các biến x
1
, x
2
,
x
3
,… , x
n
sẽ phải khai báo như thế
nào?
Ý tưởng:
Sử dụng một biến dem và lệnh lặp while
… do để nhập và cộng dần các số đó vào một
biến tong có kiểu số thực cho đến khi nhập đủ

số n.
Thuật toán:
Bước 1: Nhập giá trị n.
dem:= 0;
tong:= 0;
Bước 2: Trong khi dem < n thì:
Bước 3: tb:= tong / n;
Bước 4: Xuất kết quả ra màn hình.
dem:= dem + 1;
Nhập giá trị x;
tong:= tong + x;
Từ thuật toán
hãy nêu tên
nhưng biến cần
khai báo sử
dụng trong
chương trình và
kiểu dữ liệu của
các biến đó?
Có tất
cả bao
nhiêu
lần lặp
trong
thuật
toán
trên?
Số lần lặp không biết trước mà phụ thuộc
vào điều kiện: dem<n
+Biến n, dem kiểu Integer.

+Biến x, tong, tb kiểu Real.
Thuật toán:
Bước 1: Nhập giá trị n.
dem:= 0;
tong:= 0;
Bước 2: Trong khi dem < n thì:
Bước 3: tb:= tong / n;
Bước 4: Xuất kết quả ra màn hình.
dem:= dem + 1;
Nhập giá trị x;
tong:= tong + x;
Dựa vào thuật toán
hãy viết câu lệnh
mô tả cấu trúc
lặp?
Câu lệnh mô tả cấu trúc lặp:
While dem < n do
Begin
dem:= dem + 1;
Write (‘Nhap so thu’, dem, ‘=‘);
Readln (x);
tong:= tong + x;
End;
Xây dựng chương trình:
Để hoàn thiện chương
trình chúng ta sẽ
làm từng bước như
thế nào?

Khai báo tên chương trình:


Khai báo thư viện:

Khai báo các biến trong chương trình:

Viết các lệnh thực hiện thuật toán.
+ Nhập giá trị cho n:
+ Gán giá trị cho biến dem và tong:
+ Viết câu lệnh lặp:
+ Tăng biến đếm lên một đơn vị trong mỗi vòng lặp:
+ Nhập giá trị số thực x:
+ Cộng dồn biến tong:
+ Tính TB các số x
1
, x
2
, x
3
, …, x
n
;
+ Nhập giá trị số thực x:
n = 3, dem = 0, tong = 0.
dem tong dem < n dem Nhập x tong
0 0 Đ 1 5 5
1 5 Đ 2 8 13
2
15
13

Đ
3
2
15
3 S
Hãy tìm hiểu mỗi đoạn lệnh sau đây và cho biết với
đoạn lệnh đó chương trình thực hiện bao nhiêu
vòng lặp? Hãy rút ra nhận xét của em?
a) S:= 0; n:= 0;
While S <= 10 do
Begin
n:= n + 1;
S:= S + n;
End;
b) S:= 0; n:= 0;
While S <= 10 do
n:= n +1; S:= S+ n;

Bài 4/ 71 SGK:
* Nhận xét:
Khi thực hiện vòng lặp, điều kiện trong câu lệnh
phải được thay đổi để sớm hay muộn giá trị của điều
kiện được chuyển từ đúng sang sai. Chỉ như thế chương
trình mới không “rơi” vào những “vòng lặp vô tận” .
Bài 2 / 73 SGK
Tìm hiểu chương trình nhận biết một số
tự nhiên N được nhập vào từ bàn phím
có phải là số nguyên tố hay không.
INPUT: Số tự nhiên N.
OUTPUT: Trả lời N là số nguyên tố

hoặc N không là số nguyên tố.
* Ý tưởng:
Kiểm tra lần lượt N có chia hết cho các số
tự nhiên hay không. Kiểm tra tính chia hết
bằng phép chia lấy phần dư – hàm mod.
* THUẬT TOÁN:
* Bước 4: Kết thúc thuật toán.
* Bước 1: Nhập số tự nhiên N từ bàn phím.
* Bước 2: Nếu N 1 thì thông báo N không phải là số nguyên tố, rồi
chuyển đến bước 4.
* Bước 3: Nếu N > 1 thì:
+ i 2
+ Trong khi N mod i <> 0 đúng thì i i + 1.
+ Nếu i = N thì xuất N không phải là số nguyên tố.
Quan sát chương trình:
N = 5
i N mod i <> 0 i i = N
Vậy 5 là số nguyên tố.
N = 9
i N mod i <> 0 i i = N
Vậy 9 không phải là số nguyên tố.
2 3
ĐĐ
3
4
5
4
Đ
Đ
2

Đ 3
3 S S
Bộ test 1: N = 4. Kết quả: 4 không phải là số nguyên tố.
Bộ test 2: N = 7. Kết quả: 7 là số nguyên tố.
Bộ test 3: N = 14. Kết quả: 14 không phải là số nguyên tố.
Hãy cho biết đâu là câu lệnh lặp với số
lần chưa biết trước hợp lệ ?
X:= 5; While X = 5 do X = X + 5;
B) X = 5 ; While X = 5 do X := X + 3;
C) S :=0; m:= 0 ; While S <= 5 do m:= m+1 ; S:=
S+m;
A)
Chúc mừng bạn
TRẮC NGHIỆM
Hãy cho biết đâu là đoạn lệnh lặp bằng
câu lệnh While do để tính tổng
S = 1+2+…+10?
A)
C)
B)
S := 0; While i< 10 do S:= S +i;
S:= 0; i:=0; While i < 11 do S:= S+i; i:= i+1;
S := 0; i:= 0; While i do Begin S := S+i;
i:=i+1; end;
D)
S:=0; i:=0; While i<=10 do begin S := S +i;
i:=i+1; end;
Chúc mừng bạn
Hướng dẫn về nhà:


Các em xem lại các bài tập đã làm trong tiết học,
thực hành lại trên máy (nếu có điều kiện), ôn lại câu
lệnh lặp với số lần chưa biết trước While… do.

Đọc bài đọc thêm trang SGK trang 74.

Chuẩn bị trước bài 9: Làm việc với dãy số.

×