Chuyên đề tin học 11 trên trường học kết nối. Chủ đề: Cấu trúc lặp For do. Đây là chuyên đề được kỳ công xây dựng, đảm bảo yêu cầu, có thể sử dụng làm giáo án giảng dạy mang lại hiệu quả cao. Các dạng bài tập có tính kế thừa, đảm bảo các mức độ nhận biết, thông hiểu, vận dụng của học sinh
Trang 1Chủ đề: Cấu trúc lặp với số lần biết trước – câu lệnh for –do
Bước 1: Lựa chọn chủ đề
Cấu trúc lặp với số lần biết trước và câu lệnh for –do
Bước 2: Xác định chuẩn kiến thức, kỹ năng, thái độ và năng lực hướng tới của chủ đề
a Xác định chuẩn kiến thức, kỹ năng, thái độ theo chương trình hiện hành
1 Kiến thức:
Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán
Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc lặp với số lần định trước
Biết cách vận dụng từng loại cấu trúc lặp phù hợp với tình huống cụ thể, đơn giản
Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp;
Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần định trước
Viết được thuật toán của một số bài toán đơn giản
2 Kỹ Năng
Biết nhu cầu có cấu trúc lặp trong biểu diễn thuật toán: Giống như nhu cầu lặp với số lần biết trước, trong thực tiễn cũng như trong khoa học, có nhiều bài toán đòi hỏi phải thực hiện lặp đi lặp lại một số thao tác nhất định Để đáp ứng nhu cầu lặp, hầu hết các ngôn ngữ lặp trình đều cung cấp cấu trúc điều khiển cho phép lặp đi lặp lại một số thao
Hiểu nhu cầu lặp với số lần biết trước và chưa biết trước qua việc tìm hiểu bài toán 1
và bài toán 2 (SGK) Cũng thông qua hai bài toán này để rèn luyện kĩ năng viết được thuật toán của một số bài toán đơn giản Xây dựng được thuật toán, tự mô tả được thuật toán và tự mô phỏng được thuật toán với dữ liệu nhỏ, dễ đoán biết kết quả
b Năng lực hướng tới
- Mô hình hóa các tình huống thực tiễn xảy ra phụ thuộc vào điều kiện theo cấu trúc lặp với số lần biết trước trong môn tin học
- Diễn tả thuật toán cấu trúc lặp với số lần biết trước trên ngôn ngữ lập trình
Bước 3: Lập bảng mô tả yêu cầu cần đạt
Trang 2Nội dung
Loại câu hỏi/bài
tập
Nhận biết Thông hiểu Vận dụng thấp Vận dụng cao
1 Lặp
với số
lần biết
trước
Câu
hỏi/ bài
tập
định
tính
HS lấy được một số ví dụ
về việc sử dụng cấu trúc lặp với số lần biết trước trong giải quyết bài toán
Câu hỏi ND1.DT.NB.1 ND1.DT.NB.2
HS chỉ ra và giải thích được cấu trúc lặp với số lần biết trước trong một mô
tả thuật toán
cụ thể
Câu hỏi ND1.DT.TH.1
HS vận dụng cấu trúc lặp với
số lần biết trước
để mô tả thuật toán của một bài toán quen thuộc
Câu hỏi ND1.DT.VDT.1
Bài tập
định
lượng
Bài tập
thực
hành
2 Câu
lệnh
For-do
Câu
hỏi/ bài
tập
định
tính
HS mô tả cấu trúc, ý nghĩa câu lệnh for -
do
Câu hỏi ND2.DT.NB.1 ND2.DT.NB.2
HS chỉ ra Được các thành phần của một câu lệnh for- do
cụ thể
Câu hỏi ND2.DT.TH.1 ND2.DT.TH.1
Bài tập
định
lượng
HS biết cơ chế hoạt động của câu lệnh for -do để chỉ
ra được hoạt động một lệnh dạng for -
do cụ thể
Câu hỏi ND2.DL.NB.1 ND2.DL.NB.1
HS hiểu cơ chế hoạt động của câu lệnh for -do để giải thích được hoạt động một tập lệnh
cụ thể chứa for – do
Câu hỏi ND2.DL.TH.1 ND2.DL.TH.1
HS viết được câu lệnh for -do thực hiện
một tình huống quen thuộc
Câu hỏi ND2.DL.VDT.1 ND2.DL.VDT.1
HS viết được câu lệnh for -do thực hiện một tình huống mới
Câu hỏi ND2.DL.VDC.1 ND2.DL.VDC.1
Bài tập
thực
HS sửa lỗi lệnh lặp for- do
HS vận dụng câu lệnh lặp for-
HS vận dụng câu lệnh lặp for-
Trang 3hành trong chương
trình quen thuộc có lỗi
Câu hỏi ND2.TH.TH.1
do kết hợp với các lệnh khác đã học để viết được chương trình hoàn chỉnh giải quyết vấn đề trong tình huống quen thuộc
Câu hỏi ND2.TH.VDT.1 ND2.TH.VDT.2
do kết hợp với các lệnh khác đã học để viết được chương trình hoàn chỉnh giải quyết vấn đề trong tình huống mới
Câu hỏi ND2.TH.VDC.1
Bước 4 Xây dựng hệ thống câu hỏi/bài tập đánh giá theo các mức độ đã mô tả
Câu ND1.DT.NB.1 Em hãy lấy một ví dụ về việc sử dụng cấu trúc lặp trong giải quyết bài
toán?
Câu ND1.DT.NB.2.Từ ví dụ trên em hãy cho biết những công việc ta phải làm đi làm lại và số
lần phải làm là bao nhiêu?
Câu ND1.DT.TH.1 Cho biết sơ đồ khối sau thực hiện công việc gì?
Câu ND1.DT.VDT.1 Em hãy sử dụng cấu trúc lặp với số lần biết trước này để biểu diễn thuật
toán cho bài toán tính tổng: S = 1 + 1/2 + 1/3 + …+ 1/N ?
Câu ND2.DT.NB.1 Em hãy nêu cú pháp, ý nghĩa câu lệnh for - do dạng tiến? (Tái hiện chính
xác nội dung, đơn vị kiến thức)
Câu ND2.DT.NB.2 Em hãy nêu cú pháp, ý nghĩa câu lệnh for - do dạng lùi?
(Tái hiện chính xác nội dung, đơn vị kiến thức)
Câu ND2.DT.TH.1: Câu lệnh For - do nào dưới đây viết đúng cú pháp?
a) For i:=1 to 50 do S:= S +i;
b) For i = 1 to 50 do S:= S +i;
<Biến đếm>:=<Giá trị đầu>
<Biến đếm> =
<Giá trị cuối>+1;
<biến đếm> :=<biến đếm>+1;
S
Đ Đ
Trang 4c) For i:= 50 dowto 1; do S:= S+i;
d) For i:=50 dowto 1 do S:=S+i;
Câu ND2.DT.TH.2 Cho đoạn chương trình sau:
S:=0;
For i:=1 to 50 do s:=s+i;
? Em hãy xác định các thành phần sau: biến đếm……,
giá trị đầu… , giá trị cuối….;
câu lệnh… ;
Câu ND2.DL.NB.1 Em hãy nêu nguyên lý hoạt động của câu lệnh For – do? Và lấy ví dụ
minh họa?
Câu ND2.DL.NB.2 Xét lệnh:
S:=0;
For i:=1 to N do s:=s+i;
Writeln(‘S=’,S);
Hỏi nếu N = 5 thì lệnh trên thông báo ra màn hình cái gì?
a) Không đưa ra gia trị gì cả;
b) Đưa ra giá trị là số 5;
c) Đưa ra S = 15 ;
d) Đưa ra S = 0 ;
Câu ND2.DL.TH.1 Xét đoạn lệnh :
S:=0;
For i:=1 to N do
If (i mod 2 = 0) then S:= S + i;
Writeln(‘S=’,S);
Hỏi nếu N = 6 thì lệnh trên thông báo ra màn hình cái gì?
a a) Đưa ra S = 12 ;
b Đưa ra giá trị là số 6;
c Đưa ra S = 15 ;
d Đưa ra S = 12 ;
Câu ND2.DL.TH.2 Xét đoạn lệnh :
S:=0;
For i:=N dowto 1 do
If (i mod 2 = 0) then S:= S + i;
Writeln(‘S=’,S);
Hỏi nếu N = 6 thì lệnh trên thông báo ra màn hình cái gì?
e a) Đưa ra S = 12 ;
f Đưa ra giá trị là số 6;
g Đưa ra S = 15 ;
h Đưa ra S = 12 ;
Câu ND2.DL.VDT.1 Em hãy viết câu lệnh for – do cho thao tác đưa ra màn hình 50 dấu *? Câu ND2.DL.VDT.2 Em hãy viết câu lệnh for – do cho thao tác tính tổng:
S = 1 + 2 + 3 + + N?
Câu ND2.DL.VDC.1 Em hãy viết câu lệnh for – do để thực hiện cho thao tác tính tổng sau:
S=1 2 +2 2 +…+100 2 ;
Câu ND2.DL.VDC.2 Em hãy viết câu lệnh for – do để thực hiện cho thao tác tính tổng và
đếm các số chẵn trong đoạn từ m đến n ( m, n là 2 số nguyên dương, m < n)
Câu ND2.TH.TH1 Hãy chỉ rõ lỗi của chương trình sau:
Trang 5Var i:real; s:word;
Begin
S:=0;
For i=1 to 100 do S:=S+i;
Write(‘S = ‘, S);
Readln End.
Câu ND2.TH.VDT.1 Em hãy viết chương trình cho bài toán sau:
S=1+ 2 + 3 + 4 + + N;
Câu ND2.TH.VT.2 Em hãy viết chương trình để giải bài toán cổ sau:
Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu con Một trăm chân chẵn.
Hỏi có bao nhiêu gà và bao nhiêu chó?
Câu ND2.TH.VDC.1Em hãy viết chương trình giả bài toán tính tổng sau:
S = -1 + 1*2 – 1*2*3 + 1*2*3*4 - + (-1)N*1*2*3*…*N
Bước 5 Nội dung bài học
Câu ND1.DT.NB.1 Em hãy lấy một ví dụ về việc
sử dụng cấu trúc lặp trong giải quyết bài toán?
Câu ND1.DT.NB.2.Từ ví dụ trên em hãy cho biết
những công việc ta phải làm đi làm lại và số lần phải
làm là bao nhiêu?
Câu ND1.DT.TH.1 Cho biết sơ đồ khối sau thực
gì?
- Tình tổng: S = 1 + 2 + … + N
- Công việc lặp đi lặp lại: S= S + i với i=1,…N lăp đi lặp lại N lần
- Ban đầu biến đếm nhận giá trị bằng giá trị đầu Thực hiện lặp đi lặp lại việc tăng biến đếm lên 1 đơn vị <giá trị cuối> - <giá trị đầu> + 1 lần
<Biến đếm>:=<Giá trị
đầu>
<Biến đếm> =
<Giá trị cuối>+1;
<biến đếm> :=<biến đếm>+1;
S
Đ Đ
Trang 6Câu ND1.DT.VDT.1 Em hãy sử dụng cấu trúc lặp
với số lần biết trước này để biểu diễn thuật toán cho
bài toán tính tổng: S = 1 + 1/2 + 1/3 + …+ 1/N ?
Câu ND2.DT.NB.1 Em hãy nêu cú pháp, ý nghĩa
câu lệnh for - do dạng tiến? (Tái hiện chính xác nội
dung, đơn vị kiến thức)
Câu ND2.DT.NB.2 Em hãy nêu cú pháp, ý nghĩa
câu lệnh for - do dạng lùi?
(Tái hiện chính xác nội dung, đơn vị kiến thức)
Câu ND2.DT.TH.1: Câu lệnh For - do nào dưới đây
viết đúng cú pháp?
a For i:=1 to 50; do S:= S +i;
b For i = 1 to 50 do S:= S +i;
c For i:= 50 downto 1; do S:= S+i;
d For i:=50 dowto 1 do S:=S+i;
Câu ND2.DT.TH.2 Cho đoạn chương trình sau:
S:=0;
For i:=1 to 50 do s:=s+i;
? Em hãy xác định các thành phần sau: biến
đếm……, giá trị đầu… , giá trị cuối….;câu lệnh… ;
Câu ND2.DL.NB.1 Xét lệnh:
S:=0;
For i:=1 to N do s:=s+i;
Writeln(‘S=’,S);
Hỏi nếu N = 5 thì lệnh trên thông báo ra màn hình
cái gì?
- Cú Pháp:
For <biến đếm> := <giá trị đầu> to
<giá trị cuối> do <câu lệnh>;
Ý nghĩa: câu lệnh sau từ khóa 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>
- Cú Pháp:
For <biến đếm> := <giá trị cuối> downto <giá trị cuối> do <câu lệnh>;
Ý nghĩa: câu lệnh sau từ khóa 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> về <giá trị đầu>
- Đáp án b
-Biến đếm: i, giá trị đầu: 1, giá trị cuối: 50, câu lệnh: S:= S+i
- Đáp án g
S:=0, i:=1;
i > N
S:= S + 1/i
S
Đ Đ
Trang 7e) Không đưa ra gia trị gì cả;
f) Đưa ra giá trị là số 5;
g) Đưa ra S = 15 ;
h) Đưa ra S = 0 ;
Câu ND2.DL.TH.1 Xét đoạn lệnh :
S:=0;
For i:=1 to N do
If (i mod 2 = 0) then S:= S + i;
Writeln(‘S=’,S);
Hỏi nếu N = 6 thì lệnh trên thông báo ra màn hình
cái gì?
e Đưa ra S = 2 ;
f Đưa ra giá trị là số 6;
g Đưa ra S = 15 ;
h Đưa ra S = 12 ;
Câu ND2.DL.TH.2 Xét đoạn lệnh :
S:=0;
For i:=N dowto 1 do
If (i mod 2 <> 0) then S:= S + i;
Writeln(‘S=’,S);
Hỏi nếu N = 6 thì lệnh trên thông báo ra màn hình
cái gì?
i Đưa ra S = 8 ;
j Đưa ra giá trị là số 6;
k Đưa ra S = 15 ;
l Đưa ra S = 12 ;
Câu ND2.DL.VDT.1 Em hãy viết câu lệnh for – do
cho thao tác đưa ra màn hình 50 dấu *?
Câu ND2.DL.VDT.2 Em hãy viết câu lệnh for – do
cho thao tác tính tổng:
S = 1 + 2 + 3 + + N?
Câu ND2.DL.VDC.1 Em hãy viết câu lệnh for – do
để thực hiện cho thao tác tính tổng sau:
S=1 2 +2 2 +…+100 2 ;
Câu ND2.DL.VDC.2 Em hãy viết câu lệnh for – do
để thực hiện cho thao tác tính tổng và đếm các số
chẵn trong đoạn từ m đến n ( m, n là 2 số nguyên
dương, m < n)
Câu ND2.TH.TH1 Hãy chỉ rõ lỗi của chương trình
sau:
Var i:real; s:word;
Begin
S:=0;
For i=1 to 100 do
- Đáp án h
- Đáp án i
- For i:=1 to 50 do write(‘*’);
- S:=0;
For i:= 1 to N do S:=S+i;
- S:= 0;
For i:=1 to 100 do S:= S + i*i;
- S:= 0; Dem:=0;
For i:= m to n do
If i mod 2 = 0 then Begin
S:= S+i;
Dem := Dem +1;
End;
- Biến S và i phải có cùng kiểu dữ liệu
Trang 8Write(‘S = ‘, S);
Readln End.
Câu ND2.TH.VDT.1 Em hãy viết chương trình cho
bài toán sau:
S=1+ 2 + 3 + 4 + + N;
Câu ND2.TH.VT.2 Em hãy viết chương trình để
giải bài toán cổ sau:
Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu con Một trăm chân chẵn.
Hỏi có bao nhiêu gà và bao nhiêu chó?
Câu ND2.TH.VDC.1Em hãy viết chương trình giả
bài toán tính tổng sau:
S = -1 + 1*2 – 1*2*3 + 1*2*3*4 - +
(-1)N*1*2*3*…*N
- Var N, i, S: word;
Begin Writeln(‘nhap N’);
Readln(N);
S:=0;
For i:=1 to N do S:=S+i;
Writeln (‘S= ’,S);
Readln;
End
- Var x: byte;
Begin For x:=1 to 25 do
If (4*x+ (36-x)*2 = 100) then writeln(‘so cho ’,x, ‘ so ga ’, 36-x); Readln;
End
- Var i, N: byte;
Dau, Tg, S: longint;
Begin Writeln(‘nhap N:’);
Readln(N);
S:=0; i:=1; tg:=1; dau:= -1;
For i:= 1 to N do Begin
Tg:= dau*tg*i;
S:= S+ tg;
i:= i+ 1;
dau:= -dau;
end;
writeln(‘S= ‘, S);
readln;
End