1. Trang chủ
  2. » Giáo án - Bài giảng

Bài 7. Câu lệnh lặp

8 141 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 88 KB

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

Nội dung

Bài 7. Câu lệnh lặp tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực kinh tế,...

Trang 1

Ngµy so¹n: 12/01/2017

Tiết 39-40-41-42-43

CHỦ ĐỀ 2: LẶP VỚI SỐ LẦN ĐỊNH TRƯỚC

Số tiết dạy: 5

Địa điểm Lớp học Lớp học Lớp học Phòng máy Phòng máy Ngày dạy

Sĩ số lớp 8A

8B

Tên HS

vắng

8A 8B

1 Mục tiêu

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

Biết được các tình huống sử dụng lệnh lặp

Kĩ năng

Viết đúng lệnh lặp với số lần định trước.

Thái độ:

Rèn tính cẩn thận, chính xác, thái độ nghiêm túc khi học tập

Năng lực cần hướng tới

Viết được chương trình có sử dụng lệnh lặp với số lần định trước

2 Phương pháp:

- Thuyết trình-trực quan

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

3 Chuẩn bị:

Giáo viên: Bảng phụ, SGK, phòng máy, máy chiếu

Học sinh: Đọc bài trước khi đến lớp.

Trang 2

4 Tổ chức dạy học :

Hoạt động khởi động:

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

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à

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?

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

Hoạt động hình thành kiến thức:

1 Chuyển giao nhiệm vụ học tập:

* Câu lệnh lặp - một lệnh thay thế 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

Vậy khi bạn vẽ 1 hỡnh vuụng đó thực hiện bao nhiờu thao tỏc?

VD1: Giả sử cần vẽ 3 hình vuông có cạnh 1 đơn vị Mỗi hình vuông là ảnh của

hình bên trái nó dịch chuyển 1 khoảng các 2 đơn vị Vậy ta cần bao nhiờu thao tỏc?

Mụ tả thuật toỏn?

Bớc 1: vẽ hình vuông(vẽ liên tiếp 4 cạnh và trở về đỉnh ban đầu)

Bớc 2: Nếu số hình vuông đã đợc vẽ ít hơn 3 , di chuyển bút vẽ về bên phải 2 đơn vị

và trở lại bớc 1; ngợc lại thì kết thúc thuật toán

Riêng với 1 bài toán vẽ hình vuông thì thao tác chính là vẽ bốn cạnh bằng

nhau,hay lặp lại 4 lần thao tác vẽ đoạn thẳng

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

* Tỡnh huống dẫn đến cõu lệnh lặp

VD2: Mụ tả thuật toỏn tớnh tổng cỏc số tự nhiờn từ 1→ 100: S= 1+2+3+ … + 100

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

Bước 2: i← i + 1

Trang 3

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

2 Thùc hiÖn nhiÖm vô häc tËp

* Cấu trúc 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

+ 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

VD 3: Lệnh lặp nào sau đây là đúng?

A.For <biến đếm>= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>

B.For <biến đếm>:= <giá trị đầu> to <giá trị cuôí> do <câu lệnh>

C.For <biến đếm>:= <giá trị cuôí> downto <giá trị đầu> do <câu lệnh>

D.For <biến đếm>: <giá trị cuôí> downto <giá trị đầu> do <câu lệnh>

VD 4: Câu lệnh pascal nào sau đây là hợp lệ?

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

3 B¸o c¸o kÕt qu¶ vµ th¶o luËn

* VÝ dô vÒ c©u lÖnh lÆp

VD 5: Hãy chỉ ra các lỗi trong các câu lệnh sau đây:

a) s := 10; for x := 10 to 1 do s := x + 5;

c) s=0; for i:=1 to 10 do s=s+i;

VD 6: Cho biết kết quả sau khi chạy đoạn chương trình sau:

s:=0;

For i:=1 to 5 do

Trang 4

Begin j:=i+5;s:=s+j; end;

4 Đánh giá kết quả thực hiện nhiệm vụ học tập

VD 7 :

Yờu cầu HS chia lớp hoạt động nhúm

Nhúm 1,3 : Viết chương trỡnh in ra màn hỡnh thứ tự lần lặp

Nhúm 2,4: Viết chương trỡnh ghi nhận vị trớ 10 chữ O rơi từ trờn xuống

Chương trỡnh mong muốn nhận được như sau:

Chuong trỡnh in ra màn hỡnh thứ tự lần lặp

Program lap;

var i:integer;

begin

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

end.

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 đơn giản Writeln(‘O’) và Delay(200) đợc đặt trong từ khoá BEGIN và END để tạo thành câu lệnh ghép trong PASCAL

VD 8:Chương trỡnh pascal sau sẽ in ra màn hỡnh nội dung gỡ?

Var i: integer;

BEGIN

For i:=1 to 10 do Writeln(‘Day la lan lap thu ‘,i);

Readln;

END

Hoạt động luyện tập

Trang 5

VD 9: Yêu cầu HS hoạt động nhóm viết chương trình tính tổng của 100 số tự

nhiên đầu tiên Đây là chương trình đầu tiên về câu lệnh lặp, chủ yếu để học sinh suy nghĩ và làm quen Chương trình mong muốn nhận được như sau:

Program tinh_tong;

var s,i:integer;

begin

s:=0;

for i:= 1 to 100 do s:=s+i;

writeln(‘Ket qua la: ’,s); readln;

end.

* TÝnh tæng vµ tÝch b»ng c©u lÖnh lÆp

Mô tả thuật toán tính tổng các số tự nhiên từ 1→ 100?

Từ đó mô tả thuật toán tính tổng các số tự nhiên từ 1 đến n? thuật toán tính tích của các số tự nhiên từ 1 đến n( n!)?

Chương trình mong muốn nhận được như sau:

VD 9: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.

VD 10: 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;

Trang 6

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

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

readln;

end.

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

VD 11: Sử dụng cõu lệnh For… do… viết chương trỡnh tớnh tổng cỏc số tự nhiờn

trong khoảng 100 đến 1000

Hoạt động vận dụng:

* Thực hành

Yờu cầu HS mở mỏy gừ lại các bài tập trờn, sau khi gừ xong mỗi bài cần thử với 3

bộ test và kiểm tra kết quả

VD 12 : Viết chương trỡnh in ra tất cả cỏc ước của một số n (Với n được nhập từ

bàn phớm)

a Hướng dẫn:

- Cho biến i chạy từ 1 đến n Nếu n chia hết cho i thỡ in ra i

Chương trỡnh mong muốn:

Program Tim_uoc;

uses crt;

Var n, i: integer;

Begin

clrscr;

Write('Nhap so n ='); readln(n);

For i:=1 to n do if n mod i = 0 then write(i:3,',');

readln

end

* Thực hành

Yờu cầu HS mở mỏy gừ lại bài tập trờn

* Hướng dẫn thực hành

VD 13: Viết chơng trình nhập vào từ bàn phím 2 số x,y Nếu x<y thì đếm và in ra

các số chia hết cho 3 trong khoảng từ x đến y, nếu x > y thì in số 0 ra màn hình

HS nghiên cứu bài toán, tìm input và output

GV phân tích bài toán và hớng dẫn HS viết 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

Trang 7

GVyê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

* Thực hành

HS gõ bài tập lên máy và test kết quả

Program baitap;

Uses crt;

Var i, x,y,dem: integer;

Begin

Clrscr;

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

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

If x>y then write(‘0’) else

Begin

Dem:=0;

For i:=x to y do if i mod 3=0 then

Begin write(i:6); dem:=dem+1 end;

Writeln(’Co tat ca ’,dem,’ so chia het cho 3’);

End;

Readln;

End

Hoạt động tỡm tũi mở rộng:

VD 14: Viết chương trỡnh in ra cỏc số lẻ nhỏ hơn hoặc bằng n (Với n được nhập).

Hướng dẫn:

- Cho biến i chạy từ 1 đến n

- Nếu i chẵn ( i chia 2 dư 0) thỡ in ra số n

Chương trỡnh mong muốn

Program In_So_Le;

Uses crt;

var i,n: integer;

Begin

Clrscr;

Write('Nhap so n ='); readln(n);

For i:=1 to n do

if i mod 2 =1 then Write(i:3,',');

readln

Trang 8

VD 15: Viết chương trình in ra tổng các số lẻ nhỏ hơn hoặc bằng n ( Với n được

nhập)

Hướng dẫn:

- Cho S = 0

- Cho biến i chạy từ 1 đến n

- Nếu i chẵn ( i chia 2 dư 0) thì cộng thêm i vào S

- In ra S

Chương trình mong muốn:

Program In_So_Le;

Uses crt;

var S,i,n: integer;

Begin

Clrscr;

Write('Nhap so n ='); readln(n);

S:= 0;

For i:=1 to n do if i mod 2 =1 then S:= S+i;

Writeln('Tong cac so le nho hon ',n,' la: ',S);

readln

end

Chú ý: Ta dùng biến S để cộng dồn nên nó được khởi tạo giá trị đầu bằng 0.

16/01/2017 BGH duyÖt

Đặng Thị Thanh Xuân

Ngày đăng: 18/11/2017, 11:29

TỪ KHÓA LIÊN QUAN

w