Bài 10. Cấu trúc lặp
Chia sẻ bởi Đào Thị Lan |
Ngày 10/05/2019 |
53
Chia sẻ tài liệu: Bài 10. Cấu trúc lặp thuộc Tin học 11
Nội dung tài liệu:
nhiệt liệt chào mừng các thầy cô và các em
về dự hội giảng
Nêu cấu trúc câu lệnh rẽ nhánh trong TurboPascal (TP)
Dạng thiếu: if < điều kiện> then;
Dạng đủ: if < điều kiện> then
else;
- Điều kiện là biểu thức logic
- Câu lệnh có thể là lệnh đơn hoặc lệnh ghép
Kiểm tra bài cũ
Để in ra màn hình 10 dòng chữ
“ lop 11 A2 hoc tot” thì ta phải dùng lệnh nào và phải dùng bao nhiêu lệnh?
Ta sẽ sử dụng lệnh write hoặc writeln và chúng ta phải dùng 10 lần câu lệnh
write (‘lop 11 A2 hoc tot’);
Vậy để in ra 1000 dòng chữ như thế ta phải thực hiện như thế nào?
Câu hỏi đặt ra:
Vậy theo các em, lặp là gì? Và có mấy dạng lặp?
1. LẶP
BÀI 10: CẤU TRÚC LẶP
CÁC BÀI TOÁN ĐẶT VẤN ĐỀ
Tính tổng S với a là số nguyên và a>2
Bài toán 2:
cho đến khi
Bài toán 1:
Phân tích bài toán 1
Nhận xét:
S0 = 1/a
S1 = S0 + 1/(a+1)
S2 = S1 + 1/(a+2)
.....
S100 = S99 + 1/(a+100)
Bắt đầu từ S1 việc tính S được lặp đi lặp lại 100 lần theo quy luật
Ssau = Strước+ 1/(a+N)
(với N =1,2,..,100 )
. . . . . . . . . . . . . . . . . . . .
+…
Bài toán 2: Tính tổng S, với a là số nguyên và a>2
cho đến khi
Phân tích bài toán 2
Xuất phát
Lần 1
Lần 2
Lần N
+…
1
Sau m?i l?n th?c hi?n giỏ tr? t?ng S tang thờm ??? ( v?i N =1; 2; 3 ; ...)
a + N
TÌM SỰ KHÁC BIỆT
Bài toán 1:
Bài toán 2:
? S? l?n l?p bi?t tru?c
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần.
? S? l?n l?p chua bi?t tru?c.
Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi
1. LẶP
Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi có một điều kiện nào đó còn đúng
Cấu trúc lặp dùng để mô tả thao tác lặp và được phân làm hai 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
BÀI 10: CẤU TRÚC LẶP
Em hãy lấy ví dụ về lặp trong thực tế
Ví dụ 1: Học sinh A bị phạt trực nhật trong 7 ngày.
Ví dụ 2: Học sinh B bị phạt trực nhật cho đến khi nào cô giáo thấy bạn có ý thức tốt thì mới không phải trực nhật nữa.
Không biết trước phải trực nhật bao nhiêu ngày
=> Lặp với số lần không biết trước
Phải trực nhật 7 ngày => Lặp với số lần biết trước
1. LẶP
BÀI 10: CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC
VÀ CÂU LỆNH FOR - DO
Bước 1. S1/a ; N0;
Bước 2. NN+1;
Bước 3. Nếu N>100 thì chuyển đến bước 5;
Bước 4. SS+1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Thuật toán Tong_1a
Bước 1. S1/a ; N101;
Bước 2. NN-1;
Bước 3. Nếu N<1 thì chuyển đến bước 5;
Bước 4. SS+1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>100(N=101) thì kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 (n=0) thì kết thúc.
Thuật toán tong_1b
2/ Lặp với số lần biết trước và câu lệnh For - do
Với a là số nguyên và a>2. Tính và đưa kết quả ra màn hình tổng
Số lần lặp của cả hai thuật toán trên là biết trước và như nhau ( 100 lần)
Bước 1. S1/a ; N0;
Bước 2. NN+1;
Bước 3. Nếu N>100 thì chuyển đến bước 5;
Bước 4. SS+1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Thuật toán Tong_1a
Bước 1. S1/a ; N101;
Bước 2. NN-1;
Bước 3. Nếu N<1 thì chuyển đến bước 5;
Bước 4. SS+1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>100(N=101) thì kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 (n=0) thì kết thúc.
Thuật toán tong_1b
2/ Lặp với số lần biết trước và câu lệnh For - do
Với a là số nguyên và a>2. Tính và đưa kết quả ra màn hình tổng
D?ng l?p ti?n:
Dạng lặp lùi
FOR := TO DO < câu lệnh>;
b. Dạng 2 (dạng lặp lùi)
FOR := DOWNTO DO ;
a. Dạng 1 (dạng lặp tiến)
Trong đó
? Biến đếm là biến đơn, thường có kiểu số nguyên.
? Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm, giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.
? Giá trị biến đếm được điều chỉnh tự động, vì vậy câu lệnh sau DO không được thay đổi giá trị biến đếm.
Dạng lặp tiến:
For := to do ;
Dạng lặp lùi:
For := downto do ;
Ví dụ:
For i:=1 to 10 do writeln(‘Pascal’) ;
in ra màn hình 10 lần xâu ‘Pascal’.
For i:= 20 downto 1 do writeln(‘Pascal’) ;
in ra màn hình 20 lần xâu ‘Pascal’.
For i:=‘a’ to ‘z’ do write (i) ;
in ra màn hình các kí tự từ a đến z.
For i:=100 downto 1 do write (i) ;
in ra màn hình các số từ 100 xuống 1.
Dạng Tiến :
For i:=1 to 1000 do
Writeln (‘lop 11A2 hoc tot’);
Dạng Lùi:
For i:=1000 downto 1 do
Writeln (‘lop 11A2 hoc tot’);
Để in ra màn hình 1000 dòng chữ
“ lop 11A2 hoc tot”
Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối.
b. Dạng 2 (dạng lùi)
Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu.
a. Dạng 1 (dạng tiến)
Hoạt động của lệnh for - do
BÀI 10: CẤU TRÚC LẶP
1. LẶP
2. Lặp với số lần biết trước và câu lệnh For - do
Quan sát sách giáo khoa trang 44, chương trình cài đặt các thuật toán Tong_1A?
Quan sát sách giáo khoa trang 44, chương trình cài đặt các thuật toán Tong_1B?
GHI NHỚ
CẤU TRÚC
LẶP
Số lần
biết trước
Số lần chưa biết trước
For := to do ;
For := downto do ;
Lặp tiến
Lặp lùi
CỦNG CỐ BÀI HỌC
Câu 1: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ?
For i := 10 to 1 do write(i, ‘ ’);
A. 1 2 3 4 5 6 7 8 9 10
B. 10 9 8 7 6 5 4 3 2 1
C. Đưa ra 10 dấu cách
D. Không đưa ra kết quả gì
Câu 2: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ?
For i := 10 downto 1 do write(i, ‘ ’);
A. 1 2 3 4 5 6 7 8 9 10
B. 10 9 8 7 6 5 4 3 2 1
C. Đưa ra 10 dấu cách
D. Không đưa ra kết quả gì
CỦNG CỐ BÀI HỌC
Câu 3: Cú pháp lệnh lặp nào sau đây là sai?
A. For i:=10 downto 1 do writeln(‘Lop 11A1’);
B. For i:=1 downto 10 do writeln(‘Lop 11A1’);
C. For i:=0 to 100 do writeln(‘Lop 11A1’);
D. For i:=1 to 1 do writeln(‘Lop 11A1’);
HOẠT ĐỘNG NHÓM
Cc cu lƯnh Pascal sau c hỵp lƯ khng? V sao ?
NHÓM 1:
NHÓM 2:
NHÓM 3:
NHÓM 4:
ĐS:khng hỵp lƯ, v gi tr u lín hn gi tr cui
HẾT GIỜ
For i:=100 to 1 do
Write(‘A’);
For i:=1.5 to 10.5 do
Write(‘A’);
ĐS:khng hỵp lƯ, v gi tr u, gi tr cui l d liƯu kiĨu s thc
For i:=1 to 10 do
Write(‘A’);
ĐS:Hỵp lƯ, AAAAAAAAAA
For i:=10 Downto 1 do
Write(‘A’);
ĐS:Hỵp lƯ, AAAAAAAAAA
Cảm ơn các thầy cô giáo
Chúc các em học tốt!
về dự hội giảng
Nêu cấu trúc câu lệnh rẽ nhánh trong TurboPascal (TP)
Dạng thiếu: if < điều kiện> then
Dạng đủ: if < điều kiện> then
else
- Điều kiện là biểu thức logic
- Câu lệnh có thể là lệnh đơn hoặc lệnh ghép
Kiểm tra bài cũ
Để in ra màn hình 10 dòng chữ
“ lop 11 A2 hoc tot” thì ta phải dùng lệnh nào và phải dùng bao nhiêu lệnh?
Ta sẽ sử dụng lệnh write hoặc writeln và chúng ta phải dùng 10 lần câu lệnh
write (‘lop 11 A2 hoc tot’);
Vậy để in ra 1000 dòng chữ như thế ta phải thực hiện như thế nào?
Câu hỏi đặt ra:
Vậy theo các em, lặp là gì? Và có mấy dạng lặp?
1. LẶP
BÀI 10: CẤU TRÚC LẶP
CÁC BÀI TOÁN ĐẶT VẤN ĐỀ
Tính tổng S với a là số nguyên và a>2
Bài toán 2:
cho đến khi
Bài toán 1:
Phân tích bài toán 1
Nhận xét:
S0 = 1/a
S1 = S0 + 1/(a+1)
S2 = S1 + 1/(a+2)
.....
S100 = S99 + 1/(a+100)
Bắt đầu từ S1 việc tính S được lặp đi lặp lại 100 lần theo quy luật
Ssau = Strước+ 1/(a+N)
(với N =1,2,..,100 )
. . . . . . . . . . . . . . . . . . . .
+…
Bài toán 2: Tính tổng S, với a là số nguyên và a>2
cho đến khi
Phân tích bài toán 2
Xuất phát
Lần 1
Lần 2
Lần N
+…
1
Sau m?i l?n th?c hi?n giỏ tr? t?ng S tang thờm ??? ( v?i N =1; 2; 3 ; ...)
a + N
TÌM SỰ KHÁC BIỆT
Bài toán 1:
Bài toán 2:
? S? l?n l?p bi?t tru?c
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần.
? S? l?n l?p chua bi?t tru?c.
Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến khi
1. LẶP
Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi có một điều kiện nào đó còn đúng
Cấu trúc lặp dùng để mô tả thao tác lặp và được phân làm hai 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
BÀI 10: CẤU TRÚC LẶP
Em hãy lấy ví dụ về lặp trong thực tế
Ví dụ 1: Học sinh A bị phạt trực nhật trong 7 ngày.
Ví dụ 2: Học sinh B bị phạt trực nhật cho đến khi nào cô giáo thấy bạn có ý thức tốt thì mới không phải trực nhật nữa.
Không biết trước phải trực nhật bao nhiêu ngày
=> Lặp với số lần không biết trước
Phải trực nhật 7 ngày => Lặp với số lần biết trước
1. LẶP
BÀI 10: CẤU TRÚC LẶP
2. LẶP VỚI SỐ LẦN BIẾT TRƯỚC
VÀ CÂU LỆNH FOR - DO
Bước 1. S1/a ; N0;
Bước 2. NN+1;
Bước 3. Nếu N>100 thì chuyển đến bước 5;
Bước 4. SS+1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Thuật toán Tong_1a
Bước 1. S1/a ; N101;
Bước 2. NN-1;
Bước 3. Nếu N<1 thì chuyển đến bước 5;
Bước 4. SS+1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>100(N=101) thì kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 (n=0) thì kết thúc.
Thuật toán tong_1b
2/ Lặp với số lần biết trước và câu lệnh For - do
Với a là số nguyên và a>2. Tính và đưa kết quả ra màn hình tổng
Số lần lặp của cả hai thuật toán trên là biết trước và như nhau ( 100 lần)
Bước 1. S1/a ; N0;
Bước 2. NN+1;
Bước 3. Nếu N>100 thì chuyển đến bước 5;
Bước 4. SS+1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Thuật toán Tong_1a
Bước 1. S1/a ; N101;
Bước 2. NN-1;
Bước 3. Nếu N<1 thì chuyển đến bước 5;
Bước 4. SS+1/(a+N) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>100(N=101) thì kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 (n=0) thì kết thúc.
Thuật toán tong_1b
2/ Lặp với số lần biết trước và câu lệnh For - do
Với a là số nguyên và a>2. Tính và đưa kết quả ra màn hình tổng
D?ng l?p ti?n:
Dạng lặp lùi
FOR
b. Dạng 2 (dạng lặp lùi)
FOR
a. Dạng 1 (dạng lặp tiến)
Trong đó
? Biến đếm là biến đơn, thường có kiểu số nguyên.
? Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm, giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.
? Giá trị biến đếm được điều chỉnh tự động, vì vậy câu lệnh sau DO không được thay đổi giá trị biến đếm.
Dạng lặp tiến:
For
Dạng lặp lùi:
For
Ví dụ:
For i:=1 to 10 do writeln(‘Pascal’) ;
in ra màn hình 10 lần xâu ‘Pascal’.
For i:= 20 downto 1 do writeln(‘Pascal’) ;
in ra màn hình 20 lần xâu ‘Pascal’.
For i:=‘a’ to ‘z’ do write (i) ;
in ra màn hình các kí tự từ a đến z.
For i:=100 downto 1 do write (i) ;
in ra màn hình các số từ 100 xuống 1.
Dạng Tiến :
For i:=1 to 1000 do
Writeln (‘lop 11A2 hoc tot’);
Dạng Lùi:
For i:=1000 downto 1 do
Writeln (‘lop 11A2 hoc tot’);
Để in ra màn hình 1000 dòng chữ
“ lop 11A2 hoc tot”
Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối.
b. Dạng 2 (dạng lùi)
Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu.
a. Dạng 1 (dạng tiến)
Hoạt động của lệnh for - do
BÀI 10: CẤU TRÚC LẶP
1. LẶP
2. Lặp với số lần biết trước và câu lệnh For - do
Quan sát sách giáo khoa trang 44, chương trình cài đặt các thuật toán Tong_1A?
Quan sát sách giáo khoa trang 44, chương trình cài đặt các thuật toán Tong_1B?
GHI NHỚ
CẤU TRÚC
LẶP
Số lần
biết trước
Số lần chưa biết trước
For
For
Lặp tiến
Lặp lùi
CỦNG CỐ BÀI HỌC
Câu 1: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ?
For i := 10 to 1 do write(i, ‘ ’);
A. 1 2 3 4 5 6 7 8 9 10
B. 10 9 8 7 6 5 4 3 2 1
C. Đưa ra 10 dấu cách
D. Không đưa ra kết quả gì
Câu 2: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa ra màn hình kết quả gì ?
For i := 10 downto 1 do write(i, ‘ ’);
A. 1 2 3 4 5 6 7 8 9 10
B. 10 9 8 7 6 5 4 3 2 1
C. Đưa ra 10 dấu cách
D. Không đưa ra kết quả gì
CỦNG CỐ BÀI HỌC
Câu 3: Cú pháp lệnh lặp nào sau đây là sai?
A. For i:=10 downto 1 do writeln(‘Lop 11A1’);
B. For i:=1 downto 10 do writeln(‘Lop 11A1’);
C. For i:=0 to 100 do writeln(‘Lop 11A1’);
D. For i:=1 to 1 do writeln(‘Lop 11A1’);
HOẠT ĐỘNG NHÓM
Cc cu lƯnh Pascal sau c hỵp lƯ khng? V sao ?
NHÓM 1:
NHÓM 2:
NHÓM 3:
NHÓM 4:
ĐS:khng hỵp lƯ, v gi tr u lín hn gi tr cui
HẾT GIỜ
For i:=100 to 1 do
Write(‘A’);
For i:=1.5 to 10.5 do
Write(‘A’);
ĐS:khng hỵp lƯ, v gi tr u, gi tr cui l d liƯu kiĨu s thc
For i:=1 to 10 do
Write(‘A’);
ĐS:Hỵp lƯ, AAAAAAAAAA
For i:=10 Downto 1 do
Write(‘A’);
ĐS:Hỵp lƯ, AAAAAAAAAA
Cảm ơn các thầy cô giáo
Chúc các em học tốt!
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Đào Thị Lan
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)