Giao an11moi hayday du

130 2 0
Giao an11moi hayday du

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

* Khái niệm lập trình: Là sử dụng một cấu trúc dữ liệu và các câu lệnh của một ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt thuật toán.... hiện bước sau:.[r]

(1)

Chương 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH Tiết1 §1: KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH Ngày soạn: 15/08/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC ĐÍCH YÊU CẦU Kiến thức:

1 Biết có lớp ngơn ngữ lập trình mức ngơn ngữ lập trình: ngơn ngữ máy, hợp ngữ ngôn ngữ bậc cao.

2 Biết vai trị chương trình dịch 3 Biết khái niệm thơng dịch biên dịch

4 Biết nhiệm vụ quan trọng chương trình dịch phát hiện lỗi cú pháp chương trình nguồn.

2 Kỹ năng:

3 Tư tưởng: Giúp học sinh bước đầu làm quen với khái niệm NNLT từ tạo hứng thú học mơn NNLT bậc cao

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC: 1 Phương pháp: Thuyết trình, vấn đáp

2 Phương tiện: Máy chiếu, máy tính, phịng chiếu bảng. III NỘI DUNG BÀI MỚI:

1 Ổn định lớp 2 Kiểm tra cũ: 3 Bài mới

Thời

gian Hoạt động GV HS Nội dung

* Đặt vấn đề: Em cho biết bước giải tốn máy tính

HS: Trả lời

GV: Nhắc lại bước giải toán máy tính học lớp 10

Xác định toán, lựa chọn thiết kế thuật toán, viết chương trình, hiệu chỉnh, viết tài liệu

GV: Em cho biết có loại ngơn ngữ lập trình?

HS: Trả lời

(2)

GV: Phân tích câu trả lời học sinh có loại ngơn ngữ lập trình: ngơn ngữ máy, hợp ngữ, ngơn ngữ bậc cao

GV: Làm thể để chuyển chương trình viết ngơn ngữ bậc cao sang ngơn ngữ máy?

GV:Như với chương trình dịch, coi chương trình nguồn (Chương trình viết ngơn ngữ bậc cao) liệu vào chương trình đích chương trình dịch thành chương trình máy hiểu thông thường ngôn ngữ máy) kết

GV: Đưa ví dụ: Bạn khơng biết tiếng anh bạn nói chuyện với người Anh hay đọc sách tiếng anh

+ Khi người làm phiên dịch người phải dịch nào? (Dịch câu hai người nói chuyện) + Khi muốn dịch sách phải sang tiếng Việt người làm nào? (Dịch tồn

cuốn sách sang tiếng việt để người khác đọc được)

GV: Như nói để dịch sang tiếng anh ví dụ có hai cách? Đối với máy tính chương trình dịch có hai loại (2 cách) để dịch sang máy tính cho máy tính hiểu

Ví dụ: Biên dịch: Khi sử dụng ngơn ngữ chương trình Pascal để dịch chương trình ngơn ngữ máy để máy tính thực

* Chương trình viết ngơn ngữ máy nạp trực tiếp vào nhớ máy tính nhớ thi hành nhược điểm phải phụ thuộc vào loại máy tính

* Chương trình viết ngôn ngữ bậc cao ngôn ngữ thân thiện, mặt khác không phụ thuộc vào loại máy phải sửa sai ngôn ngữ gần với ngôn ngữ tự nhiên, có tính độc lập cao

* Kết luận: Cần phải có chương trình dịch để chuyển chương trình viết ngơn ngữ lập trình bậc cao sang ngơn ngữ máy thi hành

* Sơ đồ q trình chuyển ngơn ngữ bậc cao sang ngơn ngữ máy

Ctrình -> Ctr dịch -> Ctr đích nguồn (Input) (Output)

* Chương trình dịch có loại: Biên dịch thơng dịch

(3)

hiện bước sau:

- Duyệt, kiểm tra, phát lỗi kiểm tra tính đắn câu ctr nguồn

- Dịch toàn ctr nguồn thành chương trình đích để thực máy lưu trữ để sử dụng lại cần thiết * Thông dịch (interpreter) dịch câu lệnh thực câu lệnh

Thông dịch việc lặp lại dãy bước sau:

- Kiểm tra tính đắn câu lệnh ctr nguồn

- Chuyển đổi câu lệnh thành hay nhiều câu lệnh ngôn ngữ máy - Thực lện ngôn ngữ máy vừa chuyển

4 Củng cố:

- Qua học sinh nắm khái niệm lập trình để dịch ngơn ngữ bậc cao cần có chương trình dịch

- Hiểu chất loại chương trình: Biên dịch thơng dịch Câu hỏi củng cố:

1, Nêu giống khác biên dịch thông dịch? 2, Tại cần sử dụng ngôn ngữ bậc cao?

5 Dặn dò hướng dẫn học sinh học làm tập nhà: - Về nhà em xem lại nội dung học sáng - Trả lời câu hỏi sgk

- Đọc trước 2: Các thành phần ngơn ngữ lập trình VI TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

(4)

Ngày soạn: 15/08/2010 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC ĐÍCH YÊU CẦU Kiến thức:

- Biết ngơn ngữ lập trình có thành phần là: bảng chữ cái, cú pháp ngữ nghĩa.

- Hiểu phân biệt thành phần này.

- Biết thành phần Pascal: Bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa), biến.

2 Kỹ năng

- Phân biệt tên, biến

- Biết đặt tên đúng.

3 Tư tưởng: Giúp học sinh bước đầu làm quen với khái niệm NNLT từ tạo hứng thú học mơn NNLT bậc cao

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

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

- Phương tiện: Máy chiếu, máy tính, phịng chiếu bảng III NỘI DUNG BÀI MỚI

1 Ổn định lóp: Kiểm tra bái cũ:

Câu 1: Chương trình dịch gì? Tại cần có chương trình dịch?

Câu 2: So sánh giống khác biên dịch thông dịch? Bài mới:

Thời gian

Hoạt động GV HS Nội dung

* Đặt vấn đề: Các ngôn ngữ lập trình thường có chung số thành phần, dùng kí hiệu để viết Ctr, viết theo quy tắc nào? ngơn ngữ lập trình có quy tắc viết riêng chúng hôm tìm hiểu thành phần ngơn ngữ Pascal

GV: Đưa bảng phụ thành phần chữ phân tích

* Lưu ý: Các NNLT khác bảng

1, Các thành phần

- Mỗi ngơn ngữ lập trình thường có thành phần bảng chữ cái, ngữ pháp ngữ nghĩa

(5)

chữ sử dụng ngôn ngữ khác

Vi dụ: Ngôn ngữ Pascal không sử dụng dấu ! ; " \ C C++ thì lại dùng

HS: Lắng nghe ghi chép

GV: Thành phần thứ cú pháp dựa vào quy tắc người viét chương trình dịch cho biết tổ hợp kí tự hợp lệ

VD: Trong pascal không cho dùng ! \ " viết chương trình

HS: lắng nghe

GV: Vậy thành phần NNLT, ta tìm hiểu số khái niệm liên quan đến NNLT

GV: Cũng sống muốn phân biệt vật người với ngươì phải đặt tên NNLT tất đối tượng đặt tên phải tuân theo quy tắc tiếp

HS: Nghe giảng ghi chép theo ý hiểu

ta có bảng phụ sau:

Loại kí tự Biểu diễn kí tự Mã ASCII +Các chữ in 'A' 'Z' 65 90 hoa thường 'a' 'z' 97 122 +kí tự kiểu số '0' '9' 48 57 + Kí tự dấu cách ' ' 32 +Kí tự dấu gạch '_' + Kí tự phép tốn '+','-','*','=', '>', '<' + Kí tự dấu ngoặc: '(', ')', '}', '{', ']','[' + Kí tự khác dấu ; " @ $ # $ & b, Cú pháp quy tắc viết chương trình

+ Lưu ý: Những ngơn ngữ khác có quy tắc khác

VD: Pascal dùng cặp Begin end để gộp nhiều câu lệnh thành câu lệnh C dùng cặp ngoặc {}

c, Ngữ nghĩa: Xác định ý nghĩa thao tác cần phải thực ứng với tổ hợp kí tự dựa vào ngữ cảnh

VD: (sgk - 10) * Tóm lại: (sgk - 10)

- Cú pháp cho biết cú pháp chương trình hợp lệ cịn ngữ nghĩa xác định ý nghĩa tổ hợp kí tự chương trình

- Lỗi cú pháp ctr dịch phát thơng báo cho người lập trình Chương trình khơng cịn lỗi dịch sang ngơn ngữ máy

- Lỗi ngữ nghĩa phát chạy chương trình

2 Một số khái niệm a, Tên

*, Trong Pascal

Tên dãy liên tiếp khơng q 127 kí tự gồm có chữ cái, chữ số dấu gạch

+ Tên bắt đầu chữ dấu gạch

(6)

GV: Ở đay nghiên cứu quy tắc đặt tên Pascal

GV: Tất NNLT có thành thành phần NN khác mà tên có ý nghĩa khác

VD: while, void C tên dành riêng

GV: tên dành riêng dùng với ý nghĩa riêng xác định, người LT không sử dụng với ý nghĩa khác tên dành riêng có màu khác so với tên khác câu lệnh

VD: Turbo Pascal tên dành riêng có màu trắng

HS: Nghe giảng ghi chép

GV: Tên chuẩn khác với tên dành riêng: tên NNLT dùng với ý nghĩa thư viện NNLT nhiên người lập trình dùng với ý nghĩa khác

GV: Đưa ví dụ: để viết PT bậc ta phải khai bao tên sau:

+ a, b, c hệ số PT bậc + x1, x2 nghiệm Pt bậc + deta dùng để lưu giá trị deta HS: Lấy ví dụ khác

GV: Khi giá trị chương trình khơng đổi ta gọi gì?

GV: Hằng thường có loại hằng, đặt tên không đặt tên Hằng không đặt tên giá trị viết trực tiếp vào chương trình Mỗi NNLT có quy định cách viết riêng

Ví dụ biến đối tượng sử dụng nhiều viết chương trình biến đại lượng thay đổi nên thường dùng để lưu trữ kết quả, làm trung gian cho tính tốn loại ngơn ngữ khác có loại biến khác cách khai báo khác GV: Khi viết chương trình người lập

VD: tên đúng: anh, _12b,; Tên sai: 1am; *khánh;

Lưu ý: _ Tên không chứa dấu cách, bắt đầu chữ số, kí tự đặc biệt để đặt tên

_ Trong Turbo Pascal không phân biệt chữ hoa chữ thường

* Phân loại tên NNLT Pascal thường có loại tên bản: tên dành riêng, tên chuẩn, tên người lập trình đặt

_ Tên dành riêng (Từ khoá)

VD: Một số từ khoá turbo pascal begin; end; var, const; uses;

_Tên chuẩn: Dùng với ý nghĩa định

VD: tên chuẩn turbo pascal như: real; integer; read; cos; sin

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

+Được xác định cách khai báo trước sử dụng không trùng với tên dành riêng

- Các tên chương trình khơng trùng

b Hằng biến

+ Hằng: Là đại lượng có giá trị khơng đổi qua trình thực chương trình

- Hằng số học: số nguyên, số thực

- Hằng xâu chuỗi kí tự mã ASCII Khi viết phải đặt cặp nháy "

- Hằng lơgíc giá trị đúng, sai (true) (false)

VD:

(7)

trình thường có nhu cầu giải thích

câu lệnh mà viết -Các NNLT có nhiều loại biến khác nhaubiến phải khai báo trước sử dụng

c Chú thích:

- chương trình viết thích viết cho chương trình

- Chú thích khơng làm ảnh hưởng cho chương trình

Ví dụ: Trong pascal thích đặt {} (* *)

trong C++ thích đặt /* */

4, Củng cố

- Qua em cần nắm thành phần để viết chương trình; số khái niệm tên: tên dành riêng, tên chuẩn, tên người lập trình đặt;khái niệm biến

- Bài tập củng cố:

1, Hãy viết ba tên ba tên sai theo quy tắc pascal 2, đâu biểu diễn turbo pascal lỗi a, 186,23; b, 1.06E15; c, 273; d, lan'; e, a20; f, 'false'

5 Dặn dò hướng dẫn học sinh học làm tập nhà: - Về nhà em trả lời câu hỏi -> (sgk - 13)

- Đọc lại kiến thức 1, làm tập 1.2-> 1.4 (sbt - 6,7) IV TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG

(8)

Tiết BÀI TẬP Ngày soạn: 15/08/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC TIÊU CẦN ĐẠT Kiến thức:

- Củng cố kiến thức học 2 Kỹ năng:

- Làm số tập để nắm trắc lý thuyết, biết đặt tên đúng, sai Pascal biết nhận sai cách biểu diễn sai pascal

3 Tư tưởng:

- Bước đầu làm quen với NNLT, tạo hứng thú học môn học II.PHƯƠNG PHÁP, ĐỒ DÙNG DẠY HỌC:

- Đàm thoại đưa dạng tập, đặt vấn đề giải vấn đề. - Giáo án, sgk, sbt

III NỘI DUNG BÀI MỚI 1 Ổn định lớp

2 Kiểm tra cũ:

Câu 1: Hãy nêu quy tắc đặt tên Pascal? ví dụ tên đúng, tên sai?

Câu 2: Hãy cho biêt điểm khác biệt tên dành riêng tên chuẩn? cho ví dụ loại tên đó?

3 Nội dung mới:

Thời

gian Hoạt động giáo viên học sinh Nội dung GV: Nhắc lại nội dung

1, Quy tắc đặt tên pascal?

2, Phân biệt tên chuẩn tên dành riêng? HS: Trả lời

GV: Đưa tập

HS: Đọc tập (sgk - 13) trả lời GV: Nhận xét bổ sung

Trả lời:

2, Tên dành riêng không dùng với ý nghĩa xác định, cịn tên chuẩn dùng với ý nghĩa khác

Bài (sgk - 13)

a 150.0 ; b, -22; c, 6,23; d, '43' ; e, A20; f, 1.06E.15; g, 4+6; h, 'c; i, 'true'

Giải

Những biểu diễn pascal

c, 6,23 - dấu phẩy thay dấu chấm e, A20 - tên chưa rõ giá trị

chú ý:

g, 4+6 biểu thức pascal coi pascal

i, 'true' xâu khơng phải lơgíc

(9)

GV: Đưa tập HS: Đọc trả lời câu hỏi

đơn cuối; Bài 1.9(sbt - 7)

a, Begin; b, '65c' ; c, 1024; d, -46; e, 5.A8; f, 12.4E-5

Hãy chọn biểu diễn Pascal Đáp án: b, c, d, f

Bài 1.10 (sbt - 7)

Hãy chọn biểu diễn tên biểu diễn sau:

a, '*****' b, -5+9-0; c, PpPpPp d, +256.512; e, FA33c9; f, (2) Đáp án: c, e

Bài 1.11(sbt-7)

Biểu diễn từ khoá pascal a, end; b, integer; c, real; d, sqrt; e, 'end' ; f, var;

đáp án: a, f Bài 1.16(sbt - 7)

Phát biểu sau

a, Khi cần thay đổi ý nghĩa từ khoá người lập trình cần khai báo theo nghĩa

b, tên người lập trình đặt khơng trùng với từ khoá trùng với tên chuẩn

c, Mọi đối tượng có giá trị thay đổi chương trình gọi biến

d, chương trình tên gọi đối tượng khơng thay nên xem

Đáp án: b, c

4 Củng cố: Qua học sinh nắm trắc lý thuyết áp dụng vào để làm tập rèn luyện kỹ đặt tên pascal, phân biệt biến cách biểu diễn pascal

5 Dặn dò học sinh học làm tập nhà:

- Về nhà làm tập 1.7; 1.17 đến 1.20 sách tập - Về nhà đọc trước cấu trúc chương trình

V RỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

(10)

CHƯƠNG II: CHƯƠNGTRÌNH ĐƠN GIẢN TIẾT 4: CẤU TRÚC CHƯƠNG TRÌNH Ngày soạn: 24/08/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC ĐÍCH YÊU CẦU Kiến thức:

 Hiểu chương trình mơ tả thuật tốn ngơn ngữ lập trình  Biết cấu trúc chương trình Pascal: cấu trúc chung thành phần Kỹ năng:

 Nhận biết thành phần chương trình đơn giản Tư tưởng:

Hình thành học sinh bước đầu làm quen đến biết viết chương trình ngơn ngữ cụ thể

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:  Phương pháp: Thuyết trình, vấn đáp

 Phương tiện: Máy chiếu, máy tính, phịng chiếu bảng III TIẾN TRÌNH BÀI GIẢNG

1 Ổn định lớp: Kiểm tra cũ

3 Nội dung mới

Tg Hoạt động Giáo viên Học sinh Nội dung GV : Ở chương I biết

các thành phần NNLT để mô tả thuật tốn ta phải viết chương trình viết chương trình có cấu trúc vào hôm

GV: Cũng ta viết văn có nhiều thể loại văn văn nghị luận, phân tích, mơ tả,… cấu trúc chung để viết văn hồn chỉnh có phần khơng? NNLT có ba phần phần ta tìm hiểu phần

HS: Lắng nghe, ghi chép

GV : Thuyết trình đưa kiến thức HS : Lắng nghe, ghi chép

GV: cấu trúc chung để hiểu

1 Cấu trúc chung

- Mỗi chương trình nói chung gồm phần: phần khai báo phần thân chương trình

[<Phần khai báo>] <Phần thân>

(11)

từng thành phần ta tiếp phần

GV : Phần khai báo báo cho máy biết chương trỉnh sử dụng tài nguyên máy

HS: ghi chép theo ý hiểu

GV: Khai báo tên chương trình có ý nghĩa cho biết tên toán viết chương trình cú pháp sau

GV: Nêu quy tắc đặt tên Pascal HS: trả lời

GV: Vậy để đặt tên bắt buộc phải có từ khóa program sau tên chương trình

GV: Trong NNLT thường có sẳn số thư viện cung cấp số chương trình thơng dụng để dùng cách khai báo tiếp

GV: Nêu cú pháp khai bào thư viện NNLT pascal

HS: Nghe giảng ghi chép

GV : Mỗi ngơn ngữ lập trình có cách khai báo khác tùy thuộc vào ngơn ngữ mà ta cần tìm hiểu xem chương trình ta cần khai báo GV : Thư viện chương trình thường chứa đoạn chương trình lập sẵn giúp người lập trình thực số công việc thường dùng, đoạn chương trìnhnày hữu ích cho gnười lập trình, ngơn ngữ lập trình tiên tiến

GV : Lấy ngôn ngữ lập trình nay, chẳng hạn Visual Basic.NET, lấy số lệnh để học sinh thấy tiện dụng sử dụng thư viện

GV : Khai báo việc đặt tên cho để tiện sử dụng tránh việc

a.Phần khai báo

- Có thể khai báo tên chương trình, đặt tên, biến, thư viện, chương trình con,…

Khai báo tên chương trình - Trong Turbo pascal

Program <tên chương trình>;

- Tên chương trình người lập trình tự đặt theo quy tắc đặt tên Ví dụ : Program Bai_1;

Program Tong;

Khai báo thư viện:

- Trong ngôn gnữ Pascal : Uses <tên thư viện>; - Trong ngôn ngữ C++ :

#include<Tên tệp thư viện>

Ví dụ: Trong Turbo Pascal : Uses CRT, GRAPH;

Trong VISUAL STUDIO 2005 : Imports System.Xml

Khai báo :

(12)

phải viết lặp lại nhiều lần chương trình Khai báo cịn tiện lợi cần thay đổi giá trị chương trình

GV : Lập trình ngơn ngữ cần tìm hiểu cách khai báo ngôn ngữ

GV : Khai báo biến chương trình nghiên cứu sau

GV : Mỗi ngơn ngữ lập trình có cách tổ chức chương trình khác nhau, thường phần thân chứa câu lệnh chương trình

GV : Đưa ví dụ cách viết thân chương trình ngơn ngữ lập trình pascal

HS : Quan sát nhận xét

cho tiện sử dụng Ví dụ:

Trong Pascal : Const N = 100; e = 2.7; Trong C++ :

Const int N = 100; Const float e = 2.7

(Khai báo biến trình bày 5) Phần thân chương trình :

- Thân chương trình thường nơi chứa toàn câu lệnh chương trình lời gọi chương trình

- Thân chương trình thường có cặp dấu hiệu bắt đầu kết thúc chương trình

Ví dụ: Trong ngơn gnữ Pascal Begin

[<Các câu lệnh>] End

3 Ví dụ chương trình đơn giản

Xét chương trình đơn giản ngơn ngữ Pascal

Chương trình : Trong ngôn ngữ Turbo Pascal

Program VD; Begin

Write(‘Chao cac ban’); Readline;

End Củng cố:

- Qua học sinh nắm câud trúc chươngtrình đơn giản, biết phần khai báo tên, hằng, làm quen với số chương trình cụ thể NNLT Pascal

5 Dặn dò:

- Về nhà em học lại kiến thức hôm để trả câu hỏi cuối - Đọc trước số kiểu liệu chuẩn

(13)

(14)

 KHAI BÁO BIẾN Ngày soạn: 27/08/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC TIÊU CẦN ĐẠT Kiến thức:

- Biết số kiểu liệu định sẵn: nguyên, thực, ký tự, logic, miền - Xác định kiểu cần khai báo liệu đơn giản

- Hiểu cách khai báo biến., khai báo đúng, nhận biết khai báo sai Kĩ năng:

- Biết lựa chọn kiểu liệu chuẩn kiểu số nguyên, số thực… - Biết cách khai báo biến

3 Tư tưởng:

Rèn luyện cho học sinh biết vận dụng kiểu liệu làm quen với liệu NNLT II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:

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

- Phương tiện: Máy chiếu, máy tính, phịng chiếu bảng Thời

gian

Hoạt động GV HS Nội dung

GV : Vấn đáp: Khi cần viết chương trình quản lý học sinh ta cần sử lý thông tin dạng ?

HS : Suy nghĩ, trả lời câu hỏi GV GV : Phân tích câu trả lời học sinh, đưa vài dạng thông tin sau :

- Họ tên học sinh thông tin dạng văn dạng ký tự

- Điểm học sinh thông tin số thực

- Số thứ tự học sinh số nguyên

- Một số thông tin khác lại cần biết chúng hay sai

GV : Thuyết trình đưa số bổ sung sau :

- Ngơn ngữ lập trình đưa số kiểu liệu chuẩn đơn

NNLT Pascal có số kiểu liệu chuẩn sau :

1 Kiểu số nguyên

Kiểu Số

Byte Miền giá trị

BYTE … 255

INTEGER -215 … 215 – 1

WORD … 216 – 1

LONGINT -231 … 231 – 1

2 Kiểu thực

(15)

giản, từ kiểu đơn giản ta xây dựng thành kiểu liệu phức tạp

- Kiểu liệu có miền giới hạn nó, máy tính khơng thể lưu trữ tất số trục số lưu trữ với độ xác cực cao

- Tùy thuộc vào ngơn ngữ lập trình mà tên kiểu liệu khác miền giá trị kiểu liệu khác - Với kiểu liệu người lập

trình cần ghi nhớ tên kiểu, miền giá trị số lượng ô nhớ để lưu giá trị thuộc kiểu

- Trong lập trình nói chung kiểu kí tự thường tập kí tự bảng mã kí tự, bảng mã hóa kí tự người ta quy định có kí tự khác kí tự có mã thập phân tương ứng Để lưu giá trị kí tự phải lưu mã thập phân tương ứng

GV : Đặt câu hỏi: Em biết bảng mã nào?

HS : HS đưa số bảng mã GV ý em NNLT Pascal sử dụng bảng mã ASCII cho kiểu kí tự

Kiểu logic kiểu thường có giá trị – sai Mỗi ngơn ngữ khác lại có cách mơ tả kiểu logic khác nhau, Pascal dùng True – False số ngôn ngữ khác lại mô tả – 1,… Có ngơn ngữ lại khơng có kiểu logic mà người lập trình phải tự tìm cách để thể hên giá trị dạng

GV: Cách khai báo biến Pascal vận dụng để khai báo biến cho toán cụ thể

Tên kiểu Miền giá trị Số Byte REAL nằm

trong (10-38  1038)

6

EXTENDED nằm (10-4932  104932)

10

3 Kiểu kí tự

- Tên kiểu: CHAR

- Miền giá trị: Là kí tự bảng mã ASCII gồm 256 ký tự - Mỗi ký tự có mã tương ứng từ

đến 255

- Các kí tự có quan hệ so sánh, việc so sánh dựa mã kí tự Ví dụ: Trong bảng mã ASCII, kí tự bảng chữ tiếng Anh xếp liên tiếp vối nhau, chữ số xếp liên tiếp, cụ thể: A mã 65; a mã 97, mã 48

4 Kiểu logic

- Tên kiểu : Boolean

- Miền giá trị : Chỉ có giá trị TRUE (Đúng) FALSE (Sai) - Một số ngơn ngữ có cách mơ tả

giá trị logic cách khác

(16)

HS: Nghe giảng ghi chép

GV: Khai báo biến chương trình báo cho máy biết phải dùng tên chương trình

HS : Lắng nghe ghi chép Ví dụ :

- Để giải phương trình bậc hai ax2 + bx + c =

cần khai báo biến sau: Var a, b, c, x1, x2, delta : real; - Để tính chu vi diện tích tam

giác cần khai báo biến sau: Var a, b, c, p, s, cv: Real; Trong :

a, b, c: dùng để lưu độ dài cạnh tam giác

p: nửa chu vi tam giác

cv, s: chu vi diện tích tam giác

GV : Đặt câu hỏi: Khi khai báo biến cần ý điều ?

HS : Suy nghĩ trả lời câu hỏi

GV : Phân tích câu trả lời học sinh

Trong ngôn ngữ Pascal, biến đơn khai báo sau :

Var <danh sách biến> : <kiểu số liệu> Trong đó:

+ Var : là từ khóa dùng để khai báo biến

+ Danh sách biến : tên biến cách dấu phẩy

+ Kiểu liệu : kiểu liệu ngơn ngữ Pascal

+ Sau Var khai báo nhiều danh sách biến có kiểu liệu khác

+ Cần đặt tên biến cho gợi nhớ đến ý nghĩa

+ Khơng nên đặt tên ngắn hay dài, dễ dẫn tới mắc lỗi hiểu nhầm

Khai báo biến cần quan tâm đến phạm vi giá trị

4 Củng cố:

- Qua em cần nắm kiểu liệu chuẩn pascal cách khai báo biến đơn có cú pháp tự lấy ví dụ

5 Dặn dị:

- Về nhà đọc lại nội dung hôm

- Làm tập 2.14 đến 2.16 (sách tập – 11) - Chuẩn bị 6: phép toán, biểu thức, câu lệnh gán VI TỰ RÚT KINH NHGIỆM SAU GIỜ GIẢNG:

(17)

Ngày soạn: 10/09/2010 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E I /

MỤC TIÊU CẦN ĐẠT

1 Kiến thức :

- Biết phép tốn thơng dụng NNLT - Biết cách diễn đạt biểu thức NNLT

- Biết chức lệnh gán cấu trúc

- Nắm vững số hàm chuẩn thông dụng NNLT Pascal

2 Kỹ năng:

- Nhận biết phép toán để xây dựng biểu thức cho hợp lý - Sử dụng số lệnh gán viết chương trình đơn giản

3 Tư thái độ :

- Phát triển tư lơgic, linh hoạt, có tính sáng tạo

- Biết thể tính cẩn thận xác tính tốn lập luận II/ PHƯƠNG PHÁP:

- Thuyết trình đàm thoại, giảng giải đặt vấn đề giải vấn đề III/ ĐỒ DÙNG HỌC TẬP:

* Giáo viên:

- SGK, tranh liên quan đến học - Máy vi tính máy chiếu Projector (nếu có) * Học sinh: - SGK

IV/TIẾN TRÌNH BÀI GIẢNG Ổn định lớp:

2 Kiểm tra cũ:

Câu 1: Hãy cho biết khác biến? Câu 2: Tại phải khai báo biến? Nêu cú pháp

Thời gian

Hoạt động GV HS Nội dung

Đặt vấn đề: Khi viết chương trình ta thường phải thực phép tốn, thực so sánh cách viết nào? có giống ngơn ngữ tự nhiên hay khơng tất ngơn ngữ có sử dụng chúng cách giống hay khơng?

Bài 6: PHÉP TỐN, BIỂU THỨC CÂU LỆNH GÁN

- NNLT sử dụng đến phép toán biểu thức câu lệnh gán

(18)

GV: Trong tốn học có phép toán nào?

HS: trả lời

GV: Vậy chúng có dùng NNLT hay khơng?

GV: Như qua bảng ta thấy số phép toán dùng, số phép toán phải xây dựng từ phép tốn khác

VD: luỹ thừa khơng phải ngôn ngữ viết

GV: ngơn ngữ khác lại có kí hiệu phép tốn khác

HS: Học sinh nghe giảng ghi chép GV: Trong tốn học biểu thức gì?

GV: Cách viết biểu thức lập trình có giống cách viết tốn học? HS: Đưa ý kiến

GV: Phân tích ý kiến học sinh -> Đưa cách viết biểu thức thứ tự thực phép tốn lập trình

GV: Cách viết biểu thức phụ thuộc vào loại NNLT

VD: xy/z ; Ax2+Bx+C HS: lên bảng lấy ví dụ

GV: Để viết x2 ta làm nào? HS: Trả lời

GV: Muốn tính x ; sinx ; cosx làm nào?

GV:Để tính giá trị cách đơn giản người ta xây dựng sẵn số đơn vị chương trình thư viện chương trình giúp người lập trình tính tốn nhanh giá trị thơng dụng

GV: Với hàm chuẩn cần quan tâm đến kiểu đối số kiểu giá trị trả

VD: Sin đo độ hay radian

pascal 1, Phép toán

- Đưa bảng phụ NNLT pascal sử dụng phép toán sau:

- Với số nguyên: +; -; * ; div; mod; - Với số thực: +; - ; *; /;

-Các phép toán quan hê: <; > ; ≤ ; ≥ ; =; <>; cho biết kết giá trị lơgíc (true) false

- Các phép tốn lơgíc: Not (phủ định); or (hoặc); and (và) thường dùng để kết hợp nhiều biểu thức

* Chú ý: Kết phép toán quan hệ trả giá trị lơgíc

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

- KN: Là dãy phép toán + - * / div mod từ biến kiểu số hàm - Dùng cặp () để quy định trình tự thực phép toán

- Thứ tự phép tốn ngoặc trước ngồi ngoặc sau, nhân chia trước cộng trừ sau phép toán ngang hàng thực từ trái sang phải Giá trị biểu thức có kiểu biến có miền giá trị lớn biểu thức

VD: 6a + 25 m -> 6*a + 25 * m

 /5 /( * ) xy x y z x y

z y x     

* Chú ý: (sgk -25)

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

- KN: Các NNLT thường cung cáp sẵn số hàm số học để tính số giá trị thông dụng

- Cách viết: tên hàm(đối số)

- kết hàm phụ thuộc vào kiểu đối số

(19)

GV: Nếu lập trình thường ta phải so sánh giá trị trước thực lệnh biểu thức quan hệ gọi biểu thức so sánh Biểu thức so sánh dùng để so sánh giá trị cho biết kết sai

VD: A<B; 2*A>=4+B;

GV: Muốn so sánh nhiều điều kiện đồng thời làm nào?

HS: Đưa ý kiến

GV: Đưa số ví dụ cách viết đùng NNLT pascal

VD1: Ba số dương a, b ,c độ dài ba cạnh tam giác biểu thức sau cho giá trị

((a+b)>c)and ((b+c)>a) and ((a+c)>b) VD2:

Biểu thức điều kiện ≤ x ≤ biểu thức biểu diễn pascal nào?

(x ≥ ) and (x ≤ 5)

GV: Mỗi NNLT khác có cách viết câu lệnh gán khác

GV: Cần ý điều viết câu lệnh gán?

HS: Đưa ý kiến

GV: Phân tích câu trả lời HS cần ý đến

kiểu biến kiểu biểu thức GV: Đưa số ví dụ minh hoạ

học đặt cặp () sau tên hàm

- Bản thân hàm coi biểu thức số học tham gia vào biểu thức tốn hạng

4 Biểu thức quan hệ: Cú pháp:

<Biểu thức 1> <phép toán quan hê> <Biểu thức 2>

Trong đó: Biểu thức 1; Biểu thức phải kiểu liệu

- Kết BTQH true false Biểu thức lơgíc:

- Biểu thức lơgíc đơn biến lơgíc

- Thường dùng để liên kết nhiều biểu thức quan hệ với phép toán quan hệ

6 Câu lệnh gán

- Câu lệnh gán cấu trúc NNLT thường dùng để gán giá trị cho biến

Cú pháp:

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

- Trong đó: Biểu thức phải phù hợp với tên biến; Biểu thức biến phải kiểu liệu; biến phải có kiểu bao hàm kiểu biểu thức

- Hoạt động câu lệnh gán: Tính giá trị biểu thức sau ghi giá trị vào tên biến

VD:

xi:=(-b – sqrt(b*b – 4*a*c ))/(2*a) i := i +1;

j := j -2;

(20)

- Qua học sinh nắm khái niệm phép toán, biểu thức, hàm số học chuẩn tin học, nắm cấu trúc cú pháp câu lệnh gán NNLT Pascal

Bài tập củng cố: 1, Hãy chuyển biểu thức số học sau sang Pascal

2

2

2 ,

1 sin ,

y x

e b

x a

x a a

y x

   

 

2, Hãy chuyển biểu thức pascal sang toán học: a sqrt(p*(p-A)*(p-B)*(p-C));

b ABS(x-y)/(x*x+sqr(y)+1); Dặn dò:

- Về nhà học trả lời câu hỏi sgk làm tập -> (sgk – 35 +36) - Chuẩn bị trước thủ tục vào đơn giản

V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG

TIẾT 7: THỦ TỤC CHUẨN VÀO/ RA ĐƠN GIẢN

(21)

Ngày soạn: 10/09/2010 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E I /

MỤC TIÊU CẦN ĐẠT

1 Kiến thức :

- Biết lệnh vào đơn giản để nhập liệu từ bàn phím đưa liệu hình

- Viết số lệnh vào/ đơn giản

- Biết bước: Soạn, dịch, thực hiệu chỉnhchương trình

2 Kỹ năng:

3 Tư thái độ :

Ham muốn tìm hiểu biên soạn thực chương trình II/ PHƯƠNG PHÁP:

- Thuyết trình đàm thoại, giảng giải đặt vấn đề giải vấn đề III/ ĐỒ DÙNG HỌC TẬP:

+ Giáo viên: một số ví dụ

+ Học sinh: Đọc trước SGK

IV/TIẾN TRÌNH BÀI GIẢNG Ổn định lớp:

2 Kiểm tra cũ: Nội dung mới: Thời

gian Hoạt động GV HS Nội dung

* Đặt vấn đề: Khi sử dụng thông tin ta thường phải nhập thơng tin vào máy tính cách để nhập liệu vào máy tính? Làm để nhập giá trị cho biến?

GV: Diễn giải hoạt động Read/ Readln nêu khác dùng read readln

HS: Nghe giảng ghi chép theo ý hiểu GV: Mỗi ngôn ngữ có cách nhập thơng tin khác

VD1: xét chương trình sau: Program VD;

Uses crt;

Var Tuoi : Byte; Begin

clrscr;

7: Các thủ tục chuẩn vào/ đơn giản

1 liệu vào từ bàn phím

- Trong pascal ta dùng thủ tục chuẩn sau:

Read(danh sách biến vào);hoặc

Readln(danh sách biến vào); - Ví dụ: Read(N); Readln(a,b,c);

- Chú ý:+ Khi nhập liệu từ bàn phím READ, READLN, có ý nghĩa nhau, thường hay dùng READLN

(22)

write (‘Moi ban cho biet tuoi cua ban:’); readln(tuoi);

writeln(‘Cam on tuoi cua ban la:’, tuoi, ‘tuoi’);

readln; end

GV: Chạy chương trình cho học sinh xem? Giải thích việc nhập giá trị cho nhiều biến Có thể thay đổi lệnh readln(a, b, c) VD2 read(a,b,c); giá trị a, b, c dính liền làm để người sử dụng phân biệt giá trị biến? Có cách để hiển thị mong muốn người lập trình ta tiếp câu lệnh write/writeln;

HS: Ghi chép

GV: Nêu ví dụ khác write writeln;

HS: Nghe giảng ghi chép

GV: Để người với máy hiểu nhập thơng tin giá trị từ bàn phím ta thường dùng

write(‘nhap gia tri cua M:’); {1} Read(M); {2}

Trong đó: {1} đưa thơng bào Nhập giá trị M;

{2} Dùng để đọc giá trị từ bàn phím gán cho biến M;

GV: Vậy cách viết chương trình để chạy chương trình giao tiếp với chương trình dịch nào?

một dấu cách phím Enter

2 Đưa liệu hình

Trong pascal cung cấp thủ tục chuẩn:

write(<Danh sách kết ra>);

writeln(<Danh sách kết ra>);

trong <Danh sách kết ra>có thể tên biến đơn, biểu thức, hằng. Ví dụ: write(‘Nap so N:’); Readln(N);

Chú ý:

- writeln sau đưa kết trỏ xuống dòng

- Ngồi TPcó quy cách đưa thơng tin nàm hình sau:

+ Kết thực:

:<Độ rộng>:<số chữ số thập phân> + Kết khác:

:<Độ rộng>

dụ: Write(N:3);

Writeln(‘X=’,x:8:2);

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

Một số tao tác thường dùng

(23)

GV: Cũng giống word, pascal phần mềm word có doc NNLT pascal chạy số tệp tin có đi:

turbo.exe (file chạy) turbo.tpl (file thư viên) turbo.tph (file hướng dẫn)

GV: Hướng dẫn số thao tác thường dùng chạy chương trình pascal

- Khi soạn thảo muốn xuống dòng

nhấn Enter.

- Ghi file vào đĩa: F2 - Mở file có: F3

- Biêng dịch chương trình: Alt +F9 - Chạy chương trình: Ctrl + F9 - Sốt lỗi chương trình: F9

- Chuyển qua lại cửa sổ:F6 - Xem lại hình kết quả:Alt

+F5

- Đóng cửa sổ chương trình: Alt + F3

Thốt khỏi phần mền: Alt + X

4.củng cố dặn dò:

- Nhắt lại hoạt động Write/Writeln, read/Readln

- Cách soạn thảo,chạy chương trình, ghi vào đĩa, thoát khỏi TP

- Về nhà làm tập sách trang 35,36. V/ TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

Tiết thứ: 8…. BÀI THỰC HÀNH SỐ

(24)

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I/ Mục tiêu:

1 Về kiến thức:

- Biết chương trình Pascal hồn chỉnh

- Biết sử dụng số dịch vụ chủ yếu Pascal soạn thảo, lưu, dịch thực chương trình

2 Về kỹ năng:

- Viết chương trình đơn giản, lưu chương trình đĩa, dịch lỗi cú pháp, thực tìm lỗi thuật tốn, hiệu chỉnh

- Bước đầu biết phân tích hồn thành chương trình đơn giản Pascal Free Pascal

3 Về tư thái độ:

- Hình thành cho học sinh bước đầu tư lập trình có cấu trúc - Tự giác, tích cực chủ động hồn thành,

II/ Chuẩn bị giáo viên học sinh:

+ Giáo viên: Phịng máy tính cài sẵn chương trình Turbo Pascal Free Pascal, chương trình làm ví dụ

+ Học sinh:

- Sách giáo khoa, sách tập viết sẵn nhà

- Đọc trước phần phụ lục B1 trang 122 - Môi trường Turbo Pascal - Xem trước nội dung thực hành số

III/ Phương pháp: Gởi mở thơng qua hoạt động tư IV/ Tiến trình dạy:

Hoạt động 1: Kiểm tra nội dung thực hành khởi động máy.

TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng

10’ - HS để nội dung thực hành trước mặt

- Chý ý hướng dẫn GV để khởi động máy chương trình Turbo Pascal Free Pascal

- GV kiểm tra chuẩn bị nội dung thực hành học sinh - GV hướng dẫn học sinh khởi động máy, khởi động chương trình Turbo Pascal Free Pascal

Hoạt động 2: Tìm hiểu chương trình Pascal hồn chỉnh.

TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng

35’ - Học sinh quan sát bảng độc lập gõ chương trình vào máy

- GV ghi chương trình Giai_PTB2 lên bảng

- GV yêu cầu học sinh đọc gõ chương trình Giai_PTB2 bảng

Chương trình giải phương trình bậc hai: program Giai_PTB2; uses crt;

var a, b , c, D: real; x1, x2: real; begin

(25)

- Nhấn phím F2 gõ PTB2.PAS

- Nhấn phím Alt+F9 - Nhấn phím Ctrl+F9 - x1 = 1.00 x2 = 2.00

- Nhấn phím Enter - Nhấn phím Ctrl+F9

- Thơng báo lỗi cho biết sao: Do bậc hai số âm

- Sửa lại:

- Tiếp tục sửa lại:

- x1 = 2.00 x2 = 3.00

- Thông báo lỗi với lý delta pt số âm

- GV yêu cầu học sinh thực nhiệm vụ sau:

+ Lưu chương trình cách nhấn phím F2 với tên PTB2.PAS

+ Dịch sửa lỗi cú pháp với tổ hợp phím Alt+F9

+ Thực chương trình với tổ hợp phím Ctrl+F9

+ Nhập giá trị 1; -3; Thông báo kết máy đưa

+ Trở hình soạn thảo phím Enter

+ Tiếp tục thực chương trình + Nhập giá trị ; ; -2 Thông báo kết máy đưa

HỎI: Vì lại có lỗi xuất hiện? + Sửa lại chương trình khơng dùng đến biến D thực chương trình sửa

+ Sửa lại chương trình cách thay đổi cơng thức tính x2

+ Thực chương trình sửa với liệu ; - ; Thông báo kết

write(‘ a, b, c: ‘); readln(a, b, c); D:=b*b - 4a*b*c; x1:= (b -sqrt(D))/(2*a);

x2:= -b/a - x1; write(‘x1 = ‘, x1 : : 2, ’x2: = ‘, x2 : : 2);

readln end

readln(a, b, c); x1:= (b -sqrt(b*b - 4a*b*c))/ (2*a);

x2:= -b - x1; write(‘x1 = ‘, x1 : : 2, ’x2: = ‘, x2 : : 2);

readln(a, b, c); x1:= (b -sqrt(b*b - 4a*b*c))/ (2*a);

(26)

+ Thực chương trình với liệu ; ; Thông báo kết

(2*a);

write(‘x1 = ‘, x1 : : 2, ’x2: = ‘, x2 : : 2);

- x1 = 2.00 x2 = 3.00 Hoạt động 3: Rèn luyện thêm kỹ lập trình cho học sinh

TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng

35’ - Nghe nhận nhiệm vụ

- Phân tích theo yêu cầu giáo viên:

+ Dữ liệu vào ba cạnh a; ; b ; c

+ Dữ liệu S: + p:= (a+b+c)/2

S: = sqrt(sqr(p-a)*sqr(p-b)*sqr(p-c))

- Thực theo yêu cầu giáo viên:

+ Soạn chương trình

+ Bấm phím F2 để lưu chương trình

+Bấm Alt+F9 để dịch lỗi cú pháp

+ Bấm Ctrl+F9 để chạy chương trình

+ Thông báo kết cho giáo viên

- Học sinh thông báo kết

- GV yêu cầu học sinh viết chương trình tính diện tích tam giác biết độ dài ba cạnh

- GV định hướng để học sinh phân tich toán

+ Dữ liệu vào (Input) +Diệu liệu (Output) + Cách tính:

- GV yêu cầu học sinh soạn chạy chương trình lên đĩa

- GV yêu cầu học sinh nhập liệu thông báo kết ; a = 3; b = 6; c =

a = 2; b = 5; c = 10; 4.Củng cố buổi thực hành tập nhà.

Gv nhắc lại bước hồn thành chương trình + Phân tích tốn để xác định liệu vào/

+ Xác định thuật toán + Soạn chương trình + Lưu chương trình + Biên dịch chương trình

+ Thực hiệu chỉnh chương trình - Làm tập trang 35 36

(27)

Tiết BÀI TẬP Ngày soạn: 20/09/2010

(28)

Lớp Ngày giảng Học sinh vắng mặt Ghi 11A

11E

/ Mục tiêu:

1 Về kiến thức:

- Biết chương trình Pascal hoàn chỉnh

- Biết sử dụng số dịch vụ chủ yếu Pascal soạn thảo, lưu, dịch thực chương trình

2 Về kỹ năng:

- Viết chương trình đơn giản, lưu chương trình đĩa, dịch lỗi cú pháp, thực tìm lỗi thuật tốn, hiệu chỉnh

- Bước đầu biết phân tích hồn thành chương trình đơn giản Pascal Free Pascal

3 Về tư thái độ:

- Hình thành cho học sinh bước đầu tư lập trình có cấu trúc - Tự giác, tích cực chủ động hoàn thành,

II/ Chuẩn bị giáo viên học sinh:

+ Giáo viên: Phòng máy tính cài sẵn chương trình Turbo Pascal Free Pascal, chương trình làm ví dụ

+ Học sinh:

- Sách giáo khoa, sách tập viết sẵn nhà

- Đọc trước phần phụ lục B1 trang 122 - Môi trường Turbo Pascal - Xem trước nội dung thực hành số

III/ Phương pháp: Gởi mở thông qua hoạt động tư IV/ Tiến trình dạy:

1 Ổn định lớp: Kiểm tra cũ: Luyện tập

(tg) Hoạt động GV HS Nội dung

GV: Em nhắc lại kiểu liệu chuẩn học?

HS: Trả lời

GV: Áp dụng làm tập (sgk - 35)

HS: Đọc trả lời

GV: hướng dẫn học sinh làm tập HS: Lần lượt trả lời tập đến 10

Bài 3(sgk -35)

Biến nhận giá trị nguyên phạm vi từ 10 đến 25532 biến khai báo kiểu liệu nào?

Đáp án: Kiểu word integer Bài (sgk - 35)

Biến P nhận giá trị 5; 10; 15;20; 30; 60; 90 biến X nhận giá trị 0,1; 0,2; 0,3; 0,4; 0,5 khai báo khai báo sau

(29)

GV: Em nhắc lại phép toán pascal, biểu thức số học pascal HS: trả lời

GV: Hướng dẫn làm tập (sgk – 35 +36)

HS: lên bảng

GV: Hướng dẫn làm tập 10 (sgk -36)

HS: Nghe giảng làm tập

Bài 5: (sgk - 35) Đáp án:

- Vì cạnh A nhận giá trị nguyên phạm vi từ 100 đến 200 nên khai báo b, c, d

- Cách khai báo c tốt tiết kiệm nhớ cần lưu trữ

Bài (sgk - 35) Hãy viết biểu thức toán học Pascal

3 1 ) ( x a z y x z     Giải: (1+z)*(x+y/z)/(a-1/(1+x*x*x))) Bài 7(sgk-36)

Hãy chuyển biểu thức pascal sang biểu thức toán học tương ứng: a, a/b*2 ; b, a*b*c/2;

c, 1/a*b/c; d, b/sqrt(a*a+b); Giải: ; , ; , ; , ; , b a b d abc b ac b c b a a  Bài 10: uses crt; const g = 9.8; var v, h: real; begin

clrscr;

write(‘nhap cao vật h =’); readln(h); v:= sqrt(2*g*h);

writeln(‘vận tốc chạm đất v=’, v:10:2, ‘m/s’);

readln end Củng cố dặn dò

- Các em luyện tập thêm biểu diễn biểu thức số học pascal biết lập trình số tốn đơn giản

- Về nhà em làm thêm tập sách tập V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

(30)

Tiết 11 9 CẤU TRÚC RẼ NHÁNH Ngày soạn: 25/09/2010

Giảng lớp:

(31)

11A 11E

I MỤC TIÊU CẦN ĐẠT Kiến thức:

- Học sinh nắm khái niệm rẽ nhánh, hiểu cú pháp câu lệnh If – Then, hiểu câu lệnh ghép cách viết câu lệnh ghép

2 Kỹ năng:

- Áp dụng cấu trúc rẽ nhánh để giải số toán đơn giản Tư tưởng:

- Rèn luyện cho học sinh hiểu làm tốn hiệu hứng thú với mơn học tin học II PHƯƠNG PHÁP

- Thuyết trình giảng giải, đặt vấn đề giải vấn đề III PHƯƠNG TIỆN DẠY HỌC:

- Giáo án, sgk, phấn, bảng IV NỘI DUNG BÀI MỚI: Ổn định lớp:

2 Kiểm tra cũ:

1, Em nêu phép toán Pascal?

2, Em nêuu biểu thức lơgíc, quan hệ gì? Cú pháp? ví dụ? Bài mới:

(t) Hoạt động giáo viên học sinh Nội dung GV: Đặt vấn đề: Ở chương trước

chúng ta tìm hiểu cấu trúc chương trình pascal, nắm thành phần khai báo, phần phần thân phần thân có dãy câu lệnh để bổ sung vào phần thân dãy câu lệnh hôm sang chương cú pháp câu lệnh pascal

GV: Đầu tiên tìm hiểu khái niệm rẽ nhánh

GV: Thường ngày thấy có việc thực với điều kiện ví dụ có bạn Ngọc Châu hẹn đến nhà Ngọc học

- Châu hẹn Ngọc chiều mai khơng mưa Châu đến nhà Ngọc học

- Một lần khác Châu hẹn Ngọc mai trời khơng mưa Châu đến nhà

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

(32)

Ngọc học cịn trời mưa Châu nhà

HS: Nghe giảng

GV: Trong giải tốn phương trình bậc 2: ax2+bx+c xảy bao nhiêu trường hợp

HS: trả lời

GV: Vậy qua ví dụ ta thấy mệnh đề có dạng ngược lại ta gọi rẽ nhánh

GV: để diễn tả toán pt bậc ax2+bx+c ta có sơ đồ sau:

(sgk - 39)

Vậy câu lệnh nhập a, b, c pascal ta dùng câu lệnh readln(a,b,c) p b2+4ac ta dùng câu lệnh gán p:= b*b-4*a*c để kiểm tra điều kiện rẽ nhánh pascal cung cấp câu lệnh câu lệnh rẽ nhánh if – then

GV: Câu lệnh if – then có câu lệnh rẽ nhánh dạng thiếu có nghĩa với điều kiện kết tương ứng cịn dạng đủ ĐK có kết tương ứng ngược lại với đk kết lại khác, cú pháp sau:

HS: Nghe giảng ghi chép

GV: Tương ứng với cú pháp dạng ta có sơ đồ cấu trúc tương ứng sau:

GV: Qua sơ đồ nói ý nghĩa cấu trúc sau HS: Nghe giảng ghi chép

Ví dụ:

+ If D<0 then write(‘PTVN’);

+ If (n mod = 0) then write(‘nlà chẵn’) else write(n lẻ);

GV: Ngồi cịn có VD2; VD3; (sgk -40)

HS: Nghe giảng ghi chép

GV: Nếu câu lệnh if – then

VD: Giải pt bậc ax2+bx+c = trước hết tính:

 = b2 – 4ac

sau tuỳ thuộc vào  ta có kết luận sau: + Nếu  = PT có nghiệm kép + Nếu  < PTVN

+ Nếu  > PT có nghiệm

* Khái niệm rẽ nhánh: Các mệnh đề có dạng Nếu

Nếu ngược lại

2 Câu lệnh rẽ nhánh a Dạng thiếu:

Cú pháp: If<ĐK> then <câu lệnh>; b Dạng đầy đủ:

Cú pháp: If<ĐK> then <câu lệnh 1> else <câu lệnh 2>;

Trong đó:

- Điều kiện biểu thức lơgíc

- Câu lệnh 1, câu lệnh câu lệnh pascal;

c Sơ đồ khối: + Dạng thiếu

(33)

sau then với đk ta muốn thực nhiều câu lệnh làm

GV: Theo cú pháp sau từ khoá then (else) thực câu lệnh muốn thực nhiều câu lệnh ta phải gộp câu lệnh thành câu lệnh gộp câu lệnh cách đặt cặp từ khoá Begin – end;

VD: If D<0 then write(‘PTVN’) else

begin

x1:= (-b-sqrt())/(2a); x2:= (-b+sqrt())/(2a); end;

GV: Để hiểu cấu trúc rẽ nhánh ta tìm hiểu vd;

GV: Gọi học sinh lên bảng viết phần khai báo chương trình

HS: lên bảng

GV: Nhận xét, viết giải thích phần thân chương trình

+ Dạng đầy đủ:

* Ý nghĩa:

- Ở dạng thiếu: ĐK tính, kiểm tra đk thực câu lệnh cịn sai thoát khỏi câu lệnh rẽ nhánh

- Dạng đầy đủ: ĐK tính kiểm tra thực câu lệnh sai thực câu lệnh

3 Câu lệnh ghép

- Để gộp câu lệnh thành câu lệnh ta đặt câu lệnh cặp từ khố

begin – end; Cú pháp: Begin

<Dãy câu lệnh>; end

4 Ví dụ:

VD1: Tìm nghiệm thực pt bậc 2: ax2+bx+c = ; với a  0

Input: nhập a, b, c;

Output: Đưa nghiệm thực thông báo ptvn

Giải:

program vd; uses crt; var a,b,c:real;

(34)

D,x1,x2:real; begin

clrscr;

write(‘nhap a,b,c:’); read(a,b,c); D:= b*b-4*a*c;

if (D<0) then write(‘PTVN’); else

begin

x1:= (-b – sqrt(D))/(2*a); x2:= (-b +sqrt(D))/(2*a); write(‘x1=’,x1, ‘x2=’, x2); end;

readln end Củng cố:

- Qua HS nắm cấu trúc rẽ nhánh, áp dụng để làm số tập Bài tập củng cố: em lập trình kiểm tra tính chẵn lẻ n

5 Dặn dị hướng dẫn học sinh học làm tập:

- Về nhà em học lại cấu trúc rẽ nhánh

- Trả lời câu hỏi 1, làm tập (sgk – 51)

- Chuẩn bị 10 cấu trúc lặp

V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

Tiết 12, 13 10 CẤU TRÚC LẶP Ngày soạn: 29/09/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

(35)

11E

I.MỤC TIÊU CẦN ĐẠT: Kiến thức:

- Hiểu nhu cầu cấu trúc lặp biểu diễn thuật toán, khái niệm lặp - Hiểu cấu trúc lặp kiểm tra điều kiện trước, lặp với số lần biết trước - Biết vận dụng đắn cấu trúc lặp vào tình cụ thể

2 Kỹ năng:

- Mô tả thuật toán số toán đơn giản có sử dụng lệnh lặp - Viết lệnh lặp kiểm tra đk trước, lệnh lặp với số lần biết trước - Viết thuật toán số thuật toán đơn giản

3 Tư tưởng:

II PHƯƠNG PHÁP:

- Thuyết trình, đàm thoại, giảng giải, đặt vấn đề giải vấn đề III ĐỒ DÙNG DẠY HỌC:

- Giáo án, sgk, phấn bảng IV.NỘI DUNG BÀI MỚI: Ổn định lớp:

2 Kiểm tra cũ:

1, Nêu cú pháp câu lệnh rẽ nhánh (2 dạng)? Hãy cho biết giống khác dạng câu lệnh if – then?

2, Câu lệnh ghép gì? Tại phải có câu lệnh ghép ? Làm tập sau        1 Neu x  x Neu x x z ;          4 x neu x x neu x Y

3 Nội dung mới:

(tg) Hoạt động giáo viên học sinh Nội dung * Đặt vấn đềa: Em cho biết kết

của chương trình sau: Program VD; Uses crt; Begin writeln(‘xin chào’); writeln(‘xin chào’); writeln(‘xin chào’); writeln(‘xin chào’); writeln(‘xin chào’); end

HS: Trả lời:

GV: Nhận xét kết toán in dòng chữ ‘xin chào’ em thấy dòng lệnh lặp lại lần, tốn đưa in 100 dịng xin chào câu lệnh writeln(‘xin chào’); viết lại 100 lần câu

(36)

kềnh có câu lệnh thay cho việc lặp lặp lại thao tác khơng vài hôm GV: trước tiên để biết cấu trúc lặp tìm hiểu lặp gì? HS: Ghi chép

GV: Đưa tốn, u cầu học sinh tìm cách lập trình giải tốn HS: Đưa cách

GV: Nhận xét đưa cách giải toán trên, dựa vào câu lệnh IF học giải theo lệnh

s2 := 0;

If (1a 0.0001) then s2= s2+1/a; If ( 0.0001

1

 

a ) then s2=s2+( 1) 

a ;

If ( 0.0001

1  

a ) then s2=s2+( 2) 

a

* Giải toán 1: S1:= 1/a;

if(N=1) then S1:= S1+1/(a+1) if(N=2) then S1:= S1+1/(a+2) if(N=3) then S1:= S1+1/(a+3)

HS: Nhận xét với việc giải toán theo cách

Với N= 100 lặp lại thao tác 100 lần câu lệnh dài dòng theo hai trường hợp dài

GV: Ngồi sống cịn nhiều ví dụ khác như:

VD1: Bài tốn gửi tiền vào ngân hàng hàng tháng phải tính lãi cộng thêm tiền gốc gửi hay nói cách khác gốc tháng sau = gốc + lãi tháng trước

VD2: Tính tổng đoạn số nguyên mà không dùng công thức

VD3: Nhập điểm, họ tên, NTNS học sinh lớp

- Xét toán sau với a>2 số nguyên dương cho trước

bài tốn 1: Tính tổng S1 =

100 1 1        a a a a

S2 =

1 1       N a a a

Với điều kiện: 0.0001 N

a

Cách giải:

Băt đầu s gán với giá trị 1/a

- lần cộng thêm vào S 1/(a+N) với N = 1, 2,

- Với toán việc cộng thêm dừng N = 100 số lần lặp biết trước

- Với toán việc cộng thêm dừng điều kiện 1/(a+N)<0.0001 số lần lặp chưa biết trước số lần lặp

* Lặp: NNLT có thao tác lặp lặp lại nhiều lần ta gọi cấu trúc lặp

Lặp thường có loại: + Lặp biết trước số lần lặp + Lặp chưa biết số lần lặp

(37)

GV: Đưa VD

So sánh thuật toán sau: Thuật toán tổng 1a B1: S:= 1/a; N<- 0; B2: N:= N+1;

B3: Nếu N>100 chuyển sang bước B4: SS+1/(a+N) sang bước 2; B5: Đưa S kết thúc

Thuật tốn tính tổng1 b: B1: S:= 1/a; N=101; B2: N:= N-1;

B3: Nếu N<1 chuyển sang bước B4: SS+1/(a+N) sang bước 2; B5: Đưa S kết thúc

GV: Gọi số học sinh nhận xét hai thuật toán số vấn đề sau: + Thuật tốn có lặp khơng/

+ Hai thuật tốn có giống khác nhau?

+ lặp lại lần

+ Có thay đổi hai thuật toán

HS: Trả lời

GV: Nhận xét đưa kết luận pascal có loại câu lệnh lặp có số lần biết trước lặp chưa biết trước số lần lặp

pascal

2, Lặp với số lần biết trước câu lệnh for – do:

* Để mô tả cấu trúc lặp với số lần biết trước pascal dùng câu lệnh for – với dạng, dạng tiến dạng lùi

+) Dạng lặp tiến:

For <biến đếm>:= <GT đầu> to <GT cuối> <câu lệnh>;

+) Dạng lặp lùi:

For <biến đếm>:= <GT cuối> downto <GT đầu> <câu lệnh>;

Trong đó:

+ Biến đếm thường biến đơn, kiểu số nguyên

+ GT đầu, cuối biểu thức kiểu với biến đếm, GT đầu phải nhỏ GT cuối

* Hoạt động câu lệnh For –

(38)

GV: Vậy ý nghĩa cấu trúc câu lệnh lặp dựa vào hai thuật tốn ta viết chương trình nn pascal sau:

GV: Đưa thuật tốn u cầu học sinh tự xây dựng thuật toán giải toán

HS: Xây dựng

GV: Qua thuật toán em thấy tính

trị cuối

- Dạng lùi: câu lệnh sau từ khoá Do thực với biến đếm tự giảm dần từ giá trị cuối giá trị đầu

- Tương ứng giá trị biến đếm câu lệnh thực lần

* Chú ý: Giá trị biến đếm chỉnh tự động câu lệnh viết sau không thay đổi giá trị biến đếm

VD1: Chương trình cài đặt thuật tốn tổng 1a tính tổng 1b

Đưa bảng phụ: Tổng 1-a tổng –b: Program tong1_a; Uses crt;

Var S:real; a,N:Integer; Begin

clrscr;

write(‘nhapa=’); readln(a); S:= 1/a;

for i:= 1to 100 S:= 1+ 1.0/(a+N);

writeln(‘Tong S là:’, S:8:3); readln

end

Program tong1_b; Uses crt;

Var S:real; a,N:Integer; Begin

clrscr;

write(‘nhapa=’); readln(a); S:= 1/a;

for i:= 100 downto S:= 1+ 1.0/(a+N);

writeln(‘Tong S là:’, S:8:3); readln

end

(39)

lặp thể bước nào? HS: trả lời

GV: Vậy từ bước đến bước lặp lặp lại nhiều lần với đk 1/ (a+N)<0.0001 chưa thoả mãn Vậy để lặp lại nhiều lần mà chưa biết số lần lặp pascal có cung cấp cho câu lệnh lặp while – để tổ chức lặp chưa biết số lần lặp

GV: Chạy thử chương trình tổng toán

GV~xq: Để dễ hiểu tìm AZhiểu VD2(sgk - 47)

Nêu thuật tốn tìm ƯCLN số ngun dương M, N

+ Từ thuật tốn em viết chương trình tốn này?

HS: lên bảng

GV: Nhận xét chạy thử

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

Để giải toán ta dùng thuật toán sau:

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

B2: Nếu 1/(a+n)<0.0001 chuyển sang bước 5;

B3: NN+1;

B4: SS+1/(a+n) quay lại B2; B5: Đưa S hình kết thúc; * Cú pháp:

While <ĐK> Do <câulệnh>; Trong đó:

+ ĐK biểu thức quan hệ hay lơgíc + Câu lệnh câu lệnh pascal Ý nghĩa: Khi ĐK cịn thực câu lệnh sau sau quay lại kiểm tra đk

* Sơ đồ quan hệ:

4 Ví dụ:

VD1: (sgk - 47)

VD2: (sgk – 47) 4.Củng cố:

- Qua em nắm khái niệm lặp số toán phổ biến

- Biết sử dụng câu lệnh lặp For – do; while – trường hợp Dặn dò hướng dẫn học sinh học làm tập:

- Về nhà em học lại kiến thức hôm nay, trả lời làm tập câu câu 5, 6, (sgk - 51)

- Đọc trước tập thực hành

ĐK

(40)

V.TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

Tiết 14, 15 BÀI TẬP VÀ THỰC HÀNH Ngày soạn: 2/10/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

(41)

I.MỤC TIÊU CẦN ĐẠT: Kiến thức:

- Xây dựng chương trình có cấu trúc rẽ nhánh

- Làm quen với cơng cụ hiệu chỉnh chương trình Kỹ năng:

- Rèn luyện kĩ thực hành, hiểu rõ cấu trúc rẽ nhánh chạy số chương trình tốn đơn giản

3 Tư tưởng:

Rèn luyện cho học sinh thái độ ý thức giải tốn máy tính II PHƯƠNG PHÁP:

- Thuyết trình, đàm thoại, giảng giải III ĐỒ DÙNG DẠY HỌC:

- Phòng máy, máy chiếu, sgk, sbt IV NỘI DUNG BÀI MỚI:

1 Ổn định lớp học: Kiểm tra cũ:

Câu hỏi: Nêu cú pháp dạng câu lệnh for – do? dùng câu lệnh while – để thay cho câu lệnh for – khơng? Nếu thực điều với chương trình tính tổng 1-a?

3 Nội dung mới:

(tg) Hoạt động giáo viên học sinh Nội dung mới *GV: củng cố lý thuyết, em nêu cú

pháp, hoạt động câu lệnh lặp for – do?

HS: Trả lời GV: Nhắc lại

GV: Nêu cú pháp hoạt động câu lệnh while – do?

GV: Trong thực hành hôm để hiểu rõ hơn, vận dụng câu lệnh lặp for – vào tập sau: toán số pitago đọc toán (sgk - 49)

HS: Đọc

GV: Qua toán em hiểu số pitago số nguyên a,b,c?

HS: Trả lời

GV: Nhận xét, qua em xác định Input Output toán? HS: Trả lời

GV: Vậy em hiểu số pitago?

+ Câu lệnh for – Cú pháp:

Dạng lặp tiến:

For <biến đếm>:= <GT đầu> to <GT cuối> <câu lệnh>;

+) Dạng lặp lùi:

For <biến đếm>:= <GT cuối> downto <GT đầu> <câu lệnh>;

* Cú pháp câu lệnh while – do: While <ĐK> Do <câulệnh>;

1 Nội dung toán Bộ số Pi – ta – go (sgk - 49)

- Input: Nhập số nguyên a, b, c

- Output: Kiểm tra số a, b, c có phải số pi – ta – go không?

(42)

Nêu ý tưởng toán

GV: Em lên khai báo tốn này?

HS: Lên bảng

GV: Phân tích thuật toán máy chiếu? HS: Quan sát gõ chương trình vào máy GV: Sau gõ chương trình xong em thực yêu cầu toán a, b, (sgk -50)

a2 = b2 + c2 b2 = a2 + c2 c2 = b2 + a2 a, Chương trình: Program Pi_ta_go; Uses crt;

Var a,b,c:Integer; a2,b2,c2:longint; begin

write(‘nhap a, b, c:’); readln(a,b,c); a2:= a*a; b2:= b*b; c2:= c*c; if (a2=b2+c2) or (b2=a2+c2) or

(c2=a2+b2) then write (‘ba số a,b,c bội số pitago’);

else

write(‘ba số vừa nhập không BS pitago);

end

b, Lưu chương trình với tên pitago.pas c, Nhập giá trị a=3; b=4; c=5;

d, Mở vào bảng phụ debug để xem lại kết a2; b2; c2;

4 Củng cố:

- Qua thực hành em hiểu ứng dụng câu lệnh rẽ nhánh - Thực hành thành thạo với thao tác hiệu chỉnh chương trình Dặn dò hướng dẫn học sinh học làm tập:

- Về nhà em tự rút ý nghĩa câu lệnh rẽ nhánh thực hành - Làm tập 4,5,6 (sgk - 51) để sau làm tập chương

- Học lại nắm câu lệnh rẽ nhánh if – then ; for – ; while – do; V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

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

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

(43)

I MỤC TIÊU CẦN ĐẠT 1- Kiến thức:

 Củng cố cho học sinh kiến thức cấu trúc rẽ nhánh cấu trúc lặp 2- Kỹ năng:

 Rèn luyện kỹ vận dụng linh hoạt việc lựa chọn cấu trúc rẽ nhánh cấu trúc lặp để giải toán đặt

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 giải tập

 Rèn luyện tư khoa học, tư logic II.PHƯƠNG PHÁP:

- Thuyết tình giảng giải, đặt vấn đề giải vấn đề III ĐỒ DÙNG DẠY HỌC:

GV: - Soạn giáo án

HS: - Học cũ chuẩn bị tập V TIẾN TRÌNH BÀI GIẢNG:

1 Ổn định lớp: Kiểm tra cũ: Luyện tập:

(tg) Hoạt động giáo viên học sinh Nội dung luyện tập GV: Em trình bày cấu trúc câu lệnh

rẽ nhánh cấu trúc lặp? HS: Trả lời

GV: Nhận xét đánh giá

GV: Chúng ta sử dụng câu lệnh rẽ nhánh để làm tập

- Sử dụng câu lệnh rẽ nhánh if gồm nhánh?

- Hàm lấy giá trị tuyệt đối biểu thức hay biến?

HS: Lên bảng

GV: Đặt câu hỏi ý a câu lệnh if gồm nhánh?

HS: trả lời

GV: Nhận xét hoàn chỉnh GV: Mời HS lên bảng làm ý b, HS: Lên bảng

GV: Nhận xét hoàn chỉnh

-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 While

While <điều kiện> Do <lệnh>; Bài (sgk - 51)

a)                 x y va y x neu x y va y x neu y x y x eu n y x z , 1 2 2 2 2 Giải

If (sqrt(x) + sqrt(y)) <=1 then z:= sqrt(x) + sqrt(y)

Else

If y>=x then z:= x+y Else z:= 0.5; b)

Giải

(44)

GV: Em đọc ý a? lên bảng khai triển biểu thức 

 

50

1

n n

n

y dạng tường

minh? HS: trả lời

GV: Nhìn vào cơng thức khai triển em cho biết n lấy giá trị từ đoạn nào? HS: trả lời

GV: Em đưa phương pháp tính Y

HS: trả lời

GV: Sử dụng cấu trúc điều khiển lặp phù hợp với toán này?

HS: Lên bảng

GV: Gọi số em nhận xét hoàn chỉnh toán

z:=abs(x) +abs(y) Else z:= x+y;

Bài tập 5(sgk - 51) Lập trình tính:

a) 

 

50

1

n n

n y

Dạng triển khai tường minh: 51

50 3 2

    

Y

Giải lập trình: Program tinhy; uses crt;

var n:byte; y:real; begin clrscr; y:=0;

for n:=1 to 50 y:=y+n/(n+1); writeln(y:14:6); readln

end

b)e(n)111

Tiết 17 KIỂM TRA TIẾT Ngày soạn: 19/10/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

(45)

 Củng cố cho học sinh kiến thức học chương I chương II Kỹ :

 Rèn luyện kỹ vận dụng linh hoạt việc lựa chọn cấu trúc rẽ nhánh cấu trúc lặp để giải toán đặt

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 giải tập

 Rèn luyện tư khoa học, tư logic II ĐỀ KIỂM TRA

Tiết 18 Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC  11 KIỂU MẢNG

Ngày soạn: 22/10/2010 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

(46)

I MỤC TIÊU CẦN ĐẠT 1 Kiến thức

Biết kiểu liệu kiểu mảng chiều Biết loại biến có số;

Biết cấu trúc tạo mảng chiều, cách khai báo biến kiểu mảng chiều 2 Kĩ năng

Biết thành phần khai báo kiểu mảng chiều;

Biết định danh phần tử kiểu mảng chiều xuất chương trình;

Biết cách khai báo mảng đơn giản với số miền kiểu nguyên; Biết cách tham chiếu đến phần tử mảng chiều

Tư Thái độ: Tự giác, tích cực, chủ động sáng tạo tìm kiếm tri thức II PHƯƠNG PHÁP:

- Thuyết trình, đàm thoại, giảng giải, đặt vấn đề giải vấn đề III ĐỒ DÙNG DẠY HỌC

1 Giáo viên: giáo án, sgk, sơ đồ cấu trúc mảng chiều 2 Học sinh: sgk

IV HOẠT ĐỘNG DẠY HỌC

1) Ổn định tổ chức: Kiểm tra sĩ số lớp.(1’) 2) Kiểm tra cũ:

3) Bai mới:

(tg) Hoạt động GV HS Nội dung

15’ GV: 1.Nêu tốn mở đầu Y/cầu hs đọc, tìm hiểu chtrình giải tốn Và trả lời câu hỏi sau:

- Các biến: t1, …,t7 thể giá trị nào? Kiểu biến nào?

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

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

TL: dem: để đếm số ngày tron tuần có nđộ lớn nđộ trung bình

TL: - Để kiểm tra ngày, nđộ ngày lớn nđộ trung bình

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

TL: Bản chất thuật tốn khơng có gì thay đổi việc viết chương trình gặp khó khăn cần dùng nhiều biến đoạn câu lệnh tính tốn khá dài.

3 Để khắc phục hạn chế người ta thường ghép chung biến thành

1.Kiếu mảng chiều * K/n mảng chiều

(47)

20’

dãy đặt cho chung tên đánh cho phần tử số

4.Em hiểu mãng chiều?

TL: Mảng chiều dãy hữu hạn phận tử kiểu liệu

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

HS: Trả lời: + Kiểu p/tử + Cách đánh số p/tử GV: 1.Chỉ phần khai báo mảng phần báo chtrình?

- Ý nghĩa khai báo gì? HS: Trả lời:

Dòng 1: Kbáo kiểu mảng chiều gồm Max số thực

Dòng 2 : Kbáo biến mảng Nhietdo qua kiểu mảng

GV: Giới thiệu cú pháp khai báo kiểu mảng chiều

3 Y/cầu cho ví dụ khai báo mảng?

Gọi hs khác: Ý nghĩa khai báo bạn vừa viết?

HS: trả lời

Var 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.

* Lưu ý hs tránh nhầm lẫn tên kiểu liệu mảng biến kiểu mảng

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

TL: Cách 2, ta dễ dàng điều chỉnh kích thước mảng

GV: Hỏi: Dựa vào ví dụ trang 55 SGK, cho biết:

+ Tên kiểu mảng? + Số phần tử mảng?

+ Mỗi phần tử mảng thuộc kiểu gì? Trả lời:

.ArrayReal

.301 phần tử

.Real

GV: Cách tham chiếu đến phần tử mảng:

TL: a[2] p/tử vị trí thứ mảng a

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

a Khai báo (Có hai cách) Cách 1: Khai báo trực tiếp:

Var <tên biến mảng>: array[kiểu số] of <kiểu phần tử>;

Cách 2: Khai báo gián tiếp

Type <tên kiểu mảng>= array[kiểu số] of <kiểu phần tử>;

Var <tên biến mảng>:<tên kiểu mảng>; Trong đó: +Kiểu số thường đoạn số nguyên liên tục có dạng n1 n2(n1<n2)(n1,n2 biểu thức)

+ Kiểu phần tử kiểu dl phần tử mảng

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ố 1)

Ta có cách sau: Cách 1:

Var a: Array[1 100] Of Integer; Cách 2:

Const Nmax = 100;

(48)

a[i] p/tử vị trí i mảng a Củng cố: (7’)

Bài tập củng cố: Treo bảng)

+ Những khai báo đúng? Type

Arrayr = array[1 200] Of integer; Arrayr = array[byte] of real;

Arrayb = array[-100 100] of boolean; Var a : arrayr;

B : arrayb;

+ Trả lời:

Arrayr=array[1 200] of integer;

Arrayb = array[-100 100]of boolean;

Hỏi: + Biến a khai báo chiếm dung lượng nhớ bao nhiêu? + Trả lời: a chiếm 400 byte nhớ

5 Hướng dẫn học sinh học làm tập:(2’)

- Đọc ví dụ ví dụ 2/ trang 56+57 SGK :

- Xem lại thuật tốn tìm phần tử lớn dãy số nguyên thuật toán xếp dãy số nguyên thuật toán hoán đổi (lớp 10);

V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

Tiết 19  11 KIỂU MẢNG (Tiết 2) BÀI TẬP KIỂU MẢNG MỘT CHIỀU Ngày soạn: 25/10/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

(49)

1 Kiến thức: Khai báo kiểu, biến mảng chiều, cách tham chiếu dến p/tử mảng 2 Kĩ năng: Hs sử dụng biến kiểu mảng chiều để giải toán đơn giản II PHƯƠNG PHÁP:

- Thuyết trình, đàm thoại, giảng giải, đặt vấn đề giải vấn đề III ĐỒ DÙNG DẠY HỌC

1 Giáo viên: giáo án, bảng phụ, sgk 2 Học sinh: sgk

III HOẠT ĐỘNG dẠY VÀ HỌC

1) Ổn định tổ chức: Kiểm tra sĩ số lớp

2) Kiểm tra cũ: Trình bày cách khai báo kiểu mảng NNLT Pascal? 3) Giảng mới:

TG HOẠT ĐỘNG CỦA GV VÀ HS NỌI DUNG

GV:1 Nêu đề toán (Nội dung)

Y/cầu hs xác định In/Output toán

HS: In: mảng A, số k

Out: Tổng (S) p/tử mảng A bội k

2. Ở lớp 10 ta xây dựng t/toán cho toán Y/cầu hs nhắc lại t/toán 3. Y/cầu hs cho biết việc cần thực chtrình gì?

Trả lời

+ Cho biết số ptử mảng A

+ Nhập giá trị cho ptử mảng A + Tính tổng

4. Y/cầu hs cho biết biến cần sử dụng gì?

TL: mảng A biến đơn: N, k, S

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

HS Lên bảng trình bày Var S, N, k: integer; A: array[1 100] of integer;

5. Tiếp tục y/cầu hs lên viết phần chtrình tạo giá trị cho ptử mảng A (lưu ý nhập số lượng ptử mảng trước) Gọi hs khác nhận xét

* Chỉnh sửa đoạn chtrình hs vừa hồn thành

6. Để viết tiếp đoạn chtrình cịn lại (tính tổng) theo thuật tốn ta phải kiểm tra tất ptử mảng từ A[1] đến A[n] ta sử dụng câu lệnh đây?

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

Var S, n, k, i : integer;

A: array[1 100] of integer; Begin

Write(‘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 = Then S := S + A[i];

(50)

TL: Sử dụng cấu trúc lặp For

- Hỏi: trước tính tổng, ngồi mảng A CT cần có thêm khơng? (GV bổ sung)

TL: Giá trị k Biến S := 0

- Y/cầu hs khác lên viết đoạn chtrình cịn lại?

- hs Lên bảng trình bày Chạy thử chtrình

N = A: 5, 6, -8, 13, 24, 7, -4, -12 k =3

(Treo bảng) chứa nội dung câu lệnh cần thêm vào chtrình

GV: 1. Y/cầu hs n/cứu nội dung câu lệnh hỏi:

- Ý nghĩa biến am, duong? - Chức lệnh (3)? - Lệnh (4) đưa thơng tin gì?

HS N/cứu ý nghĩa câu lệnh trả lời: - Dùng để lưu số lượng đếm - Đếm số dương đếm số âm - Số số dương, số số âm

GV: 2. Y/cầu hs tìm vị trí bổ sung lệnh vào cho phù hợp để chtrình đếm số dương, số âm

HS Chỉ vị trí cần bổ sung câu lệnh cần loại bỏ bớt

GV: 3. Y/cầu hs lên hoàn chỉnh lại chtrình?

HS Lên bảng , chỉnh sửa lại chtrình ** Chuẩn hố lại chtrình

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

N = A: 5, 6, -8, 13, 24, 7, -4, -12 A 5 - 13 24 - 4 12 -Duon

g 1 2 2 3 4 5 5 5

am 0 0 1 1 1 1 2 3

Var n, i : integer;

am, duong : integer;

A : array[1 100] of integer; Begin

Write(‘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 + Elseif A[i]<0 Then

am := am + 1; Writeln(duong: 4, am:4);

End.

4 Củng cố:

(51)

- Cho 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], C[i] tổng phần tử thứ i thuộc mảng A mảng B (tức là: C[i] = A[i] + B[i])

- Xem trước vídụ ví dụ 3/trang 57, 58 sgk V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

Tiết 20  11 KIỂU MẢNG (Tiết 3) KIỂU MẢNG HAI CHIỀU Ngày soạn: 30/10/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

(52)

11E

I MỤC TIÊU 1 Kiến thức

- Hiểu khái niệm mảng hai chiều

- Hiểu cách khai báo tham chiếu đến phần tử mảng hai chiều 2 Kĩ năng

- Thực khai báo mảng hai chiều, cách tham chiếu đến phần tử mảng hai chiều

- Thực việc tính tốn phần tử mảng hai chiều II PHƯƠNG PHÁP:

- Thuyết trình, đàm thoại, giảng giải, đặt vấn đề giải vấn đề III ĐỒ DÙNG DẠY HỌC

1 Giáo viên: Bảng phụ chứa chương trình tạo in mảng hai chiều gồm hàng, cột Tính in hình tổng phần tử mảng

2 Học sinh: SGK, soạn

III HOẠT ĐỘNG dẠY VÀ HỌC

1) Ổn định tổ chức: Kiểm tra sĩ số lớp

2) Kiểm tra cũ: Viết cấu trúc tổng quát mảng chiều ? 3) Giảng mới:

TG HOẠT ĐỘNG CỦA GV VÀ HS NỌI DUNG

7’ GV yêu cầu HS xem bảng nhân SGK - Với kiến thức mảng chiều học, em đưa cách sử dụng kiểu mảng để lưu trữ bảng nhân?

TL: - Sử dụng mảng chiều, mảng lưu hàng bảng

- Với cách lưu trữ vậy, ta phải khai báo biến mảng?

- TL: Khai báo biến mảng chiều - Khai báo có hạn chế nào?

- TL: Phải khai báo nhiều biến, chương trình phải viết nhiều lệnh để tạo in giá trị mảng

- Để khắc phục hạn chế này, ta mô tả liệu bảng nhân kiểu liệu 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 yếu tố nào?

- HS trả lời

- Tham khảo SGK trả lời

- GV đưa hai cách khai báo biến mảng hai chiều

§11 KIỂU MẢNG (tt) 2 Kiểu mảng hai chiều:

a Xét toán: Bảng nhân (SGK)

* Khái niệm mảng hai chiều: (SGK) * Các yếu tố cần xác định để mô tả kiểu mảng hai chiều (SGK)

b Khai báo:

(53)

- GV giải thích thành phần 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

GV: Đưa tập HS: Trả lời

- Gọi HS nhắc lại cách tham chiếu đến phần tử mảng chiều

- TL: Tênbiến[chỉ số]

Var <tênbiếnmảng>:array[kiểu số hàng, kiểu số cột]of <kiểu phần tử>;

C2: Gián tiếp:

Type <tên kiểu mảng> =array[kiểu số hàng, kiểu số cột]of <kiểu ptử>;

Var <tên biến mảng>:<tên kiểu mảng>; *Trong đó:

- Type, var, of, array từ khoá. - tến biến mảng, tên kiểu mảng người lập trình đặt.

- KCSH, KCSC: [n1 n2,n1’ n2’] đoạn nguyên liên tiếp với n1≤n2;

n1’≤n2’; n1, n1’ giống có giá trị khác nhau; n1, n2, n1’, n2’ hoặc biểu thức có giá trị ngun.

Ví dụ: Khai báo biến mảng B đểlưu trữ bảng nhân

+C1: Trực tiếp:

Var B: array[1 9,1 10] of Integer; + C2: Gián tiếp:

Type Bangnhan=array[1 9,1 10] of Integer;

Var B: Bangnhan;

Bài tập: Chỉ đúng/sai khai báo sau:

a, Type

mang1=array[-5 50, 10]of Integer;

Var A:mang1;

b Type mang2 = array[1 10,1 15] of char;

Var E:Mang;

c, Var C: array[0 3*2n, n] of Integer; d, Var D:array[1.5 10, 10] of real; Đáp án: Đúng ý a, c

Sai ý b, d

c.Tham chiếu đến phần tử mảng hai chiều:

Tênbiến[chỉ số hàng,chỉ số cột] Ví dụ: B[2, 5]

Có nghĩa tham chiếu đến phần tử hàng thứ cột 5của bảng nhân

d Các ví dụ:

Ví dụ 1: Viết chương trình tạo in mảng

(54)

- 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 chiều vừa tạo

- Gọi HS lên bảng sửa lại phần khai báo câu lệnh nhập cho phù hợp vớ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 lệnh tạo in mảng là:

for i := to 5 do for j := to do

- 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

- HS Theo dõi chương trình bảng phụ

program Tao_in_mang; var i, j, m, n: integer;

A: array [1 100,1 100] of integer; begin

write ('Nhap so hang m = '); readln (m); write ('Nhap so cot n = ');

readln (n);

{Tạo mảng}

for i := to m do for j := 1 to n do begin

write('Nhap A[',i, ',' ,j,']='); readln (A[i , j]);

end;

{In mảng}

for i:= to m do begin

for j := 1 to n write (A[i , j]:4);

writeln; end;

readln end.

4 Củng cố (3’)

- 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 tốn phần tử mảng hai chiều 5.Dặndò

Câu hỏi, tập nhà : Xem ví dụ cịn lại SGK V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

(55)

Tiết 21: BÀI TẬP Ngày soạn: 3/11/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

(56)

11E

I MỤC TIÊU CẦN ĐẠT 1 Kiến thức:

- Khai báo kiểu, biến mảng chiều, cách tham chiếu dến p/tử mảng - Củng cố làm hs hiểu sâu thuật toán xếp học lớp 10

2 Kĩ năng: Hs sử dụng biến kiểu mảng chiều để giải toán đơn giản II ĐỒ DÙNG DẠY HỌC

1 Giáo viên: giáo án, bảng phụ, sgk 2 Học sinh: sgk

III PHƯƠNG PHÁP

IV HOẠT ĐỘNG DẠY HỌC

1 Hoạt động 1: (10 phút) Kiểm tra cũ:

Gọi Hs lên bảng trình bày tập cho nhà tiết trước

2 Hoạt động 2:(15 phút) Phân tích tốn trước viết chương trình

a Nội dung: Sắp xếp dãy số nguyên thuật toán tráo đổi

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

Tg Hoạt động Giáo viên Học sinh Nội Dung

1. Nêu toán, y/cầu hs xác định In/Output toán

TL :

In: N (N250), dãy A (A[i]<500) Out: dãy A khơng giảm

2 Y/cầu hs trình bày lại thuật toán xếp tráo đổi (Đã học lớp 10)

3 Y/cầu lớp n/cứu lại t/toán trả lời câu hỏi:

- Biến j sẽ nhận giá trị phạm vi nào? Tương tự với biến i?

- Có nhận xét biến i,j? Trả lời:

+  j  N,  i  j-1 + i phụ thuộc theo j

(với giá trị j, i nhận giá trị từ đến j-1)

Số nguyên dương N (N250) dãy A

gồm N số nguyên dương, số đều không vượt 500 Hãy xếp dãy A thành dãy không giảm.:

In: N (N250), dãy (A[i]<500) Out: dãy A khơng giảm

2.Thuật tốn

B1: Nhập N, dãy A ; B2: j!N;

B3: j<2 đưa dãy xếp, KT;

B4: j!j-1; i!1;

B5: Nếu i>j Qlại B3;

B6: Nếu A[i]>A[i+1] tráo đổi A[i] A[i+1];

B7: Quay lại B5

3 Hoạt động 3:(15phút)Vận dụng kiểu liệu mảng chiều để mơ tả t/tốn Pascal

Hđ GV Nd ghi bảng

(57)

HD: +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 xếp hình * Chốt lại nội dung cần viết Yêu cầu hs lên bảng viết nội dung chương trình

- Khai báo biến gì? -TL: mảng A, biến đơn N, i, j - Tạo mảng làm gì?

-TL: Nhập sl p/tử mảng nhập giá trị cho p/tử mảng

- Sắp xếp mảng

Hỏi: Làm để tráo đổi giá trị biến cho (a[i] a[i+1])?

Tl: sử dụng thêm biến trung gian t: t:=a[i];

a[i]:=a[i+1]; a[i+1] :=t

- Đưa mảng hình

Var A: array[1 300] of integer; N, i, j :integer;

Begin

{tao mang}

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 Do for i:=1 to j - do If a[i] > a[i+1] then begin

t:=a[i]; a[i]:=a[i+1]; a[i+1] :=t

end;

{dua mang da sap xep}

Writeln (‘Mang da duoc sap xep ’); For i :=1 To N Do write (a[i]:4); Readln

End 4 Củng cố (5phút)

Cách phân tích viết chương trình cho tốn 5 Dặn dị:

Câu hỏi, tập nhà

Xem lại tập mảng giải tiết 20 Xem trước bài: Bài thực hành số

Bài tập: Cho mảng A gồm N phần tử viết chương trình tạo mảng B gồm N phần tử, B[i] tổng i phần tử mảng A (B[i]= A[1]+A[2]+ +A[i])

V.TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG

Tiết 22+23 BÀI THỰC HÀNH SỐ

Ngày soạn: 5/11/2010 Giảng lớp:

(58)

11A 11E

I MỤC TIÊU:

- Về Kiến thức: Củng cố cho HS hiểu biết kiểu liệu mảng

- Về Kỹ năng: Khai báo kiểu liệu mảng, nhập liệu mảng, đưa hình số giá trị phần tử mảng

+ Duyệt qua phần tử mảng để xử lý phần tử

- Về tư Thái độ: rèn luyện tư lập trình, tác phong người lập trình II CHUẨN BỊ:

- GV: Phịng máy tính, máy chiếu Projector - HS: SGK, tập

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

1) Ổn định tổ chức: Kiểm tra sĩ số lớp

2) Kiểm tra cũ: Khi ta nên khai báo biến mảng gián tiếp – thông qua định nghĩa kiểu?

3) Giảng mới:

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS

GV: Cài đặt trình chiếu CT mẫu 1a HS: Xem mẫu trình chiếu

?1: MyArray tên kiểu liệu hay tên biến? GV: Nhận xét

HS1: Trả lời ?2: Vai trò nmax n khác nào? HS2: Trả lời ?3: Dòng lệnh dùng để tạo biến mảng A?

GV: Nhận xét

HS3: Trả lời

GV: Cho chạy thử CT 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 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 If A[i] mod k = then s:=s + A[i]; thực nhiệm vụ gì?

GV: Nhận xét

HS6: Trả lời

?7: Lệnh s:=s+A[i]; thực 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 HS: Chạy thử chương trình máy

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âu lệnh câu 1b HS: Xem

?8: Đưa biến Posi Neg vào vị trí câu 1a?

GV: Nhận xét HS8: Trả lời

?9: Nhiệm vụ câu lệnh:

If A[i]:>0 then Posi:=Posi+1 else If A[i]<0 then Neg:=Neg+1; ?

(59)

GV: Nhận xét

GV: Yêu cầu HS đưa câu lệnh vào chương trình câu 1a

HS: Thực

GV: Yêu cầu HS chạy chương trình báo cáo kết HS: Lưu 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 để nhập mảng có 10 phần tử từ bàn phím

5) Dặn dò:

- HS nhà làm tập 4.15 sách tập

- Chuẩn bị chương trình bài thực hành chương IV SGK IV RÚT KINH NGHIỆM, BỔ SUNG:

Tiết 24+25 BÀI THỰC HÀNH SỐ Ngày soạn: 15/11/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

(60)

11E

I Mục tiêu

1 Kiến thức

- Củng cố kiến thức liệu kiểu mảng

- Xây dựng cấu trúc liệu, hiểu thuật toán xếp tráo đổi 2 Kĩ năng

- Biết chỉnh sữa lỗi chương trình

- Tự nhập liệu để hiểu ý nghĩa số câu lệnh 3 Thái độ

- Nghiêm túc thực nội quy phịng máy, tự giác 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 viết sẵn

III Tiến hành dạy học

1) Ổn định tổ chức: Kiểm tra sĩ số lớp 2) Kiểm tra cũ: Thông qua ? 3) Giảng mới:

Hoạt động 1: Nhắc lại kiến thức học liên quan thực hành. Hoạt động Giáo viên Học

sinh Nội dung thực hành

Hỏi 1: Nêu cách khai báo kiểu mảng chiều

Hỏi 2: Nhập từ bàn phím xây dựng mảng chiều A có phần tử

Tl: có cách + gián tiếp: + trực tiếp:

TL: For i:= to Begin

Writeln(‘Nhap phan tu thu ’,i,’=’); Readln(A[i]);

End;

2 Hoạt động 2: Xác định tốn tìm hiểu chương trình.

Hoạt động Giáo viên Học sinh Nội dung

1. Chiếu đề lên bảng 2. Xác định toán

Y/cầu hs xác định liệu vào/ra toán? Trả lời :

- Vào: mảng A

- Ra: mảng A xếp

- Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)?

- HS Nhắc lại thuật toán

- Chiếu thuật toán liệt kê bước 4. Tìm hiểu chương trình

- Vai trị biến i, j CT? - TL: Dùng làm biến số

Đề: Sắp xếp dãy số nguyên thuật toán tráo đổi với giá trị khác n số

(61)

- Đoạn lệnh thực tráo đổi giá trị phần tử liền kề mảng?

- TL:3 lệnh: tg := a[i]; a[i]:= a[i+1]; a[i+1]:= tg; - Treo bảng CT chuẩn bị sẵn Giải thích số lệnh CT 3 Hoạt động 3: Chạy CT câu a.

Hoạt động Giáo viên Học sinh Nội dung

- Yêu cầu hs tự nhập liệu với CT có sẵn - Giúp hs phát sữa lỗi

- Thuật toán tiến hành đưa số lớn thứ j đến vị trí j sau vịng lặp: For i:= to j-1

- Chạy CT, nhập liệu, xm kết

- Chỉnh sữa CT thông qua thông báo lỗi

- Chú ý hiểu rõ thêm CT 4 Hoạt động 4: Xác định toán câu b.

Hoạt động Giáo viên Học sinh Nội dung

1. Xác định toán

- Y/cầu hs xác I/O toán?

- Biến Dem tăng lên nào? TL: Khi A[i] > A[i+1]

(tức biểu thức đk CL If đúng)

- Cần đưa câu lệnh tăng Dem vào chỗ CT trên?

TL: Trong thân CL If: trước sau lệnh tráo đổi

- Câu lệnh khởi tạo Dem:= đặt vào vị trí CT?

TL: Chọn hai phương án 3, + Trước CL đầu tiên:

For j:= N down to + Trước CL duyệt:

For i:= to j-1 + Trước CL tráo đổi + Sau CL tráo đổi

- Sau CL cuối CT nên đưa CL vào để hiển thị giá trị biến Dem hình

Đề: Khai báo biến đếm nguyên Dem bổ sung vào chương trình câu lệnh cần thiết để biến Dem tính số lần tráo đổi chương trình

Xác định tốn: + I: mảng a;

+O: mảng a xếp, số lần tráo đổi (Dem);

4 Hoạt động 5: Sữa CT câu a để giải toán câu b.

Hoạt động Giáo viên Học sinh Nội dung

- Yêu cầu hs sữa lại CT theo gợi ý nêu - Hướng dẫn hs chỉnh sửa chạy CT - Đánh giá kết hs

CT(Phụ lục)

- Thêm CL hướng dẫn vào CT - Chạy CT

4) Củng cố : Thuật toán xếp tráo đổi Đếm số lần tráo đổi 5) Bài tập nhà

(62)

- Cho mảng A mảng B (là mảng A xếp) Hãy in số phần tử mảng A theo mảng B

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

Tiết 26

(63)

I MỤC TIÊU 1 Kiến thức

- Học sinh nắm toàn kiến thức học từ đầu năm học đến 2 Kĩ năng

- Rèn luyên kĩ nhận xét, phân tích tốn II ĐỒ DÙNG DẠY HỌC

1 Chuẩn bị giáo viên

- Máy chiếu qua đầu, bìa trong, sách giáo khoa 2 Chuẩn bị học sinh

- Sách giáo khoa, số chương trình tập

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

(64)

GV: Đặt câu hỏi gợi ý để học sinh tự nhắc lại kiến thức học

GV: - Em hiểu lập trình ngơn ngữ lập trình?

- Các loại chương trình dịch? HS: Trả lời

GV: - Các thành phần ngôn ngữ lập trình?

- Các khái niệm ngơn ngữ lập trình?

- Cấu trúc chung chương trình TP?

HS: trả lời

GV: - Nêu tên kiểu liệu chuẩn? - Nêu nhóm phép tốn học? - Các loại biểu thức?

- Chức thực lệnh gán?

- Nêu tên chức số hàm số học?

- Tổ chức vào/ra - Tổ chức rẽ nhánh - Tổ chức lặp

- Kiểu mảng Xác định toán

- Chiếu nội dung đề lên bảng - Chia lớp làm hai nhóm

Nhóm 1: Nêu câu hỏi phân tích

Nhóm 2: Trả lời câu hỏi phân tích nhóm

- Giáo viên góp ý bổ sung cho hai nhóm

Trả lời câu hỏi

- Lập trình q trình diễn đạt thuật tốn ngơn ngữ lập trình - Biên dịch thơng dịch

- Bảng chữ cái, cú pháp ngữ nghĩa - Khái niệm tên, biến, thích

- Gồm phần: Phần khai báo phần thân

- Số nguyên, số thực, ký tự, logic - Phép toán số học, phép toán quan hệ, phép toán logic

- Biểu thức số học, biểu thức quan hệ biểu thức logic

- Dùng để tính toán biểu thức gán giá trị cho biến

- Hàm bình phương, hàm bậc hai, hàm giá trị tuyệt đối, hàm sin, hàm cos - Lệnh Read()/readln();

- Lệnh write()/writeln();

- If <BTĐK> then <lệnh 1> else <lệnh 2>;

For tiến For lùi While <>

- Array

1 Quan sát, theo dõi đề định hướng giáo viên để xác định toán

- Nhóm 1:

+ Dữ liệu vào + Dữ liệu

+ Các nhiệm vụ phải thực tốn

(65)

2 Rèn luyện kỹ lập trình - Chia lớp thành nhóm

- Yêu cầu: Viết chương trình hồn thiện lên bìa

- Thu phiếu học tập, chiếu kết lên bảng Gọi học sinh nhóm khác nhận xét đánh giá bổ sung

3 Chuẩn hóa kiến thức chương trình mẫu giáo viên Thực chương trình, nhập liệu để học sinh thấy kết chương trình

+ Số N N số nguyên

+ Số lượng số chẵn C số lẽ L + 1- Nhập liệu

2- Đếm số lượng số chẵn, số lẽ 3- Đưa kết hình Làm việc theo nhóm

- Thảo luận theo nhóm để viết chương trình

- Báo cáo kết

- Nhận xét, đánh giá bổ sung thiếu sót nhóm khác

3 Theo dõi ghi nhớ

4 Củng cố dặn dò:

- Giáo viên yêu cầu học sinh nhắc lại số nội dung ơn tập tiết học - Chuẩn bị kiến thức cho tiết sau kiểm tra học kỳ 1: Xem lại toàn kiến thức ôn tập, đặc biệt trọng cấu trúc lặp rẽ nhánh, kiểu mảng

V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

Tiết Bài 12: KIỂU XÂU Ngày soạn: 25/11/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I.Mục tiêu

1 Về kiến thức

- Biết kiểu dự liệu mới, biết khái niệm kiểu xâu - Phân biệt giống khác kiểu mảng với kiểu xâu

- Biết cách khai báo biến, nhập/xuất liệu, tham chiếu dến kí tự xâu - Biết phép toán liên quan đến xâu

2 Về kĩ năng

- Khai báo biến kiểu xâu ngơn ngữ lập trình Pascal

- Sử dụng biến xâu phép toán xâu để giải toán đơn giản II Chuẩn bị GV HS

(66)

2 HSSGK

III Phương pháp Thuyết trình, vấn đáp IV Tiến trình học Ổn định lớp:

2 Kiểm tra cũ: 3 Nội dung mới:

Tg Hoạt động giáo viên học sinh

Nội dung GV: Câu hỏi?

Định nghĩa mảng chiều cách khai báo

'Viet Nam' có phải liệu kiểu mảng chiều khơng, Vì sao? HS: Trả lời

GV: Nhận xét

Chính xác hóa nội dung

'Viet Nam' liệu kiểu mảng Tuy nhiên kiểu liệu mà tiết ta học: KIỂU XÂU

Ghi nhớ kiến thức

1 Tìm hiểu ý nghĩa xâu ký tự

- Chiếu đề toán đặt vấn đề: Viết chương trình nhập họ tên 30 học sinh lớp

- Hỏi: Ta chọn kiểu liệu nào? Khai báo biến nào?

- Yêu cầu học sinh: Viết đoạn lệnh để nhập xuất liệu cho phần tử - Hỏi: Có khó khăn gặp phải?

- Dẫn dắt: Cần có kiểu liệu cho phép ta nhập/xuất liệu cho xâu lệnh

2 Tìm hiểu kiểu xâu

- Chiếu lên bảng cách khai báo biến xâu ngơn ngữ lập trình Pascal

- Hỏi: Ý nghĩa từ String, [n]

Bài 12 Kiểu xâu

1 Quan sát, suy nghĩ trả lời - Kiểu mảng chiều gồm 30 ký tự - Khai báo biến mảng A để lưu họ tên học sinh

Readln(A[1]);Readln(A[2]); Readln(A[3]);Readln(A[4]);

- Chương trình viết dài dịng Khi nhập liệu, phải thực gõ nhiều phím

2 Quan sát cấu trúc khai báo tham khảo sách giáo khoa

- String tên kiểu xâu

- [n] giá trị quy định số lượng ký tự tối đa mà biến xâu chứa

(67)

- Hỏi: Khi khai báo khơng có [n] số lượng ký tự tối đa bao nhiêu?

- Yêu cầu học sinh cho ví dụ xâu ký tự

- Hỏi: Xâu có ký tự?

- Diễn giải: Mỗi ký tự gọi phần tử xâu Số lượng ký tự xâu gọi độ dài xâu

- Hỏi: Xâu gồm ký tự trống viết nào? số lượng ký tự bao nhiêu?

- Hỏi: Xâu rỗng viết nào? số lượng ký tự bao nhiêu?

3 Nhập/xuất liệu cho biến xâu ngôn ngữ Pascal

- Giới thiệu cấu trúc chung thủ tục nhập/xuất liêu

- u cầu học sinh tìm ví dụ cụ thể

- Hỏi: Khi viết lệnh nhập/xuất liệu cho biến xâu, có khác so với biến mảng ký tự

- Dẫn dắt: Ta sử dụng lệnh gán để nhập giá trị cho biến xâu Cấu trúc chung: tên_biến_xâu:=hằng_xâu;

- Yêu cầu học sinh tìm ví dụ cụ thể Tham chiếu đến ký tự xâu - Giới thiệu cấu trúc chung

- Hỏi: Có giống khác so với cách tham chiếu đến phần tử mảng

- Yêu cầu học sinh tìm ví dụ Kiểm tra kiến thức

- Chiếu nội dung tập kiểm tra kiến thức:

Var st:string[1]; c:char; Begin

c:=st[1]; {1} c:=st; {2} End

- Hỏi: Trong hai lệnh {1} {2}, lệnh đúng?

- Xâu có ký tự, dấu cách ký tự

- Ký hiệu xâu gồm ký tự trống ‘ ’ Xâu có độ dài

- Ký hiệu xâu rỗng ‘ ’ Xâu có độ dài

3 Quan sát bảng để trả lời

- Ví dụ: Readln(hoten);

- Ví dụ: Write(‘Ho ten ’,hoten);

- Viết lệnh nhập nguyên cho xâu Viết lệnh gọn hơn, chương trình gọn

- Ví dụ: St:= ‘HA NOI’;

4 Quan sát suy nghĩ để trả lời - Giống cấu trúc chung tham chiếu tên biến[chỉ số]

- Ví dụ: st[2]

5 Quan sát chương trình bảng độc lập suy nghĩ

- Lệnh {1}

(68)

- Thực chương trình để học sinh tự kiểm nghiệm suy luận

Gợi nhớ phép toán học

- Hỏi: Hãy nhắc lại phép toán học kiểu liệu chuẩn

2 Tìm hiểu chức số phép toán kiểu xâu qua số ví dụ - Chiếu chương trình ví dụ:

Var st:string; Begin

st:= ‘Ha’+‘Noi’; Write(st);

readln; End

- Hỏi: Kết chương trình in hình?

- Thực chương trình để học sinh thấy kết

- Yêu cầu học sinh tìm số ví dụ khác

- Hỏi: Chức phép cộng ?

- Giới thiệu thêm số ví dụ khác yêu cầu học sinh cho biết kết

st:= ‘Ha’ +‘Noi’; st:= ‘Ha ’+‘Noi’; st:= ‘ ’ + ‘Ha Noi’;

st:= ‘Ha Noi’ + ‘Việt’ + ‘Nam’;

- Chiếu chương trình ví dụ phép so sánh xâu

Var bo:boolean; Begin

bo:= ‘AB’ < ‘AC’; Write(bo);

readln; End

- Hỏi: Kết chương trình in hình?

- Thực chương trình để học sinh thấy kết

- Hỏi: Còn phép so sánh nữa?

2 Các thao tác xử lí xâu

2 Quan sát ví dụ, suy nghĩ trả lời - Quan sát chương trình

- Kết cho ta: st = ‘HA NOI’ - Quan sát kết chương trình

- Ví dụ: st:= ‘HA NOI’ + ‘Co ho GUOM’ Kết quả:

st = ‘HA NOICo ho GUOM’

- Là phép toán nối xâu thứ hai vào cuối xâu thứ

st:= ‘HaNoi’; st:= ‘Ha Noi’; st:= ‘ Ha Noi’;

st:= ‘Ha NoiViệtNam’;

- Quan sát chương trình để dự tính kết

- Kết là: TRUE

(69)

- Chiếu ví dụ phép so sánh yêu cầu học sinh cho biết kết phép so sánh

‘AB’ < ‘ABC’ ‘AC’ < ‘ABC’

- Lưu ý cho học sinh: Một xâu có độ dài nhỏ lớn (>) xâu có độ dài lớn

chứng suy luận

- Có phép <, <=, >=, <>, =

- Kết quả: True - Kết quả: False

4: Củng cố(5'):

Nhắc lại nội dung học:

- Khai báo biến: VAR tên_biến : STRING[độ dài lớn xâu]; - Nhập xuất giá trị cho biến xâu: read/readln(); write/writeln(); - Tham chiếu đến ký tự xâu: tên_biến[chỉ_số]

- Phép ghép xâu: ký hiệu +, sử dụng để ghép nhiều xâu thành xâu - Các phép so sánh: =, <>, >, <, <=, >=: thực việc so sánh hai xâu

5: Dặn dò (1')

- Về nhà xem phần kiến thức lý thuết lại bài, bao gồm thủ tục hàm liên quan đến xâu, sách giáo khoa trang 70 - 72

V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

Tiết KIỂU DỮ LIỆU XÂU (TIẾT 2/2)

Ngày soạn: 28/11/2010 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC TIÊU 1 Kiến thức

- Biết lợi ích hàm thủ tục liên quan xâu ngơn ngữ lập trình Pascal

- Nắm cấu trúc chung chức số hàm thủ tục liên quan đến xâu ngơn ngữ lập trình Pascal

(70)

- Nhận biết bước đầu sử dụng số hàm thủ tục để giải số tập đơn giản liên quan

II ĐỒ DÙNG DẠY HỌC 1 Chuẩn bị giáo viên

- Máy vi tính, máy chiếu projector để giới thiệu ví dụ, sách giáo viên 2 Chuẩn bị học sinh

- Sách giáo khoa

III HOẠT ĐỘNG DẠY-HỌC Ổn định lớp: Kiểm tra cũ:

Câu hỏi: Xâu gì? Nêu cách khai báo biến xâu? Cho ví dụ? Nội dung

Tg Hoạt động giáo viên Hoạt động học sinh

ĐVĐ: Chúng ta biết xâu gì? Và số phép tốn xâu Bây chung ta học số thủ tục chuẩn dùng để xử lí xâu

Chú ý quan sát bảng

Giới thiệu cấu trúc chung hàm length(st) lên bảng

- Hỏi: Ý nghĩa Length st? - Chiếu chương trình ví dụ:

Var st:string; Begin

st:= ‘Ha Noi’; Write(length(st)); readln;

End

- Hỏi: Kết chương trình in hình?

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức hàm length() gì? - Chiếu đề tập ứng dụng: Viết chương trình nhập xâu, in hình số ký tự ‘a’ có xâu

2 Giới thiệu cấu trúc chung hàm Upcase(ch)

- Chiếu chương trình ví dụ: Var ch:char;

Begin

2 Các thao tác sử lí xâu:

1 Quan sát cấu trúc chung

- Length: tên hàm, có nghĩa độ dài, st: biểu thức xâu ký tự

- Quan sát chương trình để dự tính kết

- Kết là:

- Quan sát kết chương trình - Hàm cho số lượng ký tự xâu st

2 Quan sát cấu trúc chung hàm Upcase

(71)

ch:= ‘h’;

Write(upcase(ch)); readln;

End

- Hỏi: Kết chương trình in hình?

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức hàm upcase()? - Chiếu tập ứng dụng: Viết chương trình nhập xâu, in hình xâu dạng in hoa

3 Giới thiệu cấu trúc chung hàm Pos(s1,s2)

- Chiếu chương trình ví dụ: Var vt:byte;

Begin

vt:=Pos(‘cd’, ‘abcdefcd’); Write(vt);

readln; End

- Hỏi: Kết chương trình in hình?

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức hàm pos?

- Thay tham số hàm Pos chương trình Pos(‘k’, ‘abc’) Hỏi kết hàm bao nhiêu?

- Chiếu tập ứng dụng: Viết chương trình nhập vào xâu st Xét xem xâu có dấu cách hay khơng?

- Hỏi: Có cách giải khác?

- Kết là: H

- Quan sát kết chương trình - Cho giá trị chữ in hoa ch Var st:string;

Begin readln(st);

For i:=1 to length(st) write(upcase(st[i])); End

3 Quan sát cấu trúc chung hàm Pos ví dụ để biết chức

- Quan sát chương trình để dự tính kết

- Kết là:

- Quan sát kết chương trình - Hàm cho giá tri số nguyên vị trí xâu st2 xâu st2

- Bằng không

Var st:string; Begin

readln(st);

if pos(‘ ’, st)<>0 then write(‘Co’) else write(‘Khong’);

End

- Có thể sử dụng For để tìm dấu cách xâu

(72)

4 Giới thiệu cấu trúc chung hàm copy(st,vt,n)

- Chiếu chương trình ví dụ: Var st:string;

Begin

st:=copy(‘bai tap’,3,4); Write(st);

readln; End

- Hỏi: Kết chương trình in hình?

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức hàm copy?

- Thay tham số hàm copy chương trình ví dụ sau hỏi kết in hình:

Copy(‘abc’,1,5) Copy(‘abc’,5,2) Copy(‘abc’,1,0)

- Thực chương trình để học sinh thấy kết

5 Giới thiệu cấu trúc chung thủ tục delete(st,vt,n);

- Chiếu chương trình ví dụ: Var st:string;

Begin

st:= ‘HaNoi’; delete(st,3,2); Write(st); readln; End

- Hỏi: Kết chương trình in hình?

- Thực chương trình để học sinh thấy kết

- Hỏi chức thủ tục delete();

- Thay lệnh gán st:= ‘HaNoi’; thủ tục

- Quan sát chương trình để dự tính kết

- Kết là: ‘i ta’

- Quan sát kết chương trình - Hàm cho giá trị xâu ký tự lấy xâu st, gồm n ký tự bắt đầu vị trí vt

Cho giá trị là: ‘abc’ Cho giá trị xâu rỗng Cho giá trị xâu rỗng

- Quan sát kết chương trình để kiểm nghiệm suy luận

5 Quan sát cấu trúc chung thủ tục Insert ví dụ

- Quan sát chương trình để dự tính kết

st=’Hai’

- Quan sát kết chương trình - Thủ tục thực việc xóa biến xâu st gồm n ký tự, vị trí vt

(73)

xóa lệnh sau hỏi kết in hình

st:=’abc’; Delete(st,1,5); st:=’abc’; Delete(st,5,2); st:=’abc’; Delete(st,1,0);

- Chiếu tập ứng dụng: Viết chương trình nhập xâu xoá dấu cách thừa đầu xâu

6 Giới thiệu cấu trúc chung thủ tục Insert(st1,st2,vt);

- Chiếu chương trình ví dụ: Var st1,st2:string;

Begin

st2:=‘HaNoi’; st1:= ‘ ’;

insert(st1,st2,3); Write(st);

readln; End

- Hỏi: Kết chương trình in hình?

- Thực chương trình để học sinh thấy kết

- Hỏi chức thủ tục insert(); - Thay lệnh gán st2:=‘HaNoi’; thủ tục chèn lệnh sau hỏi kết quả: st2:=‘ef’; Insert(‘abc’,st2, 5);

st2:=‘ef’; Insert(‘abc’,st2, 0); * Hoạt động rèn luyện kĩ năng: Xác định toán

- Chiếu nội dung đề lên bảng - Xác định liệu vào, liệu

- Hỏi: Các nhiệm vụ giải toán này?

- Hỏi: Trong này, ta cần sử dụng hàm thủ tục nào?

2 Chia lớp làm nhóm Yêu cầu viết

st:= ‘abc’;

Var st:string; begin

readln(st);

while st[1]= ‘ ’ delete(st,1,1); writeln(st);

readln; end

6 Quan sát cấu trúc chung thủ tục Insert

- Quan sát chương trình để dự tính kết

- Kết st2=’Ha Noi’

- Quan sát kết chương trình - Thủ tục thực việc chèn xâu st1 vào biến xâu st2 bắt đầu vị trí vt st2= ‘efabc’;

st2= ‘abcef’;

HS: Quan sát trả lời:

1 Quan sát, suy nghĩ để trả lời - Vào: Một xâu ký tự

- Ra: Một xâu có ký trắng hai từ

- Xoá dấu cách thừa đầu xâu cuối xâu

(74)

chương trình lên bìa

- Thu phiếu trả lời Chiếu kết lên bảng Gọi học sinh nhóm khác nhận xét, đánh giá bổ sung

3 Chiếu chương trình mẫu giáo viên viết để xác hóa lại cho học sinh

2 Thảo luận theo nhóm để viết chương trình

- Thơng báo kếtquả

- Nhận xét bổ sung thiếu sót nhóm khác

3 Quan sát ghi nhớ

4 Củng cố dặn dò: - Củng cố:

Nhắc lại số hàm thủ tục liên quan đến xâu Nhắc lại cấu trúc câu lệnh

- Bài tập nhà: Giải tạp số 10 trang 80 V TỰ RÚT KINH NGHIỆM

Tiết 29 BÀI TẬP VÀ THỰC HÀNH 5(Tiết 1) Ngày soạn: 5/12/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC ĐÍCH: 1.Kiến thức:

- Khắc sâu thêm phần kiến thức lý thuyết kiểu xâu kí tự, đặc biệt hàm thủ tục liên quan

-Nắm số thuật toán bản: tạo xâu mới, đếm số lần xuất ký tự, 2.Kỹ năng:

(75)

II PHƯƠNG PHÁP: Thực hành + Vấn đáp tái III CHUẨN BỊ:

1 Giáo viên: Giáo án, SGK, máy chiếu Học sinh: Chuẩn bị nhà

IV TIẾN TRÌNH LÊN LỚP: 1.ỔN ĐỊNH LỚP(1’):

2.KIỂM TRA BÀI CŨ(3’): Đưa toán lên máy chiếu sau Hãy cho biết số hàm thủ tục chuẩn sau đây: S=’THUC HANH TIN HOC’

S1=’BAI TAP’); Length(s)->? Insert(S1,S,0)->? COPY(S, 30,9)->?

a.Đặt vấn đề(1’): Hôm học “bài tập thực hành5(t1)” để kiểm tra số

thuật toán, số thủ tục hàm xử lý xâu

b.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(20’)

(Tìm hiểu cách khai báo biến, sử dụng hàm thủ tục chương trình) Gv:Đưa tuèng chương trình lên máy chiếu để Hs quan sát tìm hiểu

-Giáo viên yêu cầu Hs gõ số chương trình sau vào NNLT Pascal, chạy chương trình để kiểm tra tính đắn thuật tốn

-Với ví dụ, Gv sâu vào giải thích câu lệnh trực tiếp đáp ứng yêu cầu ví dụ, em tiếp thu nhanh

Hs: Soạn thảo ví dụ vào máy tìm

hiểu cách sử dụng biến, hàm thủ tục Ví dụ : Nhập xâu, kiểm tra xem ký tự xâu S1 có trùng với ký tự cuối xâu S2 hay không ?

I.Tìm hiểu khai báo biến, hàm thủ tục thơng qua số chương trình có sẳn:

VD :

Var s1,s2 : String ; x : Byte ;

Begin

Write('Nhap xau thu : '); Readln(s1) ;

Write('Nhap xau thu : '); Readln(s2) ;

x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else

(76)

Ví dụ : Nhập xâu, viết hình xâu theo thứ tự ngược lại ký tự xâu

Ví dụ : Nhập xâu, viết hình xâu bỏ tất ký tự dấu cách

Ví dụ : Nhập xâu, viết hình xâu gồm ký tự số xâu

Gv:Yêu cầu hs kiểm tra với số liệu nhập vào từ bàn phím giải thích câu lệnh ví dụ

Hoạt động 2(17’)

(Rèn luyện kỷ lập trình) Gv:Đưa câu hỏi lên máy chiếu

Hãy cho biết hàm đổi ký tự thường thành chữ in hoa?

End VD :

Var i,k : Byte ; a : String ; Begin

Write('Nhap xau : ') ; Readln(a) ;

k := length(a) ;

For i := k downto Write(a[i]) ;

Readln ; End VD :

Var i,k : Byte ; a,b : String ; Begin

Write('Nhap xau : ') ; Readln(a) ;

k := length(a) ; b :='' ;

For i := to k if a[i] <> '' then b := b+a[i] ; Write(b) ; Readln ; End VD :

Var s1,s2 : String ; i : Byte ;

Begin

Write('Nhap xau s1 : ') ; Readln(s1) ;

s2 := '' ;

For i := to length(s1)

If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ;

Write(s2); Readln ; End

II.Vận dụng câu lệnh, hàm và thủ tục để viết chương trình:

(77)

Hs:Hàm Upcase(ch) Gv:

Hãy viết đoạn chương trình đổi chữ thường thành chữ in hoa?

Hs:Thực hành máy trả lời câu hỏi For i:=1 To Length(S) Do

Write(Upcase(S[i]);

Gv:Đưa câu hỏi lên máy chiếu

Hãy nêu ý tưởng thuật tốn đếm xâu S có ký tự số?

Hs:Thực hành máy->Trả lời câu hỏi Dem:=0;

For i:=1 To length(S) Do

If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1;

Gv:Quan sát thực hành hs đưa câu hỏi

Ngồi cách viết thuật tốn trê ta cịn có cách viết khác nửa?

Hs:

- Tách dãy từ xâu S thành xâu có số (Ví dụ 4)

- Sử dụng hàm Length(S1)

Gv:Yêu cầu Hs thử sử dụng cách để kiểm chứng

xâu S đưa hình xâu in hoa

Var S : String ; i : Byte ; Begin

Write('Nhap xau S : ') ; Readln(S) ;

For i:=1 To Length(S) Do Write(Upcase(S[i]); Readln;

End

Bài2:Hãy viết chương trình nhập vào xâu (có ký tự ký tự số) đưa hình có ký tự số? Ví dụ:

S=’08bC156546CD’ =>Dem=8 Var S:String;

i, Dem:Byte; Begin

Write(‘Nhap xau S=’);Readln(S); Dem:=0;

For i:=1 To length(S) Do

If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1;

Write(‘Tong so ky tu la so’,Dem); Readln;

End 4.CỦNG CỐ(2’):

- Nhận xét buổi thực hành=>đưa số lổi thường gặp thực hành - Cần nắm cách khai báo biến xâu, hàm thủ tục xử lý xâu, 5.DẶN DỊ(1’): Đưa lên hình máy chiếu sau:

-Tiết sau học tiết: Tiết 32: Bài tập Thực hành 5(t2) -Bài tập nhà: 10,11/79(SGK)

- Xem đọc trả lời câu hỏi sau:

1.Hãy viết chương trình nhập vào từ bàn phím xâu S đếm xâu S có dấu cách?

2.Hãy viết chương trình nhập từ bàn phím xâu S tách xâu từ xâu S vị trí lấy ký tự?

V TỰ RÚT KINH NGHIỆM

(78)

Tiết 30 BÀI TẬP VÀ THỰC HÀNH (Tiết 2) Ngày soạn: 5/12/2010

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I.MỤC ĐÍCH: 1.Kiến thức:

- Hs tự xây dựng số thật toán xâu soạn thảo NNLT Pascal

- Khắc sâu thêm phần kiến thức lý thuyết kiểu xâu kí tự, đặc biệt hàm thủ tục liên quan

2.Kỹ năng:

-Khai báo biến kiểu xâu

- Nhập, xuất giá trị cho biến xâu - Duyệt qua tất ký tự xâu - Sử dụng hàm thủ tục chuẩn 3.Thái độ:

(79)

II.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái III.CHUẨN BỊ:

1 Giáo viên: Giáo án, SGK, máy chiếu Học sinh: Chuẩn bị nhà

IV TIẾN TRÌNH LÊN LỚP:N ĐỊNH LỚP(1’):

KIỂM TRA BÀI CŨ(3’): Gọi Hs lên bảng viết

Hãy nêu cú pháp ý nghĩa hàm thủ tục xử lý xâu? Mỗi thủ tục hàm lấy ví dụ?

a.Đặt vấn đề(1’): Hơm học “Bài tập Thực hành5(t2)” để kiểm tra số thuật toán, số thủ tục hàm xử lý xâu

b.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(15’)

(Tìm hiểu cách khai báo biến, sử dụng hàm thủ tục chương trình) Gv:Đưa nội dung tập lên máy chiếu

Hãy gõ chương tình chạy thử với test sau:

A=’abccba’ A=’fgđhfs’

Hs:Quan sát hình máy chiếu SGK để gõ chương trình vào NNLT Pascal Gv: Quan sát Hs gõ chương trình đưa câu hỏi thảo luận sau:

Với hai test kết xuất nào?

Hs: Thực hành trả lời kết qua.í

Gv: Hãy sửa lại chương trình mà khơng sử dụng biến P?

Hs:Thảo luận theo nhóm (2Hs/máy) -Dùng biến kt

-Soạn thảo chương trình

-Chạy thử chương trnhf với Test

Gv:

I.Soạn thảo chương trình tìm hiểu cách khai báo biến số câu lệnh:

Nhập vào từ bàn phím xâu Kiểm tra xâu có phải xâu đối xứng hay khơng Xâu đối xứng có tính chất: đọc từ phải sang trái thu kết giống đọc từ trái sang phải (Còn gọi xâu palindrome)

a.Hãy chạy thử chương trình sau: Var

i,x:Byte; a,p:String; Begin

Write(‘Nhap xau a=’); Readln(a); P:=’’;

For i:=length(a) Downto Do p:=p+a[i];

If a=p Then Write(‘Xau palindrome)

Else Write(‘Xau khong phai la palindrome);

Readln; End

b.Hãy viết lại chương trình trên, khơng dùng biến xâu p?

Var

(80)

-Quan sát đưa chương trình hồn chỉnh lên máy chiếu để Hs so sánh

-Ngồi cịn có cách thứ 2:

While i<=(x div2) And (a[i]=a[x-i+1] Do i:=i+1

If i>(x div 2) Then Write(‘Xau palindrome) Else Write(‘Xau khong phai la palindrome);

Hoạt động 2(22’)

(Rèn luyện kỷ lập trình) Gv:Đưa câu hỏi lên máy chiếu S=’AbaCDacd’

Hãy cho biết số lần xuất chữ tiếng Anh S ( không phân biệt chữ hoa hay chữ thường)?

Hs:Đếm trả lời

Gv: Hãy nêu Input Output toán? Hs:

Input:Nhập xâu S

Output: Đếm số lần xuất hiền chữ tiếng anh

Gv:

Trong bảng chữ tiếng anh có chữ cái?

Hs:Gồm có 26 chữ Gv:Hướng dẫn

Dem[A]:=0; Dem[B:=0; … Dem[Z=0;

Hãy viết câu lệnh khởi tạo biến nào?

Hs:Sử dụng câu lệnh For

Gv: Hãy viết đoạn chương trình đếm số lần xuất chữ tiếng Anh?

Hs: Suy nghĩ trả lời

If S[i] in ['A' 'Z'] Then Begin

S[i]:=upcase(S[i]); Dem[S[i]]:=Dem[s[i]]+1; End;

Gv:u cầu hoạt động theo nhóm (2Hs/1máy tính) theo mẫu sau:

Var

Dem:array['A' 'Z'] Of Byte;

Write(‘Nhap xau a=’); Readln(a); Kt:=True;

X:=length(a); For i:=1 To x div Do

If a[i]<> a[x-i+1] Then kt:=False; If Kt Then Write(‘Xau palindrome) Else Write(‘Xau khong phai la palindrome);

Readln; End

II.Vận dụng kiểu liệu xâu để lập trình:

Bài 2: Viết chương trình nhập từ bàn phím xâu S thông báo số lần xuất chữ tiếng Anh S ( không phân biệt chữ hoa hay chữ thường)

Input:Nhập xâu S

(81)

S: ; i: ; ch: ; Begin

Write('Nhap xau S='); Readln(S); For ch:='A' To 'Z' Do Dem[ch]:= ; For i:=1 to Length(S) Do

If S[i] in ['A' 'Z'] Then Begin

End;

For ch:='A' to 'Z' Do If Dem[S[i]]<> Then Writeln( ); Readln;

End

Hãy viết chương trình đầy đủ chạy thử chương trình để để tra xem kết đúng? Hs:Thảo luận theo nhóm để điền chạy chương trình báo cáo kết

Gv:Quan sát đưa tồn chương trình lên máy chiếu chạy thử để Hs quan sát

Var

Dem:array['A' 'Z'] Of Byte; S:string;

i:Byte; ch:char; Begin

Write('Nhap xau S='); Readln(S); For ch:='A' To 'Z' Do Dem[ch]:=0; For i:=1 to Length(S) Do

If S[i] in ['A' 'Z'] Then Begin

S[i]:=upcase(S[i]); Dem[S[i]]:=Dem[s[i]]+1; End;

For ch:='A' to 'Z' Do If Dem[S[i]]<> Then

Writeln('so lan xuat hien ',ch,' la',Dem[ch]);

Readln; End

4.CỦNG CỐ(2’):

- Nhận xét buổi thực hành=>đưa số lổi thường gặp thực hành - Cần nắm cách khai báo biến xâu, hàm thủ tục xử lý xâu,

- Cần nắm thuật toán đếm số lần xuất chữ tiếng anh, kểu tra xâu đối xứng 5 DẶN DÒ(1’): Đưa lên hình máy chiếu sau:

-Tiết sau học tiết: Tiết 33: Bài tập -Bài tập nhà:

1.Nhập từ bàn phím xâu Thay tất cụm kí tự 'anh' cụm kí tự 'em' V TỰ RÚT KINH NGHIỆM

(82)

Tiết 31 KIỂU BẢN GHI ( Tiết 1) Ngày soạn: 5/01/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC ĐÍCH: 1.Kiến thức:

- Biết khái niệm kiểu bảng ghi

- Biết cách khai báo ghi, truy xuất trường ghi.

- Phân biệt giống khác kiểu ghi với mảng chiều. 2.Kỹ năng:

- Khai báo kiểu ghi, khai báo biến kiểu ghi NNLT Pascal. - Nhập xuất liệu cho biến ghi

- Tham chiếu đến trường kiểu ghi. - Sử dụng kiểu ghi để giải số toán.

3.Thái độ:Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,

II PHƯƠNG PHÁP: Nêu giải vấn đề + Thuyết trình III.CHUẨN BỊ:

1 Giáo viên: Giáo án, SGK, máy chiếu. 2 Học sinh: Chuẩn bị nhà.

IV TIẾN TRÌNH LÊN LỚP: 1.ỔN ĐỊNH LỚP(1’):

KIỂM TRA BÀI CŨ: Không 3 Nội dung mới:

*Đặt vấn đề(2’): Đưa lên máy chiếu toán cần giải sau: Viết chương trình dùng để quản lí thí sinh kỳ thi tuyển sinh

- Làm để quản lý toàn thông tin học sinh ?

- Mỗi thơng tin có kiểu liệu ?

HS : Có thể quản lý kiện mảng chiều

=>Ngôn ngữ lập trình bậc cao có cách tốt để quản lý liệu -> Bản ghi

*Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC Hoạt động 1(10’)

(Giới thiệu số khái niệm)

Gv:Đưa bảng điểm SGK lên máy chiếu, rõ :

-Mỗi hàng gọi bảng ghi -Mỗi cột trường

Hs:Lắng nghe quan sát bảng máy chiếu để Hs biết rõ

I.Một số khái niệm:

(83)

Gv:

Bảng liệu thường xác định giá trị nào?

Hs:Dựa vào bảng SGK để trả lời câu hỏi Gv:

Đưa lên máy chiếu thuộc tính bảng ghi Hoạt động 2(15’)

(Khai báo biến bảng ghi)

Gv: -Mỗi NN có cách khai báo bảng ghi khác

-Ngôn ngữ Pascal không cho bạn khai báo biến ghi trực tiếp mà phải khai báo biến ghi thông qua khai báo kiểu ghi

-Trước hết phải khai báo kiểu ghi sau biến ghi khai báo thơng qua kiểu ghi

GV : Làm để khai báo nhiều biến ghi có kiểu ?

HS : GV gợi ý để học sinh đưa sử dụng kiểu mảng phần tử mảng có kiểu ghi

Gv:Ví dụ khai báo ghi

+Khai báo kiểu ghi để xử lý bảng kết thi học sinh

Mỗi ghi bao gồm : Họ tên học sinh (Hoten), ngày tháng năm sinh(Ngaysinh), Giới tính (NamNu), điểm thi môn học sinh (Toan, Ly, Hoa, Van, Su, Dia,Tin)

Hãy xác định kiểu liệu cho trường (Mỗi nội dung trường ghi)? Hs:Vận dụng để viết cách khai báo

GV : Khi có nhu cầu thay đổi thông tin trường, làm để truy cập thông tin vào trường ghi ?

Hs:Mỗi ngơn ngữ có cách truy cập khác thường viết :

<Tên biến ghi>.<tên trường> GV: Đưa số ví dụ

Hoạt động 2(8’)

(Giới thiệu cách gán giá trị)

Gv: Dựa vào cách khai báo biến ghi

- Bản ghi thường gọi Record, Record lưu trữ liệu đối tượng cần quản lí

- Mỗi thuộc tính đối tượng tương ứng với trường ghi Các trường khác có liệu khác

- Các ngơn ngữ lập trình thường cho cách để xác định :

+ Tên kiểu ghi + Tên trường

+ Kiểu liệu trường + Cách khai báo biến +Cách tham chiếu đến trường <Tên biến ghi> <Tên trường> II.Khai báo biến bảng ghi:

1.Cách khai báo kiểu :

Type <Tên kiểu ghi>=Record <Tên trường 1> : <Kiểu trường 1>; ……… ……… <Tên trường n> : <Kiểu trường n>; End ;

Var <Tên biến> : <Tên kiểu ghi>;

Var

<Tên mảng> : Array[1 n] Of <Tên kiểu ghi> ;

2.Ví dụ:

Type Hocsinh = Record Hoten : String[30] ; Ngaysinh : String[10] ; NamNu :Boolean ;

Toan,Ly, Hoa, Van, Su, Dia : Real ;

End ;

Var A, B : Hocsinh ;

Lop : Array[1 100] Of Hocsinh ; Ví dụ :

(84)

cho biết cách gán A:=B B:=A hay sai?

Hs:A, B kiểu nên gán cho

Gv:Giới thiệu đưa lên máy chiếu nội dung gán

Lop[i].Toan Lop[i].Ly

……… với i số mảng Lop

Để truy cập vào trường ghi, ta viết:

<Tên biến ghi> <Tên trường> III.Gián giá trị:

Có cách để gán giá trị cho ghi

- Dùng lệnh gán trực tiếp : Nếu A, B hai ghi kiểu ta gán giá trị A cho B câu lệnh gán:

Vd : B := A ; A := B ;

- Gán giá trị cho trường Dùng câu lệnh gán gán giá trị cho trường nhập từ bàn phím

A.Hoten := ‘Nguyen Van Tuan’ ; Readln(a.Ngaysinh);

Chương trình xử lý bảng kết thi 4 CỦNG CỐ(8'):

Hãy lập chương trình nhập từ bàn phím danh sách lớp 15 học sinh vào mảng bảng ghi Sau hiển thị danh sách lên hình, người dịng?

V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

(85)

TIẾT 32 KIỂU BẢN GHI ( Tiết 2/2 ) Ngày soạn: 10/01/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC ĐÍCH: 1.Kiến thức:

- Ôn lại kiến thức ghi: cú pháp khai biến, cách tham chiếu, số câu lệnh liên quan đến thao tác xử lý ghi

- Nắm số thuật toán: Nhập thông báo kết trường, xếp liệu 2.Kỹ năng:

- Khai báo kiểu ghi NNLT Pascal - Nhập xuất liệu cho biến ghi

- Tham chiếu đến trường kiểu ghi - Sử dụng kiểu ghi để giải số toán

3.Thái độ:Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,

II.PHƯƠNG PHÁP: Vấn đáp tái + Thảo luận nhóm III CHUẨN BỊ:

1 Giáo viên: Giáo án, SGK, máy chiếu, giấy A0 bút Học sinh: Chuẩn bị nhà

IV TIẾN TRÌNH LÊN LỚP: ỔN ĐỊNH LỚP(1’): KIỂM TRA BÀI CŨ(5'):

1.Hãy nêu cú pháp khai báo biến ghi? 2.Hãy khai báo biến ghi ví dụ sau:

BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008

TT Họ tên năm sinh Toán Lý Hoá Văn TB Xếp loại

1 n

3 BÀI MỚI: * Đặt vấn đề(1’):

Kiểu liệu ghi dùng để mô tả đối tượng có số thuộc tính mà thuộc tính có kiểu liệu khác nhau, nghiên cứu lý thuyết kiểu ghi tiết trước Hôm vận dụng kiểu ghi để làm số tập

*.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(10’)

(Giới thiệu cách truy xuất đến trường) Gv:

Bài tập 11/80(SGK):

Lưu ý vận dụng tập tiết 34

(86)

-Yêu cầu Hs đọc câu hỏi tập 11/80

-Yêu cầu Hs xem lại ví dụ trả lời câu hỏi sau:

Hãy xem ví dụ SGK bổ sung thêm đoạn chương trình đưa danh sách học sinh có xếp loại A?

Hs:Đọc đề kết hợp với ví dụ SGK để sửa lại chương trình

Gv:

-Phân tích câu lệnh Hs đưa ra=>Kết luận chương trình cụ thể

-Đưa tồn chương trình lên máy chiếu chạy vài test để kiểm chứng thuật toán

Hoạt động 2(24’)

(Rèn luyện tư lập trình)

Gv:Đưa câu hỏi tập lên máy chiếu Y/c học sinh đọc

Hãy nêu cách tổ chức liệu cho tập 2? Hs:Lên bảng viết cách khai báo biến ghi Gv:Tổ chức hoạt động nhóm sau:

+Nhóm 1: Viết đoạn chương trình nhập Họ tên, DTBHK1 DTBHK2 học sinh

+Nhóm 2:Viết đoạn chương trình tính TBCN xếp loại

+Nhóm3:Viết đoạn chương trình xếp theo thứ tự tăng dần cột điểm TBCN

+Nhóm 4:Xuất kết theo bảng sau: TT Họ

tên

DHK1 DHK2 DCN XL

2 n

Hs: Thảo luận theo nhóm phân cơng Gv:

-Y/c nhóm trình bày giấy A0

-Sau thảo luận nhóm xong nhóm lên bảng trình bày, nhóm khác bổ sung -Sau nhóm bổ sung thi Gv nhận xét phân tích đoạn chương trình=>Đưa chương tình cụ thể sau lên máy chiếu chạy thử vài Test để kiểm chứng thuật toán

(ở 13) lệnh cần thiết để chương trình đưa danh sách học sinh xếp loại A

Writeln(' TT ',' Ho va Ten ', ' Xloai ');

For i:=1 to n

If lop[i].xeploai='A' Then Begin

Write(i:4);

Write(Lop[i].ten:30); Write(Lop[i].Xeploai); Writeln;

End;

Bài tập 2/145(SBT Pascal5.5):

Viết chương trình nhập họ tên, điểm DHK1 DHK2 Hs lớp

a.Tính TBCN xếp loại

b Xếp hạng theo thứ tự tăng dần cột điểm TBCN học sinh

c.Thông báo theo bảng sau theo thứ tự xếp cột điểm TBCN

TT Họ

tên DHK1 DHK2 DCN XL

(87)

*Chương trình:

Type Bdiem=Record Hoten:String;

DHK1,DHK2,TBCN:Real; Xeploai:String[5];

End;

Var Hs:Array[1 60] Of Bdiem; I,j,n:Byte;

Tg:Bdiem; Begin

Write('Nhap so luong Hs n='); Readln(n); For i:=1 To n Do

With Hs[i] Do Begin

Write('Nhap Ho ten',i); Readln(Hoten); Write('NhapTBHK1',i); readln(DHK1); Write('NhapTBKT2',i); Readln(DHK2); End;

{Tinh TB Ca nam va Xep loai} For i:=1 To n Do

Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3; For i:=1 To n Do

With Hs[i] Do Begin

If TBCN>=8.0 Then Xeploai:='Gioi';

if (TBCN>=6.5)and(TBCN<8.0) Then Xeploai:='Kha'; If (TBCN>=5) and (TBCN<6.5) Then Xeploai:='TB'; If (TBCN>=3.5) and (TBCN<5) Then Xeploai:='Yeu'; If TBCn<3.5 Then Xeploai:='kem';

End;

For i:=1 to n-1 Do For j:=i+1 to n Do

If Hs[i].TBCN> Hs[j].TBCN Then Begin

tg:=Hs[i]; Hs[i]:=Hs[j]; Hs[j]:=tg; End;

{Thong bao ket qua nhu sau}

Writeln(' ');

Writeln('| TT |','| Ho ten |','| TBCN |','| xeploai |'); Writeln(' ');

For i:=1 to n With Hs[i] Do

Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10); Readln;

(88)

4 CỦNG CỐ(3'): Đưa lên máy chiếu ví dụ sau: -Cần nắm:

+Cách khai báo biến ghi

+Cách truy xuất vào giá trị trường

+Cách nhập xuất trường ghi +Một số câu lệnh

-Hai thuật tốn: Sắp xếp, tính tốn

5 DẶN DỊ(1’): Đưa lên hình máy chiếu sau: - Câu hỏi ôn tập:

1 Câu lệnh rẽ nhánh lặp?

2.Khai báo kiểu mảng chiều, hai chiều, kiểu xâu? Các đoạn chương trình nhập xuất

3.Khai báo kiểu ghi? Các đoạn chương trình nhập xuất ghi? 4.Xem lại tập từ 1->11/80(SGK)

V TỰ RÚT KINH NGHIỆM

(89)

BÀI TẬP (T1) Ngày soạn: 15/01/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC ĐÍCH:

1.Kiến thức:

- Ôn lại kiến thức ghi: cú pháp khai biến, cách tham chiếu, số câu lệnh liên quan đến thao tác xử lý ghi.

- Nắm số thuật tốn: Nhập thơng báo kết trường, xếp dữ liệu.

2.Kỹ năng:

- Khai báo kiểu ghi NNLT Pascal. - Nhập xuất liệu cho biến ghi

- Tham chiếu đến trường kiểu ghi. - Sử dụng kiểu ghi để giải số toán.

3.Thái độ:Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,

II PHƯƠNG PHÁP: Vấn đáp tái + Thảo luận nhóm III CHUẨN BỊ:

1 Giáo viên: Giáo án, SGK, máy chiếu, giấy A0 bút.

2 Học sinh: Chuẩn bị nhà.

IV TIẾN TRÌNH LÊN LỚP: ỔN ĐỊNH LỚP(1’): KIỂM TRA BÀI CŨ(5'):

1.Hãy nêu cú pháp khai báo biến ghi? 2.Hãy khai báo biến ghi ví dụ sau:

BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008

TT Họ tên năm sinh Toán Hoá Văn TB Xếp loại 1

n

3.BÀI MỚI:

* Đặt vấn đề(1’):

Kiểu liệu ghi dùng để mơ tả đối tượng có số thuộc tính mà thuộc tính có kiểu liệu khác nhau, nghiên cứu lý thuyết kiểu ghi tiết trước Hôm vận dụng kiểu ghi để làm số tập.

* Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC Hoạt động 1(10’)

(Giới thiệu cách truy xuất đến trường)

Bài tập 11/80(SGK):

(90)

Gv:

-Yêu cầu Hs đọc câu hỏi tập 11/80 -Yêu cầu Hs xem lại ví dụ trả lời câu hỏi sau:

Hãy xem ví dụ SGK bổ sung thêm đoạn chương trình đưa danh sách học sinh có xếp loại A?

Hs:Đọc đề kết hợp với ví dụ SGK để sửa lại chương trình

Gv:

-Phân tích câu lệnh Hs đưa ra=>Kết luận chương trình cụ thể

-Đưa tồn chương trình lên máy chiếu chạy vài test để kiểm chứng thuật toán

Hoạt động 2(24’)

(Rèn luyện tư lập trình)

Gv:Đưa câu hỏi tập lên máy chiếu Y/c học sinh đọc

Hãy nêu cách tổ chức liệu cho tập 2? Hs:Lên bảng viết cách khai báo biến ghi

Gv:Tổ chức hoạt động nhóm sau: +Nhóm 1: Viết đoạn chương trình nhập Họ tên, DTBHK1 DTBHK2 học sinh

+Nhóm 2:Viết đoạn chương trình tính TBCN xếp loại

+Nhóm3:Viết đoạn chương trình xếp theo thứ tự tăng dần cột điểm TBCN +Nhóm 4:Xuất kết theo bảng sau:

TT Họ

tên DHK1 DHK2 DCN XL

1 n

Hs: Thảo luận theo nhóm phân cơng Gv:

-Y/c nhóm trình bày giấy A0

-Sau thảo luận nhóm xong nhóm lên bảng trình bày, nhóm khác bổ sung

-Sau nhóm bổ sung thi Gv nhận xét phân tích đoạn chương trình=>Đưa chương tình cụ thể sau lên máy chiếu chạy thử vài Test để kiểm chứng

Hãy bổ sung thêm vào chương trình Xeploai (ở 13) lệnh cần thiết để chương trình đưa danh sách học sinh xếp loại A

Writeln(' TT ',' Ho va Ten ', ' Xloai ');

For i:=1 to n

If lop[i].xeploai='A' Then Begin

Write(i:4);

Write(Lop[i].ten:30); Write(Lop[i].Xeploai); Writeln;

End;

Bài tập 2/145(SBT Pascal5.5):

Viết chương trình nhập họ tên, điểm DHK1 DHK2 Hs lớp

a.Tính TBCN xếp loại

b Xếp hạng theo thứ tự tăng dần cột điểm TBCN học sinh

c.Thông báo theo bảng sau theo thứ tự xếp cột điểm TBCN

TT Họ

tên DHK1 DHK2 DCN XL

(91)

thuật tốn

*Chương trình:

Type Bdiem=Record Hoten:String;

DHK1,DHK2,TBCN:Real; Xeploai:String[5];

End;

Var Hs:Array[1 60] Of Bdiem; I,j,n:Byte;

Tg:Bdiem; Begin

Write('Nhap so luong Hs n='); Readln(n); For i:=1 To n Do

With Hs[i] Do Begin

Write('Nhap Ho ten',i); Readln(Hoten); Write('NhapTBHK1',i); readln(DHK1); Write('NhapTBKT2',i); Readln(DHK2); End;

{Tinh TB Ca nam va Xep loai} For i:=1 To n Do

Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3; For i:=1 To n Do

With Hs[i] Do Begin

If TBCN>=8.0 Then Xeploai:='Gioi';

if (TBCN>=6.5)and(TBCN<8.0) Then Xeploai:='Kha'; If (TBCN>=5) and (TBCN<6.5) Then Xeploai:='TB'; If (TBCN>=3.5) and (TBCN<5) Then Xeploai:='Yeu'; If TBCn<3.5 Then Xeploai:='kem';

End;

For i:=1 to n-1 Do For j:=i+1 to n Do

If Hs[i].TBCN> Hs[j].TBCN Then Begin

tg:=Hs[i]; Hs[i]:=Hs[j]; Hs[j]:=tg; End;

{Thong bao ket qua nhu sau}

Writeln(' ');

Writeln('| TT |','| Ho ten |','| TBCN |','| xeploai |'); Writeln(' ');

For i:=1 to n do With Hs[i] Do

Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10); Readln;

End.

4 CỦNG CỐ(3'): Đưa lên máy chiếu ví dụ sau: -Cần nắm:

+Cách khai báo biến ghi

(92)

+Cách nhập xuất trường ghi +Một số câu lệnh

-Hai thuật tốn: Sắp xếp, tính tốn

5 DẶN DỊ(1’): Đưa lên hình máy chiếu sau: - Câu hỏi ôn tập:

1 Câu lệnh rẽ nhánh lặp?

2.Khai báo kiểu mảng chiều, hai chiều, kiểu xâu? Các đoạn chương trình nhập xuất

3.Khai báo kiểu ghi? Các đoạn chương trình nhập xuất ghi? 4.Xem lại tập từ 1->11/80(SGK)

V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

(93)

TIẾT 34: BÀI TP THỰC HÀNH (T2)

Ngày soạn: 25/01/2010 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I Mục tiêu học 1 Kiến thức

- Ôn lại kiến thức chương IV

- Kiểu mảng: khai báo, truy xuất đến phần tử biến mảng

- Kiểu xâu: khai báo, thao tác xử lý xâu Hàm thủ tục sử dụng xâu - Kiểu ghi: khai báo, truy xuất đến trường kiểu ghi

2 kĩ năng:vận dụng kiểu liệu có cấu trúc vào làm tập Rèn luyện kĩ tư thuật tốn lập trình

3 Thái độ :nghiêm túc, hứng thú với môn học II Phương pháp, phương tiện dạy học

 Phương pháp: thuyết trình, câu hỏi gợi mở, hướng dẫn làm tập  Phượng tiện dạy học: bảng đen

III Chuẩn bị giáo viên học sinh  Giáo viên: giáo án, phấn, sổ điểm  Học sinh: sgk, bút

IV Tiến trình lên lớp Ổn định lớp học Kiểm tra cũ

Câu hỏi: em nêu kiểu liệu có cấu trúc học Pascal? Trả lời: Kiểu mảng, kiểu xâu, kiểu ghi

3 Nội dung học

a) Ma trận kiến thức

Đề mục Biết Hiểu Áp dụng

Kiểu mảng 1.Mảng chiều

- khái niệm: dãy hữu hạn các phần tử kiểu.

- Các quy tắc xác định kiểu mảng chiều

- Khai báo mảng chiều - tham chiếu đến phần tử thứ i mảng chiều.

2 Mảng chiều - khái niệm

- cách xác định kiểu liệu là kiểu mảng chiều

- cách khai báo

- Truy xuất đến phần tử i,j của mảng chiều.

Nắm kiểu liệu mảng một chiều.

biết cách khai báo kiểu liệu mảng chiều.

Nhập, in truy xuất phần tử mảng chiều

Khái niệm mảng chiều, cách khai báo mảng chiều.

sử dụng kiểu mảng chiều khi nào.

Khai báo kiểu mảng 1 chiều mảng chiều để giải số tập. Cài đặt số thuật toán liên quan đến kiểu dữ liệu kiểu mảng.

Kiểu Xâu Khái niệm xâu dãy kí tự

trong bảng mã ASCII Mỗi kí tự phần tử xâu

Nắm kiểu liệu kiểu xâu.

Cách khai báo biến kiểu xâu.

(94)

- Cách xác định kiểu liệu là kiểu xâu

- Khai báo biến kiểu xâu - Các thao tác xử lý xâu - Các hàm thủ tục trên xâu

Phép gán xâu so sánh xâu. Hiểu ý nghĩa các hàm sử dụng kiểu xâu.

Sử dụng mục đích của hàm thủ tục trên xâu việc giải quyết toán cụ thể.

Kiểu bản

ghi Khái niệm ghi dùng đểmô tả đối tượng có nhiều thuộc tính Nhưng thuộc tính có kiểu liệu khác nhau.

- thuộc tính gọi 1 trường

- Cách xác định kiểu liệu bản ghi.

- Tham chiếu đến trường của ghi.

- Khai báo biến kiểu ghi. - Phép gán giá trị kiểu bản ghi.

Khái niệm kiểu ghi.

Khai báo kiểu liệu là kiểu ghi.

Cách truy xuất đến trường của biến kiểu ghi.

Phân biệt hai cách gán giá trị kiểu liệu kiểu bản ghi.

Khai báo kiểu liệu kiểu ghi cho bài toán cụ thể.

Sử dụng kiểu liệu kiểu bản ghi để giải bài tập liên quan đến nó.

b) Bài tập

Bài tập: nhập xâu st từ bàn phím Hãy thực cơng việc sau: - Xố hết kí tự trắng xâu

- Kiểm tra xem xâu có phải xâu đối xứng hay khơng

Hướng dẫn: sử dụng hàm length(st) thủ tục delete(st, n, m) để làm câu a

Tạo xâu cách đảo ngược xâu cũ Sau kiểm tra xâu xâu cũ xâu xâu đối xứng khơng ngược lại

V Củng cố dặn dò

- Các em nhà xem lại kiến thức học chương vừa qua làm hết tập có sách giáo khoa sách tập để tiết sau kiểm tra tiết

V TỰ RÚT KINH NGHIỆM

(95)

TIẾT 35 BÀI TẬP CHƯƠNG IV. Ngày soạn: 1/02/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I Mục tiêu:

1 Về kiến thức: Củng cố kiến thức về:

- Các quy tắc kiểu liệu có cấu trúc để thực liệu thực tế.

- Kiểu liệu có cấu trúc xây dựng từ kiểu liệu sở theo một số cách thức tạo kiểu ngơn ngữ lập trình Pascal quy định.

- Mỗi kiểu liệu có cấu trúc thường hữu ích việc giải số bài tập.

- Trong ngôn ngữ Pascal dùng mô tả kiểu liệu với từ khoá Type. 2 Về kĩ năng:

- Rèn luyện kĩ khai báo kiểu liệu có cấu trúc (với Pascal, sử dụng thành thạo từ khoá Var, Type).

- Sử dụng thành thạo thao tác vào/ phép toán thành phần cơ sở.

3 Về tư thái độ:

- Thái độ học tập tích cực, ham thích lập trình.

- Tiếp tục hình thành xây dựng phẩm chất cần thiết người lập trình. II Chuẩn bị:

- GV: Computer, Projecter. - HS: Chuẩn bị tập nhà. III Phương pháp:

- Nêu vấn đề, Dẫn dắt, gợi ý

IV Tiến trình hoạt động:

Tiết 1:

+ Hoạt động 1: Giải tập số trang 79 Sách GK Tin học lớp 11

Hoạt động GV HS Nội dung

HĐTP1:

H1: Sử dụng kiểu liệu cách khai báo? - Trả lời:

Kiểu mảng chiều:

Var A:array [1 100] of integer; H2: Khai báo biến nào?

- Yêu cầu HS viết chương trình nhập mảng A - Chỉnh sửa làm HS

H3: Số chẵn số nào?

- Nếu có số lượng số chẵn dãy tìm số lượng số lẻ hay khơng? - Nếu tìm cách nào?

H4: Sử dụng câu lệnh để viết?

(96)

Hoạt động GV HS Nội dung - u cầu HS hồn thành chương trình câu a

- Nhận xét, chỉnh sửa làm HS

- Nếu có số lượng số chẵn dãy tìm số lượng lẻ cách: n - số lượng số chẵn

TL: If then HĐTP 2:

H1: Nêu thuật toán kiểm tra số có phải số ngun tố hay khơng?

- u cầu HS viết chương trình dựa theo thuật tốn

Hd: Sử dụng câu lệnh nào?

- Yêu cầu HS hồn thành đoạn chương trình câu b - Nhận xét, đánh giá:

- Gợi ý để HS kết hợp hai đoạn chương trình thành chương trình hoàn chỉnh cho

+ Hoạt động 2: Giải tập trang 79 Sách GK Tin học lớp 11

Hoạt động GV HS Ghi bảng

- Yêu cầu HS liệt kê số hạng đầu dãy Fiponaci

- Liệt kê: 0, 1, 1, 2, 3,

H1: Đoạn chương trình nhập từ bàn phím số nguyện dương nào?

H2: Số hạng tổng quát thứ n nào? TL: Fn = Fn-1 + Fn-2

- Gợi ý: Để viết chương trình ta cần biến phụ?

H3: sử dụng câu lệnh này? TL: Dùng biến phụ (F1, F2)

- Yêu cầu HS viết chương trình tìm số hạng thứ n

- Gọi HS hoàn chỉnh lại chương trình - Nhận xét, chỉnh sửa, đánh giá làm

Chính xác hố 6/trang79

+ Hoạt động 3: Củng cố (2ph)

Cấu trúc lệnh: While For Dặn dò: - Về nhà làm tập

V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

(97)

TIẾT 36: Kiểm tra tiết

Ngày soạn: 5/02/2011 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I.Mục tiêu học Kiến thức

- Kiểm tra lại kiến thức học chương III Kĩ năng: rèn luyện kĩ làm kiểm tra

Thái độ: nghiêm túc, tuân thủ quy chế kiểm tra II Chuẩn bị giáo viên học sinh

 Giáo viên: đề kiểm tra  Học sinh: bút, sgk, ghi III Nội dung học

1 Ổn định lớp học 2 Đề kiểm tra Phần 1: trắc nghiệm

Câu 1: Chỉ số mảng kiểu ?

a)Kiểu số thực, kiểu logic b) Kiểu miền con, kiểu kí tự

c) Kiểu miền con, kiểu kí tự d) Kiểu số nguyên, ki ểu số thực e) a c

Câu 2: S1= ‘chao bạn’; S2 = ‘Xin ’ Kết thủ tục Insert (S2,S1,1) là: a ‘hao ban’ b ‘ Xin chao ban’ c ‘ chao ban xin’ d kết khác Câu 3: Giới hạn số chiều mảng ?

a 255 chiều b 256 chiều c Vô hạn d chiều Câu : Chức thủ tục Delete(st,vt,n) ?

a.Xoá xâu b Xoá n phần tử xâu c Chèn xâu d Tạo xâu Câu 5: Chương trình sau cho kết ?

Var a, b : String; Begin

Write(‘nhap xau ho ten thu nhat: ’); readln(a); Write(‘nhap xau ho ten thu hai : ’); readln(b); If length(a)> length(b) then write(a)

Else write(b); Readln

End

a)Xâu có độ dài lớn b) Độ dài lớn hai xâu c)Kí tự cuối xâu dài d) Kết khác

Câu 6: Trong ngơn ngữ lập trình Pascal, để tìm vi trí xuất xâu ‘hoa’ xâu S ta viết cách cách sau đây?

A S1:=’hoa’; i:=Pos(S1,’hoa’); B i:=Pos(‘hoa’,S); C i:=Pos(S,’hoa’); D i:=Pos(‘hoa’,’hoa’);

Câu 7: Trong ngơn ngữ lập trình Pascal, với xâu kí tự có phép tốn là? A Phép cơng, trừ, nhân, chia B Chỉ có phép cộng

(98)

A Mảng kí tự; B Dãy kí tự bảng mã ASCII; C Tập hợp chữ bảng chữ tiếng Anh;

D Tập hợp chữ chữ số bảng chữ tiếng Anh

Câu 9: Trong ngơn ngữ lập trình Pascal, với khai báo mảng A: Array[1 100, 100]of integer; việc truy xuất đến phần tử sau:

A A[i],[j] B A[i][j] C.A[i;j] D A[i,j]

Câu 10: Trong ngơn ngữ lập trình Pasca,l đoạn chương trình sau đưa hình kết gì?

For i:=10 to Write(i,’ ‘);

A 10 B Đưa 10 dấu cách C 10 D Không đưa kết Phần 2: Tự luận

Để quản lý việc bán hàng cửa hàng với thông tin mặt hàng: tên mặt hàng, giá trị mặt hàng, ngày sản xuất, ngày hết hạn sử dụng Hãy viết chương trình quản lý việc bán hàng với thơng tin n mặt hàng có cửa hàng với yêu cầu sau:

- Hãy khai báo kiểu liệu để quản lý n mặt hàng

(99)

Tiết 37 CHƯƠNG V : TỆP VÀ THAO TÁC VỚI TỆP § 14 KIỂU DỮ LIỆU TIỆP

§ 15 THAO TÁC VỚI TỆP !

Ngày soạn: 9/02/2011 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I Mục tiêu 1 Về kiến thức:

- Biết khái niệm kiểu liệu tệp.

- Biết khái niệm tệp định kiểu tệp văn bản. - Biết lệnh khai báo tệp kiểu tệp văn bản.

- Biết bước làm việc ví i tệp: gán tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp.

- Biết số hàm thủ tục chuẩn làm việc ví i tệp.

Về kỹ năng:

- Khai báo tên tệp

- Sử dụng số hàm thủ tục chuẩn làm việc ví i tệp.

Về thái độ:

- Ham thích mơn học, có tính kỷ luật cao tính thần làm việc theo nhóm. - Tiếp tục rèn luyện phẩm chất cần thiết người lập trình như: xem xét vấn đề cách cẩn thận, chu đáo, sáng tạo, khơng thỏa mãn ví i kết ban đầu đạt được,…

II Phương pháp, phương tiện dạy học - Phương pháp: thuyết trình, vấn đáp - Phương tiện: máy chiếu, máy tính. III Tiến trình dạy

1 Ổn định lớp: 2 Kiểm tra cũ:

Có pháp khai báo biến kiểu xâu, mảng chiều, chiều?

Những kiểu liệu lưu trữ RAM, tắt máy sao? 3 Giảng mới:

Tg HOẠT ĐỘNG GV & HS NỘI DUNG GV: Kiểu liệu mảng có giá trị là

một dãy hữu hạn liệu cùng kiểu Số phần tử mảng được hoàn toàn xác định khai báo mảng.Trong nhiều toán, cần phải lưu giữ liệu để sử dụng trong nhiều lần thực chương trình hoặc xử lí số lượng khơng xác định liệu kiểu Ví i

§ 14 KIỂU DỮ LIỆU TIỆP 1/ Vai trò tệp

Tệp dãy liệu kiểu, có đặc điểm sau:

- Dữ liệu kiểu tệp lưu trữ lâu dài nhớ (đĩa từ, CD, .) không bị tắt nguồn điện

(100)

những nêu phải sử dụng kiểu liệu tệp.

- Học sinh ý lắng nghe

- Kiểu liệu tệp có đặc điểm nào khác so ví i kiểu liệu đã biết.

GV: Dựa vào đâu để phân loại tệp, có loại tệp ?

GV: Khai báo tệp văn theo có pháp nào? Cho ví dụ

- Cho biết thao tác liên quan đến tệp văn bản

-Đó theo tác gắn tên tập

-Trong thao tác thao tác nào ln phải có theo tác ví i tệp?

-Ý nghĩa hàm eof, eoln ?

tệp lớn phụ thuộc vào dung lượng đĩa.

2/ Phân loại tệp

* Xét theo tổ chức liệu có 2 loại:

- Tệp văn bản: tệp mà liệu được ghi dạng kí tự theo mã ASCII.

- Tệp có cấu trúc: tệp mà thành phần tổ chức theo một cấu trúc định.

* Xét theo cách thức truy cập, có 2 loại:

- Tệp truy cập tuần tự - Tệp truy cập trực tiếp 3/ Thao tác ví i tệp văn bản a) Khai báo

Var <tên biến tệp>: text Ví du:

Var tep1,tep2: text; b) Thao tác ví i tệp

* Gắn tên tệp:

Assign(<biến tệp>,<tên tệp>);

* Mở tệp mới

Rewrite(<biến tệp>); * Mở tệp có

Reset(<biến tệp>); * Ghi liệu vào tệp

Write(<biến tệp>,<danh sách kết quả>);

Hoặc

Writeln(<biến tệp>,<danh sách kết quả>);

* Đọc tệp

Read(<biến tệp>,<danh sách biến>);

Hoặc

Readln(<biến tệp>,<danh sách biến>);

* Đóng tệp

Close(<biến tệp>); * Hàm EOF, EOLN

(101)

Eoln(<biến tệp>) có giá trị true nếu con trỏ tệp cuối dòng.

4 Củng cố:

Nhắc lại thao tác tệp văn bản? 5 Dặn dò:

+ Xem lại + Chuẩn bị 16

V TỰ RÚT KINH NGHIỆM SAU GIỜ GIẢNG:

(102)

Tiết 38:

§ 16 : VÍ DỤ LÀM QUEN VỚI TỆP

! Ngày soạn: 15/02/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I Mục tiêu

1 Về kiến thức:

- Biết khái niệm kiểu liệu tệp.

- Biết khái niệm tệp định kiểu tệp văn bản. - Biết lệnh khai báo tệp kiểu tệp văn bản.

- Biết bước làm việc ví i tệp: gán tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp.

- Biết số hàm thủ tục chuẩn làm việc ví i tệp.

Về kỹ năng:

- Khai báo tên tệp

- Sử dụng số hàm thủ tục chuẩn làm việc ví i tệp. - Viết chương trình đơn giản thao tác ví i tệp văn bản.

Về thái độ:

- Ham thích mơn học, có tính kỷ luật cao tính thần làm việc theo nhóm. - Tiếp tục rèn luyện phẩm chất cần thiết người lập trình như: xem xét vấn đề cách cẩn thận, chu đáo, sáng tạo, khơng thỏa mãn ví i kết ban đầu đạt được,…

II Phương pháp, phương tiện dạy học - Phương pháp: thuyết trình, vấn đáp - Phương tiện: máy chiếu, máy tính. III Tiến trình dạy

1 Ổn định lớp: 2 Kiểm tra cũ:

Khai báo biến tệp văn bản? Cho ví dụ? Các thao tác tệp văn bản? 3 Giảng mới:

Tg HOẠT ĐỘNG GV & HS NỘI DUNG GV: Yêu cầu học sinh xem đề bài

và chương trình SGK.

-Theo em phải sử dụng lệnh while để đọc nội dung tệp?

-Hoàn chỉnh câu trả lời học sinh.

-Khi thực hành phịng máy có thực hành ví dụ khơng? Lý do?

-Chúng ta khơng thể chạy chương

Ví dụ 1: (SGK TH11 Tr.87) Program khoang_cach; Var d:real;

f:text

X,y:integer; Begin

Assign(f,’TRAi.TXT’); Reset(f);

(103)

trình khơng có tệp TRAI.TXT

-Giải thích cho học sinh hiểu các lệnh sử dụng chương trình.

-Ở ví dụ có biến kiểu tệp -Có hai biến kiểu tệp f1,f2

- Giải thích cho học sinh cách lệnh và biểu thức sử dụng chương trình.

- Theo em ý nghĩa lệnh writeln(f2) gì?

Read(f,x,y);

d:=sqrt(x*x+y*y);

Writeln(‘Khoang cach:’,d:10:2);

End; Colse(f); End.

Ví dụ 2: (SGK TH11 Tr.88) Program Dientro;

Var a:array[1 5] of real; R1,R2,R3:real;

f1,f2:text i:integer; Begin

Assign(f,’RESIST.DAT’); Reset(f1);

Assign(f,’RESIST.EQU’); Reset(f2);

While not eof(f1) do Begin

Read(f1,R1,R2,R3);

a[1]:=R1*R2*R3/ (R1*R2+R1*R3+R2*R3);

a[2]:=R1*R2/(R1+R2)+R3; a[3]:=R1*R3/(R1+R3)+R2; a[4]:=R2*R3/(R2+R3)+R1; a[5]:=R1+R2+R3;

For i:=1 to do

Write(f2,a[i]:9:3,’ ‘); Writeln(f2);

End;

Colse(f1); close(f2); End.

4 Củng cố:

Để đọc toàn nội dung ta phải sử dụng lệnh nào? 5 Dặn dò:

+ Xem lại

+ Chuẩn bị tập trang 89.

V TỰ RÚT KINH NGHIỆM

(104)

Tiết 39:

BÀI TẬP Ngày soạn: 25/02/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC TIÊU

1 Kiến thức: Củng cố lại cho học sinh kiến thức chương

2 Kỹ năng:

 Nâng cao kĩ sử dụng số lệnh kiểu liệu tệp.  Gắn tên tệp; + Mở tệp; + Đóng tệp;

 Biết giải số tốn cụ thể thường gặp.

3 Thái độ: Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ động sáng tạo tìm kiếm kiến thức.

II PHƯƠNG PHÁP

 Thuyết trình giảng giải, kết hợp với hình ảnh trực quan.  Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời III CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1 Giáo viên: Giáo án, số tập đáp án.

2 Học sinh: SGK, sách tập tập làm nhà. IV TIẾN TRÌNH LÊN LỚP

1 Ổn định tổ chức (1p) 2 Kiểm tra cũ 3 Bài mới.

Tg Hoạt động giáo viên học sinh Nội dung kiến thức Hoạt động 1: Làm tập (Bài tập

về nhà)

Viết chương trình đọc hiển thị màn hình nội dung tập tin dạng văn bản, với tên tập tin nhập từ bàn phím (có kiểm tra tồn tập tin).

GV: Gọi học sinh lên bảng viết chương trình (Khơng cần kiểm tra tồn của tập tin).

GV: Có thể đưa số câu hỏi gợi ý sau:

- Biến tên tập tin có kiểu gì?

- Trước gắn tên tệp cho biến tệp ta cần phải làm gì?

- Để đọc liệu từ tệp ta cần dùng câu lệnh để mở tệp?

- Để đọc hết liệu tệp ta làm thế nào?

Program Doc_tep;

Var tep: string; ch: char; f: text; Begin

Write('Nhap ten File can doc: '); readln(tep);

Assign(f,tep); reset(f); While not eof(f) do

begin

read(f,ch); write(ch);

end;

close(f); readln;

(105)

- Khi xuất liệu hình? HS: Nghiên cứu, vận dụng kiến thức đã học để trả lời.

GV: Yêu cầu học sinh viết chương trình hồn thiện.

HS: Viết chương trình.

GV: Đánh giá, hồn thiện cho điểm. Hoạt động 2: Giáo viên hướng dẫn cho học sinh cách lồng hàm kiểm tra tồn tại tập tin vào chương trình và hồn thiện nội dung tập 1

Program Doc_tep;

Var tep: string; ch: char; f: text; FUNCTION

FileExists(FileTest: string): Boolean;

Var f: File; Begin

{$I-}

Assign(f,FileTest); reset(f); Close(f);

{$I+}

FileExists := (IOResult=0); end;

Begin

Write('Nhap ten File can doc: '); readln(tep);

if FileExists(tep) then begin

Assign(f,tep); reset(f);

While not eof(f) do begin

read(f,ch); write(ch); end; close(f); end

else writeln('File ',tep,' khong ton tai tren dia');

readln; End. Hoạt động 3: Kiểm tra 15’

Viết chương trình đọc tập tin dạng văn có đĩa Hiển thị màn hình nội dung tập tin dạng in hoa, (tên tập tin nhập từ bàn phím).

Var tep: string; ch: char; f: text; Begin

Write('Nhap ten File can doc: '); readln(tep);

Assign(f,tep); reset(f); While not eof(f) do

(106)

read(f,ch); write(upcase(ch));

end;

close(f); readln;

End. 4 Củng cố

5 Dặn dò (1p)

- Nghiên cứu trước nội dung 17: ‘Chương trình phân loại’. V Rút kinh nghiệm:

(107)

Tiết 40:

Bài 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 1) Ngày soạn: 2/03/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I Mục đích yêu cầu:

+ Biết CTC khối lệnh nhằm giải nêu để góp phần giải quyết một nêu lớn chương trình.

+ Biết viết nhứng chương trình dài, phức tạp thỡ việc sử dụng CTC cần thiết. + Biết lợi ích việc sử dụng CTC.

II Chuẩn bị:

Máy chiếu bảng phụ viết sẵn chương trình tinh_tong khơng sử dụng chương trình sử dụng chương trình con.

III Tiến trình dạy : 1 Ổn định lớp: 2 Kiểm tra cũ: 3 Nội dung mới:

Tg Hoạt động GV HS Nội dung

+ Hoạt động 1:(5’) Đặt vấn đề:

Các chương trình giải nêu phức tạp thường dài, gồm nhiều lệnh, đọc khó hình dung chương trình thực những cơng việc việc hiệu chỉnh chương trình khó khăn. Như làm nêu phức tạp dễ đọc, dễ hiểu, dễ hiệu chỉnh, dễ nâng cấp?

Do ta nghiên cứu vấn đề là CTC, để tìm hiểu CTC ?

+ Hoạt động 2 (17’)

Tỉnh tổng : an + bm + cp + dq

+ GV cho HS nêu ý tưởng nêu này

+ HS nêu ý tưởng giải nêu và trả lời

Có nghĩa chia nêu thành bài nêu nhỏ, làm làm mịn dần bài nêu -> thiết kế tốn từ trên

1.Khái niệm chương trình con Những tốn phức tạp có thể phân chia thành nhiều nêu nhỏ, mỗi nêu nhỏ phân chia thành nhiều nêu nhỏ, trình làm “mịn” dần toán vậy được gọi cách thiết kế từ trên xuống.

(108)

xuống.

+ GV phân tích: để giải BT MT có chia chương trình thành các khối, khối gồm nhiều lệnh giải bài tốn -> chương trình xây dựng từ các CTC.

+ Chương trình ?

+ Giáo viên chốt lại khái niệm trên bảng phụ, máy chiếu viết trên bảng.

+ Hoạt động 3 ( 17’)

+ GV dùng bảng phụ 1: bài tinh_tong ( không sử dụng CTC trang 92 SGK ), cho HS nhận xét đoạn chương trình

+ Chỳ ý bảng phụ trình chiếu, sau nhận xét.

+ GV chốt lại ý: đoạn CT có 4 đoạn lệnh tương tự

-> chương trình dài, khú theo dừi, khú hiệu chỉnh.

+ Dùng bảng phụ 2: Chương trình tinh_tong có sử dụng chương trình con.

+ HS nhận xét so sánh đoạn chương trình.

+ GV giải rhích : dùng lệnh: var j: integer;

tich:=1.0; for j:=1 to k do tich:=tich*x

+ Để tính luỹ thừa ta viết: Luythua(a,n), luythua(b,m), Luythua(c,p), luythua(d,q)

+ Và rừ đoạn lệnh thay thế CTC.

+ Từ điều nêu cho HS nêu các ích lợi CTC.

+ GV giải thích rừ ích lợi của việc sử dụng CTC

+ Các HS nêu lợi ích của CTC.

CTC này, cách lập trình gọi là chương trình có cấu trúc

Chương trình dóy lệnh mụ tả số thao tỏc định và có thể thực (được gọi ) từ nhiều vị trí chương trình.

* Lợi ích việc sử dụng CTC + Tránh việc phải viết viết lại nhiều lần dóy lệnh;

+ Hổ trợ việc thực chương trình lớn;

+ Phục vụ cho quỏ trình trừu tượng hố ;

+ Mở rộng khả ngôn ngữ; + Thuận tiện cho phát triển, nâng cấp chương trình;

4 Củng cố:

(109)

5 Dặn dò: Xem trước phần 2của 17.

V TỰ RÚT KINH NGHIỆM

(110)

Hàm Thủ tục TIẾT 41:

Bài 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 2) Ngày soạn: 06/03/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I: Mục tiêu : 1 Kiến thức:

Biết phân biệt hai loại chương trình con: Hàm thủ tục. Biết cấu trúc chương trình con.

Biết phân biệt tham số hình thức ví i tham số thực sự, biến cục ví i biến tồn cục.

2 Kỹ năng:

- Nhận biết hai loại tham số hình thức tham số thật sự. - Nhận biết phạm vi hoạt động biến toàn cục, biến cục bộ.

- Cách thực chương trinh con Thái độ:

- Phát huy tinh thần học tập theo nhóm. II Đồ dùng dạy học:

-GV: Bảng phụ, máy chiếu(nếu có ) -HS: SGK, sách tập

IV Tiến trình học. 1 ổn định :

2 Bài cũ : Câu 1: Trình bày khái niệm chương trình ?.

Câu 2: Mục đích sử dụng chương trình ? 3 Bài giảng :

Tg Hoạt động GV & HS Nội dung ĐVĐ: Chúng ta biết chương trình

con ? Lợi ích việc sử dụng chương trình lập trình. Nhưng ta chưa biết chương trình chương trình có cấu trúc thế nào? Và phân loại nào?.

-Trong nhiều ngơn ngữ lập trình chương trình phân làm mấy loại?

-Trong ngôn ngữ pascal em cho biết số hàm thủ tục chuẩn mà em biết?

-HS trả lời câu hỏi:

+ Hàm: Sin(x), sqrt(x),length(x) + Writeln, readln,

-Xét hàm sin(x)

2 Phân loại cấu trúc chương trình con.

a Phân loại:

+Hàm: Là chương trình thực hiện một số thao tác Trả lại giá trị qua tên hàm.

+Thủ tục: Là chương trình thực hiện số thao tác Khơng trả lại giá trị qua tên thủ tục. b Cấu trúc chương trinh con <Phần đầu>

[<Phần khai báo >] <Phần thân > +Phần đầu:

(111)

Tg Hoạt động GV & HS Nội dung

Ví i x=/6 giá trị hàm sin(x) cho

kết bao nhiờu ? -HS trả lời câu hỏi:

Sin(x)=1/2

GV nhận xét : Sau thực tính tốn hàm sin(x) ví i x= /6 cho giá

trị 1/2

Vậy em cho biết hàm có đặc điểm gì ?(hay hàm ?).

-Xét thủ tục Writeln, Writeln(‘‘xin chao’’)

Thủ tục Writeln(‘xin chao’) làm ? cho kết ? có trả giá trị nào khơng ?.

Vậy em cho biết thủ tục có đặc điểm ?(hay hàm ?).

ĐVĐ : Trên sở phân loại hàm và thủ tục ta tìm hiểu cấu trúc của hàm thủ tục (Chương trình con) tổ chức ?

-Các em cho biết chương trình chính gồm phần ?(kiến thức củ). -Học sinh trả lời:

[<Phần khai báo >] <Phần thân >

-Trong chương trình cấu trúc của nú gồm phần ?

-Học sinh trả lời:

<Phần đầu>

[<Phần khai báo >] <Phần thân >

-Về chương trình và chuơng trình có tương tự nhau khơng ?

-Phần đầu dùng để làm ?

-Phần Khai báo dùng để làm ? -Phần thân dùng để làm ?

Xét ví dụ : Tính luỹ thừa : luythua= xk tên chương trình có thể đặt luythua, tên biết chưa dữ liệu vào x, k Vậy tính xk ta viết luythua(x,k) Khi x, k tham số hình thức.

-Vậy tham số hình thức ?

+ Nếu hàm phải khai báo kiểu dữ liệu chi giá trị trả hàm.

+ Nhất thiết phải có +Phần khai báo :

+ Khai báo biến cho liệu vào/ra, biến dùng trong chương trình con.

+Phần thân :

+ Gồm dãy lệnh thực để từ iệu vào/ra ta nhận liệu ra hay kết qủa mong muốn.

*Khái niệm biến:

- Tham số hình thức: gồm biến được khai báo cho liệu vào/ra.

- Biến cục bộ: Gồm biến khái được khai báo chương trình con.

- Biến tồn cục: Gồm biến khái được khai báo chương trình chính

*Phạm vi hoạt động biến: -Biến cục bộ:

+ Chỉ sử dụng chương trình cuả nú mà thụi.

+ Khơng thể sử dụng biến cục bộ cuả chương trình cho chương trình chương trình con khác.

-Biến toàn cục:

+ Được sử dụng chương trình sử dụng trong chương trình con.

c Thực chương trình con: -Để thực gọi chương trình ta thực lệnh theo có pháp sau

Có pháp :

<tên chương trình con>(<tham số thực sự>)

(112)

Tg Hoạt động GV & HS Nội dung ĐVĐ : Đối biến cục bộ, ,biến toàn cục

thỡ phạm vi hoạt động thế nào ?

ĐVĐ : Sau có chương trình con, muốn thực chuơng trình con đó thỡ ta làm ?

-Hãy cho ví dụ lệnh gọi CTC ?

Xét ví dụ :CTC luythua(x,k) ví i x,k tham số hình thức.

Ví i biến : a =2, b=3

Lệnh gọi CTC Luythua(a,b) đó tham số hình thức x,k nhận giá trị tương ứng tham số thực a,b -Học sinh đọc sách GK trả lời. 4 Cũng cố kiến thức:

-CTC gồm: Hàm thủ tục. -Cấu trúc chương trinh con. -Biến cục bộ, biến toàn cục.

(113)

Tiết 42:

Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T1)

Ngày soạn: 10/05/2011 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

A MỤC TIÊU

1 Kiến thức: - Giúp học sinh nắm được:

- Cấu trúc chung thủ tục chương trình. - Phân biệt tham số tham trị.

- Các khái niệm biến toàn cục biến cục bộ.

2 Kỹ năng: - Nhận biết thành phần đầu thủ tục. - Nhận biết hai loại tham số hình thức đầu hai thủ tục.

- Biết cách khai báo hai loại chương trình với tham số hình thức của chúng.

- Cách viết lời gọi chương trình thân chương trình chính. - Phân biệt khác hàm thủ tục.

- Phân biệt sử dụng biến toàn cục biến cục bộ.

3 Thái độ: - Tiếp tục rèn luyện phẩm chất người lập trình tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tn thủ theo u cầu việc chung.

- Có ý thức lưu trữ liệu cách khoa học. B PHƯƠNG PHÁP

- Thuyết trình giảng giải, kết hợp hình ảnh trực quan.

- Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm

C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1 Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn 2 Học sinh: SGK, vở.

D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p) II Kiểm tra cũ (5p)

Câu hỏi: Hãy nêu khái niệm, phân loại chức loại chương trình con. Đáp án: - Chương trình dãy lệnh mơ tả số thao tác định có thể thực (được gọi) từ nhiều vị trí chương trình.

* Hàm (function): thực số thao tác trả giá trị kiểu đơn giản thông qua tên hàm.

* Thủ tục (Procedure): thực thao tác định không trả giá trị qua tên nó.

III Bài mới

1 Đặt vấn đề (1p)

(114)

khác với chương trình khơng? Bài học hơm tìm hiểu nội dung này.

2 Triển khai bài

Tg Hoạt động giáo viên học sinh

Nội dung kiến thức Hoạt động 1: (theo nhóm)

(12p)

GV: Giới thiệu tốn ví dụ mở đầu Giới thệu cho học sinh cấu trúc thủ tục, vị trí khai báo thủ tục, lời gọi thủ tục.

HS: Quan sát, theo dõi ví dụ.

GV: Vị trí thủ tục nằm phần nào chương trình chính? HS: Ở phần khai báo, sau phần khai báo biến.

GV: Cấu trúc thủ tục gồm có mấy phần?

HS: Ba phần: tên, khai báo, phần than.

GV: Phân biệt giống khác nhau chương trình và chương trình con.

HS: Giống: cấu trúc chung.

Khác: phần tên, từ khoá đặt tên Prcedure có tham số.

GV: Yêu cầu học sinh xác định cấu trúc chung thủ tục.

- Lời gọi thủ tục ta viết phần nào trong chương trình?

HS: Trong phần thân chương trình.

§18 Ví dụ cách viết sử dụng chương trình con

1 Cách viết sử dụng thủ tục a Cấu trúc thủ tục

Procedure <tên thủ tục>[<danh sách tham số>];

[<Phần khai báo>] Begin

[<Dãy lệnh>] End;

* Trong đó:

- Phần đầu gồm tên dành riêng và tên thủ tục, danh sách tham số (có thể có khơng);

- Phần khai báo: dùng để xác định các hằng, kiểu, biến có thể xác định chương trình khác được sử dụng thủ tục.

- Dãy câu lệnh viết cặp tên dành riêng Begin End tạo thành thân thủ tục.

Hoạt động 2: (Theo nhóm) (10p) GV: Chiếu ví dụ 2, u cầu học sinh nhận xét thủ tục ve_HCN ví dụ này với ví dụ trước.

* Tổ chức hoạt động nhóm; - Phân nhóm từ 4-6 em

- Công việc: Xác định chất thủ tục ve_HCN;

- Câu hỏi: câu lệnh thực vẽ cạnh trên, hai cạnh bên câu lệnh nào thực vẽ cạnh dưới.

- Kết thúc hoạt động: thu kết của

b Ví dụ thủ tục * Ví dụ 1;

Program VD_thutuc2; Uses crt;

Var a, b, i: integer;

Procedure Ve_HCN(chdai,

chrong: integer); Var i,j: integer; Begin

{Ve canh tren cua hinh chu nhat}

(115)

các nhóm, u cầu nhóm trình bày kết nhóm.

- Cho nhóm nhận xét kết bài làm nhau.

- GV: nhận xét kết đưa kết luận (có thể cho điểm nhóm nếu bài làm tốt)

GV: Trong chương trình ta vẽ tất cả thủ tục.

GV: Giới thiệu tham số giá trị bvà tham số biến.

write(‘*’); Writeln;

For j:=1 to chrong-2 do write(‘ ’);

Begin

Write(‘*’);

For i:=1 to chdai-2 do write(‘ ’);

Writeln(‘*’); End;

For i:=1 to chdai do write(‘*’);

Writeln; End;

BEGIN {Bat dau chuong trinh chinh}

Clrscr;

Ve_HCN(25,10); Writeln; Writeln; Ve_HCN(5,10); Readln;

Clrscr; a:=4; b:=2; For i:=1 to do

Begin

Ve_HCN(a,b); Readln; clrscr; a:=a*2; b:=b*2; end;

Readln; END.

* Tham số giá trị: có hai chức năng

- Đưa liệu vào cho chương trình con;

- Đưa liệu chương trình con tìm ra.

* Tham số biến: lệnh gọi thủ tục, tham số hình thức được thay tham số thực sự tương ứng tên biến chứa liệu gọi các tham số biến.

Hoạt động 3: (Chung lớp) (10p) GV: Chiếu VD_thambien1 len bảng.

(116)

Hỏi: thủ tục thực công việc gì;

HS: Hốn đổi giá trị hai biến liệu vào cho nhau.

GV: Chạy chương trình thực hiện đổi phần khai báo thành: Procedure Hoan_doi (x: integer; var y: integer); để HS quan sát nhận xét khác nhau tham biến tham trị.

Var a, b: integer;

Procedure Hoan_doi (var x, y: integer);

Var TG: integer; Begin

TG:=x; x:=y; y:=TG; End;

BEGIN Clrscr;

A:= 5; b:=10; Writeln(a:6, b:6); Hoan_doi(a,b); Writeln(a:6,b:6); END.

4 Củng cố (5p)

- Khi cần khai báo tham số phần khai báo chương trình theo kiểu tham biến, theo kiểu tham trị.

- Phân biệt giống khác tham biến tham trị. 5 Dặn dò (1p)

- Xem tiếp nội dung lại bài.

- Viết thủ tục tìm thơng báo số lớn ba số a, b, c.

V TỰ RÚT KINH NGHIỆM

(117)

Tiết 42:

Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T2)

Ngày soạn: 15/03/2011 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

A MỤC TIÊU

1 Kiến thức: - Giúp học sinh nắm được:

- Cấu trúc chung thủ tục chương trình. - Phân biệt tham số tham trị.

- Các khái niệm biến toàn cục biến cục bộ.

2 Kỹ năng: - Nhận biết thành phần đầu thủ tục. - Nhận biết hai loại tham số hình thức đầu hai thủ tục.

- Biết cách khai báo hai loại chương trình với tham số hình thức của chúng.

- Cách viết lời gọi chương trình thân chương trình chính. - Phân biệt khác hàm thủ tục.

- Phân biệt sử dụng biến toàn cục biến cục bộ.

3 Thái độ: - Tiếp tục rèn luyện phẩm chất người lập trình tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tn thủ theo u cầu việc chung.

- Có ý thức lưu trữ liệu cách khoa học. B PHƯƠNG PHÁP

- Thuyết trình giảng giải, kết hợp hình ảnh trực quan.

- Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm

C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1 Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn 2 Học sinh: SGK, vở.

D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p) II Kiểm tra cũ III Bài mới

1 Đặt vấn đề (1p)

- Bài học trước em tìm hiểu chương trình con, cấu trúc phân loại. Vậy chương trình viết nào, sử dụng chúng sao, có giống và khác với chương trình khơng? Bài học hơm tìm hiểu nội dung này.

2 Triển khai bài

Tg Hoạt động giáo viên học sinh

Nội dung kiến thức Hoạt động 1: (theo nhóm)

(12p)

(118)

GV: Cho biết tên cách sử dụng một số hàm học?

HS: Hàm abs(), sqrt(),

- Viết tên hàm cần gọi tham số.

- Lời gọi hàm viết các biểu thức tốn hạng, thậm chí tham số hàm khác. GV: Chuẩn xác

- Điểm khác biệt thủ tục và hàm gì?

HS: Trong than hàm cần có lệnh gán giá trị cho tên hàm.

GV: so sánh giống khác nhau hàm thủ tục?

HS: giống: có cấu trúc tương tự, có các tham số,

- Khác: Tên hàm phải quy định kiểu liệu; Trong than hàm phải có lệnh: tên_hàm:= biểu_thức; Bắt đầu hàm từ khoá Function.

1 Cách viết sử dụng hàm a Cấu trúc thủ tục

Function <tên thủ tục>[<danh sách các tham số>]: <kiểu liệu>; [<Phần khai báo>]

Begin

[<Dãy lệnh>]

<tên hàm>:= <biểu thức>; End;

Hoạt động 2: (Theo nhóm) (15p) GV: Chiếu ví dụ rút gọn phân số.

- Trong chương trình có sử dụng bao nhiêu hàm.

HS: hàm.

GV: hàm UCLN(x,y) dùng để làm gì? - Lời gọi hàm nằm đâu? Có khác với thủ tục lời gọi hàm?

HS: Lệnh a:=UCLN(tuso, mauso) ; - Lời gọi hàm phải đặt một lệnh lời gọi chương trình khác.

GV: Có biến sử dụng trong chương trình? Các biến được khai báo chổ chương trình chính?

HS: tuso, mauso, a : khai báo trong chương trình chính.

- sodu: khai báo chương trình con.

GV: Yêu cầu học sinh phân biệt sự giống khác biến toàn cục và biến cục bộ.

b Ví dụ hàm * Ví dụ 1;

Program Rutgon_Phanso; Uses crt;

Var a, tuso, mauso: integer;

Function UCLN(x,y:

integer):integer; Var sodu: integer; Begin

While y<>0 do Begin

Sodu:= x mod y; X:= y;

Y:= sodu; End;

UCLN:=x; End;

BEGIN {Bat dau chuong trinh chinh}

Clrscr;

Write(‘Nhap tu so va mau so: ‘); readln(tuso,mauso);

(119)

GV: chạy chương trình để học sinh kiểm nghiệm tự rút kết luận.

Begin

Tuso:= tuso div a; Mauso:= mauso div a; end;

Writeln(tuso:5, ‘/’ ,mauso:5); Readln;

END. Hoạt động 3: (Chung lớp) (10p)

GV: Chiếu ví dụ Minbaso lên bảng minh hoạ cho học sinh cách gọi hàm. HS: Chú ý quan sát theo dõi.

* Ví dụ 2:

Program Minbaso; Uses crt;

Var a, b, c: real;

Function Min(a,b: real):real; Begin

If a<b then min:=a Else min:=b;

End;

BEGIN {Bat dau chuong trinh chinh}

Clrscr;

Write(‘Nhap vao ba so: ‘); readln(a,b,c);

Writeln(‘So nho nhat ba so la: ‘,min(a,b,c);

Readln END. IV Củng cố (5p)

- Phân biệt giống khác hàm thủ tục

- Phân biệt giống khác biến tồn cục biến cục bộ V Dặn dị (1p)

(120)

Tiết 43

BÀI THỰC HÀNH SỐ 6

Ngày soạn: 30/03/2011 Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC TIÊU 1 Kiến thức:

- Củng cố lại kiến thức xâu ký tự, chương trình

2 Kĩ năng:

- Rèn luyện kĩ xử lý xâu việc tạo hiệu ứng chữ chạy hình - Nâng cao kĩ viết sử dụng chương trình

II ĐỒ DÙNG DẠY HỌC 1 Chuẩn bị giáo viên

- Máy vi tính, tổ chức phịng máy để học sinh có kĩ việc tổ chức sử dụng chương trình lập trình

2 Chuẩn bị học sinh

- Sách giáo khoa

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

1 Hoạt động 1: Tìm hiểu việc xây dựng hai thủ tục catdan(s1,s2) cangiua(s)

HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH Tìm hiểu hai thủ tục catdan(s1,s2)

cangiua(s)

- Chiếu nội dung thủ tục catdan(s1,s2); - Hỏi: Đầu vào đầu thủ tục này? - Hỏi: Chức thủ tục gì?

- Yêu cầu học sinh cho ví dụ minh họa - Chiếu nội dung thủ tục: cangiua(s); - Hỏi: Đầu vào thủ tục?

- Hỏi: Thủ tục thực cơng việc gì?

- Giáo viên ý: Có thể nhắc học sinh khơng khai báo s tham biến thủ tục khơng có hiệu lực lệnh đưa s hình

1 Quan sát thủ tục catdan() trả lời câu hỏi giáo viên

- Vào: xâu ký tự s1 - Ra: biến xâu ký tự s2

- Thực việc tạo xâu s2 từ xâu s1 việc chuyển ký tự thứ đến vị trí cuối xâu - S1= ‘abcd’ S2= ‘bcda’

- Quan sát, suy nghĩ trả lời

- Đầu vào xâu ký tự S không 79 ký tự

(121)

không nằm thủ tục

2 Tìm hiểu chương trình câu b, sách giáo khoa, trang 103, 104

- Chiếu chương trình lên bảng - Hỏi: Chức chương trình

- Giới thiệu cho học sinh thủ tục chuẩn: gotoxy(x,y); delay(n); keypressed;

- Thực chương trình để giúp học sinh thấy kết chương trình

2 Quan sát chương trình bảng theo dõi dẫn dắt giáo viên

- Yêu cầu người sử dụng nhập xâu ký tự Đưa xâu hình có dạng dịng chữ chạy hình văn 25*80

- Quan sát hình để đối chiếu với kết mà học sinh tự suy luận tính

2 Hoạt động 2: Rèn luyện kĩ lập trình.

HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH Tìm hiểu yêu cầu đề

- Chiếu nội dung yêu cầu lên bảng

- Yêu cầu học sinh tìm vấn đề tập

- Yêu cầu học sinh lập trình máy

- Yêu câu học sinh thực chương trình nhập liệu test

- Đánh giá kết quat lập trình học sinh

1 Quan sát yêu cầu bảng

- Về bản, giống nhiệm vụ mà câu b làm Chỉ khác chương trình câu b ln cho xâu ký tự chạy dòng 12, xâu ký tự phải chạy dịng Vì phải truyền tham số quy định dòng chạy cho thủ tục

- Độc lập viết chương trình vào máy báo cáo kết thử nghiệm

- Nhập liệu theo test giáo viên báo cáo kết

ĐÁNH GIÁ CUỐI BÀI Câu hỏi tập nhà

- Viết thủ tục chaychu(s,dong) nhận tham số xâu S gồm không 79 ký tự biến nguyên Dong In hình dịng chữ xác định S chạy dịng Dong Viết chương trình thực có sử dụng thủ tục

- Chuẩn bị cho thực hành số 7: Xem trước nội dụng thực hành số 7, sách giáo khoa, trang 105

V TỰ RÚT KINH NGHIỆM

(122)

BÀI THỰC HÀNH SỐ 7 Ngày soạn: 25/03/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC TIÊU 1 Kiến thức:

- Củng cố lại kiến thức chương trình con: Thủ tục, hàm, tham số biến tham số giá trị, biến toàn biến cục

2 Kĩ năng:

- Sử dụng chương trình để giải trọn vẹn tốn máy tính II ĐỒ DÙNG DẠY HỌC

1 Chuẩn bị giáo viên

- Máy vi tính, tổ chức phịng máy để học sinh có kĩ việc tổ chức sử dụng chương trình lập trình

2 Chuẩn bị học sinh - Sách giáo khoa

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

1 Hoạt động 1: Tìm hiểu việc xây dựng hàm, thủ tục chương trình thực các việc liên quan đến tam giác

HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

1 Tìm hiểu việc xây dựng hàm thủ tục - Chiếu khai báo kiểu liệu diem tamgiac Chiếu hàm thủ tục lên bảng

- Hỏi: Chức chương trình con?

- Có tham số nào? Tham số dạng

1 Quan sát chương trình con, lệnh khai báo tham số

- Chức chương trình con: daicanh(); tính độ dài ba cạnh a, b, c tam giác r

chuvi():real; Cho giá trị chu vi tam giác r

dientich():real; Cho giá trị diện tích tam giác r

tinhchat(); khẳng định tính chất tam giác: đều, cân vuông

hienthi(); hiển thị tọa độ ba đỉnh tam giác hình

Kh_cách():real; cho giá trị khoảng cách hai điểm

(123)

tham số biến tham số dạng tham số giá trị

2 Tìm hiểu chương trình câu b, sách giáo khoa trang 106

- Chiếu chương trình câu b

- Hỏi: Chương trình thực cơng việc gì?

- Thực chương trình để giúp học sinh thấy kết

- Thay tham biến thành tham trị để học sinh thấy sai khác

- Tham số giá trị p,q

2 Quan sát chương trình, dự tính chức chương trình

- Nhập vào tọa độ ba đỉnh tam giác khảo sát tính chất tam giác: cân, vng, In chu vi diện tích tam giác

- Quan sát kết hình để đối chiếu với kết tự tính

- Quan sát ghi nhớ kết để thấy hiệu ứng thay đổi tham trị tham biến

2 Hoạt động 2: Rèn luyện kĩ lập trình.

HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH Phân tích yêu cầu đề

- Chiếu nội dung yêu cầu lên bảng - Chia lớp thành nhóm

+ Nhóm 1: Nêu câu hỏi phân tích để giải tốn

+ Nhóm 2: Trả lời câu hỏi phân tích nhóm để tìm cách giải tốn

- Giáo viên góp ý bổ sung cho câu hỏi phân tích trả lời phân tích

1 Quan sát yêu cầu - Nhóm 1: Đặt câu hỏi + Dữ liệu vào

+ Dữ liệu

+ Cần sửa chỗ chương trình câu b

+ Thuật toán để đếm số lượng loại hình tam giác

- Nhóm 2: Trả lời câu hỏi phân tích + Cho tệp, phải viết lệnh đọc liệu tệp

+ Ba số nguyên dương số lượng ba loại hình tam giác Ba số ghi ba dòng tệp + Cần thay đoạn chương trình nhập liệu chương trình để đọc liệu từ tệp TAMGIAC.INP Thay đoạn chương trình in kết hình chương trình để in ba số nguyên dương số lượng ba loại hình tệp TAMGIAC.OUT

+ Thuật tốn: Nếu deu d:=d+1

(124)

2 Lập trình

- Yêu cầu học sinh lập trình máy Giáo viên tiếp cận học sinh để sửa lỗi cần thiết

- Yêu cầu học sinh nhập liệu vào giáo viên báo cáo kết chương trình

- Đánh giá kết học sinh

ngược lại v:=v+1; Độc lập viết chương trình, thực chương trình test tự tạo

- Thông báo kết cho giáo viên - Nhập liệu giáo viên báo cáo kết

IV ĐÁNH GIÁ CUỐI BÀI 1 Những nội dung học

- Cách xây dựng hàm thủ tục, cách khai báo tham số dạng tham biến tham trị - Tìm hiểu số chương trình liên quan đến tam giác

2 Câu hỏi tập nhà

- Cho file liệu tập hoạt động

- Đọc đọc thêm: Ai lập trình viên đầu tiên? Sách giáo khoa, trang 109

- Chuẩn bị cho tiết học lý thuyết: Xem trước nội dụng Thư viện chương trình

con chuẩn, sách giáo khoa, trang 110

V TỰ RÚT KINH NGHIỆM

(125)

THƯ VIỆN CHƯƠNGTRÌNH CON CHUẨN Ngày soạn: 05/04/2011

Giảng lớp:

Lớp Ngày giảng Học sinh vắng mặt Ghi

11A 11E

I MỤC TIÊU 1 Kiến thức:

- Biết số thư viện chương trình 2 Kĩ năng:

- Bước đầu sử dụng thư viện lập trình - Khởi động chế độ đồ hoạ

- Sử dụng thủ tục vẽ điểm, đường, hình trịn, hình ellipse, hình chữ nhật II ĐỒ DÙNG DẠY HỌC

1 Chuẩn bị giáo viên

- Máy chiếu projector để giới thiệu ví dụ 2 Chuẩn bị học sinh

- Sách giáo khoa.

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

1 Hoạt động 1: Tìm hiểu thư viện CRT

a Mục tiêu:

HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

1 Tìm hiểu thủ tục Clrscr

- Yêu cầu học sinh nghiên cứu sách giáo khoa, kể tên chương trình thư viện CRT

- Chiếu chương trình sau: Begin

clrscr; Readln; End

- Biên dịch chương trình Hỏi: Tại xuất lỗi? Khắc phục nào?

- Thêm Uses CRT; vào đầu chương trình thực chương trình để học sinh thấy kết Chú ý cho học sinh ghi nhớ hình trước lúc thực chương trình

1 Tham khảo sách giáo khoa:

- Clrscr, textcolor, textbackground, gotoxy - Quan sát chương trình

- Vì sử dụng thủ tục chưa sử dụng thư viện CRT

- Thêm lệnh USES CRT;

- Quan sát giáo viên thực chương trình

(126)

- Hỏi: Chức thủ tục Clrscr; Tìm hiểu thủ tục textcolor

- Chiếu chương trình ví dụ: Uses CRT;

Begin

Write(‘Chua dat mau chu’); textcolor(4);

Write(‘Da dat mau chu la do’); Readln;

End

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức lệnh textcolor(4); Tìm hiểu thủ tục Textbackground - Chiếu chương trình ví dụ:

Uses CRT; Begin

Textbackground(1);

Writeln(‘Da dat lai mau nen’); Readln;

End

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức lệnh textbackground(1); Tìm hiểu thủ tục gotoxy - Chiếu chương trình ví dụ: Uses CRT;

Begin

Writeln(‘Con tro dang dung o cot 10 dong 20’);

Gotoxy(10,20); Readln;

End

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức lệnh gotoxy(10,20);

- Quan sát chương trình

- Quan sát kết chương trình - Đặt màu chữ thành màu đỏ

- Quan sát chương trình

- Quan sát kết chương trình

- Đặt màu chữ thành màu xanh trời

- Quan sát chương trình

- Quan sát kết chương trình - Đưa trỏ vị trí cột 10 dịng 20

2 Hoạt động 2: Tìm hiểu thư viện Graph ngơn ngữ lập trình Pascal

HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

1 Yêu cầu học sinh nghiên cứu sách giáo khoa để trả lời câu hỏi:

(127)

- Hỏi: Các dạng liệu hiển thị hình?

- Hỏi: Nhiệm vụ Card hình? - Hỏi: Khi nói hình có độ phân giải 640 x 480 nói đến điều gì?

2 Đưa cấu trúc chung thủ tục khởi động đồ họa

Initgraph(dr,md:integer;pth:string);

- Giải thích thông số thủ tục cho học sinh

- Cho học sinh thấy ví dụ khởi động đồ họa

3 Giới thiệu thủ tục trở chế độ văn Closegraph;

- Yêu cầu học sinh khởi động chế độ đồ họa chuyển chế độ văn

- Văn hình ảnh

- Làm cầu nối CPU hình thể thơng tin

- Là nói đến hình có 640 dịng 480 cột

2 Quan sát theo dõi dẫn dắt giáo viên

- Quan sát gáo viên thực

3 Quan sát so sánh hai chế độ văn đồ họa

- Thay phiên thực việc chuyển đổi hai chế độ văn đồ họa 3 Hoạt động 3: Tìm hiểu thủ tục vẽ điểm, đường hình bản.

HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

1 Tìm hiểu thủ tục Putpixel

- Chiếu cấu trúc chung thủ tục: Putpixel(x,y:integer;color:word); - Chiếu chương trình ví dụ

Use graph Begin drive:=0;

initgraph(drive, mode, ‘c:\Tp\BGI’); Putpixel(12,40,15);

readln; End

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức thủ tục Putpixel Tìm hiểu thủ tục Line

- Chiếu cấu trúc chung thủ tục: Line(x1,y1,x2,y2:integer);

- Chiếu chương trình ví dụ thay lệnh Putpixel(12,40,15); lệnh line(1,1,20,20);

- Thực chương trình để học sinh thấy

1 Quan sát cấu trúc chung suy nghĩ để trả lời câu hỏi

- Quan sát chương trình

- Quan sát kết chương trình

- Vẽ điểm có màu Color hình tọa độ (x,y)

2 Quan sát cấu trúc chung suy nghĩ để trả lời câu hỏi

- Quan sát chương trình

(128)

kết

- Hỏi: Chức thủ tục Line Tìm hiểu thủ tục Lineto

- Chiếu cấu trúc chung thủ tục: Lineto(x,y:integer);

- Chiếu chương trình ví dụ thay lệnh Putpixel(12,40,15); lệnh lineto(20,20);

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức thủ tục Lineto Tìm hiểu thủ tục Lineto

- Chiếu cấu trúc chung thủ tục: Linerel(dx,dy:integer); - Hỏi: Chức thủ tục Linerel

5 Tìm hiểu thủ tục Circle, Ellipse, Rectangle

- Chiếu cấu trúc chung thủ tục: Circle(x,y:integer; r:word);

Ellipse(x,y:integer;stangle,endangle,xr,yr: word);

Rectangle(x1,y1,x2,y2:integer); - Chiếu chương trình ví dụ Use graph

Begin drive:=0;

initgraph(drive, mode, ‘c:\Tp\BGI’); Circle(12,40,30);

Ellipse(50,50,30,120,50,100:word); Rectangle(100,100,200,200);

readln; End

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức thủ tục Circle, Ellipse, Rectangle

- Vẽ đoạn thẳng từ điểm có tọa độ (x1,y1) đến điểm có tọa độ (x2,y2)

3 Quan sát cấu trúc chung suy nghĩ để trả lời câu hỏi

- Quan sát chương trình

- Quan sát kết chương trình

- Vẽ đoạn thẳng từ điểm đến điểm có tọa độ (x,y)

3 Quan sát cấu trúc chung suy nghĩ để trả lời câu hỏi

- Vẽ đọan thẳng nối điểm với điểm có toạ độ tọa độ điểm cộng với dx, dy

5 Quan sát cấu trúc chung suy nghĩ để trả lời câu hỏi

- Quan sát chương trình

- Quan sát kết chương trình

+ Circle: Vẽ đường trịn có tâm (x,y) bán kính r

(129)

6 Tìm hiểu thủ tục Setcolor

- Chiếu cấu trúc chung thủ tục: Setcolor(m:word);

- Chiếu chương trình ví dụ Use graph

Begin drive:=0;

initgraph(drive, mode, ‘c:\Tp\BGI’); Circle(12,40,100);

Setcolor(4);

Circle(12,40,200); readln;

End

- Thực chương trình để học sinh thấy kết

- Hỏi: Chức thủ tục Lineto

endangle

6 Quan sát cấu trúc chung suy nghĩ để trả lời câu hỏi

- Quan sát chương trình

- Quan sát kết chương trình

- Setcolor(m: word): Đặt màu cho nét vẽ với màu có số hiệu m

4 Hoạt động 4: Tìm hiểu số thư viện khác

HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH Yêu cầu học sinh nghiên cứu sách

giáo khoa, nêu tên thư viện

2 Yêu cầu học sinh nêu chức thư viện

1 Các thư viện: System, Dos, Printer

2 Chức thư viện:

- System: chứa hàm thủ tục vào/ra sơ cấp

- Dos: chứa thủ tục tạo thư mục, đóng mở file

- Printer: chứa thủ tục liên quan máy in

5 Hoạt động 5: Rèn luyện kĩ lập trình.

HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH Giới thiệu nội dung yêu cầu lên

bảng

Định hướng cách giải vấn đề cho học sinh

- Thủ tục để vẽ hình trịn có tâm điểm hình

- Cần lệnh vậy, dùng cấu trúc để điều khiển

2 Chia lớp làm nhóm 01 nhóm viết chương trình máy 02 nhóm viết

1 Quan sát yêu cầu giáo viên

Circle(x,y:integer;r:word);

- Cần 20 lệnh, nên dùng cấu trúc For để chương trình ngắn gọn

(130)

lên bìa

- Thu phiếu trả lời Chiếu lên bảng, gọi học sinh nhóm khác nhận xét đánh giá Sửa chương trình hoàn chỉnh cho học sinh viết máy

3 Thực chương trình máy để học sinh thấy kết

- Nhận xét, đánh giá bổ sung thiếu sót nhóm khác

3 Quan sát kết hình

IV ĐÁNH GIÁ CUỐI BÀI 1 Những nội dung học

- Thư viện chương trình cung cấp chương trình chuẩn nhằm mở rộng khả ứng dụng

- Khởi động chế độ đồ hoạ Chuyển từ chế độ hình đồ hoạ sang chế độ hình văn

Ngày đăng: 16/05/2021, 08:01

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan