1. Trang chủ
  2. » Cao đẳng - Đại học

Giáo án Tin học 8 - Học kỳ 2 - Nguyễn Thị Thúy Liễu

20 10 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 20
Dung lượng 440,58 KB

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

Nội dung

* Nhận xét : Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp như trong các ví dụ trên, ta có thể sử dụng câu lệnh có dạng lặp với số lần chưa biết trước 2.. Ví dụ về lệ[r]

Trang 1

Tuaàn : 20 – Tieát 39,40

Ngày dạy :

Bài 7: CÂU LỆNH LẶP.

I/ Mục tiêu:

 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 hoạt động của câu lệnh với số lần biết trước for do trong Pascal

 Viết đúng được lệnh for do trong một số tình huống đơn giản

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

 Thái độ nghiêm túc cẩn thận

II/ Chuẩn bị:

 Gv: Tài liệu tin lớp 8

 HS: SGK tin 8, vở ghi

III/ Tổ chức hoạt động dạy và học

1/Ổn định :

2 Kiểm tra bài cũ

3 Bài mới

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

GV: giới thiệu : Trong cuộc sống hằng ngày,

nhiều hoạt động đượ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à

- Các em học bài thì phải đọc đi đọc lại

nhiều lần cho đến khi thuộc bài

HS lắng nghe

GV: Hãy cho thêm một vài ví dụ trong thực tế

trong đời sống hằng ngày mà ta phải thực hiện

các thao tác được lặp đi lặp nhiều lần?

Hs cho ví dụ

Gv: Khi viết chương trình 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

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

( SGK)

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

Gv: Gọi 1 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 trên bảng

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

Trang 2

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

GV: 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 đã thực hiện bao

nhiêu thao tác? (hs có thể chỉ trả lời 4 thao tác là

vẽ 4 đoạn thẳng)

HS: trả lời (4 thao tác)

GV: Gợi ý thêm thao tác quay thước

Các thao tác đó như thế nào?

HS: trả lời : Các thao tác giống nhau

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

GV: Cấu trúc mô tả thuật toán như trên gọi là

cấu trúc lặp

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 thúc

 k là biến đếm

Vd2: Thuật toán tính

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 ngôn ngữ lập trình đề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

Hoạt động3: Ví dụ về câu lệnh lặp

Gv: minh họa bẳng ngôn ngữ Pascal cú pháp câu

lệnh for … to … do

HS: Quan sát, lắng nghe, ghi nhận

 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;

- câu lệnh có thể là câu lệnh đơn giản

hay câu lệnh ghép

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: Chuong trình in ra màn hình thứ

tự lần lặp

var i:integer;

begin

for i:= 1 to 20 do

Trang 3

GV: Cho hs nhận xét và so sánh sự khác nhau ở

câu lệnh lặp trong hai vd trên?

HS: Nhận xét

Gv: Giải thích cho học tại sao vd2 trong câu

lệnh lặp có begin … end

HS: Quan sát, lắng nghe

writeln(‘Day la lan lap

thu’,i);

readln;

end.

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

Hoạt động 4:Tính tổng và 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 (Pascal)

Theo công thức tính tổng ta cần khai bao nhiêu

biến? kiểu biến?

HS: trả lời

GV: Trong 2 biến thì biến nào có giá trị được

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

4 Tính tổng và 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.

Trang 4

GV: Trong trường hợp dữ liệu có kiểu nguyên

rất lớn ta dùng longint

*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ự nhiên, với N là số tự nhiên được nhập từ bàn phím

N! = 1.2.3….N

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.

IV Củng cố, hướng dẫn học ở nhà

1 Củng cố

- Hãy cho một vài ví dụ trong thực tế trong đời sống hằng ngày mà ta phải thực

hiện các thao tác được lặp đi lặp nhiều lần?

- ThÕ nµo lµ cÊu tróc lÆp?

- Cấu trúc lặp trong chương trình dùng để làm gì?

- Trong ngôn ngữ lập trình Pascal cấu trúc lặp với số lần lặp cho trước được thể hiện với câu lệnh nào?

2 Hướng dẫn học

- Học bài ,xem lại các ví dụ, chuẩn bị bài tập

Tuaàn : 21 – Tieát 41,42

Trang 5

Ngày dạy :

BÀI TẬP

I Mục tiờu

 Củng cố lại kiến thức trong bài 7 về cõu lệnh lặp thụng qua việc làm bài tập tại lớp

và ở nhà của HS

 Thỏi độ nghiờm tỳccẩn thận

II Chuẩn bị :

 GV: SGK

 HS: Vở ghi, vở bài tập, SGK, SBT

III Tổ chức hoạt động dạy và học

1 Ổn định

2 Kiểm tra bài cũ

- Cấu trỳc lặp trong chương trỡnh dựng để làm gỡ?

- Trong ngụn ngữ lập trỡnh Pascal cấu trỳc lặp với số lần lặp cho trước được thể hiện với cõu lệnh nào?

3 Bài mới

GV: Nờu cầu hỏi

Khi thực hiện câu lệnh 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 là gì?

HS: Trả lời

GV: Nờu BT :

Bài 1: Sau khi thực hiện đoạn chương trỡnh

trờn giỏ trị của J là bao nhiờu ?

J:=0;

for i:=0 to 5 j:=j+2;

HS: Trả lời

GV:

Chương trình Pascal sau đây thực hiện gì?

var i: integer;

begin

for i:=1 to 1000 do;

end.

HS: trả lời

GV: yờu cầu HS làm BT 3( SGK)

Bài 5: (SGK) Cỏc cõu lệnh Pascal sau cú

hợp lệ khụng ? vỡ sao ?

Bài 1:

Sau khi thực hiện đoạn chương trỡnh trờn giỏ trị của j là 12

Bài 2:

Đoạn chương trỡnh àny khụng thực hiện

gỡ cả

Bài 3:

Trang 6

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’);

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

writeln(‘A’); end

GV: Nêu BT

Bài 3: Hãy mô tả thuật toán để tính tổng sau

đây ?

1.3 2.4 3.5 ( 2)

A

n n

 HS: Thảo luận, trả lời

GV: nhận xét, sửa sai

GV: nêu BT : Viết thuật toán và chương trình

tính luỹ thừa bậc n của x

HS: Thảo luậu theo đôi bạn viết thuật toán ,

chương trình trình bày thuật toán ,

chương trình

GV: nhận xét, sửa sai

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 4:

Thuật toán tính tổng

A =

) 1 (

1

5 3

1 4 2

1 3 1

1

n n

Bước 1 Gán A  0, i  1

Bước 2 A  1

( 2)

i i .

Bước 3 i  i + 1

Bước 4 Nếu i  n, quay lại bước 2 Bước 5 Ghi kết quả A và kết thúc

thuật toán

Bài 5:

Bài 1 Thuật toán:

Bước 1 Nhập các số n và x

Bước 2 A  1, i  0 (A là biến lưu luỹ thừa bậc n của x)

Bước 3 i i + 1, A  A.x

Bước 4 Nếu i < n, quay lại bước 3 Bước 5 Thông báo kết quả A là luỹ

thừa bậc n của x và kết thúc

thuật toán

Chương trình Pascal có thể như sau:

var n,i,x: integer; a: longint;

begin

write('Nhap x='); readln(x);

Trang 7

write('Nhap n='); readln(n); A:=1;

for i:=1 to n do A:=A*X;

writeln(x,' mu ',n,' bang ',A);

end.

IV Củng cố, hướng dẫn học ở nhà

1 Củng cố

2 Hướng dẫn học

- Học bài

- Làm lại cácbài tập

- Xem trước nội dung bài thực hành 5, giờ sau thực hành tại phòng máy

Tuaàn : 22 – Tieát 43,44

Trang 8

Ngày dạy :

Bài thực hành 5: Sử dụng lệnh lặp for …do

I Mục tiêu:

- Vận dụng kiến thức của vòng lặp for… do, câu lệnh ghép để viết chương trình, tìm hiểu

câu lệnh gotoxy(), where<>, lệnh for lồng trong for

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

Sử dụng câu lệnh ghép trong chương trình;

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

- Thái độ học tập nghiêm túc, tích cực làm các bài thực hành

II Chuẩn bị của GV, HS

GV: - Giáo án, SGK, phòng máy, phần mềm pascal

HS: - SGK, vở ghi, bút

III Tổ chức hoạt động dạy và học

1 Ổn định

2 Kiểm tra bài cũ

Hãy nêu cấu trúc câu lệnh lặp ? Cho ví dụ minh hoạ?

3 Bài mới: Chúng ta đã nghiên cứu lý thuyết về vòng lặp for … do để biết vòng lặp

chạy như thế nào thì hôm nay chúng ta cùng nhau đi vào tiết thực hành Giáo viên ghi tên bài học lên bảng

Hoạt động 1: Viết chương trình cho các bài tập đã cho về nhà.

GV: yêu cầu HS viết chương trỡnh : ”Tính tổng

của n số tự nhiên đầu tiên”vào máy

- HS: gõ chương trình, chạy thử chương trình,

và báo cáo kết quả

- GV: Hỗ trợ học sinh trong quá trình thực

hành

- Sau khi kết quả chạy chương trình đã

đúng, gv yêu cầu học sinh chữa bài của mình

đã làm ở nhà cho đúng theo chương trình đã

chạy

GV: yờu cầu HS: Viết chương trình tìm xem có

Bài 1: Tính tổng của n số tự nhiên đầu tiên

Program tinh_tong;

Uses crt;

Var i, n: integer; tong: longin; Begin

Clrscr;

Tong:=0;

Writeln(‘Nhap vao so n’); readln(n);

For i:=1 to n do Tong: = Tong+i;

Writeln(‘Tong của’, n,’so tu nhien dautien la’,tong);

Readln;

End

2 Viết chương trình tìm xem có bao nhiêu

số dương trong n số nhập vào từ bàn phím

Trang 9

bao nhiêu số dương trong n số nhập vào từ bàn

phím

HS: Viết chương trỡnh

GV: Quan sỏt, hướng dẫn , sửa sai cho HS

Program tinh_so_cac_so_duong;

Uses crt;

Var i,A, dem, n: integer; Begin

Clrscr;

Dem:=0;

Writeln(‘Nhap vao so n’); readln(n); For i:=1 to n do

begin writeln(‘nhap vao so thu’,i); readln(A);

if A>0 then dem:=dem+1;

end;

Writeln(‘So cac so duong la’,dem); Readln;

End

Hoạt động 2: Bảng cửu chương.

- GV: Đưa ra nội dung của bài toán

- HS: Nghiên cứu bài toán, tìm input và

output

- GV: yêu cầu học sinh đọc hiểu chương

trình

- HS: đọc, phân tích câu lệnh tìm hiểu hoạt

động của chương trình

- GV: yêu cầu một học sinh đứng tại vị trí

trình bày hoạt động của chương trình, các

nhóm khác cùng tham gia phân tích

- HS: tham gia hoạt động của giáo viên

- GV: yêu cầu học sinh lập bảng hoạt động

của chương trình theo mẫu:

Giả sử N=2:

Bước i i<=10 Writeln(n,’.’,i,’=’,n*i)

- HS: các nhóm lập bảng và đại diện nhóm

báo cáo kết quả

- GV: nhận xét

- GV: cho chương trình chạy trên máy, yêu

cầu học sinh quan sát kết quả

HS: Thực hiện

Bài 2: 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, và dừng màn hình để có thể quan sát kết quả Program Bang_cuu_chuong;

Uses crt;

Var i, n: integer; Begin

Clrscr;

Writeln(‘Nhap vao so n’); readln(n); Writeln(‘Bang nha’,n);

Writeln;

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

Readln;

End

Hoạt động 3: Làm đẹp màn hình kết quả bằng lệnh gotoxy, where

- Giáo viên cho chạy kết quả của bài thực

hành Bang_cuu_chuong Yêu cầu học

Bài 2 sgk (T63) a) Giới thiệu lệnh gotoxy(), wherex

Trang 10

sinh quan sát kết quả và nhận xét

khoảng cách giữa các hàng, cột

- HS: quan sát và đưa ra nhận xét

- ? Có cách nào để khoảng cách giữa các

hàng và các cột tăng lên?

- GV: Giới thiệu câu lệnh gotoxy và

where

- GV: yêu cầu học sinh mở chương trình

Bang_cuu_chương và sửa lại chương

trình theo bài trên màn hình của giáo

viên

- HS: gõ chương trình vào máy, sửa lỗi

chính tả, chạy chương trình, quan sát kết

quả

- GV: yêu cầu học sinh quan sát kết quả

và so sánh với kết quả của chương trinh

khi chưa dùng lệnh gotoxy(5, wherey)

- HS: quan sát và nhận xét

- Gotoxy(a,b) Trong đó: a là chỉ số cột, b là chỉ số hàng

- ý nghĩa của câu lệnh là đưa con trỏ về cột a hàng b

- Wherex: cho biết số thứ tự của cột, wherey cho biết số thứ tự của hàng

* Lưu ý: Phải khai báo thư viện crt trước khi sử dụng hai lệnh trên

a) Chỉnh sửa chương trình như sau:

Program Bang_cuu_chuong;

Uses crt;

Var i, n: integer; Begin

Clrscr;

Writeln(‘Nhap vao so n’); readln(n);

Writeln(‘Bang nha’,n);

Writeln;

For i:=1 to 10 do begin

gotoxy(5, wherey);

Writeln(n,’x’,i:2,’=’,n*i:3);

Readln;

End

Hoạt động 4: sử dụng lệnh For lồng trong for

- GV: giới thiệu cấu trúc lệnh for lồng,

hướng dẫn học sinh cách sử dụng lệnh

- HS: ghi chép cấu trúc và lĩnh hội

- GV: đưa nội dung chương trình bài thực

hành 3 lên màn hình, yêu cầu học sinh

đọc chương trình, tìm hiểu hoạt động

của chương trình

- HS: hoạt động theo nhóm, tìm hiểu hoạt

Bài 3 SGK (T64)

a) Câu lệnh for lồng trong for

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

<giá trị cuối> do

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

<giá trị cuối> do

< câu lệnh>;

Program Tao_bang;

Trang 11

động của chương trinh, đại diện của

nhóm báo cáo kết quả thảo luận

- GV: cho chạy chương trình

- HS : quan sát kết quả trên màn hình

Uses crt;

Var i,j: byte; Begin

Clrscr;

For i:=1 to 9 do Begin

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

Writeln;

End;

Readln;

End

IV Củng cố , hướng dẫn học ở nhà

1 Củng cố

TỔNG KẾT

1 Cấu trúc lặp với số lần lặp biết trước được thể hiện bằng câu lệnh Pascal for…do

2 Giống như các câu lệnh rẽ nhánh if…then, các câu lệnh for…do cũng có thể lồng trong nhau Khi đó các <biến đếm> trong các câu lệnh lặp phải khác nhau.

3 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à WhereY cho biết số thứ tự của hàng đang có con trỏ

4 Có thể kết hợp câu lệnh GotoXY(a,b) với các hàm chuẩn WhereX WhereY để

điều khiển vị trí của con trỏ trên màn hình

2 Hướng dẫn học

-Nhận xét rút kinh nghiệm giờ thực hành

- Y/c học sinh về nhà sử dụng lệnh gotoxy để chỉnh sửa lại bài thực hành số 3 cho kết quả

in ra màn hình đẹp

Tuaàn : 23 – Tieỏt 45,46

Trang 12

Ngày dạy :

Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC I.Mục tiêu:

1.Kiến thức

- Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước 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 với số lần chưa biết trước để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn;

2 Kĩ năng

- Nhận biết được đâu là hoạt động lặp với số lần chưa biêt trước.

3 Thái độ

- Nghiêm túc trong quá trình nghiên cứu và thực hành

II Chuẩn bị

GV: SGK, máy chiếu, phim trong các ví dụ về chương trình

HS: Xem trước bài ở nhà

III Tổ chức hoạt động dạy và học

1 Ổn định

2 Kiểm tra bài cũ

Viết thuật toán tính tổng 100 số tự nhiên đầu tiên 1,2,3,…,99,100

Trả lời

Bước 1 SUM  0; i  0.

Bước 2 i  i + 1.

Bước 3 Nếu i ≤ 100, thì SUM  SUM + i và quay lại bước 2.

Bước 4 Thông báo kết quả và kết thúc thuật toán.

3 Bài mới

Hđ 1

GV : y/c hs đọc ví dụ 1sgk/67

HS : 2-3 hs đọc ví dụ sgk

GV : Phân tích ví dụ

HS : chú ý lắng nghe

GV : Hướng dẫn hs xây dựng thuật toán

HV : Nghe giáo viên hướng dẫn, sau đó tự

xây dựng thuật toán

GV : Chạy tay cho học sinh xem ( Chỉ nên

chạy tay thử từ 1 đến 10 )

Hs : Chú ý nghe

Hs ghi vở ví dụ 2

1 Các hoạt động lặp với số lần chưa biết trước

a/ Ví dụ 1(sgk).

b/ Ví dụ 2 : Nếu cộng lần lượt n số tự nhiên

đầu tiên (n = 1, 2, 3, ), Cần cộng bao nhiêu số

tự nhiên đầu tiên để ta nhận được tổng T n nhỏ nhất lớn hơn 1000?

Ngày đăng: 29/03/2021, 14:53

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

w