1. Trang chủ
  2. » Tất cả

Giáo án Tin học 11 bài 10: Cấu trúc lặp

30 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 112,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kiến thức - Biết được ý nghĩa của cấu trúc lặp - Biết được cấu trúc chung của câu lệnh lặp For - Do trong ngôn ngữ lập trìnhPascal - Biết sử dụng đúng hai dạng câu lệnh For trong ngôn ng

Trang 1

Giáo án Tin học 11

CẤU TRÚC LẶP

I Mục tiêu

1 Kiến thức

- Biết được ý nghĩa của cấu trúc lặp

- Biết được cấu trúc chung của câu lệnh lặp For - Do trong ngôn ngữ lập trìnhPascal

- Biết sử dụng đúng hai dạng câu lệnh For trong ngôn ngữ lập trình Pascal

2 Kỹ năng

Bước đầu sử dụng được lệnh For để lập trình giải quyết được một số bài toán đơngiản

II Đồ dùng dạy học

1 Chuẩn bị của giáo viên

Máy tính, máy chiếu, sách giáo khoa và sách giáo viên

2 Chuẩn bị của học sinh

Sách giáo khoa

III Hoạt động dạy - học

1 Hoạt động 1(15p): Tìm hiểu ý nghĩa của cấu trúc lặp

a Mục tiêu

Trang 2

- Học sinh thấy được sự cần thiết của cấu trúc lặp trong lập trình

b Nội dung

Bài toán 1: Viết chương trình in ra màn hình dãy số nguyên liên tiếp từ 1 đến 5?Bài toán 2: Viết chương trình tính tổng S= 1/1+1/2+1/3+1/4+1/5

TG Hoạt động của giáo viên Hoạt động của học sinh

3’ 1 Chiếu bài toán 1

- Gợi ý: Để viết được 5 số liên

tiếp thì viết như thế nào?

2 Chiếu bài toán 2

- Gợi ý: Cách tính tổng như vậy

có thể liên hệ đến việc chia táo:

Có 5 quả táo, quả đầu tiên được

cả, quả thức 2 chia làm đôi và

được một phân, quả thức ba chia

làm ba, được một phần…, đến

quả thứ 5, chia làm 5 phần và

1 Chú ý quan sát bài toán đặt vấn đề

- Dùng câu lệnh write để viết các số ramàn hình

- Để viết 5 số từ 1 đến 5 ra màn hình thìdùng 5 câu lệnh write liên tiếp

Trang 3

được một phần Mỗi lần chia

cộng vào sẽ được tổng số táo

được chia sau 5 lần

- Cách tính tổng S?

- Tương tự nmhư bài 1, chúng ta

cũng phải thao tác cộng mấy lần?

- Thuật toán bài 1?

- Viết thuật toán bài 2?

- Với thuật toán như vậy, có thể

sử dụng câu lệnh If - Then

không?

- Với câu lệnh IF - THEN khi

điều kiện được kiểm tra và cho

- Cách tính tổng S:

+ Tính tổng 1+1/2+ Được kết quả bao nhiêu cộng với 1/3+ Được kết quả trên cộng với ẳ

+Được kết quả cộng với 1/5+ Tổng là kết quả sau 5 lần cộng dồn

- Thao tác cộng 5 lần mới cho kết quả

- Thuật toán:

+ B1: i  1;

+B2: Nếu i>5 thì xuống B5 +B3: Đưa giá trị của i ra màn hình+B4: i  i+1, rồi quay lại B2

Trang 4

kết quả đúng chỉ thực hiện được 1

lần, không có sự lặp lại Để thể

hiện được thao tác lặp, Turbo

Pascal cung cấp cấu trúc lặp

- Với bài toán này, thao tác ghi

giá trị của i được lặp 5 lần, tức là

đã biết trước số lần lặp Để diễn

tả thao tác lặp biết trước số lần

lặp trong thuật toán Pascal cung

cấp câu lệnh FOR-DO

+B4: i  i+1, quay lại B2;

+B5: Đưa ra S rồi kết thúc

- Không thể sử dụng câu lệnh IF - THEN

vì câu lệnh IF - THEN không thể hiện sựlặp đi lặp lại 5 lần thao tác đưa giá trị của

For, To, Do: Từ khóa

Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con

Trang 5

Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầuphải nhỏ hơn hoặc bằng giá trị cuối.

- Sự thực hiện của máy:

+ Bước 1: Tính giá trị đầu, gán cho biến đếm

+ Bước 2: kiểm tra, nếu biến đếm <= giá trị cuối thì

For, DownTo, Do: Từ khóa

Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con

Trang 6

Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầuphải nhỏ hơn hoặc bằng giá trị cuối.

- Sự thực hiện của máy:

+ Bước 1: Tính giá trị cuối, gán cho biến đếm

+ Bước 2: kiểm tra, nếu biến đếm >=giá trị đầu thì

Trang 7

- Sau mỗi lần thực hiện in giá trị của i

hoặc cộng dồn tổng thì i thay đổi như

được không? Nếu được thì các bài

toán trên được tính như thế nào?

- Sau mỗi lần thực hiện in giá trị i

hoặc cộng dồn tổng thì giá trị i thay

đổi như thế nào?

-Phát biểu dạng lặp trong trường hợp

này?

- i được tăng lên một đơn vị

- Tương ứng trong tiếng Anh:

For …….To…… Do

- Có thể tính từ số lớn lùi về được:+Bài 1: Lần lượt với giá trị của i từ 5lùi về 1 thực hiện lệnh đưa giá trị của

i ra ngoài màn hình

+Bài 2: Lần lượt với mỗi giá trị của i

từ 5 lùi về 1, thực hiện cộng dồn 1/ivào tổng

- i được giảm đi 1 đơn vị

Từ 5 lùi về 1, thực hiện đưa giá trị

Trang 8

- Từ … Lùi về (quay về) …Thực

hiện (làm), tương ứng trong tiếng

Anh?

- Dạng lặp như vậy gọi là lặp lùi

- Cấu trúc dạng lặp tiến và lùi:

Trang 9

Biến đếm: Là biến kiểu

nguyên, ký tự hoặc miềm con

- Giải thích sự thực hiện của máy 1

dạng tiến và yêu cầu học sinh giải

thích dạng lùi

Gtrị đầu, Gtrị cuối là hằng,

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

- Ý nghĩa của giá trị đầu và giá trị

cuối?

- Đối với bài 1 và 2 thì giá trị đầu và

giá trị cuối bằng bao nhiêu?

- Dùng để giới hạn biến đếm (giới hạnvòng lặp)

- Giá trị đầu và giá trị cuối trong bài 1

và 2 là: Giá trị đầu = 1, giá trị cuối =5

3 Hoạt động 3: Rèn luyện kỹ năng dùng câu lệnh FOR.

Trang 10

10p 1 Nêu bài toán 1.

+ Xác định giá trị đầu, giá trị cuối

+ Xác định lệnh lặp

- Từ mệnh đề phát biểu bằng lời các

dạng lặp, yêu cầu HS chuyển sang

câu lệnh For dạng tiến:

Từ 1 đến 5, thực hiện đưa giá trị của

- Giá trị đầu, giá trị cuối, lệnh lặp?

- Viết thành câu lệnh lặp For

- Giá trị đầu = 1, giá trị cuối = 5;

- Lệnh lặp là lệnh in giá trị của i ramàn hình: Write(i);

- For i:=1 To 5 Do write(i);

- For i:=5 DownTo 1 Do write(i);

- Giá trị đầu = 1, giá trị cuối = N

- S:=0

- For i:=1 To N Do S:=S+1/i;

IV Củng cố bài - bài tập về nhà (5p)

- Cú pháp câu lệnh lặp biết trước số lần lặp ở 2 dạng: Tiến và lùi

- Bài tập về nhà sgk - tr.51, sbt - bài tập chương trình 3 - tr.18

Trang 11

CẤU TRÚC LẶP (tiết 2)

I Mục tiêu

1 Kiến thức

- Biết được ý nghĩa của cấu trúc lặp với số lần chưa biết trước số lần lặp

- Biết được cấu trúc chung của câu lệnh lặp While - Do trong ngôn ngữ lập trìnhPascal

- Biết sử dụng đúng hai dạng câu lệnh WHILE trong ngôn ngữ lập trình Pascal

2 Kỹ năng

Bước đầu sử dụng được lệnh While để lập trình giải quyết được một số bài toánđơn giản

II Đồ dùng dạy học

1 Chuẩn bị của giáo viên

Máy tính, máy chiếu, sách giáo khoa và sách giáo viên

2 Chuẩn bị của học sinh

Sách giáo khoa

III Hoạt động dạy - học

* Kiểm tra bài cũ (5ph):

- Một học sinh lên viết cú pháp dạng lặp tiến và lùi, giải thích các thành phần củacâu lệnh

- Một học sinh lên bảng vẽ sơ đồ thực hiện và nêu cách thực hiện của máy

Trang 12

1 Hoạt động 1(15p): Tìm hiểu ý nghĩa của cấu trúc lặp chưa biết trước số lần lặp

a Mục tiêu

- Học sinh thấy được sự cần thiết của cấu trúc lặp có số lần chưa xác định trong lậptrình

b Nội dung

Bài toán 1: Bài toán bỏ bi vào thùng?

Bài toán 2: Viết chương trình tính tổng S=1+1/2+1/3+1/4+…1/N+… cho đến khi1/N<0.0001

c Các bước tiến hành

TG Hoạt động của giáo viên Hoạt động của học sịnh10’ 1 Chiếu nội dung bài 1:

- Hỏi: Trong bài toán này có sự lặp đi

lặp lại không? Nếu có thì công việc nào

được lặp đi lặp lại?

- Hỏi: Trong bài toán này, chúng ta có

biết bỏ bao nhiêu lần bi thì đầy thùng

không?

- Hỏi: Lặp bao nhiêu lần?

- Hỏi: Lặp đến khi nào?

- Chiếu hình ảnh mô phỏng

2 Chiếu nội dung bài 2

- Trong bài toán có sự lặp đi lặplại, công việc bỏ bi vào thùngđược lặp đi lặp lại

- Lặp không biết số lần lặp

- Lặp đến khi thùng đầy

- Chú ý theo dõi kỹ để trả lời câuhỏi

Trang 13

- Chiếu lại nội dung bài toán trước và

biết trước số lần lặp với câu lệnh For

Nhưng trong thực tế, có nhiều sự việc,

bài toán có sự lặp mà không biết trước

số lần lặp Turbo Pascal cung cấp câu

lệnh lặp không biết trước số lần lặp:

Trang 14

b Nội dung

Cấu trúc:

While <điều kiện> Do <lệnh cần lặp>;

Trong đó: While, Do: Từ khóa

Điều kiện: Là biểu thức quan hệ hoặc biểu thức logic

Câu lệnh là một câu lệnh nào đó của Pascal

- Sự thực hiện của máy:

+ Bước 1: Tính và kiểm tra điều kiện

+ Bước 2: Nếu điều kiện đúng (có giá trị True) thì thực hiẹn câu lệnh cần lặp, rồiquay lại bước1 Nếu sai thì thoát khỏi câu lệnh while - do

- Sơ đồ thực hiện:

c Các bước tiến hành

TG Hoạt động của giáo viên Hoạt động của học sinh

- Chiếu lại mô phỏng

- Phát biểu cách bỏ bi? - Bỏ bi vào thùng đến khi nào

F T

Điều kiện

Câu lệnh cần lặp

Trang 15

- Phát biểu lại như sau: Chừng nào mà

thùng chưa đầy thì bỏ bi vào

Hoặc: Trong khi thùng chưa đầy thì thực

hiện (làm) bỏ bi vào.

- Hỏi: Tương tự có thể phát biểu cách tính

tổng của bài 2 như thế nào?

- Hỏi: Điều kiện nào được thỏa mãn thì bỏ

bi (Tính tổng)?

- Hỏi: Công việc được lặp?

- Hỏi: Trong khi, làm - tương ứng trong

tiếng Anh?

- Hỏi: Viết lại phát biểu trên, chúng ta có

câu lệnh lặp không biết trước số lần lặp:

While <điều kiện) Do <câu lệnh cần lặp>;

- Giải thích các thành phần của câu lệnh,

cách thực hiện của máy

- Hỏi: Trong bài toán 2 thì câu lệnh cần

Trang 16

- Hỏi: Viết sơ đồ thực hiện?

- Hỏi: Trong câu lệnh FOR biến chỉ số

thay đổi như thế nào?

- Nhưng trong câu lệnh While thì biến chỉ

số không được thay đổi giá trị tự động mà

phải có một câu lệnh thay đổi giá trị của

biến đếm

- Hỏi: Vậy, sau từ khóa DO có ít nhất mấy

câu lệnh?

- Hỏi: Theo cú pháp thì sau DO chỉ có một

câu lệnh nào đó của Pascal, muốn thực

hiện ít nhất 2 câu lệnh sau DO thì phải sử

dụng câu lenẹh nào?

N:=N+1;

- Trong câu lệnh FOR biến chỉ sốđược tự động tăng (giảm) mộtđơn vị

- Vẽ sơ đồ thực hiện vào vở, mộthọc sinh lên bảng vẽ

- Sau từ khóa DO có ít nhất 2câu lệnh, một câu lệnh cần lặp vàmột câu lệnh làm thay đổi giá trịcủa biến đếm

- Để sau DO thực hiện được ítnhất 2 câu lệnh thì sau DO là câulệnh ghép, ghép các câu lệnh nàythành một câu lệnh

3 Hoạt động 3: Rèn luyện kỹ năng vận dụng câu lệnh lặp không biết trước số lần

Trang 17

Bài 1: Viết chương trình tính tổng S=1+1/2+1/3+1/4+…1/N+… cho đến khi

1/N<0.0001?

Bài 2: Viết chương trình tìm ước chung lớn nhất của hai số nguyên dương a và b?

c Các bước tiến hành

1 Chiếu nội dung bài 1 Mục tiêu là viết

chương trình hoàn thiện

- Định hướng các vấn đề chính

+ Xác định điều kiện để tiếp tục lặp

+ Xác định các lệnh cần lặp

- Yêu cầu học sinh viết chương trình

hoàn chỉnh và gọi một học sinh lên bảng

viết chương trình hoàn chỉnh, rồi nhận

- Vậy, trường hợp lặp với số lần biết

trước là trường hợp đặc biệt của lặp

không biết trước số lần lặp Mọi câu lệnh

For - Do chúng ta đều có thể chuyển về

- Điều kiện: 1/N<0.0001;

- S:=S+1/N;

- N:=N+1;

- Có thể sử dụng câu lệnh While - Dođược, với điều kiện là i<=N thì tínhtổng

Trang 18

câu lenẹh While - Do được.

- Hỏi: Chuyển từ câu lệnh FOR sang câu

lệnh WHILE như thế nào?

2 Chiếu nội dung bài 2

- Hỏi: Thuật toán tìm ước chung lớn nhất

của 2 số nguyên dương a và b?

- Hỏi: Điều kiện lặp?

- Hỏi: Lệnh cần lặp?

- yêu cầu học snh viết chương trình?

- Hỏi: Để giải quyết được các bài toán lặp

cần chỉ trả lời được hai câu hỏi nào?

i:=1;

- While i<=N Do S:= S+1/i;

* Thuật toán:

- B1: Nhập a và b nguyên dương;

- B2: Nếu a=b thì ucln=a, rồi kết thúc

- B3: Nếu a>b thì a:=a-b, rồi quay lại b2;

- B4: b:=b-a, rồi quay lại b2;

- Điều kiện lặp: a<>b

- Lệnh cần lặp là a:=a-b hoặc b:=b-a;

- Phai trả lời được hai câu hỏi:

+ Điều kiện lặp?

+ lệnh cần lặp?

IV Bài tập về nhà: Bài 4, 5b, 7, 8 - sgk - tr.51 + sbt - tr 18 - tr.29

BÀI TẬP CÂU LỆNH LẶP Mục tiêu

1 Kiến thức

- Củng cố câu lệnh lặp For - Do và câu lệnh While - Do

Trang 19

- Biết vận dụng 2 câu lệnh lặp cho mỗi bài toán.

- Biết cách thực hiện của máy ở cả lặp biết trước số lần lặp và lặp không biết trước

1 Chuẩn bị của giáo viên

Máy tính, máy chiếu, sách giáo khoa và sách giáo viên

2 Chuẩn bị của học sinh

Trang 20

- Dạng tiến:

Cấu trúc:

For <biến đếm>:= <Gtrị đầu> To <Gtrị cuối> Do <Lệnh cần lặp>;

Trong đó:

For, To, Do: Từ khóa

Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con

Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầuphải nhỏ hơn hoặc bằng giá trị cuối

- Sự thực hiện của máy:

+ Bước 1: Tính giá trị đầu, gán cho biến đếm

+ Bước 2: kiểm tra, nếu biến đếm <= giá trị cuối thì

For, DownTo, Do: Từ khóa

Biến đếm: Là biến kiểu nguyên, ký tự hoặc miềm con

Trang 21

Gtrị đầu, Gtrị cuối là hằng, biểu thức cùng kiểu với biến đếm Giá trị đầuphải nhỏ hơn hoặc bằng giá trị cuối.

- Sự thực hiện của máy:

+ Bước 1: Tính giá trị cuối, gán cho biến đếm

+ Bước 2: kiểm tra, nếu biến đếm >=giá trị đầu thì

Thực hiện câu lệnh cần lặp,

Giảm biến đếm lên 1 đơn vị rồi quay lại Bước 2

- Dạng lặp không biết trước số lần lặp:

Cấu trúc:

While <điều kiện> Do <lệnh cần lặp>;

Trong đó: While, Do: Từ khóa

Điều kiện: Là biểu thức quan hệ hoặc biểu thức logic

Câu lệnh là một câu lệnh nào đó của Pascal

- Sự thực hiện của máy:

+ Bước 1: Tính và kiểm tra điều kiện

+ Bước 2: Nếu điều kiện đúng (có giá trị True) thì thực hiện câu lệnh cần lặp, rồiquay lại bước1 Nếu sai thì thoát khỏi câu lệnh while - do

c Các bước tiến hành

Trang 22

TG Hoạt động của giáo viên Hoạt động của học sinh

5’ 1 Yêu cầu học sinh lại

Giá trị đầu và giá trị cuối

có mối quan hệ như thế

nào với biến đếm?

+ For <biến đếm>:= <Gtrị đầu> To <Gtrị cuối>

Do <Lệnh cần lặp>;

+ For <biến đếm>:= <Gtrị cuối> DownTo <Gtrịđầu> Do <Lệnh cần lặp>;

+ While <điều kiện> Do <lệnh cần lặp>;

- Giống nhau: Đều là lệnh lặp

- Khác nhau: Dạng For - Do:

+ Lặp biết trước số lần lặp, còn dạng While - Do:Lặp không biết trước số lần lặp

+ Trong câu lệnh For biến đếm tự động thay đổigiá trị, còn trong câu lệnh While phải có câu lệnhlàm thay đổi giá trị biến đếm

- Giá trị đầu và giá trị cuối phải có kiểu hợp vớikiểu của biếm đếm Thường là kiểu số nguyênhoặc kiểu kí tự Giá trị đầu pơhải nhỏ hơn hoạcbằng giá trị cuối

Trang 23

2 Hoạt động 2 Rèn luyện kĩ năng vận dụng tổ chức lặp

TG Hoạt động của giáo viên Hoạt động của học sinh

13’ 1 Tìm hiểu bài 1 và giải quyết

- Chiếu nội dung lên bảng

- Có thể khai triển biểu thức Y :

Trang 24

Y= 1/2+2/3+3/4+…+50/51;

- Hỏi: Nhìn vào biểu thức triển

khai của Y, N có giá trị trong

2 Tìm hiểu bài 2 và giải quyết

- Chiếu nội dung lên bảng

- ý tưởng giải quyết bài toán?

- Điều kiện là gì?

- Khi nào thì thỏa mãn điều kiện?

- Sử dụng dạng lặp nào?

- Viết chương trình hoàn chỉnh?

- N có giá trị trong khoảng 1 50;

Trang 25

1 Nội dung đã học

- Có 2 cấu trúc lặp: For và While

2 Câu hỏi và bài tập về nhà

- Hãy thay câu lệnh dạng For sang dạng While trong bài 1

- Bài tập về nhà: Các bài tập chương trình 3 trong sgk và sbt

Trang 26

1 Chuẩn bị của giáo viên

Máy tính, máy chiếu, sách giáo khoa và sách giáo viên

2 Chuẩn bị của học sinh

Sách giáo khoa, một số chương trình bài tập

III Hoạt động dạy - học

1 Hoạt động 1 Ôn lại lý thuyết đã học

a Mục tiêu

- Nhắc lại kiến thức đã học

b Nội dung

- Khái niệm về lập trình và ngôn ngữ lập trình

- Có hai loại chương trình trình dịch: Thông dịch và biên dịch

Trang 27

- Các thành phần của ngôn ngữ lập trình: Bảng chữ cái, cú pháp và ngữ nghĩa

- Các khái niệm; Tên, hằng, biến và chú thích

- Cấu trúc của chương trình Pascal: Phần khai bào và phần thân

- Các kiểu dữ liệu chuẩn: Kiểu nguyên, kiẻu thực, kí tự và logic

Đặt câu hỏi gợi ý cho học sinh tự

- Cấu trúc chung của chương trình

- lập trình là diễn tả thuật toán bằng mộtngôn ngữ lập trình

- Biên dịch và thông dịchBảng chữ cái, cú pháp và ngữ nghĩa

- Khái niệm tên, biến, hằng và chúthích

- Gồm 2 phàn: Phần khai báo và phần

Trang 28

- Nêu tên các kiểu dữ liệu chuẩn?

- Nêu tên các nhóm phép toán đã

- Một số hàm: sqr, sqrt, cos, sin, abs,

- Read, readln, write và writeln

- Dạng đủ: If <ĐK> Then <câu lệnh1>else <câu lệnh 2>;

- Dạng thiếu: If <ĐK> Then <câu lệnh>

Ngày đăng: 30/04/2021, 20:43

🧩 Sản phẩm bạn có thể quan tâm

w