1. Trang chủ
  2. » Cao đẳng - Đại học

Giao an Tin hoc 11

102 9 0

Đ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

Nội dung

- Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết cấu trúc chung của thủ tục xuất dữ liệu trong ngôn ngữ lập trình Pascal. Chú ý lắng nghe dẫn dắt của giáo viên. - Nghiên cứu sá[r]

(1)

Ngày soạn: 13/8/2012 Tiết: 01

Chương I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH

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

I.

Mục tiêu

-Biết khái niệm lập trình

-Hiểu khả ngơn ngữ lập trình bậc cao, phân biệt với ngơn ngữ máy hợp ngữ

-Hiểu ý nghĩa nhiệm vụ chương trình dịch Phân biệt hai loại chương trình dịch biên dịch thơng dịch

II.

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

- Giáo viên: sách giáo khoa, sách giáo viên, Hướng dẫn thực chuẩn kiến thức, kĩ môn Tin học THPT

- Học sinh: Đọc trước SGK, xem lại số kiến thức Tin học lớp 10

III.

Phương pháp:

- Diễn giải - Đàm thoại

- Giải tình có vấn đề

IV.

Hoạt động dạy- học:

1.

Ổn định lớp:

2.

Hoạt động 1:Tìm hiểu khái niệm lập trình ngơn ngữ lập trình a Nội dung:

- 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ể để ô tả liệu diễn đạt thuật toán., tạo chương trình giải tốn máy tính

- Ngơn ngữ lập trình phần mềm dùng để diễn đạt thuật toán thành chương trình giúp cho máy tính hiểu thuật tốn

- Một số loại ngơn ngữ lập trình: ngơn ngữ máy, hợp ngữ ngơn ngữ lập trình bậc cao b Hoạt động:

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

-Cho tốn sau: Kết luận nghiệm phương trình ax + b=0

+ Hãy xác định Input, Output toán + Hãy xác định bước để giải toán

-Hệ thống bước gọi thuật toán Làm để máy tính điện tử hiểu thuật toán ?

-Diễn giải: Hoạt động để diễn đạt thuật tốn thơng qua ngơn ngữ lập trình gọi

-Quan sát tốn trả lời câu hỏi +Input: a, b

+Output: x=-b/a, vô nghiệm, vô số nghiệm

+B1: Nhập a, b

B2: Nếu a<> kết luận có nghiệm x=-b/a

B3: Nếu a=0 b<>0, kết luận vô nghiệm

(2)

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

lập trình

-Các em cho biết khái niệm lập trình ?

- Kết hoạt động lập trình ?

-Ngơn ngữ lập trình gồm loại ?

-Theo em chương trình viết ngơn ngữ bậc cao chương trình viết ngôn ngữ máy khác ?

-Làm để chuyển chương trình viết ngơn ngữ bậc cao sang ngơn ngữ máy ? -Vì khơng lập trình ngơn ngữ máy để khỏi cơng chuyển đổi lập trình với ngơn ngữ bậc cao

-Dùng ngơn ngữ lập trình

-Nghiên cứu nội dung SGK trả lời câu hỏi

+Lập trình việc sử dụng cấu trúc liệu lệnh ngơn ngữ lập trình cụ thể để mô tả liệu diễn đạt thao tác thuật toán

+ Được chương trình

+Ngơn ngữ máy, hợp ngữ ngơn ngữ bâc cao

-Nghiên cứu SGK trả lời câu hỏi + Chương trình viết ngơn ngữ máy nạp trực tiếp vào nhớ thực

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

-Phải sử dụng chương trình dịch để chuyển đổi

- Ngôn ngữ bậc cao dễ viết, dễ hiểu Ngơn ngữ máy khó viết

3.

Hoạt động 2: Tìm hiểu hai loại chương trình dịch: thơng dịch biên dịch a Nội dung:

- 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ể gọi chương trình dịch

Chương trình nguồn Chương trình đích

(Iput) (Output)

- Có loại chương trình dịch: biên dịch thơng dịch

+ Thơng dịch(interpret) : dịch câu lệnh ngôn ngữ máy thực câu lệnh vừa dịch thông báo lỗi không dịch câu lệnh Trong thơng dịch khơng có chương trình đích để lưu trữ

Biên dịch(compile): duyệt, kiểm tra, phát lỗi, chương trình nguồn khơng cịn lỗi dịch tồn chương trình nguồn thành chương trình đích để thực

(3)

máy Chương trình đích lưu trữ lại để thực nhiều lần mà không cần dịch lại

b Hoạt động:

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

-Theo em chương trình dịch: chương trình chương trình nguồn chương trình đích

-Nêu vấn đề: Em muốn giới thiệu trường cho người khách du lịch quốc tế biết tiếng Anh, ta có cách thực nào?

- Cách ta gọi thông dịch; cách gọi biên dịch

- Giáo viên đưa ví dụ tương tự: Khi thủ trưởng phủ trả lời vấn trước nhà báo quốc tế, họ thường cần người thông dịch để dịch câu tiếng Việt sang tiếng Anh

- Khi thủ tướng đọc diễn văn tiếngAnh trước Hội nghị, họ cần người phiên dịch để chuyển văn tiếng Việt thành tiếng Anh

Tương tự chương trình dịch có hai loại thơng dịch biên dịch

-Các em cho biết tiến trình thông dịch biên dịch

-Nghiên cứu SGK trả lời câu hỏi: + Chương trình nguồn chương trình viết ngơn ngữ lập trình bậc cao + Chương trình đích chương trình thực chuyển đổi sang ngôn ngữ máy C1: Cần người biết tiếng Anh dịch câu nói em sang tiếng Anh cho người khách

C2: Em soạn nội dung giới thiệu giấy người phiên dịch dịch toàn nội dung sang tiếng Anh đọc cho khách nghe

-Nghiên cứu SGK trả lời câu hỏi: +Thơng dịch:

B1: Kiểm tra tính đắn câu lệnh chương trình nguồn;

B2: Chuyển lệnh thành ngơn ngữ máy B3: Thực câu lệnh vừa chuyển đổi

+Biên dịch:

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

B2: Dịch tồn chương trình 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

4.

Hoạt động 4:Củng cố kiến thức

-Khái niệm lập trình ngơn ngữ lập trình

-Các ngơn ngữ lập trình: ngơn ngữ máy, ngơn ngữ bậc cao, hợp ngữ -Khái niệm chương trình dịch

(4)

Ngày soạn: 20/8/2012 Tiết: 02

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

I Mục tiêu:

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

-Biết số khái niệm tên, tên chuẩn, tên dành riêng, tên người lập trình đặt, hằng, biến thích

-Biết qui định tên, biến ngơn ngữ lập trình cụ thể -Thực việc đặt tên nhận biết tên sai theo qui định

II. Chuẩn bị giáo viên học sinh;

-Giáo viên : sách giáo viên, sách giáo khoa, số bảng phụ, Hướng dẫn thực chuẩn kiến thức, kĩ môn Tin học THPT

-Học sinh: sách giáo khoa, đọc trước học nhà

III Phương pháp

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

-Hoạt động nhóm

IV Tiến trình học

1 Hoạt động 1: Ổn định lớp kiểm tra cũ:

2 Hoạt động 2: Giới thiệu cho học sinh thành phần ngơn ngữ lập trình.

a) Nội dung:

Mỗi ngơn ngữ lập trình có ba thành phần là: bảng chữ cái, cú pháp ngữ nghĩa - Bảng chữ tập kí tự dùng để viết chương trình, khơng phép dùng kí

tự khác ngồi kí tự qui định bảng chữ

- Cú pháp qui tác dùng để viết chương trình, mà dựa vào chúng, người lập trình chương trình dịch biết tổ hợp kí tự bảng chữ hợp lệ Nhờ mơ tả xác thuật tốn để máy tính thực

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

Tóm lại, 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

b) Hoạt động:

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

Đặt vấn đề : Có yếu tố dùng để xây dựng nên ngôn ngữ tiếng Việt?

* Diễn giải : Trong ngôn ngữ lập trình tương tự vậy, gồm có thành phần : Bảng chữ cái, cú pháp ngữ nghĩa

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

* Độc lập suy nghĩ trả lời - Bảng chữ tiếng Việt, số, dấu - Cách ghép kí tự thành từ, phép từ thành câu

(5)

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

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

GV treo bảng phụ (SGK Trang 9)

- Bảng chữ ngơn ngữ lập trình khác có khác Ví dụ bảng chữ ngơn ngữ lập trình C++ khác

pascal sử dụng thêm kí tự dấu nháy kép(“), dấu sổ ngược(\), dấu chấm than(!)

- Giới thiệu cú pháp:Cú pháp ngơn ngữ lập trình khác khác ngôn ngữ pascal dùng cặp từ Begin- End để gộp nhiều lệnh thành lệnh C++ 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) với I,J số nguyên

Hỏi HS: Về ngữ nghĩa biểu thức có khác khơng?

 Mỗi ngơn ngữ khác có ngữ nghĩa

khác

Lắng nghe ghi chép

HS ý lắng nghe

Khác nhau: Dấu cộng (1) cộng số thực cộng (2) cộng số nguyên

3 Hoạt động 3: Giới thiệu cho học sinh khái niệm tên ngôn ngữ lập trình nói chung Turbo Pascal nói riêng.

a) Nội dung:

- Mọi đối tượng chương trình phải đặt tên theo qui tắc ngơn ngữ lâp trình chương trình dịch cụ thể

- Tên Turbo Pascal dãy liên tiếp khơng q 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

- Nhiều ngơn ngữ lập trình phân biệt ba loại tên: tên chuẩn, tên dành riêng tên người lập trình tự đặt

+ Tên dành riêng: tên dùng với ý nghĩa xác định, người lập trình khơng sử dụng chúng với ý nghĩa khác gọi từ khoá

+ Tên chuẩn: Tên dùng với ý nghĩa người dùng khai báo dùng chúng với ý nghĩa mục đích khác Ý nghĩa tên chuẩn qui định thư viện ngôn ngữ lập trình

+ Tên người lập trình ttự đặt: Tên sử dụng với ý nghĩa riêng, 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 b) Hoạt động:

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

(6)

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

không phân biệt chữ hoa, chữ thường

- Em dựa vào sách giáo khoa nêu qui cách đặt tên Pascal

- Giáo viên đưa số tên để học sinh phân biệt tên tên sai: A, A BC, 6pQ, R13, X##y, _45

- 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(như C++) lại phân biệt chữ hoa, chữ thường

Học sinh dựa vào sách giáo khoa để trả lời

- + Bao gồm chữ cái, chữ số, dấu gạch

- + Độ dài khơng q 127 kí tự

- + Bắt đầu chữ dấu gạch

Các tên đúng: A, R13, 45

4 Hoạt động 3: Giới thiệu cho học sinh khái niệm biến

a) Nội dung:

- Khái niệm - Khái niệm biến

- Phân biệt giống khác biến b) Hoạt động:

HĐ CỦA GV HĐ CỦA HS

VG đư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 dùng để lưu ba hệ số phương trình

- - x1,x2 hai tên dùng để lưu nghiệm ( có) - - Delta tên dùng để lưu giá trị delta

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

Lắng nghe

Lắng nghe

HĐ4: Củng cố toàn bài:(4’)

(7)

Ngày soạn: 27/8/2012 Tiết: 03

BÀI TẬP

I Mục tiêu: 1 Về kiến thức:

- 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

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

- Biết khái niệm biên dịch thông dịch

- Biết thành phần ngơn ngữ lập trình: bảng chữ cái, cú pháp ngữ nghĩa. - Biết thành phần sở Pascal: bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa),

hằng biến.

2 Về kỹ năng:

- Biết viết hằng tên ngơn ngữ lập trình cụ thể

3 Về tư thái độ:

- Nhận thức q trình phát triển ngơn ngữ lập trình gắn liền với trình phát triển tin học nhằm giải toán thực tiễn ngày phức tạp

- Ham muốn học ngơn ngữ lập trình cụ thể để có khả giải tốn máy tính điện tử

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

1 Giáo viên: chuẩn bị nội dung để giải tập cuối chương số câu hỏi trắc nghiệm chương

2 Học sinh:Ôn lại kiến thức chương, chuẩn bị tập cuối chương III Phương pháp:

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

IV. Tiến trình học: 1. Ổn định lớp kiểm tra sĩ số.

2 Kiểm tra cũ. 3 Tiến trình tiết dạy:

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

- ĐVĐ: Trước giải tập 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 người ta phải xây dựng ngơn ngữ lập trình bậc cao?

- Nhận xét, đánh giá bổ sung hướng dẫn cho học sinh trả lời câu hỏi số

- Đặt câu hỏi 2: Chương trình dịch gì? Tại sao cần phải có chương trình dịch?

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

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

- Đọc yêu cầu câu hỏi tập cuối chương trang 13 SGK

- Suy nghĩ để đưa phương án trả lời

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

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

(8)

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

- Đặt câu hỏi 4: Hãy cho biết điểm khác tên dành riêng tên chuẩn?

- Gọi hs trả lời cho ví dụ

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

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

- Gọi học sinh lên bảng cho ví dụ tên người lập trình đặt

- Nhận xét, sửa chữa, góp ý

- Đặt câu hỏi 6: Hãy cho biết 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’

- Nhận xét, giải thích

- Suy nghĩ, trả lời, giải thích câu hỏi

4. Hoạt động củng cố 3’

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

(9)

Ngày soạn: 03/9/2012 Tiết: 4+5

Chương II: CHƯƠNG TRÌNH ĐƠN GIẢN

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

§4 CÁC KIỂU DỮ LIỆU CHUẨN

I MỤC TIÊU

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

-Biết số kiểu liệu chuẩn: Nguyên, thực, kí tự, logic

Kĩ năng.

Nhận biết thành phần ngơn ngữ lập trình viết chương trình đơn giản

II CHUẨN BỊ CỦA GV VÀ HS

-Giáo viên: SGK, SGV, trannh có chứa số khai báo biến để học sinh chọn – sai, máy chiếu, Hướng dẫn thực chuẩn kiến thức, kĩ môn Tin học THPT -Học sinh: SGK

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

Hoạt động 1 : Tìm hiểu cấu trúc chung thành phần chương trình a Nội dung:

- Cấu trúc chương trình có hai phần: Phần khai báo phần thân

- Phần khai báo : Khai báo tên chương trình, khai báo thư viện sử dụng, khai báo hằng, khai báo biến khai báo chương trình

- Phần thân chương trình : Bao gồm dãy lệnh đặt cặp dấu hiệu mở đầu kết thúc

BEGIN

[<Câu lệnh;>] END

b Hoạt động:

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

Phát vấn gợi ý : Mộtbài tập làm văn em thường viết có phần? Các phần có thứ tự khơng? Vì phải chia vậy?

Yêu cầu học sinh nghiên cứu sách giáo khoa để trả lời câu hỏi sau:

- Một chương trình có cấu trúc phần?

- phần khai báo có khai báo nào?

- Yêu cầu học sinh lấy ví dụ khai báo tên chương trình ngôn ngữ Pascal

- Yêu cầu học sinh lấy ví dụ khai báo thư viện

Lắng nghe suy nghĩ trả lời : - Có ba phần

- Có thứ tự : Mở bài, thân bài, kết luận - Dễ viết, dễ đọc, dễ hiểu nội dung

2 Nghiên cứu sách giáo khoa, thảo luận trả lời

+ Hai phần :

[<phần khaibáo>] <Phần thân chương trình>

- Khai báo tên chương trình, khai báo thư viện chương trìnhcon, khai báo hằng, khai báo biến khai báo chương trình

- Cấu trúc : Program ten_chuong_trinh ;

(10)

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

chương trình ngôn ngữ Pascal - Yêu cầu học sinh lấy ví dụ khai báo ngơn ngữ Pascal

- Yêu cầu học sinh lấy ví dụ khai báo biến ngôn ngữ Pascal

- Yêu cầu học sinh cho biết cấu trúc chung phần thân chương trình ngơn ngữ lập trình Pascal

Tìm hiểu chương trình đơn giản - Chiếu lên bảng chương trình đơn giản ngôn ngữ C++

# include <stdio.h> void main()

{

Printf(“Xin chao cac ban”); }

- Hỏi : Phần khai báo chương trình?

- Hỏi : Phần thân chương trình, lệnh prìnt có chức gì?

- Chiếu lên bảng chương trình đơn giản ngơn ngữ Pascal

Program VD1 ; Var x,y:byte; t:word; Begin

t:=x+y; Writeln(t); readln; End

- Hỏi : Phần khai báo chương trình? - Hỏi : Phần thân chương trình? Có lệnh thân chương trình?

Yêu cầu học sinh lấy ví dụ chương trình Pascal khơng có phần tên phần khai báo

- Cấu trúc : Uses tên_thư_viện; - Ví dụ : Uses crt ;

- Cấu trúc : Const tên_hằng = giá_trị;

- Ví dụ : Const maxn=100;

- Cấu trúc : Var tên_biến=kiểu_dữ_liệu;

- Ví dụ : Var a, b, c : integer; Begin

Dãy lệnh; End

Quan sát tranh trả lời

- Phần khai báo có khai báo thư viện stdio.h

- Phần thân {}

- Lệnh printf dùng để đưa thông báo hình

- Khai báo tên chương trình : Program VD1;

- Khai báo biến : Var x, y:byte ;t:word; Var x, y:byte; t:word;

- Còn lại phần thân

- Lệnh gán, lệnh đưa thông báo hình

Thảo luận trả lời Begin

Writeln(“Hello”); Readln;

End

(11)

Integer: -32768 32767 Word: 65535

Longint: -2148473648 214873647 - Kiểu số thực:

Real: 2.9E-39 1.7E38 Extended: 3.4E 1.1E4932

- Kiểu kí tự: Là kí tự thuộc bảng mã ASCII, gồm 256 kí tự đánh số từ đến 255 - Kiểu logic: Là tập hợp gồm hai giá trị True Flase, kết phép so sánh

c Hoạt động:

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

Đặt vấn đề: Trong toán học, để thực tính tốn ta cần phải có tập số Đó tập số nào?

- Diễn giải: Cũng tương tự vậy, ngôn ngữ lập trình Pascal, để lập trình giải tốn, cần có tập hợp, tập hợp có giới hạn định

- Các em hiểu nơm na: Kiểu liệu chuẩn tập hữu hạn giá trị, kiểu liệu cần dung lượng nhớ cần thiết để lưu trữ xác định phép tốn tác động lên liệu

Yêu cầu học sinh nghiên cứu sách giáo khoa, trả lời câu hỏi sau:

- Có kiểu liệu chuẩn ngôn ngữ Pascal?

- ngơn ngữ Pascal, có kiểu ngun thường dùng, phạm vi biểu diển loại?

- ngơn ngữ Pascal, có kiểu số thực thường dùng, phạm vi biểu diễn loại?

- ngơn ngữ Pascal, có kiểu kí tự?

- ngơn ngữ Pascal, có kiểu logic, gồm giá trị nào?

Giáo viên giải thích số vấn đề cho học sinh:

+ Vì phạm vi biểu diễn loại kiểu nguyên khác nhau?

+ Miềm giá trị loại kiểu thực, số chữ số có nghĩa?

Phát vấn: Muốn tính tốn giá trị : 7.5 ta phải sử dụng liệu gì?

Chú ý, Lắng nghe suy nghĩ trả lời: - Số tự nhiên, số nguyên, số hữu tỉ, số thực

- Liên tưởng tập số toán học với kiểu liệu Pascal?

Nghiên cứu sách giáo khoavà trả lời - Có kiểu: Kiểu nguyên, kiểu thực, kiểu kí tự kiểu logic

- Có loại: Byte, word, integer longint

- Có loại: real, extended

- Có loại: Char

- Có loại: boolean, gồm phần tử: True False

Chú ý lắng nghe ghi nhớ

Suy nghĩ trả lời Kiểu Real

(12)

Những nội dung học

- Một chương trình gồm có hai phần: Phần khai báo phần thân

- Các kiểu liệu chuẩn: Kiểu số nguyên, kiểu số thực, kiểu kí tự, kiểu logic

- Mọi biến chương trình phải khai báo Cấu trúc chung khai báo biến Pascal: Var tên_ biến: tên_kiểu_dữ_liệu;

2 Câu hỏi tập nhà

- Làm tập 1, 2, 3, 4, trang 35 sách giáo khoa

- Xem trước nội dung bài: Khai báo biến; Phép toán, biểu thức, lệnh gán trang 24 sách giáo khoa

(13)

Ngày soạn: 10/9/2012

Tiết: 6+7

§5 KHAI BÁO BIẾN

§6 PHÉP TOÁN, BIỂU THỨC, LỆNH GÁN

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

-Biết cách khai báo biến

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

-Biết chức lệnh gán

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

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 khai báo biến để viết chương trình

II ĐỒ DÙNG DẠY HỌC Chuẩn bị giáo viên

-Sách giáo khoa, Hướng dẫn thực chuẩn kiến thức, kĩ môn Tin học THPT -Tranh chứa biểu thức toán học, tranh chứa bảng hàm số học chuẩn, tranh

chứa bảng chân trị

- Máy vi tính máy chiếu Projector

Chuẩn bị học sinh

- Sách giáo khoa

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

1 Hoạt động 1: Ổn định lớp kiểm tra cũ

2 Hoạt động 2: Tìm hiểu cách khai báo biến a Nội dung:

Trong ngôn ngữ lậo trìnhPascal, cấu trúc chung khai báo biến Var tên_biến_1: Kiểu_dữ_liệu_1;

tên_biến_2: Kiểu_dữ_liệu_2;

tên_biến_n: Kiểu_dữ_liệu_n;

Nếu có nhiều biến có kiểu liệu, khai báo ghép, biến phân cách dấu phẩy Kiểu_dữ_liệu kiểu liệu chuẩn Pascal

b Hoạt động

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

Yêu cầu học sinh nghiên cứu sách giáo khoa cho biết phải khai báo biến?

- Cấu trúc chung khai báo biến ngôn ngữ Pascal

- Cho ví dụ để khai báo biến nguyên biến kiểu kí tự

Nghiên cứu sách giáo khoa trả lời - Mọi biến dùng chương trình phải khai báo tên biến kiểu liệu biến Tên biến dùng để xác lập quan hệ biến địa nhớ nơi lưu giữ giá trị biến

- Var <danh sách biến>: <kiểu liệu>; Var x: word;

y: char;

(14)

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

Treo tranh có chứa số khai báo yêu cầu học sinh chọn khai báo ngơn ngữ lập trình Pascal?

Var

x, y, z: word; n 1: real; X: longint; h: integer; i: byte;

Treo tranh có chứa số khai báo biến Pascal

- Hỏi: Có biến tất cả, Bộ nhớ phải cấp phát bao nhiêu?

Var x, y: word; z: longint; h: integer; i: byte;

Var

x, y, z: word; i: byte;

Quan sát tranh trả lời - Có biến

- tổng nhớ cần cấp phát

x (2 byte); y (2 byte); z (4 byte); h (2 byte); i (1 byte); tỏng 11 byte

3 Hoạt động : Tìm hiểu số phép tốn a Nội dung:

- Các phép toán số học: + - * / DIV MOD

- Các phép toán quan hệ: <, <=, >, >=, =, <> Dùng để so sánh hai đại lượng, kết phép toán True Flase

- Các phép toán logic: NOT, OR, AND, thường dùng để tạo biểu thức logic từ biểu thức quan hệ đơn giản

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

Hoạt động giáo viên` Hoạt động học sinh

đặt vấn đề: để mơ tả thao tác thuật tốn, ngơn ngữ lập trình đếu sử dụng số khái niệm bản: Phép toán, biểu thức, gán giá trị

Phát vấn: Hãy kể phép toán em học toán học

- Diễn giải: Trong ngơn ngữ lập trịnh Pascal có phép tốn diễn đạt cách khác

- Yêu cầu học sinh nghiên cứu sách giáo khoa cho biết nhóm phép toán

- Hỏi : Phép Div, Mod sử dụng cho kiểu liệu nào?

- Hỏi: Kết phép toán quan hệ thuộc kiểu liệu nào?

Chú ý lắng nghe

Suy nghĩ trả lời :

- Phép: Cộng, trừ, nhân, chia, lấy số dư, chia lấy nguyên, so sánh

- Các phép toán số học: + - * / div mod - Các phép toán quan hệ: <, <=, >, >=, =, <>

- Các phép toán logic: And, Or, Not - Chỉ sử dụng cho kiểu nguyên - Thuộc kiểu logic

4 Hoạt động : Tìm hiểu biểu thức a Nội dung:

(15)

- Thứ tự thực biểu thức số học: ngoặc trước, ngồi ngoặc sau dãy phép tốn khơng chứa ngoặc thực từ trái sang phải theo thứ tự phép toán: Nhân, chia, chia lấy nguyên, chia lấy dư thực trước ccs phép toán công, trừ thực sau - Hàm số học chuẩn thông dụng

Hàm Kiểu đối số Kiểu hàm số

bình phương: SQR(X) I R Theo kiểu đối số

Căn bậc hai: SQRT(X) I R R

Gái trị tuyệt đối: ABS(X) I R Theo kiểu đối số

Sin(X) I R R

Cos(X) I R R

logarit tự nhiên lnx ln(x) I R R

Lũy thừa số e ex exp(x) I R R

- Hai biểu thức có kiểu liệu liên kết với phép toán quan hệ cho ta biểu thức quan hệ

<biểu_thức_1> <phép_toán_quan_hệ> <biểu_thức_2> - Thứ tự thực hiên.:

+ tính giá trị biểu thức + Thực phép toán quan hệ

- Các biểu thức quan hệ liên kết với phép toán logic ta biểu thức logic Biểu thức logic đơn giản giá trị True Flase

b Hoạt động:

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

Nêu vấn đề: toán học ta làm quen với khái niệm biểu thức, cho biết yếu tố xây dựng nên biểu thức - Nếu toán mà toán hạng biến số, số hàm số toán tử phép tốn số học biểu thức có tên gọi gì?

Treo tranh có chứa biểu thức toán học lên bảng, yêu cầu: Sử dụng phép toán số học, biểu diễn biểu thức tốn học sau thành biểu thức ngơn ngữ lập trình

2a+5b+c xy

2z

x+y + x 2

- 2z z

- Nghiên cứu sách giáo khoa từ việc xây dựng biểu thức trên, nêu thứ tự thực phép toán

Nêu vấn đề: toán học ta làm quen với số hàm số học, kể tên số hàm đó?

- Trong số ngơn ngữ lập trình ta

Suy nghĩ trả lời

- Gồm hai phần: Toán hạng toán tử - Biểu thức số học

Quan sát trả lời 2*a+5*b+c

x*y/(2*z)

((x+y)/(1 – (2 /z)))+(x*x/(2*z))

- Thực ngoặc trước; Ngồi ngoặc sau Nhân, chia, cơng, trừ sau

Suy nghĩ trả lời

(16)

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

có số hàm diễn đạt cách khác

- Treo tranh chứa bảng số hàm chuẩn, yêu cầu học sinh điền thêm thông tin chứac hàm , kiểu đối số kiểu hàm số

- cho biểu thức:

2 4

b b ac

a

  

hãy biểu diễn biểu thức sang biểu thức ngơn ngữ lập trình

Nêu vấn đề : Khi hai biểu thức số học liên kết với phép toán quan hệ ta biểu thức mới, biểu thức gọi biểu thức gì?

- Hãy lấy ví dụ biểu thức quan hệ? - Yêu cầu học sinh nghiên cứu sách giáo khoa cho biết cấu trúc chung biểu thức quan hệ?

- Thứ tự thực biểu thức quan hệ? - Cho biết kết phép toán quan hệ thuộc kiểu liệu học?

Nêu vấn đề: Các biểu thức quan hệ liên kết với phép toán Logic gọi biểu thức Logic

- Hãy cho số ví dụ biểu thức logic - tốn học ta có biểu thức 5<=x<=11, biểu diễn biểu thức ngôn ngữ lập trình

- Thứ tự thực biểu thức logic

- Kết biểu thức logic có kiểu liệu gì?

- Treo tranh có chứa bảng chân trị A B, yêu cầu học sinh điền giá trị cho A and B; A or B; not A

- Quan sát tranh vẽ, nghiên cứu sách giáo khoa lên bảng điền tranh

- Suy nghĩ, lên bảng trả lời (-b-sqrt(b*b – 4*a*c))/(2*a) Suy nghĩ trả lời - Gọi biểu thức quan hệ

- Ví dụ: 2*x<y - Cấu trúc chung:

<BT1> <phép toán qh> <BT2> + Tính giá trị biểu thức

+ Thực phép toán quan hệ

- Kiểu logic

Chú ý theo dõi dẫn dắt giáo viên suy nghĩ để trả lời

- Ví dụ: (A>B) or ((X+1)<Y) (5>2) and ((3+2)<7)

- Biểu thức ngơn ngữ lập trình : (5<=x) and (x<=11)

+ Thực biểu thức quan hệ + Thực phép toán logic - Kiểu logic

- Học sinh suy nghĩ trả lời cách điền vào bảng

Hoạt động 5 : Tìm hiểu lệnh gán a Nội dung:

- Lệnh gán dùng để tính giá trị biểu thức chuyển giá trị vào biến - Cấu trúc: Tên biến : =biểu_thức;

- Sự thực máy:

(17)

b Hoạt động:

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

- Giới thiệu số ví dụ lệnh gán Pascal sau:

x:=4+8;

- Giải thích: Lấy cộng 8, đem kết đặt vào x Ta x=12

- Hỏi : Hãy cho biết chức lệnh gán?

- Yêu cầu học sinh nghiên cứu sách giáo khoa cho biết cấu trúc chung lệnh gán ngôn ngữ Pascal

- Hãy cho ví dụ để tính nghiệm phương trình bậc hai

2 4

b b ac

x

a

   

- Giới thiệu thêm ví dụ: Cho chương trình Var i,z:integer;

Begin z:=4; i:=6; z:=z – 1; i:=i+1;

writeln(“i=”,i); writeln(“z=”,z); readln;

End

- Hỏi: Chương trình in hình giá trị bao nhiêu?

- Thực chương trình để học sinh kiểm nghiệm kết tự suy luận

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

+ Tính giá trị biểu thức

+ Gán giá trị tính tên biến <tên_biến>:=<biểu_thức>;

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

- In hình: z=3 i=7

- Quan sát kết chương trình

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

Những nội dung học

- Các phép toán Turbo Pascal: Số học, quan hệ logic - Các biểu thức Turbo Pascal: Số học, quan hệ logic - Cấu trúc lệnh gán Turbo Pascal: tên_biến :=biểu_thức; Câu hỏi tập nhà

- Làm tập 5, 6, 7, 8, sách giáo khoa, trang 35 – 36;

(18)

Ngày soạn:10/10/2012

Tiết: 08

§7 CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN

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

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

-Biết ý nghĩa thủ tục và/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 thành chương trình

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

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 hệ soạn thảo Turbo Pascal -Soạn 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

II ĐỒ DÙNG DẠY HỌC Chuẩn bị giáo viên

-Sách giáo khoa, Hướng dẫn thực chuẩn kiến thức, kĩ môn Tin học THPT -Tranh chứa biểu thức tốn học, số chương trình viết sẵn

-Máy vi tính có cài phần mềm Turbo Pascal 7.0, máy chiếu Projector, máy chiếu vật thể 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: Ổn định lớp kiểm tra cũ

2 Hoạt động 2: Giáo viên hướng dẫn học sinh tìm hiểu thủ tục nhập liệu từ bàn phím

a) Nội dung:

- Thủ tục nhập liệu vào dùng để đưa nhiều liệu khác cho chương trình xử lí

- Cú pháp: Read/Readln(<danh sách biến vào >); b) Các bước tiến hành:

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

Nêu vấn đề: Khi giải toán, ta phải đưa liệu vào để máy tính xử lí, việc đưa liệu lệnh gán làm cho chương trình có tác dụng với liệu cố định Để chương trình giải nhiều toán hơn, ta phải sử dụng thủ tục nhập liệu

- Yêu cầu học sinh nghiên cứu sách giáo khoa cho biết cấu trúc chung thủ tục nhập liệu ngôn ngữ lập trình Pascal:

Chú ý lắng nghe dẫn dắt giáo viên

- Nghiên cứu sách giáo khoa suy nghĩ để trả lời

(19)

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

phương trình ax+b=0, ta phải nhập vào đại lượng nào? Viết lệnh nhập?

Chiếu chương trình Pascal đơn giản có lệnh nhập giá trị có hai biến

- thực chương trình thực nhập liệu

- Hỏi : Khi nhập giá trị cho nhiều biến, ta phải thực nào?

- Yêu cầu học sinh thực nhập liệu cho chương trình

- Phải nhập giá trị cho hai biến: a, b - Viết lệnh: Readln(a,b);

Quan sát chương trình ví dụ giáo viên

- Những giá trị phải gõ cách dấu cách kí tự xuống dịng - Lên bảng thực nhập theo yêu cầu giáo viên

3 Hoạt động 3: Tìm hiểu thủ tục đưa liệu hình a) Nội dung:

- Thủ tục xuất liệu hình dùng để đưa kết sau sử lí hình để người sử dụng thấy

- Cú pháp: Write/Writeln(<danh sách kết ra>); b) Các bước tiến hành:

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

Dẫn dắt: sau xử lí xong, kết tìm được lưu nhớ Để thấy kết hình ta sử dụng thủ tục xuất liệu

- Yêu cầu học sinh nghiên cứu sách giáo khoa cho biết cấu trúc chung thủ tục xuất liệu ngôn ngữ lập trình Pascal - Nêu ví dụ: Khi viết chương trình giải phương trình ax+b=0, ta phải đưa hình giá trị nghiệm –b/a, ta phải viết lệnh nào?

Chiếu chương trình Pascal đơn giản Program vb;

Var x, y, z:integer; Begin

Writeln(“nhap vao hai so:”); Readln(x, y);

z:=x+y;

write(x:6, y:6, z:6); readln;

end

- Thực chương trình thực nhập liệu để học sinh thấy kết hình

- Hỏi : Chức lệnh Writeln();

Chú ý lắng nghe dẫn dắt giáo viên

- Nghiên cứu sách giáo khoa trả lời Write(<tên_biến_1>, ,<tên_biến_k>); Writeln(<tên_biến_1>, ,<tên_biến_k>); - Viết lệnh : Writeln(-b/a);

Quan sát chương trình ví dụ giáo viên

(20)

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

- Hỏi: ý nghĩa : lệnh Write( ) - Hỏi: Khi tham số lệnh Write() thuộc kiểu Char real quy định vị trí nào?

- Cho ví dụ cụ thể với biến c kiểu Char r kiểu real

xuống dòng

- Dành vị trí hình để viết số x, vị trí tiếp để viết số y vị trí tiếp để viết số z

- Khi tham số có kiểu kí tự, việc quy định vị trí giống kiểu nguyên

- Khi tham số có kiểu thực phải quy định hai loại vị trí : Vị trí cho tồn số thực vị trí cho phần thập phân

- Ví dụ : Write(c:8); Write(r:8:3); Hoạt động 4: Làm quen với Turbo Pascal 7.0

a) Nội dung:

- Việc khởi động chương trình Turbo Pascal tương tự việc khởi động chương trình khác Windows Ta thực sau:

+ Chuyển vào thư mục chứa file Turbo.exe + Nháy đúp chuột vào tập tin Turbo.exe

(Nếu mơi trường Win cần bấm biểu tượng Turbo Pascal) b) Các bước tiến hành:

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

Đặt vấn đề: Để sử dụng Turbo Pascal, máy phải có file chương trình cần thiết Tham khảo sách giáo khoa cho biết tên file chương trình đó?

Trình diễn cách khởi động Turbo Pascal thơng qua máy chiếu Projector

- Giới thiệu hình soạn thảo chương trình: Bảng chọn, trỏ, vùng soạn thảo

Tham khảo sách giáo khoa trả lời Turbo.exe

Turbo.tpl Graph.tpu

Egavga.bgi file *.chr Học sinh quan sát ghi nhớ

5 Hoạt động 5: Tập soạn thảo chương trình dịch lỗi cú pháp a) Nội dung:

- Soạn thảo chương trình gõ lệnh chương trình vào vùng soạn thảo (giống hệ soạn thảo văn bản)

- Lưu file chương trình đĩa bấm F2 File/save save as sau gõ tên chương trình nơi lưu trữ chương trình

- Biên dịch lỗi cú pháp : bấm ALT+F9 - Dịch toàn chương trình: F9

(21)

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

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

Soạn chương trình làm ví dụ, lưu chương trình, dịch lỗi

- Dùng máy chiếu vật thể để minh họa thao tác lưu file chương trình biên dịch

Soạn chương trình, hỏi lỗi cú pháp chương trình, gọi học sinh dịch lỗi sửa

Program vd1 var x:integer; Begin

Write(‘Nhap mot so nguyen duong); readln(x);

y:=sqrt(x); write(y); End

Quan sát ghi nhớ

- Lưu: F2

- Dịch lỗi: ALT_F9

Quan sát phát lỗi để sửa lỗi cho chương trình

Program vd1; var x,y:integer; Begin

Write(‘Nhap mot so nguyen duong);

readln(x); y:=sqrt(x); write(y); End

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

Những nội dung học

- Nhập liệu : Read/Readln(<tên_biến_1>, ,<tên_biến_k>); - Xuất liệu : write/writeln(<tham_số_1>, ,<tham_số_k>);

- Khởi động Turbo Soạn thảo chương trình Dịch lỗi cú pháp Thực chương trình Tìm lỗi thuất tốn hiệu chỉnh

Câu hỏi tập nhà

- Hãy so sánh giống khác Write(); writeln(); - Hãy so sánh giống khác Read(); Readln(); - Tìm hiểu chức lệnh Readln; Writeln;

- Viết chương trình nhập vào số tính bình phương số

- Viết chương trình nhập độ dài bán kính t icnhs chu vi diện tích hìnhtrịn tương ứng

- Làm tập 9, 10, sách giáo khoa, trang 36

(22)

Ngày soạn: 17/10/2012

Tiết: 09+10

BÀI THỰC HÀNH SỐ 1

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

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

- Làm quen với dịch vụ chủ yếu Turbo Pascal việc soạn thảo, lưu chương trình, dịch chương trình thực chương trình

Kĩ năng

- Soạn chương trình, lưu lên đĩa, dịch lỗi cú pháp, thực tìm lỗi thuật toá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 Turbo pascal 3 Thái độ

- Tự giác, tích cực chủ động thực hành

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

1 Chuẩn bị giáo viên.

- Phịng máy vi tính cài đầy đủ Turbo Pascal, máy chiếu projector để hướng dẫn

Chuẩn bị học sinh

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

III.HOẠT ĐỘNG DẠY – HỌC 1 Hoạt động 1: Ổn định lớp

2 Hoạt động 2: Tìm hiểu chương trình hồn chỉnh a Nội dung:

- Cho chương trình sau: Program giai_pt; Uses CRT;

var a,b,c,d,x1,x2:read; Begin

clrscr;

write(‘nhap a b c’); Readln(a,b,c); d:=b*b – 4*a*c;

x1:=(-b – sqrt(d))/(2*a); x2:=(-b + sqrt(d))/(2*a);

writeln(‘x1=’,x1:6:2,’x2=’,x2:6:2,); Readln;

End

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

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

Chiếu chương trình lên bảng Yêu cầu học sinh thực nhiêmj vụ:

- Soạn chương trình vào máy - Lưu chương trình

- dịch lỗi cú pháp

- Thực chương trình

Quan sát bảng, độc lập soạn chương trình vào máy

(23)

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

quả

- Trở hình soạn thảo - Thực chương trình

- Nhập liệu Thơng báo kết - Hỏi: Vì có lỗi xuất hiện?

-Sửa lại chương trình khơng dùng biến d

Enter Ctrl_F9 Thơng báo lỗi

Do bậc hai cảu số âm Readln(a, b, c);

x1:=(-b-sqrt(b*b-4*a*c))/(2*a); x2:=(-b+sqrt(b*b-4*a*c))/(2*a); writeln(‘x1=’,x1:6:2, ‘x2=’,x2:6:2,);

3 Hoạt động 3: Rèn luyện kĩ lập chương trình a Nội dung:

- Viết chương trình tính diện tích hình mơ tả màu, với a nhập vào từ bàn phím

VẼ HÌNH TRỊN TÍNH DIỆN TÍCH

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

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

Định hướng để học sinh phân tích tốn

- Dữ liệu vào: - Dữ liệu ra: - Cách tính:

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

- Quan sát hướng dẫn học sinh lúc thực hành

Yêu cầu học sinh nhập liệu thông báo kết

a=3 a=-3

Phân tích theo yêu cầu giáo viên - Dữ liệu vào a

- Dữ liệu s

Tính diện tích hình trịn có bk a (s1) Tính diện tích hình vuông cạnh

a

2

(s2)

s:=sl-s2;

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

- Soạn thảo chương trình

- Bấm phím F2, gõ tên file để lưu

- Bấm phím ALT_F9 để dịch lỗi cú pháp - Bấm phím CTRL_F9 để thực chương trình

- thông báo kết cho giáo viên Nhập liệu theo yêu cầu

- Với a=3, ta được:s=9(Pi-2)=10.26

- Với a=-3, kết khơng đúng, độ dài cạnh phải số dương

IV.ĐÁNH GIÁ CUỐI BÀI. Những nội dung học

- Các bước để hồn thành chương trình:

+ Phân tích tốn để xác định liệu và, liệu + Xác đinh thuật toán

(24)

+ Thực hiệu chỉnh chương trình 2 Câu hỏi tập nhà

- Viết chương trình nhập vào độ dài ba cạnh tam giác tính chu vi, diện tích tam giác

- Cho chương trình sau: Program bt1;

Var r,s1,s2,s:real; Begin

write(‘nhap r’); readln(r); s1:=4*r*r; s2:= r*r*pi; s:=s1 – s2; write(s:6:2); readln; End

Hỏi : chương trình thực cơng việc gì, kết in hình bao nhiêu? - Làm tập 7, 8, 9, 10, trang 36

+ Soạn chương trình + Dịch lỗi thực

+ Nhập liệu kiểm tra kết

(25)

Ngày soạn: 28/10/2012

Tiết: 11

BÀI TẬP

I Mục tiêu:

1 Kiến thức:

- Củng cố lại cho học sinh số kiến thức học chương

- Học sinh biết sử dụng thủ tục vào/ra chuẩn, số phép toán câu lệnh gán

2 Kĩ năng:

- Học sinh biết sửa lỗi chương trình, dự đốn kết chương trình cho trước - Học sinh viết số chương trình đơn giản cách sử dụng câu lệnh gán

thủ tục vào chuẩn

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

- Giáo viên: sách giáo khoa, sách tập số tập tham khảo thêm - Học sinh: sách giáo khoa, sách tập

III Phương pháp:

- Vấn đáp - Gợi mở - Nêu vấn đề

IV Hoạt động dạy-học

1. Hoạt động 1: Ổn định lớp kiểm tra cũ

2. Hoạt động 2: Rèn luyện cho học sinh giải tập xác định kiểu liệu, biểu diễn biểu thức Pascal

Cho d li u sau:

ữ ệ

Tên biến Kiểu liệu Giá trị

a Byte 10

b Byte

c Real 4.6

d Real -0.4

Xác định kiểu liệu giá trị biểu thức sau:

Biểu thức Kiểu liệu Giá trị (a-b)/sqrt(c-d)

(adivb)/(amodb) Sqr(amodb)

3. Hoạt động 3: Rèn luyện cho học sinh kĩ đọc hiểu chương trình sửa lỗi chương trình cho trước

Tìm, sửa lỗi cho biết kết thực chương trình sau:

Program bt2; Var a,b,t:integer;

c:byte; Begin

A:=200; B:=a+50; C:=a+b; T:=c/a;

Write(‘Ket qua la:’,c,t); Readln;

(26)

4. Hoạt động 4: Rèn luyện cho học sinh kĩ ban đầu viết chương trình đơn giản

1) Viết chương trình nhập vào tổng số giây Thơng báo hình dạng giờ:phút:giây

Ví dụ: nhập vào 4215 Kết quả: 1h10m15s

2) Viết chương trình nhập vào số có chữ số Hiện hình tổng chữ số số nói

(27)

Ngày soạn: 04/11/2012

Tiết: 12

KIỂM TRA MỘT TIẾT

I Mục tiêu:

1 Kiến thức:

- Củng cố lại cho học sinh số kiến thức học chương thông qua cácbài tập cụ thể

- Học sinh biết sử dụng thủ tục vào/ra chuẩn, số phép toán câu lệnh gán

2 Kĩ năng:

- Học sinh biết sửa lỗi chương trình, dự đốn kết chương trình cho trước - Học sinh viết số chương trình đơn giản cách sử dụng câu lệnh gán

thủ tục vào chuẩn

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

- Giáo viên: đề kiểm tra

- Học sinh:các kiến thức học để làm tập

III Phương pháp:

- Nêu vấn đề

IV Hoạt động dạy-học

1. Hoạt động 1: Ổn định lớp

2. Hoạt động 2: Nội dung đề kiểm tra 1)

Cho d li u sau:

ữ ệ

Tên biến Kiểu liệu Giá trị

a Byte 10

b Byte

c Integer 15

d Integer 19

Xác định kiểu liệu giá trị biểu thức sau: (2 đ) Biểu thức Kiểu liệu Giá trị

(c+d)/(a+b) (a>b) or (c>d)

2) Viết biểu thức sau ngôn ngữ lập trình Turbo Pascal(3đ) a)

5 3 6

x x

x

  

b)

3

2 (2 1)

x x

x

   

c)

6

2

2 15 (3 5) 48

x x

x

   

3) Tìm, sửa lỗi cho biết kết thực chương trình sau: (2đ)

Program bt2; Var a,b:integer;

x,y:boolean; Begin

(28)

y:=(a>b) or (c>d);; Write(‘Ket qua la:’,x,y); Readln;

End.

4) Viết chương trình nhập vào số có chữ số Hiện hình tổng bình phương chữ số số nói trên.(3đ)

(29)

Ngày soạn: 10/11/2012

Tiết: 13+14

Chương III: CẤU TRÚC RẼ NHÁNH VÀ LẶP

§9 CẤU TRÚC RẼ NHÁNH

I MỤC TIÊ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 tố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

II ĐỒ DÙNG DẠY HỌC Chuẩn bị giáo viên

- Sách giáo khoa, sách giáo viên, Hướng dẫn thực chuẩn kiến thức, kĩ môn Tin học THPT

- Các sơ đồ khối cấu trúc rẽ nhánh dạng đủ thiếu 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: Ổn định lớp kiểm tra cũ

2 Hoạt động 2: Giáo viên hướng dẫn học sinh tìm hiểu thủ tục nhập liệu từ bàn phím

a) Nội dung:

- Để giải số toán máy tính, ta phải sử dụng số mệnh đề có dạng: nếu…thì, nếu….thì….ngược lại thì… Cấu trúc gọi cấu trúc rẽ nhánh

- Ý nghĩa cấu trúc rẽ nhánh: Cấu trúc rẽ nhánh điều khiển chọn thực hay không thực công việc phù hợp với điều kiện xảy

- Mọi ngơn ngữ lập trình có câu lệnh để mô tả cấu trúc rẽ nhánh b) Hoạt động:

Hoạt động giáo viên Hoạt động học sinh GV: Cho ví dụ câu điều kiện?

GV: Chọn hai câu làm ví dụ Từ phân tích cho học sinh thấy cấu trúc rẽ nhánh thể ví dụ

HS:+ Nếu em thuộc 10 điểm… + Nếu tối trời mưa em nghỉ học ngược lại em học…

3 Hoạt động 3: Tìm hiểu cú pháp, ý nghĩa cách thực câu lệnh rẽ nhánh dạng đủ thiếu

a) Nội dung:

 Cú pháp:

- Dạng thiếu IF <điều kiện> THEN <câu lệnh>;

(30)

 Cách thực hiện:

- Bước 1: Tình giá trị biểu thức điều kiện

- Bước 2: Nếu biểu thức điều kiện nhận giá trị câu lệnh 1/câu lệnh thực hiện; biểu thức điều kiện nhận giá trị sai câu lệnh thực Trong trường hợp câu lệnh rẽ nhánh dạng thiếu kết thúc câu lệnh IF chuyển qua câu lệnh

 Sơ đồ khối:

 Ví dụ:

- Tìm giá trị lớn hai số a,b C1: If a>b then max:=a else max:=b; C2: max:=a;

If max<b then max:=b;

- Viết câu lệnh cho biết pt bậc có nghiệm hay không? If delta<0 then write(‘PT vo nghiem!’)

Else write(‘PT co nghien’);

b) Hoạt động:

Hoạt động giáo viên Hoạt động học sinh GV: Nêu cú pháp câu lệnh rẽ nhánh dạng đủ dạng

khuyết

GV: Treo bảng phụ giải thích q trình thực câu lệnh rẽ nhánh dạng đủ dạng khuyết

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

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

GV: lưu ý em trước từ khố Else khơng có dấu ; sau then, sau else có lệnh chương trình

GV: Với dạng này, dạng thuận tiện hơn?

GV:Gọi học sinh viết câu lệnh kiểm tra pt bậc 2có nghiệm hay khơng?

HS: Quan sát ghi chép

HS: Lên bảng viết: If a > b then max:= a; If a < b then max:= b; Hoặc: If a > b then max:=a Else max:=b;

(31)

4 Hoạt động 4: Tìm hiểu câu lệnh ghép ngơn ngữ lập trình nói chung Pascal nói riêng; Tìm hiểu số chương trình có sử dụng cấu trúc rẽ nhánh

a) Nội dung:

- Trong ngơn ngữ lập trình nói chung, câu lệnh ghép thương sử dụng cho sô công việc thực thoả mãn điều kiện

- Trong ngơn ngữ Pascal câu lệnh ghép có dạng: Begin

<các câu lệnh>; End;

 Một số ví dụ:

Viết chương trình giải phương trình bậc hai với hệ số a,b,c nhập vào từ bàn phím

Program ptb2;

Var a, b, c, d, x1, x2: real; Begin

Write(‘ Nhap a, b, c:’); Readln(a,b,c);

d := b*b – 4*a*c;

If d < then Write(‘ PT vo nghiem’) Else

If d=0 then writeln(‘PT co nghiem kep x=’,-b/(2*a):6:2) Else

Begin

Write(‘ PT co nghiem phan biet :’); x1:= (- b – sqrt(d))/(2*a);

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

Write(‘x1=’,x1:6:2, ‘x2=’,x2:6:2); End;

Readln end

b) Hoạt động:

Hoạt động giáo viên Hoạt động học sinh GV: Muốn thực nhiều lệnh sau if sau

then làm nào?

Dẫn đến khái niệm cách dùng câu lệnh ghép: cấu trúc rẽ nhánh, sau THEN có từ lệnh trở lên gộp thành câu lệnh ghép, đặt lệnh cặp từ khố Begin…end; với Pascal

H: Gọi học sinh nêu thuật toán giải PT bậc hai?

GV: Nhận xét, bổ sung

GV: Phân nhóm yêu cầu học sinh thảo luận

HS: Phát biểu ý kiến

Đ: B1:Nhập a, b, c B2: Tính d = b2 – 4ac;

(32)

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

nhóm để viết chương trình thể thuật tốn Ghi lời giải vào bảng phụ

GV: Yêu cầu đại diện nhóm lên treo bảng lời giải trình bày

Cho nhóm khác nhận xét

GV: xác hố lời giải HS cho điểm

x1,2 =

b a

a

 

HS: Thảo luận theo nhóm trình bày lời giải vào bảng phụ:

HS: Đại diện nhóm lên treo bảng lời giải trình bày

Các nhóm khác nhận xét

(33)

Ngày soạn: 26/11/2012

Tiết: 15

BÀI TẬP

I Mục tiêu:

1 Kiến thức:

- Củng cố lại cho học sinh số kiến thức cấu trúc rẽ nhánh dạng đủ dạng thiếu - Học sinh biết sử dụng cấu trúc rẽ nhánh

2 Kĩ năng:

- Học sinh biết sửa lỗi chương trình, dự đốn kết chương trình cho trước - Học sinh viết số chương trình thơng qua câu lệnh nhập xuất, lệnh gán

caâ lệnh rẽ nhánh

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

- Giáo viên: sách giáo khoa, sách tập số tập tham khảo thêm - Học sinh: sách giáo khoa, sách tập

III Phương pháp:

- Vấn đáp - Gợi mở - Nêu vấn đề

IV Hoạt động dạy-học

1. Hoạt động 1: Ổn định lớp kiểm tra cũ

2. Hoạt động 2: Học sinh dự đoán kết chương trình cho trước Cho biết kết thực chương trình sau:

Program bt1; Var a,b: word; Begin

A:=5;b:=8;

If (amod2=0) and (bmod2=0) then writeln(‘Tong hai so a va b la so le’) Else

Writeln(‘Tong cua a va b la so chan’); Readln;

End

3. Hoạt động 3: Rèn luyện cho học sinh cách viết câu lệnh rẽ nhánh Viết đoạn chương trình chứa câu lệnh IF để tính:

2 2

2

2

1

)

1

0.5

1

x

y neu x

y

a y

x y neu x

y

va y x

neu x

y

va y x

)

x

y

b z

x y



nếu điểm (x,y) thuộc đường tròn (I,r)

4. Hoạt động 4: Rèn luyện cho học sinh kĩ viết chương trình

1) Viết chương trình nhập vào toạ độ điểm, kiểm tra điểm có tạo thành tam giác khơng? Nếu có tính diện tích tam giác

(34)

Ngày soạn: 03/12/2012

Tiết: 16+17

ÔN TẬP

A MỤC TIÊU, YÊU CẦU:

- Ôn tập hệ thống kiến thức rèn luyện kĩ ban đầu học sinh tiếp xúc với ngơn ngữ lập trình

- Học sinh nắm vận dụng cấu trúc rẽ nhánh lặp vào toán cụ thể

B PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN:

- Đàm thoại - Gợi mở - Nêu vấn đề

C TIẾN TRÌNH LÊN LỚP, NỘI DUNG BÀI GIẢNG: 1 Hoạt động 1: Ổn dịnh lớp

2 Hoạt động 2: Củng cố lại kiến thức học ngơn ngữ lập trình, kiểu liệu Pascal, cấu trúc chương trình thơng qua câu trắc nghiệm

Câu 1) Chọn phát biểu sai phát biểu sau :

A. Nói chung, chương trình thường gồm hai phần : phần khai báo phần thân;

B. Phần thân chương trình thiết phải có;

C. Phần khai báo thiết phải có; (*)

D. Phần thân chương trình khơng chứa lệnh nào; Câu 2) Xét chương trình Pascal cho khung :

Chọn phát biểu sai phát biểu :

A. Khai báo tên chương trình vi du (*)

B. Khai báo tên chương trình vi_du

C. Thân chương trình có hai câu lệnh

D. Chương trình khơng có khai báo

Câu 3) Chọn phát biểu phát biểu sau :

A. Mọi ngơn ngữ lập trình có kiểu liệu chuẩn : kiểu nguyên, kiểu thực, kiểu kí tự, kiểu lơgic;

B. Quy định phạm vi giá trị kích thước nhớ lưu trữ giá trị kiểu liệu chuẩn ngơn ngữ lập trình nhau;

C. Dữ liệu kiểu byte có 256 giá trị từ 0, 1, 2, …, 255; (*)

D. Dữ liệu kiểu kí tự có 256 giá trị; Câu 4) Cho gợi ý khai báo biến sau :

 Nên đặt tên biến cho gợi nhớ đến ý nghĩa biến  Khơng nên đặt tên biến q ngắn

 Không nên đặt tên biến dài, dễ mắc lỗi gõ tên biến chương trình

 Khi khai báo biến cần ý đến phạm vi giá trị để chọn kiểu biến cho phù hợp Có gợi ý ?

PROGRAM vi_du;

BEGIN

Writeln(‘Xin chao cac ban’);

Writeln(‘Moi cac ban lam quen voi Pascal’);

(35)

B. gợi ý đúng;

C. gợi ý đúng;

D. gợi ý đúng; (*)

Câu 5) Cho chương trình cịn lỗi sau :

Tìm kết luận lỗi chương trình kết luận sau :

A. Thiếu Begin

B. Không khai báo biến d

C. Thiếu Begin không khai biến d (*)

D. Khơng có END

Câu 6) Trường hợp sau lệnh gán Pascal ?

A. a := 10 ;

B. a + b := 1000 ; (*)

C. cd := 50 ;

D. a := a*2 ;

Câu 7) Hãy chọn phương án ghép Để mô tả cấu trúc rẽ nhánh thuật tốn, nhiều ngơn ngữ lập trình bậc cao dùng câu lệnh IF – THEN, sau IF <điều kiện> Điều kiện

A. biểu thức lôgic; (*)

B. biểu thức số học;

C. biểu thức quan hệ;

D. câu lệnh;

Câu 8) ELSE <câu lệnh 2>, câu lệnh 2 thực

A. biểu thức điều kiện câu lệnh 1 thực xong;

B. câu lệnh 1 thực hiện;

C. biểu thức điều kiện sai; (*)

D. biểu thức điều kiện đúng;

Câu 9) Hãy chọn cách dùng sai Muốn dùng biến X lưu giá trị nhỏ giá trị hai biến A, B dùng cấu trúc rẽ nhánh sau :

A. if A <= B then X := A else X := B;

B. if A < B then X := A; (*)

C. X := B; if A < B then X := A;

D. if A < B then X := A else X := B;

Câu 10) Chọn phát biểu sai phát biểu sau :

A. Để mô tả việc lặp lặp lại số thao tác (hoặc câu lệnh) thuật tốn ta dùng cấu trúc lặp

B. Tùy trường hợp cụ thể (khi mơ tả thuật tốn), ta biết trước số lần lặp, ta khơng cần khơng xác định trước số lần lặp thao tác

C. Có thể dùng cấu trúc lặp để thay cho cấu trúc rẽ nhánh mô tả thuật tốn (*)

D. Khơng thể mơ tả thuật tốn ngơn ngữ lập trình bậc cao không dùng cấu trúc lặp

Var

A, b, c : real ;

A := 1; b := 1; c := ; d := b*b – 4*a*c ; writeln(‘d = ’,d);

(36)

3 Hoạt động 3: Rèn luyện kĩ đọc-hiểu chương trình Cho biết kết thực đoạn chương trình sau: a) S:=0;

For i:=1 to

If i mod 3=0 then s:=S+i Else s:=s-i;

Write(‘S=’,S); b) i:=1;P:=1; while (i<=6) begin

p:=p*i; i:=i+2; end;

write(‘P=’,P);

4 Hoạt động 4: Rèn luyện kĩ lập trình

1) Viết chương trình tính tổng bình phương số lẻ từ đến n với n nguyên dương cho trước,được nhập vào từ bàn phím

2) Viết chương trình tính S=20+21+22+….+2N với n ngun dương cho trước.

3)Viết chương trình tính 1

3 3 3  số hạng cuối nhỏ 0.0001 (

1

0.0001

n  )

(37)

Ngày soạn:10/12/2012

Tiết: 18

KIỂM TRA HỌC KÌ I

I Mục tiêu đánh giá:

- Kiểm tra, đánh giá khả tiếp thu kiến thức, kĩ học sinh về: Các thành phần sở ngơn ngữ Pascal, phép tốn, biểu thức, kiểu liệu chuẩn, câu lệnh gán, tổ chức vào/ra đơn giản, tổ chức rẽ nhánh lặp

- Đánh giá khả tổ chức chương trình Pascal với cấu trúc

II.Ma trận đề: Cấp độ Chủ

đề

Nhận biêt Thông hiểu Vận dụng Cộng Cấp độ thấp Cấp độ cao

TN TL TN TL TN TL TN TL

Chương I Câu Câu

Sổ câu:2 Số điểm: 0.8 Tỉ lệ: 8%

Chương II Câu Câu 1,4 Câu Câu

1a,b Câu 1c,d,3

Sổ câu:6 Số điểm:5.1 Tỉ lệ:51%

Chương III Câu

6,8,10,3

Câu Câu

Sổ câu:6 Sổ điểm:4.1 Tỉ lệ: 41%

III Đề kiểm tra:

ĐỀ KIỂM TRA HKI

MÔN: TIN HỌC 11

- 

-Thời gian: 45 phút (không kể thời gian giao đề)

I Phần trắc nghiệm (4 điểm): Mỗi câu trả lời 0.4 điểm

Câu Chọn phát biểu sai phát biểu sau :

A Trong Pascal, phép chia số thực (kí hiệu "/") áp dụng cho chia hai số nguyên

B Trong Pascal, phép chia số nguyên (kí hiệu div) áp dụng cho hai số thực C Trong máy tính, khơng thể chia số cho số nhỏ tùy ý (tùy ý sát gần giá trị 0)

D Hầu hết ngôn ngữ lập trình có phép tốn số học phép toán quan hệ Câu Cho x y biến khai báo kiểu thực, câu lệnh sau ?

(38)

Câu Hãy chọn phương án ghép Với cấu trúc rẽ nhánh IF <điều kiện> THEN <câu lệnh 1> ELSE <câu lệnh 2>, câu lệnh 2 thực

A biểu thức điều kiện câu lệnh 1 thực xong B câu lệnh 1 thực C biểu thức điều kiện sai D biểu thức điều kiện Câu Phát biểu hợp lí ?

A Biến đại lượng đặt tên có giá trị thay đổi q trình thực chương trình

B Biến lưu trữ nhiều loại giá trị khác C Biến đặt khơng đặt tên gọi

D Biến đại lượng nhận giá trị trước chương trình thực

Câu Phát biểu sai nói biên dịch thông dịch ?

A Một ngôn ngữ lập trình có chương trình thơng dịch chương trình biên dịch B Chương trình dịch ngơn ngữ lập trình bậc cao gọi biên dịch cịn thơng dịch chương trình dịch dùng với hợp ngữ

C Biên dịch thông dịch kiểm tra tính đắn câu lệnh

D Thơng dịch dịch thực câu lệnh cịn biên dịch phải dịch trước tồn chương trình sang mã nhị phân thực

Câu Hãy chọn phương án ghép Để mô tả cấu trúc rẽ nhánh thuật tốn, nhiều ngơn ngữ lập trình bậc cao dùng câu lệnh IF - THEN, sau IF <điều kiện>

Điều kiện

A biểu thức số học B biểu thức quan hệ C biểu thức lôgic D một câu lệnh Câu Phát biểu chắn sai ?

A Chương trình tạo thành từ tổ hợp câu lệnh khai báo cần thiết biến, hằng, hàm, … B Lập trình chương trình hai khái niệm tương đương, cách mơ tả thuật tốn ngơn ngữ lập trình

C Lập trình viết chương trình

D Chương trình chưa cho kết với nhiều liệu vào Câu Phát biểu sau lấy làm biểu thức điều kiện cấu trúc rẽ nhánh?

A "A nho hon B" B A > B C N mod 100 D A + B Câu Những biểu thức sau có giá trị TRUE ?

A ( > ) and not( + < ) or ( > div ) B ( < ) or ( + < ) and ( < div )

C 4 + * ( + ) < 18 div * D ( 20 > 19 ) and ( 'B' < 'A' )

Câu 10 Hãy chọn phương án ghép Với cấu trúc rẽ nhánh IF <điều kiện> THEN <câu lệnh>, câu lệnh đứng sau THEN thực

A điều kiện tính tốn cho giá trị B điều kiện tính tốn xong C điều kiện khơng tính D điều kiện tính tốn cho giá trị sai

II. Phần tự luận: (6 điểm)

Câu 1(2 điểm): Biểu diễn biểu thức sau Pascal:

3 / 2x 5x

a

2

/ (2x 3x )(4x+5)

b

6 2x 6x /

(3x 5)

c

2

/ (2x+3)

(39)

VAR x,y,z:integer;

BEGIN

x:=10;y:=50;z:=5;

if x<y then z:=x-y else z:=y-x; if z<0 then

begin

writeln(‘chuc cac em thi tot!’); writeln(x:4,y:4,z:4);

end else

writeln(‘bai kiem tra hoc ki khong qua kho’);

END.

(40)

Ngày soạn: 02/01/2013

Tiết: 19+20+21

§10 CẤU TRÚC LẶP

I MỤC TIÊU

Kiến thức

- Biết ý nghĩa cấu trúc lặp

- Biết cấu trúc chung lệnh lặp for ngơn ngữ lập trình Pascal - Biết sử dụng hai dạng lệnh lặp For ngơn ngữ lập trình Pascal

- Biết ý nghĩa cấu trúc lặp có số lần lặp chưa xác định - Biết cấu trúc chung lệnh lặp While ngôn ngữ Pascal - Biết thực máy gặp lệnh lặp While

Kĩ năng

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

- Phân biệt giống khác cấu trúc lặp For While - Sử dụng lệnh lặp While lập trình

- 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

II ĐỒ DÙNG DẠY HỌC. Chuẩn bị giáo viên.

- Sách giáo khoa, sách giáo viên, Hướng dẫn thực chuẩn kiến thức, kĩ mơn Tin học THPT

- Máy vi tính, máy chiếu Overhead, bìa trong, bút dạ, máy chiếu Projector,

Chuẩn bị học sinh.

- Sách giáo khoa

III HOẠT ĐỘNG DẠY – HỌC Tiết 19+20

1.Hoạt động 1: Ổn định lớp kiểm tra cũ

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

Bài toán 1: Viết chương trình tính tổng S = 1/a+ 1/a+1 + 1/a+2 + + 1/a+100 Bài tốn 2: Một người có số tiền S, ông ta gửi tiền 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 tiết kiệm (không rút tiền lãi hàng tháng), ông ta số tiền bao nhiêu?

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

HƯỚNG DẪN CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

Nếu toán đặt vấn đề toán - Hãy xác định cơng thức tốn học để tính tổng?

- Gợi ý phương pháp: Ta xem S thùng, số hạng ca có dung tích khác nhau, việc tính tổng tương tự việc đổ ca nước vào thùng S

- Có lần đổ nước vào thùng?

Chú ý quan sát toán đặt vấn đề - Rất khó xác định cơng thức

- Theo dõi gợi ý

(41)

HƯỚNG DẪN CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

thứ i đổ bao nhiêu?

- Phải viết lệnh?

Nêu toán đặt vấn đề toán - Em hiểu cách tính tiền gửi tiết kiệm toán

- Từ đó, lập cơng thức tính tiền thu sau tháng thứ

- Ta phải thực tính lần vậy?

- Dẫn dắt: Chương trình viết nhơ dài, khó đọc dễ sai sót Cần có cấu trúc điều khiển việc lặp lại thực công việc

- Trong tất ngơn ngữ lập trình có cấu trúc điều khiển việc thực lặp lại so với số lần định trước

Chia lớp thành nhóm nhóm viết thuật tốn giải tốn 1, nhóm viết thuật tốn giải tốn lên bìa

- Thu kết quả, chiếu kết lên bảng Gọi học sinh nhóm khác nhận xét đánh giá

- Chuẩn hóa lại thuật tốn cho học sinh lần cuối

- Phải viết 100 lệnh

Chú ý quan sát trả lời câu hỏi - Với số tiền S, sau tháng có tiền lãi 0,015*S

- Số tiền cộng vảơtng số tiền ban đầu để tính lãi cho tháng

- S: = S + 0,015*S;

- Phải thực tính 12 lần

- Tập trung theo dõi giáo viên trình bày

Thảo luận theo nhóm để viết thuất tốn: Bước 1: N <– 0; S <– 1/a;

Bước 2: N <– N+1;

Bước 3: : N>100 chuyển đến bước Bước : S <– S+1/(a+N),

Quay lại bước

Bước : Đưa S hình kết thúc - Thông báo kết viết

- Nhận xét, đánh giá kết nhóm khác

- Theo dõi ghi nhớ

3 Hoạt động 3: Tìm hiểu lệnh lặp For ngơn ngữ lập trình Pascal a Nội dung:

Dạng tiến: - Cấu trúc:

For <biến đếm>:=<giá trị đầu> To <giá trị cuối> Do <lệnh cần lặp>;

- Giải thích:

+ Biến đếm: Là biến kiểu nguyên, kí tự miề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ỏ giá trị cuối

- Sự thực máy:

+ Bước 1: Tính giá trị đầu, gán cho biến đếm

+ Bước 2: Nếu biến đếm <= giá trị cuối thực lệnh cần lặp + Bước 3: Tăng biến đếm lên quay lại bước

(42)

Dạng lùi:

- Cấu trúc : For <biến đếm>:=<giá trị cuối> Downto <giá trị đầu> Do <lệnh cần lặp>; - Giải thích:

+ Giá trị đầu phải lớn giá trị cuối - Sự thực máy:

+ Bước 1: tính giá trị đầu, gán cho biến đếm

+ Bước 2: Nếu biến đếm>=giá trị cuối thực lệnh cần lặp + Bước 3: Giảm biến đếm xuống quay lại bước

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

HƯỚNG DẪN 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 cho biết cấu trúc chung For? - Giải thích:

< Biến đếm>: Là biến kiểu nguyên, kí tự - Hỏi : ý nghĩa <Giá trị đầu> <Giá trị cuối>, Kiểu liệu chúng

- Hỏi: Trong toán gửi tiết kiệm, <Giá trị đầu> <Giá trị cuối> bao nhiêu?

- Hỏi : Trong tốn tính tổng <Giá trị đầu> <Giá trị cuối> bao nhiêu?

- Dẫn dắt : Những lệnh cần lặp lại ta đặt sau Do

- Hỏi : Khi nhiều lệnh khác cần lặp lại ta viết nào?

- Hỏi : Trong toán gửi tiết kiệm, lệnh cần lặp lại?

- Hỏi : Trong tốn tính tổng, lệnh cần lặp lại?

- Hỏi : Em có nhận xét giá trị <Giá trị đầu> <Giá trị cuối> ?

- Dẫn dắt: Khi lệnh For gọi For tiến Ngơn ngỡ lập trình Pascal cịn có dạng For khác gọi For lùi

Yêu cầu: Hãy trình bày cấu trúc chung For lùi

- Hỏi : So sánh <Giá trị đầu> <Giá trị cuối>? - Hỏi : Trong hai toán trên, dạng lệnh For phù hợp?

Đọc sách giáo khoa trở lời

For <Biến đếm>:=<giá trị đầu> To <Giá trị cuối> Do <lệnh cần lặp>;

- Dùng để làm giới hạn cho biến đếm - Cùng kiểu với <Biến đếm>

<Giá trị đầu> 1; <Giá trị cuối> 12

<Giá trị đầu> 1; <Giá trị cuối> 100

- Phải sử sụng cấu trúc lệnh ghép

S : = S + 0,015*S;

1

S

a i

  

<Giá trị đầu> <Giá trị cuối>

Nghiên cứu sách giáo khoa, suy nghĩ, so sánh với cấu trúc For tiến để trả lời For <biến đếm>:=<giá trị cuối>

Downto <giá trị đầu> Do <lệnh cần lặp>; <Giá trị đầu> <Giá trị cuối>

- Sử dụng dạng For tiến phù hợp

4 Hoạt động 4: Rèn luyện kĩ vận dụng lệnh lặp For a Nội dung:

Ví dụ 1: Viết chương trình tính tổng S = 1/a+ 1/a+1 + 1/a+2 + + 1/a+100

(43)

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

HƯỚNG DẪN CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

Nêu nội dung toán Mục tiêu xác định việc cần làm

+ Xác định giá trị đầu, giá trị cuối + Xác định lệnh cần lặp lại

- Yêu cầu học sinh tiếp tục hồn thành chương trình nhà

2 Nêu nội dung toán2, mục tiêu viết chương trìn hồn thiện

- Định hướng vấn đề

- Chia lớp thành nhóm Yêu cầu học sinh viết chương trình lên giấy bìa

- Thu phiếu học tập, chiếu lên bảng, gọi học sinh nhóm khác nhận xét đánh giá

- Chính xác hóa làm học sinh chương trình mẫu

Chú ý lắng nghe trả lời yêu cầu giáo viên

- Giá trị đầu 1, Giá trị cuối 100

S S a i

  

2 Chú ý lắng nghe nội dung yêu cầu

- Cùng thảo luận viết chương trình theo nhóm

- Quan sát chương trình giáo viên hướng dẫn ghi nhớ

Tiết 21

Hoạt động : Tìm hiểu ý nghĩa cấu trúc lặp có số lần chưa xác định a.Nội dung:

Bài tốn 1: Viết chương trình tính tổng:

S = 1/a + 1/a+1 + 1/a+2 + + 1/a+N + 1/a+N <0,0001

Bài tốn 2: Một người có số tiền S đồng, ông ta gửi tiét kiệm ngân hàng với số lãi suất 1,5% tháng Hỏi sau tháng người có số tiền lớn S1 đồng?

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

HƯỚNG DẪN CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

- Nêu nội dung toán

+ Hỏi : Sự khác toán với toán viết tiết trước?

+ Hỏi : Lặp lại lần? +Hỏi : Lặp đến nào? - Nêu nội dung toán

+ Hỏi : Sự khác toán với toán giải tiết trước?

+ Hỏi: Số lần lặp lệnh? + Hỏi : Lặp đến nào?

- Tiểu kết vấn đề: Qua hai ví dụ ta thấy có

- Chú ý lắng nghe, quan sát suy nghĩ để trả lời

+ Bài trước: CHo giới hạn N +Bài này: Cho giới hạn S + Chưa xác định

+ Đến điều kiện 1/a+N < 0,0001 thỏa mãn

- Chú ý lắng nghe, quan sát suy nghĩ trả lời

+ Bài trước : Biết số tháng, hỏi số tiền + Bài này: Biết số tiền, hỏi số tháng

+ Chưa biết trước, số tháng cần tìm

+Đến số tiền thu > S1 đồng

(44)

HƯỚNG DẪN CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

một dạng tốn có lặp lại số lệnh trước số lần lặp Cần có cấu trúc điều khiển lặp lại công viêc định thỏa mãn điều kiện

Hoạt động 2: Tìm hiểu cấu trúc lệnh lặp While ngôn ngữ lập trình Pascal a Nội dung:

- Cấu trúc: While<điều kiện>Do <lệnh cần lặp>; - Giải thích:

Điều kiện : Là biểu thức quan hệ biểu thức logic - Sự thực cuả máy:

+ Bước 1: Tính giá tị <điều kiện>

+ Bước 2: Nếu<điều kiện> Có giá trị thực câu lệnh cần lặp + Bước 3: Quay lại bước

- Sơ đồ khối

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

HƯỚNG DẪN 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 cho biết cấu trúc chung lệnh lặp While

- Giải thích:

+ <Điều kiện>: Là biểu thcứ quan hệ biểu thức logic, điều kiện để lặp lại

- Hỏi : tốn 1: Điều kiện để lặp lại gì?

- Hỏi : Trong toán 2: Điều kiện để lặp lại gì?

+ <Lệnh cần lặp>: Là lệnh cần phải lặp lại

- Hỏi : Trong hai toán lệnh cần lặp gì?

- Hỏi: Một khác lệnh cần lặp For While gì?

- Dựa vào cấu trúc chung, cho biết máy thực tính <điều kiện> trước hay thực <lệnh cần lặp> trước?

Yêu cầu học sinh vẽ sơ đồ cấu trúc lên bảng

- Gọi học sinh đánh giá nhận xét

- Tiểu kết cho vấn đề cách treo sơ đồ mãu giải thích

Tham khảo sách giáo khoa trả lời - Cấu trúc chung

While <điều kiên> Do <lệnh cần lặp>; 1/a+M >0,0001

S < S1

S:= S + 0,015*S để tính số tiền t:= t + 1; để tính số tháng S := S + 1/(a + i) để tính tổng i := i + 1; để tăng tỉ số

- While phải có lệnh tăng biến số - Quan sát, suy nghĩ trả lời:

+ tính biểu thức điều kiện trước + Thực lệnh cần lặp sau

Lên bảng vẽ sơ đồ cấu trúc lệnh While

(45)

a Nội dung:

Ví dụ 1: Một ngưới có số tiền S, ơng ta gửi tiết kiệm ngân hàng với lãi suất 1,5% /tháng Hỏi sau tháng người có số tiền lớn S1 đồng?

Ví dụ 2: Viết chương trình nhập vào hai số nguyên dương a b Tìm ước số chung lớn hai số

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

HƯỚNG DẪN CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH

Nêu nội dung toán Mục tiêu viết chương trình hồn thiện

- Định hướng vấn đề + Xác định điều kiện để tiếp tục lặp + Xác định lệnh cần lặp

- Chia làm nhóm u cầu học sinh viết chương trình hồn thiện lên bìa - thu phiếu trả lời, chiếu kết máy Overhead

- Gọi học sinh nhóm khác nhận xét đánh giá

- Chính xác hóa chương trình cho lớp Nêu nội dung toán Mục tiêu phân tích để xác định <điều kiện> <lệnh cần lặp>

- Lấy ví dụ cụ thể tìm ước số chung hai số 15 25

m n 15 25 15 10 10

Trả lời: ước số chung lớn - Hỏi: Điều kiện để tiếp tục lặp gì? - Hỏi : lệnh cần lặp lại gì?

- Yêu cầu học sinh viết chương trình hồn thiện tốn nhà

- u cầu học sinh hai câu hỏi cần đặt gặp toán dạng

Chú ý lắng nghe suy nghĩ trả lời câu hỏi định hướng giáo viên

- Điều kiện: S < S1

S:= S + 0,015*S để tính số tiền t:= t + 1; để tính số tháng

- Tập trung làm việc theo nhóm để viết chương trình hoàn thiện

- Đánh giá – sai bổ sung

- ghi nhớ phần giáo viên sửu chữa Tập trung theo dõi để thấy công việc cần thực

- Điều kiện : m<> n

- Lạnh cần lặp: m:=m-n; n:=n-m; - Thuật tốn:

B1: Nếu m=n UC=m, dừng

B2: Nếu m>n m:=m-n ngược lại n:=n-m; Quay lại B1

- Suynghĩ trả lời:

+ Điều kiện để lặp lại? + Những lệnh cần lặp lại?

IV ĐÁNH GIÁ CUỐI BÀI. Những nội dung học.

- Cấu trúc chung lệnh lặp For Sơ đồ thực lệnh lệnh lặp For - Ý nghĩa cấu trúc lặp có số lần chưa xác định

(46)

- Sự thực máy gặp lệnh lặp While

Câu hỏi tập nhà.

- Giải tập 4, 5, 6, 7, 8, sách giáo khoa trang 51 - Viết chương trình tính tổng:

S = 1/a + 1/a+1 + 1/a+2 + + 1/a+N + 1/a+N <0,0001

- Đọc lại lệnh rẽ nhánh IF làm tập liên quan, chuẩn bị cho tiết sau thực hành - Xem nội dung thực hành số 2, sách giáo khoa trang 49

(47)

Ngày soạn: 15/01/2013

Tiết: 22

Bµi tËp vµ thùc hµnh 2

A MỤC TIÊU, 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 lập trình giải số tốn cụ thể

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

3 Thái độ:

- Tự giác, tích cực chủ động thực hành

B PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN: 1 Phương pháp:

Kết hợp phương pháp giảng dạy như: truyền thống, vấn đáp, có hình minh hoạ

2 Phương tiện:

- GV: Chuẩn bị phòng máy thiết bị liên quan - HS: Thực hành nghe giảng máy

C TIẾN TRÌNH LÊN LỚP, NỘI DUNG BÀI GIẢNG: I Ổn định lớp:

Yêu cầu lớp trưởng báo cáo sĩ số

II Kiểm tra cũ gợi động học:

- Giới thiệu học

III Bài giảng, nội dung giảng:

1 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ụ dùng để hiệu chỉnh chương trình cần thiết như: 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 số bình phương hai số cịn lại

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

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

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

- GV: Cho lớp lên phòng máy

- GV: Phổ biến nội quy phịng máy, u cầu học sinh phải có trách nhiệm bảo vệ tất trang thiết bị

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

- Yêu cầu : lấy VD cụ thể

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

2 Yêu cầu học sinh thực thao tác soạn chương trình, lưu, thực lệnh chương

- Học sinh lắng nghe thực

1 Chú ý lắng nghe

- Tổng bình phương số bình phương số cịn lại

- VD - a2 = b2 + c2

b2 = a2 + c2 c2 = a2 + b2

(48)

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

trình.

- Yêu cầu học sinh gõ chương trình mẫu vào máy -Yêu cầu học sinh lưu chương trình lên đĩa với tên Pitago.pas

- Yêu cầu học sinh thực lệnh chương trình

- Yêu cầu học sinh xem kết a2, b2, c2

- Yêu cầu học sinh tự tìm thêm số a b c khác so sánh

cầu giáo viên.

- Bấm F2, gõ tên Pitago.pas enter - Bấm F7: Nhập giá trị a=5, b=4, c=3 - Chon menu Debug để mở cửa sổ hiệu chỉnh

- Quan sát trình rẽ nhánh liệu vào trả lời

2 Rèn luyện kĩ lập trình hồn thiện toán:

a Mục tiêu:

- Học sinh biết đọc hiểu đề, phân tích yêu đề Từ chon cấu trúc liệu lệnh phù hợp để lập trình

b Nội dung:

- Viết chương trình giải phương trình ax + b = c Các bước tiến hành:

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

1 Nêu nội dung, mục đích, u cầu tốn.

- Hỏi: Bước để giải toán?

- Hỏi: Để xác định ta phải đặt câu hỏi nào? Gọi học sinh đặt câu hỏi gọi học sinh trả lời cho câu hỏi đó?

- Yêu cầu học sinh phác họa thuật toán

2 Yêu cầu học sinh gõ chương trình vào máy.

- GV tiếp cận học sinh để hướng dẫn sửa sai

3 Yêu cầu học sinh nhập liệu 1, 2, -2

1 Chú ý theo dõi vấn đề đặt giáo viên.

- Xác định Input output, thuật giải - Mục đích giải phương trình?

+ Kết luận số nghiệm giá trị nghiệm x - Để tính nghiệm x cần đại lượng nào?

+ Cần đại lượng a, b

- Có bước xử lý để tính x?

2 Độc lập soạn chương trình vào máy.

- Thông báo kết viết

3 Nhập liệu theo yêu cầu GV. IV Đánh giá cuối bài:

1 Nội dung học:

Các bước để hồn thành chương trình:

- Phân tích tốn để xác định liệu vào, ra, thuật tốn - Soạn chương trình vào máy

- Lưu trữ chương trình - Biên dịch

- Thực hiệu chỉnh chương trình

2 Câu hỏi tập nhà:

(49)

Ngày soạn:28/01/2013 Tiết: 23

Bài tập thực hành 2:

CẤU TRÚC LẶP

I Mục tiêu học: 1 Kiến thức :

- Củng cố lại cho học sinh kiến thức liên quan đến tổ chức lặp: cấu trúc lặp, sơ đồ thực hiện, thực máy

2 Kỹ năng:

- Rèn luyện kỹ vận dụng linh họat việc lựa chọn cấu trúc lặp phù hợp để giải toán đặt

3 Thái độ :

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

II Chuẩn bị phương tiện, tài liệu, đồ dùng dạy học; - Giáo viên: Giáo án, Máy chiếu, phòng máy,

- Học sinh :vở, Sgk, chuẩn bị cũ,…

III Phương pháp dạy học:

Thực hành + thuyết trình

IV Tiến trình tổ chức dạy học: 1 Ổn định lớp:

2 Kiểm tra cũ:

Nhắc lại kiến thức học tổ chức rẽ nhánh lặp?

Hoạt động giáo viên Hoạt động học sinh - Yêu cầu hs nhắc lại cấu trúc rẽ nhánh

- Yêu cầu hs nhắc lại cấu trúc lệnh lặp học

- Độc lập suy nghĩ trả lời + Rẽ nhánh:

IF <điều kiện > THEN <câu lệnh>;

IF <điều kiện > THEN <câu lệnh 1> ELSE <câu lệnh 2>;

- Suy nghĩ trả lời + Lặp FOR

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

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

+ Lặp WHILE:

WHILE <điều kiện> DO <câu lệnh>;

3 Dẫn dắt vào mới: Ở tiết trước thực hành cấu trúc rẽ nhánh Hôm em vận dụng kiến thức học để lập trình số toán cấu trúc lặp

4 Giảng mới:

a Hoạt động 1 : Rèn luyện kỹ vận dụng tổ chức lặp

Hoạt động giáo viên Hoạt động học sinh Bài (SGK_51)

(50)

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

HS làm nhà)

- Hỏi: Có thể khai triển biểu thức Y thành tổng số hạng nào?

- Từ phân tích đưa quy luật tốn?

- Nhìn vào cơng khai triển, cho biết N lấy giá trị đoạn nào?

- Hỏi: ta sử dụng cấu trúc điều khiển lặp phù hợp?

- Yêu cầu viết chương trình - HS trình bày lại

- Gọi hs khác nhận xét, đánh giá, bổ sung

Y= 12 + 32 + 34 +… + nn

+1

- Thảo luận theo nhóm để viết chương trình Program bai5a;

Var y: Real; n: byte; BEGIN

Y:=0;

For n:=1 to 50 y:=y+n/(n+1); Write (‘y=’, y:2:2);

Readln END

- Nhận xét, đánh giá, bổ sung thiếu sót

b Hoạt động 2 : Luyện tập

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

1 Bài 1: Lập trình tính tổng toán: S= + 12 + 13 + …… + 1n (Với n =100)

- Phân tích toán:

S1=1; S2=S1+1/2; S3=S2+1/3; ………… S100=S99 + 1/100

- Từ phân tích đưa quy luật tốn?

- Nhìn vào cơng khai triển, cho biết N lấy giá trị đoạn ?

- Hỏi : ta sử dụng cấu trúc điều khiển lặp phù hợp ?

- Chia lớp thành nhiều nhóm, yêu cầu viết chương trình

- Gọi hs khác nhận xét, đánh giá, bổ sung

Nhận xét S2 việc tính S lặp lặp lại 99 lần theo quy luật

Ssau = Strước + 1/i

Với i chạy từ → 100 - Thuật toán:

+ B1: Nhập N + B2: S:=1; i:=2

+ B3: Nếu i > N đưa S kết thúc + B4: S:=S+1/i

+ B5: i:= i +1 quay lại b3

- Thảo luận theo nhóm để viết chương trình Program tong;

Var s: Real; n, i:integer; BEGIN

write(‘ Nhap vao n : ’); readln(n);

s:=1;

for i:=2 to n s:=s+1/i;

Writeln(‘ s = ‘, s:5:1); Readln

END Lập trình tính tổng S

S = + + + 16 + 25 + … + n2

Cho đến S >= 300, Cho đến lúc n=? + Gợi ý hs cách làm

- Thuật toán:

+ B1: Gán S:=0; N:=0

+ B2: Chừng S<300 thực N:=N+1;

(51)

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

+ Nhận xét cách giải

+ Sửa cần thiết

S:=0; N:= 0;

WHILE S<300 DO Begin

N:=N+1; S:=S + N*N; End;

Writeln(‘ N = ’,N);

5 Củng cố dặn dị:

Những nội dung học Có hai cấu trúc lặp :

+ Lặp với số lần xác định (FOR - DO) + Lặp với số lần chưa xác định (WHILE - DO)

6 Baøi tập nhà

Viết chương trình đếm số chữ số số nguyên cho trước Giải:

Program demchuso;

Var so:longint; chuso:longint;

Begin Write(‘Nhap mot so nguyen:’); readln(so); Chuso:=0;

While so <>0

Begin so:=so div 10; Chuso:=chuso +1; End;

Writeln (‘so chu so=’,chuso); Readln

(52)

Ngày soạn:01/02/2013 Tiết:24+25+26+27

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

§11 KIỂU MẢNG

I Mục tiê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 kiểu mảng chiều cách khai báo biến khiểu mảng chiều

- 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 chiều, cách khai báo biến, tham chiếu đến phần tử mảng

2 Kĩ năng

- Nhận biết thành phần khai báo mảng chiều

- Biết cách khai báo mảng chiều truy xuất đến phần tử mảng chiều

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

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

- Giáo viên: sách giáo khoa, sách giáo viên, Chuẩn KTKN Tin học THPT

- Học sinh:sách giáo khoa

III.Phương pháp:

- Thuyết trình

- Giảng giải

- Gợi mở

IV Hoạt động dạy học: Tiết 24+25

1 Hoạt động 1: Ổn định lớp

2. Hoạt động 2:Tìm hiểu ý nghĩa khái niệm mảng chiều a Nội dung:

- Bài tốn ví dụ:Nhập vào nhiệt độ ngày tuần, tính hình nhiệt độ trung bình tuần đó, số lượng ngày tuần có nhiệt độ cao nhiệt độ trung bình tuần

- Giáo viên yêu cầu học sinh nêu cách giải viết chương trình

- Giáo viên cho học sinh làm toán trường hợp tổng quát hơn: nhập vào nhiệt độ n ngày, tính nhiệt độ trung bình  Sự cần thiết sử dụng mảng chiều

Khái niệm đặc điểm mảng chiều:

- Là dãy hữu hạn phần tử có kiểu

- Mảng đặt tên phần tử có số

- Để mô tả mảng chiều cần xác định kiểu phần tử cách đánh số phần tử

-b Hoạt động:

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

- Nêu đề tốn ví dụ

(53)

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

- Hỏi: Khi N lớn chương trình có hạn chế nào?

- Dẫn dắt: Để khắc phục hạn chế trên, người ta thường ghép chung biến thành dãy đặt cho chung tên đánh cho phần tử số

- Yêu cầu học sinh tham khảo sách giáo khoa hỏi: Em hiểu mảng chiều?

- Giáo viên đưa số ví dụ thực tế mảng chiều

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

- Học sinh nhận xét trường hợp n lớn phải khai báo nhiều biến Chương trình phải viết dài

- Nghiên cứu sách giáo khoa để trả lời

- Mảng chiều dãy hữu hạn phần tử có kiểu liệu Các phần tử mảng có chung tên phân biệt số

- Để mô tả mảng chiều cần xác định kiểu phần tử cách đánh số phần tử

3. Hoạt động 3:Tạo kiểu mảng chiều khai báo biến mảng.

a Nội dung:

Khai báo mảng chiều: có hai cách

- Khai báo trực tiếp: Var <tên biến mảng>:array[chỉ số đầu số cuối] of <kiểu pt>;

- Khai báo gián tiếp: Type <tên kiểu mảng>= array[chỉ số đầu số cuối] of <kiểu pt>;

Var <tên biến mảng>: <tên kiểu mảng>;

- Giải thích:

+ Chỉ số đầu số cuối đoạn số nguyên liên tục

+ Chỉ số đầu, số cuối biểu thức nguyên (chỉ số đầu số cuối) + Kiểu phần tử kiểu chung phần tử mảng (là kiểu liệu biết)

+ Số phần tử tối đa mảng số cuối- số đầu +1

- Ví dụ: Để khai báo mảng a chứa 100 số thực ta khai báo sau: + Cách 1: Var a:array[1 100] of real;

+ Cách 2: Type sothuc=array[1 100] of real’

Var a: sothuc;

- Để truy xuất đến phần tử mảng ta thực hiện: tên biến mảng[chỉ số]; Ví dụ: Để truy xuất đến phần tử thứ mảng a khai báo ta thực a[5]  Một số lưu ý:

- Không thể nhập hay xuất giá trị biến mảng chiều nhập hay xuất giá trị biến kiểu đơn giản mà phải nhập hay xuất phần tử mảng

- Do mảng dãy phần tử đánh số giá trị liên tục nên thực thao tác nhập, xuất, xử lí mảng thường gắn với câu lệnh FOR- DO

- Khi khai báo kiểu mảng cần xác định kích thước (số phần tử) mảng b Hoạt động:

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

- Yêu cầu học sinh nghiên cứu sách giáo khoa cho biết cách tạo kiểu liệu mảng chiều ngôn ngữ lập trình Pascal

- Giáo viên nêu lại cú pháp giải ý nghĩa

(54)

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

các thành phần khai báo

- Giáo viên cho ví dụ để minh họa

- Yêu cầu số học sinh cho ví dụ khác

- Giáo viên cho sẵn số khai báo kiểu mảng chiều, yêu cầu học sinh nhận biết khai báo đúng, khai báo sai

Type

Arrayr=array[1 200] of real; Arrayr=array[byte] of real; Arrayb=array[-100 0] of boolean;

- Chú ý cho học sinh cách đặt tên kiểu liệu tên biến, tránh nhầm lẫn

- Giới thiệu cách tham chiếu đến phần tử mảng chiều Yêu cầu học sinh lấy ví dụ

- Giáo viên yêu cầu học sinh khai báo biến cho hai toán nêu đầu học

- Học sinh cho số ví dụ

- Quan sát bảng chọn khai báo Arrayr=array[1 200] of real;

Arrayb=array[-100 0] of boolean;

- Theo dõi hướng dẫn giáo viên độc lập suy nghĩ để trả lời

a[1] phần tử vị trí mảng a a[i] phần tử vị trí i mảng a

- Học sinh viết khai báo biến

4 Củng cố, dặn dò: Học sinh nhà viết chương trình tốn chuẩn bị tốn ví dụ sách giáo khoa trang 57

Tiết 26:

1. Hoạt động 1:Ổn định lớp kiểm tra cũ

- Viết cú pháp khai báo mảng chiều

- Cho ví dụ minh họa

- Nêu ý nghĩa khai báo biến mảng nhiều

2. Hoạt động 2:Rèn luyện kĩ sử dụng kiểu mảng chiều thơng qua số ví dụ

a. Nội dung:

 Hướng dẫn học sinh tìm thuật tốn viết chương trình sử dụng kiểu mảng chiều toán nêu tiết trước

+ Hướng dẫn học sinh viết chương trình tốn

+ Đưa trường hợp tổng quát cho toán học sinh tự viết

 Hướng dẫn học sinh tìm hiểu ví dụ sách giáo khoa: Bài tốn tìm phần tử lớn dãy số nguyên cho biết số phần tử lớn

Chương trình tốn sau:

Program tim_max;

Var n,i,max,csmax:integer; a: array[1 200] of integer;

Begin

write(‘nhap so phan tu cua day’); readln(n);

For i:=1 to n Begin

(55)

max:=a[1];csmax:=1; For i:= to n

If a[i]>max then begin

max:=a[i]; csmax:=i; end;

writeln(‘Gia tri cua phan tu lon nhat la:’,max); writeln(‘Chi so cua phan tu lon nhat la:’,csmax); readln;

End.

Sau học sinh viết chương trình giáo viên cần lưu ý cho học sinh điểm

sau:

- Dùng mảng có kiểu phần tử nguyên để biểu diễn dãy hữu hạn số nguyên cách khai báo mảng

- Câu lệnh FOR-DO thứ chương trình dùng để nhập phần tử cho mảng

- Câu lệnh FOR-DO thứ hai chương trình thể vịng lặp dùng để duyệt phần tử mảng để tìm phần tử lớn thời điểm

b. Hoạt động:

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

- Giáo viên nhắc lại đề

- Yêu cầu học sinh xác định liệu vào, liệu ra, trình bày thuật tốn

- Hỏi: Nếu khơng sử dụng biến mảng chiều, ta giải tốn khơng? Khó khăn không?

- Định hướng: Sử dụng kiểu mảng chiều để giải tốn nêu lại,giải thích thuật tốn tìm hiểu tiết trước

- Chia lớp thành nhóm Yêu cầu nhóm thảo luận viết chương trình lên giấy bìa

- Giáo viên nhận xét, sữa chữa bổ sung chương trình học sinh viết

- Đối với tốn ví dụ sách giáo khoa trang 56 giáo viên phát vấn để học sinh đưa cách giải, hướng dẫn học sinh khai báo biến trình bày thuật tốn chi tiết để học sinh viết chương trình

- Giáo viên nhận xét, sữa chữa bổ sung

- Quan sát đề bài, theo dõi yêu cầu cần giải đề

- Vào: số giá trị nhiệt độ ngày tuần

- Ra: Số ntb nhiệt độ trung bình tuần số nch số ngày có nhiệt độ cao nhiệt độ trung bình

- Nếu khơng sử dụng biến mảng chiều ta viết chương trình theo yêu cầu đặt chương trình dài dịng, khó sửa đổi

- Theo dõi hướng dẫn giáo viên Type tuan=array[1 7] of real;

Var ndtuan: tuan;

- Nhập giá trị cho mảng a

- Tính trung bình cộng giá trị mảng

- Đếm số phần tử có giá trị lớn trung bình cộng tính

- Học sinh thảo luận theo nhóm để viết chương trình

- Báo cáo kết viết

- Nhận xét, đánh giá bổ sung thiếu sót nhóm khác

- Quan sát ghi nhớ

(56)

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

chương trình viết học sinh

- Nhắc cho học sinh lưu ý giải thích số điểm chương trình

3 Củng cố, dặn dò: Học sinh nhà xem chuẩn bị tốn ví dụ sách giáo khoa trang 57

Tiết 27:

1 Hoạt động 1: Ổn định lớp kiểm tra cũ:

2. Hoạt động 2: Rèn luyện kĩ sử dụng kiểu mảng chiều thơng qua số ví dụ

a Nội dung:

 Hướng dẫn học sinh tìm hiểu ví dụ sách giáo khoa: Bài toán xếp dãy số nguyên thuật toán tráo đổi

Chương trình tốn sau:

Program sxtang;

Var n,i,j,t:integer;

a: array[1 200] of integer;

Begin

write(‘nhap so phan tu cua day’);readln(n); For i:=1 to n

Begin

write(‘Phan tu thu’,i,’la’); readld(a[i]);

End;

For j:=n down to For i:= to j-1

If a[i]>a[i+1] then begin

t:=a[i]; a[i]:=a[i+1]; a[i+1]:=t; end;

writeln(‘Day so da sap xep tang dan la’); For i:=1 to n write(a[i]: 4);

readln;

End.

Sau học sinh viết chương trình giáo viên cần lưu ý cho học sinh điểm

sau:

- Khái niệm lượt: sau lượt (lần) duyệt thứ giá trị lớn xếp vị trí cuối dãy Tương tự sau lượt duyệt thứ 2, giá trị lớn thứ hai xếp vị trí sát cuối…Sau lượt có phần tử xếp vị trí Trong thuật toán phải thực lượt vậy, lượt thực đoạn dãy số? Giá trị j số phần tử cuối đoạn duyệt lượt Như sau lượt duyệt j giảm đơn vị, câu lệnh for j:=n down to với biến đếm j chạy ngược từ n

(57)

begin

t:=a[i];a[i]:=a[i+1];a[j]:=t; end;

Giá trị biến đếm i số phần tử lấy so sánh với phần tử kề sau dãy số

 Tìm hiểu viết chương trình tốn tìm kiếm nhị phân (Nội dung giảm tải) b Hoạt động:

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

- Giáo viên giới thiệu đề yêu cầu học sinh xác định liệu vào, liệu

- Giáo viên nhắc lại tư tưởng bước thuật toán xếp tráo đổi cho học sinh

- Ý tưởng chung toán xếp so sánh cặp phần tử liền kề khơng thoả mãn tính chất dãy khơng giảm hốn đổi vị trí cho

- Thuật tốn:

+ Nhập n a1, a2,…, an

+ Sử dụng hai vòng lặp chạy ngược để thực việc so sánh đổi chỗ cặp phần tử liền kề chưa thoả mãn điều kiện xếp

- Để thời gian cho học sinh chuyển từ thuật tốn sang viết chương trình theo nhóm - Giáo viên nhận xét, đánh giá, sửa chữa, bổ

sung chương trình học sinh viết - Nêu nhận xét, lưu ý thuật toán

và chương trình

- Đối với tốn tìm kiếm nhị phân, giáo viên giới thiệu đề bài, hướng dẫn cho học sinh nắm thuật tốn, cịn phần viết chương trình học sinh nhà viết (xem tập nhà)

- Quan sát đề bài, theo dõi yêu cầu cần giải đề

- Vào: số nguyên dương n dãy a có n số nguyên

- Ra: dãy số xếp không giảm

- Học sinh lắng nghe theo dõi hướng dẫn giáo viên

- Học sinh thảo luận theo nhóm để viết chương trình

- Báo cáo kết viết

- Nhận xét, đánh giá bổ sung thiếu sót nhóm khác

- Quan sát ghi nhớ

(58)

Ngày soạn:18/02/2013 Tiết:28+29

BÀI THỰC HÀNH SỐ 3

I MỤC TIÊU

1 Kiến thức

- Nhận biết khai báo mảng

- Biết cách nhập kiệu cho mảng từ bàn phím

- Biết cách duyệt phần tử mảng truy cập phần tử mảng

2 Kĩ năng

- Nâng cao kĩ sử dụng số 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ố toá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ỏ

3 Thái độ

- Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tich cực, chủ động sáng tạo tìm kiếm kiến thức

II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

- Giáo viên: sách giáo khoa, sách giáo viên, Chuẩn KTKN Tin học THPT

- 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 cách sử dụng lệnh kiểu liệu mảng chiều qua chương trình có sẵn

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

1 Tìm hiểu chương trình câu a, sách giáo khoa, trang 63 chạy thử chương trình

- Chiếu chương trình lên bảng

- Hỏi: Khai báo Uses CRT; có ý nghĩa gì? - Hỏi: Myarray tên kiểu liệu hay tên biến? - Hỏi: Vai trò nmax n có khác nhau? - Hỏi: Những dịng lệnh dùng để tạo biến mảng a?

- Thực chương trình để học sinh thấy kết - Hỏi: Lệnh gán a[i]:=random(300)-random(300) có ý nghĩa gì?

- Hỏi: Lệnh For i:=1 to n Write(A[i]:5); có ý nghĩa gì?

- Hỏi: Lệnh For-Do cuối thực nhiệm vụ gì?

- Hỏi: Lệnh s:=s+a[i]; thực lần?

1 Quan sát, ý trả lời

- Khai báo thư viện chương trình Crt để sử dụng thủ tục Clrscr;

- Tên kiểu liệu

- nmax số phần tử tối đa chứa biến mảng a n số phần tử thực tế a - Lệnh khai báo kiểu khai báo biến - Quan sát chương trình thực kết hình

- Lệnh sinh ngẫu nhíên giá trị cho mảng a từ -299 đến 299

- In hình giá trị phần tử mảng a

(59)

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

thấy kết

2 Sửa chương trình câu a để chương trình giải tốn câu b

- Chiếu lên hình lệnh cần thêm vào chương trình câu a

- Hỏi: Ý nghĩa biến Posi neg? - Hỏi: Chức lệnh?

If a[i]>0 then posi:=posi+1 else if a[i]<0 then neg:=neg+1;

- Yêu cầu học sinh thêm vào vị trí cần thiết để chương trình đếm số

- Yêu cầu học sinh gõ nội dung lưu lại với tên caub.pas Thực chương trình báo cáo kết

hết k

- Quan sát giáo viên thực chương trình kết hình

2 Quan sát ý theo dõi câu hỏi giáo viên:

- Quan sát lệnh suy nghĩ vị trí cần sửa chương trình câu a

- Dùng để lưu số lượng đếm - Đếm số dương đếm số âm

- Chỉ vị trí cần thêm vào chương trình

- Lưu chương trình Thực chương trình thông báo kết

2 Hoạt động 2: Rèn luyện kĩ lập trình

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

1 Lấy ví dụ thực tiễn: Người mù tìm viên sỏi có kích thước lớn dãy viên sỏi để gợi ý cho học sinh thuật toán tìm giá trị lớn

- Yêu cầu: nêu thuật tốn tìm phần tử có giá trị lớn

2 Tìm hiểu chương trình tìm số giá trị lớn

- Chiếu chương trình ví dụ, sách giáo khoa, trang 64

- Hỏi: Vai trị biến j chương trình? - Hỏi: Nếu muốn tìm phần tử nhỏ nhất, cần sửa chỗ nào?

- Hỏi: Nếu muốn tìm phần tử lớn với số lớn ta sửa chỗ nào?

3 Đặt yêu cầu mới: Viết chương trình đưa số phần tử có giá trị lớn

- Hỏi: Cần giữ lại đoạn chương trình tìm giá trị lớn khơng?

- Hỏi: Cần thêm lệnh nữa? - Hỏi: Vị trí thêm lệnh đó?

- u cầu: Viết chương trình hồn thiện

- u cầu học sinh nhập liệu vào giáo viên báo kết

- Đánh giá kết học sinh

1 Theo dõi ví dụ giáo viên

- So sánh từ trái sang phải, giữ lại số phần tử lớn

2 Quan sát chương trình, suy nghĩ trả lời

- Giữ lại số phần tử có giá trị lớn

- Phép so sánh a[i]<a[j]

- Chuyển thứ tự duyệt từ n-1

3 Theo dõi yêu cầu, suy nghĩ câu hỏi định hướng để viết chương trình

- Có

- Lệnh để in số có giá trị giá trị lớn tìm

- Sau tìm giá trị lớn

- Soạn chương trình vào máy Thực chương trình thông báo kết

(60)

IV ĐÁNH GIÁ CUỐI BÀI

1 Những nội dung học

Một số thuật tốn bản:

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

2 Câu hỏi tập nhà

(61)

Ngày soạn:25/02/2013 Tiết:30+31

BÀI THỰC HÀNH SỐ 4

I MỤC TIÊU

1 Kiến thức

- Củng cố lại kiến thức lập trình với kiểu liệu mảng

- Hiểu cách cài đặt thuật toán xếp phần tử dãy (bằng tráo đổi)

Kĩ năng

- Rèn luyện kĩ sử dụng kiểu liệu có cấu trúc, kĩ diễn đạt thuật tốn chương trình sử dụng liệu kiểu mảng

- Rèn luyện kĩ nhận xét, phân tích đề xuất cách giải tốn cho chương trình chạy nhanh

- Có ý thức lựa chọn thuật tốn có khối lượng tính tốn

3 Thái độ

- Tự giác, chủ động thực hành

II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

- Giáo viên: sách giáo khoa, sách giáo viên, Chuẩn KTKN Tin học THPT

- 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 chương trình diễn đạt thuật tốn xếp

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

1 Gợi ý cho học sinh thuật tốn xếp tăng dần

- Lấy ví dụ thực tiễn: Người mù xếp dãy viên bi theo kích thước khơng giảm

- u cầu: Vạch bước để xếp phần tử mảng khơng giảm

2 Tìm hiểu chương trình ví dụ, sách giáo khoa, trang 65

- Chiếu chương trình ví dụ lên bảng

- Hỏi: Vai trị biến i, j chương trình? vịng lặp For đoạn chương trình xếp có ý nghĩa gì?

- Hỏi: Ba lệnh tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg; có ý nghĩa gì?

- Thực chương trình, nhập liệu để học sinh thấy kết chương trình

- Hỏi: Chương trình làm cơng việc gì?

3 Sửa chương trình để giải toán câu b

- Đặt yêu cầu mới: Khai báo thêm biến nguyên

1 Chú ý theo dõi dẫn dắt giáo viên để trả lời câu hỏi

- Lần lượt lấy phần tử từ trái qua phải - Cứ phần tử ta đem so sánh với phần tử đứng bên phải

- Nếu nhỏ đổi chỗ

2 Quan sát chương trình, suy nghĩ câu hỏi trả lời

- Biến i, j dùng làm số

- Mỗi vòng lặp For ứng với phép duyệt

- Dùng để đổi giá trị hai phần tử a[i] với a[i+1]

- Quan sát giáo viên thực chương trình - Chương trình xếp dãy số thao thứ tự không giảm

(62)

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

Dem bổ sung vào chương trình đoạn lệnh cần thiết để biến Dem tính số lần thực tráo đổi thuật tốn In kết tìm hình

- Hỏi: Đoạn chương trình dùng để thực tráo đổi giá trị?

- Yêu cầu hoc sinh viết lệnh để đếm số lần tráo đổi

- Hỏi: Lệnh viết vị trí chương trình?

- u cầu học sinh soạn chương trình vào máy - Yêu cầu học sinh nhập liệu vào giáo viên thông báo kết

- Đánh giá kết học sinh

tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg; - Dem: = Dem+1;

- Ngay sau đoạn lệnh tráo đổi

- Soạn chương trình vào máy, thực chương trình thông báo kết

- Nhập liệu theo yêu cầu giáo viên, thực chương trình thông báo kết sau thực

2 Hoạt động 2: Rèn luyện kĩ nhận xét, phân tích đề xuất cách giải tốn cho chương trình chạy nhanh

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

1 Xác định toán - Chiếu đề lên bảng

- Yêu cầu: Xác định liệu vào, liệu ra? - Gợi ý để học sinh đề xuất thuật tốn thơ Giới thiệu chương trình chưa cải tiến - Chiếu chương trình diễn đạt thuật tốn

- Thực chương trình để học sinh biết thời gian thực chương trình kết chương trình

- Hỏi: Trong chương trình phải thực phép cộng?

- Hỏi: Có cách để cải tiến?

- Lệnh thay lệnh chương trình? Viết vị trí nào?

3 u cầu: Viết chương trình hồn thiện Tiểu kết: Cùng tốn, có nhiều cách giải khác Người lập trình cần chọn cách cho máy thực nhanh

1 Quan sát đề tả lời câu hỏi - Vào: Mảng A gồm n phần tử - Ra: Mảng B gồm n phần tử

- Tại vị trí i ta tính tổng giá trị phần tử từ đến i

2 Quan sát chương trình bảng

- Quan sát giáo viên thực hiện, nhận xét thời gian thực chương trình

- Phải thực n(n+1)/2 phép cộng

- Để tính bước thứ i, ta sử dụng kết tính bước thứ i-1

B[i]:=B[i-1]+A[i]; - Thay đoạn lệnh

For j:=1 to i B[i]:=B[i]+A[j];

3 Soạn chương trình vào máy, thực chương trình thơng báo kết

- Nhận xét thời gian thực chương trình so với chương trình trước cải tiến

IV ĐÁNH GIÁ CUỐI BÀI

1 Những nội dung học

(63)

- Một tốn có nhiều cách viết thành chương trình Cần chọn cách có số phép tính

2 Câu hỏi tập nhà

(64)

Ngày soạn: 03/3/2013 Tiết : 32+33+34

§12 KIỂU DỮ LIỆU XÂU

I MỤC TIÊU

1 Kiến thức

- Biết kiểu 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 ký tự với xâu ký tự

- Biết cách khai báo biến, nhập xuất liệu, tham chiếu đến ký tự xâu - Biết phép toán liên quan xâu

- 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

2 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 tốn xâu để giải toán đơn giản

- 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 CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

- Giáo viên: sách giáo khoa, sách giáo viên, Chuẩn KTKN Tin học THPT

- Học sinh:sách giáo khoa

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

1 Hoạt động 1: Ổn định lớp kiểm tra cũ

2 Hoạt động 2: Tìm hiểu xâu cách sử dụng a Nội dung:

Khái niệm:

- Xâu dãy kí tự bảng mã ASCII, kí tự gọi phần tử xâu Số lượng kí tự xâu gọi độ dài xâu

- Các ngơn ngữ lập trình có qui tắc, cách thức cho phép xác định: tên kiểu xâu, cách khai báo biến, số lượng kí tự xâu, phép tóan kiểu xâu cáh tham chiếu đến phần tử xâu

- Có thể xem xâu mảng chiều mà phần tử kí tự (kiểu phần tử mảng kiểu kí tự-character)

- Kiểu xâu thường sử dụng lập trình để giải toán liên quan đến từ, câu, nguyên âm, phụ âm hệ soạn thảo văn

 Cách khai báo:

- Cú pháp: VAR <tên biến>: STRING[MAX];

Trong max số nguyên dương để số kí tự tối đa xâu Nếu khơng ghi max thi ngầm định số kí tự tối đa xâu 255

- Ví dụ: var cau: string[60]; →Khai báo xâu cau có tối đa 60 kí tự

Dongchu:string; →Khai báo xâu dongchu có tối đa 255 kí tự  Cách tham chiếu đến phần tử xâu:

- Để tham chiếu đến phần tử xâu ta thực theo cú pháp sau: tên biến xâu[chỉ số]; Trong số số nguyên dương vị trí kí tự xâu

- Cách tham chiếu đến phần tử xâu giống cách tham chiếu đến phần tử mảng

(65)

b Họat động:

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

Tìm hiểu ý nghĩa xâu ký tự.

- Chiếu đề tố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

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]

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

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

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

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

- Số ký tự tối đa 255 - Ví dụ: ‘HA NOI’

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

(66)

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

- 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? - Thực chương trình để học sinh tự kiểm nghiệm suy luận

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

- Lệnh {2} sai Không thể gán xâu cho ký tự

3 Hoạt động 3: Tìm hiểu phép tốn liên quan đến xâu a Nội dung:

- Phép ghép xâu: + Ví dụ ’Ha’+’Noi’→’HaNoi’

- Các phép so sánh: >, >=,<,<=, =,<> có thứ tự ưu tiên thực thấp phép ghép xâu thực việc so sánh hai xâu theo qui tắc sau:

+

Xâu A lớn xâu b kí tự khác chúng kể từ bên trái sang xâu A có mã ASCII lớn

+

Nếu A B hai xâu có độ dài khác A đoạn đầu B A nhỏ B

+

Hai xâu đựoc coi chúng giống hoàn toàn b Hoạt động:

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

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

Tìm hiểu chức số phép toán

trong 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 ?

Chú ý theo dõi, suy nghĩ trả lời - Phép toán số học

- Phép toán so sánh - Phép tốn logic

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’

(67)

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

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?

- 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

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

- Quan sát kết chương trình để kiểm chứng suy luận

- Có phép <, <=, >=, <>, = - Kết quả: True

- Kết quả: False

4 Hoạt động 4: Tìm hiểu số hàm thủ tục chuẩn liên quan xâu ngôn ngữ lập trình Pascal

a Nội dung:

- Hàm length(st): cho giá trị độ dài xâu st

- Hàm Upcase(ch): cho chữ hoa tương ứng với ch

- Hàm Pos(s1,s2): cho vị trí xuất s1 s2

- Hàm Copy(st,vt,n): tạo xâu gồm n kí tự liên tiếp vt xâu st

- Thủ tục Delete(st,vt,n): thực việc xóa n kí tự xâu s kể từ vt

- Thủ tục Insert(s1,s2,vt): chèn xâu s1 vào xâu s2 kể từ vt b Họat động:

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

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

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

(68)

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

một xâu, in hình số ký tự ‘a’ có xâu  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 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

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?

Giới thiệu cấu trúc chung hàm

copy(st,vt,n).

- Hàm cho số lượng ký tự xâu st Quan sát cấu trúc chung hàm Upcase

- Quan sát chương trình để dự tính kết

- 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

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

(69)

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

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  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 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 xố dấu cách thừa đầu xâu

Giới thiệu cấu trúc chung thủ tục

Insert(st1,st2,vt);

- Chiếu chương trình ví dụ:

- 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

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

st:= ‘’; xâu rỗng st:= ‘abc’;

st:= ‘abc’; Var st:string; begin

readln(st);

while st[1]= ‘ ’ delete(st,1,1); writeln(st);

readln; end

Quan sát cấu trúc chung thủ tục Insert

(70)

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

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

quả

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

5 Hoạt động 5: Rèn luyện kĩ vận dụng hàm thủ tục a Nội dung:

Ví dụ 1: Viết chương trình nhập xâu từ bàn phím đưa hình xâu đó

theo thứ tự ngược lại.

Hướng dẫn học sinh xây dựng thuật tốn sau viết chương trình Program vd1;

Var n,i:byte;s,s1: string; Begin

Write(‘nhap vao xau s:’);readln(s); n:=length(s);s1:=’’;

For i:=n downto s1:=s1+s[i];

Writeln(‘xau viet theo thu tu nguoc lai la:’,s1); Readln;

End

Ví dụ 2: Viết chương trình nhập xâu vào từ bàn phím đưa hình xâu

thu từ sau loại bỏ dấu cách (nếu có).

Giáo viên hướng dẫn học sinh xây dựng thuật toán sau viết chương trình Program vd1;

Var n,i:byte;s,s1: string; Begin

Write(‘nhap vao xau s:’);readln(s); n:=length(s);s1:=’’;

For i:=1 to n

If (s[i]=’ ’) then s1:=s1+s[i];

Writeln(‘xau sau xoa bo cac ki tu la:’,s1); Readln;

End

b Hoạt động:

(71)

nhập xâu từ bàn phím đưa màn hình xâu theo thứ tự ngược lại.

- Xác định liệu vào, liệu

- Giáo viên đặt câu hỏi gợi ý để học sinh xây dựng thuật toán

Giáo viên nhận xét, bổ sung thuật tốn sau u cầu học sinh viết chương trình dựa thuật tốn xây dựng

→ BTVN: Viết chương trình nhập vào xâu cho biết xâu có xâu đối xứng hay không? (xâu đối xứng xâu ban đầu xâu viết ngược lại giống nhau)

Đưa toán thứ hai: Viết chương trình

nhập xâu từ bàn phím đưa màn hình xâu thu đựơc từ sau lọai bỏ các dấu cách.

- Giáo viên yêu cầu học sinh xác định liệu vào, liệu

- Giáo viên đặt câu hỏi gợi ý để học sinh xây dựng thuật toán

- Giáo viên nhận xét, bổ sung thuật toán sau u cầu học sinh viết chương trình dựa thuật toán xây dựng

Input: xâu s

Output: xâu s1 xâu viết ngược s Thuật toán:

- Nhập xâu s

- tạo xâu s1 cách lấy kí tự s theo thứ tự từ phải sang

→sử dụng vòng lặp for lùi

Input: xâu s

Output: xâu s đối xứng xâu s không đối xứng

Thuật toán: - Nhập xâu s

- Tạo xâu s1 xâu s viết theo thứ tự đảo ngược

- so sánh xâu s1 s Nếu s1=s thơng báo s xâu đối xứng, ngồi thơng báo xâu s không xâu đối xứng

IV ĐÁNH GIÁ CUỐI BÀI

1 Những hàm thủ tục liên quan đến xâu

- Thủ tục Delete(st,vt,n); - Thủ tục Insert(st1,st2,vt); - Hàm Copy(st,vt,n)

- Hàm Length(st) - Hàm Pos(st1,st2) - Hàm UpCase(ch)

2 Câu hỏi tập nhà

(72)

Ngày soạn:11/3/2013 Tiết:35+36

BÀI THỰC HÀNH SỐ 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 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

- 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ủ tuc chuẩn

3 Thái độ

- Tích cực, chủ động thực hành

II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

- Giáo viên: sách giáo khoa, sách giáo viên, Chuẩn KTKN Tin học THPT

- 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 chương trình, đề xuất phương án cải tiến

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

Tìm hiểu đề bài

- Giới thiệu nội dung đề lên bảng

- Diễn giải: Một xâu 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 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 sánh cặp ký tự xâu để biết 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 hồn chỉnh

Quan sát, đọc kỹ đề

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

(73)

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

- 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

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

2 Hoạt động 2: Rèn luyện kĩ lập trình

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

Giới thiệu đề bài.

- Chiếu nội dung đề lên bảng Nêu mục đích tốn

- Chia lớp làm hai 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 tích

- Theo dõi câu hỏi phân tích nhóm trả lời câu hỏi phân tích 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 hiện trên.

- Yêu cầu số học sinh lập trình xong sớm tìm số 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

Quan sát đề xác định công việc cần thực

Nhóm 1:

- Hỏi: Dữ liệu vào, liệu tốn? - 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 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: Duyệt từ trái sang phải, thêm đơn vị cho ký tự đọc

- Cấu trúc 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

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

IV ĐÁNH GIÁ CUỐI BÀI

1 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 suất xuất ký tự có xâu

(74)

Ngày soạn: 06/3/2013 Tiết:37+38

BÀI TẬP

I.

Mục tiêu:

- Sửa tập kiểu mảng - Sửa tập kiểu liệu xâu

II.

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

- Giáo viên: sách giáo viên, sách tập, sách giáo khoa

- Học sinh: sách giáo khoa, sách tập

III.

Phương pháp:

- Đàm thoại

- Nêu vấn đề

IV.

Nội dung:

1 Hoạt động 1: Ổn định lớp kiểm tra cũ

2 Hoạt động 2: Đưa tập học sinh tự giải vấn đề qua câu hỏi vấn đáp, )Bài tập 1: Viết chương trình nhập vào xâu kí tự Sau chuẩn hố xâu

hiện xâu chuẩn hoá hình.

Giáo viên giải thích cho học sinh hiểu chuẩn hố xâu nào?

Chuẩn hóa xâu tức xố bỏ kí tự trống thừa: đầu xâu, cuối xâu từ Giáo viên đặt câu hỏi để gợi ý cho học sinh tìm thuật tốn

- Nhập xâu s

- Xố kí tự trống đầu xâu: Trong kí tự khoảng trống xố → sử dụng hàm Delete lặp không xác định bắt đầu đầu xâu

- Xoá kí tự trống cuối xâu: Trong kí tự cuối khoảng trắng xố →sử dụng hàm Delete, lặp không xác định bắt đầu cuối xâu

- Xố kí tự trống từ Duyệt tất phần tử xâu, hai kí tự có q kí tự trống xố kí tự trống.→ Sử dụng lặp xác định

- Hiện xâu s hình

Giáo viên yêu cầu học sinh khai báo biến cần sử dụng chương trình

- biến xâu s: kiểu string, số kí tự không giới hạn nên không cần xác định số kí tự tối đa

- biến i biến đếm vòng lặp: kiểu byte

Học sinh viết chương trình dựa thuật tốn xây dựng trên: Program bt1;

Var s: string; i:byte; Begin

writeln(‘ Nhap vao xau ki tu:’);readln(s); while s[1]= ‘ ‘ delete(s,1,1);

while s[length(s)]=’ ’ delete(s, length(s),1); For i:=length(s) downto

If (s[i]=’ ’) and (s[i+1]=’ ’ ) then delete(s,i,1);

s[1]:=upcase(s[1]);writeln(‘Xau s da chuan hoa la:’,s); readln;

End

)Bài tập 2: Dãy F dãy Fibonaxi F0 1;F1 1;FNFN1FN2(N 2)

(75)

Ngày soạn: 13/3/2013 Tiết: 39

KIỂM TRA MỘT TIẾT

I Mục tiêu đánh giá:

- Kiểm tra, đánh giá khả tiếp thu kiến thức, kĩ học sinh về: Các thành phần sở ngơn ngữ Pascal, phép tốn, biểu thức, kiểu liệu chuẩn, câu lệnh gán, tổ chức vào/ra đơn giản, tổ chức rẽ nhánh lặp

- Đánh giá khả tổ chức chương trình Pascal với cấu trúc

II.Ma trận đề: Cấp độ Chủ

đề

Nhận biêt Thông hiểu Vận dụng Cộng

Bài 11: Kiểu mảng Câu Câu

Sổ câu: 1

Số điểm:

Tỉ lệ: điểm30% điểm30% điểm60%

Bài 12: Kiểu xâu Câu

Sổ câu: 1

Số điểm:

Tỉ lệ: điểm40% điểm40%

Tổng số câu: Tổng sổ điểm: Tỉ lệ:

1 điểm 30%

2 điểm 70%

III. Đề kiểm tra:

Câu (3 điểm): Cho dãy A= (-1,2,10,5,-22,6,28,-9) Cho biết kết thực đoạn chương trình sau: Var s,i:integer;

Begin S:=0;

For i:=1 to

If a[i] mod =1 then s:=s+sqr(a[i]); Writeln(‘Tong la S=’,S);

End;

Câu (3 điểm): Viết chương trình nhập vào dãy N số nguyên A A1, , ,2 AN có giá trị tuyệt đối

không vượt 100 Cho biết số lượng số dương, số âm dãy tính tổng chúng

Câu (4 điểm): Viết chương trình nhập vào xâu kí tự Hãy xóa bỏ kí tự trắng thừa xâu in hoa kí tự đầu từ

(76)

i A[i] A[i] mod 2=1 S 0

1 -1 T 1

2 2 F 1

3 10 F 1

4 5 T 26

5 -22 T 1

6 -11 F 147

7 28 T 147

8 -8 F 147

Kết sau thực đoạn chương trình trên:

Câu 2:

Viết khai báo biến cần dùng: 0.25 điểm Nhập dãy số : 0.5 điểm

Tính số lượng số âm: 0.5 điểm Tính số lượng số dương: 0.5 điểm

Khởi tạo biến S1,S2 cho tổng số âm, tổng số dương: 0.25 điểm Tính tổng số âm: 0.5 điểm

Tính tổng số dương: 0.5 điểm

Câu 3:

Viết khai báo biến cấu trúc chương trình: 0.25 điểm Nhập xâu s : 0.5 điểm

Xóa kí tự trắng thừa đầu xâu:0.75 điểm Xóa kí tự trắng thừa cuối xâu: 0.75 điểm Xóa kí tự trắng thừa xâu: 0.75 điểm In hoa đầu từ: điểm

(77)

Ngày soạn: 17/3/2013 Tiết:40+41

§14 KIỂU DỮ LIỆU TỆP

§15 THAO TÁC VỚI TỆP

I MỤC TIÊU

1 Kiến thức:

- Biết đặc điểm kiểu liệu tệp

- Biết hai cách phân loại tệp: theo cách tổ chức liệu theo cách truy cập - Hiểu chất tệp văn

- Biết bước làm việc với tệp: gắn tên tệp cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp - Biết khai báo biến tệp thao tác với tệp văn

- Biết sử dụng số hàm thủ tục chuẩn với tệp

2 Kĩ năng:

- Khai báo biến kiểu tệp

- Thực thao tác xử lý tệp: Gán tên tệp, mở/đóng tệp, đọc/ghi tệp - Sử dụng thủ tục liên quan để đọc/ghi liệu tệp

3 Thái độ:

- Thấy cần thiết tiện lợi kiểu liệu tệp - Có ý thức lưu trữ liệu cách khoa học

II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

- Giáo viên: sách giáo khoa, sách giáo viên, Chuẩn KTKN Tin học THPT

- Học sinh:sách giáo khoa

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

1 Hoạt động 1: Ổn định lớp kiểm tra cũ

2 Hoạt động 2: Tìm hiểu đặc điểm kiểu liệu tệp Phân loại kiểu tệp a) Nội dung:

Đặc điểm kiểu tệp:

- Dữ liệu kiểu tệp lưu trữ lâu dài thiết bị nhớ ngồivà khơng bị tắt nguồn điện

- Lượng liệu tệp lớn phụ thuộc vào dung lượng đĩa  Phân loại tệp:

Xét theo cách tổ chức liệu, tệp chia thành hai loại sau:

- Tệp văn tệp mà liệu ghi dạng kí tự theo mã ASCII Trong tệp văn bản, dãy kí tự kết thúc kí tự xuống dịng hay kí tự kết thúc tệp tạo thành dòng

- Tệp có cấu trúc tệp mà thành phần tổ chức theo cấu trúc định Tệp nhị phân làmột trường hợp riêng tệp có cấu trúc

Xét theo cách thức truy cập,có thể phân tệp thành hai loại sau:

- Tệp truy cập cho phép truy cập đến liệu tệp cách đầu tệp qua tất liệu trước

- Tệp truy cập trực tiếp cho phép tham chiếu đến liệu cần truy cập cách xác định trực tiếp vị trí (thường số hiệu) liệu

Chú ý:

- Khác với kiểu mảng, số lượng phần tử tệp không xác định trước

(78)

b) Họat động:

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

- Hỏi: Em cho biết liệu kiểu liệu từ trước đến ta sử dụng lưu trữ loại nhớ thực chương trình?

- Hỏi: Vì em biết điều đó?

- Diễn giải: Để lưu giữ liệu, ta phải lưu nhớ ngồi thơng qua kiểu liệu tệp Mọi ngơn ngữ lập trình có thao tác: khai báo biến tệp, mở tệp, đọc/ghi liệu, đóng tệp

- Yêu cầu học sinh nghiên cứu sách giáo khoa cho biết đặc điểm kiểu tệp? Có loại kiểu tệp?

- Yêu cầu học sinh trình bày khái niệm tệp có cấu trúc tệp văn

- Bộ nhớ RAM

- Mất liệu điện

- Không thông tin tắt máy - Dung lượng liệu lưu trữ lớn - Có hai loại kiểu tệp: tệp có cấu trúc tệp văn

+ Tệp có cấu trúc loại tệp mà thành phần tổ chức theo cấu trúc định

+ Tệp văn bản: tệp mà liệu ghi dạng kí tự theo mã ASCII

3 Hoạt động 3: Tìm hiểu thao tác xử lý tệp văn ngơn ngữ lập trình Pascal

a) Nội dung:

Khai báo: var <tên biến tệp>:text;Các thao tác xử lí tệp:

Gắn tên tệp cho biến tệp:

- Trong lập trình, ta khơng thao tác trực tiếp với tệp liệu mà thông qua biến tệp

- Gắn tên tệp với biến tệp thực chất tham chiếu tệp đĩa (do tên tệp đường dẫn tương ứng xác định) biến tệp chương trình, làm cho biến tệp thành đại diện cho tệp

- Cú pháp: Assign(<biến tệp>,<tên tệp>);

Trong đó, độ dài lớn tên tệp bao gồm 79 kí tự Ví dụ:

Assign(f,’C:/dulieu.dat’);→gán tệp dulieu.dat đĩa C cho biến tệp f Khi làm việc với biến tệp f thực chất làm việc với tệp dulieu.dat

Mở tệp:

- Mở tệp để ghi liệu vào: Rewrite(<biến tệp>);

Trước mở tệp để ghi liệu vào ta phải sử dụng lệnh gắn tên tệp cho biến + Ví dụ:

Assign(f,’C:/dulieu.dat’); rewrite(f);

+ Chú ý: Khi thực lệnh rewrite, đĩa chưa có tệp dulieu.dat tệp tạo với nội dung rỗng, tệp có nội dung cũ bị

- Mở tệp để ghi liệu vào: Reset(<biến tệp>);

Trước mở tệp để ghi liệu vào ta phải sử dụng lệnh gắn tên tệp cho biến + Ví dụ:

(79)

+ Chú ý: Khi thực lệnh reset, đĩa chưa có tệp khơng thực lệnh reset chương trình bị lỗi; tệp mở đóng tệp sau mở tệp lại.Vị trí trỏ sau lời gọi reset đầu tệp

Đọc/ghi tệp:

- Đọc tệp văn bản: + Cú pháp:

Read(<biến tệp, <ds biến>); Readln(<biến tệp>,<dsbiến>);

Trong đó, danh sách biến nhiều biến đơn

+ Chú ý: Các liệu cần đọc tệp gán vào danh sách biến phải có kiểu tương ứng với kiểu biến danh sách biến Nếu sai kiểu chương trình báo lỗi Lỗi thường gặp biến có kiểu số mà liệu đọc lại kiểu xâu

- Ghi vào tệp văn bản: + Cú pháp:

Write(<biến tệp, <ds kết quả>); writeln(<biến tệp>,<ds kết quả>);

Trong đó, danh sách kết gồm nhiều phần tử Phần tử biến đơn, biểu thức xâu

+ Chú ý: Khi hai kết liền kiểu số cần xen vào hai kết số khoảng trống để phân cách (ví dụ: write(f,x, ‘ ’,y) ) Trước gọi thủ tục này, biến tệp tương ứng phải mở

+ Một số hàm chuẩn thường sử dụng:

eof(<biến tệp); cho kết True nếu trỏ cuối tệp, ngược lại cho kết false. Eoln(<biến tệp>); cho kết True nếu trỏ cuối dòng, ngược lại cho kết

false.

Đóng tệp:

+ Cú pháp: close(<biến tệp>);

+ Chú ý: Sau đóng tệp ta dùng lệnh reset để mở lại Khi mở lại tệp ta dùng biến cũ khơng cần gắn lại tên tệp

b) Hoạt động:

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

Giới thiệu cấu trúc chung khai báo biến

tệp.

Var <tên_biến_tệp>: Text;

- u cầu học sinh tìm ví dụ cụ thể:

Giới thiệu thao tác gán tên tệp, tạo tệp

mới để ghi, mở tệp để đọc, đóng tệp.

Assign(<tên_biến_tệp>,<tên_tệp>); Rewrite(<tên_biến_tệp>);

Reset(<tên_biến_tệp>); Close(<tên_biến_tệp>);

- Yêu cầu: lấy ví dụ minh họa mở tệp để ghi thông tin mở tệp để đọc thông tin

Quan sát cấu trúc suy nghĩ trả lời - Var f,g:text;

Quan sát suy nghĩ để trả lời câu hỏi

Assign(f5, ‘B1.INP’); Rewrite(f5);

Close(f5);

Assign(f5, ‘B1.OUT’); Reset(f5);

(80)

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

 Chiếu đồ làm việc với tệp lên bảng, hình 16, trang 86, sách giáo khoa Yêu cầu học sinh giải thích ý nghĩa sơ đồ

 Giới thiệu cấu trúc chung thủ tục đọc/ghi liệu tệp văn

- Yêu cầu học sinh lấy ví dụ minh họa

3 Quan sát sơ đồ suy nghĩ để trả lời - Ghi tệp: Gán tên tệp, tạo tệp mới, ghi thơng tin, đóng tệp

- Đọc tệp: Gán tên tệp, mở tệp, đọc thơng tin, đóng tệp

4 Quan sát cấu trúc chung

- Readln(f,x1,x2); Đọc liệu từ biến tệp f, đặt giá trị vào hai biến x1 x2

- Writeln(g, ‘Tong la ’, x1+x2); Ghi vào biến tệp g hai tham số; dòng chữ ‘Tong la ’ giá trị tổng x1+x2

(81)

Ngày soạn:24/3/2013 Tiết:42

§16 VÍ DỤ LÀM VIỆC VỚI TỆP

I MỤC TIÊU

1 Kiến thức:

- Củng cố lại kiến thức học tệp chương thơng qua ví dụ

2 Kĩ năng:

- Sử dụng hàm thủ tục liên quan để giải tập

II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

- Giáo viên: sách giáo khoa, sách giáo viên, Chuẩn KTKN Tin học THPT

- Học sinh:sách giáo khoa

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

1 Hoạt động 1: Ôn tập kiến thức lý thuyết kết hợp kiểm tra cũ.

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

Gợi ý để học sinh nhớ lại kiến thức đã

học kiểu tệp

- Hỏi: Cách khai báo biến kiểu tệp?

- Hỏi: Có thủ tục làm việc với tệp?

- Hỏi: Hàm thủ tục liên quan xử lý tệp?

Giới thiệu bảng tổng hợp hàm thủ tục

lên bảng, xem tổng kết kiến thức liên quan.

Theo dõi dẫn dắt giáo viên trả lời - Var <tên_biến_tệp>: Text;

- Assign(<tên_biến_tệp>,<tên_tệp>); - Rewrite(<tên_biến_tệp>);

- Reset(<tên_biến_tệp>); - Close(<tên_biến_tệp>);

- Read/Readln(<tên_biến_tệp>,

<Danh_sách_tên_biế n>);

- Write/Writeln(<tên_biến_tệp>,

<Danh_sách_kết_qu ả>);

- Eof(<tên_biến_tệp>)

- Seek(<tên_biến_tệp>,<biến_nguyên>); Quan sát bảng tổng hợp ghi nhớ

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

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

Tìm hiểu ví dụ 1.

- Giới thiệu nội dung đề

- Chiếu chương trình ví dụ lên bảng gợi ý để học sinh tìm hiểu chương trình

- Hỏi: Hàm Eof(f) có chức gì?

- Có thể sử dụng cấu trúc For thay cho While khơng?

- Chương trình thực cơng việc gì?

- Thực chương trình để học sinh thấy kết

Theo dõi quan sát đề chương trình gợi ý

- Hàm cho giá trị True trỏ tệp định vị vị trí kết thúc tệp

- Khơng Vì số lượng phần tử tệp

(82)

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

Tìm hiểu chương trình ví dụ 2. - Giới thiệu đề

- Chiếu tranh mơ kết nối điện trở, hình 17, trang 88, sách giáo khoa

- Hỏi: Công thức tính điện trở sơ đồ II, III, IV

- Chiếu chương trình ví dụ lên bảng

- Hỏi: Mảng a dùng để lưu giữ giá trị nào?

- Cho file liệu vào gồm dịng u cầu học sinh tính kết

- Thực chương trình đọc file liệu vào để học sinh đối chiếu kết

2 Quan sát nội dung đề bài, quan sát tranh mô kết nối điện trở yêu cầu

- Dùng để lưu giữ điện trở tương đương điện trở theo cách ghép nối sơ đồ

- Tính kết điện trở tương đương - Quan sát kết chương trình so sánh với kết tính đương

- Nhận xét tính xác thời gian thực chương trình

3 Hoạt động 3: Rèn luyện kĩ lập trình.

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

- Chiếu đề lên bảng Yêu cầu học sinh tự viết chương trình, chạy thử báo cáo kết - Quan sát, theo dõi việc lập trình học sinh, gợi ý cho số em yếu - Yêu cầu học sinh thực chương trình với test giáo viên chuẩn bị Thơng báo kết mà chương trình tìm Xác nhận kết

Theo dõi đề bài, định hướng liệu vào, thuật toán

Soạn chương trình vào máy, thực chương trình thông báo kết cho giáo viên

Nhập liệu theo yêu cầu

IV ĐÁNH GIÁ CUỐI BÀI

1 Những nội dung học

- Các thao tác xử lý tệp: + Gán tên tệp

+ Tạo tệp mở tệp + Đọc/ghi thông tin tệp + Đóng tệp

- Hàm thủ tục liên quan: Hàm EOF(tên_biến_tệp)

2 Câu hỏi tập nhà

(83)

Ngày soạn:24/3/2013 Tiết:43

BÀI TẬP

I.

Mục tiêu:

- Sửa tập kiểu tệp

II.

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

- Giáo viên: sách giáo viên, sách tập, sách giáo khoa

- Học sinh: sách giáo khoa, sách tập

III.

Phương pháp:

- Đàm thoại

- Nêu vấn đề

IV.

Nội dung:

1 Hoạt động 1: Ổn định lớp

2 Hoạt động 2: Đưa tập học sinh tự giải vấn đề qua câu hỏi trắc nghiệm.

Câu 1:Tệp văn tệp:

A Có số dịng giới hạn B Có số dịng, số kí tự khơng giới hạn

C Có số kí tự dịng giới hạn D Khơng thể có dịng để trống

Câu 2: Thủ tục reset dùng để:

A Mở tệp văn để ghi B Đọc thông tin từ tệp văn C Xóa thơng tin tệp văn D Mở tệp để đọc liệu. Câu 3: Thủ tục rewrite dùng để:

A Mở tệp văn để ghi B Đọc thông tin từ tệp văn C Xóa thơng tin tệp văn D Mở tệp để đọc liệu.

Câu 4: Với f biến tệp văn bản, cho biết đoạn chương trình sau cho phép thực cơng việc gì?

Assign(f,’in.txt’); rewrite(f);

for i:=’A’ to ‘Z’ write(f,i);

A. Đưa hình chữ in hoa mã ASCII

B. Đưa hình số từ đến 26

C. Ghi vào tệp in.txt số từ đến 26

D Ghi vào tệp in.txt chữ in hoa từ A đến Z. Câu 5: Kiểu liệu tệp sử dụng với mục đích gì?

A Thay tồn kiểu liệu cịn lại B Lưu trữ liệu lâu dài với lượng thông tin lớn

C Lưu trữ tồn thơng tin dạng văn D Tất

3 Họat động 3: Rèn luỵên kĩ viết chương trình thông qua việc giải số tập.

- Đề bài: lập chương trình ghi vào đĩa thơ Sau đọc từ đĩa thơ hình

- Giáo viên đặt câu hỏi gợi ý để học sinh diễn đạt thuật tốn viết chương trình

- Chương trình tốn: Program bt;

(84)

Begin

Write(‘cho biet so cau tho can nhap:’);readln(n); Assign(f, ‘tho.xd’);rewrite(f);

For i:=1 to n Begin

Write(‘Cau tho thu ‘,i); Readln(cau);

Writeln(f,cau); end;

close(f);writeln(‘Bai tho moi nhap la:’); Assign(f, ‘tho.xd’);reset(f);

While not eof(f) Begin

Readln(f,cau); Writeln(cau); End;

Close(f); Readln; End

4 Bài tập nhà:

- Lập chương trình ghi vào đĩa số nguyên dương từ đến 100 Sau đọc từ đĩa cho hình số phương

(85)

Ngày soạn:31/3/2013 Tiết:44

§ 17 CHƯƠNGTRÌNH CON VÀ PHÂN LOẠI

I MỤC TIÊU

1 Kiến thức:

- Biết khái niệm chương trình

- Biết ý nghĩa chương trình con, cần thiết phải viết chương trình thành chương trình

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

- Phân biệt hai loại chương trình hàm thủ tục

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 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 chúng - Biết cách viết lời gọi chương trình thân chương trình

3 Thái độ:

- Rèn luyện phẩm chất người lập trình tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu cơng việc chung

II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

- Giáo viên: sách giáo khoa, sách giáo viên, Chuẩn KTKN Tin học THPT

- Học sinh:sách giáo khoa

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

1 Hoạt động 1:Ổn định lớp kiểm tra cũ

2 Họat động 2: Tìm hiểu chương trình ích lợi việc sử dụng chương trình lập trình

a) Nội dung:

- Khái niệm: Chương trình dãy lệnh mô tả số thao tác định thực (được gọi) từ nhiều vị trí chương trình

- Một số lợi ích việc sử dụng chương trình

+ Để tránh việc phải viết lặp lại dãy lệnh đó, ngơn ngữ lập trình cho phép tổ chức dãy lệnh thành chương trình Sau đó, chương trình cần đến dãy lệnh cần gọi thực chương trình

+ Hỗ trợ việc thực chương trình lớn: Khi phải viết chương trình lớn có hàng nghìn, hàng vạn lệnh, cần huy động nhiều người tham gia, giao cho người(hoặc nhóm) viết chương trình con, sau lắp ghép chúng lại thành chương trình

+ Phuc vụ cho q trình trừu tượng hóa: Người lập trình sử dụng kết thực chương trình mà khơng cần quan tâm đến việc chương trình cài đặt Trừu tượng hóa tư tưởng chủ đạo để xây dựng chương trình nói chung chương trình có cấu trúc nói riêng

b) Hoạt động:

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

1 Tìm hiểu ý nghĩa khái niệm chương trình

- Chiếu hai chương trình giáo viên chuẩn bị sẵn Một chương trình có sử dụng chương trình con, chương trình khơng sử dụng chương trình

(86)

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

Chẳng hạn: Chương trình tính tổng lũy thừa: TLT=an + bm + cp + dq.

- Gọi học sinh nhận xét tính ngắn gọn, rõ ràng, tính dễ đọc dễ hiểu hai chương trình

- Hỏi: Khi nên viết chương trình con?

- Yêu cầu học sinh đọc sách giáo khoa, cho biết khái niệm chương trình

- Chia lớp làm ba nhóm Phát bìa cho nhóm u cầu học sinh điền lợi ích việc sử dụng chương trình

-Thu phiếu học tập Chiếu kết lên bảng

- Bổ sung giải thích thêm số lợi ích mà học sinh điền chưa đầy đủ (vì em cịn mơ hồ chương trình con)

- Nhận xét: Chương trình có sử dụng chương trình viết ngắn gọn, dễ hiểu chương trình viết khơng sử dụng chương trình

- Đối với toán lớn, cần nhiều người viết Chương trình dài, cần chia làm nhiều đoạn Có nhiều đoạn lệnh lặp lại, nên viết chương trình

- Tham khảo sách giáo khoa để trả lời - Nghiên cứu sách giáo khoa, thảo luận để điền phiếu học tập

+ Tránh việc phải viết lặp lặp lại dãy lệnh chương trình

+ Hỗ trợ việc thực viết chương trình lớn

+ Phục vụ q trình trừu tượng hóa + Mở rộng khả ngôn ngữ

+ Thuận tiện cho việc phát triển, nâng cấp chương trình

- Báo cáo kết

- Theo dõi bổ sung giải thích giáo viên

3 Hoạt động 3: Tìm hiểu phân loại chương trình cấu trúc chương trình

a) Nội dung:

Phân loại chương trình con: gồm hai loại

- Hàm (Function) chương trình thực số thao tác trả giá trị thơng qua tên nó; sử dụng tốn hạng dùng biểu thức

Ví dụ: abs(x), length(st), sin(x),…

- Thủ tục (Procedure) chương trình thực thao tác định không trả giá trị qua tên chúng; thủ tục sử dụng chương trình lệnh biết

Ví dụ: write, readln, delete, insert,…  Cấu trúc chương trình con:

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

(87)

+ Các biến khai báo cho liệu vào/ra gọi tham số hình thức

+ Các biến khai báo để dùng riêng cho chương trình gọi biến cục + Các biến chương trình gọi biến tồn cục

Thực chương trình con:

- Để thực (gọi) chương trình con,ta cần phải có lệnh tương tự lệnh gọi hàm hay thủ tục chuẩn, bao gồm tên chương trình với tham số (nếu có) biến chứa liệu vào tương ứng với tham số hính thức đặt cặp dấu ngoặc () Các biến gọi tham số thực

- Khi thực chương trình con, tham số hình thức để nhập liệu vào nhận giá trị tham số thực tương ứng, tham số hình thức để lưu trữ liệu trả giá trị cho tham số thực tương ứng

- Sau chương trình kết thúc, lệnh lệnh gọi chương trình thực

b) Hoạt động:

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

Phân loại chương trình con.

- Hỏi: Có loại chương trình con? Gọi tên chúng?

- Hỏi: Đã làm quen với hàm thủ tục chưa? Lấy số ví dụ hàm thủ tục học - Ý nghĩa hàm thủ tục chuẩn?

- Yêu cầu học sinh tham khảo sách giáo khoa để phân biệt khái niệm hàm thủ tục

Cấu trúc chương trình con.

- Giới thiệu cấu trúc chung chương trình <Phần đầu>

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

- Yêu cầu học sinh so sánh với cấu trúc chương trình

- u cầu học sinh giải thích phần khai báo phần thân chương trình

- Diễn giải: Phần đầu chương trình gồm có tên chương trình con, tham số chương trình Các tham số gọi tham số hình thức

Thực chương trình con.

- Hỏi: Để sử dụng hàm thủ tục chuẩn em thường viết đâu viết nào?

Tham khảo sách giáo khoa trả lời - Hai loại chương trình con: hàm thủ tục

- Đã sử dụng hàm thủ tục chuẩn

- Ví dụ: Hàm abs(), length(st) Thủ tục Delete(st,p,n);

- Hàm thực số thao tác trả giá trị kiểu đơn giản thông qua tên hàm

- Thủ tục thực thực tháo tác định không trả giá trị qua tên

Quan sát cấu trúc chương trình

- Giống cấu trúc chương trình Khác chỗ phần đầu chương trình bắt buộc phải có

- Phân khai báo thường khai báo biến,

- Phần thân dãy lệnh thực nhiệm vụ định chương trình

(88)

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

- Diễn giải: Để gọi chương trình con, ta cần phải có lệnh gọi tương tự lệnh gọi hàm hay thủ tục chuẩn, bao gồm tên chương trình với tham số (nếu có) biến chứa liệu vào/ra tương ứng với tham số hình thức đặt cặp ngoặc Các biến gọi tham số thực

- Viết chương trình Viết thủ tục kèm tham số kết thúc dấu chẩm phẩy (;) Viết hàm lệnh thủ tục Hàm không viết lệnh

IV ĐÁNH GIÁ CUỐI BÀI

1 Những nội dung học

- Chương trình đóng vai trị quan trọng lập trình, đặc biệt lập trình cấu trúc

- Các lợi ích chương trình con: Dùng chương trình thuận lợi cho việc tổ chức, viết, kiểm tra sử dụng lại chương trình

- Có hai loại chương trình

- Cấu trúc chương trình vị trí chương trình chính: Chương trình viết phần khai báo Chương trình có phần đầu, phần khai báo phần thân

- Chương trình có tham số hình thức khai báo thay tham số thực gọi chương trình

- Chương trình gọi tên

2 Câu hỏi tập nhà

(89)

Ngày soạn:03/4/2013 Tiết:45+46

§ 18 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON

I MỤC TIÊU

1 Kiến thức:

- Biết cấu trúc chung vị trí thủ tục chương trình - Phân biệt tham số giá trị tham số biến

- Nắm khái niệm biến toàn cục biến cục

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 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 chúng - Sử dụng lời gọi chương trình thân chương trì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

3 Thái độ:

- Rèn luyện phẩm chất người lập trình tinh thần hợp tác, làm việc theo nhóm, tn thủ u cầu công việc chung

II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

- Giáo viên: sách giáo khoa, sách giáo viên, Chuẩn KTKN Tin học THPT

- 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 cấu trúc chung vị trí thủ tục chương trình a)Nội dung:

Cấu trúc thủ tục:

Procedure <tên thủ tục>[<ds tham số>];

[phần khai báo>]

Begin

[<dãy lệnh>]

End; Trong đó:

- Phần đầu thủ tục bao gồm tên dành riêng procedure, tên thủ tục Danh sách tham số có khơng

- Phần khai báo dành để xác địnhcác hằng, biến xác định chương trình khá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  Ví dụ cách sử dụng thủ tục:

Vd 1: Viết thủ tục vẽ hình chữ nhật dấu * biết chiều dài chiều rộng. Procedure vehcn(dai,rong:integer);

Var i,j:integer; Begin

For i:=1 to dai write(‘*’); writeln;

for j:=1 to rong-2 begin

write(‘*’);

(90)

writeln(‘*’); end;

for i:=1 to dai write(‘*’); writeln;

End;

Sử dụng thủ tục vừa viết để vẽ hình hình chữ nhật có kích thước là: 25x15, 20x13; Sau tiếp tục vẽ hình chữ nhật, hình kích thước 4x2, hình sau gấp đơi hình trước

Program vd_thutuc2; Var a,b,i:integer;

Procedure vehcn(dai,rong:integer); Var i,j:integer;

Begin

For i:=1 to dai write(‘*’); writeln;

for j:=1 to rong-2 begin

write(‘*’);

for i:=1 to dai-2 write(‘ ’); writeln(‘*’);

end;

for i:=1 to dai write(‘*’); writeln;

End; Begin

Vehcn(25,15);writeln;writeln; Vehcn(20,13);writeln;writeln; a:=4;b:=2;

For i:=1 to Begin

Vehcn(a,b);writeln; a:=a*2;b:=b*2; End;

readln;

End.

Ví dụ 2: Viết thủ tục hốn đổi giá trị hai biến nguyên Viết chương trình để sử dụng thủ tục đó.

Program vd_thambien2; Var a,b:integer;

Procedure hoandoi(x:integer,var y:integer); Var tg:integer;

Begin

Tg:=x; x:=y; y:=tg;

(91)

a:=5;b:=10;writeln(a:6,b:6); hoandoi(a,b); writeln(a:6,b:6); readln;

End.

b)Hoạt động:

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

Tìm hiểu cấu trúc thủ tục.

- Hỏi: Vị trí thủ tục nằm phần chương trình chính?

- Hỏi: Cấu trúc thủ tục gồm phần?

- Hỏi: Phân biệt giống khác chương trình chương trình chính?

- Giới thiệu cấu trúc chung thủ tục

Procedure tên_thủ_tục(danh sách tham số); Các khai báo thủ tục;

Begin

Các lệnh thủ tục; End;

- Lời gọi thủ tục ta viết phần chương trình?

Tìm hiểu tham số hình thức tham số thực

sự.

- Chiếu ví dụ 2, VD_thutuc2, sách giáo khoa trang 98

- Yêu cầu học sinh nhận xét thủ tục ve_hcn ví dụ với ví dụ trước

- Diễn giải: Khai báo cho phép thủ tục ve_hcn thực vẽ nhiều hình chữ nhật có kích thước khác

- Hỏi: Quan sát chương trình cho biết, chương trình ta vẽ tất bao nhêu hình chữ nhật - Tham số chdai, chrong gọi tham số hình thức

- Trong lời gọi thủ tục tham số hình thức thay tham số thực

- So sánh tham số lời gọi ve_hcn(5,10); ve_hcn(a,b);

Tìm hiểu tham số giá trị tham số biến. - Diễn giải: Tham số có hai chức năng: đưa liệu vào cho chương trình đưa liệu chương trình tìm

- Hỏi: Các tham số ví dụ thuộc loại nào? - Chiếu chương trình VD_thambien1, sách giáo khoa

Quan sát ví dụ, suy nghĩ trả lời

- Nằm phần khai báo, sau phần khai báo biến

- Ba phần: Tên thủ tục, khai báo thủ tục phần thân thủ tục

- Giống: Cấu trúc chung

- Khác: Trong phần tên: Từ khóa đặt tên Procedurre, có tham số

- Quan sát ghi nhớ cấu trúc chung

Trong phần thân kết thúc End;

- Trong phần thân chương trình

Quan sát ví dụ bảng

- Thủ tục ve_hcn ví dụ có tham số chdai, chrong

- Vẽ hình chữ nhật

- Tham số thực thủ tục ve_hcn(5,10); số thủ tục ve_hcn(a,b); biến

Theo dõi trả lời

(92)

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

trang 99

- Hỏi: Các tham số x,y thuộc loại nào?

- Diễn giải: Trong lời gọi thủ tục, tham số hình thức thay tham số thực tương ứng tên biến chứa liệu ra gọi tham số biến

- Hỏi: x, y tham số giá trị hay tham số biến?

- Hỏi: Có nhận xét khai báo tham số hình thức tham trị tham biến?

- Chiếu vd_thambien2 giải thích để học sinh thấy khác biệt tham số giá trị tham số biến

xử lý

- Đưa liệu sau chương trình xử lý ngồi

- Là tham số biến

- Khi khai báo tham số biến ta đặt từ khóa var trước tham số

2.Hoạt động 2: Tìm hiểu cấu trúc chung vị trí hàm chương trình a) Nội dung:

Đặc điểm:

- Điểm khác hàm thủ tục việc hàm trả giá trị kết thuộc kiểu xác định giá trị gán cho tên hàm

- Hàm có cấu trúc tương tự thủ tục, khác phần đầu Phần đầu khai báo hàm có dạng sau:

function <tên hàm>[<ds tham số>]:<kiểu liệu>;

Trong kiểu liệu kiểu giá trị mà hàm trả kiểu integer, real, char, boolean, string

- Cũng giống thủ tục, hàm khơng có tham số hình thức khơng cần danh sách tham số

- Trong thân hàm cần có câu lệnh gán giá trị cho tên hàm: <tên hàm>:=<biểu thức>;

Ví dụ cách sử dụng hàm

Ví dụ 1: Xét chương trình thực việc rút gọn phân số có sử dụng hàm ước chung lớn nhất.

Program rutgon_phanso; Var tuso,mauso,a:integer;

Function UCLN(x,y:integer):integer;

Var sodu:integer; Begin

While y<>0 Begin

Sodu:=x mod y; x:=y;

y:=sodu; End; UCLN:=x; End;

Begin

(93)

Begin

Tuso:=tuso div a; Mauso:=mauso div a; End;

Writeln(‘Phan so da toi gian la:’,tuso, ‘/’,mauso); Readln;

End.

Ví dụ 2: Chương trình tìm số nhỏ số ngun có sử dụng hàm tìm số nhỏ hai số.

Program minbaso; Var a,b,c:real;

Function min(a,b:real):real;

Begin

If a<b then min:=a else min:=b; End;

Begin

Write(‘nhap vao ba so:’);readln(a,b,c);

Writeln(‘So nho nhat ba so la:’,min(min(a,b),c)); Readln;

End.

Chú ý:

- Việc sử dụng hàm hoàn toàn tương tự với việc sử dụng hàm chuẩn, viêt lệnh gọi gồm hàm tham số thực tương ứng với tham số hình thức

- Lệnh gọi hàm tham gia vào biểu thức tốn hạng chí tham số lời gọi hàm, thủ tục khác

b) Hoạt động:

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

Nhắc lại kiến thức cũ hàm chuẩn.

- Hỏi: Hãy kể tên số hàm chuẩn học cách sử dụng chúng

Giới thiệu cấu trúc chung vị trí hàm

trong chương trình chính.

- Hỏi: So sánh giống khác hàm thủ tục

Tìm hiểu hàm thơng qua ví dụ

- Chiếu chương trình ví dụ rutgon_phanso, sách giáo khoa trang 101

- Hỏi: Trong chương trình có hàm - Hàm UCLN(x,y) dùng để làm gì? - Hỏi: Lời gọi hàm đâu?

- Hỏi: Có khác với thủ tục lời gọi hàm

Suy nghĩ trả lời

- Hàm ABS(), SQRT(), ROUND() - Viết tên hàm cần gọi tham số - Lời gọi hàm viết biểu thức tốn hạng, chí tham số hàm khác

Quan sát cấu trúc chung

- Giống: Có cấu trúc tương tự, có tham số

- Khác: Tên hàm phải quy đinh kiểu liệu; Trong thân hàm phải có lệnh Tên_hàm:=biểu_thức;

Bắt đầu hàm từ Function Quan sát ví dụ trả lời

(94)

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

- Chiếu chương trình ví dụ 2, Minbaso, sách giáo khoa, trang 102

- Hỏi: Trong chương trình có hàm? chức hàm?

- Có lời gọi hàm chương trình chính?

Tìm hiểu biến cục biến tồn bộ.

- Chiếu chương trình ví du 2: Rutgon_phanso lên bảng

- Hỏi: Có biến sử dụng chương trình? Các biến khai báo chỗ chương trình?

- Diễn giải: Biến tuso, mauso, A có ảnh hưởng tồn chương trình Biến Sodu ảnh hưởng thân chương trình

- Yêu cầu học sinh: Phân biệt giống khác biến toàn biến cục

- Lệnh A:=UCLN(tuso,mauso);

- Lời gọi hàm phải đặt lệnh lời gọi chương trình khác

- Quan sát chương trình ví dụ - Có hàm khai báo - Hàm sử dụng hai lần

- Kết hàm lại đầu vào cho hàm lần gọi thứ hai Quan sát lại ví dụ

- Quan sát chương trình giáo viên - Có biến: tuso, mauso, A, sodu - Các biến: tuso, mauso, A khai báo chương trình

- Các biến: sodu khai báo chương trình

- Biến cục bộ: có ảnh hưởng chương trình con, khai báo phần khai báo chương trình - Biến tồn bộ: có phạm vi ảnh hưởng tồn chương trình, khai báo phần khai báo chương trình

(95)

Ngày soạn:10/4/2013 Tiết:47+48

BÀI THỰC HÀNH SỐ 6

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 CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

- Giáo viên: sách giáo khoa, sách giáo viên, phịng máy vi tính

- 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 giáo viên Hoạt động 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 khơng nằm thủ tục

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

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ự

- Thủ tục thực thêm vào trước xâu s số ký tự trắng để đưa s hình ký tự S ban đầu dịng gồm 80 ký tự

Quan sát chương trình bảng theo dõi dẫn dắt giáo viên

(96)

2 Hoạt động 2: Rèn luyện kĩ lập trình

Hoạt động giáo viên Hoạt động học sinh Tìm hiểu yêu cầu đề bài: Viết chương trình

cho dịng chữ chạy dịng chương trình qui định

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 lập trình học sinh

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

IV ĐÁ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 ngun 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

(97)

Ngày soạn: 17/4/2013 Tiết:49

BÀI TẬP

I.

MỤC TIÊU:

- Tiếp tục củng cố cho học sinh kiến thức chương trình thơng qua số câu hỏi trắc nghiệm

- Rèn luyện kĩ đọc hiểu chương trình kĩ viết chương trình thơng qua tập cụ thể

II.

CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:

- Giáo viên: sách giáo khoa, sách giáo viên, sách tập - Học sinh: sách giáo khoa, sách tập

III.

NỘI DUNG

1 Hoạt động 1: Củng cố kiến thức chương trình thông qua số câu trắc nghiệm

1) Sự khác hàm thủ tục là:

A Hàm ln trả kết cịn thủ tục khơng B Hàm có tham số cịn thủ tục khơng

C Thủ tục có tham số cịn hàm khơng D Thủ tục trả giá trị hàm khơng

2) Thủ tục khoá nào:

A Function B Procedure C Program D Begin

3) Chọn phát biểu đúng:

A. Tham số giá trị thay đổi sau thực xong thủ tục

B. Tham số biến tham số giá trị thay đổi sau thực xong thủ tục

C. Tham số biến thay đổi sau thực xong thủ tục D)Tất 4) Chọn phát biểu tham số chương trình

A. Chương trình phải có tham số

B. Tất chương trình khơng có tham số

C. Mọi chương trình phải chứa tham số biến

D. Tất loại chương trình chứa tham số không. 5) Chọn phát biểu

A. Trong lời gọi thủ tục hàm, tương ứng với tham số biến phải biến tương ứng với tham số giá trị phải giá trị cụ thể

B. Trong lời gọi thủ tục hàm, tương ứng với tham số biến phải biến, tương ứng với tham số giá trị phải biến

C. Trong lời gọi thủ tục hàm, tương ứng với tham số biến phải biến tương ứng với tham số giá trị biến.

D. Trong lời gọi thủ tục hàm, tương ứng với tham số biến biến, tương ứng với tham số giá trị biến

2 Hoạt động 2: Rèn luyện cho học sinh kĩ đọc hiểu chương trình thơng qua đoạn chương trình cụ thể

1)Hàm sau dùng để thực cơng việc gì? Function F(a,b:integer):integer;

Begin

While a<>b

If a>b then a:=a-b Else b:=b-a; F:=a;

(98)

A Tìm ước chung lớn a b B Tìm bội chung nhỏ a b

C So sánh hai số a b D Tìm hiệu a b

2)Cho biết kết x, y sau thực chương trình sau: Program vd2;

var x,y:integer;

Procedure P(var a:integer;b:integer); begin

a:=a*a; b:=b*10; end;

begin

x:=5;y:=10; P(x,y); end

A x=5, y=10 B x=5, y=100 C x=25, y=100 D x=25, y=10

3 Hoạt động 3: rèn luyện cho học sinh kĩ lập trình

1) Viết hàm tính tổng số lẻ từ a đến b với a,b nhập vào từ bàn phím

2) Viết hàm kiểm tra số a,b, c cho trước có phải độ dài cạnh tam giác hay không?

3) Viết chương trình tính chu vi diện tích tam giác biết độ dài cạnh tam giác

(99)

Ngày soạn: 19/4/2014 Tiết:50+51

ÔN TẬP

I MỤC TIÊU:

- Ôn tập hệ thống lại kiến thức học kiểu liệu có cấu trúc lập trình có cấu trúc

- Rèn luyện kĩ đọc hiểu chương trình kĩ viết chương trình thơng qua tập cụ thể

II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH:

- Giáo viên: sách giáo khoa, sách giáo viên, sách tập - Học sinh: sách giáo khoa, sách tập

III NỘI DUNG

1 Hoạt động 1: Củng cố kiến thức học kiểu liệu có cấu trúc lập trình có cấu trúc thơng qua câu hỏi trắc nghiệm

1) Trong kiểu khai báo sau, khai báo hợp lệ:

A var arr[10]: array of integer; B var arr:array[1.10] of integer; C var arr[1 10]:integer; D Var arr:array[1 10] of integer; 2) Trong kiểu khai báo sau, khai báo không hợp lệ:

A var m:array[100 10] of integer; B var m:array[10 100] of integer; C var m:arr[1 10, ‘a’ ‘h’]:integer; D Var m:array[-3 10] of integer; 3) Hãy chọn phương án ghép Cho xâu S ‘Hanoi-Vietnam’ Kết hàm

Pos(‘Vietnam’,S)

A B C 7 D

4) Cho biết kết đoạn chưong trình sau: Var st:string;

Function chuoi(s:string):string; var tam:string;

i:integer; begin tam:='';

for i:=1 to length(s) tam:=s[i]+tam;

chuoi:=tam; end;

BEGIN

st:=chuoi('123456'); write('Ket qua: ',st); readln;

END

A 123456 B 654321 C st D Tất sai

5) Đoạn chương trình sau làm gì?

For i:=length(a) downto write(a[i]);

a Viết kí tự đầu a b Viết kí tự cuối a c Viết xâu a theo thứ tự ngược d Viết xâu a theo thứ tự

(100)

Bài 1:Nhập vào xâu ký tự Hãy chuẩn hố xâu cách giữ lại dấu trống (dấu cách) từ (từ hiểu dãy ký tự liên tiếp không chứa dấu cách)

uses crt;

var i,k,m,n:integer; s:string;

Begin

clrscr;

Write('Ban hay nhap mot xau ki tu:');Readln(s); While Pos(' ',s)<>0 Delete(s,Pos(' ',s),1); Writeln('Xau da chuan hoa:',s); Readln;

End

Bài 2: Nhập vào xâu kí tự, viết chương trình cho xâu vừa nhập chạy xâu hình

Uses CRT;

Var a : string;

BEGIN

Write('Nhập xâu : '); Readln(a);

Repeat

write(a); delay(500); a:= ' ' + a; clrscr; Until keypressed; Readln

END

Bài 3: Viết chương trình tính tổng hiệu số chẵn nhỏ n, với n nguyên dương nhập vào từ bàn phím (sử dụng chương trình con)

Bài 4: Viết chương trình tìm số lớn số nguyên cho trước (sử dụng chương trình tìm số lớn hai số nguyên)

Bài 5: Viết chương trình đếm số lượng số từ m đến n chia hết cho k, m,n,k nguyên dương cho trước (sử dụng chương trình con)

(101)

Ngày soạn:28/4/2012 Tiết:52

KIỂM TRA HỌC KÌ II

I Mục tiêu:

- Củng cố kiến thức nội dung học học kì

- Rèn luỵên kĩ đọc hiểu chương trình lập trình

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

- Giáo viên: đề kiểm tra

- Học sinh: tự ôn tập hệ thống kiến thức học

III Phương pháp:

- Nêu vấn đề

IV Hoạt động dạy- học:

1 Hoạt động 1: Ổn định lớp

2 Hoạt động 2: Từng học sinh độc lập làm kiểm tra giấy Hình thức: trắc nghiệm 60% Tự luận 40%

Nội dung đề kiểm tra

I Phần trắc nghiệm(4 điểm): (Mỗi câu trả lời 0.5 điểm) Câu 1: Cho khai báo sau :

Var hoten : string;

Phát biểu ?

A Câu lệnh sai thiếu độ dài tối đa xâu; B Xâu có độ dài lớn 0;

C Xâu có độ dài lớn 255; D phải khai báo kích thước xâu sau đó; Câu 2: Phát biểu kiểu mảng phù hợp ?

A Độ dài tối đa mảng 255; B Là dãy hữu hạn phần tử kiểu; C Là tập hợp số ngun; D Mảng khơng thể chứa kí tự;

Câu 3: Hãy chọn phương án ghép Để khai báo số phần tử mảng trong PASCAL, người lập trình cần :

A khai báo số bắt đầu kết thúc mảng; B khai báo số số phần tử mảng;

C khơng cần khai báo gì, hệ thống tự xác định; D khai báo số kết thúc mảng; Câu 4: Phát biểu số mảng phù hợp ?

A Dùng để quản lí kích thước mảng; B Dùng vòng lặp với mảng;

C Dùng để truy cập đến phần tử mảng;

D Dùng vòng lặp với mảng để quản lí kích thước mảng;

Câu 5: Hãy chọn phương án ghép Cho xâu S ‘Quangngai-Vietnam’ Kết của hàm Length(S) là:

A 16 B 17 C 14 D 15

Câu 6: Cho str xâu kí tự, đoạn chương trình sau thực cơng việc for i := to length(str) – str[i+1] := str[i] ;

A Khởi tạo lại kí tự xâu kí tự đầu tiên; B Dịch chuyển kí tự sâu lên trước vị trí; C Dịch chuyển kí tự xâu sau vị trí; D Khởi tạo lại kí tự xâu kí tự cuối cùng;

Câu 7: Hãy chọn phương án ghép Độ dài tối đa xâu kí tự PASCAL là:

(102)

Câu 8: Str xâu kí tự, đoạn chương trình sau thực cơng việc ? For i :=length(str) downto 1do write(str[i]);

A In xâu hình; B In kí tự xâu hình; C In kí tự hình theo thứ tự ngược, trừ kí tự đầu tiên;

D In kí tự hình theo thứ tự ngược; II Phần tự luận (6 điểm)

Câu 1(2 điểm): ): Cho chương trình sau : Program cau13;

var i, j, m, n : integer;

Procedure TINH (b : integer; Var c : integer);

var i : integer;

begin

i := 5; j := 1; b := b +i; c := c+j;

write (i : 3, j : 3, b : 3, c : 3);

end; begin

i := 5; j := 7; m : = 0; n := 2; TINH (m, n);

Writeln (i : 3, j : 3, m : 3, n : 3) ; Readln;

End.

Câu 2(2 điểm):Viết chương trình nhập dãy N số ngun có giá trị tuyệt đối khơng vượt q 100 (N 20) Tính trung bình cộng số dãy vừa nhập

Câu 3(2 điểm): Viết hàm LATAMGIAC (a, b, c : integer) : boolean; để kiểm tra ba số a, b, c có ba cạnh tam giác hay không? (Hàm trả giá trị TRUE a, b, c ba cạnh tam giác, hàm trả giá trị FALSE a, b, c không ba cạnh tam giác)

- - HẾT

-Hãy đọc chương trình cho biết:

1 Tham số hình thức: Tham số thực sự:

3 Tham số giá trị (hay tham trị): Tham số biến (hay tham biến): Biến cục bộ:

Ngày đăng: 02/06/2021, 13:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w