Giao an tin hoc 11 (in2)

86
Giáo án tin học11 CHƯƠNG I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH Ngày soạn: 21/8/2007 Tiết 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH I. Mục đích, yêu cầu. Hiểu được khả năng của ng 2 lập trình bậc cao, phân biệt được với ng 2 máy và hợp ngữ. Hiểu ý nghĩa và nhiệm vụ của chtrình dịch. Phân biệt được thông dịch và biên dịch. Biết các thành phần cơ bản của ng 2 lập trình: bảng chữ cái, cú pháp, ngữ nghĩa. Hiểu và phân biệt được các thành phần này II. Lên lớp 1. Ổn định tình hình lớp. Giới thiệu làm quen với HS của lớp. Tạo tâm lý và quan hệ tốt với HS trước khi bắt đầu tiết học đầu tiên 2. Bài mới T/g Hđ của GV Hđ của HS Nd ghi bảng 2’ ĐVĐ: Về lập trình các em chỉ mới được tìm hiểu qua bài các bước để giải bài toán trên máy tính chta chưa có khái niệm cụ thể. Còn ngôn ngữ lập trình chta cũng đã tìm hiểu tất cả ở lớp 10. H: Vậy có những loại ngôn ngữ lập trình nào? H: Hãy phân biệt ng 2 bậc cao với các loại ng 2 khác? Phân biệt ng 2 bậc cao: chtrình viết bằng ng 2 bậc cao k o phụ thuộc vào loại máy và phải dùng chtrình dịch để chuyển về ng 2 máy. H: Tóm lại ng 2 lập trình dùng để làm gì? Dẫn dắt: Vậy lập trình là gì? Chta tìm hiểu k/n này. Ghi bảng Giải thích thêm về câu lệnh: - Cl để diễn tả các thao tác trong các bước của t/toán. - Cl đơn thực hiện bước có 1 thao tác - Cl ghép thực hiện bước gồm dãy các thao tác. Tl:Ng 2 máy, hợp ngữ, ng 2 bậc cao. Tl: (1-2 hs) Tl: Lập trình Ghi bài Nghe giảng và tự ghi chép KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH 1. K/n lập trình (Sgk) Ý nghĩa: tạo ra các chtrình giải được bài toán trên MT. Giáo viên: Bùi Văn Tú 1

description

Giao an tin hoc 11

Transcript of Giao an tin hoc 11 (in2)

Page 1: Giao an tin hoc 11 (in2)

Giáo án tin học11

CHƯƠNG I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH

Ngày soạn: 21/8/2007Tiết 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH

CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNHI. Mục đích, yêu cầu.

Hiểu được khả năng của ng2 lập trình bậc cao, phân biệt được với ng2 máy và hợp ngữ.Hiểu ý nghĩa và nhiệm vụ của chtrình dịch. Phân biệt được thông dịch và biên dịch.Biết các thành phần cơ bản của ng2 lập trình: bảng chữ cái, cú pháp, ngữ nghĩa. Hiểu và phân biệt được các thành phần này

II. Lên lớp1. Ổn định tình hình lớp.

Giới thiệu làm quen với HS của lớp.Tạo tâm lý và quan hệ tốt với HS trước khi bắt đầu tiết học đầu tiên

2. Bài mớiT/g Hđ của GV Hđ của HS Nd ghi bảng2’ ĐVĐ: Về lập trình các em chỉ mới được

tìm hiểu qua bài các bước để giải bài toán trên máy tính chta chưa có khái niệm cụ thể. Còn ngôn ngữ lập trình chta cũng đã tìm hiểu tất cả ở lớp 10.H: Vậy có những loại ngôn ngữ lập trình nào?H: Hãy phân biệt ng2 bậc cao với các loại ng2 khác?Phân biệt ng2 bậc cao: chtrình viết bằng ng2 bậc cao ko phụ thuộc vào loại máy và phải dùng chtrình dịch để chuyển về ng2

máy.H: Tóm lại ng2 lập trình dùng để làm gì?Dẫn dắt: Vậy lập trình là gì? Chta tìm hiểu k/n này.Ghi bảngGiải thích thêm về câu lệnh:- Cl để diễn tả các thao tác trong các bước của t/toán.- Cl đơn thực hiện bước có 1 thao tác- Cl ghép thực hiện bước gồm dãy các thao tác.Dẫn dắt: Chtrình viết bằng ng2 máy sẽ thực hiện được ngay, còn chtrình viết bằng ng2 bậc cao thì phải chuyển đổi thành chtrình trên ng2 máy mới có thể thực hiện được. Công cụ thực hiện chuyển đổi đó gọi là chtrình dịch.H: Input, Output của chtrình dịch là gì? ( Có thể cho điểm miệng Hs trả lời đúng )

H: nhiệm vụ quan trọng nhất của chtrình dịch là gì?

* Phân biệt Thông dịch và Biên dịchPhân tích Ví dụ Sgk

Tl:Ng2 máy, hợp ngữ, ng2 bậc cao.Tl: (1-2 hs)

Tl: Lập trình

Ghi bài

Nghe giảng và tự ghi chép

Tl: In: chtrình viết bằng ng2

bậc caoOut: chtrình trên ng2 máy.Tl: (2-3Hs) phát hiện lỗi cú pháp của chtrình nguồn

Tìm hiểu ví dụ Sgk

KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP

TRÌNH

1. K/n lập trình(Sgk)

Ý nghĩa: tạo ra các chtrình giải được bài toán trên MT.

2. Chtrình dịch

a. K/niệm: Sgk

Giáo viên: Bùi Văn Tú 1

Page 2: Giao an tin hoc 11 (in2)

Giáo án tin học11

ĐVĐ sang bài mới: Để có thể sử dụng một ng2 lập trình nào đó thì trước hết chta phải biết các thành phần cơ bản có trong nó là gì? Có ba thành phần cơ bản của ng2 lập trình: bảng chữ cái, cú pháp, ngữ nghĩa.Trước hết chta tìm hiểu bảng chữ cái. Treo bảng chữ cái* So sánh bảng chữ cái của ng2 lập trình với bảng chữ cái của ng2 tự nhiênVề cú pháp: Về ngữ nghĩa:Trong từng ngữ cảnh khác nhau, ngữ nghĩa của 1 tổ hợp kí tự là khác nhauVí dụ: Sgk* Tóm lại+ Phân biệt giữa cú pháp và ngữ nghĩa+ Lỗi cú pháp+ Lỗi ngữ nghĩa Ví dụ:

Xem thử 3 cách mô tả cách nào đúng.

H: Lỗi ngữ nghĩa thường được phát hiện khi nào?

Cách1:If a2+b2>1 then if a>b then s=a+b Else s =1;(* a2+b2<1 thì s =? *)

Cách2:If a2+b2>1 then begin if a>b then s=a+b endElse s =1;(* a<b thì s =? *)

Cách 3:If a2+b2>1 and a>b then

s=a+b Else s=1 Tl: Khi thực hiện kiểm thử chtrình.

b. Phân loại:Có 2 loại- Thông dịch: lần lượt dịch và thực hiện từng câu lệnh.- Biên dịch: dịch toàn bộ chtrình rồi mới thực hiện và được lưu trữ để sử dụng lại lần sau.

CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH

1. Các thành phần cơ bản

- Bảng chữ cái

- Cú pháp: bộ qui tắc để viết chtrình

- Ngữ nghĩa

3. Củng cố:Ba lớp của ng2 lập trình và các mức của nó.Vai trò của chtrình dịchKhái niệm biên dịch và thông dịchLỗi cú pháp, lỗi ngữ nghĩa

4. Về nhà: Đọc Bài đọc thêm 1 để tìm hiểu sơ về 1 số ng2 lập trìnhSoạn trước phần còn lại của bài 2. Trong đó chú ý các khái niệm mới: tên, hằng, biến. Cách sử dụng nó

trong lập trình

Giáo viên: Bùi Văn Tú 2

Page 3: Giao an tin hoc 11 (in2)

Giáo án tin học11

Ngày soạn: 24/8/2007Tiết 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH

I. MỤC TIÊU1. Kiến thức

Biết được một số khái niệm như: tên, tên chuẩn, tên dành riêng, tên do người dùng đặt, hằng biến chú thích2. Kĩ năng

Phân biệt được tên chuẩn với tên dành riêng và tên tự đặtNhớ các qui định về tên hằng biếnBiết đặt tên đúng, nhận biết được tên sai qui địnhSử dụng đúng chú thích

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên

Bảng chứa các tên đúng –sai để Hs chọn, bảng con, bút dạ.2. Học sinh

Sách giáo khoa

III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (7 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HSH1: Hãy phân biệt chtrình thông dịch và biên dịch?H2: NNLT có những thành phần nào? Lỗi cú pháp và lỗi ngữ nghĩa được phát hiện bằng gì?

Nhận xét, đánh giá cho điểm 3 Hs

Hs1: trình bày trên bảng.

Hs2: trả lời trước lớpHs3: nhận xét câu trả lời của Hs1

2. Hoạt động 2: (18 phút) Tìm hiểu khái niệm tên trong thành phần của ngôn ngữ lập trình.a. Mục tiêu:

Hs biết và phân biệt được 1 số loại tên: tên dành riêng, tên chuẩn, tên tự đặt.b. Nội dung:

Mọi đối tượng trong chtrình đếu phải được đặt tên theo một qui tắc của NNLT và từng chtrình dịch cụ thể.Tên dành riêng (từ khóa): là những tên được NNLT qui định dùng với ý nghĩa xác định, người lập trình ko

được dùng với ý nghĩa khácTên chuẩn: là những tên được NNLT qui định dùng với ý nghĩa nào đó, người lập trình có thể định nghĩa

lại để dùng với ý nghĩa khác.Tên do người dùng đặt: là tên được dùng theo ý nghĩa riêng của người lập trình, phải được khai báo trước

khi sử dụng và không được trùng với từ khóa.c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảngĐVĐ: Mọi đối tượng trong chtrình đếu phải được đặt tên 1. N/cứu Sgk nêu qui tắc đặt tên trong Turbo Pascal?

2. Chọn các tên đúng trong bảng sau:A _24 A_BC A BC 5ad A5dC#BCKhẳng định lại các tên đúng3. Y/cầu Hs n/cứu Sgk để biết các khái niệm về tên dành riêng, tên chuẩn, tên tự đặt.

1. N/cứu sgk và trả lời:+ Gồm chữ cái, chữ số, dấu gạch dưới+ Không quá 127 kí tự, không bắt đầu bằng kí tự số.2. Quan sát và trả lờiAA_BC_24A5d

3. N/cứu sgk và trả lời

1. Khái niệm Tên(Sgk)

Ví dụ:

+ Tên dành riêng

Giáo viên: Bùi Văn Tú 3

Page 4: Giao an tin hoc 11 (in2)

Giáo án tin học11

Chia lớp thành 3 nhóm, mỗi nhóm tìm hiểu và trình bày về một loại tên và cho ví dụ.

Treo tranh chứa 1 số tên trong NNLT Pascal đã được chuẩn bị sẵn:Type Const Integer DemFunction Byte Inc Mang stringHS xác định tên theo từng loại tên?

Treo bảng con của 3 nhóm cho nhóm khác nhận xét, bổ sung

Tổng kết vấn đề này

Thảo luận theo nhóm và cử người trình bày.+ Tên dành riêng+ Tên chuẩn+ Tên do người dùng đặt

Quan sát và ghi lên bảng con.+ Từ khóa: Type, Const, function+ Tên chuẩn: Integer, byte, string, inc+ Tên tự đặt: dem, mangQuan sát kết quả cnhóm khác, nhận xét và bổ sung

+ Tên chuẩn+ Tên do người dùng đặt

Ví dụ:

3. Hoạt động 3: (15 phút) Tìm hiểu hằng, biến, chú thícha. Mục tiêu: Hs biết được khái niệm về hằng, biến và chú thích. Phân biệt được hằng và biến. Thấy được ý nghĩa của chú thích.b. Nội dung:

* Hằng là đại lượng có giá trị không đổi trong quá trình thực hiện chtrình. Có 3 loại hằng+ Hằng số học: số nguyên, só thực, có dấu và không dấu+ Hằng xâu: chuổi kí tự bất kì, được đặt trong dấu nháy đơn+ Hằng logic: có 2 giá trị True hoặc False* Biến: là đại lượng đặt tên để lưu giá trị và giá trị này có thể thay đổi trong quá trình thực hiện chtrình,

biến dùng trong chtrình đều phải được khai báo.* Chú thích : giải thích cho chtrình rõ ràng, dể hiểu. Được đặt trong cặp dấu { }

hoặc (* *)c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Y/cầu Hs cho 1 số ví dụ về hằng số, hằng xâu, hằng logic

Trình bày k/niệm về các loại hằng.2. Ghi bảng: Xác định hằng số và hằng xâu:56 -3785 ‘485’‘THPT’ 1.5E+2 45,7

H: hằng kí tự nháy đơn và hằng kí tự nháy kép được biểu diễn như thế nào?3. Y/cầu Hs n/cứu Sgk và cho biết k/niệm BiếnCho ví dụ một số biến

4. Y/cầu Hs n/cứu Sgk và cho biết chức năng của chú thích trong chtrình.

Cho 1 số ví dụ khác về chú thích

H: Tên biến và tên hằng thuộc loại tên nào?

H: Các lệnh được viết trong cặp { } có được TP thực hiện ko? Vì sao?

1. Suy nghĩ và trả lời+ Hằng số: 55 73.05+ Hằng xâu: ‘211’ ‘AB’+ Hằng logic: False TrueXem k/niệm hằng ở Sgk2. Quan sát và trả lời+ Hằng số: 56; -3785; 1.5E+2+ Hằng xâu: ‘485’ ‘THPT’

Tl: nháy đơn: ’’’’Nháy kép: ‘””’

3. N/cứu Sgk và trả lời

4. Cá nhân n/cứu Sgk vá trả lờiChú thích được đặt giữa cặp dấu { } và (* *) dùng để giải thích chtrình rõ ràng dễ hiểu.

Tl: Tên do người lập trình đặt.

Tl: Không, vì đó là dòng chú thích.

2. Hằng và biếna. Hằng + Hằng số+ Hằng xâu+ Hằng logic

b. BiếnK/niệm: (Sgk)

Ví dụ: Tong, dtoan, …

c. Chú thíchVí dụ: {thu tuc nhap du lieu}

Giáo viên: Bùi Văn Tú 4

Page 5: Giao an tin hoc 11 (in2)

Giáo án tin học11

IV. ĐÁNH GIÁ CUỐI BÀI1. Nội dung đã học.

Thành phần của NNLT: bảng chữ cái, cú pháp, ngữ nghĩaKhái niệm: tên, từ khóa, tên chuẩn, tên tự đặt, biến, hằng, …

2. Câu hỏi, bài tập về nhà.Làm bài tập 3, 4, 5 trang 13 SgkXem bài đc thêm: Ngôn ngữ PascalXem trước bài: Cấu trúc chtrình SgkXem nội dung phụ lục B, trang 128 Sgk: Một số tên dành riêng

Ngày soạn: 27/8/2007Tiết 3: BÀI TẬPI. MỤC TIÊU1. Kiến thức

- Biết có 3 lớp ngôn ngữ lập trình và các mức của ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao.

- Biết vai trò của chương trình dịch.- Biết khái niệm biên dịch và thông dịch.- Biết các thành phần cơ bản của ngôn ngữ lập trình: bảng chữ cái, cú pháp và ngữ nghĩa.- Biết các thành phần cơ sở của Pascal: bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa), hằng và biến.

2. Kĩ năng: Biết viết hằng và tên đúng trong một ngôn ngữ lập trình cụ thể.3. Về tư duy và thái độ:

Nhận thức được quá trình phát triển của ngôn ngữ lập trình gắn liền với quá trình phát triển của tin học nhằm giải các bài toán thực tiễn ngày càng phức tạp.

Ham muốn học một ngôn ngữ lập trình cụ thể để có khả năng giải các bài toán bằng máy tính điện tử.II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: chuẩn bị nội dung để giải bài tập cuối chương và một số câu hỏi trắc nghiệm của chương.2. Học sinh: Ôn lại kiến thức của chương, chuẩn bị bài tập cuối chương.III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

T/g Hđ của GV Hđ của HS1. Phân biệt giữa Hằng và Biến? Cho một số biến đúng?2. Đâu là từ khóa trong các tên sau đây?Integer Begin Do int chan tong- Nhận xét, đánh giá cho điểm

HS1: trả lời

Hs2: trả lời (Begin và Do)

2. Hoạt động 2:T/g Hđ của GV Hđ của HS Nd ghi bảng

ĐVĐ: Trước khi giải bài tập trong SGK, các em tự ôn lại một số kiến thức mà chúng ta đã học ở các bài trước dựa trên yêu cầu của câu hỏi trang 13 SGK.

Đặt câu hỏi số 1: Tại sao người ta phải xây dựng các ngôn ngữ lập trình bậc cao?- Nhận xét, đánh giá và bổ sung hướng dẫn cho học sinh trả lời câu hỏi số 1:

Đặt câu hỏi 2: Biên dịch và thông dịch khác nhau như thế nào?

- Đọc yêu cầu của câu hỏi và bài tập cuối chương trang 13 SGK.- Suy nghĩ để đưa ra phương án trả lời.

- Suy nghĩ, trả lời câu hỏi.

- Suy nghĩ, trả lời câu hỏi.

Câu 1:Ngôn ngữ bậc cao + gần với ngôn ngữ tự nhiên hơn, + không phụ thuộc vào phần cứng máy tính và một chương trình có thể thực hiện trên nhiều máy tính khác nhau; + dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp; + cho phép làm việc với nhiều kiểu dữ liệu và cách tổ chức dữ liệu đa dạng, thuận tiện cho mô tả thuộc toán. Câu 2:Trình biên dịch: duyệt, kiểm tra, phát hiện lỗi, xác định chương trình nguồn có dịch được không? dịch toàn bộ chương trình nguồn thành một

Giáo viên: Bùi Văn Tú 5

Page 6: Giao an tin hoc 11 (in2)

Giáo án tin học11

Phân tích câu trả lời của học sinh. chương trình đích có thể thực hiện trên máy và có thể lưu trữ lại để sử dụng về sau khi cần thiết.Trình thông dịch lần lượt dịch từng câu lệnh ra ngôn ngữ máy rồi thực hiện ngay câu lệnh vừa dịch được hoặc báo lỗi nếu không dịch được

3. Hoạt động 3:T/g Hđ của GV Hđ của HS Nd ghi bảng

Đặt câu hỏi 3: Hãy cho biết các điểm khác nhau giữa tên dành riêng và tên chuẩn? Viết 3 tên đúng quy tắctrong Pascal?- Gọi hs trả lời và cho ví dụ - Phân tích câu trả lời của học sinh.Hỏi: Nêu lại quy tắc đặt tên trong Pascal?- Gọi 3 học sinh lên bảng cho ví dụ về tên do người lập trình đặt.*Nhận xét, sửa chữa, góp ý.

Suy nghĩ, trả lời, giải thích

Trả lời

Lên bảng

Chú ý, ghi nhớ

Câu 3: Tên dành riêng không được dùng khác với ý nghĩa đã xác định, tên chuẩn có thể dùng với ý nghĩa khác.VD: Tên dành riêng trong Pascal: program, uses, const, type, var, begin, end. Tên chuẩn: trong Pascal abs, integer.

4. Hoạt động 4:T/g Hđ của GV Hđ của HS Nd ghi bảng

Đặt câu hỏi 4: Hãy cho biết những biểu diễn nào dưới đây không phải là biểu diễn hằng trong Pascal và chỉ rõ trong từng trường hợp:- Nhận xét, giải thích

Trả lời giải thích từng câu một Câu 4:

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)Câu hỏi, bài tập về nhà

Xem trước Chương 3 gồm các bài: Cấu trúc chương trình và Một số kiểu dữ liệu chuẩn. Xem trước nội dung phụ lục B phần 3: Một số kiểu dữ liệu chuẩn. (trang 129 Sgk)

Bài tập kiểm tra trắc nghiệm cuối chương: (15 phút)Câu 1:Chương trình viết bằng hợp ngữ không có đặc điểm nào trong các đặc điểm sau:A. Ngắn gọn hơn so với chương trình được viết bằng ngôn ngữ bậc cao.B. Tốc độ thực hiện nhanh hơn so với chương trình được viết bằng ngôn ngữ bậc cao.C. Diễn đạt gần với ngôn ngữ tự nhiên.D. Sử dụng trọn vẹn các khả năng của máy tínhCâu 2: Chương trình viết bằng ngôn ngữ bậc cao không có đặc điểm nào trong các đặc điểm sau:A. Không phụ thuộc vào loại máy, chương trình có thể thực hiện trên nhiều loại máy.B. Ngắn gọn, dễ hiểu, dễ hiệu chỉnh và nâng cấp.C. Kiểu dữ liệu cà cách tổ chức dữ liệu đa dạng, thuận tiện cho mô tả thuật toán.D. Máy tính có thể hiểu và thực hiện trực tiếp chương trình này.Câu 3: Chương trình dịch không có khả năng nào trong các khả năng sau?A. Phát hiện được lỗi ngữ nghĩa. C. Phát hiện được lỗi cú pháp.

Giáo viên: Bùi Văn Tú 6

1 150.0 hằng số2 –22 hằng số3 6,23 K4 ‘43’ hằng xâu5 A20 K6 1.06E-15 hằng số7 4+6 b/thức hằng8 ‘C K9 ‘TRUE’ hằng xâu

Page 7: Giao an tin hoc 11 (in2)

Giáo án tin học11

B. Thông báo lỗi cú pháp. D. Tạo được chương trình dịch.Câu 4: Nhận biết đúng/sai trong Pascal?

STT Tên biến Đúng(Đ)/Sai(S)1 1hoten S2 Hoten Đ3 Ho ten S4 Ho_ten Đ5 Ho-ten1 S6 Hoten1 Đ

Câu 5: Ghép mỗi câu ở cột 1 với một câu thích hợp ở cột 2 trong bảng sau:

Cột 1 Cột 2(1) Biên dịch (A) là các đại lượng có giá trị không đổi trong quá trình thực hiện chương

trình. (2) Thông dịch (B) dịch và thực hiện từng câu lệnh, nếu còn câu lệnh tiếp theo thì quá trình

này còn tiếp tục.(3) Chương trình viết trên ngôn ngữ lập trình bậc cao.

(C) là những đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình.

(4) Biến (d) dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần thiết.

(5) Hằng (E) phải được chuyển đổi thành chương trình trên ngôn ngữ máy mới có thể thực hiện được.

CHƯƠNG II: CHƯƠNG TRÌNH ĐƠN GIẢN

Ngày soạn: 29/8/2007Tiết 4: CẤU TRÚC CHƯƠNG TRÌNH

I. MỤC TIÊU1. Kiến thức

Hiểu chtrình là sự mô tả của thuật toán bằng một NNLTBiết cấu trúc của một chtrình đơn giản: cấu trúc chung và các thành phần

2. Kĩ năngNhận biết được thành phần của một chtrình đơn giản

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên

Máy tính, máy chiếu projector .Một số chtrình mẫu viết sẵn.

2. Học sinhSách giáo khoa

III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HSH1: Phân biệt tên chuẩn và từ khóa? Tên hằng, tên biến thuộc loại tên nào? H2: Cho một số tên biến, hằng đúng qui cách?

Nhận xét, đánh giá cho điểm 3 hs

Hs1: trả lời trước lớp

Hs2: trình bày trên bảngHs3: nhận xét phần trả lời của Hs2

2. Hoạt động 2: (5phút) Tìm hiểu cấu trúc chung của chtrìnha. Mục tiêu: Hs biết được chtrình có 2 phần.b. Nội dung: Cấu trúc chtrình có 2 phần: phần khai báo, phần thân.c. Các bước tiến hành:

Giáo viên: Bùi Văn Tú 7

Page 8: Giao an tin hoc 11 (in2)

Giáo án tin học11

Hđ của GV Hđ của HS Nd ghi bảng1. Câu hỏi gợi ý: Một bài tập làm văn thường viết có mấy phần? Các phần có thứ tự không? Tại sao phải chia ra như vậy?

2. Y/cầu Hs n/cứu Sgk và trả lời các câu hỏi sau:- Một chtrình có cấu trúc mấy phần?

3. Chiếu lên bảng chtrình:Program vidu;Begin Write(‘ chao cac ban’); Readln;End.H: Đâu là phần khai báo và phần thân chtrình?Dẫn dắt chuyển sang Hđ 3: Chtrình trên chỉ là chtrình đơn giản. Để có thể nhận biết các thành phần trong chtrình bất kỳ, ta cần tìm hiểu nội dung của từng thành phần.

1. Suy nghĩ và trả lời.- Có ba phần- Có thứ tự: mở bài, thân bài, kết luận.- Dễ viết, dễ đọc và dễ hiểu nội dung .2. N/cứu sgk, thảo luận và trả lời:Có 2 phần:

[<phần khai báo>]<phần thân chtrình>

3. Quan sát và trả lời

- Phần bôi đen là phần thân. Còn lại là phần khai báo.

CẤU TRÚC CHƯƠNG TRÌNH

1. Cấu trúc chungCó 2 phần:

[<phần khai báo>]<phần thân chtrình>

3. Hoạt động 3: (15phút) Tìm hiểu các thành phần của chtrình.a. Mục tiêu: Hs biết được nội dung của các thành phần trong chtrìnhb. Nội dung:

Phần khai báo: khai báo tên chtrình, khai báo các thư viện, khai báo hằng, khai báo biến, khai báo chtrình con, ...

Phần thân: bao gồm dãy lệnhđược đặt trong cặp dấu hiệu mở đầu và kết thúcBegin

Các câu lệnh;End.

c. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. Y/cầu Hs n/cứu Sgk và trả lời câu hỏi:- Trong phần khai báo có những khai báo nào?

Dẫn dắt: Cách khai báo các đối tượng này trong chtrình như thế nào?2. Y/cầu Hs tiếp tục n/cứu Sgk và lấy ví dụ cho từng loại khai báo.

* Cách khai báo biến sẽ được tìm hiểu riêng trong tiết sau.* Khai báo và sử dụng CTC được trình bày ở chươngVI.3. Y/cầu Hs cho biết cấu trúc của phần thân

1. N/cứu sgk, thảo luận và trả lời:- Khai báo tên chtrình- Khai báo thư viện CTC- Khai báo hằng- Khai báo biến- Khai báo CTC

2. N/cứu sgk, thảo luận và cho ví dụ:- Khai báo tên chtrìnhProgram tim_uscln;- Khai báo thư viện CTCUses crt;- Khai báo hằngConst max = 1000; Pi = 3.14;- Khai báo biếnVar a, d, c: integer; Kt:char;* Ghi nhớ các ví dụ.

2. Các thành phần của chương trìnha. Phần khai báoProgram tên_chtrình;

Uses tên_thư_viện;

Const tên_hằng = giá_trị;

Var tên_biến: kiểu_dữ_liệu;

Giáo viên: Bùi Văn Tú 8

Page 9: Giao an tin hoc 11 (in2)

Giáo án tin học11

chtrình.3. Trả lờiBegin Dãy các câu lệnh;End.

b. Phần thân

4. Hoạt động 4: (15 phút) Xét một vài ví dụ về những chtrình đơn giảna. Mục tiêu: Hs nhận biết được từng phần của một chtrình đơn giản.b. Nội dung: Một vài chtrình đơn giản.c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Chiếu lên bảng một chtrình đơn giản.Program vidu;Uses crt;Var x, y: byte; z:word;Begin z:= x+y; writeln(z); readln;End.H1: Phần khai báo của chtrình?

H2: Phần thân của chtrình, + lệnh z:=x+y có ý nghĩa gì?+ lệnh writeln có chức năng gì?

2. Có thể bỏ bớt các phần nào trong chtrình trên, nhưng kết quả chtrình không thay đổi?

3. Chia lớp thành 4 nhómY/cầu:+ 2 nhóm lấy một ví dụ về chtrình Pascal chỉ có phần thân.+ 2 nhóm còn lại chtrình không có phần khai báo biến* Đính bìa các nhóm lên bảng, cho các nhóm nhận xét và đánh giá chéo.

1. Quan sát và trả lời

- Phần khai báo (gồm 3 dòng đầu): khai báo tên CT, khai báo thư viện, khai báo biến.- Còn lại là phần thân.+ lệnh gán (: =)+ lệnh đưa thông tin ra màn hình.2. Suy nghĩ, thảo luận và trả lời.Dòng khai báo tênDòng khai báo thư viện.3. Thảo luận và trả lờiTrình bày trên bìa trắng

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học

Một chtrình gồm có 2 phần: phần khai báo và phần thân.2. Câu hỏi, bài tập về nhà

Xem trước bài: Một số kiểu dữ liệu chuẩn. Khai báo biến. (trang 21-23 sgk)Xem trước nội dung phụ lục B phần 3: Một số kiểu dữ liệu chuẩn. (trang 129 Sgk)

Ngày soạn: 31/8/2007Tiết 5 MỘT SỐ KIỂU DỮ LIỆU CHUẨN

KHAI BÁO BIẾN

I. MỤC TIÊU

Giáo viên: Bùi Văn Tú 9

Page 10: Giao an tin hoc 11 (in2)

Giáo án tin học11

1. Kiến thứcBiết một số kiểu dữ liệu chuẩn: nguyên, thực, kí tự, logic.Hiểu cách khai báo biến.

2. Kĩ năngXác định được kiểu cần khai báo của dữ liệu đơn giản.Biết khai báo biến đúng.

3. Tư duy – thái độ:Tư duy logic.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: Máy tính, máy chiếu projector, một số ví dụ minh hoạ.

Bảng treo chứa một số khai báo biến cho Hs chọn Đúng - Sai2. Học sinh: SGK

III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (7 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HSH1: Nêu cấu trúc chung của một chương trình?H2: Nêu cấu trúc của các phần khai báo: tên chương trình, hằng, thư viện?Nhận xét, đánh giá cho điểm 3 hs

Hs1: trả lời trước lớp

Hs2: trình bày trên bảngHs3: nhận xét phần trả lời của Hs2

2. Hoạt động 2: (3 phút)Đặt vấn đềHđ của GV Hđ của HS Nd ghi bảng

Trong toán học để thực hiện được tính toán cần phải có các tập số. Đó là các tập số nào ?Trong lập trình Pascal cũng có các tập hợp, mỗi tập hợp có 1 giới hạn nhất định.

Tl: Tập hợp số tự nhiên, nguyên, hữu tỉ, thực.Đọc sách.

3. Hoạt động 3: (20 phút)Một số kiểu dữ liệu chuẩn.a. Mục tiêu: Biết được tên và giới hạn biểu diễn của một số kiểu dữ liệu chuẩn.b. Nội dung: Kiểu số nguyên: Byte, Integer, Word, Longint

Kiểu số thực: Real, ExtendedKiểu kí tự: là kí tự thuộc bảng mã ASCII (char)Kiểu logic: là tập hợp gồm 2 giá trị True và False, là kết quả của phép so sánh.

c. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. Kiểu dữ liệu chuẩn là một tập hữu hạn các giá trị, mỗi kiểu dữ liệu cần một dung lượng bộ nhớ cần thiết đẻ lưu trữ và xác định các phép toán có thể tác động lên dữ liệu.2. Y/cầu Hs n/cứu Sgk trả lời các câu hỏi sau:H1: Có bao nhiêu dữ liệu chuẩn trong ngôn ngữ Pascal ?H2: Trong ngôn ngữ Pascal, có những kiểu nguyên nào thường dùng, phạm vi biểu diễn của mỗi loại?H3: Trong ngôn ngữ Pascal, có những kiểu thực nào thường dùng, phạm vi biểu diễn của mỗi loại?H4: Trong ngôn ngữ Pascal, có bao nhiêu kiểu kí tự?H5: Trong ngôn ngữ Pascal, có bao nhiêu kiểu logic, gồm các giá trị nào?

Treo bảng3. Giải thích một số vấn đề cho Hs+ Vì sao phạm vi biểu diễn của các loại số

1. Chú ý, lắng nghe- Liên tưởng các tập số trong toán học với một kiểu dữ liệu trong Pascal.

2. N/cứu Sgk và trả lời

Tl1: Có 4 kiểu: nguyên, thực, kí tự, lôgic.Tl2: Có 4 loại: byte, integer, word, longint.

Tl3: Có 2 loại: Real, Extended.

Tl4: Có 1 loại: char

Tl5: Có 1 loại: Boolean gồm 2 giá trị: True và FalseQuan sát3. Chú ý lắng nghe và ghi nhớ.

1. Kiểu dữ liệu chuẩn

Sgk

Sgk

Giáo viên: Bùi Văn Tú 10

Page 11: Giao an tin hoc 11 (in2)

Giáo án tin học11

nguyên là khác nhau?+ Miền giá trị của các loại kiểu thực, số chữ số có nghĩa?4. Ứng dụng: Muốn tính toán các giá trị: 5, 8, 9.05 ta phải sử dụng kiểu dữ liệu nào?

4. Suy nghĩ và trả lờiKiểu thực (Real)

- Bảng tổng hợp giới hạn biểu diễn một số kiểu dữ liệu thường dùng

4. Hoạt động 4: (10 phút) Tìm hiểu cách khai báo biếna. Mục tiêu:

- Hs biết được rằng mọi biến trong chtrình đều phải được khai báo tên và kiểu dữ liệu.- Hs biết được cấu trúc chung của khai báo biến trong NNLT Pascal, khai báo được biến khi lập trình.

b. Nội dung: Cấu trúc chung của khai báo biến trong lập trình bằng Pascal:Var tên_biến_1: kiểu_dữ_liệu_1;

tên_biến_2: kiểu_dữ_liệu_2;...................tên_biến_N: kiểu_dữ_liệu_N;biếnA, biếnB, ...., biến F: kiểu_dữ_liệu;

c. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. Yêu cầu học sinh nghiên cứu sách GK và cho biết vì sao phải khai báo biến ?

Cấu trúc chung của khai báo biến bằng Pascal:

Cho ví dụ: Cần một biến kiểu nguyên, và một biến kiểu logic.

2. Treo bảng có chứa một số khai báo và yêu cầu Hs chọn khai báo đúng trong Pascal?

3. Treo bảng có chứa một số khai báo trong Pascal.Hỏi: Có tất cả bao nhiêu biến, bộ nhớ phải cấp phát là bao nhiêu?

1. Đọc sách.Mọi biến dùng trong chtrình đều phải được khai báo tên biến và kiểu dữ liệu của biến. Tên biến dùng để xác lập quan hệ giữa biến với địa chỉ bộ nhớ nơi lưu giữ giá trị của biến.

Var <danh sách biến>: <kiểu dữ liệu>;

Var a: integer; B: boolean;

2.Quan sát và chọn khai báo đúngVar x, y, z: word; I: byte;

- Có 5 biến- Tổng bộ nhớ cần cấp phát: x (2byte), y (2byte), n(6byte), i(1byte), c(1byte)2+2+6+1+1=12byte

2. Khai báo biến

Chọn khai báo đúngVar x, y, z: word; n m: real; X: longint; I: byte; a: inte gr; true: boolean; Var x, y: word; n : real; i: byte; c: char;

IV. ĐÁNH GIÁ CUỐI BÀI (5 phút)1. Nội dung đã học

Các kiểu dữ liệu chuẩn: nguyên, thực, kí tự, lôgicCách khai báo biến

2. Câu hỏi, bài tập về nhàLàm bài tập 1,2,3,4,5 sgk trang 35Xem trước bài: Phép toán, biểu thức, lệnh gán. sgk trang 24

Giáo viên: Bùi Văn Tú 11

Page 12: Giao an tin hoc 11 (in2)

Giáo án tin học11

Ngày soạn: 1/9/2007Tiết 6 PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN

I. MỤC TIÊU1. Kiến thức

Biết được khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức quan hệ.Hiểu lệnh gán.Biết được một số hàm thông dụng trong Pascal

2. Kĩ năngViết được lệnh gánViết được các biểu thức số học và logic với các phép toán thông dụng.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên

Tranh chứa bảng các hàm số học, bảng chân trị.Máy tính, Projector.

2. Học sinh Sgk3. Tư duy và thái độ :

Phát triển tư duy lôgic, linh hoạt, có tính sáng tạo.Biết thể hiện về tính cẩn thận chính xác trong tính toán cũng như lập luận.

III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HS- Viết khai báo biến của bài toán: Cho 2 số nguyên N, M. Tính giá trị của biểu thức p= (m+n)/(m*n).Ghi đề bài và gọi tên 2 hs - Hỏi thêm: Bộ nhớ cần cấp phát cho các biến đó là bao nhiêu? Nhận xét, đánh giá cho điểm.

2Hs lên bảng làm việc độc lập.Đ/a:Var N, M: Integer; P:real;

Đ/a: 10Byte

2. Hoạt động 2: (10 phút)Tìm hiểu một số phép toána. Mục tiêu: HS biết được tên và ký hiệu các phép toán, biết cách sử dụng các phép toán đối với mỗi kiểu dữ liệu.b. Nội dung:

+ Phép toán số học: + , - , *, / , DIV, MOD.+ Phép toán quan hệ: <, <=, > , >=, =, < > , giá trị logic (true hoặc false)+ Phép toán lôgic: NOT , OR , AND.

c. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. ĐVĐ: Để mô tả các thao tác trong thuật toán, mỗi NNLT đều xác định và sử dụng một sô kháiniệm cơ bản: phép toán, biểu thức, gán giá trị.2. Hãy kể các phép toán đã học ở toán học?

- Trong NNLT Pascal cũng có các phép toán đó nhưng được diễn tả bằng một cách khác.3. Y/cầu Hs n/cứu Sgk và cho biết có bao nhiêu nhóm phép toán?

1.Chú ý lắng nghe

2. Suy nghĩ và trả lời- Phép: cộng, trừ, nhân, chia, lấy dư, so sánh, chia lấy nguyên.

3. N/cứu sgk và trả lời.- Phép toán số học: +, -, *, /, div, mod- phép toán quan hệ: <, >, =, >=, <=, <>

1. Phép toán trong Pascal

- Phép toán số học: +, -, *, /, div, mod- Phép toán quan hệ: <, >, =, >=, <=, <>- Phép toán logic: and, or, not

Giáo viên: Bùi Văn Tú 12

Page 13: Giao an tin hoc 11 (in2)

Giáo án tin học11

H1: Phép chia (/) được sử dụng cho kiểu dữ liệu nào?H2: Phép Mod, Div được sử dụng cho kiểu dữ liệu nào?H3: Kết quả của phép toán quan hệ thuộc kiểu dữ liệu nào?

- phép toán logic: and, or, notTl: kiểu thực

Tl: kiểu nguyên.

Tl: kiểu logic

3. Hoạt động 3: (20phút) Tìm hiểu về biểu thứca. Mục tiêu: Hs biết khái niệm về biểu thức số học, quan hệ, lôgic. biết cách xây dựng các biểu thức đó.

Biết được một số hàm số học chuẩn trong lập trìnhb. Nội dung:

- Biểu thức số học nhận được từ hằng số, biến số và hàm số liên kết.- Nắm bắt được tuần tự các bước khi thực hiện biểu thức số học.- Biểu thức logic được cấu thành từ các biểu thức quan hệ.

c. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. ĐVĐ: Trong toán học ta đã làm quen với khái niệm biểu thức. Hãy cho biết các yếu tổ cơ bản xây dựng nên biểu thức?Nếu trong một bài toán mà toán hạng là hằng số, biến, hoặc hàm số và toán tử là các phép toán số học thì biểu thức có tên gọi là gì?2. Treo bảng có chứa các biểu thức toán học, yêu cầu: sử dụng phép toán số học để biễu diễn biểu thức toán học đó thành biểu thức trong NNLT.

a. 4x - 2y b. x +

c. -

- Từ việc xây dựng các biểu thức trên, hãy nêu thứ tự thực hiện các phép toán.

3. Nêu vấn đề:Trong toán học ta đã làm quen với một số hàm số học, hãy kể tên? - Muốn tính ax2 + 1 ta viết thế nào?- Muốn tính , , sinx ... ta làm thế nào? Tính các giá trị đó một cách đơn giản người ta đã xây dựng sẵn một số đơn vị chương trình trong các thư viện chương trình giúp người lập trình tính toán nhanh hơn.- Treo tranh chứa bảng một số hàm chuẩn.Yêu cầu: Học sinh điền thêm một số thông tin với các chức năng của hàm.

1. Suy nghĩ, trả lời- Gồm 2 phần: toán hạng, toán tử

- Biểu thức số học

2. Quan sát bảng và lên bảng trả lời.

a. 4*x-2*y

b. x+1/(x-y)

c. ((a+b+c)/((2*a /b)+c)) - (b*b-c)/(a*c)

N/cứu sgk và trả lời- Thực hiện trong ngoặc trước; ngoài ngoặc sau. Nhân, chia, chia lấy nguyên, chia lấy dư trước; cộng trừ sau. 3. Nhớ lại và trả lờiHàm trị tuyệt đối, hàm căn bậc 2, hàm sin ...- HS trả lời: 2*x*x+1

- HS chưa trả lời được

Nghiên cứu SGK - 26 và quan sát tranh vẽ, lên bảng điền tranh

2. Biểu thức số học

Toán hạng: hằng, biến, hàm số.Toán tử: +, -, *, /, mod, div.* Thứ tự thực hiện: Sgk* Chú ý: + Nên dùng biến trung gian để tránh việc tính 1 biểu thức nhiều lần.+ Biểu thức có chứa hằng hoặc biến kiểu thực, thì giá trị của biểu thức cũng thuộc kiểu thực

3. Hàm số học chuẩn

Cách viết cho một số hàm số học chuẩn :

Tên hàm (đối số)

+ Đối số là một hay nhiều biểu thức số học đặt trong dấu ngoặc ( ) sau tên hàm .

Giáo viên: Bùi Văn Tú 13

Page 14: Giao an tin hoc 11 (in2)

Giáo án tin học11

- Cho biểu thức

Hãy biểu diễn biểu thức toán trong biểu thức trong NNLT.

4. Nêu vấn đề: Trong lập trình ta phải so sánh 2 giá trị nào đó trước khi thực hiện lệnh bằng cách sử dụng biểu thức quan hệ . Biểu thức quan hệ còn gọi là biểu thức so sánh được dùng để so sánh 2 giá trị đúng hoặc sai.- Cho một ví dụ về biểu thức quan hệ.

- Thứ tự thực hiện của biểu thức quan hệ?- Kết quả mà phép toán quan hệ thuộc kiểu dữ liệu nào?5. Biểu thức logic là biểu thức quan hệ được liên kết với nhau bởi phép toán logic - Hãy quan sát biểu thức trong toán học sau: 2< x 8 và biễu diễn bthức này trong NNLT Pascal.- Thứ tự thực hiện của bthức lôgic?

- Kết quả mà bthức lôgic thuộc kiểu dữ liệu nào?Treo tranh có chứa bảng chân trị của A và B, y/cầu hs điền giá trị cho A and B, A or B, not B

- Suy nghĩ và trả lời:(abs(x) - sqrt(2*x+1)) /

(sqr(x)-1)4. Lắng nghe, suy nghĩ.

- Trả lời: x + y < 2* x*y

+ Tính gtrị của các bthức+ Thực hiện phép toán qhệ

- Kiểu logic

5. Lắng nghe, theo dõi sự sự dẫn dắt của Gv để trả lời

- Kết hợp SGK, trả lời:(x > 2)and(x <= 8)

+ Thực hiện các bthức qhệ+ Thực hiện p/toán lôgic

- Kiểu logic

Suy nghĩ và trả lời bằng cách điền vào bảng

A BA

and B

A or B

Not A

0 0 0 0 10 1 0 1 11 0 0 1 01 1 1 1 0

VD: (SGK - 26).

4. Biểu thức quan hệ:Cấu trúc chung:<BT1> < phép toán quan hệ > <BT2>+ trong đó BT1 và BT2 phải cùng kiểu.+ Kết quả của biểu thức quan hệ là TRUE hoặc FALSE.VD: - 5 > 2

5. Biểu thức logic.

- Biểu thức logic đơn giản là hằng hoặc biến logic.- Dùng để liên kết nhiều biểu thức quan hệ lại với nhau.

Ví dụ: Cho 3 số a, b, c. Viết điều kiện xác định a, b, c là độ dài 3 cạnh của 1 tam giác.(a+b>c) and (b+c>a)

and (a+c>b)

4. Hoạt động 4: (8 phút) Câu lệnh gán(:=)a. Mục tiêu: HS biết được chức năng cấu trúc chung của lệnh gán trong NN Pascal, viết lệnh đúng khi lập trình.b. Nội dung:- Lệnh gán dùng để tính giá trị một biểu thức và chuyển nó vào một biến.- Cấu trúc: Tên biến:= biểu thức;c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng- Mỗi NNLT có cách viết lệnh gán khác nhau, chẳng hạn như trong Pascal có lệnh gán sau: i : = 8 + 3- Giải thích: Lấy 8 cộng với 3, đem kết quả đặt vào i , ta được i = 11.Hỏi: Hãy cho biết chức năng của lệnh gán?

- Y/cầu hs Sgk cho biết cấu trúc chung của lệnh gán trong NNLT PascalCho một số ví dụ về lệnh gán

- Quan sát ví dụ và suy nghĩ để trả lời.

+ Tính gtrị của bthức+ Gán gtrị tính được vào tên biến.

<tên biến> := <biểu thức>;

6. Câu lệnh gán.- Lệnh gán là cấu trúc cơ bản của mọi NNLT, thường dùng để gán giá trị cho biến.

Cấu trúc:< tên _biến>:= <b_thức>;VD: x:= (b*b-4* a*c);

Giáo viên: Bùi Văn Tú 14

Page 15: Giao an tin hoc 11 (in2)

Giáo án tin học11

Cần chú ý gì khi viết lệnh gán?Phân tích câu trả lời của học sinh sau đó tổng hợp lại + viết đúng kí hiệu gán.+ bthức bên phải cần được xác định gtrị trước khi gán.+ kiểu của bthức bên phải phải phù hợp với kiểu của biến.Treo tranh, giới thiệu ví dụ về PascalCho chtrình:Var x, y: integer; T:boolean;Begin

x:=3; y:=9;x:=x-1; y:=y div 2;Write(‘x=’,x); writeln(‘ y=’,y);T:= x<y; write(T);readln

End.Ch/trình in ra màn hình gtrị bằng bao nhiêu?

Thảo luận và đưa ra ý kiến.

Quan sát, làm thử ch/trình qua các lệnh và trả lời:

x=2 y=4TRUE

i:= i+1; j:= j-1;

IV. ĐÁNH GIÁ CUỐI BÀI (2phút)1. Nội dung đã học

2. Câu hỏi, bài tập về nhàXem trước bài: Các thủ tục chuẩn vào/ra đơn giản

Soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình.

Ngày soạn: 10/9/07Tiết 7 CÁC THỦ TỤC CHUẨN VÀO RA ĐƠN GIẢN

SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH CHƯƠNG TRÌNH

I. MỤC TIÊU1. Kiến thức

- Biết được ý nghĩa của các thủ tục vào/ ra chuẩn đối với lập trình- Biết được các cấu trúc chung của thủ tục vào/ ra trong NNLT Pascal- Biết được các bước để hoàn chỉnh một chtrình- Biết được các file cơ bản của Turbo Pascal 7.0

2. Kĩ năng- Viết đúng lệnh vào /ra dữ liệu- Biết nhập đúng dữ liệu khi thực hiện chtrình.- Biết khởi đọng và thoát khỏi hệ soạn thảo Turbo Pascal 7.0- Soạn được một chtrình vào máy. Dịch được chtrình để phát hiện lỗi cú pháp.- Thực hiện được chtrình để nhập dữ liệu và thu kết quả, tìm lỗi thuật toán và sửa lỗi

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên:

- Sgk, tranh chứa các biểu thức trong toán, Projector, máy vi tính, một số chtrình viết sẵn.- Máy vi tính có cài phần mềm Turbo Pascal 7.0, Projector.

2. Học sinh: sgk

III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HS

Giáo viên: Bùi Văn Tú 15

Page 16: Giao an tin hoc 11 (in2)

Giáo án tin học11

Cho M, N là 2 biến nguyên. Điều kiện xác định M, N đồng thời là số chẵn hoặc đồng thời là số lẻ được thể hiện trong Pascal như thế nào?- Gọi 2 Hs lên bảng độc lập trả lời- Gọi Hs khác nhận xét (Đúng, Sai)Nhận xét đánh giá, cho điểm

2 Hs lên bảng trả lời bằng cách ghi bảng

Đ/a: ((M mod 2 = 0) and (N mod 2 = 0)) Or ((M mod 2 =1) and (N mod 2 = 1))

2. Hoạt động 2: (10 phút)Tìm hiểu thủ tục nhập dữ liệu vào từ bàn phím.a. Nội dung:

Dùng để đưa nhiều bộ dữ liệu khác nhau cho cùng một chtrình xữ lí.Cấu trúc: Read/Readln(<biến 1>, <biến 2>, ...., <biến N>);

b. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. Nêu vđ: Khi giải quyết một bài toán, ta phải đưa dữ liệu vào máy tính xữ lí, việc đưa dữ liệu bằng lệnh gán sẽ làm cho chtrình chỉ có tác dụng với một dữ liệu cố định. Để chtrình giải quyết được nhiều bài toán hơn, ta phải sử dụng thủ tục nhập dữ liệu.- Y/cầu Hs n/cứu Sgk cho biết cấu trúc chung của thủ tục nhập dữ liệu trong NNLT Pascal:- Ghi bảngVí dụ: khi viết chtrình giải ptrình: Ax2 + Bx + C = 0, ta phải nhập vào các đại lượng nào? viết lệnh nhập?

2. Treo bảng chứa chtrình Pascal đơn giản có lệnh nhập giá trị cho 3 biến.- Mô phỏng kết quả chtrình cho hs quan sát.Hỏi: Khi nhập giá trị cho nhiều biến, ta phải thực hiện như thế nào?

Ví dụ: để nhập các giá trị 2, -1.5, 7 cho các biến A, B, C ta có thể gõ:Cách1: 2 1.5 7 EnterCách2: 2 1.5 Enter 7 EnterHỏi: Lệnh Read và Readln khác nhau như thế nào?

1.

- N/cứu Sgk và trả lời:Read(<biến1>,…,<biếnN>);Readln(<biến1>,…,<biếnN>);

Suy nghĩ, trả lời:- phải nhập giá trị vào 3 biến A, B, C-Lệnhnhập:Readln(A,B,C);

2. Quan sát chtrình và kết quả.

- Các giá trị phải được cách nhau ít nhất một dấu cách (Space) hoặc kí tự xuống dòng (Enter).- Quan sát ví dụ của gv

- Suy nghĩ, trả lờiRead: ……Readln: ……

1. Nhập dữ liệu từ bản phím

Read(<biến1>,…,<biếnN>);Readln(<biến1>,…,<biếnN>);Ví dụ

- Các giá trị phải được cách nhau ít nhất một dấu cách hoặc kí tự xuống dòng.

3. Hoạt động 3:(15 phút)Tìm hiểu thủ tục đưa dữ liệu ra màn hình.a. Nội dung:

- Dùng để đưa kết quả sau khi xữ kí ra màn hình để người sử dụng thấy.- Write/Writeln(<thamsố1>,...,<thamsốN>);

b. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. Nêu vđ: Sau khi xữ lí xong, kết quả CT được lưu trong bộ nhớ, để nhìn thấy được kết quả ta phải dùng thủ tục xuất dữ liệu.- Y/cầu hs n/cứu Sgk cho biết cấu trúc chung của thủ tục xuất dữ liệu trong NNLT PascalVí dụ: Khi viết CT giải pt: ax+b=0, ta phải đưa ra màn hình gtrị nghiệm -b/a, ta phải viết lệnh như thế nào?

1.

- N/cứu Sgk và trả lời.

2. Đưa dữ liệu ra màn hình

Write(<thamsố1>,..., <tham sốN>);

Writeln(<thamsố1>,..., <tham sốN>);

Giáo viên: Bùi Văn Tú 16

Page 17: Giao an tin hoc 11 (in2)

Giáo án tin học11

2. Để nhập giá trị cho 1 biến từ bàn phím, ta thường đưa thêm câu dẫn dắt sau đó mới đến câu lệnh nhập. Bằng cách dùng cặp thủ tục write và read.Ví dụ: Cần nhập 1 số ngdương N (N<=100) từ bàn phím ta viết câu lệnh như sau:Write(‘Nhap so nguyen duong N<=100: ’); Readln(N);

3. Treo bảng chứa chtrình Pascal đơn giản:Mô phỏng kết quả chtrình để hs quan sát

Hỏi: chức năng câu lệnh writeln();

Hỏi: ý nghĩa của :6 trong câu lệnh write(...);

4. Khi các tham số trong lệnh write() thuộc kiểu Char hoặc Real thì qui định vị trí như thế nào?Vd1: với c = ‘E’ và x = 145

Vd2: n = 54 và r = 24.7

5. <<Có thể cho hs tìm hiểu ở nhà>>Thủ tục Readln và Writeln không có tham số có chức năng là gì?

Vd: Đoạn CT cho kết quả thế nào?Writeln(‘DAY THON VI DA’);Writeln;Writeln(‘<Han Mac Tu>’:20);

- Writeln(-b/a);

2. Chú ý lắng nghe và ghi nhớ.

3. Quan sát kết quả chtrình và trả lời một số câu hỏi:

Viết ra màn hình dòng chữ và đưa con trỏ xuống dòng.- Dành 6 vị trí trên màn hình để viết số x, 6 vị trí tiếp để viết số y, …

5. N/cứu sgk, suy nghĩ vatr lời:- Readln đặt cuối chtrình để tạm dừng chtrình cho người dùng thấy kết quả của chtrình đưa ra màn hình.- Writeln để đưa con trỏ xuống đầu dòng dưới.

Program vd;Var x, y, z:integer;Begin Writeln(‘Nhap vao hai so: ’); Readln(x, y); Z:= x+y; Write(x:6, y:6, z:6); ReadlnEnd.

- Khi tham số có kiểu nguyên hoặc kiểu kí tự việc qui định vị trí là giống nhau <tham số>: <độ rộng>Vd1: write(c:10, x:6);- Khi tham số có kiểu thực phải qui định 2 loại vị trí: vị trí cho toàn bộ số thực và vị trí cho phần thập phân<tham số>: <độ rộng>: <số chữ số thập phân>Vd2: writeln(N:5, r:8:3); Write(7983:8:3)

4. Hoạt động 4: (3 phút)Làm quen với Turbo Pascal 7.0a. Mục tiêu: Biết được các file Ct cơ bản của TurboPascal 7.0. Biết cách khởi động và thoát khỏi TP 7.0

Giáo viên: Bùi Văn Tú 17

Nhap vao hai so: 5-6-----5-----6----11

---------E---145

---54--24.7007983.000

DAY THON VI DA--------------------------------- - - - - - - - <Han Mac Tu>_

Page 18: Giao an tin hoc 11 (in2)

Giáo án tin học11

b. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. ĐVĐ: Để sử dụng được Pascal trên máy phải có các file chtrình cần thiết. Y/cầu hs tham khảo Sgk và cho biết tên các file đó.2. Cách khởi động Tpascal:Bấm vào biểu tượng Turbo Pascal 7.0 trên màn hình- Giới thiệu màn hình soạn thảo CT: bảng chọn, con trỏ, vùng soạn thảo, ...

1. Tham khảo sgk và trả lờiTurbo.exe Turbo.tplGraph.tpu egavga.bgiVà các file *.chr2. Học sinh quan sát và ghi nhớ

5. Hoạt động 5: (5 phút)Tập soạn thảo chtrình vào dịch lỗi cú phápa. Nội dung:

Gõ các lệnh chtrìnhLưu file chtrình lên đĩa: bấm F2Biên dịch lỗi cú pháp: Alt + F9

b. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. Soạn một chtrình làm ví dụ, lưu chtrình, dịch lỗi.

2. Mở chtrình có sẵn, y/cầu hs chỉ các lỗi cú pháp trong CT, Biên dịch lỗi và sửa.Program vdVar x: integer;BigenWrite(‘nhap so ngduong );Readln(x);Y:= sqrt(x);Write(y);End;

1. Quan sát và ghi nhớ

Program vd;Var x, y: integer;BeginWrite(‘nhap so ngduong ‘);Readln(x);Y:= sqrt(x);Write(y);End.

- Lưu chtrình vào đĩa: bấm F2- Mở chtrình có trong đĩa: bấm F3- Biên dịch lỗi cú pháp: bấm Alt+F9- Đóng cửa sổ chtrình: bấm Alt+F3- Thoát khỏi phầm mềm: Alt+X

6. Hoạt động 6: (5 phút)Tập thực hiện chtrình và tìm lỗi thuật toán để hiệu chỉnha. Mục tiêu: Hs biết cách thực hiện một chtrình, nhập dữ liệu và tìm lỗi thuật toán để hiệu chỉnh.b. Nội dung:

- Chạy chtrình: bấm Ctrl+F9- Xây dựng các bộ test- Nhập dữ liệu, thu kết quả, đối chứng với kết quả của test.

c. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. Thực hiện chtrình ở trên, nhập dữ liệu, giới thiệu kết quảHỏi: Nhóm phím dùng để thựchiện chtrình?2. Giới thiệu chtrình giải pt: ax+b=0Var a, b:real;Begin Readln(a, b); If a<>0 then write(-b/a) else write(‘PTVN’); ReadlnEnd. Hãy tìm test để chứng minh chtrình này Sai.

1. Quan sát gv thực hiện và tham khảo sgk

Ctrl+F9

2. Đọc chtrình và độc lập suy nghĩ để tìm test và trả lời:a=0, b=0 pt vô số nghiệm

- Chạy chtrình: bấm Ctrl+F9

IV. ĐÁNH GIÁ CUỐI BÀI (2phút)1. Nội dung đã học2. Câu hỏi, bài tập về nhà

- So sánh sự giống nhau và khác nhau của các cặp lệnh write()/writeln() và read()/readln().

Giáo viên: Bùi Văn Tú 18

Page 19: Giao an tin hoc 11 (in2)

Giáo án tin học11

- Viết chtrình nhập vào một số và tính bình phương của số đó.- Viết chtrình nhập độ dài bán kính và tính chu vi, diện tích hình tròn tương ứng.- Làm bài tập 9, 10 sgk trang36- Xem trước nội dung phần bài tập và thực hành số 1 sgk trang 34* Xem phụ lục B sgk: Trang 122: Môi trường Turbo Pascal

Trang 136: Một số thông báo lỗi

Ngày soạn: 18/9/07Tiết 8 - 9 BÀI TẬP THỰC HÀNH SỐ 1

I. MỤC TIÊU1. Kiến thức

- Biết được một chtrình Pascal hoàn chỉnh.- Làm quen các dịch vụ chủ yếu của Turbo Pascal trong việc soạn thảo, lưu, dịch, thực hiện chtrình.

2. Kĩ năng- Soạn thảo được chtrình, lưu lên đĩa, dịch lỗi cú pháp, thực hiện và tìm lỗi thuật toán và hiệu chỉnh. - Bước dầu biết phântích và hoàn thành chtrình đơn giản trên Pascal

3. Thái độ: Tự giác, tích cực và chủ động trong thực hành

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: Phong máy vi tính được cài đầy đủ Turbo Pascal, projector để hướng dẫn2. Học sinh: Sgk, sách bài tập và bài tập đã viết ở nhà

III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (8 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HSViết chtrình nhập vào một số và tính bình phương của số đó.Cho 2 hs xung phong lên bảng

Nhận xét, đánh giá, cho điểm

Chtrình đạt yêu cầu:Var x, y: integer;BeginWrite(‘nhap vao một so ’); readln(x);Y:= sqr(y);Write(y); readlnEnd.

2. Hoạt động 2: (30phút)Tìm hiểu một chtrình hoàn chỉnh a. Nội dung: Cho chương trình sau:Program Giai_pt;Uses crt;Var a, b, c, d, x1, x2: real;Begin

Clrscr;Write(’nhap a b c ’); Readln(a, b, c);D:= b*b-4*a*c;X1:= (-b-sqrt(d))/(2*a);X2:= (-b+sqrt(d))/(2*a);Writeln(’x1=’,x1:6:2,’ x2=’,x2:6:2);Readln

End.b. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Chiếu chtrình lên bảng. Y/cầu hs thực hiện các nhiệm vụ:- Soạn chtrình vào máy- Lưu chtrình- Dịch lỗi cú pháp

1. Quan sát chtrình, đọc lập soạn vào máy

F2Alt+F9

Program Giai_pt;Uses crt;Var a, b, c, d, x1, x2: real;BeginClrscr;Write(’nhap a b c ’);

Giáo viên: Bùi Văn Tú 19

Page 20: Giao an tin hoc 11 (in2)

Giáo án tin học11

- Thực hiện chtrình- Nhập dữ liệu 1 -3 2. Thông báo kết quả- Trở về màn hình soạn thảo- Thực hiện chtrình- Nhập dữ liệu 1 0 2. Thông báo kết quả.- Vì sao có lỗi xuất hiện?

Ctrl+F9x1=1.00 x2=2.00

EnterCtrl+F9Thông báo lỗi

Do căn bậc hai của một số âm

Readln(a, b, c);D:= b*b-4*a*c;X1:= (-b-sqrt(d))/(2*a);X2:= (-b+sqrt(d))/(2*a);Writeln(’x1=’,x1:6:2,’ x2=’, x2:6:2);ReadlnEnd.

3. Hoạt động 3: (45 phút)Rèn luyện kĩ năng lập chương trình.a. Mục tiêu: Hs soạn, lưu, dịch và thực hiện được chương trìnhb. Nội dung: Viết chương trình nhập từ bàn phím 2 số thực a và b, tính và đưa ra màn hình trung bình cộng các bình phương của hai số đó.c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Định hướng để hs phân tích bài toán- Dữ liệu vào: - Dữ liệu ra:- Cách tính:2. Y/cầu hs tự sọan chtrình và lưu lên máy.

Quan sát hướng dẫn từng nhóm hs trong lúc thực hành

3. Y/cầu hs nhập dữ liệu và thông báo kết quả- Với a=5, b=7- Với a=7, b=-5

1. Phân tích theo yêu cầu của gv- Dữ liệu vào: a b- Dữ liệu ra: tb- tb =(a2+b2)/22. Thực hiện các y/cầu của gv- Soạn chtrình- F2, gõ tên file để lưu- Alt+F9 : biên dịch lỗi- Ctrl+F9: t/hiện chtrình3.Nhập dữ liệu theo y/cầu.

- Với a=5, b=7 thì tb=37- Với a=7, b=-5thì tb=37

Bài toán: Viết chương trình nhập từ bàn phím 2 số thực a và b, tính và đưa ra màn hình trung bình cộng các bình phương của hai số đó.

IV. ĐÁNH GIÁ CUỐI BÀI (7phút)1. Nội dung đã họcCác bước để hoàn thành một chương trình:

- Phân tích bài toán để xácđịnh dữ liệu vào/ra- Xác định thuật toán- Soạn thảo chtrình vào máy- Lưu trữ chtrình- Biên dịch chtrình- Thực hiện và hiệu chỉnh chtrình

2. Câu hỏi, bài tập về nhà- Viết chương trình nhập vào độ dài 3 cạnh của một tam giác, tính chu vi, diện tích của tam giác đó.- Làm bài tập 7, 8, 9, 10 sgk trang 36

+ Soạn chương trình+ Dịch lỗi và thực hiện+ Nhập dữ liệu và kiểm tra kết quả

- Xem trước bài: Cấu trúc rẽ nhánh, sgk trang38

Ngày soạn: 19/09/07Tiết 10 BÀI TẬP ÔN CHƯƠNG II

I. MỤC TIÊU1. Kiến thức: Biết phânbiệt các loại biểu thức trong NNLT2. Kĩ năng: Viết được các biểu thức số học và logic với các phép toán thông dụng.

II. ĐỒ DÙNG DẠY HỌC

Giáo viên: Bùi Văn Tú 20

Page 21: Giao an tin hoc 11 (in2)

Giáo án tin học11

1. Giáo viên: bài giải các bài tập sgk2. Học sinh: sgk

III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (15 phút) Kiểm tra 15 phút

Hđ của GV Hđ của HSPhát đề cho hsThu bài làm của hs

Nhận đề và làm bàiNộp bài làm

2. Hoạt động 2: (10 phút) Bài tập 8/sgk/36a. Mục tiêu: Xây dựng được biểu thức logic làm điều kiện để giải một số bài toán đơn giảnb. Nội dung: Viết biểu thức lôgic cho kết quả True khi tọa độ (x, y) là điểm nằm trong vùng gạch chéo kể cả biên của hình 2.a và 2.b (trang 36/sgk)c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Hình 2.a:Y/cầu hs quan sát hình và trả lời các câu hỏi:- Giá trị của y trong vùng gạch chéo?- Giá trị của x trong vùng gạch chéo?- Điểm A(x,y) thì x, y có quan hệ thế nào?- Y/cầu hs từ các biểu thức quan hệ viết ra bthức lôgic theo yêu cầu của đề?- Phân tích các giá trị x, y để đơn giản biểu thức

(y<=1) and (abs(x)<=y)2. Hình 2.bY/cầu hs tự làm, tương tự hình 2.a

Quan sát hình và trả lời

0<=y<=1-1<=x<=1

|x|<=y

(|x|<=y) and ((x>=-1)and (x<=1)) and ((y>=0) andy<=1)Chú ý lắng nghe, để ý cách xác định giá trị đúng.

Tự làm3. Hoạt động 3: (15 phút)Bài 9/sgk/36a. Mục tiêu: Củng cố lại các bước khi xây dựng chương trình, sử dụng các dạng câu lệnh vào ra đã học.b. Nội dung:Bài 9/sgk/36c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng- Y/cầu hs đọc đềĐịnh hướng để hs phân tích bài toán- Dữ liệu vào: - Dữ liệu ra:- Cách tính:

Y/cầu hs tự viết chương trình

- Chỉ định 1 hs lên bảng trình bày- Y/cầu hs khác nhận xét bài làm trên bảng (lỗi cú pháp, thuật toán,…)- Treo bảng có sẵn chtrình đúng để hs so sánh.(Pi là hằng có sẵn trong Pascal có giá trị 3.1415926536)

Chạy thử chtrìnhNếu a=2 thì kquả: 6.2832

- Đọc đề

- Dữ liệu vào: a =R- Dữ liệu ra: dtích phần gạch chéo (1/2 dtích hình tròn)- Cách tính: a*a*pi/2Hs độc lập viết chương trình- 1 hs lên bảng- Nhận xét

So sánh, nhận xétProgram dt;Var a: real;BeginWrite(‘nhap gia tri a (a>0) ‘); readln(a);Writeln(‘Dien tich can tim la: ‘, a*a*pi/2 :20:3);Readln;End.

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)

Giáo viên: Bùi Văn Tú 21

Page 22: Giao an tin hoc 11 (in2)

Giáo án tin học11

1. Nội dung đã học2. Câu hỏi, bài tập về nhà

Xem trước bài: Cấu trúc rẽ nhánh, sgk trang 38

Giáo viên: Bùi Văn Tú 22

Page 23: Giao an tin hoc 11 (in2)

Giáo án tin học11

CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP

Ngày soạn: 30/9/07Tiết 11 CẤU TRÚC RẼ NHÁNH

I. MỤC TIÊU1. Kiến thức

- Hiểu nhu cầu của cáu trúc rẽ nhánh trong biểu diễn thuật toán.- Học sinh nắm vững ý nghĩa và cú pháp của câu lệnh rẽ nhánh dạng khuyết và dạng đủ, hiểu được cách sử

dụng câu lệnh ghép.2. Kĩ năng

- Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản.- Viết được các lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ và áp dụng được để thể hiện thuật toán của một số

bài toán đơn giản

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: + Soạn giáo án. + Chuẩn bị bảng phụ sau:

2. Học sinh: sọan bài ở nhà.

III. PHƯƠNG PHÁP: Giảng giải + hoạt động của học sinh.

IV. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HSCho 2 số nguyên a, b; tìm Max(a,b).Yêu cầu: viết phần tên, phần khai báo, và câu lệnh nhập a, b bằng Pascal. Nêu thuật toán tìm Max(a,b).Gọi 2 hs lên bảngNhận xét, đánh giá, cho điểm Đ/án: Program baitap;Var a, b, max : integer;Begin readln(a,b);end.

2 hs lên bảng trả lời độc lập.

Hs khác nhận xét

2. Hoạt động 2: (5 phút) Tìm hiểu cấu trúc rẽ nhánh thiếu và đủHoạt động của GV Hoạt động của HS Nội dung

- Với bài toán trên làm thế nào để tìm Max(a, b)?

- Hãy mô tả thuật toán bằng NNLT Pascal?- Hãy cho biết câu: Nếu …thì … là loại câu gì?

- So sánh:+ Nếu a>b thì max = a.+ Nếu a<b thì max = b.- Chưa làm được

- Câu điều kiện.

1. Rẽ nhánh:* Một số mệnh đề có dạng điều kiện:+ Dạng thiếu: Nếu…thì…+ Dạng đủ: Nếu … thì … nếu không thì …

Giáo viên: Bùi Văn Tú 23

Câu lệnh

IF

Đ_kiện Đ

S

Câu lệnh 1

IF

Điều kiện ĐSCâu lệnh 2

Page 24: Giao an tin hoc 11 (in2)

Giáo án tin học11

Còn dạng nào khác không?

- Hãy cho ví dụ về các loại câu điều kiện* Chọn hai câu làm ví dụ. Từ đó phân tích cho học sinh thấy cấu trúc rẽ nhánh thể hiện trong ví dụ này.

- Có, Nếu …thì … nếu không thì …- Nếu có học bài thì đạt điểm 10.- Nếu là người lớn thì 5000đ nếu trẻ em thì 1000đ.

* Cấu trúc dùng để mô tả các mệnh đề như trên được gọi là cấu trúc rẽ nhánh thiếu và đủ.* Mọi ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc rẽ nhánh.

3. Hoạt động 3: (12 phút)Câu lệnh If …thenHđ của GV Hđ của HS Nd ghi bảng

1. Y/cầu hs n/cứu sgk và dựa vào các ví dụ cấu trúc rẽ nhánh để đưa ra cấu trúc chung của câu lệnh rẽ nhánh.2. Khi không đề cập đến việc gì xãy ra nếu điều kiện không thõa mãn cấu trúc câu lậnh rẽ nhánh như thế nào?

3.Gọi học sinh viết câu lệnh so sánh để tìm Max(a, b) bằng 2 cách.

- Có thể chỉ dùng 1 câu lệnh khuyết?max:=a; if a < b then max:=b;

Lưu ý: Trước từ khoá Else không có dấu ; - Dạng nào thuận tiện hơn?

1. N/cứu sgk và trả lờiIf<điều_kiện>Then<lệnh1> Else<lệnh2>;2. Chú ý lắng nghe và trả lời. Câu lệnh khuyết:If <điều_kiện> Then<lệnh>;3. Lên bảngIf a > b then max:= a;If a < b then max:= b;Hoặc: If a > b then max:=a Else max:=b;

Suy nghĩ và trả lời.-> tuỳ trường hợp cụ thể.

2. Câu lệnh IF – THEN:* Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh:a. Dạng đủ:IF <điều kiện> THEN <câu lệnh 1> ELSE < câu lệnh 2>;b. Dạng khuyết: (dạng đặc biệt)IF <điều kiện> THEN <câu lệnh>;

4. Hoạt động 4: (3 phút) Câu lệnh ghépHđ của GV Hđ của HS Nd ghi bảng

1. Nêu vđ: Sau then, sau else phải có một câu lệnh. Nhưng thực tế trong các trường hợp phức tạp đòi hỏi phải là nhiều câu lệnh. NNLT cho phép gộp dãy các lệnh thành một câu lệnh ghép2. Y/cầu hs n/cứu sgk cho biết cấu trúc câu lệnh ghép trong Pascal

1. Chú ý lắng nghe

2. N/cứu sgk và trả lờiBegin<các lệnh cần ghép>;End;

Câu lệnh ghép trong Pascal: Begin<các lệnh cần ghép>;End;

5. Hoạt động 5: (18 phút)Rèn luyện kĩ năng vận dụng lệnh Ifa. Nội dung:

Vd1: Viết chương trình nhập vào độ dài 2 cạnh của một hình chữ nhật, tính chu vi, diện tích của hcn đó.Vd2: Tìm nghiệm của pt bậc hai: ax2+bx+c=0

b. Cách tiến hànhHđ của GV Hđ của HS Nd ghi bảng

1. Nêu nội dung, mục đích yêu cầu của vd1

Chtrình này các em đã viết, hãy cho biếtcó hạn chế nào trong chtrình của em không?- Hãy nêu ra hướng giải quyết của các em .

- Y/cầu hs về nhà hoàn thiện chtrình.2. Nêu nội dung, mục đích yêu cầu của bài tập vd2.- Hãy nêu các bước chính để trả lời nghiệm pt bậc hai?

1. Chú ý dẫn dắt của gv

Khi nhập độ dài âm thì cho ra dtích, chu vi âm. Điều này không có trong thực tế- Dùng câu lệnh rẽ nhánh để kiểm tra giá trị độ dài các cạnh. Nếu độ dài dương thì tính dtích và chu vi, ngược lại thì thông báo độ dài Sai.2. Ghi đề bài, chú ý mục đích, y/cầu của bài tập .

Vd1: Viết chương trình nhập vào độ dài 2 cạnh của một hình chữ nhật, tính chu vi, diện tích của hcn đó.

Vd2: Tìm nghiệm của pt bậc hai: ax2+bx+c=0

Giáo viên: Bùi Văn Tú 24

Page 25: Giao an tin hoc 11 (in2)

Giáo án tin học11

- Ta cần bao nhiêu lệnh rẽ nhánh để mô tả các bước trên?

- Y/cầu hs viết chtrình hoàn thiện (1hs trình bày trên bảng)Gọi hs khác nhận xét, đánh gía - Chuẩn hóa lại chtrình cho cả lớp bằng việc treo bảng chtrình mẫu của gv đã chuẩn bị.

+ Tính delta+ Nếu delta<0 thì pt vô nghiệm+ Nếu delta >=0 thì kết luận pt có nghiệm:x1=(-b+sqrt(delta))/(2*a)x2=(-b-sqrt(delta))/(2*a)- Hai câu lệnh rẽ nhánh dạng khuyết hoặc 1 lệnh rẽ nhánh dạng đầy đủ.- 1 hs lên bảng viết chtrình

Lấy ý kiến của 2-3hs

Program ptbac2;Var a, b, c, d, x1, x2: real;Begin Write(‘nhap a, b, c ‘);Read(a,b,c);D:=b*b-4*a*c;If d<0 then write(‘pt vo nghiem’) else begin x1=(-b+sqrt(delta))/(2*a); x2=-b/a-x1; write(‘x1= ’,x1:6:2,’ x2= ’,

x2:6:2) end;readln;End.

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học

Cấu trúc chung và sơ đồ thực hiện của cấu trúc rẽ nhánh IF2. Câu hỏi, bài tập về nhà

Xem trước bài: Cấu trúc lặp, sgk, trang 42- Trả lời câu hỏi 1, 2, 4 sgk trang 50, 51- Viết chtrình nhập vào 3 số a, b, c và in ra màn hình giá trị lớn nhất trong 3 số đó.- Viết chtrình giải pt: ax4 + bx2 + c = 0.

Ngày soạn: 2/10/07Tiết 12 CẤU TRÚC LẶP (tiết 1/3)

I. MỤC TIÊU1. 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 PascalBiế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.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: Máy vi tính, Projector, sgk, sgv2. Học sinh: sgk

III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (7 phút) Kiểm tra bài cũ

Hđ của GV Hđ của 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 đó?2. 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ố lớn hơn.Gọi 2 hs lên bảng trả lời.Nhận xét, đánh giá cho điểm

Hs1: trình bày miệng

Hs2: trình bày lên bảng

Hs khác nhận xét bài làm của hs2

2. Hoạt động 2: (20 phút)Tìm hiểu ý nghĩa cấu trúc lặp

Giáo viên: Bùi Văn Tú 25

Page 26: Giao an tin hoc 11 (in2)

Giáo án tin học11

a. Mục tiêu: Hs thấy được sự cần thiết của cấu trúc lặp trong lập trình.b. Nội dung:

- Bài toán 1: Viết CT tính tổng

- Bài toán 2: Ông An có số tiền là S, ông gửi tiết kiệm ngân hàng với lãi suất 1,5%/tháng. Hỏi sau 12 tháng (không rút tiền lãi hàng tháng) ông ta được số tiền là bao nhiêu?c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Nêu bài toán 1 đặt vấn đề

- Hãy xác định công thức toán học để tính tổngGợi ý phương pháp: Ta xem S là một cái xô, các số hạng là những cái ca có dung tích khác nhau, khi đó việc tính tổng trên tương tự như việc đổ các ca nước vào xô S.- Có bao nhiêu lần đổ nước như vậy?- Mỗi lần đổ 1 lượng là bao nhiêu?

- Phải viết bao nhiêu lệnh để thể hiện việc này?2. Nêu bài toán 2 để đặt vấn đề tiếp tục.(treo bảng chứa nội dung bài toán)- Em hiểu như thế nào về cách tính tiền gửi tiết kiệm trong bài toán 2.

- Số tiền thu được sau tháng thứ nhất là bao nhiêu?- Theo y/cầu của bài toán ta cần thực hiện tính bao nhiêu lần như vậy?Dẫn dắt: Chương trình được viết như vậy sẽ rất dài, khó đọc, dễ sai sót. cần có một cấu trúc điều khiển việc lặp lại thực hiện các công việc ở trên.- Trong tất cả mọi NNLT đều có một cấu trúc điều khiển việc thực hiện lặp lại với số lần đã định trước.3. Chia lớp thành 4 nhóm: 2 nhóm viết t/toán btoán1, 2 nhóm viết t/toán btoán 2.

- Thu kết quả các nhóm, treo lên bảng, gọi hs nhóm khác nhận xét, đánh giá.- Chuẩn hóa lại thuật toán cho hs.

1. Chú ý quan sát bài toán đặt vấn đề.- Rất khó xác định

Theo dõi gợi ý.

- Thực hiện 100 lần

- Mỗi lần đổ

- Viết 100 lệnh.

2. Chú ý quan sát và trả lời các câu hỏi.- Với số tiền S sau mỗi tháng sẽ có số tiền lãi 0.015*S.Số tiền lãi sẽ được cộng vào số tiền ban đầu để tính lãi cho tháng tiếp theo:

- S := S + 0.015*S

- Thực hiện 12 lần.- Tập trung theo dõi gv trình bày.

3. Thảo luận theo nhóm để viết thuật toán:Btoán 1:B1: N←0; S←1/a;B2: N←N+1;B3: Nếu N>100 thì chuyển sang B5B4: S←S+1/(a+N), quay lại B2;B5: Đưa ra S, rồi kết thúc. Btoán 2:B1: Nhập S; I←0;B2: I ←I + 1;B3: Nếu I >12 thì chuyển sang B5;

Bài toán 1: Viết CT tính tổng

Bài toán 2: Ông An có số tiền là S, ông gửi tiết kiệm ngân hàng với lãi suất 1,5%/tháng. Hỏi sau 12 tháng (không rút tiền lãi hàng tháng) ông ta được số tiền là bao nhiêu?

Giáo viên: Bùi Văn Tú 26

Page 27: Giao an tin hoc 11 (in2)

Giáo án tin học11

B4: S←S + 0.015*S, quay lại B2B5: Đưa ra S, rồi kết thúc- Thông báo kết quả viết được.- Nhận xét bài làm của nhóm khác.

3. Hoạt động 3: (15 phút)Tìm hiểu lệnh lặp For trong NNLT Pascala. Mục tiêu: Hs biết được cấu trúc chung của câu lệnh lặp FOR. Hiểu ý nghĩa các thành phần trong câu lệnh. Biết đượ sự thực hiện của máy khi gặp câu lệnh For. Vẽ được sơ đồ thực hiện đó.b. Nội dung:- Dạng tiến:

FOR <biến đếm>:= <giá trị đầu> TO <giá trị cuối> DO <lệnh cần lặp>;- Dạng lùi:

FOR <biến đếm>:= <giá trị cuối> DOWNTO <giá trị đầu> DO <lệnh cần lặp>;Trong đó:

+ <giá trị đầu> phải nhỏ hơn <giá trị cuối> + Biến đếm là kiểu nguyên, kí tự hoặc miền con

Giá trị biến đếm tự động tăng(giảm) 1 đơn vị sau khi thực hiện câu lệnh cần lặp.

c. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. Y/cầu hs n/cứu sgk vàcho biết cấu trúc chung của lệnh For?

Giải thích:<biến đếm>- Hỏi: Ý nghĩa của <giá trị đầu>, <giá trị cuối>, kiẻu dữ liệu của chúng?

Trong btoán 1:<giá trị đầu>, <giá trị cuối> có giá trị bằng bao nhiêu?Dẫn dắt: những lệnh nào cần lặp lại ta đặt sau DO. Khi nhiều lệnh cần đặt sau Do ta phải viết thế nào?- Hỏi: + Trong bài toán tiết kiệm lệnh nào cần lặp lại?+ Trong bài toán tính tổng lệnh nào cần lặp lại?- Hãy so sánh giá trị của <giá trị đầu> và <giá trị cuối>?Dẫn dắt: Khi đó câu lệnh For đgl For tiến, NNLT Pascal còn có dạng ngược lại là For lùi.2. Y/cầu hs trình bày cấu trúc For lùi.

Hãy so sánh giá trị của <giá trị đầu> và <giá trị cuối>?- Hai bài toán trên dùng lệnh For nào là phù hợp?

1. Đọc sgk và trả lờiFOR <biến đếm>:= <giá trị đầu> TO <giá trị cuối> DO <lệnh cần lặp>;

- để làm giới hạn cho biến đếm, cùng kiểu với biến đếm-<giá trị đầu> là 1<giá trị cuối> là 100

- Sử dụng câu lệnh ghép.

S:= S + 0.015*S;

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

<giá trị đầu> ≤ <giá trị cuối>

2. N/cứu sgk, suy nghĩ, so sánh với dạng For tiến rồi trả lời FOR <biến đếm>:= <giá trị cuối> DOWNTO <giá trị đầu> DO <lệnh cần lặp>;

<giá trị đầu> ≤ <giá trị cuối>

- Sử dụng For tiến

a. Dạng tiến

FOR <biến đếm>:= <giá trị đầu> TO <giá trị cuối> DO <lệnh cần lặp>;Sơ đồ:

b.Dạng lùi

FOR <biến đếm>:= <giá trị cuối> DOWNTO <giá trị đầu> DO <lệnh cần lặp>;Sơ đồ:

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

Giáo viên: Bùi Văn Tú 27

bđếm:= <gtrị đầu>

bđếm<=gtrị cuối

Câu lệnh lặpbđếm :=bđếm + 1

Đ

S

bđếm:= <gtrị cuối>

bđếm>=gtrị đầu

Câu lệnh lặpbđếm :=bđếm - 1

Đ

S

Page 28: Giao an tin hoc 11 (in2)

Giáo án tin học11

1. Nội dung đã họcCấ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 và 2 đã nêu ở đầu tiết.- Giải bài tập 5a, 6 sgk/51- 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.

Ngày soạn: 3/10/07Tiết 13 CẤU TRÚC LẶP (tiết 2/3)

I. MỤC TIÊU1. 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.2. Kĩ năng

Vận dụng đúng đắn các dạng của lệnh lặp ForViế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.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: Giáo án, sgk, Projector, bảng phụ chứa các chương trình mẫu.2. Học sinh: sgk

III. HOẠT ĐỘNG DẠY HỌC

1. Hoạt động 1: (7 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HS1. 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?- Gọi hs lên trả lời2. Viết CT nhập vào 2 số nguyên dương a, b (a<b), tính và đưa ra màn hình tổng các số nguyên trong phạm vi từ a đến b.- Cho hs xung phong.

Nhận xét, đánh giá, cho điểm

Hs1: trả lời câu hỏi 1

Hs2: trình bày chương trình trên bảng Var a, b, i , S : longint;Begin Write(‘Nhap a va b (a<b): ‘); Readln(a, b); S := 0; For i := a To b Do S := S + i ; Writeln(‘Ket qua: ’, S); ReadlnEnd.

2. Hoạt động 2: (15 phút) Rèn luyện kĩ năng vận dụng câu lệnh For và câu lệnh rẽ nhánh IfHđ của GV Hđ của HS Nd ghi bảng

Dẫn dắt: Từ bài toán KTBC ở trên, nếu ta y/cầu tính và đưa ra màn hình tổng các số chẵn và tổng các số lẻ trong phạm vi từ a đến b.- Ghi bảng (sửa lại nội dung đề bài toán) Y/cầu hs phân tích đề bài và trả lời câu hỏi.- So sánh với bài toán trước thì có gì khác?

- Ta cần đưa ra màn hình mấy giá trị?

- Việc chính cần thực hiện trong câu lệnh lặp là gì?

-Ghi đề bài toán-Lắng nghe, phân tích bài toán và trả lời -Tl: tính tổng các số chẵn và tổng các số lẻ riêng-Tl: 2 giá trị (S1: tổng chẵn; S2: tổng lẻ)Tl: Kiểm tra biến đếm i : nếu i là chẵn thì S1:=S1+i ngược

BÀI TẬPBài 1: Viết CT nhập vào 2 số nguyên dương a, b (a<b), tính và đưa ra màn hình tổng các số chẵn và tổng các số lẻ trong phạm vi từ a đến b.

Giáo viên: Bùi Văn Tú 28

Page 29: Giao an tin hoc 11 (in2)

Giáo án tin học11

- Hãy mô tả việc trên bằng lệnh lặp For?

- Y/cầu hs cả lớp tự hoàn thành chương trình. Cho 1 hs lên bảng trình bày.* Chuẩn hóa lại bài làm của hs bằng chương trình mẫu (treo chtrình đã chuẩn bị trên bảng phụ)

lại (i là lẻ)thì S2:=S2+i.Đứng tại chổ trả lời:For I:=a To b Do If I mod 2 =0 then S1:=S1+I else S2:=S2+I ;

Trình bày trên bảng.

Quan sát chtrình của giáo viên và ghi nhớ.

Var a, b, i , S1, S2 : longint;Begin Write(‘Nhap a va b (a<b): ‘); Readln(a, b); S1 := 0; S2 := 0; For i := a To b Do If i mod 2 = 0 then S1 := S1 + i else S2 := S2 + i; Writeln(‘Tong chan: ’, S1,

’ Tong le: ’,S2); ReadlnEnd.

3. Hoạt động 3: (20 phút) Tiếp tục vận dụng câu lệnh lặp For để giải quyết một bài toán đơn giản.Hđ của GV Hđ của HS Nd ghi bảng

1. Nêu đề bài toán (Ghi bảng)

- Cách tính tiền gửi tiết kiệm hàng tháng như thế nào?

- Vậy, công thức tính tiền thu được sau mỗi tháng như thế nào?- câu lệnh lặp này lặp bao nhiêu lần?- Xác định giá trị đầu và giá trị cuối của câu lệnh For để thực hiện việc lặp trên?2. Y/cầu hs viết chương trình vào vở, cho 1 hs trình bày lên bảng.* Chuẩn hóa lại bài làm của hs bằng chương trình mẫu (treo chtrình đã chuẩn bị trên bảng phụ)3. (Nếu còn thời gian)Hỏi sau 12 tháng gửi (không rút tiền lãi hàng tháng), ông ta được số tiền nhiều hơn số tiền ban đầu là bao nhiêu? Ta phải sửa lại chtrình trên như thế nào?

1. Đọc đề bài toán, phân tích và trả lời câu hỏi:Tl: Với số tiền S, sau mỗi tháng sẽ có lãi là: 0.015*S.Số tiền này sẽ cộng vào số tiền ban đầu để tính lãi cho tháng tiếp theo.Tl: S := S + 0.015*S;

Tl: 12 lầnTl: gtrị đầu là 1; gtrị cuối là 12.

2. Thảo luận và tự viết chương trình

Quan sát chtrình của giáo viên và ghi nhớ.3. Suy nghĩ và trả lời

Bài 2: Ông Ba có số tiền là S, ông gửi tiết kiệm ngân hàng với lãi suất 1.5%/tháng. Hỏi sau 12 tháng gửi (không rút tiền lãi hàng tháng), ông ta được số tiền là bao nhiêu?

Var s:real; i:byte;Begin Write(‘So tien ban dau: ’); Readln(S); For i:= 1 To 12 Do

S:= S + 0.015*S; Writeln(‘So tien nhan duoc

la: ’,S:8:3); ReadlnEnd.

IV. ĐÁNH GIÁ CUỐI BÀI (3phút)Câu hỏi, bài tập về nhà

Làm một số bài trong sách bài tập Tin học 11: 3.23, 3.29; 3.31Xem trước phần nội dung cấu trúc lặp với số lần chưa biết trước While

Giáo viên: Bùi Văn Tú 29

Page 30: Giao an tin hoc 11 (in2)

Giáo án tin học11

Ngày soạn: 16/10/07Tiết 14 CẤU TRÚC LẶP (tiết 3/3)I. MỤC TIÊU1. 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.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: Sgk, sgv, bảng phụ 2. Học sinh

III. HOẠT ĐỘNG DẠY HỌC

1. Hoạt động 1: (10 phút) Tìm hiểu ý nghĩa của cấu trúc lặp có số lần chưa biết trước

a. Mục tiêu:

Biết được sự cần thiết phải có của cấu trúc lặp có số lần chưa biết trước trong lập trìnhb. Nội dung:

- Bài toán 1: Viết CT tính tổng cho đến khi

- Bài toán 2: Ông An có số tiền là A đồng, ông gửi tiết kiệm ngân hàng với lãi suất 1,5%/tháng. Hỏi sau bao nhiêu tháng (không rút tiền lãi hàng tháng) ông ta được số tiền lớn hơn B đồng?c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Nêu nội dung bài toán 1

-Sự khác nhau của bài toán này với bài toán tính tổng đã học ở tiết trước?- Lặp bao nhiêu lần?- Lặp đến khi nào?

2. Nêu nội dung bài toán 2

-Sự khác nhau của bài toán này với bài toán đã giải ở tiết trước?

- Lặp bao nhiêu lần?

- Lặp đến khi nào?

Tóm lại, qua 2 ví dụ trên ta thấy có 1 dạng toán có sự lặp lại của câu lệnh nhưng không biết được số lần lặp. Cần có 1 cấu trúc điều khiển lặp lại 1 công việc nhất định khi thõa mãn 1 điều kiện nào đó.

1. Chú ý lắng nghe, quan sát và suy nghĩ trả lời-Bài trước: cho giới hạn NBài này: cho giới hạn S- Chưa xác định được ngay- Cho đến khi điều kiện

được thõa mãn

2. Chú ý lắng nghe, quan sát và suy nghĩ trả lời- Bài trước: biết số tháng, hỏi số tiềnBài này: biết số tiền, hỏi số tháng- Chưa biết, đó chính là số tháng phải tìm- Đến khi số tiền thu được >B

Bài toán 1

Bài toán 2

2. Hoạt động 2: (15 phút) Tìm hiểu cấu trúc lệnh lặp While trong NNLT Pascala. Mục tiêu:- Biết được cấu trúc chung của lệnh lặp While. Hiểu được ý nghĩa của các thành phần trong câu lệnh. Biết được sự thực hiện của máy khi gặp While. Vẽ được sơ đồ thực hiện.b. Nội dung:

Giáo viên: Bùi Văn Tú 30

Page 31: Giao an tin hoc 11 (in2)

Giáo án tin học11

Cấu trúc: While <điều kiện> Do <lệnh cần lặp>;Sự thực hiện:

Bước 1: Tính giá trị của <điều kiện>.Bước 2: Nếu <điều kiện> có giá trị đúng thì:

thực hiện lệnh cần lặp và quay lại B1.c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Y/cầu hs n/cứu sgk và cho biết cấu trúc chung của lệnh lặp While.

Giải thích:<điều kiện>: biểu thức quan hệ hoặc biểu thức logic.<lệnh cần lặp>: các lệnh cần phải lặp lạiHỏi: - Điều kiện để lặp lại trong 2 bài toán là gì?

- Trong 2 bài toán lệnh cần lặp là gì?

- Dựa vào cấu trúc, cho biết máy thực hiện tính <điều kiện> trước hay <lệnh cần lặp> trước?- Sự khác nhau trong lệnh cần lặp của For và While là gì?2. Y/cầu hs vẽ sơ đồ thực hiện lên bảng- Gọi hs khác nhận xét.

* Treo sơ đồ mẫu và giải thích

1. Tham khảo sgk và trả lờiCấu trúc: While <điều kiện> Do

<lệnh cần lặp>;

Bt1:

Bt2: A < B+ Bt1:S := S + 1/(a+I); để tính tổngI := I + 1; để tăng chỉ số+ Bt2:A := A + 0.015*A; để tính tiềnT := T + 1; để tính số tháng- Suy nghĩ và trả lời:Tính điều kiện trước, thực hiện lệnh lặp sau.- Trong While phải có lệnh thay đổi biến chỉ số.2. Lên bảng vẽ sơ đồ thực hiện của lệnh While.-Nhận xét đúng sai và bổ sung* Chú ý lắng nghe và ghi nhớ

3. Câu lệnh While …Do

Cấu trúc:While <điều kiện> Do

<lệnh cần lặp>;

Sơ đồ thực hiện:

* Trong <lệnh cần lặp> phải có lệnh thay đổi biến chỉ số. (để thay đổi giá trị <điều kiện>)

3. Hoạt động 3: (15 phút) Rèn luyện kĩ năng vận dụng lệnh lặp Whilea. Mục tiêu:

Bước đầu biết sử dụng đúng lệnh While để lập trình giải quyết một số bài toán đơn giản.b. Nội dung:Ví dụ 1: Bài toán 2 tìm hiểu ở trênVí dụ 2: Viết chương trình tìm ước chung lớn nhất của 2 số nguyên dương M, N được nhập từ bàn phím.c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Trở lại bài toán 2- Đã xác định <điều kiện>, <lệnh cần lặp> hãy viết câu lệnh While hoàn chỉnh?

- Chia lớp theo từng bàn. Y/cầu hs từng bàn thảo luận và viết chương trình hoàn thiện. - Cho 1 hs lên bảng trình bày.- Gọi 1- 2hs khác n/xét, đánh giá.

* Chính xác hóa chương trình cho cả lớp.

1. Quan sát, xác định lại các thành phần và trả lời:While A< B Do begin A := A + 0.015*A; T := T + 1; end;- Tập trung làm việc theo bàn để viết hoàn chỉnh chương trình.- Lên bảng trình bày- N/xét Đúng–Sai, bổ sung.

Ví dụ 1:

Var A, B: extended; T: byte;BeginWrite(‘So tien ban dau A: ’); Readln( A);Write(‘So tien can co B(B>A): ’); Readln(B);T := 0;While A< B Do

Giáo viên: Bùi Văn Tú 31

điều kiện

lệnh cần lặp

S

Đ

Page 32: Giao an tin hoc 11 (in2)

Giáo án tin học11

(chỉnh sửa lại chtrình của hs)

2. Nêu nội dung ví dụ 2Phân tích để xác định <điều kiện> và <lệnh cần lặp>.Minh họa khi tìm ucln của 2 số 15 và 25

M 15 15 5 5N 25 10 10 5

Trả lời: ucln (15, 25) = 5Hỏi: - Điều kiện để tiếp tục lặp là gì?- Các lệnh cần lặp là gì?

- Y/cầu hs nêu thuật toán tìm ucln của 2 số đó.

- Y/cầu hs viết chương trình hoàn thiện bài toán ở nhà.Củng cố: Hãy nêu 2 câu hỏi cần đặt ra khi gặp bài toán dạng này?

* Ghi nhớ những phần sửa chữa của gviên.

2. Tập trung theo dõi để thấy công việc cần thực hiện

- Điều kiện: M<>N- M := M – N; hoặc N := N – M;- T/toán:B1: Nếu m=n thì ucln=m,

dừng;B2: Nếu m>n thì m:=m-n ngược lại n:=n-m, qlại B1.

Suy nghĩ và trả lời:+ Điều kiện nào để lặp lại+ Những lệnh nào cần lặp lại

begin A := A + 0.015*A; T := T + 1; end;Writeln(‘Phai cho ’,T,’ thang’);ReadlnEnd.

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học

- Cấu trúc chung của lệnh lặp While- Sơ đồ thực hiện của lệnh While và sự thực hiện của máy.

2. Câu hỏi, bài tập về nhà- Giải bài tập 5b, 7, 8 sgk trang 51.- Đọ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.- Xem trước nội dung bài thực hành số 2: sgk trang 49-50- Xem thêm nội dung phụ lục B, sgk trang 131: Lệnh rẽ nhánh và lặp (Case ... of Và Repeat ... Until)

Ngày soạn: 23/10/07Tiết 15 - 16 BÀI THỰC HÀNH SỐ 2

I. MỤC TIÊU1. Kiến thức: Nắm được cấu trúc và sơ đồ thực hiện của cẩu trúc rẽ nhánh2. Kĩ năng:

- Rèn luyện kĩ năng sử dụng cấu trúc rẽ nhánh trong việc lập trình giải một số ài toán cụ thể.- Làm quen với các công cụ phục vụ hiệu chỉnh chương trình

3. Thái độ: Tự giác, tích cực, chủ động trong thực hành

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: Phòng máy vi tính, Projector.2. Học sinh: Sgk, sbt, bài tập đã viết ở nhà.

III. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (35 phút) Làm quen với một chương trình và các công cụ hiệu chỉnh chtrình.a. Mục tiêu: Hs biết được nội dung chương trình và kết quả sau khi thực hiện chương trình. Biết các công cụ dùng để hiệu chỉnh chương trình khi cần thiết: thực hiện từng bước, xem kết quả trung gian.b. Nội dung: Viết chtrình nhập vào 3 số nguyên dương a, b, c và kiểm tra xem chúng có phải là bộ số Pitago hay không?c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng

Giáo viên: Bùi Văn Tú 32

Page 33: Giao an tin hoc 11 (in2)

Giáo án tin học11

1. Gợi ý để hs nêu khái niệm bộ số Pitago.

- Y/cầu hs cho ví dụ cụ thể?- Phải sử dụng các đẳng thức nào để kiểm tra 3 số bất kỳ a, b, c là bộ số Pitago?2. Chiếu chương trình mẫu lên bảng. Thực hiện mẫu các thao tác: lưu, thực hiện từng lệnh chtrình, xem kết quả trung gian, thực hiện chtrình và nhập dữ liệu.- Y/cầu hs gõ chtrình vào máy.- Y/cầu hs lưu chtrình theo hdẫn của sgk.- Y/cầu hs thực hiện từng lệnh chtrình.- Y/cầu hs xem các kết quả trung gian a2, b2, c2 trên của sổ Watches- Y/cầu hs tìm thêm bộ số a, b, c khác để thực hiện chtrình và so sánh

1. Theo dõi dẫn dắt của gv để nêu khái niệm về bộ số Pitago: tổng bình phương 2 số bằng bình phương số còn lại.Ví dụ: 4 5 3a2=b2+c2

b2=a2+c2

c2=a2+b2

2. Soạn chtrình vào máy.

Nhấn F2, gõ tên file, Enter

Nhấn F7, nhập giá trị cho a = 3, b = 5, c = 4.Làm theo hdẫn trên bảng

Quan sát qua trình rẽ nhánh của từng bộ dữ liệu vào rồi trả lời.

* Xem kết quả trung gian+ Vào Debug\ Watches, + nhấn phím Insert xuất hiện cửa sổ Add watch, nhập tên biến cần theo dõi giá trị, rồi nhấn Enter (lặp lại thao tác này nếu muốn cùng lúc xem giá trị nhiều biến)

2. Hoạt động 2: (45 phút )Rèn luyện kĩ năng lập trình hoàn thiện một bài toána. Mục tiêu: Hs đọc hiểu đề, phân tích yêu cầu của đề. Từ đó chọn được cấu trúc dữ liệu và lệnh phù hợp để lập trình.b. Nội dung: Viết chương trình tìm giá trị lớn nhất của 3 số a, b, c được nhập từ bàn phím.c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Nêu nội dung, mục đích y/cầu của bài toán.- Bước đầu tiên để giải bài toán?

- Y/cầu hs xác định các nội dung đó?

- Làm thế nào để xác định gtln của 3 số a, b, c? (Nêu các bước tìm ra gtln)- Y/cầu hs phát thảo thuật toán.- Qua thuật toán ta sẽ sử dụng cấu trúc nào để viết chương trình?2. Y/cầu hs gõ chương trình vào máy

Gviên tiếp cận từng máy tính để hướng dẫn và sửa sai.3. Y/cầu hs nhập dữ liệua = 23, b = 15, c = 23

4. Y/cầu hs tự xác định các bộ test khác để kiểm tra chtrình

1. Chú ý theo dõi vấn đề đặt ra của gv.- Xác định Input, Output và thuật toán-Input: 3 số a, b, cOutput: Gtln(a,b,c)- Trả lời theo dạng trình bày ý tưởng- Hs trình bày trên bảng- Cấu trúc rẽ nhánh

2. Độc lập từng nhóm soạn chtrình vào máy. Thông báo kết quả viết được.3. Nhập dữ liệu theo test cảu gv và thông báo kết quả.4. Tìm các bộ test khác và kiểm thử chtrình

Bài 2: Viết chương trình tìm giá trị lớn nhất của 3 số a, b, c được nhập từ bàn phím.

- Nhập a, b, c;- Nếu a>b thì nếu a>c thì max:=a nglại max:=c Nglại nếu b>c thì max:=b nglại max:=c;- Đưa ra max.

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)Câu hỏi, bài tập về nhà: chuẩn bị các bài tập sgk

Xem trước bài:

Giáo viên: Bùi Văn Tú 33

Page 34: Giao an tin hoc 11 (in2)

Giáo án tin học11

Ngày soạn: 24/10/07Tiết 17 BÀI TẬP CHƯƠNG 3

I. Mục tiêu:1. Kiến thức: Củng cố cho học sinh kiến thức về cấu trúc rẽ nhánh và cấu trúc lặp.2. Kỹ năng:

Rèn luyện kỹ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp để giải quyết bài toán đặt ra.3. Tư duy, thái độ: Rèn luyện ý thức tự giác học tập tích cực, ham thích tìm hiểu, chủ động trong giải quyết các bài tập.Rèn luyện tư duy khoa học, tư duy logic.II. Chuẩn bị của giáo viên và học sinh:

GV: - Soạn giáo án.HS: - Học bài cũ và chuẩn bị bài tập.

III. Phương pháp dạy học: Gợi mở và thuyết trình.IV. Tiến trình bài dạy:1. Hoạt động 1: (7phút) Kiểm tra bài cũ

Câu hỏi 1(H1): Trình bày cấu trúc câu lệnh rẽ nhánh và cấu trúc lặp ?Tg Hoạt động của HS Hoạt động của GV Ghi bảng

7’

- 1 HS lên bảng trả lời.

- Cả lớp theo dõi và nhận xét bổ sung (nếu có).

- GV gọi 1 HS lên trả lời H1.

- GV yêu cầu cả lớp nhận xét câu trả lời của bạn. - GV nhận xét và đánh giá.

-Rẽ nhánh If <btđk > then <lệnh 1> else <lệnh 2>;If <btđk > then <lệnh 1>;- Lặp For For <biến đếm>:= <giá trị đầu> To <giá trị cuối> Do <lệnh>; For <biến đếm>:= <giá trị đầu> Downto <giá trị cuối> Do <lệnh>;- Lặp WhileWhile<điềukiện>Do<lệnh>;

2. Hoạt động 2: (15 phút)Giải bài tập 4Câu hỏi 1(H1): Sử dụng lệnh If này gồm mấy nhánh ?Câu hỏi 2(H2): Hàm lấy giá trị tuyệt đối của biểu thức hay biến ?

Tg Hoạt động của HS Hoạt động của GV Ghi bảng

20’

- 1 HS lên bảng giải câu 4a)- 1 HS trả lời H1.- Các HS khác theo dõi và nhận xét.

- 1 HS lên bảng giải câu 4b) - 1 HS trả lời H2.

HĐTP1: - GV gọi 1 HS lên bảng giải câu 4a) - GV đặt H1. - GV yêu cầ cả lớp theo dõi và nhận xét.

- GV nhận xét, hoàn chỉnh bài làm và đánh giá.HĐTP2: - GV gọi 1 HS lên bảng giải câu 4b)

- GV đặt H2.

Câu 4a) If (sqrt(x) + sqrt(y)) <=1 then z:= sqrt(x) + sqrt(y) Else If y>=x then z:= x+y Else z:= 0.5;

Câu 4b) If (sqr(x-a) + sqr(y-b)) <=

Giáo viên: Bùi Văn Tú 34

Page 35: Giao an tin hoc 11 (in2)

Giáo án tin học11

- GV nhận xét và đánh giá.sqr(r) then z:=abs(x) +abs(y) Else z:= x+y;

3. Hoạt động 3: (20 phút) Giải bài tập 5

Câu hỏi 1(H1): Hãy khai triển biểu thức Y = dưới dạng tường minh ?

Câu hỏi 2(H2): Nhìn vào công thức khai triển, em hãy cho biết n lấy giá trị trong đoạn nào ?Câu hỏi 3(H3): Em hãy thử đưa ra phương pháp tính Y ?Câu hỏi 4(H4): Sử sụng cấu trúc điều khiển lặp nào là phù hợp ?

Tg Hoạt động của HS Hoạt động của GV Ghi bảng

15’

- 1 HS lên bảng trình bày H1. - 1 HS trả lời H2. - 1 HS trả lời H3 - 1 HS trả lời H4 - 1 HS lên bảng giải bài 5a - Các HS còn lại theo dõi và nhận xét bổ sung (nếu có).

- GV đặt H1.- GV đặt H2.- GV đặt H3.- GV đặt H4.- GV gọi 1 HS lên bảng giải bài 5a) - GV yêu cầu các HS còn lại theo dõi và nhận xét. - GV nhận xét, hoàn chỉnh bài làm và đánh giá.

Y =

Câu 5a) Uses crt; Var y: real; n: byte; Begin Clrscr; y:=0; for n:=1 to 50 do y:= y + n/(n+1); writeln(y:14:6); readln; End.

V. Củng cố và dặn dò (3’):1. Nắm được những nội dung đã học:

Có 2 cấu trúc lặp: Lặp For: Số lần lặp đã xác định Lặp While: Số lần lặp chưa xác định

2. Làm các bài tập còn lại trong SGK trang 51.

KIỂM TRA MỘT TIẾTI. Mục tiêu đánh giá, yêu cầu của đề1. Mục tiêu đánh giá: Kiểm tra sự hiểu bài của hs sau khi học xong chương1, 2, 3.2. Yêu cầu của đề:a. Kiến thức:

- Cách khai báo hằng, biến, cách tạo các biểu thức, cách sử dụng lệnh gán, cách sử dụng lệnh vào ra đơn giản.

- Khái niệm rẽ nhánh và lặp trong chương trình, khái niệm lập trình có cấu trúc.b. Kĩ năng:

- Biết khai báo biến đơn- Biết diễn đạt đúng các câu lệnh,soạn được chương trình các bài toán đơn giản

c. Thái độ:- Nghiêm túc ,cố gắng vượt qua những lúng túng.- Tiếp tục rèn luyện phẩm chất cần thiết cho người lập trình

II. Ma trận đề:Chương 2 Chương 3

Biết Câu 4, 5, 6, 9 Câu 10Hiểu Câu 3, 7 Câu 1,

Giáo viên: Bùi Văn Tú 35

Page 36: Giao an tin hoc 11 (in2)

Giáo án tin học11

Vận dụng Câu 11 Câu 2, 8, 12, Tự luậnIII. Nội dung đề:A. Trắc nghiệm (6đ) (Khoanh tròn vào 1 ý trả lời đúng cho mỗi câu ) 1. Các biến x, n1, n2 phải được khai báo như thế nào thì cấu trúc lặp sau thực hiện được:

FOR x := n1 TO n2 DO Begin ………End; A. Var x: integer ; n1, n2: real; B. Var x, n1, n2: integer; C. Var x, n1, n2: real; D. Var n1, n2: char; x: integer;

2. Cho đoạn chương trình sau:I := 1; S := 0;While S < 25 Do

begin S := S + 3;I := I +1

end;Kết quả I bằng bao nhiêu?

A. 1 B. 5 C. 9 D. 10

3. Chọn từ khoá : A. Writeln B. Integer C. Readln D. ELSE 4. Hàm div dùng để: A. Tính căn bậc B. Chia lấy phần dư C. Làm tròn 1 số D. Chia lấy phần nguyên 5. Từ nào là tên chuẩn:

A. END B. Readln C. If D. TYPE 6. Để nhập giá trị vào biến a ta có câu lệnh:

A. Readln(a); B. Realn(a); C. Readln('a'); D. Read('a'); 7. Giả sử a là biến có kiểu thực ,chọn lệnh phù hợp khi viết chương trình:

A. B. a:=b*b C. ; D.

8. Để in ra dãy số: 1 2 3 4 5 6 7 8 9 10 A. For i:=1 To 10 do write('1 2 3 4 5 6 7 8 9 10'); B. For i:=1 To 10 do write(i); C. For I : = 1 To 10 Do write(I , ' '); D. For I :=1 To 10 Do write('I ');

9. Kiểu Integer có phạm vi giá trị từ: A. 0 đến 216-1 B. -215 đến 215-1 C. -231 đến 231-1. D. 0 đến 225

10. Cú pháp lệnh If dạng thiếu : A. If <điều kiện> then <câu lệnh> B. If <điều kiện> then <câu lệnh>; C. If <câu lệnh> then <điều kiện> ; D. If <câu lệnh> else <điều kiện> ;

11. Cho chương trình pascal sau: Program cb1; Var x,y: real; Begin Write('x= '); readln(x); Y:=(((x+2)*x+3)*x+4)*x+5; Writeln('y=',y);

End. Chương trình trên tính giá trị của biểu thức nào trong các biểu thức sau:

A. y=x+2x+3x+4x+5 B. y=x3+5x2+4x+5 C. y=(x+2)(x+3)(x+4)+5 D. y= x4+2x3+3x2+4x+5

12. Trong NNLT Pascal, đoạn chương trình sau thực hiện công việc gì? I := 0; While I <>0 Do write(I, ' ');A. Lặp vô hạn việc đưa ra màn hình các chữ số 0 B. Đưa ra màn hình 10 chữ số 0 C. Đưa ra màn hình 1 chữ số 0 D. Không đưa ra thông tin gì.

B. Tự luận (4đ)Viết chương trình tính tổng các ước số của một số nguyên dương N được nhậpvào từ bàn phím (không kể ước là chính nó).

Giáo viên: Bùi Văn Tú 36

Page 37: Giao an tin hoc 11 (in2)

Giáo án tin học11

Var N, i: word; S: longint; (1đ)Begin write(‘Nhap N ’); Readln(N); (1đ) S:= 0; (0.5đ) For i:= 1 to N div 2 Do if N mod i = 0 then S:=S+i; (1đ) writeln(‘Tong tinh duoc la: ’, S); (0.5đ)End.

CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC

Ngày soạn: 07/11/07Tiết 19 KIỂU MẢNG (tiết 1/4)

I. MỤC TIÊU1. Kiến thức

Biết được một kiểu dữ liệu mới là kiểu mảng một chiều. Biết được một loại biến có chỉ số;Biết cấu trúc tạo mảng một chiều, cách khai báo biến kiểu mảng một chiều.

2. Kĩ năngBiết được các thành phần trong khai báo kiểu mảng một chiều;Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình;Biết cách khai báo mảng đơn giản với chỉ số miền con của kiểu nguyên;Biết cách tham chiếu đến các phần tử của mảng một chiều.

3. Tư duy và thái độ: Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: giáo án, sgk, sơ đồ cấu trúc mảng 1 chiều2. Học sinh: sgk

III. PHƯƠNG PHÁP: Đặt vấn đề, thuyết giảng

IV. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (15 phút) Khởi động bài mới

Hđ của GV Hđ của HS Nd ghi bảng1. Nêu bài toán mở đầu. Y/cầu hs đọc, tìm hiểu chtrình giải quyết bài toán đó. Và trả lời các câu hỏi sau:- Các biến: t1, …,t7 thể hiện các giá trị nào? Kiểu của các biến đó thế nào?

- Biến dem dùng làm gì?

- 7 câu lệnh IF trong chương trình thực hiện việc gì?

2. Mở rộng bài toán từ phạm vi một tuần sang phạm vi N ngày (chẳng hạn một tháng hay một năm) thì chương trình trên có hạn chế như thế nào?

3. Để khắc phục hạn chế trên người ta thường

1. N/cứu bài toán và chtrình, suy nghĩ trả lời các câu hỏi:- Nhận giá trị nhiệt độ của 7 ngày trong tuần. Cùng kiểu thực (real)- dem: để đếm số ngày tron tuần có nđộ lớn hơn nđộ trung bình.- Để kiểm tra lần lượt các ngày, nđộ ngày nào lớn hơn nđộ trung bình. 2. Bản chất thuật toán không có gì thay đổi nhưng việc viết chương trình gặp khó khăn do cần dùng rất nhiều biến và đoạn các câu lệnh tính toán khá dài.

Giáo viên: Bùi Văn Tú 37

Page 38: Giao an tin hoc 11 (in2)

Giáo án tin học11

ghép chung 7 biến trên thành một dãy và đặt cho nó chung 1 tên và đánh cho mỗi phần tử một chỉ số.- GV giới thiệu bài mới: Kiểu mảng.Chúng ta chỉ xét hai kiểu mảng thông dụng: Kiểu mảng một chiều và kiếu mảng hai chiều. 4. Y/cầu hs tham khảo sgk và hỏi: Em hiểu như thế nào về mãng một chiều?

Hỏi: Để mô tả mảng một chiều, ta cần xác định những yếu tố nào?

3. Lắng nghe

4. N/cứu sgk và trả lời:Mảng một chiều là dãy hữu hạn các phận tử cùng kiểu dữ liệu. Các ptử trong mảng cùngtên và phân biệt nhau bởi chỉ số.- Trả lời: + Kiểu của các p/tử.+ Cách đánh số các p/tử.

11. KIỂU MẢNG

1.Kiếu mảng một chiều

a. K/n mảng một chiều(sgk)

2. Hoạt động 2: (20 phút)Tạo kiểu mảng một chiều và khai báo biến mảngHđ của GV Hđ của HS Nd ghi bảng

1. Y/cầu hs tìm hiểu phần khai báo một lời giải khác cho bài toán trên trong trường hợp tổng quát (N ngày), có sử dụng mảng 1 chiều. Hỏi: Chỉ ra phần khai báo mảng trong phần khi báo của chtrình?* Ghi lại phần khai báo lên bảng- Ý nghĩa của các khai báo trên là gì?

2. Giới thiệu cú pháp khai báo kiểu mảng một chiều.-Khái quát hoá, ta có cú pháp khái báo biến mảng một chiều * Lưu ý về cách chọn <Kiểu chỉ số> 3. Y/cầu cho ví dụ khai báo mảng?Gọi hs khác: Ý nghĩa của khai báo bạn vừa viết?

* Lưu ý hs tránh nhầm lẫn giữa tên kiểu dữ liệu mảng và biến kiểu mảng.

-Hỏi: (Treo bảng) Trong ba cách khai báo ở ví dụ 2, thì cách nào tốt hơn?

- Hỏi: Dựa vào ví dụ trang 55 SGK, cho biết:+ Tên kiểu mảng?+ Số phần tử của mảng?+ Mỗi phần tử của mảng thuộc kiểu gì?4. Cách tham chiếu đến từng phần tử của mảng: Y/cầu hs lấy ví dụ(sử dụng các khbáo ở trên)

- Trả lời

Trả lời:Dòng 1: Kbáo kiểu mảng một chiều gồm Max số thực.Dòng 2 : Kbáo biến mảng Nhietdo qua kiểu mảng

Lắng nghe và ghi chép

3. Suy nghĩ và trả lờiVar Dhs2: array [1..100] of real;- Kbáo trực tiếp mảng có tên Dhs2 gồm 100 p/tử có kiều thực.Trả lời: Cách 2 & 3, vì ta dễ dàng điều chỉnh kích thước của mảng

.ArrayReal

.301 phần tử

Type Kmang1=array [1..Max] of real;Var Nhietdo: Kmang1;

b. Khai báo (Có hai cách)+ Kbáo gián tiếp: (sgk)+ Kbáo trực tiếp: (sgk)

Ví dụ 1: Var Nhietdo: array [1..Max] Of real;

Ví dụ 2: Khai báo mảng tối đa 100 số nguyên (chỉ số đầu tiên là 1)Ta có các cách sau:Cách 1:Var a: Array[1..100] Of Integer;Cách 2: Const Nmax = 100;Var a: Array[1..Nmax] Of integer; Cách 3:Const Nmax = 100;Type MyArray = Array [1..Nmax] Of Integer;Var a:MyArray;

Giáo viên: Bùi Văn Tú 38

Page 39: Giao an tin hoc 11 (in2)

Giáo án tin học11

.Real

a[2] p/tử ở vị trí thứ 2 của mảng aa[i] p/tử ở vị trí i của mảng a.

* Tham chiếu tới phần tử cuả mảngTên_biến[chỉ số]

3. Hoạt động 3: (7 phút) Củng cốHđ của GV Hđ của HS Nd ghi bảng

(Treo bảng) + Những khai báo nào là đúng?

+ Biến a trong khai báo trên chiếm dung lượng bộ nhớ là bao nhiêu? (số phần tử của mảng a, kiểu phần tử)

+ Trả lời:Arrayr=array[1..200] of

integer;Arrayb = array[-100..100]

of boolean;+ Trả lời: a chiếm 400 byte trong bộ nhớ.

TypeArrayr = array[1..200] Of

integer;Arrayr = array[byte] of real;Arrayb = array[-100..100] of

boolean;Var a : arrayr; B : arrayb;

IV. ĐÁNH GIÁ CUỐI BÀI, DẶN DÒ (3phút)1. Nội dung đã học2. Câu hỏi, bài tập về nhà

Đọc ví dụ 1 và ví dụ 2/ trang 56+57 SGK : Xem lại thuật toán tìm phần tử lớn nhất của dãy số nguyên và thuật toán sắp xếp dãy số nguyên bằng thuật

toán hoán đổi (lớp 10); Khai báo được mảng, tham chiếu được các phần tử của mảng.

Ngày soạn: 07/11/07Tiết 20 KIỂU MẢNG (tiết 2/4)

BÀI TẬP KIỂU MẢNG MỘT CHIỀU

I. MỤC TIÊU1. Kiến thức: Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng. 2. Kĩ năng: Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: giáo án, bảng phụ, sgk2. Học sinh: sgk

III. PHƯƠNG PHÁP

Giáo viên: Bùi Văn Tú 39

Page 40: Giao an tin hoc 11 (in2)

Giáo án tin học11

IV. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HS1. Trình bày các cách khai báo kiểu mảng trong NNLT Pascal?2. Khai báo mảng gồm N số nguyên (N500). (theo 2 cách: trực tiếp và gián tiếp).Gọi lần lượt hs trả lời.Gọi hs khác nhận xét nội dung trên bảngĐánh giá, cho điểm.

Hs1: Đứng tại chổ trả lờiHs2: (lên bảng)

Const N = 500;C1: Var M : array[1..N] of integer;C2: Type Mnguyen = array[1..N] of integer; Var M : Mnguyen;

2. Hoạt động 2: (20 phút)Vận dụng kiểu mảng một chiềua. Nội dung:

- Bài toán: Tạo mảng A gồm N (N100) số nguyên. Tính tổng các phần tử của mảng là bội của một số nguyên dương k cho trước.b. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Nêu đề bài toán (ghi bảng)

Y/cầu hs xác định In/Output của bài toán.

2. Ở lớp 10 ta đã xây dựng t/toán cho bài toán này rồi. Y/cầu hs nhắc lại t/toán.3. Y/cầu hs cho biết các việc chính cần thực hiện trong chtrình là gì?

4. Y/cầu hs cho biết các biến chính cần sử dụng là gì?

- Y/cầu hs khác lên viết phần khai báo các biến đó?

5. Tiếp tục y/cầu hs lên viết phần chtrình tạo giá trị cho các ptử của mảng A. (lưu ý nhập số lượng ptử của mảng trước)Gọi hs khác nhận xét* Chỉnh sửa đoạn chtrình hs vừa hoàn thành.6. Để viết tiếp đoạn chtrình còn lại (tính tổng) theo thuật toán ta phải kiểm tra lần lượt tất cả các ptử của mảng từ A[1] đến A[n]. vậy ta sử dụng câu lệnh gì ở đây?- Hỏi: trước khi tính tổng, ngoài mảng A trong CT cần có thêm gì không? (GV bổ sung)- Y/cầu hs khác lên viết đoạn chtrình còn lại? ** Chuẩn hoá lại chtrình.

* Chạy thử chtrình với 1 bộ giá trị:

1. Đọc đề bài toán và trả lời:In: mảng A, số kOut: Tổng (S) các p/tử trong mảng A là bội của k.

2. 1-2 hs nhắc lại t/toán

3. Trả lời+ Cho biết số ptử của mảng A.+ Nhập giá trị cho các ptử của mảng A+ Tính tổng. 4. suy nghĩ và trả lời- mảng Abiến đơn: N, k, S.- Lên bảng trình bàyVar S, N, k: integer;

A: array[1..100] of integer;5. Thực hiện tương tự các CT trước (Lên bảng trình bày)

Đứng tại chổ n/xét, (bổ sung nếu sai sót)

6. Chú ý sự dẫn dắt vấn đề của gv, suy nghĩ và trả lời: Sử dụng cấu trúc lặp For.

-Giá trị k và Biến S := 0

- Lên bảng trình bày

Bài 1: Viết CT tạo mảng A gồm N (N100) số nguyên. Tính tổng các phần tử của mảng là bội của một số nguyên dương k cho trước.

Var S, n, k, i : integer;A: array[1..100] of integer;

BeginWrite(‘Nhap n = ’); readln(n);{tao mang}For i:=1 To n Do begin write(‘phan tu thu ’,i,’ =’); readln(A[i]); end;write(‘Nhap k = ’); readln(k);S := 0; {khoi tao S ban dau}{tinh tong}For i:=1 To n Do If A[i] mod k = 0 Then S := S + A[i];Writeln(‘Tong can tinh la ’, S);End.

Giáo viên: Bùi Văn Tú 40

Page 41: Giao an tin hoc 11 (in2)

Giáo án tin học11

Chạy thử chtrình N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 và k =3

A 5 6 - 8 13 24 7 - 4 - 12i 1 2 3 4 5 6 7 8

A[i] mod 3

2 0 - 2 1 0 1 -1 0

S 0 0 6 6 6 30 30 30 18

3. Hoạt động 3: (15 phút) Mở rộng bài toán có vận dụng mảng một chiềua. Nội dung:

Cho một số câu lệnh: (1) ...... am, duong : integer;(2) ...... am := 0; duong := 0;(3) ...... If A[i] >0 Then duong := duong + 1 Else if A[i]<0 Then am := am + 1;(4) ...... Writeln(duong: 4, am:4);Hãy đưa các câu lệnh đó vào những vị trí thích hợp trong chtrình bài 1, để có được chtrình đưa ra số các số

dương và số các số âm trong mảng.b. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng(Treo bảng) chứa nội dung câu lệnh cần thêm vào chtrình ở bài 1.1. Y/cầu hs n/cứu nội dung các câu lệnh và hỏi:- Ý nghĩa của biến am, duong?

- Chức năng của lệnh (3)?

- Lệnh (4) đưa ra thông tin gì?

2. Y/cầu hs tìm vị trí bổ sung các lệnh vào cho phù hợp để chtrình đếm được số dương, số âm.3. Y/cầu hs lên hoàn chỉnh lại chtrình?** Chuẩn hoá lại chtrình. * Chạy thử chtrình với 1 bộ giá trị:

Quan sát các câu lệnh

1. N/cứu ý nghĩa các câu lệnh và trả lời:- Dùng để lưu số lượng đếm được.- Đếm số dương hoặc đếm số âm.- Số các số dương, số các số âm.2. Chỉ ra vị trí cần bổ sung và các câu lệnh cần loại bỏ bớt.3. Lên bảng , chỉnh sửa lại chtrình.

Var n, i : integer;am, duong : integer;

A : array[1..100] of integer;BeginWrite(‘Nhap n = ’); readln(n);{tao mang}For i:=1 To n Do begin write(‘phan tu thu ’,i,’ =’); readln(A[i]); end;am := 0; duong := 0;{dem}For i:=1 To n Do If A[i] >0 Then duong := duong + 1 Else if A[i]<0 Then

am := am + 1;Writeln(duong: 4, am:4);End.

Chạy thử chtrình N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12

A 5 6 - 8 13 24 7 - 4 - 12Duong 1 2 2 3 4 5 5 5

am 0 0 1 1 1 1 2 3

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học

- Tính tổng các phần tử trong mảng thoả mãn một điều kiện.- Đếm số phần tử trong mảng thoả mãn một điều kiện.

2. Câu hỏi, bài tập về nhà- Cho 2 mảng A, B gồm n (n<=250) số nguyên. Hãy viết chương trình xây dựng mảng C[1..n], trong đó

C[i] là tổng của 2 phần tử thứ i thuộc mảng A và mảng B. (tức là: C[i] = A[i] + B[i])- Xem trước vídụ 2 và ví dụ 3/trang 57, 58 sgk.

Ngày soạn: 14/11/07

Giáo viên: Bùi Văn Tú 41

Page 42: Giao an tin hoc 11 (in2)

Giáo án tin học11

Tiết 21 KIỂU MẢNG (tiết 3/4)

I. MỤC TIÊU1. Kiến thức:

- Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng. - Củng cố và làm hs hiểu sâu hơn thuật toán sắp xếp đã được học ở lớp 10.

2. Kĩ năng: Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn giản.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: giáo án, bảng phụ, sgk2. Học sinh: sgk

III. PHƯƠNG PHÁP

IV. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (10 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HSGọi 2 Hs lên bảng trình bày bài tập cho về nhà tiết trước.Gọi hs khác nhận xétĐánh giá cho điểm

2 hs lên bảng trình bày

Nhận xét2. Hoạt động 2:(15 phút) Phân tích bài toán trước khi viết chương trìnha. Nội dung: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.b. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Nêu bài toán, y/cầu hs xác định In/Output của bài toán.

2. Y/cầu hs trình bày lại thuật toán sắp xếp tráo đổi. (Đã học ở lớp 10)

3. Y/cầu cả lớp n/cứu lại t/toán và trả lời các câu hỏi:- Biến j sẽ nhận các giá trị trong phạm vi nào? Tương tự với biến i? - Có nhận xét gì về 2 biến i,j? (với mỗi giá trị j, i lần lượt nhận các giá trị từ 1 đến j-1)

1. Đọc đề và xác định bài toán.In: N (N250), dãy A (A[i]<500).Out: dãy A không giảm2.Thuật toánB1: Nhập N, dãy A ;B2: jN;B3: nếu j<2 thì đưa ra dãy đã được sắp xếp, KT;B4: jj-1; i1;B5: Nếu i>j thì Qlại B3;B6: Nếu A[i]>A[i+1] thì tráo đổi A[i] và A[i+1];B7: Quay lại B5.

Trả lời: + 2 j N, 1 i j-1+ i phụ thuộc theo j

Số nguyên dương N (N250) và dãy A gồm N số nguyên dương, mỗi số đều không vượt quá 500. Hãy sắp xếp dãy A thành dãy không giảm.

3. Hoạt động 3:(15phút)Vận dụng kiểu dữ liệu mảng một chiều để mô tả t/toán trên trong PascalHđ của GV Hđ của HS Nd ghi bảng

1. Y/cầu hs xác định những nội dung chính cần viết trong chtrình.

* Chốt lại các nội dung chính cần viết.2. Yêu cầu từng hs lên bảng viết từng nội dung của chương trình.- Khai báo những biến gì?

- Tạo mảng là làm những gì?

1. Suy nghĩ và trả lời:+Khai báo biến+Tạo mảng A+Sắp xếp mảng A tăng dần+Đưa mảng A đã sắp xếp ra màn hình2. Lên bảng trình bày từng nội dung.- mảng A, biến đơn N, i, j- Nhập sl p/tử của mảng và

Var A: array[1..300] of integer; N, i, j :integer; Begin{tao mang}

Giáo viên: Bùi Văn Tú 42

Page 43: Giao an tin hoc 11 (in2)

Giáo án tin học11

- Sắp xếp mảngHỏi: Làm thế nào để tráo đổi giá trị 2 biến cho nhau (a[i] và a[i+1])?

- Đưa mảng ra màn hình

nhập giá trị cho các p/tử trong mảng

Tl: sử dụng thêm biến trung gian t:

t:=a[i];a[i]:=a[i+1];a[i+1] :=t

Viết lại chương trình vào vở.

Write(‘Nhap n = ’); readln(n);For i:=1 To n Do begin write(‘phan tu thu ’,i,’ =’); readln(A[i]); end;{sap xep mang}For j := N Downto 1 Do for i:=1 to j - 1 do If a[i] > a[i+1] then begin

t:=a[i]; a[i]:=a[i+1]; a[i+1] :=t

end;{dua ra mang da sap xep}Writeln (‘Mang da duoc sap xep ’);For i :=1 To N Do write (a[i]:4);ReadlnEnd.

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học

Cách phân tích và viết chương trình cho một bài toán.2. Câu hỏi, bài tập về nhà

Xem lại các bài tập về mảng đã giải ở tiết 20Xem trước bài: Bài thực hành số 3Bài tập: Cho mảng A gồm N phần tử. hãy viết chương trình tạo ra mảng B cũng gồm N phần tử, trong đó

B[i] bằng tổng của i phần tử đầu tiên trong mảng A. (B[i]= A[1]+A[2]+ .. +A[i])

Ngày soạn: 15/11/07Tiết 22 BÀI THỰC HÀNH SỐ 3 (tiết 1)I. MỤC TIÊU: - Về kiến thức:

Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng.- Về kỹ năng:

+ Khai báo được kiểu dữ liệu mảng, nhập dữ liệu mảng, đưa ra màn hình chỉ số và giá trị của các phần tử mảng. + Duyệt qua phần tử của mảng để xử lý từng phần tử.

- Về tư duy và thái độ: Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình.II. CHUẨN BỊ:

- GV: Phòng máy tính, máy chiếu Projector.- HS: SGK, bài tập.

III. PHƯƠNG PHÁP: - Vấn đáp tìm tòi, vấn đáp tái hiện, giải quyết vấn đề.IV. TIẾN TRÌNH BÀI HỌC:

1. Ổn định tổ chức lớp .2. Kiểm tra bài cũ :

Câu hỏi: Khi nào ta nên khai báo biến mảng gián tiếp – thông qua định nghĩa kiểu?

Giáo viên: Bùi Văn Tú 43

Page 44: Giao an tin hoc 11 (in2)

Giáo án tin học11

3. Bài mới: Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu qua chương trình có sẵn:

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HSGV: Cài đặt và trình chiếu CT mẫu bài 1a. HS: Xem bài mẫu được trình chiếu.?1: MyArray là tên kiểu dữ liệu hay tên biến?GV: Nhận xét.

HS1: Trả lời

?2: Vai trò của nmax và n khác nhau như thế nào? HS2: Trả lời?3: Dòng lệnh nào dùng để tạo biến mảng A?GV: Nhận xét.

HS3: Trả lời.

GV: Cho chạy thử CT bài 1a HS: Xem?4: Lệnh gán A[i]:= random(300) – random(300) có ý nghĩa gì?GV: Nhận xét.

HS4: Trả lời.

?5: Lệnh For i:=1 to n do Write(A[i]:5); có ý nghĩa gì?GV: Nhận xét.

HS5: Trả lời.

?6: Lệnh For i:=1 to n do If A[i] mod k = 0 then s:=s + A[i]; thực hiện nhiệm vụ gì?GV: Nhận xét.

HS6: Trả lời.

?7: Lệnh s:=s+A[i]; được thực hiện bao nhiêu lần?GV: Nhận xét.

HS7: Trả lời.

GV: Cho HS chạy thử chương trình để thấy kết quả. HS: Chạy thử chương trình trên máy của mình.

GV: Nhắc nhở HS lưu chương trình đã chạy tốt ở câu a. HS: Lưu chương trình.GV: Trình chiếu các câu lệnh của câu 1b. HS: Xem.?8: Đưa biến Posi và Neg vào vị trí nào trong câu 1a?GV: Nhận xét.

HS8: Trả lời

?9: Nhiệm vụ của câu lệnh:If A[i]:>0 then Posi:=Posi+1 else If A[i]<0 then Neg:=Neg+1; ?GV: Nhận xét.

HS9: Trả lời.

GV: Yêu cầu HS đưa câu lệnh trên vào chương trình ở câu 1a. HS: Thực hiện.GV: Yêu cầu HS chạy chương trình và báo cáo kết quả. HS: Lưu và chạy chương trình, báo cáo

KQ.4. Củng cố: Yêu cầu HS sửa lại chương trình trên để có thể nhập một mảng có 10 phần tử từ bàn phím.5. Dặn dò:

- HS về nhà làm bài tập 4.15 trong sách bài tập.- Chuẩn bị chương trình bài 2 bài thực hành 3 chương IV trong SGK.

Ngày soạn: 15/11/07Tiết 23 BÀI THỰC HÀNH SỐ 3 (tiết 2)I. MỤC TIÊU.1. Kiến thức: Củng cố lại các kiến thức về kiểu dữ liệu mạng2. Kĩ năng: - Nâng cao kĩ năng sử dụng một số kiểu lệnh kiểu dữ liệu mảng một chiều trong lập trình, cụ thể:

+ Khai báo kiểu dữ liệu mảng một chiều+ Nhập, xuất dữ liệu cho mảng+ Duyệt qua tất cả các phần tử của mảng để xử lý từng phần tử.

- Biết giải một số bài toán thường gặp: + Tính tổng các phần tử thoả mãn các điều kiện nào đó+ Đếm số các phần tử thoả mãn điều kiện nào đó+ Tìm phần tử lớn nhất, nhỏ nhất

3. Thái độ và tư duy:Góp phần rèn luyện tác phong, tư duy lập trình; từ giác, tích cực, chủ động và sáng tạo trong tìm kiếm kiến thứcII. ĐỒ DÙNG DẠY HỌC.

1. Chuẩn bị của GV: Phòng máy vi tính, máy chiếu hoặc bảng phụ để minh họa

Giáo viên: Bùi Văn Tú 44

Page 45: Giao an tin hoc 11 (in2)

Giáo án tin học11

2. Chuẩn bị của HS: SGKIII. HOẠT ĐỘNG DẠY HỌC

1. Hoạt động 1: Ôn lại kiến thức để chuẩn bị làm bài tập và thực hànhHoạt động GV Hoạt động HS Ghi bảngCách khai báo mảng trực tiếp ? gián tiếp ?

- Cách khai báo trực tiếp:var <tên biến mảng>: array[kiểu chỉ số] of <kiểu phần tử>;- Cách khai báo gián tiếp: type<tên kiểu mảng> = array[kiểu chỉ số] of <kiểu phần tử>;var <tên biến mảng> : <tên kiểu mảng>

2. Hoạt động 2: Đọc đề và tìm hiểu yêu cầu bài tập 2 SGKHoạt động GV Hoạt động HS Ghi bảngYêu cầu HS đọc đề BT2 SGKYêu cầu của bài toán là gì?

Đọc đề và tìm hiểu yêu cầu của đềTrả lời câu hỏi

- Tìm phần tử có giá trị lớn nhất trong mảng- In ra màn hình chỉ số nhỏ nhất của phần từ có giá trị lớn nhất

3. Hoạt động 3: Đọc chương trình và chạy chương trình trên giấy để hiểu thuật toán của chương trìnhHoạt động GV Hoạt động HS Ghi bảng- Việc tạo mảng dữ liệu được thể hiện ở phần nào trong chương trình ?- Tìm giá trị lớn nhất và đưa ra màn hình chỉ số nhỏ nhất của phần từ có giá trị lớn nhất được thể hiện ở phần nào ?- Vai trò của biến j trong chương trình nhằm mục đích gì ?- Thực hiện chương trình với giá trị của mảng nhập vào cụ thể như sau:

4 2 5 7 6 7- Hãy dựa vào phần tìm giá trị lớn nhất và chạy chương trình trên giấy nháp và cho kết quả ?- Gọi HS lên bảng chạy lại chương trình

Thể hiện ở câu lệnh for thứ nhất của chương trình.

- Từ j:=1 đến cuối chương trình

- Giữ lại chỉ số của phần tử có giá trị lớn nhất.

- Thực hiện yêu cầu của GV.

Treo bảng phụ chương trình của bài toán.

B1: j=1, i=2, A[i]=2, A[j]=4 A[i]< A[j]

B2: j=1, i=3, A[i] = 5, A[j] =4 A[i]>A[j] , j=3

B3: j=3, i=4, A[i]=7, A[j]=5 A[i]>A[j] j=4

B4: j=4, i=5, A[i]=6, A[j]=7 A[i]<A[j]

B5: j=4, i=6, A[i]=7, A[j]=5 kết quả chỉ số: 4

A[4] = 7

4. Hoạt động 4: Chỉnh sửa chương trình để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhấtHoạt động GV Hoạt động HS Ghi bảng- Có cần giữ lại đoạn chương trình tìm giá trị lớn nhất không ?- Để đưa ra màn hình tất các chỉ số của các phần tử đạt giá trị lớn nhất có cần duyệt lại các phân tử của mảng không ?- Cần thêm lệnh nào có thê in được tất cả các chỉ số của các phần tử có giá trị lớn nhất ?- Đưa câu lệnh đó vào vị trí nào của chương trình ?

- Có

- Có

- Trả lời câu hỏi.- Đưa vào cuối chương trình

For i:=1 to n do If A[i] = A[j] then write (i);

5. Hoạt động 5: HS chạy chương trình trên máy tính và cho kết quả:

IV. ĐÁNH GIÁ CUỐI BÀI:1. Những nội dung đã học:

+ Tính tổng các phần tử thoả mãn các điều kiện nào đó+ Đếm số các phần tử thoả mãn điều kiện nào đó+ Tìm phần tử lớn nhất, nhỏ nhất

Giáo viên: Bùi Văn Tú 45

Page 46: Giao an tin hoc 11 (in2)

Giáo án tin học11

3. Câu hỏi và bài tập về nhà:- Viết chương trình nhập vào mảng một chiều A[1..20] và nhập một số x. Đếm số lượng số trong A có

giá trị bằng x.- Xem nội dung bài thực hành số 4 SGK trang 65.

Ngày soạn: 18/11/07Tiết 24 KIỂU MẢNG (tiết 4/4)

I. MỤC TIÊU1. Kiến thức- Hiểu được khái niệm mảng hai chiều.- Hiểu cách khai báo và tham chiếu đến các phần tử của mảng hai chiều.2. Kĩ năng- Thực hiện được khai báo mảng hai chiều, cách tham chiếu đến một phần tử của mảng hai chiều.- Thực hiện được việc tính toán các phần tử trong mảng hai chiều.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: Bảng phụ chứa chương trình tạo và in mảng hai chiều gồm 5 hàng, 7 cột. Tính và in ra màn hình

tổng các phần tử trong mảng.2. Học sinh: SGK, vở soạn.III. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.

IV. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (8 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HSViết CT tạo và in ra màn hình mảng A gồm n phần tử 10 phần tử. Mỗi phần tử là một số nguyên. Cho biết có bao nhiêu phần tử trong mảng có giá trị bằng số nguyên k.

2. Hoạt động 2: (7 phút)Tìm hiểu ý nghĩa của mảng hai chiều.Đặt vấn đề: Ở tiết trước, chúng ta đã tìm hiểu cách khai báo mảng, cách tạo mảng và truy cập đến một phần tử trong mảng một chiều. Hôm nay, chúng ta sẽ tìm hiểu các vấn đề đó đối với mảng hai chiều.

Hđ của GV Hđ của HS Nd ghi bảng- GV yêu cầu HS xem bảng nhân ở SGK.- Với kiến thức về mảng một chiều đã học, em hãy đưa ra cách sử dụng kiểu mảng đó để lưu trữ bảng nhân?- Với cách lưu trữ như vậy, ta phải khai báo bao nhiêu biến mảng?- Khai báo như vậy có những hạn chế nào?- Để khắc phục những hạn chế này, ta có thể mô tả dữ liệu của bảng nhân là kiểu mảng một chiều gồm 9 phần tử, mỗi phần tử là mảng một chiều có 10 phần tử. Như vậy, ta có thể biểu diễn bảng nhân bằng kiểu dữ liệu mảng hai chiều.- Yêu cầu HS nhận xét về mảng hai chiều?

- Nêu khái niệm mảng hai chiều.- Để mô tả kiểu mảng hai chiều, cần xác định những yếu tố nào?

- Xem bảng nhân ở SGK trang 59..- Sử dụng 9 mảng một chiều, mỗi mảng lưu một hàng của bảng.

- TL: Khai báo 9 biến mảng một chiều.

- TL: Phải khai báo nhiều biến, chương trình phải viết nhiều lệnh để tạo và in giá trị của mảng.

- Chú ý lắng nghe.

- TL: Nếu coi mỗi hàng của mảng hai chiều là một phần tử thì ta có thể coi mảng hai chiều là mảng một chiều mà mỗi phần tử của nó là mảng một chiều. - HS trả lời.

§11. KIỂU MẢNG (tt)2. Kiểu mảng hai chiều: a. Xét bài toán: Bảng nhân (SGK).

* Khái niệm mảng hai chiều:

Giáo viên: Bùi Văn Tú 46

Page 47: Giao an tin hoc 11 (in2)

Giáo án tin học11

- Tham khảo SGK và trả lời. (SGK).* Các yếu tố cần xác định để mô tả kiểu mảng hai chiều. (SGK)

3. Hoạt động 3:(10’)Tìm hiểu cách khai báo biến mảng hai chiều và cách tạo/in mảng hai chiều.Hđ của GV Hđ của HS Nd ghi bảng

- GV đưa ra hai cách khai báo biến mảng hai chiều.

- GV giải thích các thành phần trong khai báo.

- Gọi HS nêu cách khai báo gián tiếp biến B để lưu trữ bảng nhân ở SGK.

- Gọi HS nhắc lại cách tham chiếu đến một phần tử của mảng một chiều.

- Gọi HS nêu cách tham chiếu đến số 81 trong bảng nhân?

- HS chú ý theo dõi.

- Chú ý lắng nghe.

- HS đứng tại chỗ trả lời.

- TL: Tênbiến[chỉ số]

- TL: B[9,9] = 81

b. Khai báo: C1: Trực tiếp:Var <tênbiếnmảng>:array [kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>; C2: Gián tiếp:Type <tên kiểu mảng> = array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu ptử>;Var <tên biến mảng>:<tên kiểu mảng>;Ví dụ:i) var A:array [1..50,1..100] of

integer;ii) type mang2c = array

[1..9,1..10] of byte;var B: mang2c;

c.Tham chiếu đến một phần tử của mảng hai chiều:Tênbiến[chỉ số hàng,chỉ số cột]VD: i) A[i,j] phần tử ở hàng i, cột j

của mảng A.ii) B[9,9] phần tử ở hàng 9, cột

9 của bảng nhân B.

4. Hoạt động 4: (17 phút)Tìm hiểu cách viết chương trình đơn giản.

Hđ của GV Hđ của HS Nd ghi bảng

- GV hướng dẫn HS cách tạo mảng hai chiều có m hàng, n cột.

- GV hướng dẫn HS cách in mảng hai

- HS chú ý theo dõi.

d. Các ví dụ:Ví dụ 1: Viết chương trình tạo và in mảng hai chiều gồm m hàng, n cột.program Tao_in_mang;var i, j, m, n: integer; A: array [1..100,1..100] of

integer;beginwrite ('Nhap so hang m = '); readln (m);write ('Nhap so cot n = ');readln (n);

{Tạo mảng}for i := 1 to m do for j := 1 to n do begin write('Nhap A[',i, ',' ,j,']='); readln (A[i , j]);

Giáo viên: Bùi Văn Tú 47

Page 48: Giao an tin hoc 11 (in2)

Giáo án tin học11

chiều vừa tạo.

- Gọi HS lên bảng sửa lại phần khai báo và các câu lệnh nhập cho phù hợp với bài này.

- GV hướng dẫn HS cách tính tổng.- GV treo bảng phụ viết sẵn chương trình cho HS tham khảo.

- Chú ý lắng nghe và theo dõi.

- HS lên bảng làm.+ Không khai báo m,n.+ Khai báo thêm biến T.+ Viết hai vòng for của lệnh tạo và in mảng là:for i := 1 to 5 do for j := 1 to 7 do- HS chú ý theo dõi.

- Theo dõi chương trình trên bảng phụ.

end;{In mảng}for i:= 1 to m do begin for j := 1 to n do write (A[i , j]:4); writeln; end;readlnend.Ví dụ 2: Tạo và in mảng hai chiều gồm 5 hàng, 7 cột. Tính và in ra màn hình tổng các phần tử trong mảng.

T:= 0;for i := 1 to 5 do for j := 1 to 7 do T := T + A[i,j];

IV. ĐÁNH GIÁ CUỐI BÀI (3phút)1. Nội dung đã học

- Cách khai báo biến mảng hai chiều.- Cách tạo mảng hai chiều.- Cách tính toán các phần tử trong mảng hai chiều.

2. Câu hỏi, bài tập về nhà : Xem các ví dụ còn lại trong SGK.

Ngày soạn: 25/11/07Tiết 25 BÀI THỰC HÀNH SỐ 4 (tiết 1)I. Mục tiêu

1. Kiến thức - Củng cố kiến thức về dữ liệu kiểu mảng.- Xây dựng cấu trúc dữ liệu, hiểu thuật toán sắp xếp bằng tráo đổi.2. Kĩ năng- Biết chỉnh sữa lỗi trong chương trình.- Tự nhập các bộ dữ liệu để hiểu ý nghĩa một số câu lệnh.3. Thái độ- Nghiêm túc thực hiện đúng nội quy phòng máy, tự giác trong khi lập trình.

II.Chuẩn bị- Gv:Bảng phụ viết sẵn chương trình, phòng máy, project.- Hs: Sgk, CT đã được viết sẵn.

III. Phương phápIV. Tiến hành dạy học1. Hoạt động 1: Nhắc lại kiến thức đã học liên quan bài thực hành.

Hđ của GV Hđ của HsHỏi 1: Nêu cách khai báo kiểu mảng 1 chiều.

Hỏi 2: Nhập từ bàn phím xây dựng mảng một chiều A có 6 phần tử.

Tl: có 2 cách+ gián tiếp:+ trực tiếp:

TL: For i:= 1 to 6 do Begin Writeln(‘Nhap phan tu thu ’,i,’=’);

Giáo viên: Bùi Văn Tú 48

Page 49: Giao an tin hoc 11 (in2)

Giáo án tin học11

Readln(A[i]); End;

2. Hoạt động 2: Xác định bài toán và tìm hiểu chương trình.TG Hđ của GV Hđ của HS Ghi bảng

1. Chiếu đề bài lên bảng.

2. Xác định bài toánY/cầu hs xác định dữ liệu vào/ra của bài toán?3. Gv minh hoạ bài toán:

A 5 7 2 8 6 41 2 3 4 5 6

Mảng A đã sắp xếp:A 2 4 5 6 7 8

1 2 3 4 5 6- Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)?- Chiếu thuật toán đã được liệt kê các bước.4. Tìm hiểu chương trình

- Vai trò của biến i, j trong CT?- Đoạn lệnh nào thực hiện tráo đổi giá trị 2 phần tử liền kề của mảng?- Treo bảng CT chuẩn bị sẵn.Giải thích một số lệnh của CT.

1. Quan sát đề và lằng nghe câu hỏi của gv.2. Trả lời câu hỏi.- Vào: mảng A- Ra: mảng A đã sắp xếp3. Theo dãy số minh họa, nhớ lại thuật toán sắp xếp đã học.

- Nhắc lại thuật toán.

- Quan sát, đối chiếu thuật toán liệt kê với CT (SGK).4. Xem CT và tìm hiểu một số biến, lệnh.- TL: Dùng làm biến chỉ số.- TL:3 lệnh: tg := a[i]; a[i]:= a[i+1]; a[i+1]:= tg; - Chú ý, lắng nghe, quan sát và ghi nhớ.

Đề: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi với các giá trị khác nhau của n số.

CT( SGK/65)

3. Hoạt động 3: Chạy CT câu a.TG Hđ của GV Hđ của HS Ghi bảng

- Yêu cầu hs tự nhập dữ liệu với CT có sẵn.- Giúp hs phát hiện và sữa lỗi.

- Thuật toán trên tiến hành đưa số lớn thứ j về đến vị trí j sau mỗi vòng lặp:

For i:= 1 to j-1 do

- Chạy CT, nhập dữ liệu, xm kết quả.- Chỉnh sữa CT thông qua các thông báo lỗi.- Chú ý hiểu rõ thêm về CT.

4. Hoạt động 4: Xác định bài toán câu b.TG Hđ của GV Hđ của HS Ghi bảng

1. Xác định bài toán.- Y/cầu hs xác I/O bài toán?

- Biến Dem được tăng lên khi nào?

- Cần đưa câu lệnh tăng Dem vào chỗ nào trong CT trên?- Câu lệnh khởi tạo Dem:= 0 được đặt vào vị trí nào trong CT? + Trước CL đầu tiên: For j:= N down to 2 do + Trước CL duyệt: For i:= 1 to j-1 do + Trước 3 CL tráo đổi + Sau 3 CL tráo đổi- Sau CL cuối CT nên đưa CL nào vào để

1. Xác định bài toán:+ I: mảng a;+O: mảng a đã sắp xếp, số lần tráo đổi (Dem);TL: Khi A[i] > A[i+1] (tức là biểu thức đk trong CL If đúng)TL: Trong thân CL If: trước hoặc sau 3 lệnh tráo đổi.

TL: Chọn một trong hai phương án 3, 4.

Đề: Khai báo biến đếm nguyên Dem và bổ sung vào chương trình những câu lệnh cần thiết để biến Dem tính số lần tráo đổi trong chương trình.

Giáo viên: Bùi Văn Tú 49

Page 50: Giao an tin hoc 11 (in2)

Giáo án tin học11

hiển thị giá trị biến Dem ra màn hình.

4. Hoạt động 5: Sữa CT câu a để giải bài toán câu b.TG Hđ của GV Hđ của HS Ghi bảng

- Yêu cầu hs sữa lại CT theo gợi ý đã nêu.- Hướng dẫn hs chỉnh sửa và chạy CT.- Đánh giá kết quả của hs.

- Thêm các CL như đã hướng dẫn vào CT.- Chạy CT.

CT(Phụ lục)

Hoạt động 6: Củng cố- Thuật toán sắp xếp bằng tráo đổi. - Đếm số lần tráo đổi.

Hoạt động 7: Bài tập về nhà- Tìm thêm các thuật toán sắp xếp khác tối ưu hơn.- Cho mảng A và mảng B (là mảng A đã được sắp xếp). Hãy in ra chỉ số của các phần tử mảng A theo

mảng B.

Ngày soạn: 25/11/07Tiết 26 BÀI THỰC HÀNH SỐ 4 (tiết 2)I. Mục tiêu1. Kiến thức

Tiếp tục củng cố kiến thức khi lập trình với dữ liệu kiểu mảng.2. Kĩ năng

Nhận xét, phân tích và đề xuất các cách giải bài toán sao cho chương trình chạy nhanh hơn.3. Thái độ

Tự giác, chủ động trong khi lập trình.II.Chuẩn bị

Gv:Bảng phụ viết sẵn chương trình, phòng máy, project.Hs: Sgk, CT đã được viết sẵn

III. Phương phápIV. Tiến hành dạy học1. Hoạt động 1:(3') Ôn lại kiến thức chuẩn bị thực hành

Hđ của GV Hđ của HsHỏi 1: cách khai báo kiểu mảng 1 chiều.

Hỏi 2: (tuỳ từng lớp)

Tl: có 2 cách+ gián tiếp:+ trực tiếp:

2. Hoạt động 2:(13') Nêu đề bài toán và tìm hiểuHđ của GV Hđ của HS Ghi bảng

1. Ghi đề bài lên bảng.

2. Tìm hiểu đềY/cầu hs xác định dữ liệu vào/ra của bài toán?3. Gv lấy ví dụ minh hoạ

A 4 5 1 2 3 71 2 3 4 5 6

B

1 2 3 4 5 6 Ban đầu: mọi B[i] = 0Hỏi: mỗi B[i] được tạo mới bằng bao nhiêu? Tóm lại: B[i] = A[1] + …+ A[i]

1. Quan sát đề và lắng nghe câu hỏi của gv.2. Trả lời câu hỏi.- Vào: - Ra:3. Theo dõi ví dụ minh hoạ

Tl: (2-3hs)

Đề: Cho mảng A gồm n phần tử. Viết CT tạo ra mảng B[1..n], trong đó B[i] là tổng của i phần tử đầu tiên của mảng A.

Giáo viên: Bùi Văn Tú 50

Page 51: Giao an tin hoc 11 (in2)

Giáo án tin học11

=

GV minh hoạ một số phần tử: B[1], B[2], B[3]- Y/cầu hs tìm kết quả mảng B theo ví dụ trên.4. Viết CT thô- Y/cầu hs cho biết từng phần của CT cần xây dựng?

Gv tranh thủ ghi lại trên bảng.H: Bước B2 được cụ thể trong CT như thế nào?

5. Treo bảng CT chuẩn bị sẵn.Giải thích từng phần của CT tương ứng với phần trả lời được ghi bảng của hs.

Tl: B 4 9 10 12 15 22

1 2 3 4 5 6 4. Lần lượt cho từng hs trình bàyTl:

Tl: sử dụng 2 vòng for lồng nhau.for i:=1 to n dobegin b[i]: =0; for j:=1 to i do b[i]:=b[i]+a[j];end;5. Chú ý, lắng nghe, quan sát và ghi nhớ.

Khai báo: + k/báo mảng + biến đơnPhần thân:B1: tạo mảng A.B2: xd mảng B theo A.B3: In mảng B.

3. Hoạt động 3: (5')Tối ưu chương trìnhHđ của GV Hđ của HS Ghi bảng

1. Dựa vào phần phân tích ví dụ thuật toán ở trên.Gv hỏi: So sánh giá trị B[i] và B[i-1]? Đặc biệt: B[1]=?2. Chta luôn hướng tới thuật toán tối ưu. Đối với bài toán này theo phân tích ở trên ta đã tận dụng được kết quả của việc tính tổng i -1 phần tử có sẵn ở bước trước.- Do vậy ta có được:+ Số lượng phép toán '+' ít hơn+Chỉ dùng 1 vòng lặp for-> chỉ sd 1 biến chỉ số i cho cả 2 mảng A, B.3. Cải tiến lại chtrình.Gv treo bảng chtrình được cải tiến.

Tl: B[i]:=B[i-1]+A[i]Tl: B[1]=A[1]2. Chú ý theo dõi

{tùy đối tượng hs}

3. Nhìn bảng, tự điều chỉnh hành vi nhận thức.

Đoạn CT cải tiến: Sgk

4. Hoạt động 4: (20') Hs thực hành trên máy theo nhómHđ của GV Hđ của HS Ghi bảng

1. Y/cầu hs nhập CT cải tiếnvào máy.2. Theo dõi quá trình t/hiện của hs. Giải quyết 1 số lỗi nhỏ tại từng nhóm.

1. Hs nhập chtrình vào máy2. Tự biên dịch và chạy CT với ví dụ trên.

3. Tự lấy Input để chạy lại CT5. Hoạt động 5: (3') Củng cố, uốn nắn những sai sót thường gặp của Hs.6. Hoạt động 6: (1') Dặn dò: Xem, chuẩn bị trước bài 12: Kiểu xâu.

Giáo viên: Bùi Văn Tú 51

Page 52: Giao an tin hoc 11 (in2)

Giáo án tin học11

Ngày soạn: 4/12/07Tiết 27 KIỂU XÂU (tiết 1/2)

I. MỤC TIÊU1. Kiến thức

- Biết được một kiểu dữ liệu mới, biết được khái niệm kiểu xâu- Phân được sự giông và khác nhau giữa kiểu mảng kí tự với kiểu xâu kí tự- Biết các khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng kí tự của xâu.- Biết các thao tác liên quan đến xâu

2. Kĩ năng- Khai báo được biến xâu trong NNLT Pascal. Sử dụng biến xâu, các phép toán và các hàm thủ tục về xâu

để giải quyết một số bài toán đơn giản

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: giáo án, sgk, bảng phụ một số ví dụ2. Học sinh: sgkIII. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.

IV. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút )Tìm hiểu ý nghĩa xâu kí tự

Hđ của GV Hđ của HS Nd ghi bảngĐVĐ: Dữ liệu trong các bài toán không chỉ thuộc kiểu số mà cả kiểu phi số dạng kí tự. Dãy các kí tự đgl dữ liệu kiểu xâu.Ghi đề bài họcTrước tiên tìm hiểu Xâu kí tự là gì?Nêu vài ví dụ xâu: a) ‘HaNoi’b) ‘lop 11A1’c) ‘Nguyen Van An’Hs đã chbị bài ở nhà, y/cầu hs cho biết xâu là gì?

Cho hs khác bổ sung (nếu cần)

Hỏi: Số lượng kí tự các xâu ở ví dụ trên là bao nhiêu?

Hỏi: Xâu có một kí tự trống được viết như thế nào? số kí tự là bao nhiêu?Hỏi: Xâu rỗng được viết như thế nào?

Lắng nghe

Quan sát, nhận biết

Tl: Xâu là dãy các kí tự trong bảng mã ASCII, mỗi kí tự là một ptử. Số lượng các kí tự trong xâu là độ dài của xâu. Độ dài xâu bằng 0 gọi là xâu rổng.-Xácđịnh và trả lời:a) 5 kí tựb) 8 kí tự, dấu cách là 1 kí tực) 13 kí tự - Tl: ‘ ’, có độ dài là 1- Tl: ‘’, có độ dài là 0

KIỂU XÂU

1. Khái niệm

Xâu kí tự: (sgk)

- Xâu có một kí tự trống - Xâu rỗng

Giáo viên: Bùi Văn Tú 52

Page 53: Giao an tin hoc 11 (in2)

Giáo án tin học11

2. Hoạt động 2: (10 phút)Tìm hiểu về kiểu xâuHđ của GV Hđ của HS Nd ghi bảng

1.Y/cầu hs cho biết cách khai báo biến xâuHỏi: ý nghĩa của từ khoá string?Và [<độ dài lớn nhất của xâu>] ?

Hỏi: Nhập xâu hoten chỉ có 20 kí tự được không? (t/tự 31 kí tự?)Hỏi: Khi khai báo không có [n] thì số lượng kí tự là bao nhiêu?* Y/cầu hs cho ví dụ2. Tham chiếu đến từng kí tự của xâuY/cầu hs: Nhắc lại cách tham chiếu đến từng phần tử của mảng?- Giới thiệu cấu trúc chung- Y/cầu hs cho biết ý nghĩa của St[i]Y/cầu hs tìm ví dụ khác

1. N/cứu sgk và trả lờiVar <tên biến xâu>: string [<độ dài lớn nhất của xâu>] ;Tl: String là tên kiểu xâu- [n] giá trị qui định số lượng kí tự tối đa mà biến xâu có thể chứa.Ví dụ: Var hoten: string[30];Var St: string;Tl:được (không)

- Số kí tự tối đa là 255

2. Lắng nghe, quan sát bảng để trả lời.

Tl: St[i] p/tử thứ i của xâu St

2. Khai báo VAR tên_biến: STRING [độ dài lớn nhất của xâu];

Ví dụ:i)Var hoten: string[30];ii)Var St: string;

* Tham chiếu đến từng kí tự của xâuTên_biến_xâu[chỉ số]

3. Hoạt động 3: (25 phút)Các thao tác xử lí xâua. Nội dung:- Phép ghép xâu: kí hiệu +- Các phép so sánh: =, <>, >, <, <=, >=- Các thủ tục: delete(), insert(), val(), str().b. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Gợi nhớ các phép toán đã họcY/cầu hs nhắc lại các phép toán đã học trên kiểu dữ liệu chuẩn.

2. Phép ghép xâu: kí hiệu dấu cộng (+)Y/cầu hs cho biết kết quả các ví dụ? độ dài xâu nhận được?

3. Các phép so sánhY/cầu hs nêu lại các phép so sánh?Ở đây là chta so sánh các xâu với nhauY/cầu hs cho biết kết quả các phép so sánh

Các phép so sánh được thực hiện theo thứ tự từ điển.

1. Chú ý theo dõi, suy nghĩ và trả lời:P/toán số họcP/toán quan hệ (so sánh)P/toán logic2. Suy nghĩ cho ví dụVd:‘My Computer’ độ dài11

St = ‘pho co-Hoi An’độ dài 113. Nhớ lại và trả lờiVd1: A:=’Xa hoi’; B:=’Xa hoi’;A=B TrueVd2: A:= ‘Anh’; B:= ‘Ba’A>B FalseVd3: A=’hoa’; B=’hao’A>B True

3. Các thao tác xử lí xâua) Phép ghép xâu(+) ghép nhiều xâu thành một Có thể t/hiện ghép đvới các hằng xâu và biến xâu.Vd1:‘My’+ ‘ ’+ ‘Computer’Vd2: s1:=‘pho co’s2:=‘Hoi An’St:=s1+’-’+s2;

b) Các phép so sánhGiả sử A, B là 2 xâu+) A=B: A giống B hoàn toàn+) A>B kí tự đầu tiên khác nhau giữa chúng từ trái sang, mà trong A có mã ASCII lớn hơn

Giáo viên: Bùi Văn Tú 53

Page 54: Giao an tin hoc 11 (in2)

Giáo án tin học11

4. Các thủ tụcVd1: s=’Nui Thanh’Để s chỉ còn ‘anh’ ta phải viết thủ tục delete() thế nào?Vd2: s2=’Nui Thanh’Để s2 thành xâu ‘THPT Nui Thanh’ ta phải chèn thêm gì vào xâu? Và chèn như thế nào?* Ý nghĩa: ch/đổi xâu s thành số rồi gán cho biến N, nếu ch/đổi thành công thì code = 0, nglại thì code chứa số chỉ vị trí kí tự đầu tiên xuất hiện lỗi trong xâu s và giá trị N ko xác định* Ý nghĩa: ch/đổi giá trị số N thành kiểu xâu, rồi gán cho biến st.5. Kiểm tra kiến thứcTreo bảng y/cầu hs điền vào chổ trống (…)Hs trả lời:bảng1:Insert(s1,s2,8)Insert(‘CDE’,s2,3)bảng2:Delete(st,7,9) N= kxđ, e=5

4. Chú ý lắng ngheTl: Delete(s,1,6)

Tl: Insert(‘THPT ’,s2,1)

Code =0, n=3.14Code =3, n ko xác định

st=’2008’

c) Các thủ tụcDelete(S,vt,N)

Insert(s1,s2,vt)Trong đó vt, N là các số ngdươngVal (s,N,code)Vd: Val(’3.14’,n,code)Val(‘11A1’,n,code)

Str(N,st)Vd: str(2008,st)

BẢNG 1Xâu s1 ‘cua Me’Xâu s2 ‘Mua xuan’ ‘ABGHI’Thao tác Insert(…,s2,…) Insert(…,s2,…)kết quả ‘Mua xuacua Me’ ‘ABCDEGHI’

BẢNG 2Xâu st ‘Mua xuan cua Me’ ‘12.3A+02’Thao tác Delete(st,…,…) Val (st,n,e)kết quả st = ‘Mua xu’ n = … , e = …

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)Nội dung đã học

- Khái niệm xâu. Cách khai báo xâu, tham chiếu đến từng kí tự trong xâu.- Các phép ghép, so sánh giữa các xâu, các thủ tục

Ngày soạn: 4/12/07Tiết 28 KIỂU XÂU (tiết 2/2)I. MỤC TIÊU1. Kiến thức

- Biết được lợi ích của thủ tục và hàm liên quan đến xâu trong NNLT Pascal.- Nắm được cấu trúc chung và chức nằng của một số hàm và thủ tục liên quan đến xâu trong NNLT Pascal.

2. Kĩ năngNhận biết và bước đầu sử dụng được một số hàm và thủ tục để giải quyết một số bài tập đơn giản liên quan.

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: bảng phụ các ví dụ chbị sẵn, giáo án ,sgv, sgk2. Học sinh: sgkIII. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.

IV. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HSNêu câu hỏi:1. Khai báo một xâu có độ dài tối đa là 50 kí tự.2. Cho s1:=’hoa’; s2:=’Hoa’;

Lắng nghe câu hỏi và trình bày phần trả lời.1. Var st:string[50];2. False

Giáo viên: Bùi Văn Tú 54

Page 55: Giao an tin hoc 11 (in2)

Giáo án tin học11

Biểu thức s1<s2 cho kết quả là gì?(True hay False )Gọi 1 hs kiểm tra.

2. Hoạt động 2: (15 phút)Tìm hiểu ý nghĩa của các hàm xử lí trên xâua. Nội dung: Các hàm length(), copy(), pos(), upcase()b. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng

+ Nêu ý nghĩa hàm length()Length(st) = ??Length(‘’) =??+Nêu ý nghĩa hàm copy()+Nêu ý nghĩa hàm pos()Pos(‘51’,s) = ??+ Nêu ý nghĩa hàm Upcase()

Treo bảng* Y/cầu hs n/cứu và điền vào chổ trống trong bảng

Chú ý lắng nghe

Tl: 9Tl: 0

Tl: 8

Suy nghĩ và lên bảng điền kết quả và nội dung còn thiếu vào bảng

d) các hàmLength(s)Vd: + length(‘11A2’)=4+ St:=’xuan xanh’ Length(st)=9

Copy(S, vt, N)Vd: Copy(st, 1, 4) = ‘xuan’Pos(s1,s2)Vd: S=’Lop co 51 hs’Pos(‘51’,s) = 8Upcase(ch) , ch là 1 kí tựVd: upcase(s[5])

s=’Lop Co 51 hs’

BẢNG 3Ví dụ 1 Ví dụ 2 Ví dụ 3 Ví dụ 4

Xâu st ‘Co 25 nu’ ‘Tong so 51 hs’ ‘Tong so 51 hs’ ’51 hs’Thao tác length(st) pos(‘51’,st) Copy(st,…,…) Upcase(st[4])kết quả … … ’51 h’ …

3. Hoạt động3: (20 phút)Vận dụng dữ liệu kiểu xâu để viết chtrình giải 1 số bài toán đơn giảnHđ của GV Hđ của HS Nd ghi bảng

1.Nêu bài toán ví dụ 1 (ghi bảng)- Bài toán trên cần sử dụng kiểu dữ liệu gì để nhận giá trị là họ tên? - Cần sử dụng mấy biến xâu?Y/cầu hs viết khai báo các xâu?

Y/cầu hs viết tiếp lệnh nhập giá trị cho xâu a, bChỉnh sửa lại phần nội dung hs viết được.- Làm thế nào để xác định xâu lớn hơn? Viết lệnh gì để đưa dữ liệu xâu ra màn hình?Tiểu kết: để nhập/xuất dữ liệu kiểu xâu vẫn sử dụng lệnh read/write như kiểu dữ liệu chuẩn2. Nêu bài toán ví dụ 2Y/cầu hs khai báo xâu S.Ycầu hs viết lệnh nhậo giá trị cho xâu

Làm thế nào để biết số kí tự ‘A’ có trong xâu?

Xâu S được nhập vào có bao nhiêu kí tự?Tiểu kết: để duyệt qua tất cả các ptử trong xâu ta vẫn dùng lệnh for

Ghi lại đề bài, suy nghĩa và trả lời:- Kiểu xâu- 2 biếnLên bảng viết khai báoVar a,b:string;Lên bảngReadln(a); Readln(b);

So sánh 2 xâu a và bDùng lệnh write()

2. Ghi lại đề bài toánVar S:string;Begin Write(‘nhap xau ’); readln(s);Tl: duyệt qua tất cả các kí tự trong xâu nếu kí tự nào =’A’ thì đếm được 1 kí tựTl: Length(s) kí tự

4. Mộtsố ví dụVd1: Viết CT nhập vào họ tên đầy đủ của 2 người và đưa ra màn hình xâu họ tên lớn hơn.

Var a,b:string;BeginWrite(‘nhap ten ng 1’);Readln(a);Write(‘nhap ten ng 2’);Readln(b);If a>b then write(a) Else write(b);End.

Vd2: Viết CT nhập vào xâu S bất kì, cho biết trong xâu sử dụng bao nhiêu kí tự ‘A’?

Var S:string; i,d:byte;Begin Write(‘nhap xau ’); readln(s);d:=0;

Giáo viên: Bùi Văn Tú 55

Page 56: Giao an tin hoc 11 (in2)

Giáo án tin học11

For i:=1 to length(s) doIf s[i]=’A’ then inc(d);Write(d:4);End.

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học

Các hàm xữ lí trên xâu, vận dụng kiểu xâu trong các bài toán đơn giản2. Câu hỏi, bài tập về nhà

Xem trước bài: Bài thực hành sô5Viết CT nhập vào xâu S bất kì. thực hiện xoá bỏ tất cả các kí tự trắng thừa có trong xâu.(Xâu sau khi loại

bỏ không còn 2 kí tự trắng liền kề nhau, đầu và cuối xâu không phải là kí tự trắng)

Ngày soạn: 9/12/07Tiết 29, 30 BÀI THỰC HÀNH SỐ 5I. MỤC TIÊU1. Kiến thức

- Khắc sâu thêm phần kiến thức về lí thuyết kiểu xâu kí tự, đặc biệt là các thủ tục và hàm liên quan.- Nắm được một số thuật toán cơ bản: tạo xâu mới, đếm số lần xuất hiện một kí tự, …

2. Kĩ năng- Khai báo biến kiểu xâu- Nhập/xuất dữ liệu cho biến xâu- Duyệt qua tất cả các kí tự của xâu- Sử dụng các hàm thủ tục chuẩn

3. Thái độ: Tích cực chủ động trong thực hành

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: Phòng máy vi tính, Projector để hướng dẫn2. Học sinh: Sgk, bài tập ở nhàIII. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.

IV. HOẠT ĐỘNG DẠY HỌC

1. Hoạt động 1: (45 phút) Tìm hiểu chương trình, đề xuất phương án cải tiếna. Mục tiêu: Hiểu được chtrình, tính được kết quả. Biết đề xuất phương án cải tiến. b. Nội dung: Nhập một xâu, kiểm tra xem xâu đó có phải là một Palidrom hay không?c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Tìm hiểu đề bài- Giới thiệu đề bài lên bảngGiải thích: Xâu Palidrom-Y/cầu hs cho 2 ví dụ về xâu Palidrom và 1 ví dụ không phải?2. Tìm hiểu chtrình gợi ý- Treo chtrình lên bảng

-Hỏi: Chtrình sau đây có chức năng làm gì? Kết quả in ra màn hìnhn hư thế nào?

Chạy thử chtrình để hs kiểm nghiệm suy nghĩ của mình

3. Cải tiến chtrình- Nêu y/cầu mới: viết lại chtrình không sử dụng biến trung p?

1. Quan sát đọc kĩ đề

Phải: aabcbaa, 45654Không phải: abccda2. Quan sát chtrình suy nghĩ để hiểu chtrình.- Kiểm tra xâu có phải là Palidrom hay không?Kq: ‘xau la palidrom’ hoặc ‘xau khong la palidrom’-Quan sát gv thực hiện chtrình, nhập dữ liệu và kquả của chtrình.3. Chú ý theo dõi y/cầu của gv, trả lời một số cau hỏi dẫn dắt

- Kí tự thứ i đối xứng với kí tự thứ

Giáo viên: Bùi Văn Tú 56

Page 57: Giao an tin hoc 11 (in2)

Giáo án tin học11

Hỏi: kí tự thứ i đối xứng với kí tự vị trí nào?Hỏi: cần so sánh bao nhiêu cặp kí tự trong xâu để biết xau đó là palidrom?Hỏi: sử dụng cấu trúc nào để so sánh?

-Y/cầu hs viết chtrinh hoàn chỉnh.y/cầu hs nhập dữ liệu gv cho sẵn và thông báo kết quả.- xác nhận những bài làm có kết quả đúng.

length(s) –i +1- Tối đa length(s) div 2

- For hoặc While- Thực hiện soạn thảo chtrình lên máy theo yêu cầu cải tiến của gv- Nhập dữ liệu và thông báo kết quả.

2. Hoạt động 2: (40 phút) Rèn luyện kĩ năng lập trìnha. Mục tiêu: Hs biết phân tích yêu cầu để viết một chtrình hoàn chỉnhb. Nội dung: Viết CT nhập vào một xâu S bất kì và thông báo ra màn hình số lần xuất hiện trong S của mỗi chữ cái tiếng Anh (không phân biệt chữ hoa và thường)

c. Các bước tiến hành:Hđ của GV Hđ của HS Nd ghi bảng

1. Giới thiệu đề bài- Giới thiệu đề bài lên bảng-Y/cầu hs trả lời các câu hỏi để phân tích bài toán+Dữ liệu vào và dữ liệu ra của bài toán?

+Nhiêm vụ chính cần thực hiện khi giả quyết bài toán?

+Cấu trúc dữ liệu cần sử dụng?

+ Ta phải sử dụng hàm gì?Bổ sung và sửa sai cho hs.2. Y/cầu hs được lập viết chương trình hoàn chỉnh theo thuật toán phát hiện ở trên- Y/cầu các em lập trình xong trước tìm một số bộ test- Y/cầu hs nhập dữ liệu vào theo test của gv và thông báo kết quả.Xác nhận kết quả đúng của hs và sửa sai cho các em có kết quả sai.

+Vào:một xâu SRa:dãy các số ứng với sự xuất hiện của mỗi loại kí tự trong xâu.+T/toán: Duyệt xâu từ trái sang phải, thêm 1 đơn vị cho kí tự đọc được+Cấu trúc dữ liệu:

Dem[‘A’.. ‘Z’]+Upcase()

2. Độc lập soạn chtrình vào máy

- Tìm test- Nhập dữ liệu của gv thực hiện chtrình và xem kết quả- Thông báo kết quả

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học: Một số thuật toán cơ bản liên quan đến xâu kí tự2. Câu hỏi, bài tập về nhà

Xem trước bài: Kiểu bản ghi

Ngày soạn: 11/12/07Tiết 31 KIỂU BẢN GHII. MỤC TIÊU1. Kiến thức- biết được khái niệm về bản ghi- Phân biệt được sự giống và khác nhau giữa kiểu bản ghi và kiểu mảng 1 chiều2. Kĩ năng- Khai báo được kiểu bản ghi, khai báo được biến kiểu bản ghi trong NNLT Pascal- Nhập/xuất được dữ liệu cho bản ghi- Thamchiếu đến từng trường của bản ghi

Giáo viên: Bùi Văn Tú 57

Page 58: Giao an tin hoc 11 (in2)

Giáo án tin học11

- Sử dụng kiểu bản ghi để giải quyết một số bài tập đơn giản

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên: Giáo án, Máy tính2. Học sinh: sgkIII. PHƯƠNG PHÁP: Thuyết trình, nêu vấn đề, hỏi đáp.

IV. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HSViết CT nhập vào một xâu bất kì và cho biết trong xâu có bao nhiêu kí tự số?

Var S: string; i: integer;Begin write(‘Nhap xau S ’); readln(S);d:=0;For i:=1 to length(s) do

If (s[i]>=’0’) and (s[i]<=’9’) then inc(d);Write(d);End.

2. Hoạt động 2: Giới thiệu kiểu bản ghi. Tạo một kiểu bản ghi trong NNLT Pascal.Hđ của GV Hđ của HS Nd ghi bảng

Giáo viên: Bùi Văn Tú 58

Page 59: Giao an tin hoc 11 (in2)

Giáo án tin học11

1. Tìm hiểu kiểu bản ghiY/cầu hs quan sát bảng kết quả thi TN sgk trang 74.Hỏi: trên bảng có những thông tin gì?-bảng chứa thông tin của bao nhiêu đối tượng?-Y/cầu hs cho thêm ví dụ tương tụ.

* Mỗi thông tin của đtượng đgl 1 thuộc tính hay 1 trường của đtượng. Mỗi đtượng đươc mô tả bằng nhiều thiông tin trên một hàn đgl một bản ghi.* Để mô tả các đtượng như vậy, NNLT cho phép ta xác định kiểu bản ghi. một đtượng được mô tả băng một bản ghi.2. Y/cầu hs n/cứu sgk và cho biết cách khai báo kiểu bản ghi, khai báo biến kiểu bản ghi trong PascalY/cầu: Tìm 1 vídụ để minh hoạ Để giải quyết bài toán trong mục 1 ta phải khai báo 1 mảng các bản ghi. Hãy tạo kiểu mảng?

Y/cầu hs so sánh giống và khác nhau của kiểu bản ghi và kiểu mảng 1 chiều.

1. Quan sát ví dụ sgk, trả lời câu hỏi:

- Họ tên, ngày sinh, giới tính, điểm các môn thi.- 3 đối tượng- Để mô tả 1 người trong danh bạ điện thoại cần các thông tin: họ tên, địa chỉ, SĐT.

2. Tham khảo sgk để năm cách khai báo kiểu và biến kiểu bản ghi.

Độc lập suy nghĩ, tạo kiểu bản ghiType kieu_hs =recordHten,ngsinh:string;Toan, van:byte;Dtb:real;End;Kieu_m=array[1..50] of kieu_hs;Var Lop:kieu_m;Tl:Giống: được ghép bởi nhiều phần tửKhác: mảng 1 chiều ghép bởi nhiều ptử cùng kiểu,kiểu bản ghi ghép nhiều ptử có kiểu dữ liệu có thể khác nhau.

1. Khai báoType <tênkiểu>=record<têntrường1>: <kiểu trường 1>;…………….<têntrườngN>:<kiểu trườngN>;End;Var <tên biến>: <tênkiểu>;Ví dụ: Type knguoi = record Hoten:string; Dchi:string; SDT:longintEnd;Var nguoi: knguoi;

3. Hoạt động 3: Tìm hiểu cách sử dụng bản ghi trong NNLT PascalHđ của GV Hđ của HS Nd ghi bảng

1. Giới thiệu cấu trúc chung, tham chiếu đến từng trường của biến bản ghiY/cầu hs tìm vídụ về tham chiếu đến từng trường của biến bản ghi từ các khai báo ở trên

2. Gới thiệu 2 cách gán giá trị cho biến bản ghi+Gán nguyên cảu biến bản ghi (1)+ Gán lần lượt từng trường (2)Hỏi: trường hợp (1) thực hiện trong điều kiện nào?

1. Quan sát cấu trúc gv giới thiệu

Vd:Nguoi.hotenNguoi.dchiNguoi.sdt2. Quan sát 2 cách gán giá trị và tìm ví dụ cụ thể

Tl: hai biến A, B được khai báo cùng 1 kiểu bản ghi.

2. Tham chiếu đến từng trường của bản ghiTênbiến.têntrườngVd: Type knguoi = record Hoten:string; Dchi:string; SDT:longintEnd;Var nguoi: knguoi;3. Gán giá trị cho biến bản ghi(1) A:=B(2) A.ht:=B.ht;

Giáo viên: Bùi Văn Tú 59

Page 60: Giao an tin hoc 11 (in2)

Giáo án tin học11

3. Nhập/xuất dữ liệu chó biến bản ghi* ta phải nhập/xuất giá trị cho từng trường.Y/cầu hs viết lệnh nhập giá trị cho 3 trường của biến nguoi; lệnh in giá trị của trường hoten của bản ghi nguoi

3. Chú ý theo dõi sự dẫn dắt của gv, ghi nhớ và tìm ví dụ.Readln(Nguoi.hoten);Readln(Nguoi.dchi);Readln(Nguoi.sdt);Writeln(nguoi.hoten;)

A.toan:=9; A.dtb:=(A.toan+A.li)/2;

4. Hoạt động 4: Rèn luyện kĩ năng lập trìnha. Nội dung: Viết CT giải quyết bài toán quản lí sau: Nhập họ và tên, điểm toán(toan) và điểm lý (ly) của 30 học sinh trong lớp. In ra màn hình họ tên và điểm trung bình (dtb) của 30 học sinh đó (dtb=(toan+ly)/2)b. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng1. Nêu nội dung đề bàiHỏi: Sử dụng kiểu dữ liệu như thế nào để giải quyết bài toán?-Y/cầu hs mô tả thông tin của 1 hs bằng kiểu bản ghi. - Tạo mảng các bản ghi đó

- Y/cầu hs nếu các bước gải quyết bài toán

2. chia lớp thành 3 nhóm. y/cầu viết CT lên bìa con.Thu bìa và treo lên bảng, gọi hs nhóm khác nhận xét và đánh giá.

3. Thông báo chtrình mẫu để hs chuẩn hoá lại.

1. Đọc đề, phân tích để trả lời câu hỏi.-Một mảng các bản ghiType hs=recordTen:string;Toan,li,tb:real;end;Manghs=array[1..30] of hs;Var Lop:manghs;

Các bước:B1:Tạo kiểu dữ liệu, kbáo biến.B2: Nhập dliệu cho mảng các bản ghi, tính giá trị trường tb.B3: đưa các t/tin theo y/cầu ra màn hình. (ten, tb)2. Thảo luận nhóm và hoàn tất CT,Nộp kết quảNhận xét, đánh giá và bổ sung nhữ sau sót của nhóm khác.3. Quan sát và ghi nhớ

Type hs=recordTen:string;Toan,li,tb:real;end;Manghs=array[1..30] of hs;Var Lop:manghs;

BEGINFor i:=1 to 30 dobeginwrite(‘Hoc sinh ’,i); readln(lop[i].ten);write(‘diem toan, ly ‘’); readln(lop[i].toan,lop[i].li);lop[i].tb:=(lop[i].toan+lop[i].li)/2;end;writeln(‘ Ho va ten |Diemtb ’);For i:=1 to 30 doWriteln(lop[i].ten:30, lop[i].tb:8:2);END.

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học2. Câu hỏi, bài tập về nhà

Xem nội dung phụ lục B, sgk, trang 134: Câu lệnh With.

Ngày soạn: 15/12/07Tiết 32-33 ÔN TẬP

I. MỤC TIÊU1. Kiến thức2. Kĩ năng

II. ĐỒ DÙNG DẠY HỌC1. Giáo viên2. Học sinh

Giáo viên: Bùi Văn Tú 60

Page 61: Giao an tin hoc 11 (in2)

Giáo án tin học11

III. PHƯƠNG PHÁP

IV. HOẠT ĐỘNG DẠY HỌC1. Hoạt động 1: (5 phút) Kiểm tra bài cũ

Hđ của GV Hđ của HS

2. Hoạt động 2:a. Mục tiêu:b. Nội dung:c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng

3. Hoạt động 3:a. Mục tiêu:b. Nội dung:c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng

4. Hoạt động 4:a. Mục tiêu:b. Nội dung:c. Các bước tiến hành:

Hđ của GV Hđ của HS Nd ghi bảng

IV. ĐÁNH GIÁ CUỐI BÀI (5phút)1. Nội dung đã học2. Câu hỏi, bài tập về nhà

Xem trước bài:

KIỂM TRA HỌC KỲ II.TRẮC NGHIỆM (Hs khoanh tròn vào một phương án trả lời đúng cho mỗi câu)1. Biểu diễn nào dưới đây là Hằng? A. begin B. E58 C. 12.4E-5 D. type2. Kiểu dữ liệu nào dưới đây thuộc loại kiểu dữ liệu chuẩn:

A. Kiểu kí tự B. Kiểu xâu C. Kiểu mảng D. Kiểu bản ghi3. Phép toán nào sử dụng trong biểu thức trả về giá trị True hoặc FalseA. Phép toán số học B. Phép toán quan hệ và phép toán số họcC. Phép toán số học và phép toán logic D. Phép toán quan hệ và phép toán logic4. Chương trình sau đây Đúng hay Sai? Vì sao?

BeginWriteln(‘Chuc cac em thi tot!’); A. Sai, vì CT này không có phần khai báo Write(‘Dat ket qua cao’); B. Đúng, vì CT này không cần khai báoReadln C. Sai, vì CT này thiếu phần nhập giá trị End. D. Sai, vì CT này thiếu phần tính toán

5. Chương trình dịch Pascal cấp phát bao nhiêu Byte bộ nhớ cho các biến trong khai báo sau:Var A: array[1..10] of integer; A. 28 B. 36

I, N: real; q, b: word; C.5 D. 186. Giá trị của các biểu thức boolean sau đây là gì với N = 300, p = - 0.001,

q = 0.001, c = ‘5’(1) 2*N <=500(2) (abs(p) = q) and (c < ‘4’)(3) Not (c > ‘7’)A. False – False – True B. False – True – FalseC. False – True – True D. False – False – False

Giáo viên: Bùi Văn Tú 61

Page 62: Giao an tin hoc 11 (in2)

Giáo án tin học11

7. Sau khi thực hiện đoạn chương trình sau thu được kết quả xâu S là gì?begin

S := ‘GBCDEFA’;T := S[1];S[1] := S[length(S)];

S[length(S)] := T; A. ‘GBCDEFA’ B. ‘ABCDEFG’end; C. ‘AGBCDEF’ D. ‘BCDEFAG’8. Trong NNLT Pascal, hai xâu kí tự được so sánh dựa trên?

A. Độ dài tối đa của hai xâuB. Mã của từng kí tự trong các xâu lần lượt từ trái sang phảiC. Độ dài thực sự cảu hai xâuD. Số lượng các kí tự khác nhau trong xâu

Hãy đọc kỹ đoạn chương trình sau: Program timkiem;Var m: array[1..100] of integer;

i, n, k: integer;Begin Write('Ban can nhap bao nhieu so:'); Readln (n);

For i:=1 to n doBegin Write('Nhap so thu ',i,':'); Readln(m[i]); End;Write('Nhap so can tim:'); Readln(k);i:=1;While (m[i]<>k)and (i<=n)Do i:=i+1;If i>n then Writeln ('Trong day ban da nhap khong co so nguyen nao bang

',k)else Writeln('Trong day ban da nhap co so bang',k);

Readln;End.Và hãy trả lời các câu hỏi 9 và 10: 9. Trong chương trình trên có đoạn lệnh có sử dụng vòng lặp While …Do, chương trình trên thoát khỏi

vòng lặp khi:A. m[ i ]=k B. (m[ i ]=k) hoặc( i>n) C. i>n D. (m[ i ]=k) và (i>n)

10. Giả sử khi chạy chương trình, ta tạo dữ liệu cho mảng m gồm các phần tử lần lượt là: 7, 5, 19, 54 và 20. Và gán cho biến k mang giá trị 54. Vậy sau khi thực hiện xong chương trình, trên màn hình sẽ có dòng thông báo: A. Trong dãy bạn đã nhập có số bằng k B. Trong dãy bạn đã nhập có số bằng 54 C. Trong day ban da nhap co so bang k D. Trong day ban da nhap co so bang 54

II. TỰ LUẬN1. Cho chương trìnhVar i: byte;Begin

For i:=1 to 35 do If i mod 3 = 0 then write (i:4);

ReadlnEnd.a. Hãy viết lại chương trình bằng cách thay đổi cấu trúc FOR bằng cấu trúc WHILE.b. Cho biết chương trình trên thực hiện công việc gì?2. Viết CT tạo mảng A có N (N200) phần tử là số nguyên. In ra màn hình mảng vừa tạo. Tính và đưa ra màn hình giá trị trung bình của các số nguyên dương lẻ có trong mảng A.

Giáo viên: Bùi Văn Tú 62