GiaoAn11TachTietThepppct20102011

83 6 0
GiaoAn11TachTietThepppct20102011

Đ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

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.. -Trả lời câu hỏi: Có 3 loại ngôn ngữ lập trình: Ngôn ngữ máy, hợp ng[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

Tuần 01 Tiết 01

Ngày soạn: 03/08/2010 Ngày giảng :…/…/……… Bài 1: KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH I MỤC ĐÍCH, U CẦU

1 Kiến thức

- Nắm thành phần ngơn ngữ lập trình nói chung - Biết khái niệm chương trình dịch

- Phân biệt chươn trình dịch biên dịch thơng dịch

2 Kỹ năng

- Biết vai trò chương trình dịch

- Hiểu ý nghĩa nhiệm vụ chương trình dịch

3 Thái độ

- Ý thức tầm quan trọng mơn học có thái độ học tập nghiêm túc, ln tự tìm hiểu học tập

II CHUẨN BỊ

1 Gv: Giáo án, máy chiếu, máy tính, phịng chiếu bảng Hs: Đọc trước SGK, xem lại số kiến thức Tin học lớp 10

III PHƯƠNG PHÁP

- Thuyết trình, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề

IV NỘI DUNG BÀI GIẢNG: 1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

2 Kiểm tra cũ

- Thông qua giảng

3 Bài mới

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

Hoạt động 1: giới thiệu lập trình ngơn ngữ lập trình GV: Đặt câu hỏi 1: Em cho biết các

bước giải tốn máy tính?

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

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

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

GV: Đặt câu hỏi 2: Em cho biết có

mấy loại ngơn ngữ lập trình?

HS: Trả lời câu hỏi giáo viên. GV: Phân tích câu trả lời học sinh.

Mỗi loại máy có ngơn ngữ riêng, thường chương trình viết ngôn ngữ máy chạy máy Khi viết chương trình ngơn ngữ bậc

1 Khái niệm lập trình: Lập trình sử

dụng cấu trúc liệu câu lệnh ngơn ngữ lập trình cụ thể để mơ tả liệu diễn đạt thuật toán

-Trả lời câu hỏi: Có loại ngơn ngữ lập trình: Ngơn ngữ máy, hợp ngữ ngơn ngữ bậc cao

(2)

cao muốn thi hành loại máy cần chuyển chương trình sang ngơn ngữ máy máy

Chương trình viết ngơn ngữ bậc cao nói chung khơng phụ thuộc loại máy, muốn thi hành phải chuyển sang ngôn ngữ máy

Hoạt động 2: Chương trình dịch GV: Đặt câu hỏi : Làm để chuyển

chương trình viết ngơn ngữ bậc cao sang ngơn ngữ máy?

Đưa ví dụ : Bạn người 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 người nói chuyện)

+ Khi người muốn dịch sách sang tiếng Việt làm nào? (Dịch tồn sách sang tiếng Việt để người đọc được)

GV: Lấy ví dụ biên dịch thông dịch

cho học sinh hình dung cơng việc

Biên dịch: Sử dụng ngơn ngữ lập trình

Pascal để dịch chương trình viết sẵn đĩa thi hành chương trình dịch để học sinh quan sát

Thông dịch: Sử dụng lệnh trong

Command promt để thực số lệnh DOS dùng ngôn ngữ Foxpro để thực số lệnh quản trị liệu, học sinh dễ dàng nhận việc thông dịch

Đi kèm với chương trình dịch thường có cơng cụ soạn thảo chương trình nguồn, lưu trữ, tìm kiếm, phát lỗi, thơng báo lỗi,… ngơn ngữ lập trình thường chứa tất dịch vụ

=>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 để máy thi hành

2 Chương trình dịch

có loại: Biên dịch thơng dịch

+ Biên dịch (Compiler): Thực các bước sau:

 Duyệt, kiểm tra, phát lỗi kiểm tra tính đắn câu lệnh chương trình nguồn

 Dịch tồn chương trình nguồn thành chương trình đích (ngơn ngữ máy) để thực máy lưu trữ để sử dụng lại cần

+ Thông dịch (Interpreter): Dịch lần lượt câu lệnh thực câu lệnh

Thông dịch thực cách lặp lại dãy bước sau:

 Kiểm tra tính đắn câu lệnh chương trình 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 câu lệnh vừa chuyển đổi

4 Cũng cố: Nhắc lại số khái niệm mới. V PHỤ LỤC

(3)

Tuần 01

Tiết 02 Ngày soạn: 03/08/2010Ngày giảng:…/…/………

Bài 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH I MỤC ĐÍCH, U CẦU

1 Kiến thức

- Biết số khái niệm như: tên, tên chuẩn, tên dành riêng, …

2 Kỹ năng

- Phân biệt tên chuẩn với tên dành riêng tên người lập trình đặt - Nhớ quy tắc đặt tên biến

- Biết đặt tên đúng, nhận biết tên sai

3 Thái độ

- Ý thức tầm quan trọng mơn học có thái độ học tập nghiêm túc, ln tự tìm hiểu học tập

II CHUẨN BỊ

1 Gv: Giáo án, máy chiếu, máy tính, phịng chiếu bảng Hs: Hiểu kiến thức 1, đọc trước SGK

III PHƯƠNG PHÁP

- Thuyết trình, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

2 Kiểm tra cũ

Câu 1: Thế lập trình, ngơn ngữ lập trình?

Câu 2: Chương trình dịch gì? Có loại chương trình dịch? 3 Bài mới

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

Hoạt động 1: Các thành phần ngơn ngữ lập trình GV: Các ngơn ngữ lập trình nói chung

thường có chung số thành phần như: Dùng ký hiệu để viết chương trình, viết theo quy tắc nào, viết có ý nghĩa gì? Mỗi ngơn ngữ lập trình có quy định riêng thành phần

Ví dụ: Bảng chữ ngơn ngữ

lập trình khác có khác Chẳng hạn ngôn ngữ Pascal không sử dụng dấu ! ngôn ngữ C++ lại sử dụng ngôn ngữ

- Cú pháp ngôn ngữ lập trình khác khác nhau, ngơn ngữ Pascal dùng cặp từ Begin – End để gộp nhiều lệnh thành 1

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

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

a.Bảng chữ cái: Là tập ký hiệu dùng

để viết chương trình

-Trong ngơn ngữ Pascal bảng chữ gồm: Các chữ bảng chữ tiếng Anh, chữ số  số ký tự đặc biệt (xem SGK)

b.Cú pháp: Là quy tắc dùng để viết

(4)

lệnh C++ lại dùng cặp kí hiệu {}.

Ví dụ: Xét biểu thức:

A + B (1) A, B số thực I + J (2) I, j số nguyên

Khi dấu + (1) cộng hai số thực, (2) cộng hai số ngun - Mỗi ngơn ngữ khác có cách xác định ngữ nghĩa khác

HS: Lắng nghe, ghi chép.

GV: Đưa ví dụ ngơn ngữ tự nhiên cũng

có bảng chữ cái, ngữ pháp (cú pháp) nghĩa câu, từ

c Ngữ nghĩa: Xác định ý nghĩa thao tác

cần thực ứng với tổ hợp ký tự dựa vào ngữ cảnh

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

- Lỗi cú pháp chương trình 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 cú pháp dịch sang ngôn ngữ máy

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

Hoạt động 2: Một số khái niệm bản GV: Trong ngơn ngữ lập trình nói

chung, đối tượng sử dụng chương trình phải đặt tên để tiện cho việc sử dụng Việc đặt tên ngơn ngữ khác khác nhau, có ngơn ngữ phân biệt chữ hoa, chữ thường, có ngơn ngữ khơng phân biệt chữ hoa, chữ thường

GV: Giới thiệu cách đặt tên ngôn ngữ

cụ thể Pascal

Ví dụ :

Tên đúng: a, b, c, x1, x2, _ten … Tên sai: a bc,2x, a&b …

GV: Ngơn ngữ có loại tên cơ

bản tùy theo ngôn ngữ mà tên có ý nghĩ khác ngơn ngữ khác

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

- Mọi đối tượng chương trình phải đặt tên Mỗi ngơn ngữ lập trình có quy tắc đặt tên riêng - Trong ngôn gnữ Turbo Pascal tên

một dãy liên tiếp không qúa 127 ký tự bao gồm chữ cái, chữ số dấu gạch phải bắt đầu chữ dấu gạch

- Trong Free Pascal, tên có tối đa 255 ký tự

- Ngơn ngữ lập trình Pascal khơng phân biệt chữ hoa, chữ thường số ngôn ngữ lập trình khác lại phân biệt chữ hoa chữ thường

- Ngơn ngữ lập trình 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

Tên dành riêng:

(5)

o Trong soạn thảo chương trình, ngơn ngữ lập trình thường hiển thị tên dành riêng với màu chữ khác hẳn với tên cịn lại giúp người lập trình nhận biết tên tên dành riêng (từ khóa) Trong ngơn ngữ Pascal, từ khóa thường hiển thị màu trắng

GV: Mở chương trình viết bằng

Pascal để học sinh quan sát cách hiển thị số từ khóa chương trình - Các ngơn ngữ lập trình thường cung

cấp số đơn vị chương trình có sẵn thư viện chương trình giúp người lập trình thực nhanh số thao tác thường dùng - Giáo viên cho học sinh số tên

chuẩn ngơn ngữ Pascal

GV: Đưa ví dụ: Để viết chương trình

giải phương trình bậc hai ta cần khai báo tên sau:

+ a,b,c ba tên để lưu ba hệ số chương trình

+ X1,X2 tên dùng để lưu nghiệm có

+ Delta tên để lưu giá trị Delta

- Hằng thường có loại, đặt tên không đặt tên Hằng không đặt tên giá trị viết trực tiếp viết chương trình Mỗi ngơn ngữ lập trình có quy định cách viết riêng.Hằng đặt tên có cách đặt tên cho khác

- 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 qủa, làm trung gian cho tính tốn,… Mỗi loại ngơn ngữ có loại biến khác cách khai báo khác

nghĩa khác

- Tên dành riêng gọi từ khóa

Ví dụ: Một số từ khóa

Trong ngơn ngữ Pascal: Program, Var, Uses, Begin, End, …

Trong ngôn ngữ C++: main, include, while, void,…

Tên chuẩn:

- Là tên ngơn ngữ lập trình (NNLT) dùng với ý nghĩa thư viện NNLT, nhiên người lập trình sử dụng với ý nghĩa khác

Ví dụ: Một số tên chuẩn

Trong ngôn ngữ Pascal: Real, Integer, Sin, Cos, Char, …

Trong ngôn ngữ C==: cin,cout Getchar…

Tên người lập trình tự đặ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 q trình thực chương trình - Các ngơn ngữ lập trình thường có:

+ Hằng số học : số nguyên số thực + Hằng xâu : chuỗi ký tự đặt d6áu

nháy “ ””

+ Hằng Logic : giá trị sai

Biến:

- Là đại lượng đặt tên, giá trị thay đổi chương trình - Các NNLT có nhiều loại biến khác

nhau

(6)

4 Cũng cố

 Nhắc lại số khái niệm  Cho tập nhà

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ……… ……… ……… ……… ……….………

Tuần 02 Tiết 03

Ngày soạn: 05/08/2010 Ngày giảng:…/…/……… BÀI TẬP

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

- Cũng cố lại kiến thức ngôn ngữ lập trình, chương trình dịch

- 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

2 Kỹ năng

- 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 Quy tắc đặt tên Pascal, biết đặt tên

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

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

3 Thái độ

- Nghiêm túc, tích cực học tập

II CHUẨN BỊ

(7)

2 Hs: Học cũ, đọc trước SGK

III PHƯƠNG PHÁP

- Thuyết trình, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

2 Kiểm tra cũ

Kiểm tra giảng

3 Bài mới

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

Hoạt động 1: Tìm hiểu ngơn ngữ lập trình Gv:Trước giải tập trong

SGK, em tự ôn lại số kiến thức mà học trước dựa yêu cầu câu hỏi trang 13 SGK

Đặt câu hỏi số 1: Tại sao

người ta phải xây dựng các ngôn ngữ lập trình bậc cao? Hs: - Suy nghĩ để đưa phương

án trả lời

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

Gv: Nhận xét, đánh giá bổ

sung hướng dẫn cho học sinh trả lời câu hỏi số 1:

Câu 1:

- Ngôn ngữ bậc cao gần với ngôn ngữ tự nhiên hơn,

thuận tiện cho đông đảo người lập trình

- Chương trình viết ngơn ngữ bậc cao nói

chung khơng phụ thuộc vào phần cứng máy tính chương trình thực nhiều máy tính khác

- Chương trình viết ngơn ngữ bậc cao dễ hiểu,

dễ hiệu chỉnh dễ nâng cấp

- Ngôn ngữ bậc cao cho phép làm việc với nhiều

kiêu liệu cách tổ chức liệu đa dạng, thuận tiện cho mơ tả thuộc tốn

Hoạt động 2: Tìm hiểu chương trình dịch

Đặt câu hỏi 2: Chương trình

dịch gì? Tại cần phải có chương trình dịch?

Hs: Suy nghĩ, trả lời câu hỏi, cho

ví dụ

Gv:Đặt câu hỏi 3: Biên dịch thông dịch khác nào?

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

từng câu hỏi,

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

sinh

Câu 2:

- Chương trình dịch chương trình đặc biệt, có

chức chuyển đổi chương trình viết ngơn ngữ lập trình bậc cao thành chương trình thực máy tính cụ thể

Chương trình nguồn -> Chương trình dịch -> Chương trình đích

Câu 3:

- Trình biên dịch: duyệt, kiểm tra, phát lỗi, xác

định chương trình nguồn có dịch khơng? dịch tồn chương trình nguồn thành chương trình đích thực máy lưu trữ lại để sử dụng sau cần thiết

Trình thơng dịch dịch câu lệnh ngôn

(8)

hoặc báo lỗi khơng dịch

Hoạt động 3: Tìm hiểu số khái niệm tên, hằng, biến pascal Gv: Đặt câu hỏi 4: Hãy cho biết

các điểm khác tên dành riêng tên chuẩn?

- Gọi hs trả lời cho ví dụ Hs: Suy nghĩ, trả lời, giải thích

từng câu hỏi,

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

sinh

Gv: Đặt câu hỏi 5: Hãy tự viết ra ba tên theo quy tắc của Pascal

- Gọi học sinh lên bảng cho

ví dụ tên người lập trình đặt

Hs: Suy nghĩ trả lời

Gv: Nhận xét, sửa chữa, góp ý. Gv: Đặt câu hỏi 6: Hãy cho biết

những biểu diễn biểu diễn Pascal rõ trường hợp:

a) 150.0 b) -22 c) 6,23 d) ‘43’

e) A20 f) 1.06E-15 g) 4+6 h) ‘C

i) ‘TRUE’

Hs: Suy nghĩ trả lời

Gv: Nhận xét, sữa chữa, góp ý

Câu 4:

- Tên dành riêng không dùng khác với ý nghĩa

đã xác định, tên chuẩn dùng với ý nghĩa khác

VD:

Tên dành riêng Pascal: program, uses, const, type, var, begin, end

Tên chuẩn: Pascal abs, integer.

Câu 5: Gợi ý: Trong Pascal tên (do người lập trình

đặt) đặt tuân theo quy tắc sau:

- Chỉ bao gồm chữ cái, chữ số dấu gạch dưới; - Không bắt đầu chữ số;

- Độ dài theo quy định chương trình dịch (TP

khơng q 127 kí tự, Free Pascal khơng q 255 kí tự)

- Tuy nhiên, khơng nên đặt tên dài hay quá

ngắn mà nên đặt cho gợi ý nghĩa đối tượng mang tên

Câu 6:

-Những biểu diễn sau Pascal:

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

4+6 biểu thức Pascal chuẩn coi Turbo Pascal;

‘TRUE’ xâu không lôgic

4 Cũng cố

-Ôn lại khái niệm, tên

-Chuẩn bị Cấu trúc chương trình

V PHỤ LỤC

……… ………

……… ………

……… ………

……… ………

……… ………

(9)

……… ……….………

Chương 2: CHƯƠNG TRÌNH ĐƠN GIẢN Tuần 02

Tiết 04

Ngày soạn: 05/08/2010 Ngày giảng :…/…/…… Bài 3: CẤU TRÚC CHƯƠNG TRÌNH

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

- Cấu trúc chung chương trình cấu trúc chung chương trình Pascal

2 Kỹ năng

- Hiểu phân biệt thành phần cấu trúc chương trình - Nhận biết thành phần chương trình đơn giản

3 Thái độ

- Ý thức tầm quan trọng mơn học có thái độ học tập nghiêm túc, ln tự tìm hiểu học tập

(10)

1 Gv: Giáo án, máy chiếu, máy tính, phịng chiếu bảng Hs: Học cũ, đọc trước SGK

III PHƯƠNG PHÁP

- Thuyết trình, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

2 Kiểm tra cũ

Câu 1: Nêu thành phần ngơn ngữ lập trình?

Câu 2: Trong Pascal có máy loại tên?nêu quy tắc đặt tên?

3 Bài mới

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

Hoạt động 1: Tìm hiểu cấu trúc chung chương trình GV : Thuyết trình đưa cấu trúc chung

của chương trình :

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

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

những đ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 nhất

hiện 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

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>

2 Các thành phần chương trình 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,

(11)

GV : Khai báo việc đặt tên cho

hằng để tiện sử dụng tránh việc phải viết lặp lại nhiều lần chương trình Khai báo 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 : Nếu giáo viên giải thích để học

sinh hiểu rằng, khai báo biến xin máy tính cấp cho chương trình vùng nhớ để lưu trữ xử lý thông tin nhớ

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ụ khác về

cách viết thân chương trình ngơn ngữ lập trình khác

Trong VISUAL STUDIO 2005 : Imports System.Xml

Khai báo :

- Những sử dụng nhiều lần chương trình thường đặt tên 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 :

- Mọi biến sử dụng chương trình phải khai báo để chưoyng trình dịch biết để xử lý lưu trữ

- Biến mang giá trị gọi biến đơn

(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 tồ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

(12)

GV : Cho học sinh quan sát chương trình

trong ngơn ngữ khác Pascal C+ +.

HS : Quan sát nhận xét cách viết của

hai chương trình ngơn ngữ khác

Thơng qua học sinh cần nhận : hai chương trình thực công việc viết hai ngôn ngữ khác nên hệ thống câu lệnh chương trình khác

Có thể thêm câu lệnh hiển thị xâu vào chương trình Pascal để thể rõ muốn đưa câu thơng báo ta sử dụng lệnh Writeln xâu để dấu nháy đơn

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

Xét hai chương trình đơn giản ngơn ngữ khác sau :

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

Pascal

Program VD; Begin

Write(‘Chao cac ban’); Readline;

End

Chương trình : Trong ngơn ngữ C++ #include<stdio.h>

Main() {

Printf(“Chao cac ban”); }

4 Cũng cố

 Nhắc lại số khái niệm

 Cho chương trình mẫu nhà yêu cầu học sinh phân biệt rõ thành phần chương trình

V PHỤ LỤC

……… ………

………

……… ……… … ………

……… ……… ………

……… ………

……… ………

(13)

Tuần 03 Tiết 05

Ngày soạn: 11/08/2010 Ngày giảng :…/…/………

Bài 4: MỘT SỐ KIỂU DỮ LIỆU CHUẨN Bài 5: KHAI BÁO BIẾN

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

- Biết cấu trúc chung chương trình

- Biết số kiểu liệu chuẩn: nguyên, ký tự, logic, thưc - Biết đực cấu trúc chung khai báo biến

2 Kỹ năng

- Sử dụng kiểu liệu khai báo biến để viết chương trình đơn giản - Hiểu khai báo biến Khai báo đúng, nhận biết khai báo sai

3 Thái độ

- Ý thức tầm quan trọng môn học có thái độ học tập nghiêm túc, ln tự tìm hiểu học tập

II CHUẨN BỊ

1 Gv: Giáo án, máy chiếu, máy tính, phịng chiếu bảng Hs: Học cũ, đọc trước SGK

III PHƯƠNG PHÁP

- Thuyết trình, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

2 Kiểm tra cũ

Câu 1: Nêu cấu trúc chung chương trình? Cách khai báo thành phần của

chương trình?

3 Bài mới

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

Hoạt động 1: Các kiểu liệu chuẩn pascal_Bài 4 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

các 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

như sau :

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

(14)

- Ngơn ngữ lập trình đưa số kiểu liệu chuẩn đơn 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ã

nhưng 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

Tên kiểu Miền giá trị Số

Byte

REAL nằm

(10-38  1038) 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ự trong

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 - Khi viết chương trình ngơn ngữ lập

trình cần tìm hiểu đặc trưng kiểu liệu ngơn ngữ

Hoạt động 2: Khai báo biến_bài 5 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

(15)

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

chú ý đ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. GV: Lấy ví dụ khai báo biến giải

phương trình bậc 2, giải hệ phương trình bậc nhất, tính diên tích tam giác biết cạnh

GV: Phân tích ví dụ đầu, ví du sau cho

học sinh phân tích tự khai báo

GV: Phân tích chữa lại

khai báo sau :

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

Trong đó:

+ Var : từ khóa dùng để khai báo biến + Danh sách biến : tên biến cách nhau

bởi 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 q 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ị

Ví dụ 1:

Khai báo biến giải phương trình ax2+bx+c=0(a<>0)

Var a, b, c, x1, x2, Delta :Real;

Ví du 2: Khai báo biến giải hệ phương trình

bậc

a1x+b1y=c1 a2x+b2y=c2

{Phương pháp thông thường}

Var a1, a2, b1, b2, c1, c2, x, y:Real; {Phương pháp định thức}

Var a1, a2, b1, b2, c1, c2, x, y:Real; D, Dx, Dy :real

Ví du 3: khai báo biến tính diện tích tam giác

biết độ dài cạnh

Var a, b, c, p, S: Real; 4 Cũng cố

 Nhắc lại kiểu liệu đơn giản hay dùng

 Cho nhà số ví dụ việc lưu trữ sống yêu cầu học sinh tìm kiểu liệu tương ứng

V PHỤ LỤC

……… ……… ……… ……… ……… ………

(16)

……… ……… ………

Tuần 03

Tiết 06 Ngày soạn: 11/08/2010

Ngày giảng :…/…/………

Bài 6: PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN I MỤC ĐÍCH, YÊU CẦU

1 Kiến thức

- Biết phép tốn thơng dụng ngơn ngữ lập trình - Biết diễn đạt số hình thức ngơn ngữ lâp trình - Biết chức câu lệnh gán

- Biết cấu trúc câu lệnh gán số hàm chuẩn ngơn ngữ lập trình Pascal

2 Kỹ năng

- Sử dụng phép toán để xây dựng biểu thức - Sử dụng lệnh gán để viết chương trình

3 Thái độ

- Ý thức tầm quan trọng môn học có thái độ học tập nghiêm túc, ln tự tìm hiểu học tập

II CHUẨN BỊ

1 Gv: Giáo án, máy chiếu, máy tính, phịng chiếu bảng Hs: Học cũ, đọc trước SGK

III PHƯƠNG PHÁP

- Thuyết trình, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

2 Kiểm tra cũ

Câu 1: Nêu cú pháp khai báo biến Pascal? Cho ví dụ. 3 Bài mới

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

Hoạt động 1: Phép tốn ngơn ngữ lập trình GV : Dẫn dắt vào bài: Trong viết

chương trình ta thường phải thực tính tốn, thực so sánh để đưa định xem làm việc gì? Vậy chương trình ta viết nào? Có giống với ngơn ngữ tự nhiên hay khơng? Tất ngơn ngữ có sử dụng chúng cách giống khơng ?

GV : Tốn học có phép toán ? HS : Đưa số phép toán thường dùng

trong toán học

GV : Chúng có dùng ngơn

ngữ lập trình ?

Chỉ số phép dùng được, số phép

- Ngôn ngữ lập trình sử dụng đến phép tốn, biểu thức, câu lệnh gán - Ta xét khái niệm ngơn

ngữ Pascal

1 Phép tốn

NNLT Pascal sử dụng số phép toán sau:

- Với số nguyên : +, -, * (nhân), div (chia lấy nguyên), mod (chia lấy dư) - Với số thực : +, -, *, / (chia)

(17)

phải xây dựng từ phép toán khác

VD : Phép lũy thừa ngôn ngữ

nào viết

GV : Mỗi ngôn ngữ khác lại có cách

kí hiệu phép toán khác

=, <>: Cho kết qủa giá trị logic (True False)

- Các phép toán Logic : NOT (phủ định), OR (hoặc), AND (và): thường dùng để kết hợp nhiều biểu thức quan hệ với

Hoạt động 2: Biểu thức số học hàm số học chuẩn GV : Trong tốn học, biểu thức gì?

HS : Đưa khái niệm.

GV : Đưa khái niệm biểu thức lập

trình

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 mình

GV : Phân tích ý kiến học sinh. GV : Đư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 cú

pháp ngơn ngữ lập trình

Đưa số biểu thức toán học yêu cầu em viết chúng ngôn ngữ Pascal

HS : Gọi vài học sinh lên bảng viết. GV : Đặt câu hỏi, muốn tính X2 ta viết nào?

HS : Có thể đưa X*X

GV : Muốn tính ,sinx, cosx,… làm ?

HS : Chưa biết cách tính

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 : Sinx đo độ hay radian ?

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

- Là dãy phép toán +, -, *, / Div Mod từ hằng, biến kiểu số hàm

- Dùng cặp dấu () để qui định trình tự tính tốn

Thứ tự thực phép toán :

- Trong ngoặc trước, ngoặc sau - Nhân chia trước cộng trừ sau

- Giá trị biểu thức có kiểu kiểu biến có miền giá trị lớn biểu thức

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

- Các ngôn ngữ lập trình 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 qủa hàm phụ thuộc vào kiểu đối số

- Đối số hay nhiều biểu thức số học đặt dấu ngoặc () 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 toán hạng

Bảng số hàm chuẩn:

(18)

Hoạt động 3: Biểu thức quan hệ logic GV : Trong lập trình thường ta phải so

sánh hai giá trị trước thực lệnh Biểu thức quan hệ gọi biểu thức so sánh giá trị, cho kết sai (logic)

VD : 3>5: Cho kết sai

GV : Đặt câu hỏi, muốn so sánh nhiều điều

kiện đồng thời làm nào?

HS : Đưa ý kiến (và, hoặc,…)

Đưa ví dụ cách viết ngơn ngữ Pascal

Chú ý : Mỗi ngơn ngữ có cách viết khác

nhau

4 Biểu thức quan hệ Có dạng sau:

<biểu thức 1> <phép tốn quan hệ> <biểu thức 2>

Trong đó:

- Biểu thức biểu thức phải kiểu

- Kết biểu thức quan hệ TRUE FALSE

Ví dụ: A < B;

2*A >= 4+ B

5 Biểu thức logic

- Biểu thức logic đơn giản biến logic

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

Ví dụ:

- 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 (c+ a >b) - Biểu thức điều kiện d” X d’

viết sau:

(x >= 0) and (x <= 5)

Hoạt động 4: Câu lệnh gán GV : Mỗi NNLT có cách viết lệnh gán

khác

GV : Cần ý điều viết lệnh gán? HS : Đưa ý kiến.

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

đó tổng hợp lại: cần ý đến kiểu biến kiểu biểu thức

GV : Minh họa vài lệnh gán một

ví dụ trực quan bảng hình

6 Câu lệnh gán

- Lệnh gán cấu trúc ngơn ngữ lập trình, thường dùng để gán giá trị cho biến

Cấu trúc:

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

- Trong biểu thức phải phù hợp với tên biến Có nghĩa kiểu tên biến phải kiểu với kiểu biểu thức phải bao hàm kiểu biểu thức

(19)

Ví dụ:

X1 := (-b –sqrt(b*b – 4*a*c))/(2*a); X2 := (-b +sqrt(b*b – 4*a*c))/(2*a); I := I + 1;

J := J – 2;

Trong : lệnh thứ tăng giá trị I một

đơn vị, lệnh thứ giảm giá trị biến J hai đơn vị

4 Cũng cố

- Nhắc lại số khái niệm

- Cho tập nhà, tập có sách cho thêm nhiều biểu thức logic để học sinh nhà tính tốn tìm giá trị nó, cho học sinh số biểu thức tốn học u cầu viết tin học (NNLT); cho thêm theo cột, cột biểu thức toán học, cột biểu thức tin học tương ứng tìm chỗ sai biểu thức so với toán

V PHỤ LỤC

……… ……… ………

……… …………

(20)

Tuần 04

Tiết 07 Ngày soạn: 20/08/2010Ngày giảng :…/…/………

Bài 7: CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN

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

(Tiết 07)

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

- Biết ý nghĩa thủ tục vào\ra chuẩn lập trình

- Biết cấu trúc chung thủ tục vào\ra ngơn ngữ lập trình pascal - Biết bước để hồn chỉnh chương trình

- Biết file chương trình Turbo Pascal 7.0

2 Kỹ năng

- Viết lệnh vào\ra liệu

- Biết nhập liệu thực chương trình - Biết khởi động thoát khỏi hệ soạn thảo Turbo Pascal - Soạn thảo chương trình vào máy

- Dịch chương trình để phát lỗi cú pháp

- Thực chương trình để nhập liệu thu kết quả, tìm lỗi thuật tốn sủa lỗi

3 Thái độ

- Ý thức tầm quan trọng mơn học có thái độ học tập nghiêm túc, ln tự tìm hiểu học tập

II CHUẨN BỊ

1 Gv: Giáo án, máy chiếu, máy tính, phịng chiếu bảng Hs: Học cũ, đọc trước SGK

III PHƯƠNG PHÁP

- Thuyết trình, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

2 Kiểm tra cũ

Câu 1: Kể tên cho ví dụ biểu thức số học? Câu 2: Nêu cú pháp câu lệnh gán cho ví dụ 3 Bài mới

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

Hoạt động 1: Các thủ tục chuẩn vào/ra đơn giản_ 7 GV: Khi sử dụng ứng dụng ta thường

nhập thông tin vào, cách ta nhập thông tin lập trình? Làm cách để nhập giá trị từ bàn phím vào cho biến

GV: Diễn giải hoạt động READ/READLN, nêu khác

Trong ngôn ngữ Pascal thủ tục vào chuẩn viết sau :

1 Nhập liệu từ bàn phím

(21)

dùng Read/Readln

GV: Mỗi ngơn ngữ có cach nhập thông tin

vào khác

GV: Đưa hai ví dụ chương trình có

nhập thơng tin vào từ bàn phím

Ví dụ : Xét chương trình sau:

Program VD; Uses crt; Var Tuoi: Byte Begin

Clrscr;

Write(‘Moi ban cho biet tuoi cua ban’); Readln(tuoi);

Write(‘Cam on, tuoi cua ban la’,tuoi, ‘Tuoi’);

Readln; End

GV : Chạy chương trình cho học sinh quan

sát, nhận xét chương trình

Giải thích việc nhập giá trị cho nhiều biến đồng thời

Có thể thay đổi lệnh Readln(a, b, c) ví dụ thánh Read(a, b, c), chạy chương trình để học sinh thấy khác sử dụng hai lệnh

GV : Ta thấy ví dụ phần việc ghi

ra liệu giá trị a, b, c dính liền vào người sử dụng khơng thể phân biệt giá trị biến Vậy làm có cách để hiển thị liệu theo ý muốn người lập trình

GV : Mỗi ngơn ngữ có cách đưa thơng tin

ra hình khác

Lấy thêm ví dụ thủ tục đưa thơng tin hình ngơn ngữ khác

C++: cout …

GV : Giải thích khác Write,

Writeln

Lấy ví dụ minh họa cụ thể chương trình

Có thể lấy liệu phần nhập dữ liệu sửa để học sinh thấy việc khác

READ/READLN(<biến 1>, …,<biến n>);

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 hơn. READLN ln chờ gõ phím Enter.

Ví dụ : Xét chương trình sau:

Program VD; Uses crt;

Var a, b, c : Integer; Begin

Clrscr;

Write(‘Moi ban nhap so:’); Readln(a, b, c);

Write(‘Ban vua nhap vao so:, a, b, c); Readln;

End

Việc lập liệu cho nhiều biến giá trị biến phải cách dấu cách dấu Enter,máy gán giá trị cho biến theo thứ tự lệnh tương ứng

2 Đưa liệu hình

- Để đưa liệu hình vị trí trỏ, ta dùng thủ tục WRITE WRITELN với cấu trúc :

Write/Writeln(<Giá trị 1>, <Giá trị 2>, …,<Giá trị n>);

- Trong Giá trị tên biến, tên hằng, giá trị cụ thể, biểu thức tên hàm

Ví dụ:

Write(a, b, c);

Writeln(‘Gia tri cua N la : ’,N); -Thủ tục Writeln sau đưa kết chuyển trỏ hình xuống đầu dịng

(22)

lệnh Write Writeln

Minh họa quy cách đưa thông tin chương trình

Sửa lại ví dụ phần để liệu số phân cách – người dùng phân biệt

GV : Đưa ví dụ : Ví dụ 1:

Để nhập giá trị từ bàn phím ta thường dùng:

Write(‘Nhap gia tri cua M:’); {1} Readln(M) {2}

Trong đó: {1} Đưa thơng báo: Nhap gia tri cua M:

Còn {2} Dùng để đọc giá trị gán cho biến M

Cấu trúc {1}, {2} gọi giao tiếp người – máy

Kết thực :<Độ rộng>:<Số chữ số

thập phân>

Kết khác: :<Độ rộng>

Ví dụ: Write(N : 8);

Writeln(‘X = ’,X:8:3);

Ví dụ : Xét chương trình đầy đủ sau:

Program VD2; Var N : Integer; Begin

Write(‘lop ban co bao nhieu nguoi:’); Readln(N);

Write(‘Vay la ban co’,N -1,‘nguoi ban lop’);

Write(‘Go Enter de ket thuc chuong trinh’);

Readln; End

Hoạt động 2: Soạn thảo, dịch, thực hiệu chỉnh chương trình_ 8 GV : Giới thiệu số tập tin vần thiết để

Turbo Pascal chạy được, hướng dẫn em cách khởi động Pascal máy tính

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

GV : Giới thiệu số thao tác thường

dùng soạn thảo chương trình mơi trường soạn thảo Turbo Pascal

GV : Thực vài lần thao tác

này để em nhận thấy mức độ tệin lợi soạn thảo chạy chương trình

GV : Viết chương trình ví dụ, thực

hiện thao tác sửa lỗi…

Có thể lấy ví dụ yêu cầu người dùng nhập vào năm sinh, trả kết tuổi

Màn hình làm việc ngơn ngữ Pascal có dạng sau:

Một số thao tác thường dùng trong Pascal:

-Xuống dòng: Enter -Ghi file vào đĩa: F2 -Mở file có: F3

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

-Chạy chương trình: Ctrl + F9

(23)

người

4 Cũng cố

 Lấy ví dụ đơn giản lập trình trực tiếp máycho học sinh quan sát  Ra tập nhà

V PHỤ LỤC

(24)

Tuần 04-05 Tiết 08-09

Ngày soạn: 22/08/2010 Ngày giảng :…/…/………

BÀI TẬP VÀ THỰC HÀNH 1 I MỤC ĐÍCH, YÊU CẦ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Ị

1 Gv: Giáo án, máy chiếu, máy tính, phịng chiếu bảng Hs: Học cũ, chuẩn bị thực hành SGK

III PHƯƠNG PHÁP

- Thuyết trình, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề

IV NỘI DUNG BÀI GIẢNG

Tiết 08

1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

Kiểm tra cũ: Thông qua dạy Bài mới

Hoạt động GV HS Ghi bảng

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

- GV kiểm tra chuẩn bị nội dung thực hành học sinh

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

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

(25)

- 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

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

- 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

Hs:

- 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

Gv:

- 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

- Nhấn phím Ctrl+F9 Hs:

- Thơng báo lỗi

Gv: Vì lại có lỗi xuất hiện? sửa lại cho đúng Hs: Suy nghĩ trả lời: delta âm.

+ Sửa lại chương trình khơng dùng đến biến D thực chương trình sửa

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

của số âm

- Thông báo lỗi với lý delta pt số âm + Thực chương trình sửa với liệu ; -5 ; Thơng báo kết

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

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

clrscr;

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

x2:=(-b+ sqrt(b*b - 4a*b*c))/ (2*a);

(26)

= ‘, x2 : : 2);

- x1 = 2.00 x2 = 3.00

4 Cũng cố

(27)(28)

……… ………

……… ………

……… ………

……… ………

……… ……… ………

Tiết 09

1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

Kiểm tra cũ: Thông qua dạy Bài mới

Rèn luyện thêm kỹ lập trình cho học sinh

Hoạt động Gv Hs Ghi bảng

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

Hs: Nghe nhận nhiệm vụ.

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

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:

Hs

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

+ 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))

Chương trình: Program

Tinh_dien_tich_tam_giac;

(29)

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

- Hs thông báo kết quả.

Begin

Write(‘a, b, c =’);readln(a, b,c); P:=(a+b+c)/2;

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

Write(); Readln

End. 4 Cũng cố

(30)

vào/

+ Xác định thuật toán + Soạn 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

V PHỤ LỤC 2

……… ………

……… ………

……… ………

……… ………

……… ……… ………

Tuần 05

Tiết 10 Ngày soạn: 28/08/2010Ngày giảng :…/…/………

BÀI TẬP I MỤC ĐÍCH, YÊU CẦU

(31)

Kỹ năng

- Rèn luyện kỹ vận dụng thủ tục vào/ra chuẩn - Biết xác định input output toán

Thái độ

- Tự giác, tích cực, chủ động giải tập

II CHUẨN BỊ 1 Gv

- Máy chiếu projector, máy vi tính giới thiệu, minh họa số tập mẫu (chương trình soạn trước)

Hs.

- Sách giáo khoa, tập

III PHƯƠNG PHÁP

- Thuyết trình, gợi mở, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề - Làm việc theo nhóm

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

2 Kiểm tra cũ

Kiểm tra giảng

3 Bài mới

Hoạt động Gv & Hs Nội dung

Hoạt động 1: Nhắc lại kiến thức học Gv Câu đến câu chuyển thành câu hỏi

đầu dạy, lấy điểm cũ

Hs Trả lời

Gv Nhận xé cho điểm

Hoạt động 2: hướng dẫn giải số tập Gv Chiếu đề lên bảng yêu cầu 2

học sinh lên bảng làm tập

Hs Lên bảng làm theo yêu cầu

Gv Nêu đề Hs.

Gv Hs. Gv Hs. Gv Hs.

6.Bg: Biểu thức sang Pascal

(1+z)*(x+y/z)/(a-1/(1+x*x*x))) a) 2a

b b)

abc

c) b

(32)

- Nhắc lại cấu trúc câu lệnh rẽ nhánh câu lệnh lặp - Yêu cầu học sinh làm tập lại

V PHỤ LỤC

……… ………

……… ………

……… ………

……… ………

(33)

Tuần 06

(34)

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

- Hiểu nhu cầu cáu trúc rẽ nhánh biểu diễn thuật toán

- Học sinh nắm vững ý nghĩa cú pháp câu lệnh rẽ nhánh dạng khuyết dạng đủ, hiểu cách sử dụng câu lệnh ghép

2 Kĩ năng:

- Sử dụng cấu trúc rẽ nhánh mô tả thuật toán số toán đơn giản

- Viết lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ áp dụng để thể thuật toán số toán đơn giản

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Ị 1 Giáo viên:

+ Soạn giáo án

+ Chuẩn bị bảng phụ sau:

2 Học sinh: học cũ, đọc chuẩn bị mới. III PHƯƠNG PHÁP

- Thuyết trình, gợi mở, vấn đáp

- Diễn giải, đàm thoại, giải tình có vấn đề - Làm việc theo nhóm

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

+ Chào thầy cô

+ Cán lớp báo cáo sỉ số + Chỉnh đốn trang phục

2 Kiểm tra cũ:

Bài toán: cho số nguyên a, b; tìm Max(a,b)

Yêu cầu: viết phần tên, phần khai báo, câu lệnh nhập a, b Nêu thuật tốn tìm Max(a,b)

3 Bài mới

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

Hoạt động 1: Khái niệm rẽ nhánh

Câu lệnh IF

Điều kiện Đ

S

Câu lệnh IF

Điều kiện Đ S

(35)

luận phương pháp giải toán

Đưa khái niệm rẽ nhánh lập trình

1 Khái niệm rẽ nhánh

Ví dụ : Để viết chương trình giải phương

trình bậc 2, ta phải: Tính  = b2 – 4ac;

Sau tùy thuộc vào giá trị  mà ta có tính nghiệm hay khơng

Trong thực tế :

- Nếu  <0 phương trình vơ nghiệm - Nếu  >=0 phương trình có nghiệm - Như tùy thuộc vào giá trị  mà

ta đưa vơ nghiệm hay có nghiệm - Hoặc nói : Nếu  < phương

trình vơ nghiệm, ngược lại phương trình có nghiệm

=>Như ta thấy số mệnh đề có dạng + Nếu … thì…

+ Nếu … thì… ngược lại

Cấu trúc gọi cấu trúc rẽ nhánh

Hoạt động 2: Câu lệnh If_Then Gv Mỗi NNLT có cách thể rẽ

nhánh khác

GV : Đưa cấu trúc lệnh rẽ nhánh trong

Pascal Nhắc nhở học sinh cấu trúc quan trọng, sử dụng nhiều chương trình sau

GV : Lưu ý em sau Then sau Else

chỉ có lệnh chương trình

GV : Với hai dạng này, dạng dùng

thuận tiện ?

HS : Tìm câu trả lời, giáo viên gợi ý để

học sinh đưa tùy trường hợp cụ thể mà dùng dạng thiếu hay dạng đủ

Các NNLT thường cung cấp câu lệnh để mô tả cấu trúc rẽ nhánh

2 Câu lệnh If – Then

Pascal dùng câu lệnh If – then để mô tả việc rẽ nhánh tương ứng với hai loại mệnh đề rẽ nhánh

- Dạng thiếu :

If <điều kiện> Then <câu lệnh>;

- Dạng đầy đủ :

If <điều kiện> Then < câu lệnh 1> Else <câu lệnh 2>

Trong đó:

- Điều kiện : Là biểu thức quan hệ Logic. - Câu lệnh, câu lệnh 1, câu lệnh câu lệnh Pascal

Kiểm tra >=0 Thông báo

vô nghiệm Tính đưa nghiệm

(36)

Đưa ví dụ có sử dụng lệnh rẽ nhánh, khơng có lệnh rẽ nhánh khơng thể thực

GV : VD3: Cách nhanh hơn, tiện

hơn?

=> Cách tiện

GV : Phân tích tiện lợi cách 2

và số lệnh mà máy phải thực

- Dạng thiếu : Nếu điều kiện câu

lệnh thực hiện, điều kiện sai khơng thực

- Dạng đủ : Nếu điều kiện thực hiện

câu lệnh 1, điều kệin sai thực câu lệnh

VD : If (X Mod = 0) Then

WRITE(x,’La so chan’);

VD 2: If DELTA <0 Then

WRITE(‘PT Vo Nghiem’) Else WRITE(‘PT co nghiem’);

VD 3: Tìm giá trị lớn (max) số a

và b

Cách :

Max :=a; If b >a Then max :=b;

Cách :

If a >b Then max :=a Else max :=b; Hoạt động 3: Câu lệnh ghép

GV : Trong câu lệnh If – Then muốn

thực nhiều lệnh sau Then hay nhiều lệnh sau Else làm ?

HS : Phát biểu ý kiến mình.

GV : Khi ta cần gộp nhiều lệnh lại

và coi câu lệnh chương trình Các ngơn ngữ lập trình thường có cấu trúc để giúp ta thực hệin điều

GV : Giới thiệu lệnh ghép vài

ngôn ngữ lập trình khác C==: {}

VB: If – Then – Endif

GV : Chỉ rõ đâu lệnh ghép trong

chuỗi lệnh

GV nên soạn sẵn hai chương trình

này cho em quan sát cách viết chương trình để em hình thành dần cách viết chương trình

3 Câu lệnh ghép

- Trong ngôn ngữ Pascal, Câu lệnh ghép có dạng:

Begin

<các câu lệnh>

End ; Chú ý :

- Sau End phải dấu; trước Else khơng chứa dấu ;

- Từ nói đến câu lệnh câu lệnh đơn câu lệnh ghép.

Ví dụ : Đoạn chương trình sau ngơn

ngữ Pascal có sử dụng chương trình ghép IF DELTA <0 THEN

WRITELN(‘Phuong trinh vo nghiem’) ELSE

BEGIN

X1 :=(-B-SQRT(DELTA))/(2*A); X2 := - B/A – X1;

WRITELN(‘X1=’,X1:6:3,’X2=’,X2:6: 3);

(37)

lệnh chương trình dùng để làm

Hoạt động 4: Một số ví dụ minh họa

Nếu có nhiều thời gian, GV gõ lệnh chương trình, gõ đến đâu giải thích cho học sinh đến

Nếu cịn thời gian, gọi học sinh lên bảng viết câu lệnh If – Then cho một số toán đơn giản

Có thể viết chương trình mẫu cho học sinh xong, yêu cầu em gõ lại chương trình vừa theo dõi mà khơng cần nhìn vào mẫu

4 Một số ví dụ

Quan sát chương trình sau ngơn ngữ lập trình Pascal

Ví dụ :

Tìm nghiệm thực phương trình bậc hai AX2 + BX + C= 0

Ví dụ :

Tìm số ngày năm: Năm nhuận năm chia hết cho 400 chia hết cho không chia hết cho 100

4 Cũng cố

- Nhắc lại số khái niệm

- Nhắc lại cấu trúc câu lệnh IF – THEN, IF – THEN – ELSE thơng qua ví dụ - Cho tập nhà

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ……… ……… ……… ……… ………

Tuần 06

(38)

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

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

- Biết cấu trúc chung lệnh lặp FOR ngơn ngữ lập trình - Hiểu cấu trúc lặp với số lần biết trước câu lệnh FOR - DO

2 Kỹ năng: Bước đầu sử dụng lệnh lặp FOR để lập trình giải số bài

toán đơn giản

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Ị

1 Giáo viên: SGK, Giáo án, Máy chiếu Projector 2 Học sinh: HS: SGK, vỏ

III PHƯƠNG PHÁP

- Gợi mở, vấn đáp - Làm việc theo nhóm

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

- Chào thầy cô

- Cán lớp báo cáo sỉ số - Chỉnh đốn trang phục

2 Kiểm tra cũ:

Cho biết kết doạn chương trình sau

Program VD; Begin

Writeln (‘PASCAL’); Writeln (‘PASCAL’); Writeln (‘PASCAL’); Writeln (‘PASCAL’); Writeln (‘PASCAL’); Readln;

End. 3 Bài mới

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

Hoạt động 1: Tìm hiểu khái niệm lặp Gv: Nếu giải toán với việc in

khoảng 10 dịng có từ PASCAL?

Hs: Chương trình dài dịng

Gv: Có nhận xét dịng lệnh trong

chương trình trên?

Hs: Lặp lại nhiều lần với câu lệnh: Writeln Gv: Đối với thuật tốn có thao

tác phải thực lặp lặp lại số lần máy tính thực hiệu thao tác lặp cấu trúc lặp

GV : Đưa toán, yêu cầu học sinh tìm

(39)

thể đưa cách giải khác

GV : Đưa cách giải cho toán

Giải theo lệnh S1:=0;

If (1/a>0.0001) then S1:=S1+ 1/a;

If (1/(a+1)>0.0001) then S1:=S1+ /(a+1); If (1/(a+2)>0.0001) then S1:=S1+ /(a+2); If (1/(a+3)>0.0001) then S1:=S1+ /(a+3); …

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

cách ?

Với N = 100 lặp 100 lần theo việc kiểm tra điều kiện khơng biết phải làm theo cách nào? Theo hai trường hợp dài

Để học sinh hiểu khái niệm lặp, giáo viên đưa số ví dụ thực tế tính tốn lặp lặp lại nhiều lần

VD1 : Bài toá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 vào gốc gửi hay nói cách khác gốc tháng sau = gốc + lãi tháng trước

VD 2: Tính tổng đoạn số nguyên

mà không dùng cơng thức

Bài tốn : Tính tổng

S1= 1100

2 1 1        a a a a

Bài tốn : Tính Tổng

S2=

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

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

a

Cách giải :

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

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

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

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

Trong lập trình, có thao tác phải 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 với số lần biết trước

 Lặp với số lần trước NNLT cung cấp số câu lệnh để mô tả cấu trúc lặp

Sau tìm hiểu câu lệnh ngôn ngữ Pascal

(40)

So sánh hai thuật toán sau: Thuật toán

Tong_1a

B1: S:=1/a; N:=0; B2: N:=N+1; B3: Nếu N >100 chuyển sang bước 5;

B4: S:= S + 1/(a+ N) quay lại B2;

B5: Đưa S kết thúc

Thuật toán Tong_1b

B1: S:=1/a;

N:=101; B2: N := N -1; B3: Nếu N < chuyển sang bước 5;

B4: S:= S+ 1/ (a+N) quay lại B2;

B5: Đưa S kết thúc

GV : Gọi số học sinh nhận xét 2

thuật toán số vấn đề :  Thuật tốn có lặp không?  Lặp lần?

 Hai thuật toán giống khác nào?

 Cái thay đổi thuật tốn này? Sau so sánh hai thuật toán trên, giáo viên đưa hai cách lặp ngơn ngữ Pascal, giải thích ý nghĩa thành phần câu lệnh

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

Trong Pascal, có lọai câu lệnh lặp có số lần biết trước :

- Lặp dạng tiến:

For <biến đếm> := <giá trị đầu> to <giá

trị cuối> <câu lệnh>; - Lặp dạng lùi

For <biến đếm> := <giá trị cuối>

downto <giá trị đầui> <câu lệnh>; Trong đó:

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

Giá trị đầu, giá trị cuối biểu thức kiểu với biến đếm Giá trị đầu phải nhỏ hay giá trị cuối.

 Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối  Ở dạng lặp lùi: Biến đếm tự giảm

dần từ giá trị cuối đến giá trị đầu Tương ứng với giá trị biến đếm, câu lệnh sau thực lần

4 Cũng cố

- Nắm lại cấu trúc lặp

- Nhớ dạng tiến lùi câu lệnh FOR - DO Pascal - Xem trước

V PHỤ LỤC

(41)

Tiết 13 Ngày giảng :…/…/…

Bài 10: CẤU TRÚC LẶP I MỤC ĐÍCH, YÊU CẦU

1 Kiến thức:

- Biết cấu trúc chung lệnh lặp FOR ngôn ngữ lập trình - Hiểu cấu trúc lặp với số lần biết trước câu lệnh FOR - DO

2 Kỹ năng: Sử dụng lệnh lặp FOR để lập trình giải số tốn đơn

giản

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Ị

1 Giáo viên: SGK, Giáo án, Máy chiếu Projector 2 Học sinh: HS: SGK, vỏ

III PHƯƠNG PHÁP

- Gợi mở, vấn đáp - Làm việc theo nhóm

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

- Chào thầy cô

- Cán lớp báo cáo sỉ số - Chỉnh đốn trang phục

2 Kiểm tra cũ:

Nêu cấu trúc câu lệnh For_do (dạng tiến dạng lùi)?giải thích ý nghĩa câu lệnh?

3 Bài mới:

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

Hoạt động 1: vận dụng lệnh For_to_do. Gv Chiếu thuật toán toán

tong_1a

Gv Viết chương trình pascal tính tong_1a giải thích thành phần câu lệnh

Hs Học sinh ý nghe giảng

Ví dụ

Ví dụ : Chương trình cài đặt thuật tốn

tong_1a

tong_1a:

program tong_1a; var a,N:integer;

(42)

GV : Lấy ví dụ minh họa trong

Pascal để em thấy thay đổi giá trị biến đếm chương trình thực Pascal Vd: a=2;

Write(‘nhap gia tri cua a=’);readln(a); S:=1/a;

For N:=1 to 100 S:=S+1/(a+N)

Write(S:8:4); readln

End.

Hoạt động 2: Vận dụng câu lệnh For_downto_do. Gv Chiếu thuật toán tốn

tong_1b

nhóm viết tốn với thuật tốn tính

tong_1b.

Hs Học sinh thảo luận nhóm

Báo cáo kết

tong_1b:

program tong_1a; var a,N:integer;

S:real;

Begin

Write(‘nhap gia tri cua a=’);readln(a); S:=1/a;

For N:=100 downto 100 S:=S+1/(a+N)

Write(S:8:4); readln

End.

Hoạt động 3: Kết hợp lệnh lặp lệnh rẽ nhánh

Gv Chiếu đề ví dụ Định hướng phương pháp yêu cầu học sinh lên bảng làm

Hs Suy nghĩ trả lời

Gv Với ví dụ này, giáo viên nên gõ

sẵn chương trình Sau chữa cho học sinh quan sát việc chạy chương trình, giáo viên vừa cho chạy chương trình vừa giải thích ý nghĩa lệnh chương trình (chú ý nhiều đến lệnh lặp)

Ví dụ : Tính tổng số nguyên chia hết cho 3

hoặc phạm vi từ M đến N (M<N)

Var M,N,i:Integer; Begin

Write(‘nhap so M nho hon so N’); Write(‘M, N =’); Readln(M,N); T:=0;

For i:=M to N

If (i mod =0) or (i mod 5=0) then T:=T+I;

Write(‘Ket qua’,T); Readln

End.

4 Củng cố

- Nhắc lại số khái niệm - Nhắc lại cấu trúc câu lệnh - Cho tập nhà

(43)

……… ……… ……… ……… ……… ……… ……… ………

Tuần 07

Tiết 14 Ngày soạn: 10/09/2010Ngày giảng :…/…/…

Bài 10: CẤU TRÚC LẶP I MỤC ĐÍCH, YÊU CẦU

1 Kiến thức:

- Biết cấu trúc chung lệnh lặp WHILE ngơn ngữ lập trình. - Hiểu cấu trúc lặp với số lần trước câu lệnh While_do

2 Kỹ năng: Sử dụng lệnh lặp While để lập trình giải số toán

đơn giản

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Ị

1 Giáo viên: SGK, Giáo án, Máy chiếu Projector 2 Học sinh: HS: SGK, vỏ

III PHƯƠNG PHÁP

- Gợi mở, vấn đáp - Làm việc theo nhóm

IV NỘI DUNG BÀI GIẢNG 1 Ổn định lớp:

- Chào thầy cô

- Cán lớp báo cáo sỉ số - Chỉnh đốn trang phục

2 Kiểm tra cũ:

Dùng câu lệnh lặp For_do tính tổng sau S=12+32+52+…+(2n-1)2 với n nhập vào từ bàn phím

3.Bài mới:

Hoạt động Gv & Hs Nội dung

(44)

cầu học sinh tự xây dựng thuật toán giải toán 2, tự xây dựng thuật tốn em hiểu lặp khơng biết trước số lần

Đưa thêm ví dụ : Nhắc lại toán gửi tiền vào ngân hàng: Nếu có số tiền A, muốn gửi vào ngân hàng để số tiền B > A cần gửi với lãi suất k%

Yêu cầu học sinh đưa cách giải cho toán

GV : Phân tích phương án trả lời học

sinh sau đưa lời giải cho tốn

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

Bước : S :=1/a; N :=0;

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

Bước 3: N :=N +1;

Bước 4: S := S+ 1/(a+N) quay lại bước 2; Bước 5: Đưa kết qủa S hình kết thúc

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

(45)

Do Trong Pascal, giải thích ý nghĩa thành phần

HS : Lắng nghe ghi chép.

Gv: Đưa toán

- Định hướng học sinh phân tích đưa thuật tốn

Hs Nghe trả lời

Gv Cài đặt thuật tốn, chạy thử chương trình Giải thích dịng lệnh chương trình

Hs Nghe giảng

Gv Đưa ví dụ

Phân tích, định hướng yêu cầu Hs nêu thuật toán

Hs Suy nghĩ trả lời

Gv Phân tích thuật tốn chia lớp thành

4 nhóm Cho học sinh cài đặt thuật toán Hs Cài đặt thuật toán

Báo cáo kết nhóm

Gv Sửa chiếu chương trình làm sẳn chạy chương trình cho hs quan sát Hs Chú ý quan sát ghi

_ Pascal sử dụng câu lệnh lặp While

- Do để tổ chức lặp với số lần chưa viết sau

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

- Điều kiện biểu thức quan hệ logic. - Câu lệnh câu lệnh Pascal. Ý nghĩa : Khi điều kiện cịn cịn

thực câu lệnh sau Do sau lại quay lại kiểm tra điều kiện.

Bài toán 2:

b1: S1/a; N0;

b2: Nếu 1/(a+N)<0.0001 Chuyển đến b5 b3: NN+1;

b4: SS+1/(a+N) quay lại bước b5: Đưa S hình

Chương trình:

Var a,N:Integer;

S: real;

Begin

Write(‘Nhap gia tri a=’);readln(a); While not(1/(a+N)<0.0001) do

Begin

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

End;

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

End.

Ví dụ : Tìm ước chung lớn M và

N

Thuật toán :

B1: Nếu M = N ƯCLN := M; Kết thúc

B2: Nếu M > N M := M – N quay lại B1, ngược lại N := N – M quay lại B1 Sau chương trình tìm UCLN;

4 Củng cố

- Nhắc lại cấu trúc câu lệnh lặp trước số lần lặp While_do - Cho tập nhà

(46)

……… ……… ……… ……… Tuần 08

Tiết 15-16 Ngày soạn: 10/09/2010Ngày giảng :…/…/…

BÀI TẬP VÀ THỰC HÀNH 2 I MỤC ĐÍCH, YÊU CẦU

1 Kiến thức:

- Nắm cấu trúc sơ đồ thực cấu trúc rẽ nhánh

2 Kỹ năng:

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

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Ị

1 Giáo viên: SGK, Giáo án, Máy chiếu Projector 2 Học sinh: HS: SGK, vỏ

III PHƯƠNG PHÁP

- Gợi mở, vấn đáp - Làm việc theo nhóm

IV NỘI DUNG BÀI GIẢNG

Tiết 15

1 Ổn định lớp:

- Chào thầy cô

- Cán lớp báo cáo sỉ số - Chỉnh đốn trang phục

2 Kiểm tra cũ:

Dùng câu lệnh lặp For_do tính tổng sau S=12+32+52+…+(2n-1)2 với n nhập vào từ bàn phím

3.Bài mới:

Làm quen với chương trình cơng cụ hiệu chỉnh chương trình

a Mục tiêu

- Học sinh hiểu nội dung chương trình kết sau thực chương trình Biết cơng cụ hiệu chỉnh chương trình cần thiết thực bước xem kết trung gian

b nội dung

- Ba số nguyên dương a, b, c gọi số Pitago tổng bình phương hai số bình phương số cịn lại

- u cầu: Viết chương trình nhập từ bàn phím ba số ngun dương a, b, c kiểm tra xem chúng có phải số Pitago hay không

Hoạt động Gv & Hs Nội dung

Gv Gợi ý để học sinh nêu khái niện số Pitago

Hs Theo dõi dẫn dắt để nêu khái niệm số Pitago

Gv Yêu cầu học sinh lấy ví dụ cụ thể

1 Bộ số Pitago

Tổng bình phương hai số bình phương số lại a2=b2+c2

(47)

Gv Để kiểm tra ba số a,b,c có phải số Pitago ta phải kiểm tra đẳng thức nào?

Hs Dựa vào khái niệm trả lời

Gv Yêu cầu học sinh soạn vào máy theo yêu cầu

Hs Làm

Gv Yêu cầu học sinh lưu chương trình, sốt lỗi, chạy chương trìn,… để học sinh làm quen với công cụ môi trường Turbo pascal 7.0

Nhập số để kiểm tra thuật toán Vd: / 10 / ……

Hs Làm theo yêu cầu gv

a, b, c số Pitago xãy đẳng thức sau

a2 = b2 + c2. b2 = a2 + c2. c2 = a2 + b2.

Program Pitago; Var a, b, c: Integer; Begin

Write(‘Nhap a, b, c=’);readln(a, b, c);

If (a2 = b2 + c2 ) or ( b2 = a2 + c2 ) or ( c2 = a2 + b2) then write(a, b, c ,‘la bo ba

Pitago’)

Else write(‘khong phai la bo ba pitago’); readln

End.

F2 (File/save): Lưu chương trình F9 : Sốt lỗi chương trình Ctrl+ F9 : Chạy chương trình

………

4 Củng cố

- Nhắc lại cấu trúc câu lệnh rẽ nhánh If_then

- Các thao tác việc soạn thảo biên dịch chương trình

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ……… ……… ………

Tiết 16

1 Ổn định lớp:

- Chào thầy cô

- Cán lớp báo cáo sỉ số - Chỉnh đốn trang phục

2 Kiểm tra cũ:

Trong giảng

3.Bài mới:

(48)

trúc liệu lệnh phù hợp để lập trình

(49)

- Nhắc lại cấu trúc câu lệnh rẽ nhánh If_then - Cho tập nhà

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ……… ……… ………

Tuần 09

Tiết 17 Ngày soạn: 18/09/2010Ngày giảng :…/…/…

BÀI TẬP CHƯƠNG 3 I MỤC ĐÍCH, YÊU CẦU

1 Kiến thức

- Biết sử dụng lệnh lặp For Do - Biết sử dụng lệnh lặp While Do

2 Kĩ năng:

- Bước đầu sử dụng lệnh lặp For , While Do để lập trình giải số tốn đơn giản

- Phân biệt giống khác cấu trúc lặp For While

- Bước đầu biết lựa chọn dạng lệnh lặp để lập trình giải số tốn đơn giản

3 Tư thái độ: Tích cực học tập, cẩn thận , xác. II CHUẨN BỊ

1 Giáo viên: Sách giáo khoa, sách giáo viên, số tập áp dụng 2 Học sinh: sgk, chuẩn bị tập trước

III PHƯƠNG PHÁP

1 Phương pháp: Gợi mở, vấn đáp, đan xen hoạt động nhóm 2 Phương tiện: Giáo án.

IV TIẾN TRÌNH BÀI HỌC 1 Ổn định lớp, kiểm tra sĩ số.

2 Kiểm tra cũ Kiểm tra giảng bài 3 Bài mới

Hoạt động Gv & Hs Nội dung

Hoạt động 1: Rèn luyện kĩ vận dụng câu lệnh For câu lệnh rẽ nhánh If

Gv Dẫn dắt: Từ toán KTBC trên, ta y/cầu tính đưa hình tổng số chẵn tổng số lẻ phạm vi từ a đến b Ghi bảng (sửa lại nội dung đề toán)

Bài 1: Viết CT nhập vào số nguyên

(50)

Hs -Ghi đề tốn

-Lắng nghe, phân tích tốn trả lời:

Gv - So sánh với tốn trước có khác? - Ta cần đưa hình giá trị?

- Việc cần thực câu lệnh lặp gì?

- Hãy mô tả việc lệnh lặp For? Hs Đứng chổ trả lời:

For I:=a To b Do If I mod =0 then S1:=S1+I else S2:=S2+I ;

Gv Cho hs thảo luận nhóm Hs Học sinh thảo luận nhóm Báo cáo kết theo nhóm

Gv Nhận xét chỉnh sửa cho chạy thử chương trình.(chương trình soạn trước)

Tl: tính tổng số chẵn tổng số lẻ riêng

Tl: giá trị (S1: tổng chẵn; S2: tổng lẻ)

Tl: Kiểm tra biến đếm i : i chẵn S1:=S1+i ngược lại (i lẻ)thì S2:=S2+i

Chương trình

Var a, b, i , S1, S2 : longint; Begin

Write(‘Nhap a va b (a<b): ‘); Readln(a, b);

S1 := 0; S2 := 0; For i := a To b Do If i mod =

then S1 := S1 + i else S2 := S2 + i; Writeln(‘Tong chan: ’, S1,

’ Tong le: ’,S2); Readln

End.

Hoạt động 2: Tiếp tục vận dụng câu lệnh lặp For để giải toán đơn giản

Gv Nêu đề tốn (Ghi bảng)

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

- Vậy, cơng thức tính tiền thu sau tháng nào?

- câu lệnh lặp lặp lần?

- Xác định giá trị đầu giá trị cuối câu lệnh For để thực việc lặp trên?

Hs Đọc đề bài, phân tích trả lời câu hỏi

-Thảo luận nhóm tự viết chương trình

Gv Chuẩn hóa lại làm hs chương

trình mẫu (treo chtrình chuẩn bị bảng phụ)

- Chạy chương trình

- Thử nghiệm với năm, 14 tháng,…

Hs Quan sát chtrình giáo viên ghi nhớ.

Bài 2: Ơng Ba có số tiền S, ông gửi

tiết kiệm ngân hàng với lãi suất 1.5%/tháng Hỏi sau 12 tháng gửi (không rút tiền lãi hàng tháng), ông ta số tiền bao nhiêu?

Phân tích

Tl: Với số tiền S, sau tháng có lãi là: 0.015*S

Số tiền cộng vào số tiền ban đầu để tính lãi cho tháng Tl: S := S + 0.015*S;

Tl: 12 lần

Tl: gtrị đầu 1; gtrị cuối 12

Cài đặt chương trình Var s:real; i:byte; Begin

Write(‘So tien ban dau: ’); Readln(S);

For i:= To 12 Do S:= S + 0.015*S;

Writeln(‘So tien nhan duoc la: ’,S:8:3);

Readln

(51)

toán đơn giản. Gv hướng dẫn học sinh tìm thuật tốn

- Hs nghe giảng

Gv phân nhóm cho hs thảo luận tính tổng sử

dụng lệnh While_do

Hs thảo luận nhóm

- Báo cáo kết

- Chú ý theo dõi nhận xét - Ghi chép

Gv treo kết hs lên gọi hs lên trình bày

* Chuẩn hóa lại làm hs chương trình mẫu (treo chtrình chuẩn bị bảng phụ)

Bài : Tính tổng sau. S n      Phân tích

b1: S0; i0;

b2:Nếu i<n Chuyển đến b5 b3: ii+1;

b4: SS+i; quay lại bước b5: Đưa S hình

Cài đặt chương trình Program vd;

Var I,n, S:integer; Begin

Writeln(‘Nhập vào gtrị n = ’); S:=0;

i:=0;

While i<=n do Begin

S:=S+1; Inc(i);

End;

Writeln(‘Tổng ’,n,’ số ‘,S); Readln;

End. 4 Cũng cố, dăn dò

- Cấu trúc chung Câu lệnh lặp While Do, Câu lệnh lặp For - Về nhà xem lại tập giải làm tập lại sgk

V PHỤ LỤC

(52)

Tiết 18 Ngày giảng :…/…/…

KIỂM TRA TIẾT I MỤC ĐÍCH, YÊU CẦU

1 Mục tiêu đánh giá:

Đánh giá kết học tập học sinh sau học xong chương II:

Các thành phần sở Ngơn ngữ Pascal; phép tốn, biểu thức, câu lệnh gán; tổ chức vào đơn giản, cấu trúc rẽ nhánh lặp

2 Yêu cầu đề:

- Về kiến thức: kiểm tra kiến thức HS quy tắc đặt tên biến; biết cách khai báo; viết biểu thức; hiểu câu lệnh gán

- Vận dụng kiến thức biểu thức, câu lệnh gán, vào đơn giản, cấu trúc rẽ nhánh lặp

II NỘI DUNG

1. Ma trận đề:

Nội dung-Điểm Mức độ

Đề 1 Đề 2

Biết Câu 1,

1 điểm

Câu 1,

1 điểm

Hiểu Câu 3, 5,

4 điểm

Câu 3, 5,

4 điểm

Vận dụng Câu 4, 6, 7, 8, 10

5 điểm

Câu 4, 6, 7, 8, 10

5 điểm

Tổng 10 câu

10 điểm 10 câu 10 điểm

2 Nội dung đề kiểm tra:

(53)

A Phần trắc nghiệm: 0,5 điểm/ câu

Câu Câu Câu Câu Câu Câu Câu Câu

Đề C B C C B B C D

Đề C D B C A D B B

B Phần tự luận: Đề 1:

Câu (3điểm) Dòng 1: khai báo biến i thuộc kiểu số nguyên (Byte).

Dòng 2: gán giá trị 100 cho biến i

Dịng 3: Đưa xâu kí tự giá trị biến i hình Dòng 4: gán giá trị biểu thức i+10 cho biến i

Dịng 5: đưa xâu kí tự giá trị i lúc sau hình chừa chỗ để ghi giá trị i

Dịng 6: Tạm dừng chương trình để quan sát kết hình

Câu 10: (3điểm)

Var i, n, S : Integer; Begin

S := 0;

For i := to n Do

If i Mod <> Then S := S+ sqr(i);

Writeln(‘Tong cac so le la: ’,S);

Readln End

Đề 2:

Câu 9: (3điểm)

Dòng 1: khai báo biến s, n, i thuộc kiểu số nguyên (Byte) Dòng 2: Thông báo nhập giá trị n, đọc giá trị n

Dòng 3: Gán giá trị cho biến s 1999

Dòng 4: Cho biến i lặp từ giá trị đầu n thực câu lệnh tương ứng tăng giá trị tổng s:= s+ (2*i +1)

Dòng 5: Đưa kết tính tổng hình

Dịng 6: Tạm dừng chương trình để quan sát kết hình

Câu 10: (3điểm)

Var i, n, S : Integer;

Begin

S := 0;

For i := to n S := S+ sqr(i);

Writeln(‘Tong cac so le la: ’,S); Readln

End.

Lưu ý: HS sử dụng câu lệnh While_Do

Var i, n, S : Integer;

Begin

S := 0; i := 1;

While i < n do Begin

(54)

Writeln(‘Tong cac so le la: ’,S); Readln

End. III PHỤ LỤC

Thống kê

……… ………

Chương 4: KIỂU DỮ LIỆU CÓ CẤU TRÚC

Tuần 10

Tiết 19 Ngày soạn: 28/09/2010Ngày giảng :…/…/…

Bài 11: KIỂU MẢNG I MỤC ĐÍCH, YÊU CẦU

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 CHUẨN BỊ

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

III PHƯƠNG PHÁP:

-Đặt vấn đề,gợi mở thuyết giảng. IV HOẠT ĐỘNG DẠY HỌC 1 Ổn định lớp :

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ (Không kiểm tra) 3 Bài mới

(55)

Trước vào bài, giáo viên đưa số vấn đề cần giải sau :

Với kiểu liệu biết, làm để :

- Lưu trữ xử lý dãy số ?

- Lưu trữ xử lý Họ tên người ?

- Lưu trữ xử lý bảng kết thi tốt nghiệp ?

HS : Đưa phương án để trả lời cho câu

hỏi

GV : Các ngơn ngữ lập trình thường cung cấp

một số kiểu liệu xây dựng từ kiểu liệu chuẩn gọi kiểu liệu có cấu trúc Chương tìm hiểu số kiểu liệu ngôn ngữ Pascal để trả lời câu hỏi

GV : Đưa ví dụ, cần lập lập trình xử lý một

dãy số nguyên, tìm cách lưu trữ dãy số nguyên lập trình ?

Có thể sử dụng ví dụ SGK để học sinh dễ theo dõi, gõ trước chương trình để sử dụng cho phần

(56)

một số kiểu liệu xây dựng từ kiểu liệu chuẩn gọi kiểu liệu có cấu trúc Chương tìm hiểu số kiểu liệu ngôn ngữ Pascal để trả lời câu hỏi

GV : Đưa ví dụ, cần lập lập trình xử lý một

dãy số nguyên, tìm cách lưu trữ dãy số nguyên lập trình ?

Bằng cách để lưu trữ thơng tin dạng bảng lập trình ?

HS : Đưa ý kiến

GV : Đánh giá ý kiến học sinh, sau đưa ra

mục đích việc sử dụng cấu trúc mảng chương trình

GV : Đưa khái niệm mảng chiều một

số yếu tố liên quan lập trình nói chung

GV : Đi sâu phân tích hai chương trình để cho

học sinh nhận thấy tiện lợi sử dụng mảng

HS : Trong giáo viên phân tích hai chương

trình, học sinh đưa ý kiến nhận xét chương trình

GV : Đưa cách khai báo mảng chiều trong

ngơn ngữ Pascal, giải thích ý nghĩa từ khóa

GV : Khai báo cách tiện lợi ? HS : Thường học sinh trả lời cách tiện lợi

mảng :

- Mảng chiều - Mảng hai chiều

1 Kiểu mảng chiều

- Mảng chiều dãy hữu hạn phần tử có kiểu, mảng đặt tên phần tử mang số Để mô tả mảng chiều ta cần xác định kiểu phần tử cách đánh số phần tử

Với mảng chiều ta quan tâm đến :

- Tên mảng chiều

- Số lượng phần tử mảng - Kiểu liệu phần tử - Cách khai báo biến mảng

chiều

- Cách truy cập vào phần tử mảng

Xét ví dụ : Nhập vào nhiệt độ trung

bình ngày tuần Tính đưa hình nhiệt độ trung bình tuần đếm số ngày có nhiệt độ lớn nhiệt độ trung bình Quan sát hai chương trình viết ngơn ngữ Pascal để giải tốn

- Chương trình : Khơng sử dụng kiểu mảng

- Chương trình : Sử dụng kiểu mảng chiều

a> Khai báo mảng chiều

Trong ngôn ngữ Pascal, mảng chiều khai báo hai cách sau :

Cách :

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

Cách :

(57)

- Cấu trúc mảng hai cách khai báo mảng - Làm tập xem

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ……… Tuần 10

Tiết 20 Ngày soạn: 28/09/2010Ngày giảng :…/…/…

Bài 11: KIỂU MẢNG I MỤC ĐÍCH, YÊU CẦU

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

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

II CHUẨN BỊ

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

III PHƯƠNG PHÁP

Thuyết trình vấn đáp, gợi mở giải vấn đề

IV HOẠT ĐỘNG DẠY HỌC 1 Ổn định lớp :

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ 3 Bài mới

Hoạt động Gv & Hs Nội dung

Hoạt động 1: Bài tốn tìm max với thuật tốn so sánh GV : Đưa ví dụ

HS : Xây dựng thuật toán để giải toán (thuật

toán học lớp 10)

GV soạn sẵn chương trình cho học sinh quan

sát chương trình

Nếu có nhiều thời gian, giáo viên tiến hành

b> Một số ví dụ :

Ví dụ : Tìm phần tử lớn của

một dãy số nguyên

- Input : Số nguyên dương N và dãy số A1, A2, … , AN

- Output : Chỉ số giá trị số lớn dãy

- Ý tưởng :

+ Đặt số A1 số lớn (max) + Cho i lặp từ đến N,

(58)

dàng nhận thao tác cần phải thực

viết chương trình Chương trình sau :Program timmax ; Uses crt ;

var a : array[1 250] of integer ; n,i,max,csmax : Integer ; Begin

clrscr ;

Write('Nhap n = ') ; Readln(n) ;

For i := to n Begin

Write('a[',i,'] = ') ; readln(a[i]) ; End ;

max := a[i] ; csmax := ; For i := to n If a[i] > max then Begin

max := a[i] ; csmax :=i ; End ;

Writeln('Gia tri lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax) ;

Readln ; End

Hoạt động 2: Bài toán xếp với thuật tốn tráo đổi GV : Đưa ví dụ, nhắc lại ý tưởng thuật toán

HS : Xây dựng thuật toán để giải toán (thuật

toán học lớp 10)

GV soạn sẵn chương trình cho học sinh quan sát chương trình

Nếu có thời gian, giáo viên tiến hành soạn chương trình từ đầu để học sinh dễ dàng nhận việc chuyển đổi ngôn ngữ từ ngôn ngữ thuật tốn sang ngơn ngữ lập trình

Ví dụ : Sắp xếp dãy số nguyên

theo thuật toán tráo đổi

- Input : Số nguyên dương N và dãy số A1, A2, …, AN

- Output : Dãy A xếp theo thứ tự không giảm

- Ý tưởng :

+ Đổi để đưa số lớn vị trí cuối

+ Làm tương tự số cịn lại

Chương trình sau :

Program sapxep ; Uses crt ;

var A : Array[1 250] of integer ; n,i,j,tg : Integer ;

Begin clrscr ;

(59)

For i := to n Begin

Write('A[',i,'] = ') ; readln(A[i]) ; End ;

For j := n downto Begin

For i := to j-1 If A[i] > A[i+1] then Begin

tg := A[i] ; A[i] := A[i+1] ; A[i+1] := tg ; End ;

End ;

Writeln('day sau sap xep : ') ; For i := to n

write(a[i]:8) ; readln ; End

Writeln('chi so ptu lon nhat : ',csmax);

readln ; End

4 Cũng cố, dăn dò

- Cấu mảng chiều

- Cách khai báo, nhập truy xuất phần tử mảng - Về nhà làm tập sách giáo khoa

V PHỤ LỤC

(60)

Tiết 21 Ngày giảng :…/…/…

Bài 11: KIỂU MẢNG I MỤC ĐÍCH, YÊU CẦU

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

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

II CHUẨN BỊ

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

III PHƯƠNG PHÁP

Thuyết trình, vấn đáp, gợi mở giải vấn đề

IV HOẠT ĐỘNG DẠY HỌC 1 Ổn định lớp :

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ

1 Nêu cách khai báo mảng giải thích thành phần câu lệnh Cách nhập giá trị cho mảng truy xuất giá trị mảng

3 Bài mới

Hoạt động Gv & Hs Nội dung

GV : Đưa ví dụ, nhắc lại ý tưởng thuật

toán

HS : Xây dựng thuật toán để giải toán (thuật

toán học lớp 10)

GV soạn sẵn chương trình cho học sinh quan

sát chương trình

Ví dụ : Tìm kiếm nhị phân

- Input : Dãy số A1, A2,………, AN xếp tăng dần - Output : Có hay khơng số

i mà A[i] = k thông báo không tìm thấy

- Ý tưởng :

(61)

Nếu có thời gian, giáo viên tiến hành soạn chương trình từ đầu để học sinh dễ dàng nhận việc chuyển đổi ngơn ngữ từ ngơn ngữ thuật tốn sang ngơn ngữ lập trình

Chương trình sau :

Program sapxep ; Uses crt ;

var A : Array[1 250] of integer ; n,i,k : Integer ;

dau,cuoi,giua : Integer ; TK : boolean ;

Begin clrscr ;

Write('Nhap so ptu mang n = ') ; Readln(n) ;

For i := to n Begin

Write('A[',i,'] = ') ; readln(A[i]) ; End ;

Write('nhap so can tim k : ') ; Readln(k);

dau := ; cuoi := n ; TK := false ;

while (dau <= cuoi) and Not TK Do Begin

giua := (dau+cuoi) div ; If A[giua] = k then TK := true Else

If a[giua]>k then cuoi := giua - Else dau := giua + ;

End ;

If TK then write('Chi so la : ',giua) else write(' Khong tim thay '); readln ;

End

4 Cũng cố, dăn dò

- Làm lại ví du để khắc sâu lý thuyết - Làm tập SGK

- Học phần Kiểu mảng hai chiều

V PHỤ LỤC

(62)

………

Tuần 11

Tiết 22 Ngày soạn: 04/10/2010Ngày giảng :…/…/…

Bài 11: KIỂU MẢNG I MỤC ĐÍCH, YÊU CẦU

1 Kiến thức

- Biết kiểu liệu kiểu mảng hai chiều

- Biết cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến phần tử mảng

2 Kỹ năng

- Tạo kiểu mảng hai chiều khai báo biến mảng hai chiều ngôn ngữ lập trình Pascal Sử dụng biến mảng để giải số toán cụ thể

3 Tư thái độ: Tự giác, tích cực, chủ động sáng tạo tìm kiếm tri thức. II CHUẨN BỊ

1 Giáo viên: giáo án, bảng phụ, sgk, projector, phiếu học tập. 2 Học sinh: sgk

III PHƯƠNG PHÁP

Thuyết trình, vấn đáp, gợi mở, hoạt động project

IV HOẠT ĐỘNG DẠY HỌC 1 Ổn định lớp :

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ

Lập trình nhập vào từ bàn phím dãy số nguyên sau đưa giá trị lớn nhỏ dãy số

3 Bài mới

Hoạt động Gv & Hs Nội dung

Hoạt động 1: Khái niệm khai báo mảng hai chiều GV : Quay lại ví dụ lưu trữ liệu dạng bảng

để em nhận nhu cầu phải sử dụng mảng chiều lập trình

2 Kiểu mảng chiều :

(63)

GV : Khai báo cách tiện lợi (tương tự

mảng chiều) ?

HS : Thường học sinh chọn cách GV : Tùy theo trường hợp cụ thể thường

thì cách hay dùng

GV : Khi khai báo mảng chiều cần ý điều

gì ?

HS : Tìm câu trả lời, GV gợi ý để em ra

được số mảng, số dòng, số cột kiểu phần tử mảng

GV : Gọi số học sinh lên khai báo số

biến mảng chiều theo yêu cầu giáo viên

Minh họa hình ảnh mảng chiều số

đến :

- Tên kiểu mảng hai chiều - Số lượng phần tử

chiều mảng

- Kiểu liệu phần tử - Cách khai báo biến mảng hai

chiều

- Cách truy cập vào phần tử mảng

a> Khai báo mảng hai chiều

- Trong ngôn ngữ Pascal, mảnh hai chiều khai báo sau :

Cách : Khai báo trực tiếp

Var : <Tên mảng> : Array[kiểu số dòng, kiểu số cột] of < kiểu phần tử> ;

Cách : Khai báo gián tiếp thông

qua khai báo kiểu mảng

Type <Tên kiểu mảng> = Array[kiểu

chỉ số dòng, kiểu số cột] of <kiểu phần tử> ;

Var <Tên mảng> : <Tên kiểu mảng> ;

Ví dụ :

Khai báo biến mảng thông qua kiểu mảng :

Type

ArrayInteger = Array[1 10,1 15] of Integer ;

ArrayReal=Array[1 50,1 100] of Real ;

Var A : ArrayInteger ; B : ArrayReal ;

Khai báo mảng trực tiếp :

(64)

truy cập phần tử mảng

Cách truy cập vào phần tử mảng hai chiều :

<Tên mảng>[chỉ số dịng, số cột]

Ví dụ : A[1,3], B[23,66],…… Hoạt động 2: Một số ví dụ mảng hai chiều

GV cho học sinh quan sát chương trình giải

thích lệnh chương trình, ý sâu vào lệnh lặp để em nhận thường ta sử dụng vịng lặp for - để duyệt qua phần tử mảng

GV nên soạn sẵn chương trình cho em quan sát chương trình, chạy thử chương trình máy để em tiện theo dõi

Program Timkiem;

Uses crt;

var A : Array[1 100,1 100] of Integer; i,j,n,m : Byte ;

k,d : integer ; Begin

Clrscr ;

Write(' Nhap so dong, so cot cua mang : ') ; Readln(m,n);

For i := to m For j := to n Begin

Write(' A[',i,',',j,'] = '); Readln(A[i,j]);

End ;

Writeln(' Mang vua nhap vao la : '); Writeln;

For i := to m Begin

For j := to n Write(a[i,j]:4) ; Writeln;

Writeln; End;

Write(' Nhap gia tri k : '); Readln(k) ;

d := ;

For i := to m For j := to n

> Một số ví dụ : Ví dụ :

Chương trình sau đưa hình bảng cửu chương

Program cuuchuong; Uses crt ;

var A : Array[1 9,1 9] of Integer ; i, j : Byte ;

Begin Clrscr ;

Writeln('Bang cuu chuong -> : '); Writeln ;

For i := to For j := to A[i,j] := i*j ; For i := to Begin

For j := to Write(a[i,j]:4); Writeln ;

Writeln ; End ; Readln ; End

Ví dụ :

(65)

Begin

write('So nho hon ',k,' la '); write(a[i,j]:8);

d := d+1 ; End ; If d = then

Write('Khong co ptu nao nho hon ',k); readln;

End

4 Cũng cố, dăn dị

- Ơn cấu trúc mảng

- ôn lại cấu trúc lặp để nhập giá trị truy xuất phần tử mảng - Về nhà xem lại tập giải làm tập lại sgk

V PHỤ LỤC

(66)

Tiết 23-24 Ngày giảng :…/…/…

BÀI TẬP VÀ THỰC HÀNH 3 I MỤC ĐÍCH, YÊU CẦ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ử

- Nâng cao kĩ sử dụng số kiểu lệnh kiểu liệu mảng chiều lập trình, cụ thể:

+ Khai báo kiểu liệu mảng chiều + Nhập, xuất liệu cho mảng

+ Duyệt qua tất phần tử mảng để xử lý phần tử - Biết giải số tốn thường gặp:

+ Tính tổng phần tử thoả mãn điều kiện + Đếm số phần tử thoả mãn điều kiện + Tìm phần tử lớn nhất, nhỏ

Về tư thái độ:

- Góp phần hình thành rèn luyện tư lập trình, tác phong người lập trình

II CHUẨN BỊ:

1.GV: Phịng máy tính, máy chiếu Projector HS: SGK, tập

III PHƯƠNG PHÁP

- Vấn đáp tìm tịi, vấn đáp tái hiện, giải vấn đề

IV TIẾN TRÌNH BÀI HỌC:

Tiết 23

1 Ổn định lớp :

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ

Lập trình nhập vào từ bàn phím dãy số nguyên sau đưa giá trị lớn nhỏ dãy số

3 Bài mới

(67)

Gv Cài đặt trình chiếu CT mẫu 1a

- MyArray tên kiểu liệu hay tên

biến?

Hs Xem mẫu trình chiếu trả lời

Gv Nhận xét Chạy thử chương trình 1a

- Dịng lệnh dùng để tạo biến mảng A?

- Lệnh For i:=1 to n

Write(A[i]:5); có ý nghĩa gì?

- Lệnh For i:=1 to n If A[i]

mod k = then s:=s + A[i]; thực

hiện nhiệm vụ gì?

- Lệnh s:=s+A[i]; thực lần

Hs Trả lời câu hỏi đặt

Gv Cho hs tự chạy thử chương trình Để lấy kết

Gv Chiếu 1b cho học sinh phân tích ý nghĩa tác dụng dịng lệnh

Hs Thảo luận nhóm Báo cáo kết Gv Nhận xét

Gv Cho học sinh chạy chương trình quan sát kết

Bài 1a.

{1}Program sum1;

{2}Type Myarray=array[1 100] of integer; {3}Var A : Myarray;

s,n,i,k: integer; {4}begin

{5}write(‘nhap n=’); readln(n);

{6}for i:=1 to n A[i]:=radom(301)- radom(301);

{7}for i:=1 to n write(A[i]:5);writeln; {8}write(‘nhap k=’);readln(k);

{9}s:=0;

{9}for i:=1 to n do

{10} if A[i] mod k= then s:=s+A[i]; {11}writeln(‘tong so can tinh la’,s);

{12}readln {13}end.

Giải thích số dịng lệnh bản

{2}: khai báo kiểu mảng tối đa 100 phần tử {3}: tạo biến mảng A

{6}: Tạo mảng ngẫu nhiên gồm n số nguyên {7}: viết mảng vừa tạo

- Lệnh For i:=1 to n If A[i] mod k = then

s:=s + A[i]; thực dùng để tính tổng bội số

của k

- s:=s+A[i]; thực n lần

Bài 1b.

{1}Program Maxelement;

{2}Type Myarray=array[1 100] of integer; {3}Var A : Myarray;

n,i,j: integer; {4}begin

{5}write(‘nhap sl day so n=’); readln(n); {6}for i:=1 to n do

Begin

{7} Write(‘nhap phan tu thu’,i,’=’);readln(A[i]);

End; J:=1

{8}for i:=2 to n do

{9} if A[i]>A[j] then j:=i;

(68)

{12}end.

4 Củng cố:

- 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

- Học cũ làm tập sgk

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ………

Tiết 24

1 Ổn định lớp :

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ:

Không kiểm tra

3 Bài mới

Hoạt động Gv & Hs Nội dung

Hoạt động 1: Ôn lại kiến thức để chuẩn bị làm tập thực hành Gv Cách khai báo mảng trực tiếp? gián

tiếp ?

Hs Trả lời câu hỏi Gv Nhận xét bổ sung

1 Khai báo mảng

-

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 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> Hoạt động 2: Đọc đề tìm hiểu yêu cầu tập SGK

Gv Yêu cầu HS đọc đề BT2 SGK

u cầu tốn gì?

Hs Đọc đề tìm hiểu yêu cầu đề

Trả lời câu hỏi

- Tìm phần tử có giá trị lớn mảng

- In hình số nhỏ phần từ có giá trị lớn

Hoạt động 3: Đọc chương trình chạy chương trình giấy để hiểu thuật tốn của chương trình Chỉnh sửa chương trình để đưa số phần tử có cùng

giá trị lớn nhất Gv - Việc tạo mảng liệu thể

ở phần chương trình ?

Hs Thể câu lệnh for thứ

chương trình

Gv - Tìm giá trị lớn đưa

Treo bảng phụ chương trình toán B1: j=1, i=2, A[i]=2, A[j]=4

 A[i]< A[j] B2: j=1, i=3, A[i] = 5, A[j] =4

(69)

lớn thể phần ?

Hs Từ j:=1 đến cuối chương trình

Hs Vai trị biến j chương trình

nhằm mục đích ?

Hs Giữ lại số phần tử có giá trị lớn

nhất

Gv Thực chương trình với giá trị

mảng nhập vào cụ thể sau:

4 7

- Hãy dựa vào phần tìm giá trị lớn chạy chương trình giấy nháp cho kết ?

- Gọi HS lên bảng chạy lại chương trình

Hs Thực yêu cầu GV. Gv.

- Có cần giữ lại đoạn chương trình tìm giá trị lớn không ?

- Để đưa hình tất số phần tử đạt giá trị lớn có cần duyệt lại phân tử mảng không ?

- Cần thêm lệnh có thê in tất số phần tử có giá trị lớn ?

- Đưa câu lệnh vào vị trí chương trình ?

Hs

- Có {1,2} - Trả lời câu hỏi

- Đưa vào cuối chương trình

 A[i]>A[j] j=4 B4: j=4, i=5, A[i]=6, A[j]=7

 A[i]<A[j] B5: j=4, i=6, A[i]=7, A[j]=5

kết số: A[4] =

For i:=1 to n

If A[i] = A[j] then write (i);

Hoạt động 4: HS chạy chương trình máy tính cho kết quả:

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

- 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

V PHỤ LỤC

(70)

Tiết 25-26 Ngày giảng :…/…/…

BÀI TẬP VÀ THỰC HÀNH 4 I MỤC ĐÍCH, YÊU CẦU

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

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

- Nhận xét, phân tích đề xuất cách giải toán cho chương trình chạy nhanh

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 Phương pháp

Thuyết trình vấn đáp, gợi mở giải vấn đề IV Tiến hành dạy học

Tiết 25 1 Ổn định tổ chức lớp.

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ:

Câu 1: Nêu cách khai báo kiểu mảng chiều.

Câu 2: Nhập từ bàn phím xây dựng mảng chiều A có phần tử. 3 Bài mới

Hoạt động Gv & Hs Nội dung

Hoạt động 1: Xác định tốn tìm hiểu chương trình. Gv Chiếu đề lên bảng.

Hs Quan sát đề lằng nghe câu hỏi gv.

Đề: Sắp xếp dãy số

(71)

Hs Trả lời câu hỏi.

- Vào: mảng A

- Ra: mảng A xếp

Gv. minh hoạ toán:

A 4

1 Mảng A xếp:

A 8

1 - Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)

Hs Theo dãy số minh họa, nhớ lại thuật toán xếp học. Gv Nhận xét chiếu thuật toán liệt kê bước.

Từ thuật toán yêu cầu học sinh viết chương trình

Hs Viết chương trình

Gv Nhận xét chạy chương trìn * Tìm hiểu chương trình

Gv - Vai trò biến i, j CT?

- Vai trò biến i, j CT?

- Đoạn lệnh thực tráo đổi giá trị phần tử liền kề mảng?

Hs Trả lời câu hỏi.

Gv Giải thích số lệnh CT.

Hs Chú ý, lắng nghe, quan sát ghi nhớ. Gv - 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

Hs Chạy CT, nhập liệu, xm kết quả.

- Chỉnh sữa CT thông qua thông báo lỗi - Chú ý hiểu rõ thêm CT

- Đoạn lệnh thực tráo đổi giá trị phần tử liền kề mảng?

Giải thích số lệnh CT

Hs - Chú ý, lắng nghe, quan sát ghi nhớ

* Chương trình

SGK_trang 56

- TL: Dùng làm biến số

- TL:3 lệnh: tg := a[i]; a[i]:=

a[i+1];

a[i+1]:= tg;

Hoạt động 2: Xác định toán câu b. Gv - Y/cầu hs xác I/O toán?

- Biến Dem tăng lên nào?

Hs Trả lời câu hỏi

Gv - Cần đưa câu lệnh tăng Dem vào chỗ CT trên? - - Câu lệnh khởi tạo Dem:= đặt vào vị trí trong

CT?

+ 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

Hs Học sinh trả lời câu hỏi

Đề: 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

1 Xác định toán:

+ I: mảng a;

+O: mảng a xếp, số lần tráo đổi (Dem);

TL: Khi A[i] > A[i+1]

(72)

- Hướng dẫn hs chỉnh sửa chạy CT

Hs – Học sinh thảo luận nhóm (Thêm CL hướng

dẫn vào CT.)

- báo cáo kết (Chạy CT)

Gv – Đánh giá kết hs

TL: Trong thân CL If:

trước sau lệnh tráo đổi

TL: Chọn hai

phương án 3,

* chương trình: Sửa câu lệnh theo gợi ý

chương trình

SGK_trang 65

4.Củng cố

Uốn nắn sai sót thường gặp Hs Ơn tập lại lý thuyết

Xem, chuẩn bị trước toán thực hành

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ………

Tiết 26 1 Ổn định tổ chức lớp.

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ:

Không kiểm tra

3 Bài mới

Hoạt động Gv & Hs Nội dung

(73)

Hs gián tiếp:

trực tiếp:

* Tìm hiểu đề bài

Gv Ghi đề lên bảng.

Y/cầu hs xác định liệu vào/ra toán? Hs Trả lời câu hỏi.

* Phân tích thuật tốn

Gv lấy ví dụ minh hoạ

A 7

1

B

1 Ban đầu: B[i] =

Hs Theo dõi ví dụ minh hoạ

Gv Hỏi: B[i] tạo bao nhiêu? Gv GV minh hoạ số phần tử: B[1], B[2], B[3]

- Y/cầu hs tìm kết mảng B theo ví dụ

Hs Học sinh trả lời:

B 10 12 15 22

1

Gv Y/cầu hs cho biết phần CT cần xây dựng? Hs Học sinh trả lời câu hỏi

Gv Bước B2 cụ thể CT nào? Hs sử dụng vòng for lồng nhau.

for i:=1 to n do begin

b[i]: =0;

for j:=1 to i

b[i]:=b[i]+a[j];

end;

* Tối ưu thuật tốn

Gv Dựa vào phần phân tích ví dụ thuật toán trên.

Gv hỏi: So sánh giá trị B[i] B[i-1]? Đặc biệt: B[1]=?

Hs Tl: B[i]:=B[i-1]+A[i]

Tl: B[1]=A[1]

Gv Chúng ta ln hướng tới thuật tốn tối ưu Đối với

bài tốn theo phân tích ta tận dụng kết việc tính tổng i -1 phần tử có sẵn bước trước

- Do ta có được:

+ Số lượng phép tốn '+' +Chỉ dùng vịng lặp for

-> sd biến số i cho mảng A, B

Hs Nhìn bảng, tự điều chỉnh hành vi nhận thức.

Đề: Cho mảng A gồm n phần

tử Viết CT tạo mảng B[1 n], B[i] tổng i phần tử mảng A

Input: A gồm n phần tử

Output: In mảng B(theo yêu cầu)

Tóm lại: B[i] = A[1] + …+

A[i]

= i

j=1 [ ] A j

Khai báo: + k/báo mảng + biến đơn Phần thân: B1: tạo mảng A

B2: xd mảng B theo A B3: In mảng B

Chương trình cải tiến_SGK.tr 65/66

(74)

Hs Thực hành theo nhóm, báo cáo kết quả Gv Nhận xét, đánh giá kết quả

4.Củng cố

Uốn nắn sai sót thường gặp Hs Ôn tập lại lý thuyết

Xem, chuẩn bị trước 12: Kiểu xâu

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ………

Tuần 14

Tiết 27 Ngày soạn: 19/10/2010Ngày giảng :…/…/…

Bài 11: KIỂU XÂU I MỤC ĐÍCH, YÊU CẦ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

3 Tư thái độ:

Tự giác, tích cực, chủ động sáng tạo tìm kiếm tri thức. II CHUẨN BỊ

1 GV: Máy vi tính, Máy chiếu để giới thiệu ví dụ. 2 HSSGK.

III PHƯƠNG PHÁP

Thuyết trình, vấn đáp

IV NỘI DUNG BÀI GIẢNG 1.Ổn định lớp :

- Chào thầy cô

(75)

2 Kiểm tra cũ (không kiểm tra) 3 Bài mới

Hoạt động Gv & Hs Nội dung

Hoạt động 1: Khái niệm xâu GV : Để lưu trữ xử lý Họ tên người,

các kiểu liệu học có đáp ứng ?

HS : Đưa số phương án

GV : Phân tích phương án học sinh, từ

đó đưa yêu cầu cần sử dụng kiểu : Kiểu xâu

GV : Giới thiệu số khái niệm thao tác

thường dùng làm việc với xâu ký tự lập trình nói chung

GV : Đây cách khai báo ngôn ngữ

Pascal, ngôn ngữ khác có cách khai báo khác Do viết chương trình ngơn ngữ cần tìm hiểu rõ đối tượng ngơn ngữ

Độ dài tối đa xâu phụ thuộc vào ngơn ngữ lập trình, thường 255 ký tự

Cách viết xâu ngơn ngữ khác có khác

Một số khái niệm

- Xâu dãy kí tự bảng mã ASCII

- Mỗi kí tự gọi phần tử xâu

- Số lượng kí tự xâu gọi độ dài xâu

- Xâu có độ dài gọi xâu rỗng

- Tham chiếu tới phần tử xâu xác định thông qua số phần tử xâu

- Chỉ số phần tử xâu thường đánh số

- Trong ngôn ngữ Pacal, tham chiếu tới phần tử thường viết :

<Tên biến xâu>[chỉ số]

Cách khai báo xử lí xâu trong ngơn ngữ Pascal :

1 Khai báo biến xâu :

Pascal sử dụng từ khóa STRING để khai báo xâu Độ dài tối đa xâu được viết [ ] sau từ khóa

STRING Khai báo sau :

Var <tên biến> : String[độ dài lớn

nhất xâu] ; Ví dụ :

Var Ten : String[10] ;

Ho_dem : String[50] ; Que : String ;

Chú ý :

- Nếu không khai báo độ dài tối đa cho biến xâu kí tự độ dài ngầm định xâu 255 - Độ dài lớn xâu 255

ký tự

- Hằng xâu kí tự đặt cặp nháy đơn ‘ ’ .

(76)

‘ nGuyen vaN A ’

Hỏi cần có thao tác để chỉnh sửa xâu kí tự ? (cần đưa xâu dạng ‘Nguyen Van A’)

HS : Đưa ý kiến

GV : Phân tích ý kiến gợi ý để em nhận ra

cần :

- Xóa bớt số dấu cách

- Chuyển chữ hoa chữ thường ngược lại

GV : Đưa số câu hỏi :

- Làm biết ký tự dấu cách ? - Làm để xóa vài kí tự ?

- Làm để thêm vào xâu vài kí tự ?

- Làm để có chữ in hoa tương ứng với chữ thường

- Làm có chữ thường tương ứng với chữ hoa ?

- Làm biết xâu có kí tự ?

Từ đưa thủ tục chuẩn hàm chuẩn của Pascal thường dùng để xử lí xâu

Ứng với thủ tục hàm, giáo viên lấy ví dụ chương trình Pascal cụ thể để em hiểu ý nghĩa thủ tục hàm Trong môi trường soạn thảo Pascal, giáo viên cần làm chương trình đơn giản có sử dụng thủ tục hàm để em theo dõi

2 Các thao tác xử lí xâu

- Với xâu kí tự có phép phép xâu phép so sánh hai xâu kí tự

- Phép ghép xâu : Kí hiệu dấu cộng +

Ví dụ : ‘Ha’ + ‘Noi’ cho kết là

‘Ha Noi’

Phép so sánh : <, <=, >, >=, = , <>,

Pascal tự động so sánh từ kí tự từ trái sang phải

Ví dụ : ‘AB’ < ‘AC’, ‘ABC’ >

‘ABB’, ‘ABC’ <’ABCD’

Một số thủ tục chuẩn dùng để xử lí xâu :

- Delete(St,vt,n) xóa n kí tự của xâu St vị trí vt - Insert(S1,S1,vt) chèn sâu S1

vào S2 vị trí vt S2

- Val(St,x,m) Đổi giá trị xâu St thành số ghi giá trị vào biến X, không đổi vị trí gây lỗi ghi m, đổi thành cơng m =

- Str(X,St) chuyển số X thành xâu kí tự lưu St

Một số hàm chuẩn :

- Copy(St,vt,n) chép từ xâu St n kí tự từ vị trí vt

- Pos(S1,S2) tìm vị trí xuất hiện S1 S2 - Length(St) : cho độ dài xâu St

- Upcase(ch) : cho chữ viết hoa tương ứng với chữ thường ch

- CHR(X) : cho kí tự có mã X bảng mã ASCII

Ord(ch) : cho mã kí tự ch

bảng mã

(77)

- Về nhà xem lại tập giải làm tập lại sgk

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ………

Tuần 14

Tiết 28 Ngày soạn: 24/10/2010Ngày giảng :…/…/…

Bài 11: KIỂU XÂU I MỤC ĐÍCH, YÊU CẦU

1 Kiến thức

- Hiểu lợi ích hàm thủ tục liên quan đến xâu tring ngơn ngữ lập trình Pascal

- Nắm cấu trúc ching chức số hàm liên quan đến xâu

2 Kỹ năng

- Bước đầu sử dụng số hàm, thủ tục thông dụng xâu - Có thể cài đặt số chương trình đơn giản có sử dụng xâu 3 Tư thái độ:

- Tự giác, tích cực, chủ động sáng tạo tìm kiếm tri thức. II CHUẨN BỊ

- GV: Giáo án, SGK, sách GV, bảng phụ soạn ví dụ - HS: Sách GK

III PHƯƠNG PHÁP

- Đặt vấn đề

- Thuyết trình, vấn đáp

- Diễn giải, dùng bảng để ghi lại chi tiết quan trọng ví dụ

(78)

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ

1 Nêu khái niệm kiểu xâu thao tác xâu Nêu hàm xử lý xâu ý nghĩa

3 Bài mới

(79)

Giáo viên soạn sẵn ví dụ để tiện cho học sinh theo dõi việc chạy thử khơng làm thời gian ngồi viết chương trình

Với ví dụ, giáo viên sâu vào câu lệnh trực tiếp đáp ứng yêu cầu ví dụ, em tiếp thu nhanh

Ví dụ : Nhập xâu, viết hình xâu

dài

Ví dụ : Nhập xâu, kiểm tra xem ký tự

đầu tiên xâu S1 có trùng với ký tự cuối xâu S2 hay không ?

Ví dụ : Nhập xâu, viết hình xâu

đó theo thứ tự ngược lại ký tự xâu

VD :

Program vd1 ; Uses crt ;

Var s1,s2 : String ; Begin

Clrscr ;

Write('Nhap xau thu : ') ; Readln(s1) ;

Write('Nhap xau thu : ') ; Readln(s2) ;

If length(s1) > Length(s2) then Write(s1)

else

Write(s2); Readln ; End

VD :

Program vd2 ; Uses crt ;

Var s1,s2 : String ; x : Byte ;

Begin Clrscr ;

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

Write('Khac nhau'); Readln ;

End

VD :

Program vd3 ; Uses crt ; Var i,k : Byte ; a : String ; Begin

Clrscr ;

(80)

- Cấu trúc chung Câu lệnh lặp While Do, Câu lệnh lặp For - Về nhà xem lại tập giải làm tập lại sgk

V PHỤ LỤC

……… ……… ……… ……… ……… ……… ………

Tuần 15 Tiết 29- 30

Ngày soạn:…./…./2010 Ngày dạy :…./…./………

BÀI TẬP VÀ THỰC HÀNH 5 I MỤC TIÊU

1 Kiến thức

- Khắc sâu thêm phần kiến thức lý thuyết kiể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

- Khai báo biế 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 độ

- Tích cực, chủ động thực hành

II CHUẨN BỊ

Gv Máy chiếu Projestor để hướng dẫn Tổ chức phịng máy để học sinh có kỹ làm việc với xâu

Hs SGK, tập nhà, nội dụng thực hành

III PHƯƠNG PHÁP

IV NỘI DUNG BÀI GIẢNG 1.Ổn định lớp :

- Chào thầy cô

- Cán lớp báo cáo sĩ số - Chỉnh đốn trang phục

2 Kiểm tra cũ

1 Nêu khái niệm kiểu xâu thao tác xâu Nêu hàm xử lý xâu ý nghĩa

(81)

a Mục tiêu: hiểu chương trình, đề xuất phương án cải tiến. b Nội dung

- Nhập vào xâu, kiểm tra xem xâu có phải Palidrom hay khơng - Chương trình

Var i, x:Byte; a,p:string;

Begin

Write(‘nhap vao mot xau’); readln(a);

x:=length(a); p:= ‘’;

For i:=x downto p:=p+a[i];

If a=p then write(‘xau la Palidrom’) else write(‘xau khong la Palidrom’); Readln;

End.

c bước tiến hành

Hoạt động Gv & Hs Nội dung

1 Tìm hiểu đề Gv

– Giới thiệu nội dung đề lên bảng - Diễn giải: Một xâu gọi đối xứng ta đọc ký tự từ phải sang trái giống ký tự từ trái sang phải

Ví dụ:

Phải: 12321 abccba Khơng: abcabc

1 Đề bài

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 Palindrome)

(82)

- giới thiệu nội dung đề lên bảng - Diễn giải: Một xâu đợc gọi Palidrom ta đọc kí tự từ phải sang trái giống đọc từ trái sang phải - Yêu cầu học sinh cho hai ví dụ xâu palidrom ví dụ khơng phải palidrom

tìm hiểu chơng trình gợi ý - Chiếu chơng trình lên bảng

- Hỏi: Chơng trình sau có chức làm gì? Kết in hình nh thếnào?

- Thực chơng trình để học sinh kiểm nghiệm suy luận Cải tiến chơng trình

- Nêu yêu cầu mới: Viết lại chơng trình mà không sử dụng biến trung gian p - Yêu cầu: Nhận xét cặp vị trí đối xứng xâu

palidrom?

- Hỏi: kí tự thứ i đối xứng với kí tự vị trí nào?

- Hỏi: Cần phải so ssánh cặp kí tự xâu để biết đợc xâu ;à palidrom?

- Hỏi: Dùng cấu trúc lặp để so sánh?

- Yêu cầu học sinh viết chơng trình hoàn chỉnh

- Yêu cầu học sinh nhập liệu cho sẵn giáo viên thông báo kết - Xác nhận làm có kết ỳng

Phải: 12321 abccba Không phải: abcdea

Quan sát chơng trình, suy nghĩ phân tích để hiểu chơng trình

- KiĨm tra xâu có phải Palidrom hay không?

- In ra: ‘xau la Palidrom’

‘Xau khong la palidrom - Quan sát giáo viên thực chơng trình, nhập liệu kết chơng trình

Chú ý theo dõi yêu cầu giáo viên, trả lời số câu hỏi dÉn d¾t

- Các kí tự vị trí giống - Kí tự thứ i đối xứng với kí t thứ length() – i +1

- So sánh tối đalength() div

- Cã thĨ dïng For hc While

- Thực soạn thảo chơng trình vào máy theo yêu cầu cải tiến giáo viên - Nhập liệu vào thông báo kết

Hoạt động 2: Rèn luyện kĩ lập trình a.Mục tiêu:

- Học sinh biết phân tích u cầu để viết chơng trình hồn chỉnh b Nội dung

- ViÕt ch¬ng trình nhập vào xâu kí tự S thông báo hình số lần xuất S chữ tiếng Anh(không phân biệt hoa, chữ thờng)

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

hớng dẫn giáo viên Hoạt động học sinh

- Chiếu nội dung đề lên bảng Nêu mục đích tốn

- Chia lớp thành nhóm:

+ Nhóm 1: Đặt câu hỏi phân tích + Nhóm 2: Trả lời câu hỏi phân

Quan sỏt đề xác định công việc cần thực

Nhãm 1:

(83)

- Theo dõi câu hỏi phân tích Của nhóm trả lời câu hỏi phân tích cđa nhãm

- Bỉ sung sửa sai cho nhóm nhóm

Yêu cầu học sinh độc lập viết chơng trình hồn chỉnh theo thuật tốn phát trờn

- Yêu cầu học sinh lập tr×nh xong sím t×m mét sè bé test

- Yêu cầu học sinh nhập liệu vào theo test giáo viên chọn thông báo kết sau thực chơng trình

- Xác nhận kết học sinh sửa sai cho em có kết sai

- Nêu nhiệm vụ cần thực giải toán

- Hỏi: Cấu trúc liệu phải sử dụng nh nào?

- Ta phải sử dụng hàm nào? Nhóm 2:

- Vào: Một xâu S

- Ra: dÃy số ứng với xuất loại kí tự xâu

- TT: Duyt từ trái sang phải, thêm đơn vị cho kí tự đọc đợc

- CÊu tróc d÷ liƯu: Dem[‘A’ ’Z’] - Dïng hµm Upcase()

Độc lập soạn chơng trình vào máy

- T×m test

- Nhập liệu giáo viên thực chơng trình để xem kết qu

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

IV ỏnh giỏ cui bi Những nội dung học.

- Một số thuật toán đơn giản liên quan đến xâu kí tự: Kiểm tra xâu đối xứng, tìm tần xuất kí tự có xâu

Câu hỏi tập nhà

Ngày đăng: 10/05/2021, 06:42

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan