Giải thích sơ đồ cú pháp: Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện... www.themegallery.com Company Name[r]
(1)Câu hỏi cũ:
Bài Tập Áp dụng Cấu trúc rẽ nhánh:
Viết chương trình tính tiền cước Internet sử dụng tháng theo lưu lượng sử dụng, với số MB sử dụng nhập từ bàn phím Biết rằng:
Thuê bao tháng 20000 đồng;
Với 1000 MB tính 45 đồng / MB; Các MB 40 đồng / MB.
1. Em viết cú pháp cấu trúc rẽ nhánh dạng thiếu dạng đủ Cho ví dụ minh họa.
(2)www.themegallery.com Company Name
Program tên_chương_trình ;
Var <tên_biến> : <kiểu liệu> ; BEGIN
write(‘Moi nhap gia tri Input= ’) ;
readln ( tên_biến ) ;
(Các câu lệnh – thuật toán)
writeln(‘Ket qua = ’ , CÔNG THỨC ) ;
readln ; END.
Hướng dẫn giải tập
TinhTienNET
soMB , KQ longint
so MB đa su dung=
soMB
IF soMB < 1000 THEN KQ := (soMB * 45) + 20000 ;
ELSE KQ := (1000 * 45) + ((soMB – 1000) * 40)+ 20000 ; KQ
(3)
Giới Thiệu Bài Mới:
Cấu trúc lặp học khó HK Các em nhà
cần xem thêm kiến thức, ví dụ tập SGK.
“lặp” thao tác lặp lặp lại nhiều lần, có dạng lặp
thường gặp là:
Lặp với số lần biết trước.
VD: GV “yêu cầu” em HS chép lại học lần để HS nhớ - thuộc bài.
Việc chép lại học lặp lại đúng lần.
Lặp với số lần chưa biết trước
VD: GV yêu cầu em HS chép lại học nhiều lần cho đến thuộc bài.
Việc chép lại học bị lặp đi, lặp lại với số lần chưa
(4)www.themegallery.com Company Name
Giới Thiệu Bài Mới: (tt)
Một số thuật tốn có thao tác phải thực lặp đi,
lặp lại số lần Một đặc trưng máy tính có khả thực hiệu thao tác lặp.
VD1: Bài tốn tính tổng cộng dồn số từ 1, 2, đến 100 S = + + + + 98 + 99 + 100 = ?
Thuật toán giải toán ?
Cộng dồn số từ 1, mỗi lần tăng giá trị - thực
đúng 100 lần để kết cuối cùng.
VD2: Bài toán tìm Ước số chung lớn số.
Thuật toán: ?
So sánh số, lấy số lớn trừ số bé giá trị số bằng nhau giá trị UCLN số.
Sử dụng cấu trúc lặp, lặp đi, lặp lại cho đến khi
(5)Bài 10:
(6)www.themegallery.com Company Name
Nội Dung Bài Học:
(học Tiết Tiết 13)
Giới thiệu Lặp
1 Lặp với số lần biết trước Và câu lệnh for - do
2 Lặp với số lần chưa biết trước Và câu lệnh while - do
ÔN TẬP + GIẢI BÀI TẬP
(học Tiết Tiết 14) (học Tiết
(7)I – Lặp với số lần lặp biết trước
1 Bài toán đặt vấn đề:
- Dữ liệu (Output) : Tổng S
Lập chương trình tính tổng sau:
- Dữ liệu vào (Input) : Nhập N
Hãy xác định INPUT OUTPUT bài toán trên!
(8)www.themegallery.com Company Name
Phân tích toán với N = 100
NHẬN XÉT: S1 = S + 1
S2 = S1 + 2
S3 = S2 + 3
S4 = S3 + 4
S100 = S99 + 100 1
S
Bắt đầu từ S1 việc tính S được lặp lặp lại 100 lần theo quy luật
Ssau = Strước+ i
với i chạy từ 100
(9)
Sơ đồ khối thuật tốn:
§
S
Nhập N
S:= ; i:= 2
i > N ?
S:= S + i
Đưa S kết thúc
B1: Nhập N;
B2: S:=1; i:=2;
B3: Nếu i > N đưa giá trị S Kết thúc;
B4 : S:= S + i;
(10)www.themegallery.com Company Name
2/ Lặp với số lần lặp biết trước
FOR <BIẾN ĐẾM> := <GIÁ TRỊ ĐẦU> TO <GIÁ TRỊ CUỐI> DO <CÂU LỆNH> ;
Ví dụ: FOR i := TO 100 DO Tong := Tong + i;
b Dạng (dạng lùi)
FOR <BIẾN ĐẾM>:=<GIÁ TRỊ CUỐI> DOWNTO<GIÁ TRỊ ĐẦU>DO<CÂU LỆNH>;
VD: FOR i := 100 DOWNTO DO Tong := Tong + i;
(11)(TIẾT 2)-Hệ thống lại kiến thức:
FOR <BIẾN ĐẾM> := <GIÁ TRỊ ĐẦU>
TO <GIÁ TRỊ CUỐI> DO <CÂU LỆNH>;
Cấu trúc lặp có loại ? Là loại nào?
Có loại:
+Lặp với số lần biết trước.
+Lặp với số lần chưa biết trước.
Lặp với số lần biết trước có dạng?
FOR <BIẾN ĐẾM> := <GIÁ TRỊ CUỐI>
DOWNTO <GIÁ TRỊ ĐẦU> DO <CÂU LỆNH>;
DẠNG TIẾN DẠNG
(12)www.themegallery.com Company Name
Hệ thống lại kiến thức (tt):
FOR <BIẾN ĐẾM> := <GIÁ TRỊ ĐẦU>
TO <GIÁ TRỊ CUỐI> DO <CÂU LỆNH>;
Quan sát lại cú pháp cấu trúc dạng tiến, tham khảo ví dụ trả lời câu hỏi sau:
1/ Biến đếm có kiểu liệu ?
2/ Đặc điểm Giá trị đầu Giá trị cuối ?
3/ Giá trị biến đếm thay đổi ntn ?
(13)
Giá trị đầu, giá trị cuối biểu thức kiểu với biến đếm,
giá trị đầu phải nhỏ giá trị cuối.
VD2: For i := 100 to 200 write( i );
Giá trị biến đếm điều chỉnh tự động, câu lệnh
sau DO không thay đổi giá trị biến đếm.
Trong đó:
Biến đếm biến kiểu số nguyên kí tự.
VD1: For i := ‘ a ’ to ‘ z ’ write( i );
(14)www.themegallery.com Company Name
* Viết chương trình tính tổng sau:
Var i,n : Integer; S : real;
BEGIN
Readln;
END.
S:=1;
FOR i:=2 to n do S := S + 1/i ;
Writeln(‘ Tong S = ’ , S );
Write(‘ Nhap vao gia tri cua n :’); readln(n);
Program Tinh_Tong;
Hãy áp dụng câu lệnh lặp dạng tiến để viết ch ơng trình giải
to¸n N 1 4 1 3 1 2 1 1
(15)*Mơ thuật tốn: (N=5)
S := ; i := 2;
i >N Kết thúc
S := S +1/ i ; i := i +1;
2.08 1.83 1.5 1 4 3 2 L ỵt i S 2.28 5 NhËp N
S := ; i := 2;
2>5 ?
S
S
S := +1/2 ; i := +1;
3>5 ?
S := 1.5+1/3 ; i := +1;
4>5 ?
S := 1.83+1/4 ; i := +1;
5>5 ?
S := 2.08+1/5; i := +1;
6
S S S
6>5 ? Tỉng S=2.28In Tỉng S
Víi N = 5
2.28
§
(16)www.themegallery.com Company Name
Ý nghĩa sử dụng dạng lặp
Trả lời: Mặc dù số lần lặp câu lệnh thực trước sau cho kết khác nhau.
Ví dụ 1: For i := to write( i ); KQ1 1 9
Ví dụ 2: For i := downto write( i ); KQ2 9 1
Dạng lặp tiến lặp lùi cấu trúc lặp với số lần biết trước có số lần lặp lại câu lệnh nhau.
Như có cần thiết chia làm dạng lặp trên không?
(17)LOGO
Liên hệ tập:
(18)www.themegallery.com Company Name
II – Lặp với số lần chưa biết trước:
WHILE <điều kiện> DO <câu lệnh>;
Điều kiện
Đúng
Câu lệnh
Điều kiện:
Là biểu thức quan hệ hoặc logic.
Câu lệnh:
Là câu lệnh của Pascal.
Sai
Trong đó:
(19)Máy tính thử <điều kiện> trước
thực <câu lệnh>.
Do <điều kiện> sai từ đầu
thì vịng lặp khơng thực lần nào.
Trái lại <điều kiện> ln ln
thì vịng lặp thực mãi
Ta phải nhấn nút Ctrl + Pause để dừng
(20)www.themegallery.com Company Name
Ví dụ:
Viết chương trình kiểm tra việc nhập điểm mơn học từ bàn phím. Con điểm hợp lệ từ đến 10.
Khi người dùng nhập sai, yêu cầu
nhập lại.
Sau xuất kết điểm hợp lệ
(21)Phân tích đề bài:
Input: số từ đến 10 (có thể nhiều số) Output: xuất số hợp lệ (chỉ số hợp lệ)
Thông tin đưa vào (Input): ? Thông tin đưa (Output): ?
1/ Cần khai báo biến? 2/ Biến khai báo Kiểu gì?
(22)www.themegallery.com Company Name
Chạy chương trình
CTRL + F9
IF (diem > 0) and (diem <=10)
THEN write(‘ Ban da nhap dung ’)
(23)LOGO
WHILE (diem < 0) or (diem >=10) DO
begin
write(‘Da nhap sai, Moi nhap lai= ’); readln(diem);
(24)www.themegallery.com Company Name
(TIẾT 3)*BÀI TẬP THỰC HÀNH: (Cấu trúc rẽ nhánh)
1.Lập chương trình tìm Số lớn
(25)Phân tích đề 1:
Input: hai số nguyên. Output: MAX (số lớn nhất)
Thông tin đưa vào (Input): ? Thông tin đưa (Output): ?
1/ Cần khai báo biến? 2/ Biến khai báo kiểu gì?
(26)www.themegallery.com Company Name
Program Max2so ;
var a, b : integer ;
BEGIN
write(‘Moi nhap gia tri so: ’);
readln(a , b);
IF a > b THEN write(‘A la so lon nhat’)
ELSE write(‘B la so lon nhat’);
readln; {lệnh dừng chương trình, để xem kết cuối cùng}
END.
Hướng Dẫn Giải Bài Tập:
A , ‘ la so lon nhat’ B , ‘ la so lon nhat’
(27)*BÀI TẬP THỰC HÀNH (tt): (Cấu trúc rẽ nhánh)
2. Lập chương trình tìm Số nhỏ
nhất (Min) 3 số nguyên
nhập từ bàn phím.
3. Lập chương trình giải phương
(28)www.themegallery.com Company Name
Phân tích đề 2:
Input: ba số nguyên.
Output: MIN (số nhỏ nhất)
Thông tin đưa vào (Input): ? Thông tin đưa (Output): ?
Trình bày thuật tốn Tìm số nhỏ nhất số?
(29)*BÀI TẬP THỰC HÀNH:
4. Viết CT in hình số từ 10 đến 30.
5. Viết CT tìm Ước số chung lớn của số thực a, b nhập từ bàn phím.
6. Viết CT tính Tổng số nguyên nhập vào, nhập số 0.
(30)www.themegallery.com Company Name
* Hướng dẫn Giải 5:
5. Viết CT tìm ước chung lớn hai số
thực a, b nhập từ bàn phím.
B1 : Nhập A,B;
B2 : Chừng AB
A>B A:=A-B, ngược lại B:=B-A;
B3 : Đến A=B thì => Đưa
ƯCLN(A,B)=A; => Kết thúc.
B1: Nhập A,B
B2: While A < > B DO
IF A>B then A:=A-B else B:=B-A; B3: In ƯCLN: write (A) ;
hoặc: write (B) ;
(31)Program UCLN ;
var a, b : real ;
BEGIN
write(‘Moi nhap so can tim UCLN: ’);
readln(a , b);
WHILE a < > b DO
IF a > b THEN a:=a-b ELSE b:=b-a ;
writeln(‘Uoc so chung lon nhat la: ’ , a);
readln;
END.
(32)www.themegallery.com Company Name
Củng Cố
1
“lặp” thao tác lặp lặp lại
nhiều lần, có dạng lặp là:
1. Lặp với số lần biết trước.
2. Lặp với số lần chưa biết trước
2
•Có dạng lặp với số lần biết trước?
•Ghi lại cú pháp và cho ví dụ với từng loại?
3
(33)GV: Trần Minh Tùng