1. Trang chủ
  2. » Đề thi

Giáo án Tin học 8 - Tuần 22 - Năm học 2008-2009

12 8 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 12
Dung lượng 193,46 KB

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

Nội dung

GV nhấn mạnh toàn bộ GV tổ chức cho HS hoạt động theo nhóm làm BT 5 SGK – 61 GV chốt lại đáp án: Trừ d, tất cả các câu lệnh đều không hợp lệ: a Giá trị đầu phải nhá h¬n gi¸ trÞ cuèi; b C[r]

Trang 1

Tuần 22

Ngày soạn: /02/09

Ngày dạy:

Tiết 43: Câu lệnh lặp

A Mục tiêu:

- Biết được cấu trúc lặp được sử dụng để hướng dẫn cho máy tính thực hiện lặp lại một công việc nào đó một số lần

- Biết nhu cầu cần có cấu trúc lặp trong NNLT

- Có kĩ năng đọc và tìm hiểu chương trình trong các ví dụ

B Chuẩn bị:

- Thầy: Hình ảnh

- HS: Thực hiện theo HD ở tiết 42

C Tiến trình:

1 ổn định: KTSS, tư cách HS

2 Kiểm tra bài cũ:

HS1: Viết câu lệnh theo yêu cầu: Nhập điểm kiểm tra, nếu điểm nhỏ hơn 5 thì hiển thị dòng chữ: “Ban can co gang”

HS2: Cho biết kết quả việc thực hiện chương tình sau:

Uses crt;

Begin

Clrscr;

Writeln(‘O”); delay(300);

Writeln(‘O”); delay(300);

Writeln(‘O”); delay(300); 20 lần

Writeln(‘O”); delay(300);

End.

HS khác NX, GV NX chung và cho điểm

GV đặt vấn đề: Với chương trình trên, nếu viết đi viết lại 20 lần lệnh Writeln(‘O”); delay(300);

thì rất phức tạp và mất thời gian Vậy có cách nào khác ngắn hơn, đơn giản hơn, khoa học hơn để viết chương trình trên được không?

3 Bài mới:

GV: Đưa ra các ví dụ về công việc phải

thực hiện lặp lại hàng ngày như SGK

? Trong các ví dụ trên, công việc nào được

lặp lại với số lần biết trước, công việc nào

được lặp lại với số lần không xác định?

1 Các công việc phải thực hiện nhiều lần:

VD:

- Đánh răng mỗi ngày hai lần

- Mùa hè, mỗi ngày tắm một lần

Trang 2

HS: + Đánh răng mỗi ngày hai lần; Mùa

hè, mỗi ngày tắm một lần là các công việc

được lặp lại với số lần biết trước

+ Học cho đến khi thuộc bài; Nhặt từng

cọng rau cho đến khi xong.là công việc

được lặp lại với số lần không xác định

GV chốt lại

GV: Trong khi viết chương trình, để chỉ

dẫn cho MT thực hiện đúng công việc phải

lặp lại nhiều lần, người lập trình phải làm

gì để giảm nhẹ công việc viết chương

trình?

GV giới thiệu câu lệnh lặp

? Đọc ví dụ 1 (SGK – 56)

GV đưa ra hình vẽ 3 hình vuông

HS quan sát và nhận xét về 3 hình vuông

trên

HS: 3 hình vuông bằng nhau và mối hình

là ảnh dịch chuyển sang trái 2 đơn vị của

hình kia

? Thao tác gì được lặp lại trong ví dụ 1?

HS: Thao tác vẽ hình vuông lặp lại 3 lần

HS đọc và tham khảo thuật toán của phép

vẽ 3 hình vuông trên và phân tích thuật

toán

? Nêu cách vẽ một hình vuông?

HS: bốn lần thao tác vẽ một đoạn thẳng

bằng nhau

HS hoạt động theo nhóm thảo luận để nêu

thuật toán mô tả các bước vẽ hình vuông

Đại diện nhóm trả lời

GV lưu ý: Biến k được sử dụng như biến

đếm để ghi lại số cạnh đã vẽ được.

GV đưa ra tiếp VD 2 (SGK – 57)

? Làm thế nào để tính được S?

HS: có thể có nhiều cách

GV nêu thuật toán tính tổng của một trăm

số tự nhiên đầu tiên

? Các hoạt động của việc tính tổng này cso

gì đặc biệt?

HS: Các hoạt động này giống nhau là cùng

thực hiện phép cộng: kết quả cảu hoạt

động trước là dữ liệu vào của hoạt động

- Học cho đến khi thuộc bài

- Nhặt từng cọng rau cho đến khi xong

2 Câu lệnh lặp – một lệnh thay cho nhiều lệnh:

Ví dụ 1 (SGK – 56)

- Thuật toán vẽ 3 hình vuông bằng nhau SGK – 56

- Thuật toán mô tả các bước để vẽ hình vuông:

B1: k ← 0 (k là số đoạn thẳng đã vẽ được) B2: k ← k +1 Vẽ đoạn thẳng 1 đơn vị độ dài và quay thước 900 sang phải

B3: Nếu k < 4 thì trở lại B2 Ngược lại, kết thúc thuật toán

Ví dụ 2 : SGK – 57

* Mọi NNLT đều có cách để chỉ thị cho

MT thực hiện cấu trúc lặp với một câu

Trang 3

tiếp theo.

GV NX và Nhấn mạnh: Cách mô tả các

hoạt động lặp trong thuật toán nhơ trong 2

VD trên được gọi là cấu trúc lặp

lệnh Đó là câu lệnh lặp.

4 Củng cố:

GV nhấn mạnh các nội dung cơ bản đã truyền đạt trong tiết học

HS trả lời câu hỏi 1 (SGK – 60)

? Cấu trúc lặp được sử dụng để làm gì?

HS khác NX và bổ sung, GV chốt lại

5 Hướng dẫn về nhà:

- Xem lại bài, hoàn thiện câu 1 (SGK – 60)

- Nghiên cứu trước phần 3, 4 cảu bài; giờ sau học tiếp

Tuần 22

Ngày soạn: /02/09

Ngày dạy:

Tiết 44: Câu lệnh lặp (tiếp)

A Mục tiêu:

- Hiểu hoạt động của câu lệnh với số lần biết trước for – do trong NN Pascal

- Hiểu được lệnh ghép trong Pascal

- Có kĩ năng đọc và tìm hiểu chương trình trong các ví dụ

- Viết được câu lệnh lặp for – do đơn giản.

B Chuẩn bị:

- Thầy: Bảng phụ

- HS: Thực hiện theo HD ở tiết 43

C Tiến trình:

1 ổn định: KTSS, tư cách HS

2 Kiểm tra bài cũ:

HS1: Trả lời câu hỏi 1 (SGK – 60) Cấu trúc lặp được dùng để làm gì?

HS2: Viết lại cú pháp của câu lệnh dạng thiếu và dạng đầy đủ?

HS khác NX, GVNX chung và cho điểm

3 Bài mới:

GV nhấn mạnh vai trò của việc sử dụng câu

trúc lặp trong quá trình lập trình

GV giới thiệu câu lệnh lặp trong Pascal

GV giả thích ý nghĩa của các thành phần

1

2

3 Ví dụ về câu lệnh lặp:

Câu lệnh lặp đơn giản nhất trong Pascal có dạng:

For <biến đếm>:= < giá trị đầu> to <giá tị

Trang 4

trong câu lệnh

- for, to, do: là các từ khóa

- biến đếm: là biến đơn có kiểu

nguyên

- Giá trị đầu và giá trị cuối: là các

giá trị nguyên Và giá trị cuối phải

lớn hơn giá trị đầu

GV: Khi gặp câu lệnh lặp trên, câu lệnh

được thực hiện bắt đầu với giá trị biến đếm

bằng giá trị đầu Sau đó giá trị biến đếm

tăng dần một đơn vị từ giá trị đầu đến giá

trị cuối và câu lệnh được thực hiện mỗi lần

tăng biến đếm cho đến khi biến đếm vượt

quá giá trị cuối thì kết thúc

GV đưa ra ví dụ 3 (SGK – 58)

? Giải thích ý nghĩa các câu lệnh trong CT?

HS trả lời, GV nhấn mạnh

GV tiếp tục đưa ra CT mô phỏng quả trứng

rơi

Uses crt;

Begin

Clrscr;

Writeln(‘O”); delay(100);

Writeln(‘O”); delay(100);

Writeln(‘O”); delay(100); 20

lần

Writeln(‘O”); delay(100);

End.

HS quan sát

? Trong chương trình trên, câu lệnh

writeln('O'); delay(100) được viết lặp lại bao

nhiêu lần?

HS: 20 lần

? Em thấy thế nào nếu cần viết lặp lại lệnh

đó tới vài trăm lần hoặc vài nghìn lần?

HS: quá vất vả, có thể không thực hiện

được

GV đưa ra VD 4 – SGk – 58

HS quan sát và so sánh 2 CT

? Nêu ý nghĩa của câu lệnh trong CT ở VD

4?

GV giới thiệu câu lệnh

cuối> do <câu lệnh>;

Trong đó:

- for, to, do: là các từ khóa

- biến đếm: là biến đơn có kiểu

nguyên

- Giá trị đầu và giá trị cuối: là các

giá trị nguyên Và giá trị cuối

phải lớn hơn giá trị đầu.

Ví dụ 3: SGK – 58

Chương trình sau sẽ in ra màn hình thứ tự lần lặp:

program Lap;

var i: Integer;

begin for i := 1 to 10 do

writeln('Day la lan lap thu ',i);

Readln

end

Ví dụ 4: SGK – 58

Uses crt;

Var i: integer;

begin

Clrscr;

for i:=1 to 20 do begin writeln('O'); delay(100) end; Readln

end.

Lưu ý : Trong ví dụ 4, các câu lệnh đơn

giản writeln('O') và delay(100) được đặt trong hai từ khoá begin và end để tạo thành một câu lệnh ghép trong Pascal Từ đây về

Trang 5

begin writeln('O'); delay(100) end;

Các câu lệnh đơn giản được nằm trong hai

từ khóa Begin và end được gọi là câu lệnh

ghép trong Pascal Vậy câu lệnh có thể có

mấy loại?

HS: 2 loại (câu lệnh đơn và câu lệnh ghép)

? Qua VD3 và $ em thấy câu lệnh lặp có

tác dụng gì?

HS: làm giảm nhẹ công sức viết CT

GV đưa ra VD5

HS quan sát và NX về cách khai báo biến

HS: có thêm biến mới longint

GV: longint cũng là kiểu số nguyên nhưng

có thể lưu các số nguyên trong phạm vi từ

-2 31 đến 2 31 – 1 Thường sử dụng biến này

trong TH số có gí trị lớn.

? Hãy nêu ý nghĩa câu lênh lặp trong CT?

HS thực hiện

GV: Giải thích lệnh gán giá trị 0 cho S để

đảm bảo tính chính xác của kết quả, đề

phòng trong các CT dài, rất có thể trước đó

nó đã được gán một giá trị nào đó khác 0.

GV giới thiệu công thức tính N!

N! = 1.2.3 N

? Tính 5!; 6!?

Hai HS tính

GV: Việc tính N! với N từ 10 trở lên không

đơn giản, tuy nhiên MT có thể làm được

việc này không khó khăn

HS thỏa luận nhóm nghiên cứu tìm hiểu CT

trong VD 6 _ SGK – 59 theo yêu cầu:

? Nhận xét khai báo biến

? ý nghĩa câu lệnh

Đại diện các nhóm trả lời

GV lưu ý việc gán giá trị cho p và tác dụng

của câu lệnh lặp

sau, khi nói câu lệnh, ta có thể hiểu đó là

câu lệnh đơn hoặc câu lệnh ghép

4 Tính tổng và tích bằng câu lệnh lặp:

Ví dụ 5: SGK – 59

Chương trình sau đây sẽ tính tổng của N số

tự nhiên đầu tiên, với N là số tự nhiên

được nhập vào từ bàn phím (xem ví dụ 2)

program Tinh_tong;

var N,i: Integer;

S: longint;

begin

write('Nhap so N = '); readln(N);

S:=0;

for i := 1 to N do S:=S+i;

writeln('Tong cua ',N,' so tu nhien dau tien S = ',S);

end

* Lưu ý: SGK - 59

Ví dụ 6: SGK – 59

Ta kí hiệu N! là tích N số tự nhiên đầu

tiên

N! = 1.2.3 N

Dưới đây là chương trình tính N! với N là

số tự nhiên được nhập vào từ bàn phím Chương trình sử dụng một câu lệnh lặp

for…do:

program Tinh_Giai_thua;

var N,i: Integer;

P: longint;

begin

write('N = '); readln(N);

P:=1;

for i:=1 to N do P:=P*i;

writeln(N,'! = ',P);

end

* Lưu ý: SGK – 60

* Ghi nhớ: SGK – 60

4 Củng cố:

? Nêu các kiến thức cơ bản đã nắm được trong tiết học?

Trang 6

HS lần lượt trả lời GV nhấn mạnh toàn bộ

GV tổ chức cho HS hoạt động theo nhóm làm BT 5 (SGK – 61)

GV chốt lại đáp án: Trừ d), tất cả các câu lệnh đều không hợp lệ: a) Giá trị đầu phải

nhỏ hơn giá trị cuối; b) Các giá trị đầu và giá trị cuối phải là số nguyên; c) Thiếu dấu

hai chấm khi gán giá trị đầu; d) Thừa dấu chấm phảy thứ nhất, nếu như ta muốn lặp

lại câu lệnh writeln(’A’)mười lần, ngược lại câu lệnh là hợp lệ; e) Biến x đã được

khai báo như là biến có dữ liệu kiểu số thực và vì thế không thể dùng để xác định giá trị đầu và giá trị cuối trong câu lệnh lặp

5 Hướng dẫn về nhà:

- Xem lại toàn bộ bài, làm tất cả các BT cuối bài trong SGK – 60, 61

- Ghi nhớ câu lệnh lặp, Nghiên cứu trước bài TH 5, giờ sau lên phòng máy TH

Tuần 23

Ngày soạn: 10/02/09

Ngày dạy:

Tiết 45: Bài thực hành 5

Sử dụng lệnh lặp for do

A Mục tiêu:

- Viết chương trình Pascal có câu lệnh lặp for do

- Tiếp tục nâng cao kĩ năng đọc hiểu chương trình

Trang 7

- Rèn ý thức làm việc theo nhóm nghiêm túc, hiệu quả.

B Chuẩn bị:

- Thầy: Phòng máy + nội dung TH

- HS: Thực hiện theo HD ở tiết 44

C Tiến trình:

1 ổn định: KTSS, tư cách HS

2 KIểm tra bài cũ:

Kết hợp với thời gian TH

3 Bài mới:

GV tổ chức cho HS thưc hành theo nhóm với nội dung sau

Nội dung thực hành:

Bài 1: Viết chương trình in ra màn hình bảng nhân của một số từ 1 đến 9, số được nhập

từ bàn phím và dừng màn hình để có thể quan sát kết quả.

a, Gõ chương trình sau:

Uses crt;

Var N, i: integer;

Begin

Clrscr;

Write(‘Nhap so N = ‘); readln(N);

Writeln;

Writeln(‘Bang nhan ‘, N);

Writeln;

For i:= 1 to 10 do Writeln(N, ‘ x ‘, i:2, ‘ = ‘, N*i:3);

Readln

End.

b, Tìm hiểu ý nghĩa của các câu lệnh trong chươgn trình, dịch chương trình và sửa lỗi, nếu có

c, Chạy chương trình với các giá trị nhập vào lần lượt bằng 1 2, , 10 Quan sát kết quả nhận được trên màn hình

Bài 2: Chỉnh sửa chương trình để làm đẹp kết quả trên màn hình

? Kết quả của CT nhận được trong bài 1 có nhược điểm gì?

HS quan sát và trả lời

GV chốt lại 2 nhược điểm sau:

- Các hàng kết quả quá sát nhau nên khó đọc

- Các hàng kết quả không được cân đối với hàng tiêu đề

GV đưa ra cách sửa, HS thực hiện

a, Chỉnh sửa câu lệnh lặp của CT như sau:

for i:= 1 to 10 do

Begin

GotoXY(5, WhereY); writeln(N, ‘ x ‘, i:2, ‘ = ‘, N*i:3);

Writeln

End;

* Lưu ý: SGK - 63

Trang 8

b, Dịch và chạy chương trình với các giá trị gõ vào từ bàn phím Quan sát kết quả nhận được trên màn hình

GV đi kiểm tra các nhóm TH và căn cứ kết quả TH của các nhóm GV lấy điểm 15’

4 Củng cố:

GV NX ý thức TH của các nhóm, rút kinh nghiệm cho các nhóm làm việc chưa hiệu quả, chưa tự giác

5 Hướng dẫn về nhà:

- Xem lại nội dung các phần đã thực hành

- Nghiên cứu trước các phần còn lại trong SGK – 63, 64; giờ sau lên phòng máy TH tiếp

***************************************

Tuần 23

Ngày soạn: 12/02/09

Ngày dạy:

Tiết 46: Bài thực hành 5

Sử dụng lệnh lặp for do (tiếp)

A Mục tiêu:

HS tiếp tục được củng cố:

- Viết chương trình Pascal có câu lệnh lặp for do

- Tiếp tục nâng cao kĩ năng đọc hiểu chương trình

- Rèn ý thức làm việc theo nhóm nghiêm túc, hiệu quả

B Chuẩn bị:

- Thầy: Phòng máy + nội dung TH

- HS: Thực hiện theo HD ở tiết 45

C Tiến trình:

1 ổn định: KTSS, tư cách HS

2 KIểm tra bài cũ:

Kết hợp với thời gian TH

3 Bài mới:

GV tổ chức cho HS thưc hành theo nhóm với nội dung sau

Nội dung thực hành:

Bài 3: SGK – 64

a, Tìm hiểu chương trình sau

Program Tao_bang;

Uses crt;

Var

i: byte; { chi so cua hang}

Trang 9

j: byte; { chi so cua cot}

Begin

Clrscr; { Xoa man hinh}

For i:= 0 to 9 do { Viet theo tung hang}

Begin For j:=0 to 9 do { viet theo tung cot tren moi hang}

Write(10*i+j :4); {viet cac so ij ra man hinh}

Writeln; { xuong hang moi}

End; {xong hang thu i}

Readln {dung chuong trinh de xem ket qua}

End.

b, Gõ và chạy chương trình, quan sát kết quả trên màn hình Sử dụng thêm các câu lệnh GotoXY(a, b) để điều chỉnh (một cách tương đối) bảng kết quả ra giữa màn hình

GV đi kiểm tra các nhóm thực hành, uốn nắn và hướng dẫn

GV cho HS tham khảo bài đọc thêm 1: Tính gần đúng số Pi (SGK – 65)

4 Củng cố:

? Qua 2 tiết thực hành bài thực hành 5, em nắm thêm được những kiến thức gì?

HS trả lời, GV chốt lại theo phần Tổng kết cuối bài thực hành (SGK – 65)

Một số HS đọc lại phần Tổng kết

5 Hướng dẫn về nhà:

- Xem lại các nội dung đã được TH trong 2 tiết 45 và 46

- Ghi nhớ phần Tổng kết (SGK – 65)

- Ôn tập lại bài “ Câu lệnh lặp”, một số Bài tập trong SGK về câu lệnh lặp

Trang 10

Tuần 24

Ngày soạn: 18/02/09

Ngày dạy:

Tiết 47: Bài tập

A Mục tiêu:

- HS được củng cố việc sử dụng câu lệnh lặp For do để viết chương trình Pascal

- Rèn kĩ năng viết chương trình

- Rèn ý thức hoạt động cá nhân và tập thể khoa học và sáng tạo, hiệu quả

B Chuẩn bị:

- Thầy: Bảng phụ và một số bài tập cơ bản

- HS: Thực hiện theo HD ở tiết 46, SGK đầy đủ

C Tiến trình:

1 ổn định: KTSS, tư cách HS

2 Kiểm tra bài cũ:

HS: Viết cú pháp câu lệnh lặp For do Giải thích ý nghĩa thực hiện câu lệnh lặp

For do

HS khác NX, GV NX chung và cho điểm

3 Bài mới:

GV tổ chức cho HS chữa một số bài tập

trong SGK về câu lệnh lặp

trước hết GV yêu cầu HS nhắc lại ý nghĩa

thực hiện câu lệnh lặp

HS đọc to đề BT3 (SGK – 60)

HS hoạt động theo nhóm trả lời câu 3 (SGK

– 60)

Đại diện các nhóm trả lời

GV chốt lại

* Câu lệnh lặp For do:

For <biến đếm>:= < giá trị đầu> to <giá tị

cuối> do <câu lệnh>;

Trong đó:

- for, to, do: là các từ khóa

- biến đếm: là biến đơn có kiểu

nguyên

- Giá trị đầu và giá trị cuối: là các

giá trị nguyên Và giá trị cuối

phải lớn hơn giá trị đầu.

Bài tập 3 (SGK – 60)

Chúng ta nói rằng khi thực hiện các

Trang 11

? Bài 5 (SGK – 61) yêu cầu gì?

HS đọc to đề và trả lời

GV treo bảng phụ BT 5

HS quan sát và hoạt động theo nhóm

Đại diện một nhóm lên trình bày câu trả

lời, có giải thích

HS khác NX, GV nhận xét chung và nhấn

mạnh

GV yêu cầu HS đọc to đề BT 6 (61)

? Bài 6 yêu cầu gì?

HS: Mô tả thuật toán để tính tổng:

A =

) 1 (

1

5 3

1 4

2

1

3

.

1

1

n n

? Nêu hướng làm?

HS suy nghĩ và đưa ra phương án làm

? Tổng A sẽ được tính tổng theo công thức

nào?

hoạt động lặp, chương trình kiểm tra một

điều kiện Với lệnh lặp

for <biến đếm> := <giá trị

đầu> to <giá trị cuối> do <câu lệnh>;

của Pascal, điều kiện cần phải kiểm tra chính là giá trị của biến đếm lớn hơn giá trị cuối Nếu điều kiện không được thỏa mãn, câu lệnh được tiếp tục thực hiện; ngược lại,

chuyển sang câu lệnh tiếp theo trong chương trình

Bài tập 5 (SGK – 61)

Các câu lệnh Pascal sau có hợp lệ không, vì sao?

a) for i:=100 to 1 do writeln('A');

b) for i:=1.5 to 10.5 do writeln('A');

c) for i=1 to 10 do writeln('A');

d) for i:=1 to 10 do; writeln('A');

e) var x: real; begin for x:=1 to 10 do

writeln('A'); end.

Trả lời:

Trừ d), tất cả các câu lệnh đều không hợp

lệ: a) Giá trị đầu phải nhỏ hơn giá trị cuối; b) Các giá trị đầu và giá trị cuối phải là số

nguyên;

c) Thiếu dấu hai chấm khi gán giá trị đầu; d) Thừa dấu chấm phảy thứ nhất, nếu như

ta muốn lặp lại câu lệnh writeln(’A’)mười lần, ngược lại câu lệnh là hợp lệ;

e) Biến x đã được khai báo như là biến có

dữ liệu kiểu số thực và vì thế không thể dùng để xác định giá trị đầu và giá trị cuối trong câu lệnh lặp

Bài tập 6 (SGK – 61)

Hãy mô tả thuật toán để tính tổng sau đây (n là số tự nhiên được nhập vào từ bàn

phím):

A =

) 1 (

1

5 3

1 4 2

1 3 1

1

n n

LG:

Ngày đăng: 29/03/2021, 18:19

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w