1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo án Tin Học 11Cấu trúc lặp( tiết 3) doc

7 774 15

Đ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 7
Dung lượng 135,62 KB

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

Nội dung

MỤC ĐÍCH, YÊU CẦU: Sau kết thúc bài: - Hiểu được cấu trúc lặp với số lần chưa biết trước hay cấu trúc lặp kiểm tra điều kiện trước; - Biết cách vận dụng đúng đắn cấu trúc lặp này vào

Trang 1

Giáo án Tin Học 11

Cấu trúc lặp( tiết 3)

I MỤC ĐÍCH, YÊU CẦU:

Sau kết thúc bài:

- Hiểu được cấu trúc lặp với số lần chưa biết trước hay cấu trúc lặp kiểm tra điều kiện trước;

- Biết cách vận dụng đúng đắn cấu trúc lặp này vào tình huống cụ thể;

- Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp với số lần lặp chưa biết trước;

- Viết đúng các lệnh lặp với số lần lặp chưa biết trước;

- Viết được thuật toán của bài toán đơn giản sử dụng cấu trúc lặp trên

II PHƯƠNG PHÁP, PHƯƠNG TIỆN:

1 Phương pháp:

khảo và các tư liệu khác (nếu có) Nếu nhà trường có máy chiếu, có thể chuẩn bị các slide để trình chiếu hoặc chạy thử đoạn chương trình

để cả lớp cùng theo dõi

-Hình thức giảng dậy: thuyết trình, vấn đáp, phân tích và giải thích (nếu cần)

2 Phương tiện:

- Sách giáo khoa tin học lớp 11;

- Vở ghi lý thuyết và bài tập lớp 11;

- Giáo án

- Sách tham khảo và các trang thiết bị tin học như máy tính, máy chiếu (nếu có)

III Tiến trình lên lớp

1 ổn định lớp: (1 phút)

Yêu cầu lớp trưởng ổn định lớp và báo cáo sĩ số

2 Kiểm tra bài cũ: (4 phút)

Câu hỏi:

Cấu trúc lặp với số lần biết trước có mấy dạng ?

Phân biệt hai dạng của cấu trúc lặp với số lần lăp biết trước ? Nêu những điều cần lưu ý đối với biến điều khiển ?

3 Gợi động cơ: (3 phút)

Chúng ta đã được học một dạng của cấu trúc lặp đó là cấu trúc lặp với số lần biết trước Cấu trúc này thể hiện qua câu lệnh for-do Hôm nay chúng ta học dạng cấu trúc lặp còn lại đó là lặp với số lần chưa biết trước Lặp với số lần chưa biết trước dùng trong trường hợp mà ta không biết trước số lần lặp nhưng ta biết trước một điều kiện để dừng công việc lặp đó Vậy cấu trúc lặp này sử dụng cú pháp lặp như thế nào ? Có gì tương quan giữa cú pháp này với cú pháp của cấu trúc lặp

Trang 2

Giáo án Tin Học 11

với số lần biết trước, ta có thể chuyển hóa giữa hai cấu trúc lặp hay không ?

Các vấn đề này sẽ được chúng ta giải quyết trong tiết học hôm nay

4 Nội dung bài học:

Số

thứ

tự

gian

1 Giới thiệu về cấu trúc

lặp với số lần chưa biết

trước:

Có hai dạng:

Dạng 1: trong khi

<điều kiện> còn đúng thì

còn thực hiện <công

việc>;

Dạng 2: Thực hiện

<công việc> trong khi

<điều kiện> đúng

Thuyết trình:

Trong dạng 1:

Đầu tiên kiểm tra và tính giá trị của điều kiện, nếu điều kiện đúng thì thực hiện công việc (một lần)

Giá trị của điều kiện sẽ được thay đổi sau mỗi lần thực hiện công việc đến một lúc nào đó điều kiện lặp không còn đúng nữa thì cấu trúc lặp sẽ được kết thúc Trong trường hợp cấu trúc lặp không làm thay đổi giá trị của điều kiện thì cấu trúc lặp sẽ kéo dài mãi mãi (vòng lặp vô hạn) Để thoát khỏi vòng lặp vô hạn, trong công việc cần có câu lệnh

rẽ nhánh thoát khỏi vòng lặp vô hạn khi thoả mãn điều kiện rẽ nhánh

Trong dạng 2:

Tiến hành ngược lại, công việc được thực hiện trước, sau đó mới kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện công việc, ngược lại kết thúc lặp

Trong công việc cần có lệnh thoát khỏi vòng lặp

Ở đây chúng ta chỉ nghiên cứu dạng lặp 1

5 phút

2 Cú pháp cấu trúc lặp

với số lần chưa biết

trước

Thuyết trình:

Câu lệnh sau từ khoá do được thực hiện khi biểu

5 phút

Trang 3

Giáo án Tin Học 11

Trong Pascal, cú pháp

của dạng 1 như sau:

While <điều kiện>

do <câu lệnh>

trong đó

điều kiện là biểu thức

logic

câu lệnh là một câu lệnh

đơn hay ghép Ta có sơ

đồ biểu diễn như sau:

thức điều kiện còn nhận giá trị true Biểu thức điều kiện được tính giá trị trước khi câu lệnh được thực hiện, nếu biểu thức điều kiện đã nhận giá trị false ngay từ đầu thì câu lệnh chưa được thực hiện lần nào Nếu biểu thức điều kiện luôn nhận giá trị true thì câu lệnh được thực hiện mãi, ta gọi

là vòng lặp vô hạn

3 Chương trình với cấu

trúc lặp while-do:

Chương trình:

program tong_1b;

uses crt;

var s:real;

a, N: integer;

begin

write(‘ hay nhap gia tri

a vao’);

readln(a);

s:= 1.0/a; N:= 0;

{bước 1}

Yêu cầu học sinh:

Đọc và tìm hiểu chương trình trong thời gian giáo viên viết chương trình lên bảng

Thuyết trình:

Phân tích và giải thích các lệnh trong chương trình:

Chương trình này xây dựng dựa trên thuật toán tong_1b với số lần lặp chưa biết trước nhưng biết trước được điều kiện dừng vòng lặp Khi

1/(a + N)<0.0001 thì thực hiện lặp, còn ngược lại thì kết thúc lặp

Bước 1 của thuật toán:

s:= 1.0/a; N:= 0;

while not (1/(a + N)<0.0001) do

Bước 2 của thuật toán

Với a được đưa vào từ bàn phím và N nhận giá trị ban

kiện trên thoả mãn thì nó đi

7 phút

Trang 4

Giáo án Tin Học 11

while not

(1/(a + N)<0.0001) do

{bước 2}

Begin

N:= N + 1; {bước 3}

S:=S + 1.0/(a+N);

{bước 4}

End;

Write (‘tong s la: ‘,

S:8:4);

{bước 5}

Readln

End

trong vòng lặp while-do:

tăng N lên 1 (bước 3) và

cộng vào tổng s một số

hạng 1.0/(a+N) ( bước 4)

Sau khi tính toán hoàn tất thì nó sẽ quay lên kiểm tra điều kiện Nếu thoả mãn tiếp tục thực hiện Còn ngược lại nó sẽ thoát khỏi vòng lặp

Với s, ban đầu được gán giá trị là 1.0/a Khi vào

lượt được cộng thêm vào các số hạng dạng 1/(a+N) (N=1, 2, 3 ) và nó sẽ giữ giá trị thay đổi khi ra khỏi vòng while-do

Bước 5:

Write (‘ tong s la:’, s:8:4);

Đưa ra màn hình tổng s và kết thúc chương trình

4 Cấu trúc while-do và

for-do

Cấu trúc lặp while-do

While <điều kiện>

do <câu lệnh>

Cấu trúc lặp for-do

Dạng lặp tiến:

For <biến đếm>:=

<giá trị đầu > to < giá

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

>;

Dạng lặp lùi:

For < biến đếm >:=

<giá trị cuối > downto <

giá trị đầu > do

< câu lệnh >;

Yêu cầu: Yêu cầu học sinh liên hệ hai cấu trúc này

Thuyết trình:

Nhận thấy rằng cấu trúc for-do là dạng lặp với điều kiện cho trước nên số lần lặp là xác định, cố định Ở cấu trúc này sử dụng biến đếm hay biến điều khiển để duy trì vòng lặp Mỗi lần tăng hay giảm biến điều khiển là một lần thực hiện các lệnh trong vòng lặp

Quá trình lặp bắt đầu khi biến đếm nhận giá trị đầu

và kết thúc khi nó nhận giá trị cuối.Và một điều cần lưu ý là giá trị của biến đếm trong vòng for tự điều

12 phút

Trang 5

Giáo án Tin Học 11

chỉnh Vì vậy câu lệnh viết sau do không được làm thay đổi giá trị biến đếm

Cấu trúc while-do chưa biết trước số lần lặp Do đó

nó có thể kết thúc vòng lặp bất cứ lúc nào điều kiện duy trì vòng lặp không còn thoả mãn Nếu biểu thức điều kiện đã nhận giá trị false ngay từ đầu thì câu lệnh chưa được thực hiện lần nào

Tóm lại cả while-do và for-do đều là cú pháp xây dựng để thực hiện các thao tác lặp mang lại hiệu quả cao cho việc lập trình

Điểm khác nhau cơ bản giữa chúng : while-do thì

số lần lặp chưa xác định trước nhưng biết trước điều kiện có thể dừng vòng lặp, còn lệnh for-do thì số lần lặp đã xác định, nó sử dụng biến đếm để duy trì vòng lặp, cứ mỗi lần biến đếm tăng là một lần các lệnh trong vòng lặp s được thực hiện, vòng lặp sẽ dừng lại khi nào biến đếm nhận giá trị cuối

Một câu hỏi đặt ra là liệu có thể chuyển từ cấu trúc lặp for-do về cấu trúc lặp while-do hoặc chuyển ngược lại không ?

Yêu cầu học sinh trả lời

Phân tích và trả lời:

Cấu trúc while-do là cấu trúc lặp không định trước

số lần lặp nên không thể chuyển về cấu trúc lặp với

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

Trang 6

Giáo án Tin Học 11

Nhưng ngược lại thì ta có thể chuyển từ cấu trúc lặp với số lần lặp biết trước for-do về cấu trúc lặp while-do

Vi dụ:

for i := m to n do

S := S + i;

chuyển về while-do:

i := m;

while (i >= m and i <= n) begin

S := S+ i;

i := i + 1;

end;

5 Ví dụ 2:

Hướng dẫn học sinh

tìm hiểu ví dụ hoặc cũng

có thể cho học sinh về

nhà tìm hiểu, tiết học sau

đó s kiểm tra

Ví dụ:

UCLN của hai số nguyên

dương m và n

Chương trình thể hiện

thuật toán tìm UCLN

Program UCLN;

Uses crt;

Var m, n: integer;

Begin

Clrscr;

Write (‘nhập vào m, n’);

Readln (m, n);

While m <> n do

If m > n then m:= m - n;

Else n := n - m;

Writeln ( ‘ UCLN của hai

so la:’, m);

Readln

End

Thuật toán:

Bước 1: Nhập m, n;

Bước 2: nếu m = n thì lấy giá trị chung này làm UCLN rồi chuyển đến bước 5;

Bước 3:

nếu m > n thì

Bước 4: quay lại bước 2;

Bước 5: Đưa ra kết quả trên màn hình

2 phút

IV Củng cố bài học (3 phút)

Giáo viên củng cố kiến thức của bài học:

Trang 7

Giáo án Tin Học 11

- Nhắc lại cú pháp của dạng lặp với số lần chưa biết trước;

- Nhấn mạnh tới sự liên hệ giữa cấu trúc while-do và cấu trúc for-do để giúp học sinh có cái nhìn tổng quan về cấu trúc lặp và có thể phân biệt được 2 cấu lặp này một cách rõ ràng hơn Từ đó, có thể

áp dụng các cấu trúc lặp vào các trường hợp phù hợp

V Bài tập về nhà (1 phút)

- Xem lại các ví dụ trong lớp

- Các bài tập trong sách bài tập

VI Nhận xét của giáo viên về tiết học: (2 phút)

- Ý thức học tập của lớp

- Hiệu quả học tập

- Rút kinh nghiệm sau tiết học

Ngày đăng: 11/08/2014, 06:21

TỪ KHÓA LIÊN QUAN

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

w