Ngµy so¹n

01/01/2018

 

   Ngµy d¹y

Líp

       11B1

      11B2

Ngµy

5/01/2018

6/01/2018

Điều chỉnh

 

 

 

  

Tiết 18: CẤU TRÚC LẶP (tiết 1/3)

I. MỤC TIÊU

1. Kiến thức

-         Hiểu nhu cầu của cấu trúc lặp trong biễu diễn thuật toán.

-         Biết cấu trúc chung của lệnh lặp với số lần biết trước For trong NNLT Pascal

-         Biết sử dụng đúng 2 dạng lệnh lặp For.

2. Kĩ năng:

-         Bước đầu sử dụng được lệnh lặp For để lập trình giải quyết 1 số bài toán đơn giản.

 3. Thái độ:

-         Học tập nghiêm túc.

4. Phát triển năng lực                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

-         Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ thông tin, năng lực giải quyết vấn đề.

-         Mô hình hoá các tình huống trong thực tế bằng cấu trúc For - Do.

II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC

1. Phương pháp: Thuyết trình, vấn đáp.

2. Phương tiện: Máy chiếu, máy tính, phòng máy, bảng.

III. LƯU Ý SƯ PHẠM.

-         Cần tổng kết có ba loại cấu trúc điều khiển: tuần tự, rẽ nhánh và lặp.

-         Bước đầu hình thành khái niệm về lập trình có cấu trúc.

IV. TIẾN TRÌNH BÀI DẠY.

1.  Ổn định lớp: (Thời lượng:........)

2. Kiểm tra bài cũ, gợi động cơ (Thời lượng:..........)

Gọi 2 HS lên bảng

  HS1. Trình bày cấu trúc rẽ nhánh? Sự khác nhau giữa các dạng rẽ nhánh đó? (HS1)

  HS2. Viết CT nhập vào 2 số a, b và thực hiện đưa ra màn hình giá trị của số nhỏ hơn.(HS2)

3. Nội dung bài giảng.

Hoạt động 1: Tìm hiểu ý nghĩa cấu trúc lặp

Hoạt động của Giáo viên và Học sinh

Nội dung

GV : Đưa ra một số VD và yêu cầu học sinh tìm cách để lập trình giải các bài toán này .

VD1

Cách giải :

 

-       Bắt đầu S được gán giá trị 1/a.

-       Tiếp theo mỗi lần cộng thêm vào S là 1/(a+N) với N = 1, 2, 3, …

-       Với bài toán 1, việc cộng thêm dừng khi N = 100, => số lần lặp đã biết trước.

-       Với bài toán 2, việc cộng thêm dừng khi 1/(a+N) < 0.0001, => số lần lặp chưa biết.

Nhận xét:

1. Lặp

- VD 1: Xét 2 bài toán như sau với a > 2 là số nguyên cho trước :

Bài toán 1 : Tính tổng

S1=

Bài toán 2 : Tính Tổng

S2=

Cho đến khi điều kiện được thoả mãn 

 

 

1

 


- S1 lặp 100 lần

- S2 chưa biết số lần lặp và chỉ kết thúc khi gặp điều kiện

 

HS:

- Nhập họ tên hoặc SBD

- Nhập điểm

- Tính tổng điểm TB

Nhận xét: Công việc trên sẽ phải lặp đi lặp lại 50 lần để tính điểm cho 50 HS hoặc khi có một điều kiện nào đó xảy ra (nhấn phím Enter)

 

 

 

 

 

 

VD2: Chương trình tính điểm cho 50 HS trong một lớp, có những thao tác nào phải lặp lại?

 

 

 

 

Để giải quyết tình huống trên trong Pascal  dùng 2 dạng cấu trúc lặp

- Lặp với số lần biết trước .

- Lặp với số lần không biết trước .

 

3. Hoạt động 3: Tìm hiểu cấu trúc lặp For - do trong NNLT Pascal

Hoạt động của Giáo viên và Học sinh

Nội dung

1. GV: Yêu cầu HS quan sát 2 cách giải bài toán SGK và nhận xét

Thuật toán tổng 1a

- Bắt đầu N=0 sau mỗi lần lặp N:=N+1 (tăng lên 1) cho đến khi N>100 thì kết thúc lặp

- N: biến đếm

Thuật toán tổng 1b

- Bắt đầu N=101 sau mỗi lần lặp N:=N-1 (giảm đi 1) cho đến khi N<1 thì kết thúc lặp

- N: biến đếm

 

Giải thích:

-                     Hỏi: Ý nghĩa của á trị đầu>, dữ liệu của chúng?

- Để làm giới hạn cho biến đếm, cùng kiểu với biến đếm

Trong thuật toán 1a:

-

GV: Yêu cầu HS lên bảng viết sơ đồ khối cho cấu truc For -do dạng tiến 

 

 

 

 

 

2. Lặp có số lần biết trước và câu lệnh

for – do

Xét bài toán 1:Tính tổng với 2 cách giải

S=

 

 

 

 

 

Trong Pascal, có 2 loại câu lệnh lặp có số lần biết trước

a. Dạng lặp tiến

FOR

 

 

Sơ đồ:

 

 

 

 

 

 

 

 

 

 

 

1

 


 

 

 

 

 

 

Trong thuật toán 1b :

-

GV: Yêu cầu HS lên bảng viết sơ đồ khối cho cấu truc For -do dạng lùi

 

 

 

 

 

 

 

 

 

 

 

 

 

b.Dạng lùi

FOR

Sơ đồ:

V. ĐÁNH GIÁ CUỐI BÀI

1. Nội dung đã học

 Cấu trúc chung của câu lệnh lặp For. Sơ đồ thực hiện của lệnh lặp For

2. Câu hỏi, bài tập về nhà

 - Sử dụng câu lệnh For hoàn thành chương trình bài toán 1 đã nêu ở đầu tiết.

 - Xem trước phần ví dụ của nội dung cấu trúc lặp có số lần biết trước.

VI. RÚT KINH NGHIỆM, BỔ SUNG:

.....................................................................................

.....................................................................................

.....................................................................................

.....................................................................................

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 


Ngµy so¹n

02/01/2018

 

   Ngµy d¹y

Líp

       11B1

      11B2

Ngµy

11/01/2018

10/01/2018

Điều chỉnh

 

 

Tiết 19: CẤU TRÚC LẶP (tiết 2/3)

I. MỤC TIÊU

1. Kiến thức

-         Hiểu nhu cầu của cấu trúc lặp trong biễu diễn thuật toán.

-         Biết cấu trúc chung của lệnh lặp với số lần biết trước For trong NNLT Pascal

-         Biết sử dụng đúng 2 dạng lệnh lặp For.

2. Kĩ năng:

-         Bước đầu sử dụng được lệnh lặp For để lập trình giải quyết 1 số bài toán đơn giản.

3. Thái độ:

-         Học tập nghiêm túc.

4. Phát triển năng lực                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

-         Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ thông tin, năng lực giải quyết vấn đề.

-         Diễn đạt cấu trúc For - Do trên NNLT.

II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC

1. Phương pháp: Thuyết trình, vấn đáp.

2. Phương tiện: Máy chiếu, máy tính, phòng máy, bảng.

III. LƯU Ý SƯ PHẠM.

-         Bước đầu hình thành khái niệm về lập trình có cấu trúc.

IV. TIẾN TRÌNH BÀI DẠY.

1.  Ổn định lớp: (Thời lượng:........)

2. Kiểm tra bài cũ, gợi động cơ (Thời lượng:..........)

-         HS: Trình bày cấu trúc For - do dạng tiến và dạng lùi?

3. Nội dung bài giảng.

Hoạt động 1: Rèn luyện kĩ năng vận dụng lệnh lặp For - do

Hoạt động của Giáo viên và Học sinh

Nội dung

GV: Yêu cầu HS dựa vào thuật toán tổng 1a và 1b để viết câu lệnh.

 

 

 

HS:

 

 

 

 

 

HS:

 

 

GV: Yêu cầu HS viết chương trình hoàn chỉnh

Program baitoan1;

Var a, N: Integer;

2. Lặp có số lần biết trước và câu lệnh

for – do

c. Một số VD

Ví dụ 1 : Viết câu lệnh lặp với số lần biết trước cho thuật toán tổng 1a:

 

s:=1/a;

for N:=1 to 100 do s:=s+1/(a+N);

 

Ví dụ 2 : Viết câu lệnh lặp với số lần biết trước cho thuật toán tổng 1b:

 

s:=1/a;

for N:=101 down to 1 do s:=s+1/(a+N);

 

 

 

 

1

 


      S: Real;

Begin

     Write('Nhap a=');

     Readln(a);

s:=1/a;

For N:=1 to 100 do

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

Write('Tong la:',s):

Readln

End.

 

 

 

 

 

GV: Hướng dẫn:

- Khai báo: M,N,S,i: biến nguyên

trong đó:

- M,N nguyên nhập từ bàn phím,

- S: biến tính tổng; có giá trị ban đầu S:=0;

- i:biến điều khiển vòng lặp

- giá trị đầu=M; giá trị cuối=N

=> câu lệnh lặp:

for i:=M to N do

điều kiện: i chia hết cho 3 hoặc cho 5

=> câu lệnh điều kiện:

(i mod 3=0) or (i mod 5=0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ví dụ 3: Viết lệnh lặp cho bài toán sau:

Nhập từ bàn phím 2 số nguyên dương M,N (M

 

=> câu lệnh lặp:

s:=0;

for i:=M to N do

if (i mod 3=0) or (i mod 5=0) then s:=s+i;

 

=> viết chương trình hoàn chỉnh.

Program VD3;

Var M,N,S,i: Integer;

 Begin

     Write('Nhap m,n=');

     Readln(m,n);

s:=0;

For i:=m to n do

         if (i mod 3=0) or (i mod 5=0) then s:=s+i;

Write('Tong la:',s):

Readln

End.

 

 

V. ĐÁNH GIÁ CUỐI BÀI (3phút)

1. Nội dung đã học

 Cấu trúc chung của câu lệnh lặp For- do. Sơ đồ thực hiện của lệnh lặp For - do và một số chương trình VD.

2. Câu hỏi, bài tập về nhà

 - Giải bài tập 5a, 6 sgk/51

1. Bài 5a/51: GV gợi ý và yêu cầu HS về nhà viết thành chương trình hoàn thiện

y=

hướng dẫn:

1

 


y=+++...+

- n: biến điều khiển vòng lặp

- giá trị đầu=1; giá trị cuối =50

- khởi tạo giá trị ban đầu cho biến tổng y:=0;

=> câu lệnh lặp:

for n:=1 to 50 do y:=y+1/(n+1);

- Xem trước phần nội dung cấu trúc lặp có số lần chưa biết trước.

VI. RÚT KINH NGHIỆM, BỔ SUNG:

.....................................................................................

.....................................................................................

.....................................................................................

.....................................................................................

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 


Ngµy so¹n

05/1/2018

 

   Ngµy d¹y

Líp

       11B1

      11B2

Ngµy

11/01/2018

11/01/2018

Điều chỉnh

 

 

  

Tiết 20: CẤU TRÚC LẶP (tiết 3/3)

I. MỤC TIÊU

1. Kiến thức

 - Biết được ý nghĩa của cấu trúc lặp có số lần lặp chưa biết trước

 - Biết được cấu trúc chung của lệnh lặp While trong NNLT Pascal.

2. Kĩ năng

 - Phân biệt được sự giống và khác nhau giữa cấu trúc lặp For và While.

 - Sử dụng đúng lệnh lặp While trong lập trình.

 - Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết một số bài toán đơn giản.

3. Thái độ:

          - Học tập nghiêm túc

4. Phát triển năng lực                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

-         Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ thông tin, năng lực giải quyết vấn đề.

-         Mô hình hoá các tình huống trong thực tế bằng cấu trúc While - Do.

II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC

1. Phương pháp: Thuyết trình, vấn đáp.

2. Phương tiện: Máy chiếu, máy tính, phòng máy, bảng.

III. LƯU Ý SƯ PHẠM.

-     Cần tổng kết có ba loại cấu trúc điều khiển: tuần tự, rẽ nhánh và lặp.

-     Bước đầu hình thành khái niệm về lập trình có cấu trúc.

-     Cần xây dựng các bài thực hành và tổ chức thực hiện tại phòng máy để học sinh đạt được những kĩ năng theo yêu cầu.

IV. TIẾN TRÌNH BÀI DẠY.

1.  Ổn định lớp: (Thời lượng:........)

2. Kiểm tra bài cũ, gợi động cơ (Thời lượng:..........)

-         viết câu lệnh lặp cho bài toán sau:

s= 1++++..+

đáp án:

s:=1;

for n:=2 to 50 do s:=s+1/n;

3. Nội dung bài giảng.

Hoạt động 1: Rèn luyện kĩ năng vận dụng lệnh lặp While

Hoạt động của Giáo viên và Học sinh

Nội dung

1. Hoạt động 1: tìm hiểu bài toán 2

Xét bài toán 2

Cách giải :

 

-       Bắt đầu S được gán giá trị 1/a.

-       Tiếp theo mỗi lần cộng thêm vào S là 1/(a+N) với N = 1, 2, 3, …

3. Lặp với số lần chưa biết trước và câu lệnh while – do

Bài toán 2 : Tính Tổng

S2=

Với điều kiện

 

1

 


-       Với bài toán 2, việc cộng thêm dừng khi 1/(a+N) < 0.0001, => số lần lặp chưa biết.

 

Thuật toán:

B1 : S :=1/a; N :=0;

B2 : Nếu 1/(a+N) < 0.0001 thì đưa ra s và kt

B3: N :=N +1;

B1: S := S+ 1/(a+N) rồi quay lại bước 2;

B2: Đưa kết qủa S ra màn hình rồi kết thúc

- Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn.

GV : Đưa ra cấu trúc câu lệnh While – Do Trong Pascal, giải thích ý nghĩa các thành phần.

HS : Lắng nghe và ghi chép.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Gv: yêu cầu học sinh viết câu lệnh lặp

Hs: lên bảng làm:

cách 2:

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

begin 

    n:=n+1;

    s:=s+1/(a+n);

end;

 

 

- Khai báo các biến: M,N:nguyên

- M,N nhập từ bàn phím

 

 

 

 

 

 

 

 

 

 

 

 

While<Điều kiện> Do <Câu lệnh>;   

 

Trong đó

- while,do: từ khoá

- Điều kiện là biểu thức quan hệ hoặc logic.

- Câu lệnh: có thể là câu lệnh đơn hoặc câu lệnh ghép.

 

 

 

 

 

 

 

 

 

 

Ý nghĩa : Khi điều kiện còn đúng thì còn thực hiện câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện.Nếu điều kiện sai thì thoát khỏi vòng lặp.

vd1:

s:=1/a; n:=0;

while (1/(a+n)>=0.0001) do

begin 

    n:=n+1;

    s:=s+1/(a+n);

end;

 

vd2:  tìm UCLN của 2 số nguyên dương M,N.

Hướng dẫn:

 

- Nếu M=N thì UCLN =M

- Nếu M<>N thì xét:

1

 


=> điều kiện vòng lặp tiếp tục là: M<>N.

đến khi M=N thì thoát khỏi vòng lăp.

 

Hs: lên viết chương trình hoàn chỉnh.

 

 

 

 

 

 

 

i=0 =>t=0

i=3 <20 =>t=0+3=3

i=i+3=3+3=6<20=>t=3+6=9

i=i+3=6+3=9<20=>t=9+9=18

i=i+3=9+3=12<20=>t=18+12=30

i=i+3=12+3=15<20=>t=30+15=45

i=i+3=15+3=18<20=>t+=45+18=63

i=i+3=18+3=21>20=> thoát khỏi vòng lặp

=>t=63

Nếu M>N thì M:=M-N;

ngược lại: N:=N-M;

=> câu lệnh lặp:

 

while M<>N do

if M>N then M:=M-N else N:=N-M;

 

Đưa kết quả:

write('ucln la:',M);

4.Một số ví dụ:

Bài 1: Đoán nhận kết quả của chương trình sau:

i:=0; t:=0;

while i<20 do

begin

    t:=t+i;

    i:=i+3;

end;

while(t);

 

đáp án: t=63

Bài2: 

đoán nhận kết quả:

t:=0;

for i:=1 to 10 do t:=t+i;

 

đáp án: 1+2+3+4+5+6+7+8+9+10=55

 

 

 

 

V. ĐÁNH GIÁ CUỐI BÀI

1. Nội dung đã học :

 - Nhắc lại cấu trúc câu lệnh lặp While

2. Câu hỏi, bài tập về nhà

 - Giải bài tập 5b, 7, 8 sgk trang 51.

Hướng dẫn bài 5b/ Trang 51

program Cau5bTrang51;

uses crt;

var e,u:real;

    n:integer;

begin

     clrscr;

     n:=1;

     u:=1/n;

     e:=1;

     while not(u<2.0E-6)do

1

 


        begin

             e:=e+u;

             n:=n*(n+1);

             u:=1/n;

        end;

     write('e(n)= ',e:8:2);

     readln

 

 - Đọc lại bài lệnh rẽ nhánh IF và làm các bài tập liên quan chuẩn bị cho tiết sau thực hành.

VI. RÚT KINH NGHIỆM, BỔ SUNG:

...............................................................................................................................................................

...............................................................................................................................................................

...............................................................................................................................................................

...............................................................................................................................................................

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 


Ngµy so¹n

10/1/2018

 

   Ngµy d¹y

Líp

       11B1

      11B2

Ngµy

18/01/2018

17/01/2018

Điều chỉnh

 

 

 

THỰC HÀNH CẤU TRÚC LẶP(T1)

I. MỤC TIÊU

1. Kiến thức

-     Sử dụng đúng lệnh lặp For để giải quyết một bài toán đơn giản.

-     Hiểu được nhu cầu của cấu trúc lặp trong biểu diễn thuật toán.

-     Kết hợp cấu trúc for - do và If then.

2. Kĩ năng

-     Vận dụng đúng đắn các dạng của lệnh lặp For

-     Viết đúng lệnh lặp For để mô tả được thuật toán của một số bài toán đơn giản.

3. Thái độ

-         Học tập nghiêm túc.

4. Phát triển năng lực                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

-         Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ thông tin, năng lực giải quyết vấn đề.

-         Diễn đạt cấu trúc For - Do trên NNLT.

II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC

    1. Phương pháp: hướng dẫn, làm mẫu, học sinh tự làm trên máy tính cá nhân

    2. Phương tiện: Máy chiếu, máy tính, phòng máy

III. LƯU Ý SƯ PHẠM.

-     GV hướng dẫn để HS chủ động hiểu được hoạt động của cấu trúc for - do và thực hành làm được một số bài tập lập trình đơn giản.

IV. TIẾN TRÌNH BÀI DẠY.

   1.  Ổn định lớp: (Thời lượng:........)

   2. Kiểm tra bài cũ, gợi động cơ (Thời lượng:..........)

-     Trình bày các dạng cấu trúc câu lệnh lặp với số lần biết trước?

   3. Nội dung bài thực hành

     Hoạt động 1: (15 phút) Rèn luyện kĩ năng vận dụng câu lệnh For -do ở 2 dạng

Bài 1 : Viết chương trình cho thuật toán tính tổng 1a, 1b trên máy tính sau đó chạy chương trình và cho ra nhận xét.

Cách 1: Sử dụng vòng lặp for ở dạng lặp tiến

program Tong_1a;

uses crt;

var S:real;

    a,N:integer;

begin

     clrscr;

     write('Hay nhap gia tri a: ');

     readln(a);

     S:=1.0/a;

          For N:=1 to 100 do

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

            writeln('Tong S la: ',S:8:4);

1

 

nguon VI OLET