1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Giáo án Tin học 8 - Tiết 37-38, Bài 7: Câu lệnh lặp - Năm học 2010-2011 - Trần Thị Thảo

11 26 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 11
Dung lượng 198,47 KB

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

Nội dung

*Lưu ý: Câu lệnh có sử dụng câu lệnh ghép thì phải đặt trong hai từ khóa begin … end; - HS lắng 4/ Tính tổng & tích bằng câu lệnh nghe & trả lặp lời Vd 1: chương trình tính tổng N số tự [r]

Trang 1

Tuần : 19

Tiết : 37+38

Ngày soạn: 06/01/2011 Ngày dạy : 07/01/2011 Bài 7: CÂU LỆNH LẶP

I Mục tiêu

1 Kiến thức

- Biết nhu cầu cần có cấu trúc lặp trong ngôn ngữ lập trình

- Biết ngôn ngữ lập trình dùng cấu trúc lập để chỉ dẫn máy tính thực hiện lặp

đi lặp lại công việc nào đó một số lần

- Hiểu lệnh ghép trong Pascal

2 Kỹ Năng

- Rèn luyện kỹ năng phân biệt các hoạt động phụ thuộc vào điều kiện trong

cuộc sống

3 Thái độ

- Tự giác, tích cực, chủ động trong tiết học.

II Chuẩn bị

- GV: Soạn giáo án , SGK…

- HS: Vở ghi, SGK, đọc trước nội dung bài học

III Phương pháp

- Vấn đáp, thuyết trình, trực quan

- Đặt vấn đề, giải quyết vấn đề

IV Hoạt động dạy và học

1 Ổn định lớp tổ chức lớp

- kiểm tra sĩ số lớp

- Ổn định trật tự

2 Kiểm tra bài cũ

- Em hãy mô tả thuật toán tím giá trị lớn nhất của hai số?

Bước 1 : Max:= a (hoặc Max:=b);

Bước 2 : Nếu a < b thì gán Max = b và viết giá trị lớn nhất của hai số là

Max

3 Bài mới

- Trong các tiết học vừa qua em đã được làm quen với một số câu lệnh trong

ngôn ngữ lập trình TuborPascal như lệnh điều kiện, bài học hôm nay giúp

chúng ta tìm hiệu thêm câu lệnh mới

Trang 2

HĐ CỦA GV HĐ CỦA

HS

NỘI DUNG

HĐ1: Trong cuộc

sống hằng ngày,

được thực hiện lặp đi

lặp lại nhiều lần

ví dụ: Các ngày trong

tuần các em đều lặp

đi lặp lại hoạt động

buổi sáng đến trường

và buổi trưa trở về

nhà

HS cho thêm một ví

dụ trong thực tế đời

sống hằng ngày lặp

đi lặp lại ?

GV: Khi viết CT

máy tính cũng vậy,

trong nhiều trường

hợp ta cũng phải viết

lặp lại nhiều câu lệnh

chỉ để thực hiện 1

phép tính nhất định

- HS: Lắng nghe, tự ghi bài

Ví dụ: Các

em học bài thì phải đọc

đi đọc lại

cho đến khi thuộc bài

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

- Nhiều hoạt động được thực hiện lặp lại nhiều lần

- Có những hoạt đồng thường lặp

đi lặp lại với số lần nhất định và biết trước

- Chúng ta còn lặp lại những công việc với số lần không thể xác định trước

HĐ2: Câu lệnh lặp –

một lệnh thay cho

nhiều lệnh

GV: Mời HS lên

bảng vẽ một hình

vuông cạnh 1 đơn vị

độ dài (20cm) và yêu

cầu cả lớp theo dõi

bạn thực hiện các

thao tác khi vẽ

Yêu cầu 1 HS mô tả

các bước bạn vẽ trên

bảng

Vậy khi bạn vẽ 1

hình vuông được

- HS: lên bảng vẽ, cả lớp theo dõi

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

VD1: Thuật toán mô tả các bước để vẽ

hình vuông

Bước 1: k ← 0 (k là số đoạn thẳng đó

vẽ được)

Bước 2: k ← k+1 Vẽ đoạn thẳng 1 đơn vị độ dài và quay thước 900 sang phải

Bước 3: Nếu k<4 thì quay lại bước 2; ngược lại kết thc

 k là biến đếm

Trang 3

thực hiện bao nhiêu

thao tác? (HS trả lời

4 thao tác vẽ 4 đoạn

thẳng)

GV: Gợi ý thêm thao

tác quay thước

Các thao tác đó như

thế nào?

GV: Như vậy khi vẽ

hình vuông có những

thao tác lặp đi lặp lại

Thuật toán sau sẽ mô

tả các bước để vẽ

hình vuông

GV: Mô tả thuật toán

trên bảng

GV: Mô tả thuật toán

tính tổng các số tự

nhiên từ 1→ 100

Cấu trúc mô tả thuật

toán như trên gọi là

cấu trúc lặp

- 4 thao tác, Các thao tác giống nhau

VD2: Thuật toán tính thổng

S= 1+2+3+ … + 100

Bước 1: S ← 0; i ← 0

Bước 2: i← i + 1 Bước 3: nếu i ≤ 100, thì S ← S + i v quay lại bước 2; ngược lại kết thúc

 i là biến đếm

Mô tả thuật toán trên gọi l cấu trúc lặp Mọi NNLT đều có cách chỉ thị cho máy tính thực hiện cấu trúc lặp chỉ với

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

HĐ3: Ví dụ về câu

lệnh lặp

GV: minh họa bẳng

NN Pascal cú pháp

câu lệnh <for … to

… do>

Lưu ý cho hs:

- Biến đếm là biến

đơn có kiểu nguyên

- Giá trị đầu và giá

trị cuối là các biểu

thức có cùng kiểu

với biến đếm và giá

trị cuối phải lớn hơn

giá trị đầu.

- HS: chú ý

bài

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

Cú Pháp câu lệnh lặp với số lần biết trước trong Pascal

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

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

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

Vd 1: Chươngng trình in ra màn hình

thứ tự lần lặp

var i:integer;

begin

for i:= 1 to 20 do writeln(‘Day la lan lap thu’,i); readln;

end.

Trang 4

- HS nhận xét và so

sánh sự khác nhau ở

câu lệnh lặp trong 2

ví dụ trên

GV: Giải thích cho

HS tại sao vd2 trong

câu lệnh lặp cú

begin … end ;

- HS trả lời

- HS nhận xét

Vd2: chương trình ghi nhận vị trí 10 chữ O rơi từ trên xuống

ues crt;

var i:integer;

begin

clrscr;

for i:= 1 to 20 do

begin

writeln(‘O’);

delay(200);

end;

readln;

end.

*Lưu ý: Câu lệnh có sử dụng câu lệnh

ghép thì phải đặt trong hai từ khóa begin … end;

HĐ4: Tính tổng &

tích bằng câu lệnh

lặp

GV: trình bày đoạn

chương trình tính

tổng N số tự nhiên,

với N là số tự nhiên

được nhập từ bàn

phím

Theo CT tính tổng ta

cần khai bao nhiêu

biến? kiểu biến?

Trong 2 biến thì biến

nào có giá trị được

nhập từ bàn phím?

Trong trường hợp dữ

liệu có kiểu nguyên

rất lớn ta dùng

longint

- HS lắng nghe & trả lời

- HS trả lời

2 biến

- N được nhập từ bàn phím

- HS trả lời

4/ Tính tổng & tích bằng câu lệnh lặp

Vd 1: chương trình tính tổng N số tự nhiên đầu tiên, với N là số tự nhiên được nhập từ bàn phím

S = 1+2+3+ … + N

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 tư

nhien dau tien S = ‘, S); readln;

end.

*Kiểu longint có phạm vi từ -231 đến

231 – 1

Vd 2: chương trình tính tích N số tự nhin, với N l số tự nhin được nhập từ bàn phím

N! = 1.2.3….N

Trang 5

program Tinh_Giai_Thua;

var N,i:integer;

P:longint;

begin

write(‘Nhap so N = ‘);

readln(N);

P:= 1;

for i:= 1 to N do

P:= P*i;

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

readln;

end.

HĐ5: Củng cố

1/ Cấu trúc lặp trong

chương trình dng để

làm gì?

Pascal cấu trc lặp với

số lần lặp cho trước

được thể hiện với câu

lệnh nào?

HS: Lấy ví dụ

nghe

4 HƯỚNG DẪN VỀ NHÀ

- Nêu ví dụ trong cuộc sống của em có liên quan đến điều kiện và em thực hiện điều kiện đó như thế nào?

- Hướng dẫn về nhà

- Học bài xem lại các ví dụ, chuẩn bị thực hành 5

V Rút kinh nghiệm

- HS phải biệt phân tích một câu điều kiện trong thực tế

- Xác định được một câu điều kiện

- Chỉ ra được phần điều kiện, phần kết quả

Trang 6

Tuần : 20

Tiết : 39+40

Ngày soạn: 09/01/2011 Ngày dạy : 10/01/2011 Bài TH 5: SỬ DỤNG LỆNH LẶP FOR DO

1 Kiến thức

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

- Hiểu lệnh ghép trong Pascal

2 Kỹ Năng

- Viết được chương trình có sử dụng vòng lặp for…do

- Sử dụng được câu lệnh ghép

- Rèn luyện đọc hiểu chương trình có sử dụng vòng lặp for…do

3 Thái độ

- Có ý thức, kỹ luật, nghiêm túc, trình bày một vấn đề chặt chẽ, rõ ràng.

II Chuẩn bị

- GV: Soạn giáo án , SGK, máy chiếu, phòng máy…

- HS: Vở ghi, SGK, đọc trước nội dung bài học, tìm hiểu một số bài toán và chỉ ra thuật toán

III Phương pháp

- Vấn đáp, thuyết trình, trực quan

- Đặt vấn đề, giải quyết vấn đề

IV Hoạt động dạy và học

1 Ổn định lớp tổ chức lớp

- kiểm tra sĩ số lớp

- Ổn định trật tự

2 Kiểm tra bài cũ

- Nêu cấu trúc câu lệnh lặp đơn, câu lệnh lặp ghép, có biết ý nghĩa của câu lệnh lặp

- Trả lời:

3 Bài mới

- Trong bài học trước em đã được học về câu lệnh lặp, bài học hôm nay giúp chúng ta tìm hiệu thêm câu lệnh lặp sử dụng trong các chương trình như thế nào

Trang 7

Hoạt động của GV Hoạt động của HS Nội dung

Bài 1 : Viết CT in ra màn

hình bảng nhân của một số

từ 1 tới 10, số được nhập từ

bàn phím và dừng màn hình

để có thể quan sát kết quả.

? Nêu cách giải?

- Cần nhân 1 số với các số từ

1 đền 10 Gọi số đó là số N

ta sẽ sử dụng vòng lặp xác

định từ giá trị đầu đến giá trị

cuối là bao nhiêu?

? yêu cầu mở rộng: in ra tất

cả bảng cửu chương từ 1 đến

10?

? giá trị N lúc này có phải

nhập nữa không?

?Giá trị N chạy từ bao nhiêu

đến bao nhiêu?

Vậy ta cần một vòng lặp N

từ 1 đến 10

GV: yêu cầu HS làm thành

hai bài khác nhau

? quan sát kết quả nhận

được? Kết quả có dễ dàng

quan sát không?

HS : đọc đề

HS : nêu phương án

HS : từ 1 đến 10

HS : nêu phương án

HS : không

HS : từ 1 đến 10

HS : lập trình và chạy chương trình

HS : sửa theo hướng dẫn của SGK và GV

HS : dịch và chạy chương trình

Bài 1( SGK/62)

a/ Khởi động Turbo Pascal và gõ chương trình

Program bangcuuchuong; 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

- In toàn bộ bảng cửu chương:

uses crt;

var N,i:integer;

begin clrscr;

writeln('Bang nhan ',N); writeln;

for N:=1 to 10 do for i:=1 to 10 do writeln(N,' x ',i:2,' = ',N*i:3);

readln end

b/ Ý nghĩa của các câu lệnh trong chương trình: Sau khi khai báo cho thư viện

Các biến chương trình thực hiện lệnh xóa màn hình

Đến lệnh nhập N (1 →

Trang 8

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ó 2 nhược điểm

sau đây :

- Các hàng kết 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 đề.

Nên sửa CT bằng cách chèn

thêm một hàng trống giữa

các hàng kết quả và đẩy các

hàng sang phải một khoảng

cách nào đó.

? để kết quả trông dễ nhìn ta

sử dụng Câu lệnh GotoXY(a,

b) có tác dụng đưa con trỏ về

cột a , hàng b. WhereX cho

biết số thứ tự của cột và

của hàng đang có con trỏ Ví

con trỏ về vị trí cột 5 của

hàng hiện tại

GV: Giúp HS sửa một số lỗi

Bài 3: Cũng như câu lệnh If ,

có thể dùng câu lệnh For

lồng trong một câu lệnh For

khác khi thực hiện lặp

HS : đọc đề

HS : nêu phương án

Dùng lệnh Writeln; để cách 1 dòng

Lệnh in thông báo Bang nhan của số được nhập vào

Thực hiện lệnh lặp với điều kiện trước, biến I chạy từ 1→10

In kết quả bảng nhân ra Kết thúc chương trình

C/ Chạy CT (Ctrl+F9) ta

nhập lần lượt các giá trị bằng 1, 2,…, 10

Bài 2: (SGK/63)

a/ CT đã chỉnh sửa câu lệnh lặp:

Uses crt;

Var N, i:integer;

Begin Clrscr;

Write (‘Nhap so N=’); Readln (N);

Writeln;

Writeln (‘Bảng nhan

‘,N);

Writeln;

For i:=1 to 10 do Begin

GotoXY (5,whereY); Writeln (N,’x’, i:2,’=’, N*i:3);

Writeln End;

Readln End

b/ Dịch và chạy CT với 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

Bài 3: (SGK/64)

a/ Yêu cầu học sinh tự đọc chương trình, tìm hiểu ý nghĩa của các câu

Trang 9

Sử dụng các câu lệnh

màn hình các số từ 0 đến 99

theo dạng bảng như hình

(Hình 38/ 64/SGK).

Bài 4: Tính tổng

S= 1+1/2+1/3+…+1/n

Với n nhập từ bàn phím.

? Bài này tương tự bài nào?

? Công thức tính tổng S được

tính như thế nào?

? Ban đầu giá trị S gán bằng

bao nhiêu?

? Ta dùng biến nào là biến

đếm? Giá trị dầu, giá trị cuối

bằng bao nhiêu?

HS : Trật tự, tập trung quan sát GV hướng dẫn

HS : Trả lời

HS : s:= s+1/(2*n+1)

HS : 0

HS : n

lệnh qua phần gợi ý trong cặp dấu ngoặc nhọn {} b/ Chạy CT:

Sử dụng thêm các câu lệnh GotoXY(a,b) để điều chỉnh bảng kết quả ra giữa màn hình

CT đã chỉnh sữa như sau: Program Tao_bang;

Uses crt;

Var i: byte;

j, X, Y: byte;

Begin Clrscr;

X:=18; Y:=7;

For i:= 0 to 9 do Begin

GotoXY (X,Y);

For j:= 0 to 9 do Write (10*i+j:4); Y:=Y+1;

Writeln;

End;

Readln End

Bài 4: (BT làm thêm)

Program Tinh_tong;

Uses crt;

Var i,n: integer;

s: real;

Begin Clrscr;

Write(' nhap n=');

Readln(n);

s:=0;

For i:= 1 to n do Begin

s:= s+1/(2*n+1); End;

Writeln(' tong la',s:3:2); Readln;

Trang 10

Bài 5: In ra màn hình các số

có 4 chữ số mà tổng chữ số

hành trăm và hàng nghìn

bằng tổng các chữ số hàng

chục và hàng đơn vị.

? Nêu phương án giải quyết ?

? Bài toán yêu cầu những

gì ?

? Trước tiên cần phải tách

các số, sau đó kiểm tra điều

kiện tiếp theo ? nêu cách giải

tách các số

Bài 5: Giải bài toán cổ ‘ vừa

gà vừa chó’

? Tổng số gà và chó là bao

nhiêu con?

? Tổng số chân là bao nhiêu?

? Số gà cvà số chó chỉ có thể

trong khoảng từ bao nhiêu

con đến bao nhiêu con?

Ta sẽ cho số chó lần lượt

chạy từ 1 đến 24 tương ứng

với số chó là số gà = 36 –

chó và kiểm rta điều kiện

nếu gà *2 + chó*4 = 100 thì

hiện kết quả tìm được ?Hãy

lập trình theo gợi ý ?

GV : Tìm được kết quả bằng

bao nhiêu ?

HS : Nêu cách giải

HS : Trả lời

HS : Nêu các bước tách số

HS : gà + chó = 36 con

HS : gà *2 + chó*4 = 100

HS : từ 1 đến 24 con vì chỉ

có thể có ít hơn 100 : 4 =

25 con

HS : lập trình, chạy chương trình

Bài 5: (BT làm thêm)

Program In_so_bon_CS; Uses Crt;

Var a,b,c,d,i: Integer;

Begin Clrscr;

Write('cac so thoa man

la = ');

Writeln;

For i:= 1000 to 9999 do Begin

a:= i div 1000;

b:= (i mod 1000) div 100;

c:= (i mod 100) div 10; d:= i mod 10;

If ((b + a) = (d+ c)) then

Write( i,' ' );

End;

Readln;

End

Bài 5: (BT làm thêm)

Program BT_Ga_Cho; Var ga, cho:byte;

Begin For cho:= 1 to 24 do Begin

ga:= 36 - cho;

if( 2*ga + 4*cho = 100) then

writeln('Ga: ', ga, ', Cho: ',cho);

End;

Readln;

End

Trang 11

Cũng Cố :

GV : Gọi HS đọc phần tổng

kết

GV : Yêu cầu HS đọc phần

đọc thêm

? Nêu cấu trúc câu lệnh lặp

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

biết ý nghĩa của câu lệnh lặp

? Biến đếm phải có điều kiện

gì khi khai báo biến ?

Hướng đẫn về nhà :

Tập lập trình một số BTVN

của tiết trước, buổi sau sẽ

chữa bài và chạy chương

trình , lập trình bài đọc thêm

để kiểm tra kết quả số Pi

Ôn tập kĩ vòng lặp xác

định, chuẩn bị bài sau học

vòng lặp không xác định

HS : trả lời

Ngày đăng: 29/03/2021, 17:23

TỪ KHÓA LIÊN QUAN

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