Đang tải... (xem toàn văn)
Xem trước bài: Cấu trúc rẽ nhánh, sgk trang 38 V.. Kiến thức: Củng cố các kiến thức về ngôn ngữ lập trình, cấu trúc chương trình, khai báo biến, các biểu thức trong Pascal, các câu lệnh[r]
(1)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 Ngày soạn : 16/8/2009 Tiết PPCT:1
Chương I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH Bài 1: KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
I MỤC TIÊU: Kiến thức:
- Học sinh nhận biết có ba 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 dược vai trị chương thình dịch
Kĩ năng: Phân biệt hai khái niệm biên dịch thông dịch, phân biệt các loại ngơn ngữ lập trình
Thái độ: Thấy cần thiết tiện lợi sử dụng ngơn ngữ lập trình bậc cao Liên hệ với trình giao tiếp đời sống
II CHUẨN BỊ:
Giáo viên: Một số ví dụ ngơn ngữ lập trình
Học sinh: Tìm hiểu số loại ngơn ngữ giao tiếp thông dụng III HOẠT ĐỘNG DẠY HỌC:
1) Ổn định tổ chức: Kiểm tra sĩ số lớp
2) Kiểm tra cũ: Nếu có thuật tốn máy thực tốn mà giải hay chưa ?
3) Giảng mới:
Nội dung Hoạt động GV HS
Ngôn ngữ máy: Là ngôn ngữ mà máy tính trực tiếp hiểu xử lý đựơc
Hợp ngữ: Là loại ngôn ngữ sử dụng số từ để thực lệnh ghi
Ngôn ngữ bậc cao: Là loại ngôn ngữ gần với ngơn ngữ tự nhiên, phụ thuộc vào loại máy
Chương trình dịch chương trình đặc biệt, có chức chuyển đổi chương trình đợc viết ngơn ngữ lập trình bậc cao sang ngơn ngữ máy
Dùng máy chiếu diễn giải hai tình Kết luận :
GV : Gọi học sinh nhắc lại khái niệm : ngôn ngữ máy, hợp ngữ ngôn ngư bậc cao
HS: Trả lời câu hỏi
GV : Để chuyển đổi chương trình viết ngơn ngữ lập trình bậc cao sang ngơn ngữ máy cần phải có gì? HS : Đó chương trình dịch
GV : - Cho ví dụ từ thực tế : “ Người phóng viên biết ngơn ngữ tiếng việt phóng vấn khách nước ngồi ” thơng qua người phiên dịch
GV : Như có hai cách để người phóng viên thực cơng việc : biên dịch thơng dịch
Giáo viên: Phùng Ngọc Thái
CHƯƠNG TRÌNH NGUỒN
CHƯƠNG TRÌNH DỊCH
CHƯƠNG TRÌNH ĐÍCH
(2)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 Thông dịch (Interpreter) đợc thực cách
lặp lại dãy bước sau
- Kiểm tra tính đắn câu lệnh chương trình nguồn
- Chuyển đổi câu lệnh thành hay nhiều câu lệnh tương ứng ngôn ngữ máy
- Thực câu lệnh vừa chuyển đổi Biên dịch (Compiler): thực qua hai bước
- Duyệt, phát lỗi, kiểm tra tính đắn câu lệnh chương trình nguồn
- Dịch tồn chương trình nguồn thành ch-ơng trình đích thực máy lưu trữ để sử dụng lại cần thiết
4) CỦNG CỐ : Khái niệm lập trình? Chương trình dịch gì? Khái niệm ngơn ngữ lập trình?
5) BÀI TẬP VỀ NHÀ:
IV RÚT KINH NGHIỆM, BỔ SUNG:
Giáo viên: Phùng Ngọc Thái
(3)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 Ngày soạn : 16/8/2009 Tiết PPCT:2
&2 CÁC THÀNH PHẦN CỦA NGƠN NGỮ LẬP TRÌNH. I MỤC TIÊU
- Kiến thức:
+ Biết số khái niệm: tên, tên chuẩn, tên dành riêng, biến
+ Học sinh ghi nhớ quy định tên, biến ngôn ngữ lập trình - Kĩ năng:
+ Phân biệt tên, biến.
+ Biết cách đặt tên chúng nhận biết tên viết sai quy tắc
- Thái độ: Rèn luyện cho HS tính nguyên tắc, chặt chẽ lập trình II CHUẨN BỊ:
Giáo viên: Soạn giáo án, nghiên cứu sách giáo khoa, sách tập, tài liệu tham khảo. Máy tính cá nhân máy chiếu ( có)
Học sinh: Đọc trước nhà Sách giáo khoa. III HOẠT ĐỘNG DẠY HỌC:
1) Ổn định tổ chức: Kiểm tra sĩ số lớp 2) Kiểm tra cũ:
Câu hỏi :
1 Chương trình dịch gì?
2 Biên dịch thơng dịch khác nào? 3) Giảng mới:
Hoạt động GV HS Nội dung
GV: Gọi HS trả lời ý nghĩa việc đặt tên?
HS: Tại chỗ trả lời
GV: Nhận xét đưa kết luận HS: Chú ý ghi
GV: Mọi đối tượng chương trình phải đặt tên theo quy tắc ngôn ngữ lập trình chương trình dịch cụ thể
HS: Chú ý ghi
GV: Lấy ví dụ tên đặt sai tên đặt gọi học sinh nhận xét
HS: - Tên đúng: a,b,c,x1, a_b - Tên sai: a bc, 2x
GV: Ngôn ngữ Pascal không phân biệt chữ hoa, chữ thường
HS: Chú ý lắng nghe
GV: Ngơn ngữ lập trình thường có ba loại tên bản: tên dành riêng, tên chuẩn tên người lập trình đặt
HS: Đọc SGK trình bày tên dành
2 Một số khái niệm a Tên
- Ý nghĩa việc đặt tên khai báo tên cho đối tượng:
+ Để quản lý phân biệt đối tượng chương trình
+ Để gợi nhớ nội dung đối tượng - Qui tắc đặt tên Pascal:
Tên 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
(4)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 riêng
GV: Trong Pascal, soạn thảo, tên dành riêng có màu trắng phân biệt với tên khác
GV: Gọi HS phát biểu tên chuẩn HS: Tại chỗ trả lời
GV: Viết số tên chuẩn HS: Ghi bài,
GV: Lấy ví dụ giải phương trình bậc hai cần dùng biến nào?
HS: Khi giải PTBH ta cần dùng biến: a,b,c, x1, x2, Delta để biểu diễn nội dung hệ số phương trình; nghiệm phương trình biệt số delta GV: Vậy tên tên người lập trình đặt
GV: Nêu khái niệm ngơn ngữ lập trình
HS: Tại chỗ trả lời
GV: Lấy ví dụ ví dụ ví dụ sai cho học sinh nhận biết
HS: Nhận biết tên tên sai
Ví dụ: 123, ‘123’, ‘TRUE, 2+3,… GV: Các biến dùng chương trình phải khai báo
GV: Khi viết chương trình người lập trình có nhu cầu giải thích cho câu lệnh viết để đọc lại thuận tiện người khác đọc hiểu chương trình viết, ngơn ngữ lập trình thường cung cấp cho cách đưa vào đoạn thích chương trình
HS: Chú ý lắng nghe ghi
GV: Ví dụ chương trình Pascal đơn giản minh họa
* Tên dành riêng:
- Là tên dùng với ý nghĩa riêng xác định - Tên dành riêng gọi từ khố Ví dụ: Trong Pascal:
Program, uses, var, type, const, begin, end, array, type,…
Trong C++: main, include, if, while, void * Tên chuẩn
- Được dùng với ý nghĩa định đó, dùng riêng phải khai báo
Ví dụ:
Trong Pascal: abs, sqr, sqrt, cos, sin,… Trong C++: cin, cout, getchar
*Tên người lập trình đặt
- Được dùng với ý nghĩa riêng, xác định cách khai báo trước sử dụng
b Hằng biến Hằng
- Hằng đại lượng có giá trị khơng thay đổi q trình thực chương trình - Các ngơn ngữ lập trình thường có: + Hằng số: số ngun số thực VD: , 1.0E-6,…
+ Hằng lôgic: Là giá trị (True)hoặc sai (False)
+ Hằng xâu: Là chuỗi kí tự mã ASCII, đặt cặp dấu nháy
Biến
- Là đại lượng đặt tên, dùng để lưu trữ giá trị giá trị thay đổi q trình thực chương trình
c Chú thích
- Các thích khơng làm ảnh hưởng đến chương trình
- Trong Pascal thích đặt {} (*và*)
- Trong C++ thích đặt /* */ //
4) CỦNG CỐ : Nhắc lại quy tắc đặt tên Pascal khái niệm tên dành riêng, tên chuẩn, tên người lập trình đặt Khái niệm hằng, biến khác biến
Giáo viên: Phùng Ngọc Thái
(5)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011
5) BÀI TẬP VỀ NHÀ:
Hướng dẫn làm tập tập
- Bài 6: Các số: a, b, f,g Các xâu: d,i IV RÚT KINH NGHIỆM, BỔ SUNG:
(6)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 Ngày soạn : 16/8/2009 Tiết PPCT:3
BÀI TẬP I MỤC TIÊU
- Kíến thức:
+ Củng cố lại cho HS kiến thức học lập trình, ngơn ngữ lập trình bậc cao, ngơn ngữ máy, chương trình dịch, thơng dịch, biên dịch qua tập trắc nghiệm
- Kĩ năng:
+ Xác định tên đúng, tên sai, tên chuẩn, từ khoá
+ Biết viết tên ngơn ngữ lập trình cụ thể - Thái độ:
+ Nhận thức trình phát triển ngơn ngữ lập trình gắn liền với q trình phát triển tin học
+ 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: Soạn giáo án, nghiên cứu sách giáo khoa, sách tập, tài liệu tham khảo. Máy tính cá nhân máy chiếu ( có)
Học sinh: Làm tập trước nhà. III HOẠT ĐỘNG DẠY HỌC:
1) Ổn định tổ chức: Kiểm tra sĩ số lớp 2) Kiểm tra cũ
Câu hỏi :
1 Nêu thành phần ngôn ngữ lập trình? Nêu quy tắc đặt tên Turbo Pascal?
Đáp án:
1 Ngơn ngữ lập trình có ba thành phần bản: bảng chữ cái, cú pháp ngữ nghĩa - Bảng chữ cái: Là tập kí tự dùng để viết chương trình
- Cú pháp: Là quy tắc để viết chương trình - Ngữ nghĩa: Xác định ý nghĩa tổ hợp kí tự Quy tắc đặt tên Pascal:
- Đối tượng HS kiểm tra: HS trung bình 3) Giảng mới:
Hoạt động GV HS Nội dung
GV: Gọi HS đọc câu hỏi 1, lớp suy nghĩ trả lời
HS: Đọc câu hỏi
GV: Gọi HS đứng chổ trả lời GV: Gọi HS khác bổ sung Sau GV nhận xét câu trả lời ghi đáp án HS: Chữa tập vào
Câu1: Tại người ta phải xây dựng ngơn ngữ lập trình bậc cao?
Người ta phải xây dựng ngơn ngữ lập trình bậc cao, vì:
- Ngơn ngữ lập trình bậc cao gần với ngơn ngữ tự nhiên hơn, thuận tiện cho đơng đảo người lập trình
- Chương trình viết ngơn ngữ lập trình bậc cao nói chung khơng phụ thuộc vào phần cứng máy tính
- Chương trình viết ngơn ngữ bậc cao dễ hiểu, dễ hiệu chình nâng cấp
Giáo viên: Phùng Ngọc Thái
(7)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 GV: Gọi HS đọc câu hỏi trả lời
câu hỏi
HS: Tại chỗ trả lời nêu khái niệm chương trình dịch
GV: Nêu Input Output chương trình dịch để gợi ý cho HS vai trị chương trình dịch
HS: Tại chỗ trả lời
GV: Gọi HS trả lời câu hỏi HS: Tại chỗ đọc câu hỏi
GV: Gọi HS khác nhận xét câu trả lời, bổ sung đưa đáp án
GV: Gọi HS khác nhận xét câu trả lời, bổ sung đưa đáp án
GV: Gọi HS đọc câu hỏi 4, lớp suy nghĩ câu hỏi
GV: Gọi HS trả lời
GV: Nhận xét nêu đáp án GV: Gọi HS đọc câu hỏi
GV: Gợi ý cho HS cách gọi HS nêu quy tắc đặt tên Pascal tên đặt không ngắn, hay dài mà nên đặt cho gợi nhớ ý nghĩa đối tượng mang tên
HS: Tại chỗ đọc câu hỏi HS: Lên bảng làm GV: Chữa
GV: Gọi HS đọc câu hỏi
GV: Từng câu a,b,…, i gọi HS: Trả lời:
- c) dấu phẩy phải thay dấu chấm
- e) tên chưa rõ giá trị
- h) thiếu dấu nháy đơn cuối
- Ngôn ngữ bậc cao cho phép làm việc với nhiều kiểu liệu cách tổ chức liệu đa dạng, thuận tiện cho việc mơ tả thuật tốn
Câu2: Chương trình dịch gì? Tại cần phải có chương trình dịch
- Chương trình dịch chương trình đặc biệt, có chức chuyển đổi chương trình viết ngơn ngữ bậc cao thành chương trình đích thực máy
- Để chương trình viết ngơn ngữ bậc cao máy hiểu thực phải có chương trình dịch dịch sang ngơn ngữ máy Câu3: Biên dịch thông dịch khác như thế nào?
- Trình biên dịch duyệt, kiểm tra, phát lỗi, xác định chương trình nguồn có dịch khơng dịch tồn thành chương trình đích thực máy lưu trữ - Trình thơng dịch dịch câu ngôn ngữ máy thực không lưu lại máy Câu4: Hãy cho biết điểm khác tên dành riêng tên chuẩn? - Tên dành riêng không dùng khác với ý nghĩa xác định, tên chuẩn dùng với ý nghĩa khác
Câu5: Hãy tự viết ba tên theo quy tắc của Pascal.
3 tên Pascal: abc; vidu3; _15a
Câu6: Hãy cho biết biểu diễn biểu diễn Pascal rõ lỗi 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’
- Các biểu diễn hằng: c), e), h)
4) CỦNG CỐ :
- Rèn luyện kĩ đặt tên, biến
- Hiểu nắm vững khái niệm chương trình dịch, biến,…
5) BÀI TẬP VỀ NHÀ:
- Hướng dẫn HS làm tập SBT: BT 1.9; BT 1.10; BT 1.11; BT 1.12 IV RÚT KINH NGHIỆM, BỔ SUNG:
Ngày soạn : 16/8/2009 Tiết PPCT: 4
(8)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011
CHƯƠNG II: CHƯƠNG TRÌNH ĐƠN GIẢN &3 CẤU TRÚC CHƯƠNG TRÌNH §4 MỘT SỐ KIỂU DỮ LIỆU CHUẨN I MỤC TIÊU
- Kiến thức:
+ Hiểu chương trình mơ tả thuật tốn ngơn ngữ lập trình + Biết cấu trúc chương trình đơn giản: cấu trúc chung thành phần + Biết số kiểu liệu chuẩn: nguyên, thực, kí tự, lơgic miền
- Kĩ năng:
+ Nhận biết thành phần chương trình đơn giản + Xác định kiểu cần khai báo liệu đơn giản
- Thái độ:
+ Xác định thái độ nghiêm túc học tập làm quen với nhiều qui định nghiêm ngặt lập trình
II CHUẨN BỊ:
Giáo viên: Soạn giáo án, nghiên cứu sách giáo khoa, sách tập, tài liệu tham khảo. Máy tính cá nhân máy chiếu ( có)
Học sinh: tham khảo trước tài liệu nhà. III HOẠT ĐỘNG DẠY HỌC:
1) Ổn định tổ chức: Kiểm tra sĩ số lớp 2) Kiểm tra cũ ( ‘)
Câu hỏi :
Câu hỏi: Nêu qui tắc đặt tên Pascal? Phân biệt tên chuẩn tên dành riêng? Đáp án:
- Qui tắc đặt tên Pascal: Trong Pascal, tên dãy liên tiếp khơng q 127 kí tự bao gồm chữ số, chữ dấu gạch bắt đầu chữ dấu gạch
- Tên dành riêng không sử dụng với ý nghĩa khác, cong với tên chuẩn, người dùng dùng chúng với ý nghĩa mục đích khác
Đối tượng kiểm tra: HS trung bình 3) Giảng mới:
Hoạt động GV HS Nội dung
GV: Một ngơn ngữ lập trình bậc cao thường có hai phần
GV: Với quy ước: Các diễn giải ngôn ngữ tự nhiên đặt cặp < >
[ ] : Biểu diễn có khơng
HS: Phần thân chương trình thiết phải có, phần khai báo có khơng tuỳ theo chương trình cụ thể
GV: Nêu cấu trúc chung chương trình Pascal đơn giản:
I)
CẤU TRÚC CHƯƠNG TRÌNH 1 Cấu trúc chung
- Cấu trúc chung: [<phần khai báo>] <phần thân> - Trong Pascal: Phần khai báo:
Program < tên chương trình>; Uses < tên thư viện>;
Const <tên hằng>=<giá trị hằng>; Var < tên biến>: <kiểu liệu>;
Giáo viên: Phùng Ngọc Thái
(9)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 HS: Lắng nghe ghi
GV: Chúng ta tìm hiểu thành phần chương trình
GV: Phần có khơng Với Pascal, có phải khai báo theo quy tắc
HS: Lên bảng
GV: Gọi HS lấy ví dụ khai báo tên chương trình
HS: Lên bảng GV: Nhận xét
GV: Mỗi ngôn ngữ lập trình thường có sẵn số thư viện cung cấp số chương trình thơng dụng lập sẵn.Để sử dụng chương trình cần khai báo thư viện chứa
GV: Trong Pascal, khai báo thư viện phải ln đặt đầu tiên, sau dịng khai báo
program.
GV: Những gía trị xuất nhiều lần chương trình thường khai báo
HS: Lắng nghe
GV: Khai báo tạo điều kiện thuận lợi cho việc chỉnh sửa lại giá trị toàn chương trình
GV: Lấy ví dụ
GV: - Biến nhận giá trị thời điểm thực chương trình gọi biến đơn
GV: Khi cần viết chương trình quản lí học sinh ta cần xử lí thơng tin dạng nào?
HS: Suy nghỉ trả lời câu hỏi GV GV: Phân tích câu trả lời học sinh đưa vài thông tin dạng sau: - Họ tên học sinh thông tin dạng văn dạng kí tự
- Điểm học sinh thông tin dạng số thực
Procedure …; <khai báo thủ tục> Function …; <khai báo hàm>… Phần thân:
Begin
{Dãy câu lệnh}; End.
2 Các thành phần chương trình a Phần khai báo
* Khai báo tên chương trình Trong Pascal:
Program <tên chương trình>; Ví dụ:
Program vidu; Program tinhtong; * Khai báo thư viện.
- Khai báo thư viện Pascal:
Uses crt; {Thư viện crt chứa hàm vào/ra chuẩn làm việc với hình bàn phím} Uses graph; {Thư viện graph chứa hàm đồ hoạ}
- Để xố hình sau khai báo crt dùng lệnh clrscr.
- Trong C++: #include <stdio.h>; #include <conio.h>; * Khai báo hằng: - Trong Pascal:
Const MaxN = 1000; PI = 3.1416;
* Khai báo biến: - Trong Pascal: Var <danh sách biến>:<kiểu liệu>; Ví dụ: Giải phương trình bậc hai:
ax2 + bx +c = 0.
Khai báo: Var a,b,c,x1,x2,delta: real;
b Phần thân chương trình
- Phần thân chương trình bao gồm dãy lệnh phạm vi xác định cặp dấu hiệu mở đầu kết thúc
- Trong Pascal, bắt đầu kết thúc Begin… End
Begin
[<Dãy lệnh>]; End
II Kiểu liệu chuẩn 1 Kiểu nguyên
Kiểu Số Byte Miền gi trị
(10)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 - Số thứ tự học sinh thông tin
dạng số nguyên
- Một số thông tin khác cần biết chúng hay sai
GV: Thuyết trình đưa số bổ sung sau:
- Ngơng ngữ lập trình đưa số kiểu liệu chuẩn đơn giản, từ kiểu đơn giản ta xây dựng thành kiểu liệu phức tạp
- Kiểu liệu có miền giới hạn Máy tính khơng thể lưu tất số trục số lưu trữ với độ xác cao
- Tuỳ thuộc vào ngơn ngữ lập trình mà tên kiểu liệu khác miền giá trị kiểu liệu khác
- Với kiễu liệu người lập trình cần ghi nhớ tên kiểu, miền giá trị số ô nhớ để lưu giá trị thuộc kiểu
- Trong lập trình nói trung kiểu kí tự thường tập kí tự bảng mã kí tự, kí tự có mã thập phân tương ứng Để lưu giá trị phải lưu mã thập phân tương ứng chúng
Byte 255
Integer - 215 215-
Word 216-
Longint - 231 231- 2 Kiểu thực
- Có nhiều kiểu cho giá trị số thực hay dùng số kiểu sau:
Kiểu Số
Byt e
SCS cĩ nghĩa
Miền gi trị
Real 11- 12 2.9e- 39 1.7e38
Single 7- 1.5e- 45 3.4e- 38
Double 15- 16 5.4e- 325 1.7e- 308
Extended 10 19- 20 3.4e- 4932 1.2e4932
Comp 19- 20 - 9.2e18 9.2e18
3 Kiểu kí tự - Tn kiểu: Char
- Miền gi trị l cc gi trị bảng m ASCII gịm 256 kí tự Mỗi kí tự cĩ m tương ứng phạm vi từ đến 255
- Cc kí tự cĩ quan hệ so snh, việc so snh dựa trn m kí tự
4 Kiểu Logic - Tn kiểu: Boolean
- Miền giá trị: Chỉ có giá trị True (đúng) False (sai)
4) CỦNG CỐ : Nhắc lại khái niệm cấu trúc chương trình gồm phần khai báo phần thân
5) BÀI TẬP VỀ NHÀ:
Cho chương trình mẫu nhà yêu cầu học sinh rõ thành phần chương trình
Giáo viên: Phùng Ngọc Thái
(11)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011
Program venha; Uses crt;
Var a,b: integer; Begin
Clrscr;
Writeln(‘Nhâp a,b:’); Readln(a,b);
Writeln(‘Tong hai so la:’,a+b:3);
Readln; End. IV RÚT KINH NGHIỆM, BỔ SUNG:
Giáo viên: Phùng Ngọc Thái
(12)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011
Giáo viên: Phùng Ngọc Thái
(13)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011
Ngày soạn : 13 /9/2009 Ngày dạy :15 /9/2009
Tiết PPCT :
§5 + KHAI BÁO BIẾN
PHÉP TỐN, BIỂU THỨC, CÂU LỆNH GÁN
I MỤC TIÊU 1 Về kiến thức:
- Hiểu khai báo biến
- Biết khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức quan hệ - Hiểu lệnh gán
- Biết số hàm thơng dụng Pascal
2 Về kỹ naêng:
- Khai báo biến đúng, nhận biết khai báo sai - Viết lệnh gán
- Viết cc biểu thức số học v logic với cc php tốn thơng dụng 3 Về thái độ:
- Xác định thái độ nghiêm túc học tập làm quen với nhiều qui định nghiêm ngặt lập trình
- Tạo ham muốn giải tập lập trình, trước mắt thấy ích lợi lập trình, phục vụ tính tốn giải số toán
II CHUẨN BỊ:
Giáo viên: Soạn giáo án, sách giáo khoa, sách tập, tài liệu tham khảo Máy tính ( có). Học sinh: Cấu trúc chương trình.
III HOẠT ĐỘNG DẠY HỌC:
1) Ổn định tổ chức: Kiểm tra sĩ số lớp 2) Kiểm tra cũ ( ‘)
Câu hỏi :
Cấu trúc chương trình Pascal đơn giản gì? Kết thúc chương trình ? 3) Giảng mới:
Hoạt động GV HS Nội dung
GV: Khai báo biến chương trình báo cho máy biết phải dùng chương trình chương trình
HS: Lắng ghe ghi chép
- Ví dụ 1: Để giải phương trình bặc ax+b=0 ta cần khai báo sau:
Var a, b, x: Real
- Ví dụ 2: Để tính chu vi diện tích tam giác cần khai báo biến sau:
Var a, b, c, p, s, cv: Real;
Trong đó: a, b, c: Dùng để lưu độ dài cạnh tam giác;
P: chu vi;
CV, S: chu vi diện tích tam giác
GV: Khi khai báo biến cần ý điểm gì?
HS: Suy ghĩ trả lời câu hỏi
I) Khai báo biến
- Trong NLT Pascal biến đơn khai báo sau
Var <danh sách biến>: <kiểu liệu>; Trong đó:
- Var: Là từ khoá dùng để khai báo biến - Danh sách biến: Tên biến cách dấu phẩy
- Kiểu liệu: Là kiểu liệu ngơn ngữ Pascal
- Sau var khai báo nhiều danh sách biến có kiểu liệu khác
- Cần đặt tên biến cho gợi nhớđến ý nghĩa
- Không nên đặt tên ngắn hay dài, rễ
dẫn đến mắc lỗi hay hiểu nhầm
- Khai báo biến cần quan tâm ý đến phạm vi
(14)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 GV: Phân tích câu trả lời học sinh giá trị
Giáo viên: Phùng Ngọc Thái
(15)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 GV: Trong viết chương trình ta thường
phải thực tính tốn, thực so sánh để đưa định xem làm việc gì? Trong viết chương trình có giống với ngơn ngữ tự nhiên khơng?
GV: Tốn học có phép toán nào?
HS: Đưa số phép tốn thường dùng tốn học
GV: Chúng có sử dụng ngơn ngữ lập trình khơng?
- Chỉ có số phép tốn dùng được, số phép toán phải xây dựng từ phép toán khác
- Ví dụ phép luỹ thừa khơng phải ngôn ngữ viết
- Mỗi ngôn ngữ khác lại có cách kí hiệu phép tốn khác
GV: Trong toán học, biểu thức gì? HS: Đưa khái niệm
GV: Đưa khái niệm biểu thức lập trình GV: Cách viết biểu thức lập trình có giống với cách viết tốn học hay khơng?
HS: Đưa ý kiến
GV: Phân tích ý kiến học sinh
GV: Đưa cách viết biểu thức thứ tự thực phép toán lập trình
GV: Cách viết biểu thức phụ thuộc vào ngơn ngữ lập trình
- Đưa số biểu thức toán học yêu cầu em viết chúng ngơn ngữ lập trình Pascal
- Gọi vài học sinh lên bảng làm GV: Muốn tính X2 ta làm nào?
HS: Có thể đưa là: x*x
GV: Như muốn tính x, Sinx, cosx, ta làm nào?
HS: Chưa biết cách tính
GV: Để tính giá trị đơn giản, người ta xây dựng sẵn chương trình thư viện chương trình giúp người lập trình tính tốn nhanh giá trị thông dụng
GV: Với hàm chuẩn cần quan tâm đến giá trị đối số kiểu giá trị trả
Ví dụ: Sinx đo độ hay radian?
GV: Trong lập trình thường ta phải so sánh hai giá trị trước thực lệnh
II) PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN 1 Phép Toán
* NLT Pascal sử dụng số phép toán sau: - Với số nguyên: +, - , *, Div, Mod
- Với số thực: +, - , *, /
- Các phép toán quan hệ: <, <=, >, >=, <> cho kết giá trị Logic (true false)
- Các phép toán logic: NOT, OR, AND thường dùng để kết hợp nhiều biểu thức quan hệ với
2 Biểu thức số học
* Là dãy phép toán +, - , *, /, div mod từ hằng, biến kiểu số hàm
- Dùng cặp dấu () để quy định trình tự tính tốn * Thứ tự thực phép tốn:
- Trong ngoặc trước, ngồi ngoặc sau - Nhân chia trước, cộng trừ sau
- Giá trị biểu thức có kiểu kiểu biến có miền giá trị lớn biểu thức 3 Hàm số học chuẩn
- Các ngơn ngữ lập trình thường cung cấp sẵn số hàm số học để tính số giá trị thông dụng
- Cách viết: Tên_hàm (đối số)
- Kết hàm phụ thuộc vào kiểu đối số - Đối số hàm hay nhiều biểu thức số học đặt dấu ngoặc () sau tên hàm
- Bản thân hàm coi biểu thức số học tham gia vào biểu thức toán hạng
* Bảng số hàm chuẩn:
Học sinh xem SGK 4 Biểu thức quan hệ * Có dạng sau:
<Biểu thức 1> <phép tốn quan hệ> <Biểu thức 2>
- Trong đó: Biểu thức biểu thức phải kiểu
- Kết biểu thức quan hệ True False
- Ví dụ: a>b 2*c<3*a 5 Biểu thức Logic
- Biểu thức Logic đơn giản biến Logic
- Ví dụ: a, b, c cạnh tam giác thoã
(16)TRƯỜNG THPT QUANG OAI
Giáo án Tin học 11 – năm học 2010 – 2011 Biểu thức quan hệ cịn coi biểu
thức so sánh giá trị cho kết True False
Ví dụ: 3>5 cho kết False
GV: Muốn so sánh nhiều giá trị lúc làm nào?
HS: đưa ý kiến (dùng biểu thức quan hệ and, or )
- Đưa ví dụ cách viết NLT Pascal
- Mỗi NLT có cách viết lệnh gán khác GV: Cần ý đến điều viết lệnh gán? HS: Đưa ý kiến
GV: phân tích câu trả lời học sinh sau tổng hợp lại: Cần ý đến kiểu biến kiểu biểu thức
GV: Minh hoạ vài lệnh gán ví dụ trực quan bảng hình
mãn điều kiện:
(a+b>c) and (b+c>a) and (c+a>b) 6 Câu lệnh gán
- Lệnh gán cấu trúc ngôn ngữ lập trình, thường dùng để gán giá trị cho biến - Cấu trúc: Tên biến:=biểu thức;
- Trong biểu thức phải phù hợp với tên biến, nghĩa kiểu tên biến phải với kiểu biểu thức phải bao hàm kiểu biểu thức - Hoạt động lệnh gán: Tính giá trị biểu thức sau ghi giá trị vào tên biến
X1:=(- b + sqrt(delta))/(2*a); X2:=(- b - sqrt(delta))/(2*a);
4) CỦNG CỐ : Các kiểu liệu chuẩn: nguyên, thực, kí tự, lơgic Cách khai báo biến
5) BÀI TẬP VỀ NHÀ:
- Làm tập 1,2,3,4,5 sgk trang 35
- Xem trước bài: Các thủ tục chuẩn vào/ra đơn giản Soạn thảo, dịch, thực hiệu chỉnh chương trình
Giáo viên: Phùng Ngọc Thái
(17)IV RÚT KINH NGHIỆM, BỔ SUNG:
(18)(19)Ngày soạn : 20/9/2009 Ngày dạy : 22 /9/2009 Tiết PPCT :
§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, HIỆU CHỈNH CHƯƠNG TRÌNH I MỤC TIÊU
1 Về Kiến thức:
- Biết lệnh vào đơn giản để nhập thơng tin từ bàn phím đưa thơng tin hình
- Biết bước: soạn thảo, dịch, thực hiệu chỉnh chương trình - Biết số công cụ môi trường Turbo Pascal
2 Về Kỹ năng:
- Viết số lệnh vào đơn giản
- Bước đầu sử dụng chương trình dịch để phát lỗi
- Bước đầu chỉnh sửa chương trình dựa vào thơng báo lỗi chương trình dịch tính hợp lý kết thu
Về Thái độ: Thấy cần thiết thủ tục vào ra, sáng tạo vận dụng vào toán đơn giản
II CHUẨN BỊ:
Giáo viên: Soạn giáo án, sách giáo khoa, sách tập, tài liệu tham khảo Máy tính ( có)
Học sinh: Các kiến thức học trước. III HOẠT ĐỘNG DẠY HỌC:
1) Ổn định tổ chức: Kiểm tra sĩ số lớp 2) Kiểm tra cũ ( ‘)
2HS làm độc lập: Cho M, N biến nguyên Điều kiện xác định M, N đồng thời số chẵn đồng thời số lẻ thể Pascal nào?
Đ/a: ((M mod = 0) and (N mod = 0)) Or ((M mod =1) and (N mod = 1)) 3) Giảng mới:
(20)1 Nêu vđ: Khi giải toán, ta phải đưa liệu vào máy tính xữ lí Để chtrình giải nhiều toán hơn, ta phải sử dụng thủ tục nhập liệu
- Y/cầu Hs n/cứu Sgk cho biết cấu trúc chung thủ tục nhập liệu NNLT Pascal: - HS : N/cứu Sgk trả lời:
Ví dụ: viết chtrình giải ptrình: Ax2 + Bx +
C = 0, ta phải nhập vào đại lượng nào? viết lệnh nhập?
Suy nghĩ, trả lời: phải nhập giá trị vào biến A, B, C Lệnhnhập:Readln(A,B,C);
Treo bảng chứa chtrình Pascal đơn giản có lệnh nhập giá trị cho biến
Hỏi: Khi nhập giá trị cho nhiều biến, ta phải thực nào?
HS : Các giá trị phải cách dấu cách (Space) kí tự xuống dịng (Enter)
Hỏi: Lệnh Read Readln khác nào?
- Suy nghĩ, trả lời : Read: …… Readln: …… GV : Sau xữ lí xong, để nhìn thấy kết ta phải dùng thủ tục xuất liệu Y/cầu hs n/cứu Sgk cho biết cấu trúc chung thủ tục xuất liệu NNLT Pascal - N/cứu Sgk trả lời
Ví dụ: Khi viết CT giải pt: ax+b=0, ta phải đưa hình gtrị nghiệm -b/a, ta phải viết lệnh nào?
HS : Writeln(-b/a);
Để nhập giá trị cho biến từ bàn phím, ta thường đưa thêm câu dẫn dắt sau đến câu lệnh nhập Bằng cách dùng cặp thủ tục write read
Ví dụ: Write(‘Moi ban nhap so:’); Hỏi: chức câu lệnh writeln();
Viết hình dịng chữ đưa trỏ xuống dòng
Giới thiệu số tập tin cần thiết để Turbo pascal chạy được, hướng dẫn học sinh khởi động Pascal máy tính Học sinh ý lắng nghe theo dõi hình minh họa
Giới thiệu thành phần hình soạn thảo (màn hình làm việc)
§7 CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN
1 Nhập liệu vào từ bàn phím
Ta sử dụng thủ tục chuẩn read readln có cấu trúc sau:
read(<biến 1>,…,<biến n>); readln(<biến 1>,…,<biến n>); Ví dụ 1:
read(n);
readln(A,B,C);
* Chú ý: khi nhập giá trị cho nhiều biến thì những giá trị gõ cách dấu cách hoặc kí tự xuống dịng (phím Enter).
2 Đưa liệu hình
Để đưa liệu hình vị trí trỏ, ta dùng thủ tục write writeln với cấu trúc: Write(<giá trị 1>,…<giá trị n>); Writeln(<giá trị 1>,…<giá trị n>);
Trong đó: giá trị biến đơn, biểu thức, tên hàm hằng
Ví dụ : xét chương trình sau Program vd;
Uses crt; Var tuoi:byte; Begin
Clrscr;
Write(‘Moi ban nhap so:’);readln(a,b,c) Write(‘Ban vua nhap so:’,a,b,c); Write(‘Ban go ENTER de ket thuc’); Readln;
End
Ghi chú: - Các thủ tục readln writeln khơng có tham số
- Quy cách đưa thông tin ra: Kết số thực :<độ rộng>:<số chữ số thập phân>
Kết khác :<độ rộng>
Độ rộng số chữ số thập phân nguyên dương
Ví dụ:
Writeln(n:5,x:6:2); Write(i:3,j:4,a+b:8:3);
§8 SOẠN THẢO, DỊCH, THỰC HIỆN, HIỆU CHỈNH CHƯƠNG TRÌNH
Một số thao tác thường dùng: + Lưu chương trình: F2
+ Mở file có: F3
(21)4) CỦNG CỐ : Trình số thao tác thường dùng soạn thảo chương trình? Khi viết read(x,y,z); write(‘x’,y,z); có ý nghĩa nào?
5) BÀI TẬP VỀ NHÀ: So sánh giống khác cặp lệnh write()/writeln() read()/readln()
- Làm tập 9, 10 sgk trang36
(22)(23)Ngày soạn : 26/9/2009 Ngày dạy : 29/8/2009, 16/10/2009 Tiết PPCT : 7-
BÀI TẬP THỰC HÀNH SỐ 1 I MỤC TIÊU
1 Kiến thức
- Biết chtrình Pascal hoàn chỉnh
- Làm quen dịch vụ chủ yếu Turbo Pascal việc soạn thảo, lưu, dịch, thực chtrình 2 Kĩ năng
- Soạn thảo chtrình, lưu lên đĩa, dịch lỗi cú pháp, thực tìm lỗi thuật tốn hiệu chỉnh - Bước dầu biết phântích hồn thành chtrình đơn giản 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 Giáo viên: Phong máy vi tính cài đầy đủ Turbo Pascal, projector để hướng dẫn 2 Học sinh: Sgk, sách tập tập viết nhà
III HOẠT ĐỘNG DẠY HỌC
1 Hoạt động 1: (8 phút) Kiểm tra cũ
Hoạt động GV HS Nội dung
Viết chtrình nhập vào số tính bình phương của số đó.
Cho hs xung phong lên bảng Nhận xét, đánh giá, cho điểm
Chtrình đạt yêu cầu: Var x, y: integer;
Begin
Write(‘nhap vao so ’); readln(x); Y:= sqr(y);
Write(y); readln
End. 2 Hoạt động 2: (30phút)Tìm hiểu chtrì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: real;
Begin
Clrscr;
Write(’nhap a b c ’); Readln(a, b, c); D:= b*b-4*a*c;
X1:= (-b-sqrt(d))/(2*a); X2:= (-b+sqrt(d))/(2*a);
Writeln(’x1=’,x1:6:2,’ x2=’,x2:6:2); Readln
End.
b Các bước tiến hành:
Hoạt động GV HS Nội dung
1. Chiếu chtrình lên bảng Y/cầu hs thực nhiệm vụ:
- Soạn chtrình vào máy - Lưu chtrình
- Dịch lỗi cú pháp - Thực chtrình
- Nhập liệu -3 Thông báo kết - Trở hình soạn thảo
Program Giai_pt;
Uses crt;
Var a, b, c, d, x1, x2: real;
Begin
Clrscr;
(24)- Thực chtrình
- Nhập liệu Thơng báo kết - Vì có lỗi xuất hiện?
HS:
1. Quan sát chtrình, đọc lập soạn vào máy F2
Alt+F9 Ctrl+F9
x1=1.00 x2=2.00 Enter
Ctrl+F9 Thông báo lỗi
Do bậc hai số âm
X1:= (-b-sqrt(d))/(2*a); X2:= (-b+sqrt(d))/(2*a);
Writeln(’x1=’,x1:6:2,’ x2=’, x2:6:2); Readln
End.
3 Hoạt động 3: (45 phút)Rèn luyện kĩ lập chương trình
a Mục tiêu: Hs soạn, lưu, dịch thực chương trình
b Nội dung: Viết chương trình nhập từ bàn phím số thực a b, tính đưa hình trung bình cộng bình phương hai số
c Các bước tiến hành:
Hoạt động GV HS Nội dung
1. Định hướng để hs phân tích tốn - Dữ liệu vào:
- Dữ liệu ra: - Cách tính: HS :
1 Phân tích theo yêu cầu gv - Dữ liệu vào: a b
- Dữ liệu ra: tb - tb =(a2+b2)/2
GV: 2. Y/cầu hs tự sọan chtrình lưu lên máy HS: 2. Thực y/cầu gv
- Soạn chtrình
- F2, gõ tên file để lưu - Alt+F9 : biên dịch lỗi - Ctrl+F9: t/hiện chtrình
Quan sát hướng dẫn nhóm hs lúc thực hành
Bài tốn: Viết chương trình nhập từ bàn phím số thực a b, tính đưa hình trung bình cộng bình phương hai số
- nhập liệu thơng báo kết - Với a=5, b=7
- Với a=7, b=-5
-Nhập liệu theo y/cầu - Với a=5, b=7 tb=37 - Với a=7, b=-5thì tb=37
IV ĐÁNH GIÁ CUỐI BÀI (7phút) 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; xác định thuật tốn; soạn thảo chtrình vào máy; lưu trữ chtrình; biên dịch chtrình; thực hiệu chỉnh chtrình
(25)Ngày soạn : 11 /10/2009 Ngày dạy : 13 /10/2009 Tiết PPCT :
BÀI TẬP I MỤC TIÊU
1 Kiến thức: Biết phânbiệt loại biểu thức NNLT
2 Kĩ năng: Viết biểu thức số học logic với phép tốn thơng dụng II ĐỒ DÙNG DẠY HỌC
1 Giáo viên: giải tập sgk 2 Học sinh: sgk
III HOẠT ĐỘNG DẠY HỌC
1 Hoạt động 2: (10 phút) Bài tập 8/sgk/36
a Mục tiêu: Xây dựng biểu thức logic làm điều kiện để giải số toán đơn giản
b Nội dung: Viết biểu thức lôgic cho kết True tọa độ (x, y) điểm nằm vùng gạch chéo kể biên hình 2.a 2.b (trang 36/sgk)
c Các bước tiến hành:
Hoạt động GV HS Nội Dung
Tóm tắt lí thuyết
Nhắc lại số Nội dung phần chương II Tại phải khai báo biến?
Trong Pascal, biến nhận giá trị phạm vi từ đến 25252 biến nhận khai báo kiểu liệu nào?
1 Hình 2.a:
Y/cầu hs quan sát hình trả lời câu hỏi: - Giá trị y vùng gạch chéo?
- Giá trị x vùng gạch chéo? HS: Quan sát hình trả lời
0<=y<=1 -1<=x<=1
- Điểm A(x,y) x, y có quan hệ nào? HS: |x|<=y
- Y/cầu hs từ biểu thức quan hệ viết bthức lôgic theo yêu cầu đề?
HS: (|x|<=y) and ((x>=-1)and (x<=1)) and ((y>=0) andy<=1)
- Phân tích giá trị x, y để đơn giản biểu thức (y<=1) and (abs(x)<=y)
Chú ý lắng nghe, để ý cách xác định giá trị đúng.Tự làm 2 Hình 2.b
Y/cầu hs tự làm, tương tự hình 2.a
Bài tập làm thêm :Hãy chuyển biểu thức toán học sang Pascal
a 2x2 - 5x + = 0; b (1+x3)( 1
x ); c (4 3 1
x )(| x- 3|);
d 2 ) ( x x x x e
- Một chương trình thường gồm có phần: Phần khai báo phần thân chương trình, phần báo có khơng
- Kiểu liệu chuẩn: Kiểu nguyên, kiểu thực, kiểu kí tự kiểu logic - Các biến chương trình phải khai báo biến khai báo lần
- Các phép toán: Số học, quan hệ logic
- Các loại biểu thức: Số học, quan hệ logic
- Các ngơn ngữ lập trình có:
+ Lệnh gán dùng để gán giá trị biểu thức cho biến
+ Các thủ tục chuẩn dùng để đưa liệu vào
Câu hỏi tập Bài tập 8/sgk/36
ĐS: (y<=1) and (abs(x)<=y) Bài tập làm thêm
a. 2*x*x-5*x-1=0 b. (1+x*x*x)*sqrt(x-1)
c. Sqrt(sqrt(3*x*x+1))*abs(x-3) d. (2*x*x-5*x+2)/(1-(2*x*x*x/
(26)) )(
(
y
x
IV ĐÁNH GIÁ CUỐI BÀI (5phút) 1 Nội dung học
2 Câu hỏi, tập nhà
Xem trước bài: Cấu trúc rẽ nhánh, sgk trang 38 V RÚT KINH NGHIỆM, BỔ SUNG:
(27)Ngày soạn : 18/10/2009 Ngày dạy : 19 /10/2009 Tiết PPCT : 10
KIỂM TRA TIẾT
I MỤC TIÊU
1 Kiến thức: Củng cố kiến thức ngơn ngữ lập trình, cấu trúc chương trình, khai báo biến, biểu thức Pascal, câu lệnh vào đơn giản
2 Kĩ năng: Viết biểu thức số học Toán học sang dạng tương ứng Pascal ngược lại, viết chương trình đơn giản
3 Thái độ:Nghiêm túc làm II ĐỒ DÙNG DẠY HỌC
1 Giáo viên: Đề kiểm tra, đáp án, biểu điểm cho lớp 2 Học sinh: ôn lại kiến thức học
III HOẠT ĐỘNG DẠY HỌC 1 Hoạt động 1: (5 phút) Ghi đề
Đề 1: (lớp 11A1)
Câu 1: (3 điểm) Biến gì? Viết cấu trúc khai báo biến Pascal lấy ví dụ minh hoạ? Câu 2: (3 điểm) : Hãy viết biểu thức toán học sau sang dạng tương ứng Pascal:
a)x + yz; b)-1 ≤ cosx ≤ c)| x3 +
x x |
Câu 3: (4 điểm) Viết chương trình Pascal đưa hình dịng chữ : “Lop 11a1 xin chao cac ban”
Đề 2: (lớp 11A2)
Câu 1: (3 điểm) Nêu thành phần ngơn ngữ lập trình Phân biệt tên chuẩn tên dành riêng Câu 2: (4 điểm) : Hãy viết biểu thức toán học sau sang dạng tương ứng Pascal:
a) x yxy b) 2 x x( 1)
c) | x +
x x | d) x
y x
Câu 3: (3 điểm) Viết chương trình Pascal đưa hình dòng chữ : “Lop 11a2 xin chao cac ban”
Đề 3: (lớp 11A3)
Câu 1: (3 điểm) Nêu chức chương trình dịch Phân biệt trình thông dịch biên dịch Câu 2: (4 điểm) : Hãy viết biểu thức toán học sau sang dạng tương ứng Pascal:
a) xy + b) x yxy c) x2 y2 R2
d) | x + x x |
Câu 3: (3 điểm) Viết chương trình Pascal đưa hình dòng chữ : “Lop 11a3 xin chao cac ban” ĐÁP ÁN, BIỂU ĐIỂM, HƯỚNG DẪN CHẤM (ĐỀ 1)
(28)Câu :
Biến đại lượng đặt tên dùng để lưu trữ giá trị giá trị thay đổi trình thực chương trình
Cấu trúc khai báo biến :
Var <danh sách biến> : <kiể liệu>; Ví dụ : Var a: integer;
1,5 điểm 1,0 điểm 0,5 điểm Câu 2:
a) x + y*z;
b) -1 <= cos(x) and cos(x) <= c) Abs(x*x*x + sqrt(x+sqrt(x)))
1,0 điểm 1,0 điểm 1,0 điểm Câu 3:
Program vd; Begin
Write(‘Lop 11a1 xin chao cac ban’); End.
1,0 điểm 1,0 điểm 1,0 điểm 1,0 điểm IV ĐÁNH GIÁ CUỐI BÀI
1 Dặn dò nhà
(29)V RÚT KINH NGHIỆM, BỔ SUNG:
(30)Ngày soạn : 25 /10/2009 Ngày dạy : 27 /10/2009 Tiết PPCT : 11
CẤU TRÚC RẼ NHÁNH (t1/2) I.MỤC ĐÍCH YÊU CẦU:
Kiến thức:Giới thiệu tổ chức rẽ nhánh, cú pháp chức câu lệnh rẽ nhánh (dạnh thiếu dạng đầy đủ)
Kỹ năng:Rèn luyện kỹ sử dụng câu lệnh rẽ nhánh để viết chương trình có sử dụng câu lệnh
II.CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1 Đồ dùng dạy học: Máy tính điện tử
2.Phương pháp dạy học: Giải vấn đề
3.Sự chuẩn bị nhà: Các kiến thức học sinh học học trước III.TIẾN HÀNH BÀI DẠY:
1 Ổn định lớp:(2’) Vắng: Trể:
2.Dạy mới:(30 - 37’)
Hoạt động Giáo viên Học sinh Nội dung
Câu hỏi: Những câu nói sau có dạng mậnh đề gì?
Trả lời:
-Chiều mai trời khơng mưa Châu đến nhà Ngọc chơi
Câu nói có dạng: Nếu Thì
-Chiều mai trời khơng mưa Châu đến nhà Ngọc soạn bài, trời mưa Châu gọi điện cho Ngọc để trao đổi
Câu nói có dạng: Nếu Thì , Ngược lại Câu hỏi: Em vẽ sơ đồ khối toán Trả lời: HS lên bảng vã sơ đồ khối toán GV nhận xét
Câu hỏi: cú pháp hai câu lệnh, em giải thích thành phần câu lệnh
Trả lời:
IF, THEN, ELSE: Từ khoá
Điều kiện biểu thức logic biểu thức quan hệ tính giá trị điều kiện trả lại giá trị T F
Câu lệnh1, câu lệnh 2, câu lệnh câu lệnh học
Câu hỏi: Hãy vẽ sơ đồ khối minh hoạ thực câu lệnh IF
Trả lời:
I.RẼ NHÁNH:
Một hai việc cụ thể chắn xảy ra, việc hay việc hai thực tuỳ thuộc vào điều kiện cụ thể có thảo mãn hay khơng
Các mênh đề rẽ nhánh thường có dạng: Nếu Thì
Nếu Thì Nếu khơng
Ví dụ: Thuật tốn giải biện luận phương trình bậc ax + b =
Bước 1: Nhập a, b
Bước 2: Nếu a<>0 x:=-b/abước Ngược lại bước
Bước 3: Nếu b<>0 thơng báo phương trình vơ nghiệm
Ngược lại thơng báo phương trình vơ số nghiệm
Bước 4: Đưa x hình II.CÂU LỆNH IF THEN 1.Cú pháp:
a)Dạng thiếu:
IF <Điều kiện> THEN<Câu lênh>; b)Dạng đủ:
IF <Điều kiện> THEN <Câu lệnh 1> ELSE <Câu lệnh 2>;
Trong đó:
IF, THEN, ELSE từ khoá
Điều kiện: Là biểu thức Logic biểu thức quan hệ
(31)a)Dạng thiếu:
b)Dạng đủ:
câu lệnh 2.Sự thực hiện: a)Dạng thiếu:
Bước 1: Tính giá trị biểu thức điều kiện
Bước 2: Kiểm tra giá trị cảu biểu thức điều kiện
-Nếu biểu thức đk có giá trị thực câu lệnh sau từ khoá THEN, thoát khỏi câu lệnh IF
-Nêu biểu thức đk có giá trị F khỏi câu lệnh IF
b)Dạng đủ
Bước 1: Tính giá trị biểu thức điều kiện
Bước 2: Kiểm tra giá trị cảu biểu thức điều kiện
-Nếu biểu thức đk có giá trị thực câu lệnh sau từ khoá THEN, thoát khỏi câu lệnh IF
-Nêu biểu thức đk có giá trị F thực câu lệnh 2, thoát khỏi câu lệnh IF
3.Hoạt động củng cố:(1-3’) Nhắc lại cú pháp chức câu lệnh rẽ nhánh dạng khuyết câu lệnh rẽ nhánh dạng đủ
4.Hướng dẫn học sinh nhà:(2-3’)
- Học nội dung: Cú pháp chức cảu câu lệnh rẽ nhánh - Bài tập: 1/SGK
- Chuẩn bị mới: Sau Then ELSE sử dụng từ hai câu lệnh trở lên không, làm nào?
Điều kiệnĐúng Câu lệnh
Kết thúc
Điều kiệnĐúng Câu lệnh
(32)Ngày soạn : 25 /10/2009 Ngày dạy : /11/2009 Tiết PPCT : 12
CẤU TRÚC RẼ NHÁNH (t2/2) I.MỤC ĐÍCH YÊU CẦU:
Kiến thức:Giới thiệu cú pháp chức câu lệnh ghép số ví dụ minh hoạ
Kỹ năng:Rèn luyện kỹ sử dụng câu lệnh ghép sau từ kháo THEN ELSE có từ câu lệnh trở lên
II.CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1 Đồ dùng dạy học: Máy tính điện tử
2.Phương pháp dạy học: Giải vấn đề
3.Sự chuẩn bị nhà: Các kiến thức học sinh học học trước III.TIẾN HÀNH BÀI DẠY:
1 Ổn định lớp:(2’) Vắng: Trể:
2.Kiểm tra củ( 5-7’):
1 Nêu cú pháp chức câu lệnh rẽ nhánh dạng khuyết? 2.Nêu cú pháp chức câu lệnh rẽ nhánh dạng đầy đủ? 2.Dạy mới:(30 - 37’)
Hoạt động Giáo viên Học sinh Nội dung
Câu hỏi: Sau THEN ELSE viết câu lệnh
Trả lời: Chỉ câu lệnh
GV: TỶong trường hợp sau THEN ELSE ta có từ câu lệnh trở lên ta phải ghép chúng lại thành nhóm nằm từ khố Begin end gọi câu lệnh ghép
Câu hỏi: Câu lệnh ghep xem câu lệnh
Trả lời: Là câu lệnh
GV: Gọi hoc sinh lên bảng viết chương trình tốn
Có thể viết máy tính để thực thử GV: Gọi HS lên chạy chương trình sữa lỗi
Cho HS chép vào
III.CÂU LỆNH GHÉP:
Khi sau THEN sau ELSE có từ câu lệnh trở lên ta phải ghép chúng lại thành nhóm nằm từ khố BEGIN END
1.Cú pháp: BEGIN CL1; CL2; CLn END;
2.Giải thích:
BEGIN, END: Từ khoá
CL1, CL2, , CLn câu lệnh IV.MỘT SỐ VÍ DỤ:
1.Ví dụ 1: Tìm nghiệm phương trình bậc 2: ax2 + bx + c = với a<>0
PROGRAM vidu1;
VAR a,b,c,x,x1,x2,delta:real; BEGIN
Write(‘nhap a,b,a’); readln(a,b,c); Delta:=b*b-4*a*c;
IF delta <0 THEN writeln(‘phuong trinh vo nghiem’)
ELSE IF delta=0 THEN Begin
X:=-b/2*a;
(33)GV: Gọi hoc sinh lên bảng viết chương trình tốn
Có thể viết máy tính để thực thử GV: Gọi HS lên chạy chương trình sữa lỗi
Cho HS chép vào
ELSE Begin
X1:=(-b-sqrt(delta))/2*a; X2:=(-b+sqrt(delta))/2*a; End;
Readln END
2.Ví dụ 2: Chương trình tìm nghiệm phương trình bậc ax + b =
PROGRAM vidu2; VAR a,b,x:real; BEGIN
Write(‘nhap a,b’); readln(a,b); IF a<>0 THEN
Begin
X:=-b/a;
writeln(‘phuongtrinh co nghiem la:’,x:8:2);
End
ELSE IF b=0 THEN writeln(‘phuong trinh vo so nghiem’)
Else writeln(‘phuong trinh vo nghiem’)
Readln END
4.Hoạt động củng cố:(1-3’) Nhắc lại cú pháp chức câu lệnh rẽ nhánh dạng khuyết câu lệnh rẽ nhánh dạng đủ
5.Hướng dẫn học sinh nhà:(2-3’)
- Học nội dung: Cú pháp chức câu lệnh rẽ nhánh - Bài tập: 5/SGK
(34)Ngày soạn : /11/2009 Ngày dạy : 10 /11/2009 Tiết PPCT : 13
CẤU TRÚC LẶP (tiết 1/2) I MỤC TIÊU
1 Kiến thức
Hiểu nhu cầu cấu trúc lặp biễu diễn thuật toán
Biết cấu trúc chung lệnh lặp với số lần biết trước For NNLT Pascal Biết sử dụng dạng lệnh lặp For
2 Kĩ năng: Bước đầu sử dụng lệnh lặp For để lập trình giải số tốn đơn giản II ĐỒ DÙNG DẠY HỌC
1 Giáo viên: Máy vi tính, Projector, sgk, sgv 2 Học sinh: sgk
III HOẠT ĐỘNG DẠY HỌC 1 Ổn định lớp :
2 Kiểm tra cũ(7 phút)
1 Trình bày cấu trúc rẽ nhánh? Sự khác dạng rẽ nhánh đó? (HS1)
2. Viết CT nhập vào số a, b thực đưa hình giá trị số lớn hơn.(HS2) 3 Bài :
Hoạt động 1: (20 phút)Tìm hiểu ý nghĩa cấu trúc lặp
Hoạt động Giáo viên Học sinh Nội Dung
1 Nêu toán đặt vấn đề
HS: Chú ý quan sát toán đặt vấn đề
GV: Hãy xác định cơng thức tốn học để tính tổng - Có lần lặp vậy?
GY: - Rất khó xác định
- Mỗi lần lặp lượng bao nhiêu?
- Phải viết lệnh để thể việc này? HS: Theo dõi gợi ý
- Thực 100 lần - Mỗi lần đổ a i
- Viết 100 lệnh
Dẫn dắt: Chương trình viết 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 NNLT có cấu trúc điều khiển việc thực lặp lại với số lần định trước
Bài tốn 1:
Viết CT tính tổng
100 1 1 a a a a S
3 Hoạt động 3: (15 phút)Tìm hiểu lệnh lặp For NNLT Pascal
Hoạt động Giáo viên Học sinh Nội dung
1 Y/cầu hs n/cứu sgk vàcho biết cấu trúc chung lệnh For?
HS: Đọc sgk trả lời
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>
- Hỏi: Ý nghĩa <giá trị đầu>, <giá trị cuối>, kiẻu
a Dạng tiến
FOR <biến đếm>:= <giá trị đầu> TO <giá trị cuối> DO <lệnh cần lặp>;
Sơ đồ:
bđếm:= <gtrị đầu>
bđếm<=gtrị cuối Câu lệnh lặp bđếm :=bđếm +
Đ
(35)dữ liệu chúng?
- để làm giới hạn cho biến đếm, kiểu với biến đếm Trong btoán 1:<giá trị đầu>, <giá trị cuối> có giá trị bao nhiêu?
-<giá trị đầu> <giá trị cuối> 100
Dẫn dắt: lệnh cần lặp lại ta đặt sau DO Khi nhiều lệnh cần đặt sau Do ta phải viết nào?
- Hỏi: + Trong toán tiết kiệm lệnh cần lặp lại? - Sử dụng
câu lệnh ghép
+ Trong tốn tính tổng lệnh cần lặp lại? HS: S:= S + 0.015*S;
S:= S+1/(a+i);
- Hãy so sánh giá trị <giá trị đầu> <giá trị cuối>?
<giá trị đầu> ≤ <giá trị cuối>
Dẫn dắt: Khi câu lệnh For đgl For tiến, NNLT Pascal cịn có dạng ngược lại For lùi
2. Y/cầu hs trình bày cấu trúc For lùi
2 N/cứu sgk, suy nghĩ, so sánh với dạng 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>;
Hãy so sánh giá trị <giá trị đầu> <giá trị cuối>? HS: <giá trị đầu> ≤<giá trị cuối>
- Hai toán dùng lệnh For phù hợp? Sử dụng For tiến
b.Dạng lùi
FOR <biến đếm>:= <giá trị cuối> DOWNTO <giá trị đầu> DO <lệnh cần lặp>;
Sơ đồ:
IV ĐÁNH GIÁ CUỐI BÀI (3phút) 1 Nội dung học
Cấu trúc chung câu lệnh lặp For Sơ đồ thực lệnh lặp For 2 Câu hỏi, tập nhà
- Sử dụng câu lệnh For hồn thành chương trình tốn nêu đầu tiết - Giải tập 5a, sgk/51
- Xem trước phần ví dụ nội dung cấu trúc lặp có số lần biết trước V RÚT KINH NGHIỆM, BỔ SUNG:
bđếm:= <gtrị cuối>
bđếm>=gtrị đầu
Câu lệnh lặp bđếm :=bđếm -
Đ
(36)Ngày soạn : 14 /11/2009 Ngày dạy : 17 /11/2009 Tiết PPCT : 14
CẤU TRÚC LẶP (tiết 2/2) I MỤC TIÊU
1 Kiến thức
- Biết ý nghĩa cấu trúc lặp có số lần lặp chưa biết trước - Biết cấu trúc chung lệnh lặp While NNLT Pascal 2 Kĩ năng
- 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ố toán đơn giản II ĐỒ DÙNG DẠY HỌC
1 Giáo viên: Sgk, sgv, bảng phụ 2 Học sinh : Lặp với số lần biết trước III HOẠT ĐỘNG DẠY HỌC
1 Hoạt động 1: (10 phút) Tìm hiểu ý nghĩa cấu trúc lặp có số lần chưa biết trước
Hoạt động Giáo viên Học sinh Nội Dung
GV: -Sự khác toán với toán giải tiết trước? - Lặp lần?
- Lặp đến nào?
HS: -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
- Cho đến điều kiện 0.001 N
a thõa mãn
Tóm lại, qua ví dụ ta thấy có dạng tốn có lặp lại của câu lệnh khơng biết 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 đó.
2 Hoạt động 2: (15 phút) Tìm hiểu cấu trúc lệnh lặp While NNLT Pascal
Hoạt động Giáo viên Học sinh Nội Dung
1. Y/cầu hs n/cứu sgk cho biết cấu trúc chung lệnh lặp While
HS: Tham khảo sgk trả lời Cấu trúc:
While <điều kiện> Do <lệnh cần lặp
Giải thích:
<điều kiện>: biểu thức quan hệ biểu thức logic <lệnh cần lặp>: lệnh cần phải lặp lại
Hỏi:
- Điều kiện để lặp lại tốn gì? - Trong tốn lệnh cần lặp gì?
HS: 0.001 i
a
S := S + 1/(a+I); để tính tổng I := I + 1; để tăng số
Dựa vào cấu trúc, cho biết máy thực tính <điều kiện> trước hay <lệnh cần lặp> trước?
3 Câu lệnh While …Do Cấu trúc:
While <điều kiện> Do <lệnh cần lặp>; Sơ đồ thực hiện:
* Trong <lệnh cần lặp> phải có lệnh thay đổi biến số (để thay đổi giá trị <điều kiện>)
điều kiện
(37)- Sự khác lệnh cần lặp For While gì? HS Suy nghĩ trả lời:
Tính điều kiện trước, thực lệnh lặp sau - Trong While phải có lệnh thay đổi biến số 2. Y/cầu hs vẽ sơ đồ thực lên bảng
HS Lên bảng vẽ sơ đồ thực lệnh While -Nhận xét sai bổ sung
* Chú ý lắng nghe ghi nhớ - Gọi hs khác nhận xét
* Treo sơ đồ mẫu giải thích
3 Hoạt động 3: (15 phút) Rèn luyện kĩ vận dụng lệnh lặp While
Hoạt động Giáo viên Học sinh Nội Dung
1 Trở lại toán
- Đã xác định <điều kiện>, <lệnh cần lặp> viết câu lệnh While hoàn chỉnh?
1 HS Quan sát, xác định lại thành phần trả lời: While A< B Do
begin
A := A + 0.015*A; T := T + 1;
end;
1hs lên bảng trình bày, hs khác N/xét Đúng–Sai, bổ sung * Ghi nhớ phần sửa chữa gviên
- Chia lớp theo bàn Y/cầu hs bàn thảo luận viết chương trình hồn thiện
- Cho hs lên bảng trình bày - Gọi 1- 2hs khác n/xét, đánh giá
* Chính xác hóa chương trình cho lớp (chỉnh sửa lại chtrình của hs)
2 Nêu nội dung ví dụ
Phân tích để xác định <điều kiện> <lệnh cần lặp> Hỏi:
- Điều kiện để tiếp tục lặp gì? Gợi ý: Điều kiện: M<>N
- Các lệnh cần lặp gì? Gợi ý: M := M – N; N := N – M;
- Y/cầu hs nêu thuật toán tìm ucln số - T/tốn:
B1: Nếu m=n ucln=m, dừng;
B2: Nếu m>n m:=m-n ngược lại n:=n-m, qlại B1 HS Suy nghĩ trả lời:
+ Điều kiện để lặp lại + Những lệnh cần lặp lại
- Y/cầu hs viết chương trình hồn thiện tốn nhà
Củng cố: Hãy nêu câu hỏi cần đặt gặp tốn dạng này?
Ví dụ 1:
Var A, B: extended; T: byte;
Begin
Write(‘So tien ban dau A: ’);
Readln( A);
Write(‘So tien can co B(B>A): ’);
Readln(B); T := 0;
While A< B Do begin
A := A + 0.015*A;
T := T + 1;
end;
Writeln(‘Phai cho ’,T,’ thang’);
Readln
End.
IV ĐÁNH GIÁ CUỐI BÀI (5phút)
(38)2 Câu hỏi, tập nhà
- Giải tập 5b, 7, sgk trang 51
(39)(40)Ngày soạn : 21 /11/2009 Ngày dạy : 24 /11/2009 Tiết PPCT : 15
BÀI TẬP VÀ THỰC HÀNH SỐ 2(T1) I MỤC TIÊU
1 Kiến thức
Sử dụng lệnh lặp For để giải toán đơn giản 2 Kĩ năng
Vận dụng đắn dạng lệnh lặp For
Viết lệnh lặp For để mơ tả thuật tốn số toán đơn giản II ĐỒ DÙNG DẠY HỌC
1 Giáo viên: Giáo án, sgk, Projector, bảng phụ chứa chương trình mẫu 2 Học sinh: sgk
III HOẠT ĐỘNG DẠY HỌC 1 Ổn định lớp :
2 Kiểm tra cũ(7 phút)
Trình bày dạng cấu trúc câu lệnh lặp với số lần biết trước? 3 Bài :
Hoạt động 1: (15 phút) Rèn luyện kĩ vận dụng câu lệnh For câu lệnh rẽ nhánh If
Hoạt động Giáo viên Học sinh Nội Dung
Dẫn dắt: Từ toán KTBC trên, ta y/cầu tính đưa hình tổng số chẵn tổng số lẻ phạm vi từ a đến b
- Nội dung (sửa lại nội dung đề toán) Y/cầu hs phân tích đề trả lời câu hỏi - So sánh với tốn trước có khác? -Lắng nghe, phân tích tốn trả lời
-Tl: tính tổng số chẵn tổng số lẻ riêng - Ta cần đưa hình giá trị?
-Tl: giá trị (S1: tổng chẵn; S2: tổng lẻ)
- Việc cần thực câu lệnh lặp gì? Tl:
Kiểm tra biến đếm i : i chẵn S1:=S1+i ngược lại (i lẻ)thì S2:=S2+i
- Hãy mơ tả việc lệnh lặp For? Đứng chổ trả lời:
For I:=a To b Do If I mod =0 then S1:=S1+I else S2:=S2+I ;
- Y/cầu hs lớp tự hoàn thành chương trình Cho hs lên bảng trình bày
* Chuẩn hóa lại làm hs chương trình mẫu (treo chtrình chuẩn bị bảng phụ)
Quan sát chtrình giáo viên ghi nhớ
BÀI TẬP
Bài 1: Viết CT nhập vào số nguyên dương a, b (a<b), tính đưa hình tổng số chẵn tổng số lẻ phạm vi từ a đến b Var a, b, i , S1, S2 : longint;
Begin
Write(‘Nhap a va b (a<b): ‘);
Readln(a, b); S1 := 0; S2 := 0; For i := a To b Do
If i mod =
then S1 := S1 + i else S2 := S2 + i; Writeln(‘Tong chan: ’, S1,
’ Tong le: ’,S2); Readln
End.
Hoạt động 2: (20 phút) Tiếp tục vận dụng câu lệnh lặp For để giải toán đơn giản
Hoạt động Giáo viên Học sinh Nội Dung
(41)- Cách tính tiền gửi tiết kiệm hàng tháng nào? Tl: Với số tiền S, sau tháng có lãi là: 0.015*S
Số tiền cộng vào số tiền ban đầu để tính lãi cho tháng
- Vậy, cơng thức tính tiền thu sau tháng nào? Tl: S := S + 0.015*S;
- câu lệnh lặp lặp lần? Tl: 12 lần
- Xác định giá trị đầu giá trị cuối câu lệnh For để thực việc lặp trên?
Tl: gtrị đầu 1; gtrị cuối 12
2. Y/cầu hs viết chương trình vào vở, cho hs trình bày lên bảng * Chuẩn hóa lại làm hs chương trình mẫu (treo chtrình chuẩn bị bảng phụ)
2. Thảo luận tự viết chương trình Quan sát chtrình giáo viên ghi nhớ 3. (Nếu thời gian)
Hỏi sau 12 tháng gửi (không rút tiền lãi hàng tháng), ông ta số tiền nhiều số tiền ban đầu bao nhiêu?
Ta phải sửa lại chtrình nào? 3. Suy nghĩ trả lời
ông gửi tiết kiệm ngân hàng với lãi suất 1.5%/tháng Hỏi sau 12 tháng gửi (không rút tiền lãi hàng tháng), ông ta số tiền bao nhiêu?
Var s:real; i:byte;
Begin
Write(‘So tien ban dau: ’); Readln(S);
For i:= To 12 Do
S:= S + 0.015*S; Writeln(‘So tien nhan duoc
la: ’,S:8:3); Readln
End. IV ĐÁNH GIÁ CUỐI BÀI (3phút)
Câu hỏi, tập nhà
Làm số sách tập Tin học 11: 3.23, 3.29; 3.31
Xem trước phần nội dung cấu trúc lặp với số lần chưa biết trước While V RÚT KINH NGHIỆM, BỔ SUNG:
(42)Ngày soạn : 30 /11/2009 Ngày dạy : 1/12/2009 Tiết PPCT : 17- Tuần 16
ƠN TẬP HỌC KÌ I
I MỤC TIÊU. Kiến thức
- Học sinh nắm toàn kiến thức học từ đầu năm học đến Kĩ năng
- Rèn luyện kĩ nhận xét, phân tích tốn II Đồ dùng dạy học
Chuẩn bị giáo viên
- Máy chiếu qua đầu, bìa trong, sách giáo khoa Chuẩn bị học sinh.
- Sách giáo khoa, số chương trình tập III Hoạt động dạy – học
Hoạt động 1: Nhắc lại kiến thức cũ học a Mục tiêu:
- Học sinh nhớ lại kiến thức lí thuyết học b Nội dung:
- Khái niệm lập trình ngơn ngữ lập trình
- Có hai loại chương trình dịch: Biên dịch thông dịch
- Các thành phần ngơn ngữ lập trình: Bảng chữ cái, cú pháp ngữ nghĩa - Các khái niệm: Tên, biến, thích
- Cấu trúc chương trình Pascal: Phần khai báo phần thân - Các kiểu liệu chuẩn: Số nguyên, số thực, kí tự, logic - Phép tốn, biểu thức, lệnh gán
- Tổ chức vào/ra - Cấu trúc rẽ nhánh - Cấu trúc lặp
c Các bước tiến hành:
Hoạt động Giáo viên Học sinh Nội Dung
Đặt câu hỏi gợi ý để học sinh tự nhắc lại kiến thức học
HS Chú ý, theo dõi trả lời câu hỏi
- Em hiểu lập trình ngơn ngữ lập trình?
- Các loại chương trình dịch?
- Các thành phần ngôn ngữ lập trình?
- Các khái niệm ngơn ngữ lập trình? - Cấu trúc chung chương trình TP?
- Nêu tên kiểu liệu chuẩn? - Nêu nhóm phép tốn học?
- Các loại biểu thức?
- Chức thực lệnh gán? - Nêu tên chức số hàm số
- Lập trình q trình diễn đạt thuật tốn ngơn ngữ lập trình
- Biên dịch thơng dịch
- Bảng chữ cái, cú pháp ngữ nghĩa - Khái niệm tên, biến, thích - Gồm hai phần: Phần khai báo phần thân - Số nguyên, số thực, kí tự, logic
- Phép toán số học, phép toán quan hệ, phép toán logic
- Biểu thức số học, biểu thức quan hệ biểu thức logic
- Dùng để tính tốn biểu thức gán giá trị cho biến
(43)học?
- Tổ chức vào/ra
- Tổ chức rẽ nhánh - Tổ chức lặp
tuyệt đối, hàm sin, hàm cos - Lệnh Read()/readln(); - Lệnh write()/writeln();
- If <BTĐK> then <lệnh 1> else <lệnh 2>; While <>
- Array Hoạt động 2: Rèn luyện kĩ năng.
a Mục tiêu:
- Học sinh biết nhận xét, phân tích giải hồn chỉnh tốn b Nội dung:
Viết chương tình nhập từ bàn phím số nguyên dương N (1<=N<=100) dãy số A gồm N số nguyên A1, A2, AN Các số A1 có giá trị tuyệt đối lớn 1000 Hãy đưa hình số lượng số
dương số lượng số âm dãy c Các bước tiến hành:
Hoạt động Giáo viên Học sinh Nội Dung
Xác định toán
- Chiếu nội dung đề lên bảng - Chia lớp thành nhóm
Nhóm 1: Nêu câu hỏi phân tích
Nhóm 2: Trả lời câu hỏi phân tích nhóm - Giáo viên góp ý bổ sung cho hai nhóm
rèn luyện kĩ lập trình - Chia lớp thành hai nhóm
- u cầu: Viết chương trình hồn thiện lên bìa
- Thu phiếu học tập, chiếu kết lên bảng Gọi học sinh nhóm khác nhận xét đánh giá bổ sung
Chuẩn hóa kiến thức chương trình mẫu giáo viên Thực chương trình, nhập liệu để học sinh thấy kết chương trình
Quan sát, theo dõi đề định hướng giáo viên để xác định toán
- Nhóm 1:
+ Dữ liệu vào + Dữ liệu
+ Các nhiệm vụ phải thực
- Nhóm 2:
+ Số N N số nguyên
+ Số lượng số chẵn C số lẻ L + – Nhập liệu
– Đếm số lượng số chẵn, số lẻ – Đưa kết hình Làm việc theo nhóm
- Thảo luận theo nhóm để viết chương trình
- Báo cáo kết
- Nhận xét, đánh giá bổ sung thiếu sót nhóm khác
Theo dõi ghi nhớ IV ĐÁNH GIÁ CUỐI BÀI
1 Những nội dung học.
- Giáo viên yêu cầu học sinh nhắc lại số nội dung ơn tập tiết học
Câu hỏi bìa tập nhà: Chuẩn bị kiến thức cho tiết sau kiểm tra học kì 1: Xem lại tồn kiến thức ôn tập, đặc biệt trọng cấu trúc lặp rẽ nhánh
Ngày soạn : /12/2009 Ngày dạy : 9/12/2009
Tiết PPCT : 18- Tuần 17
KIỂM TRA HỌC KỲ I I.MỤC ĐÍCH YÊU CẦU:
(44) Kỹ năng:Nắm cấu trúc chương trình TP, cách khai báo thành phần chương trình TP, cú pháp chức câu lệnh TP làm kiểm tra giấy, câu lệnh có cấu trúc kiểu liệu có câu trúc
II.CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1 Đồ dùng dạy học: Đề kiểm tra GV phơtơ
2.Hình thức : Tự luận
3.Sự chuẩn bị nhà: Các kiến thức HS học học kỳ I III.TIẾN HÀNH BÀI DẠY:
1 Ổn định lớp:(2’) Vắng: Trể:
2.Dạy mới:(30 - 37’)
Kiến thức bản Hoạt động Thầy Trò
I.PHÁT ĐỀ:
II.HƯỚNG DẪN HỌC SINH LÀM BÀI: 1.Hướng dẫn:
2.Làm bài
III.THU BÀI:
Giáo viên phát dề cho HS theo hình thức A, B, C, D
HS làm giấy HS tự chuẩn bị Ghi chú: Đề kiểm tra đáp án trang sau
HS không cần viết lại đề
Làm phần tờ giấy HS chuẩn bị, ghi rõ làm đề
HS tiến hành làm tự luận
GV nhắc nhở để Hs làm nghiêm túc Nếu HS vi phạm quy chế thi tùy theo mức độ vi phạm mà có hình thức xử lý cụ thể
Hết làm HS nộp lại cho GV GV thu chấm
ĐỀ THI
Bài 1: ( 3điểm)
Chương trình dịch gì? Phân biệt hai q trình thơng dịch biên dịch? Bài 2: ( điểm)
Viết biểu thức Pascal sau sang dạng tương ứng Toán học: a) x * y / (x - z)
b) (N > 0) and (N ≤ 100) c) Sqr(x - 1) + sqr(x + 3) ≤ Bài 3: ( điểm)
Viết câu lệnh rẽ nhánh tính : a) 2x1 x0
2
x x x < b) x2 y2
x2y2 1 x y x2 y2 1
y x 1.2 x2 y2 1
y<x Bài 4: ( điểm)
y =
(45)Lập trình tính : 60
1
n
S
n
ĐÁP ÁN, BIỂU ĐIỂM, HƯỚNG DẪN CHẤM
Đáp án, hướng dẫn chấm Biểu điểm
Bài 1: (3điểm)
Chương trình dịch có chức chuyển đổi chương trình viết từ ngơn ngữ lập trình bậc cao thành chương trình thực máy tính
Phân biệt Thơng dịch Biên dịch:
- Thông dịch : Thực lăp lại bước : Kiểm tra tính đắn câu lệnh chương trình nguồn; chuyển đổi câu lệnh vừa kiểm tra sang ngôn ngữ máy thực
- Biên dịch : Thực qua hai bước : Duyệt, phát lỗi, kiểm tra tính đắn câu lệnh chương trình nguồn; Dịch tồn chương trình nguồn thành chương trình đích thực ngôn ngữ máy
1,0 điểm 1,0 điểm
1,0 điểm Bài 2:
(3điểm) Câu a)
* x y x z
1,0 điểm
Câu b) 0N 100 1,0 điểm
Câu c) 2
(x1) (y3) 4 1,0 điểm
Bài 3:
(2điểm) Câu a)Câu b) if (x < ) then y:= x*x + 2*x + 1 else y:= -2*x + 1,0 điểm
if(x*x + y*y < ) then if (y >= x) then z:= x + y else z:= 1.2
else z:= x*x + y*y; 1,0 điểm
Bài 4:
(2điểm) Program bt4; Uses crt; Var s: real; N: integer;
Begin
S: =0;
For n:=1 to 60 s:=s + 1.0/n; Writeln(‘Tong s la’, s);
Readln;
End
Hướng dẫn : Khai báo biến 0,5đ; gán giá trị ban đầu cho s 0,5đ; sử dụng vòng lăp For – (While – ) 1,0đ
0,5 điểm 0,5 điểm 1,0 điểm
Lưu ý : Trong q trình làm học sinh làm tắt số bước, đáp án chi tiết dành cho học sinh chưa giải đến kết cuối Nếu học sinh có cách giải khác mà yêu cầu toán cho điểm tối đa.
3.Hoạt động củng cố:(1-3’):Giáo viên thu bài, chấm, sữa đánh giá cho điểm làm HS 4.Hướng dẫn học sinh nhà:(2-3’)
(46)(47)Ngày soạn : 14 /12/2009 Ngày dạy : 15/12/2009 Tiết PPCT : 16- Tuần 18
BÀI THỰC HÀNH SỐ 2(t2) I MỤC TIÊ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ố ài 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 II ĐỒ DÙNG DẠY HỌC
1 Giáo viên: Phịng máy vi tính, Projector 2 Học sinh: Sgk, sbt, tập viết nhà III HOẠT ĐỘNG DẠY HỌC
1 Hoạt động 1: (35 phút) Làm quen với chương trình cơng cụ hiệu chỉnh chtrình
a Mục tiêu: Hs biết 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: thực bước, xem kết trung gian
b Nội dung: Viết chtrình nhập vào số nguyên dương a, b, c kiểm tra xem chúng có phải số Pitago hay không?
c Các bước tiến hành:
Hoạt động Giáo viên Học sinh Nội Dung
1 Gợi ý để hs nêu khái niệm số Pitago
1 Theo dõi dẫn dắt gv để nêu khái niệm số Pitago: tổng bình phương số bình phương số cịn lại
- Y/cầu hs cho ví dụ cụ thể?
- Phải sử dụng đẳng thức để kiểm tra số a, b, c số Pitago?
Ví dụ: a2=b2+c2
b2=a2+c2
c2=a2+b2
2. Chiếu chương trình mẫu lên bảng Thực mẫu thao tác: lưu, thực lệnh chtrình, xem kết trung gian, thực chtrình nhập liệu
- Y/cầu hs gõ chtrình vào máy
- Y/cầu hs lưu chtrình theo hdẫn sgk - Y/cầu hs thực lệnh chtrình
- Y/cầu hs xem kết trung gian a2, b2, c2 sổ Watches
- Y/cầu hs tìm thêm số a, b, c khác để thực chtrình so sánh
2. Soạn chtrình vào máy Nhấn F2, gõ tên file, Enter
Nhấn F7, nhập giá trị cho
a = 3, b = 5, c =
Làm theo hdẫn bảng
Quan sát qua trình rẽ nhánh liệu vào trả lời
* Xem kết trung gian + Vào Debug\ Watches,
+ nhấn phím Insert xuất cửa sổ Add watch, nhập tên biến cần theo dõi giá trị, nhấn Enter (lặp lại thao tác muốn lúc xem giá trị nhiều biến)
(48)a Mục tiêu: Hs đọc hiểu đề, phân tích yêu cầu đề Từ chọn 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 tìm giá trị lớn số a, b, c nhập từ bàn phím c Các bước tiến hành:
Hoạt động Giáo viên Học sinh Nội Dung
1 Nêu nội dung, mục đích y/cầu tốn - Bước để giải toán?
- Y/cầu hs xác định nội dung đó?
- Làm để xác định gtln số a, b, c? (Nêu bước tìm gtln)
- Y/cầu hs phát thảo thuật toán
- Qua thuật toán ta sử dụng cấu trúc để viết chương trình?
HS Chú ý theo dõi vấn đề đặt gv - Xác định Input, Output thuật toán -Input: số a, b, c
Output: Gtln(a,b,c)
- Trả lời theo dạng trình bày ý tưởng - Hs trình bày bảng
- Cấu trúc rẽ nhánh
2. Y/cầu hs gõ chương trình vào máy
Gviên tiếp cận máy tính để hướng dẫn sửa sai HS Độc lập nhóm soạn chtrình vào máy
Thơng báo kết viết 3. Y/cầu hs nhập liệu a = 23, b = 15, c = 23
HS Nhập liệu theo test cảu gv thông báo kết 4. Y/cầu hs tự xác định test khác để kiểm tra chtrình Hs Tìm test khác kiểm thử chtrình
Bài 2: Viết chương trình tìm giá trị lớn số a, b, c nhập từ bàn phím
- Nhập a, b, c; - Nếu a>b
a>c max:=a nglại max:=c
Nglại b>c max:=b nglại max:=c; - Đưa max.
IV ĐÁNH GIÁ CUỐI BÀI (5phút)
Câu hỏi, tập nhà: chuẩn bị tập sgk Xem trước bài:
V RÚT KINH NGHIỆM, BỔ SUNG:
(49)Ngày soạn : 3/01/2010 Ngày dạy : 5/1/2010
Tiết PPCT : 19 Tuần : 21
BÀI TẬP I Mục tiêu:
1 Kiến thức: Củng cố cho học sinh kiến thức cấu trúc rẽ nhánh cấu trúc lặp. 2 Kỹ năng:
Rèn luyện kỹ vận dụng linh hoạt việc lựa chọn cấu trúc rẽ nhánh cấu trúc lặp để giải toán đặt
3 Tư duy, Thái độ:
Rèn luyện ý thức tự giác học tập tích cực, ham thích tìm hiểu, chủ động giải tập.Rèn luyện tư khoa học, tư logic
II Chuẩn bị giáo viên học sinh: GV: - Soạn giáo án
HS: - Học cũ chuẩn bị tập III Tiến trình dạy:
1 Ổn định lớp :
2 Kiểm tra cũ (7phút)
Câu hỏi 1(H1): Viết cấu trúc câu lệnh rẽ nhánh cấu trúc lặp Pascal giải thích thành phần?
Trả lời : -Rẽ nhánh
If <btđk > then <lệnh 1> else <lệnh 2>; If <btđk > then <lệnh 1>;
- Lặp For
For <biến đếm>:= <giá trị đầu> To <giá trị cuối> Do <lệnh>; For <biến đếm>:= <giá trị đầu> Downto <giá trị cuối> Do <lệnh>; - Lặp While : While<điềukiện>Do<lệnh>;
3 Bài :
Hoạt động 1: (15 phút)Giải tập
Câu hỏi 1(H1): Sử dụng lệnh If gồm nhánh ?
Câu hỏi 2(H2): Hàm lấy giá trị tuyệt đối biểu thức hay biến ?
Hoạt động GV HS Nội dung
HĐTP1:
- GV gọi HS lên bảng giải câu 4a) - HS lên bảng giải câu 4a)
- GV đặt H1 - HS trả lời H1
- GV yêu cầ lớp theo dõi nhận xét - Các HS khác theo dõi nhận xét
- GV nhận xét, hoàn chỉnh làm đánh giá HĐTP2:
- GV gọi HS lên bảng giải câu 4b) - HS lên bảng giải câu 4b)
- GV đặt H2
- HS trả lời H2
- GV nhận xét đánh giá
Câu 4a)
If (sqrt(x) + sqrt(y)) <=1 then z:= sqrt(x) + sqrt(y)
Else
If y>=x then z:= x+y Else z:= 0.5; Câu 4b)
If (sqr(x-a) + sqr(y-b)) <= sqr(r) then z:=abs(x) +abs(y)
Else z:= x+y; Hoạt động 2: (20 phút) Giải tập
Câu hỏi 1(H1): Hãy khai triển biểu thức Y = 50
1
n n
n
(50)Câu hỏi 2(H2): Nhìn vào cơng thức khai triển, em cho biết n lấy giá trị đoạn ? Câu hỏi 3(H3): Em thử đưa phương pháp tính Y ?
Câu hỏi 4(H4): Sử sụng cấu trúc điều khiển lặp phù hợp ?
Hoạt động GV HS Nội dung
- GV đặt H1
- HS lên bảng trình bày H1 - GV đặt H2
- HS trả lời H2 - GV đặt H3 - HS trả lời H3 - GV đặt H4 -1 HS trả lời H4
- GV gọi HS lên bảng giải 5a) - HS lên bảng giải 5a
- GV yêu cầu HS lại theo dõi nhận xét - Các HS lại theo dõi nhận xét bổ sung (nếu có) - GV nhận xét, hồn chỉnh làm đánh giá
Y = 123243 5150 Câu 5a)
Uses crt; Var y: real; n: byte; Begin Clrscr; y:=0;
for n:=1 to 50 y:= y + n/(n+1); writeln(y:14:6); readln;
End IV Củng cố dặn dò (3’):
1 Nắm nội dung học: Có cấu trúc lặp:
Lặp For: Số lần lặp xác định Lặp While: Số lần lặp chưa xác định 4. Làm tập lại SGK trang 51
V RÚT KINH NGHIỆM, BỔ SUNG:
(51)Ngày soạn : 3/01/2010 Ngày dạy : 5/1/2010
Tiết PPCT : 20 Tuần : 21
KIỂU MẢNG (tiết 1/3) 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 mảng chiều, cách khai báo biến kiểu mảng chiều 2 Kĩ năng
Biết thành phần khai báo kiểu mảng chiều;
Biết định danh phần tử kiểu mảng chiều xuất chương trình; Biết cách khai báo mảng đơn giản với số miền kiểu nguyên;
Biết cách tham chiếu đến phần tử mảng chiều
Tư Thái độ:Tự giác, tích cực, chủ động sáng tạo tìm kiếm tri thức II ĐỒ DÙNG DẠY HỌC
1 Giáo viên: giáo án, sgk, sơ đồ cấu trúc mảng chiều 2 Học sinh: sgk
III HOẠT ĐỘNG DẠY HỌC
1) Ổn định tổ chức: Kiểm tra sĩ số lớp 2) Kiểm tra cũ: Thông qua
3) Giảng mới:
Hoạt động 1: (15 phút) Khởi động
Hoạt động Giáo viên Học sinh Nội Dung
1 Nêu tốn mở đầu Y/cầu hs đọc, tìm hiểu chtrình giải tốn Và trả lời câu hỏi sau:
- Các biến: t1, …,t7 thể giá trị nào? Kiểu biến nào?
- Biến dem dùng làm gì?
- câu lệnh IF chương trình thực việc gì? TL: dem: để đếm số ngày tron tuần có nđộ lớn nđộ trung bình
TL: - Để kiểm tra ngày, nđộ ngày lớn nđộ trung bình
2 Mở rộng toán từ phạm vi tuần sang phạm vi N
ngày (chẳng hạn tháng hay năm) chương trình có hạn chế nào?
TL: Bản chất thuật tốn khơng có thay đổi việc viết chương trình gặp khó khăn cần dùng nhiều biến và đoạn câu lệnh tính tốn dài.
3 Để khắc phục hạn chế 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ố
4.Em hiểu mãng chiều?
TL: Mảng chiều dãy hữu hạn phận tử kiểu liệu
Hỏi: Để mô tả mảng chiều, ta cần xác định yếu tố nào?
1.Kiếu mảng chiều a K/n mảng chiều
(52)- Trả lời: + Kiểu p/tử + Cách đánh số p/tử.
Hoạt động 2: (20 phút)Tạo kiểu mảng chiều khai báo biến mảng
Hoạt động Giáo viên Học sinh Nội Dung
Hỏi: Chỉ phần khai báo mảng phần báo chtrình?
- Ý nghĩa khai báo gì? Trả lời:
Dịng 1: Kbáo kiểu mảng chiều gồm Max số thực Dòng 2 : Kbáo biến mảng Nhietdo qua kiểu mảng 2 Giới thiệu cú pháp khai báo kiểu mảng chiều 3 Y/cầu cho ví dụ khai báo mảng?
Gọi hs khác: Ý nghĩa khai báo bạn vừa viết? trả lời
Var Dhs2: array [1 100] of real;
- Kbáo trực tiếp mảng có tên Dhs2 gồm 100 p/tử có kiều thực.
* Lưu ý hs tránh nhầm lẫn tên kiểu liệu mảng biến kiểu mảng
-Hỏi: (Treo bảng) Trong ba cách khai báo ví dụ 2, cách tốt hơn?
TL: Cách & 3, ta dễ dàng điều chỉnh kích thước mảng
- Hỏi: Dựa vào ví dụ trang 55 SGK, cho biết: + Tên kiểu mảng?
+ Số phần tử mảng?
+ Mỗi phần tử mảng thuộc kiểu gì? Trả lời:
.ArrayReal 301 phần tử
.Real
5. Cách tham chiếu đến phần tử mảng: TL: a[2] p/tử vị trí thứ mảng a
a[i] p/tử vị trí i mảng a
Type
Kmang1=array [1 Max] of real; Var Nhietdo: Kmang1;
b Khai báo (Có hai cách) Cách 1: Khai báo trực tiếp:
Var <tên biến mảng>: array[kiểu số] of <kiểu phần tử>;
Cách 2: Khai báo gián tiếp
Type <tên kiểu mảng>= array[kiểu số] of <kiểu phần tử>;
Var <tên biến mảng>:<tên kiểu mảng>;
Trong đó: +Kiểu số thường đoạn số nguyên liên tục có dạng n1 n2(n1<n2)(n1,n2 biểu thức)
+ Kiểu phần tử kiểu dl phần tử mảng
Ví dụ 1:
Var Nhietdo: array [1 Max] Of real;
Ví dụ 2: Khai báo mảng tối đa 100 số nguyên (chỉ số 1)
Ta có cách sau: Cách 1:
Var a: Array[1 100] Of Integer;
Cách 2:
Const Nmax = 100;
Var a: Array[1 Nmax] Of integer;
* Tham chiếu tới phần tử cuả mảng Tên_biến[chỉ số]
4) Củng cố (7 phút)
Hoạt động Giáo viên Học sinh Nội Dung
(Treo bảng)
+ Những khai báo đúng? + Trả lời:
Arrayr=array[1 200] of integer;
Arrayb = array[-100 100]of boolean;
+ Biến a khai báo chiếm dung lượng nhớ bao nhiêu?
+ Trả lời: a chiếm 400 byte nhớ
Type
Arrayr = array[1 200] Of integer; Arrayr = array[byte] of real;
Arrayb = array[-100 100] of boolean; Var a : arrayr;
B : arrayb;
III ĐÁNH GIÁ CUỐI BÀI, DẶN DÒ (3phút)
1 Câu hỏi, tập nhà: Đọc ví dụ ví dụ 2/ trang 56+57 SGK:
Xem lại thuật tốn tìm phần tử lớn dãy số nguyên thuật toán xếp dãy số nguyên thuật toán hoán đổi (lớp 10);
(53)Ngày soạn : 10/01/2010 Ngày dạy :12/1/2010
Tiết PPCT : 22 Tuần : 22
KIỂU MẢNG (tiết 2/3) BÀI TẬP KIỂU MẢNG MỘT CHIỀU I MỤC TIÊU
1 Kiến thức: Khai báo kiểu, biến mảng chiều, cách tham chiếu dến p/tử mảng 2 Kĩ năng: Hs sử dụng biến kiểu mảng chiều để giải toán đơn giản II CHUẨN BỊ :
1 Giáo viên: giáo án, bảng phụ, sgk 2 Học sinh: sgk
III HOẠT ĐỘNG dẠY VÀ HỌC
1) Ổn định tổ chức: Kiểm tra sĩ số lớp
2) Kiểm tra cũ: Trình bày cách khai báo kiểu mảng NNLT Pascal? 3) Giảng mới:
Hoạt động 2: (20 phút)Vận dụng kiểu mảng chiều
Hoạt động Giáo viên Học sinh Nội Dung
1 Nêu đề toán (Nội dung)
Y/cầu hs xác định In/Output toán HS: In: mảng A, số k
Out: Tổng (S) p/tử mảng A bội k 2. Ở lớp 10 ta xây dựng t/toán cho toán Y/cầu hs nhắc lại t/toán
3. Y/cầu hs cho biết việc cần thực chtrình gì?
Trả lời
+ Cho biết số ptử mảng A
+ Nhập giá trị cho ptử mảng A + Tính tổng
4. Y/cầu hs cho biết biến cần sử dụng gì?
TL: mảng A biến đơn: N, k, S
- Y/cầu hs khác lên viết phần khai báo biến đó? HS Lên bảng trình bày
Var S, N, k: integer; A: array[1 100] of integer;
5. Tiếp tục y/cầu hs lên viết phần chtrình tạo giá trị cho ptử mảng A (lưu ý nhập số lượng ptử mảng trước)
Gọi hs khác nhận xét
* Chỉnh sửa đoạn chtrình hs vừa hồn thành
6. Để viết tiếp đoạn chtrình cịn lại (tính tổng) theo thuật toán ta phải kiểm tra tất ptử mảng từ A[1] đến A[n] ta sử dụng câu lệnh đây?
TL: Sử dụng cấu trúc lặp For
- Hỏi: trước tính tổng, ngồi mảng A CT cần có thêm khơng? (GV bổ sung)
Bài 1: Viết CT tạo mảng A gồm N (N100) số nguyên Tính tổng phần tử mảng bội số nguyên dương k cho trước
Var S, n, k, i : integer;
A: array[1 100] of integer;
Begin
Write(‘Nhap n = ’); readln(n);
{tao mang}
For i:=1 To n Do begin
write(‘phan tu thu ’,i,’ =’); readln(A[i]);
end;
write(‘Nhap k = ’); readln(k); S := 0; {khoi tao S ban dau} {tinh tong}
For i:=1 To n Do
If A[i] mod k = Then
S := S + A[i];
Writeln(‘Tong can tinh la ’, S);
(54)TL: Giá trị k Biến S := 0
- Y/cầu hs khác lên viết đoạn chtrình cịn lại? - hs Lên bảng trình bày
Chạy thử chtrình
N = A: 5, 6, -8, 13, 24, 7, -4, -12 k =3
Hoạt động 3: (15 phút) Mở rộng tốn có vận dụng mảng chiều
Hoạt động Giáo viên Học sinh Nội Dung
(Treo bảng) chứa nội dung câu lệnh cần thêm vào chtrình
1. Y/cầu hs n/cứu nội dung câu lệnh hỏi: - Ý nghĩa biến am, duong?
- Chức lệnh (3)? - Lệnh (4) đưa thơng tin gì?
HS N/cứu ý nghĩa câu lệnh trả lời: - Dùng để lưu số lượng đếm - Đếm số dương đếm số âm - Số số dương, số số âm
2. Y/cầu hs tìm vị trí bổ sung lệnh vào cho phù hợp để chtrình đếm số dương, số âm
HS Chỉ vị trí cần bổ sung câu lệnh cần loại bỏ bớt
3. Y/cầu hs lên
hồn chỉnh lại chtrình?
HS Lên bảng , chỉnh sửa lại chtrình ** Chuẩn hố lại chtrình
* Chạy thử chtrình với giá trị: Chạy thử chtrình
N = A: 5, 6, -8, 13, 24, 7, -4, -12 A 5 6 - 8 13 24 7 - 4 - 12
Duong 1 2 2 3 4 5 5 5
m 0 0 1 1 1 1 2 3
Var n, i : integer;
am, duong : integer;
A : array[1 100] of integer; Begin
Write(‘Nhap n = ’); readln(n); {tao mang}
For i:=1 To n Do begin
write(‘phan tu thu ’,i,’ =’); readln(A[i]);
end;
am := 0; duong := 0; {dem}
For i:=1 To n Do If A[i] >0 Then
duong := duong + Else if A[i]<0 Then
am := am + 1; Writeln(duong: 4, am:4);
End.
III ĐÁNH GIÁ CUỐI BÀI (5phút) 1 Nội dung học
- Tính tổng phần tử mảng thoả mãn điều kiện - Đếm số phần tử mảng thoả mãn điều kiện 2 Câu hỏi, tập nhà
- Cho mảng A, B gồm n (n<=250) số nguyên Hãy viết chương trình xây dựng mảng C[1 n], C[i] tổng phần tử thứ i thuộc mảng A mảng B (tức là: C[i] = A[i] + B[i])
(55)Ngày soạn : 10/01/2010 Ngày dạy :12/1/2010
Tiết PPCT : 22 Tuần : 22
KIỂU MẢNG (tiết 3/3) I MỤC TIÊU
1 Kiến thức
- Hiểu khái niệm mảng hai chiều
- Hiểu cách khai báo tham chiếu đến phần tử mảng hai chiều 2 Kĩ năng
- Thực khai báo mảng hai chiều, cách tham chiếu đến phần tử mảng hai chiều - Thực việc tính toán phần tử mảng hai chiều
II CHUẨN BỊ :
1 Giáo viên: Bảng phụ chứa chương trình tạo in mảng hai chiều gồm hàng, cột Tính in hình tổng phần tử mảng
2 Học sinh: SGK, soạn
III HOẠT ĐỘNG dẠY VÀ HỌC
1) Ổn định tổ chức: Kiểm tra sĩ số lớp
2) Kiểm tra cũ: Viết cấu trúc tổng quát mảng chiều ? 3) Giảng mới:
Hoạt động 2: (7 phút)Tìm hiểu ý nghĩa mảng hai chiều
Hoạt động Giáo viên Học sinh Nội Dung
- GV yêu cầu HS xem bảng nhân SGK
- Với kiến thức mảng chiều học, em đưa cách sử dụng kiểu mảng để lưu trữ bảng nhân? TL: - Sử dụng mảng chiều, mảng lưu hàng bảng
- Với cách lưu trữ vậy, ta phải khai báo biến mảng?
- TL: Khai báo biến mảng chiều - Khai báo có hạn chế nào?
- TL: Phải khai báo nhiều biến, chương trình phải viết nhiều lệnh để tạo in giá trị mảng
- Để khắc phục hạn chế này, ta mơ tả liệu bảng nhân kiểu liệu mảng hai chiều - Nêu khái niệm mảng hai chiều
- Để mô tả kiểu mảng hai chiều, cần xác định yếu tố nào?
- HS trả lời
- Tham khảo SGK trả lời
§11 KIỂU MẢNG (tt) 2 Kiểu mảng hai chiều:
a Xét toán: Bảng nhân (SGK)
* Khái niệm mảng hai chiều: (SGK)
* Các yếu tố cần xác định để mô tả kiểu mảng hai chiều (SGK)
3 Hoạt động 3:(10’)Tìm hiểu cách khai báo biến mảng hai chiều cách tạo/in mảng hai chiều.
Hoạt động Giáo viên Học sinh Nội Dung
- GV đưa hai cách khai báo biến mảng hai chiều - GV giải thích thành phần khai báo
- Gọi HS nêu cách khai báo gián tiếp biến B để lưu trữ bảng nhân SGK
b Khai báo:
C1: Trực tiếp:
Var <tênbiếnmảng>:array[kiểu số hàng, kiểu số cột]of <kiểu phần tử>; C2: Gián tiếp:
(56)- Gọi HS nhắc lại cách tham chiếu đến phần tử mảng chiều
- TL: Tênbiến[chỉ số]
Var <tên biến mảng>:<tên kiểu mảng>; c.Tham chiếu đến phần tử mảng hai chiều:
Tênbiến[chỉ số hàng,chỉ số cột] 4 Hoạt động 4: (17 phút)Tìm hiểu cách viết chương trình đơn giản
Hoạt động Giáo viên Học sinh Nội Dung
- GV hướng dẫn HS cách tạo mảng hai chiều có m hàng, n cột
- GV hướng dẫn HS cách in mảng hai chiều vừa tạo
- Gọi HS lên bảng sửa lại phần khai báo câu lệnh nhập cho phù hợp với
- HS lên bảng làm + Không khai báo m,n + Khai báo thêm biến T
+ Viết hai vòng for lệnh tạo in mảng là: for i := to 5 do
for j := to do
- GV hướng dẫn HS cách tính tổng
- GV treo bảng phụ viết sẵn chương trình cho HS tham khảo
- HS Theo dõi chương trình bảng phụ
d Các ví dụ:
Ví dụ 1: Viết chương trình tạo in mảng hai chiều gồm m hàng, n cột
program Tao_in_mang; var i, j, m, n: integer;
A: array [1 100,1 100] of integer; begin
write ('Nhap so hang m = '); readln (m); write ('Nhap so cot n = ');
readln (n);
{Tạo mảng} for i := to m do for j := 1 to n do begin
write('Nhap A[',i, ',' ,j,']='); readln (A[i , j]);
end; {In mảng}
for i:= to m do begin
for j := 1 to n write (A[i , j]:4);
writeln; end;
readln end. IV ĐÁNH GIÁ CUỐI BÀI (3phút)
1 Nội dung học
- Cách khai báo biến mảng hai chiều - Cách tạo mảng hai chiều
- Cách tính tốn phần tử mảng hai chiều
2 Câu hỏi, tập nhà : Xem ví dụ cịn lại SGK V RÚT KINH NGHIỆM, BỔ SUNG:
(57)Ngày soạn : 17/01/2010 Ngày dạy :18/1/2010
Tiết PPCT : 23 Tuần : 23
BÀI TẬP I MỤC TIÊU
1 Kiến thức:
- Khai báo kiểu, biến mảng chiều, cách tham chiếu dến p/tử mảng - Củng cố làm hs hiểu sâu thuật toán xếp học lớp 10
2 Kĩ năng: Hs sử dụng biến kiểu mảng chiều để giải toán đơn giản II ĐỒ DÙNG DẠY HỌC
1 Giáo viên: giáo án, bảng phụ, sgk 2 Học sinh: sgk
III PHƯƠNG PHÁP
IV HOẠT ĐỘNG DẠY HỌC
1 Hoạt động 1: (10 phút) Kiểm tra cũ:
Gọi Hs lên bảng trình bày tập cho nhà tiết trước
2 Hoạt động 2:(15 phút) Phân tích tốn trước viết chương trình
a Nội dung: Sắp xếp dãy số nguyên thuật toán tráo đổi b Các bước tiến hành:
Hoạt động Giáo viên Học sinh Nội Dung
1. Nêu toán, y/cầu hs xác định In/Output toán TL :
In: N (N250), dãy A (A[i]<500) Out: dãy A không giảm
2 Y/cầu hs trình bày lại thuật tốn xếp tráo đổi (Đã học lớp 10)
3 Y/cầu lớp n/cứu lại t/toán trả lời câu hỏi:
- Biến j sẽ nhận giá trị phạm vi nào? Tương tự với biến i?
- Có nhận xét biến i,j? Trả lời:
+ j N, i j-1 + i phụ thuộc theo j
(với giá trị j, i nhận giá trị từ đến j-1)
Số nguyên dương N (N250) dãy
A gồm N số nguyên dương, số đều không vượt 500 Hãy sắp xếp dãy A thành dãy không giảm.:
In: N (N250), dãy A (A[i]<500) Out: dãy A khơng giảm
2.Thuật tốn
B1: Nhập N, dãy A ; B2: jN;
B3: j<2 đưa dãy xếp, KT;
B4: jj-1; i1;
B5: Nếu i>j Qlại B3;
B6: Nếu A[i]>A[i+1] tráo đổi A[i] A[i+1];
B7: Quay lại B5
3 Hoạt động 3:(15phút)Vận dụng kiểu liệu mảng chiều để mơ tả t/tốn Pascal
Hđ GV Nd ghi bảng
1 Y/cầu hs xác định nội dung cần viết chtrình
HD: +Khai báo biến +Tạo mảng A
+Sắp xếp mảng A tăng dần
+Đưa mảng A xếp hình * Chốt lại nội dung cần viết
2 Yêu cầu hs lên bảng viết nội dung chương trình
Var A: array[1 300] of integer; N, i, j :integer;
(58)- Khai báo biến gì? -TL: mảng A, biến đơn N, i, j - Tạo mảng làm gì?
-TL: Nhập sl p/tử mảng nhập giá trị cho p/tử mảng
- Sắp xếp mảng
Hỏi: Làm để tráo đổi giá trị biến cho (a[i] a[i+1])?
Tl: sử dụng thêm biến trung gian t: t:=a[i];
a[i]:=a[i+1]; a[i+1] :=t
- Đưa mảng hình
{tao mang}
Write(‘Nhap n = ’); readln(n);
For i:=1 To n Do begin
write(‘phan tu thu ’,i,’ =’); readln(A[i]);
end;
{sap xep mang}
For j := N Downto Do
for i:=1 to j - do
If a[i] > a[i+1] then
begin
t:=a[i]; a[i]:=a[i+1]; a[i+1] :=t
end;
{dua mang da sap xep}
Writeln (‘Mang da duoc sap xep ’);
For i :=1 To N Do write (a[i]:4); Readln
End IV ĐÁNH GIÁ CUỐI BÀI (5phút)
1 Nội dung học
Cách phân tích viết chương trình cho toán 2 Câu hỏi, tập nhà
Xem lại tập mảng giải tiết 20 Xem trước bài: Bài thực hành số
(59)Ngày soạn : 17/01/2010 Ngày dạy :18/1/2010
Tiết PPCT : 24 Tuần : 23
BÀI THỰC HÀNH SỐ I MỤC TIÊU:
- Về Kiến thức: Củng cố cho HS hiểu biết kiểu liệu mảng
- Về Kỹ năng: Khai báo kiểu liệu mảng, nhập liệu mảng, đưa hình số giá trị phần tử mảng
+ Duyệt qua phần tử mảng để xử lý phần tử
- Về tư Thái độ: rèn luyện tư lập trình, tác phong người lập trình II CHUẨN BỊ:
- GV: Phịng máy tính, máy chiếu Projector - HS: SGK, tập
III HOẠT ĐỘNG DẠY VÀ HỌC
1) Ổn định tổ chức: Kiểm tra sĩ số lớp
2) Kiểm tra cũ: Khi ta nên khai báo biến mảng gián tiếp – thông qua định nghĩa kiểu? 3) Giảng mới:
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS
GV: Cài đặt trình chiếu CT mẫu 1a HS: Xem mẫu trình chiếu ?1: MyArray tên kiểu liệu hay tên biến?
GV: Nhận xét
HS1: Trả lời ?2: Vai trò nmax n khác nào? HS2: Trả lời ?3: Dòng lệnh dùng để tạo biến mảng A?
GV: Nhận xét
HS3: Trả lời
GV: Cho chạy thử CT 1a HS: Xem
?4: Lệnh gán A[i]:= random(300) – random(300) có ý nghĩa gì?
GV: Nhận xét
HS4: Trả lời ?5: Lệnh For i:=1 to n Write(A[i]:5); có ý nghĩa gì?
GV: Nhận xét HS5: Trả lời
?6: Lệnh For i:=1 to n If A[i] mod k = then s:=s + A[i]; thực nhiệm vụ gì?
GV: Nhận xét
HS6: Trả lời ?7: Lệnh s:=s+A[i]; thực lần?
GV: Nhận xét HS7: Trả lời
GV: Cho HS chạy thử chương trình để thấy kết HS: Chạy thử chương trình máy
GV: Nhắc nhở HS lưu chương trình chạy tốt câu a HS: Lưu chương trình GV: Trình chiếu câu lệnh câu 1b HS: Xem
?8: Đưa biến Posi và Neg vào vị trí câu 1a?
GV: Nhận xét HS8: Trả lời
?9: Nhiệm vụ câu lệnh:
If A[i]:>0 then Posi:=Posi+1 else If A[i]<0 then Neg:=Neg+1; ?
GV: Nhận xét
HS9: Trả lời
GV: Yêu cầu HS đưa câu lệnh vào chương trình câu 1a HS: Thực
GV: Yêu cầu HS chạy chương trình báo cáo kết HS: Lưu chạy chương trình, báo cáo KQ
(60)Yêu cầu HS sửa lại chương trình để nhập mảng có 10 phần tử từ bàn phím
5) Dặn dị:
- HS nhà làm tập 4.15 sách tập
- Chuẩn bị chương trình bài thực hành chương IV SGK IV RÚT KINH NGHIỆM, BỔ SUNG:
(61)Ngày soạn : 24/01/2010 Ngày dạy :26/1/2010
Tiết PPCT : 25 Tuần : 24
BÀI THỰC HÀNH SỐ I Mục tiêu
1 Kiến thức
- Củng cố kiến thức liệu kiểu mảng
- Xây dựng cấu trúc liệu, hiểu thuật toán xếp tráo đổi 2 Kĩ năng
- Biết chỉnh sữa lỗi chương trình
- Tự nhập liệu để hiểu ý nghĩa số câu lệnh 3 Thái độ
- Nghiêm túc thực nội quy phòng máy, tự giác lập trình II.Chuẩn bị
- Gv:Bảng phụ viết sẵn chương trình, phịng máy, project - Hs: Sgk, CT viết sẵn
III Tiến hành dạy học
1) Ổn định tổ chức: Kiểm tra sĩ số lớp 2) Kiểm tra cũ: Thông qua ? 3) Giảng mới:
Hoạt động 1: Nhắc lại kiến thức học liên quan thực hành
Hoạt động Giáo viên Học sinh Nội dung thực hành
Hỏi 1: Nêu cách khai báo kiểu mảng chiều
Hỏi 2: Nhập từ bàn phím xây dựng mảng chiều A có phần tử
Tl: có cách + gián tiếp: + trực tiếp:
TL: For i:= to Begin
Writeln(‘Nhap phan tu thu ’,i,’=’); Readln(A[i]);
End; 2 Hoạt động 2: Xác định tốn tìm hiểu chương trình
Hoạt động Giáo viên Học sinh Nội dung
1. Chiếu đề lên bảng 2. Xác định toán
Y/cầu hs xác định liệu vào/ra toán? Trả lời :
- Vào: mảng A
- Ra: mảng A xếp
- Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)? - HS Nhắc lại thuật toán
- Chiếu thuật toán liệt kê bước 4. Tìm hiểu chương trình
- Vai trị biến i, j CT? - TL: Dùng làm biến số
- Đoạn lệnh thực tráo đổi giá trị phần tử liền kề mảng?
- TL:3 lệnh: tg := a[i]; a[i]:= a[i+1]; a[i+1]:= tg;
Đề: Sắp xếp dãy số nguyên thuật toán tráo đổi với giá trị khác n số
(62)- Treo bảng CT chuẩn bị sẵn Giải thích số lệnh CT 3 Hoạt động 3: Chạy CT câu a
Hoạt động Giáo viên Học sinh Nội dung
- Yêu cầu hs tự nhập liệu với CT có sẵn - Giúp hs phát sữa lỗi
- Thuật toán tiến hành đưa số lớn thứ j đến vị trí j sau vòng lặp: For i:= to j-1
- Chạy CT, nhập liệu, xm kết - Chỉnh sữa CT thông qua thông báo lỗi
- Chú ý hiểu rõ thêm CT 4 Hoạt động 4: Xác định toán câu b
Hoạt động Giáo viên Học sinh Nội dung
1. Xác định toán
- Y/cầu hs xác I/O toán?
- Biến Dem tăng lên nào? TL: Khi A[i] > A[i+1]
(tức biểu thức đk CL If đúng)
- Cần đưa câu lệnh tăng Dem vào chỗ CT trên? TL: Trong thân CL If: trước sau lệnh tráo đổi - Câu lệnh khởi tạo Dem:= đặt vào vị trí CT?
TL: Chọn hai phương án 3, + Trước CL đầu tiên:
For j:= N down to + Trước CL duyệt:
For i:= to j-1 + Trước CL tráo đổi + Sau CL tráo đổi
- Sau CL cuối CT nên đưa CL vào để hiển thị giá trị biến Dem hình
Đề: Khai báo biến đếm nguyên Dem bổ sung vào chương trình câu lệnh cần thiết để biến Dem tính số lần tráo đổi chương trình
Xác định tốn: + I: mảng a;
+O: mảng a xếp, số lần tráo đổi (Dem);
4 Hoạt động 5: Sữa CT câu a để giải toán câu b
Hoạt động Giáo viên Học sinh Nội dung
- Yêu cầu hs sữa lại CT theo gợi ý nêu - Hướng dẫn hs chỉnh sửa chạy CT - Đánh giá kết hs
CT(Phụ lục)
- Thêm CL hướng dẫn vào CT - Chạy CT
4) Củng cố : Thuật toán xếp tráo đổi Đếm số lần tráo đổi 5) Bài tập nhà
- Tìm thêm thuật tốn xếp khác tối ưu
- Cho mảng A mảng B (là mảng A xếp) Hãy in số phần tử mảng A theo mảng B
IV RÚT KINH NGHIỆM, BỔ SUNG:
(63)Ngày soạn : 24/01/2010 Ngày dạy :26/1/2010
Tiết PPCT : 26 Tuần : 24
Bài 12: KIỂU XÂU
I.Mục tiêu 1 Về kiến thức
- Biết kiểu dự liệu mới, biết khái niệm kiểu xâu - Phân biệt giống khác kiểu mảng với kiểu xâu
- Biết cách khai báo biến, nhập/xuất liệu, tham chiếu dến kí tự xâu - Biết phép toán liên quan đến xâu
2 Về kĩ năng
- Khai báo biến kiểu xâu ngơn ngữ lập trình Pascal
- Sử dụng biến xâu phép toán xâu để giải toán đơn giản II Chuẩn bị GV HS
1 GV: Máy vi tính, Máy chiếu để giới thiệu ví dụ
2 HSSGK
III Phương pháp Thuyết trình, vấn đáp IV Tiến trình học
HĐ1: Kiểm tra cũ khởi động mới
Hoạt động Giáo viên Học sinh Nội dung
Ghi câu hỏi lên bảng Phát vấn HS chỗ Suy nghĩ, trả lời Y/c HS khác nhận xét Nhận xét
Chính xác hóa nội dung
'Viet Nam' liệu kiểu mảng Tuy nhiên kiểu liệu mà tiết ta học: KIỂU XÂU
Ghi nhớ kiến thức
Câu hỏi:
Định nghĩa mảng chiều cách khai báo
'Viet Nam' có phải liệu kiểu mảng chiều khơng, Vì sao?
HĐ2: Tìm hiểu liệu kiểu xâu
Hoạt động Giáo viên Học sinh Nội dung
Xâu gì? Trả lời
Y/c HS khác nhận xét Nhận xét
Chính xác hóa nội dung Hình thành khái niệm Xâu Y/c HS cho VD
Cho VD Trả lời
Xâu có kí tự? Dấu cách ký tự
Y/c HS viết xâu có ký tự trống, xâu rỗng, nêu số lượng ký tự xâu
Giới thiệu cách tham chiếu phần tử Cho VD
Trả lời
Bài 12: KIỂU XÂU Khái niệm (SGK)
Ttự kiểu mảng
(64)Hoạt động Giáo viên Học sinh Nội dung - Hỏi: Ý nghĩa từ String?
Trả lời
Độ dài lớn xâu Trả lời
- Hãy nhắc lại phép toán học kiểu liệu chuẩn Quan sát chương trình để dự tính kết qủa
- Chiếu chương trình VD
- Hỏi: Kết chương trình in hình? Thực chương trình cho HS thấy kết - Y/c HS tìm số VD khác
- Hỏi: Chức phép cộng
- Chiếu chương trình VD phép so sánh y/c HS cho biết kết
Lưu ý cho HS
1 Khai báo (SGK) Các thao tác xử lí xâu Var st:string;
Begin
St:='A' + 'B'; Write(st); Readln; End VD:
'AB'<'ABC' 'AC'<'ABC' Lưu ý:
Một xâu có độ dài nhỏ lớn (>) ngược lại
c) Th HĐ4: Củng cố(5'):
Nhắc lại nội dung học: - Khai báo biến
- Nhập xuất gá trị cho biến xâu - Tham chiếu kí tự xâu - Phép ghép xâu
- Các phép so sánh
HĐ5: Dặn dò (1')
(65)Ngày soạn : 01/02/2010 Ngày dạy :02/02/2010
Tiết PPCT : 27 Tuần : 25
KIỂU XÂU(TT) I: Mục tiêu:
1 Kiến thức:
o Hiểu lợi ích hàm thủ tục liên quan đến xâu tring ngôn ngữ lập trình Pascal
o Nắm cấu trúc ching chức số hàm liên quan đến xâu 2 Kỹ năng:
o Bước đầu sử dụng số hàm, thủ tục thông dụng xâu
o Có thể cài đặt số chương trình đơn giản có sử dụng xâu II Chuẩn bị GV HS:
- GV: Giáo án, SGK, sách GV, bảng phụ soạn ví dụ
- HS: Sách GK III Phương pháp:
- Đặt vấn đề
- Thuyết trình, vấn đáp
- Diễn giải, dùng bảng để ghi lại chi tiết quan trọng ví dụ IV Tiến trình học.
Hoạt động 1:
- Tổ chúc lớp: Ổn định kiểm tra sĩ số Các bước tiến hành:
Hoạt động thầy trò Nội dung
kiểm tra kiến thức cũ. - Gọi HS :
Câu 1: Xâu gì? Cách khai báo biến xâu HS trả lời câu hỏi
-GV nhận xét cho điểm
*Giới thiệu mới
ĐVĐ: Chúng ta biết xâu gì? Và số phép toán xâu Bây chung ta học số thủ tục chuẩn dùng để xử lí xâu
Chú ý quan sát bảng
-Ứng với thủ tục hàm giáo viên đưa ví dụ minh hoạ theo sgk
- Xâu gồm kí tự trống viết nào? số lượng kí tự bao nhiêu?
HS trả lời
- Kí hiệu cảu xâu gồm kí tự trống ‘ ‘ xâu có độ dài
- Tham số hàm thủ tục chuẩn phải hợp lí, chẳng hạng khơng thể dùng Insert( S1, S2, 12) length(S2)<12 Hoạt động 2: Rèn luyện kĩ vận dụng hàm thủ tục. ĐVĐ: Bấy sâu chức hàm thủ tục xâu
Quan sát bảng
- Ý nghiã hàm Length(b)?
2 Các thao tác sử lí xâu:
Một số thủ tục chuẩn dùng để sử lí xâu.
- Delete(St,vt,n) Xố n kí tự xâu st vị trí vt
- Insert(S1,S2,vt) Chèn xâu S1 vào xâu S2 vị trí vt S2
- Val(St,x,m) Đổi giá trị xâu St thành số ghi giá trị vào biến X, nến khơng đổi vị trí gây lỗi ghi m, đổi thành cơng m =
- Str(X,St) Chuyển số X thành xâu kí tự lưu St
Một số hàm chuẩn:
- Copy(St, vt, n) Sao chép từ xâu St n kí tự từ vị trí vt
- Pos(S1, S2) Tìm vị trí xuất S1 S2
- Length(st) Cho độ dài xâu St - Upcase(ch) Cho chữ viết hoa tưng ứng với chữ thường ch
Bảng phụ chứa ví dụ Ues crt;
(66)Hoạt động thầy trò Nội dung TL: Cho số lượng kí tự có sâu b
Em giải thích câu lệnh For i:=k downto write([i]);
TL: Sử dụng vòng lặp For giá trị cuối downto giá trị đầu để sau in kí tự chuỗi theo chiều ngược lại
TL: cho thấy hàm length() tham chiếu đến kí tự cử xâu thơng qua vị trí
Qua ví dụ ta thấy điêù gì?
TL: Xâu b tạo thành từ xâu rỗng qua phép ghép xâu
Em có nhận xét xâu b tạo thành Quan sát bảng
Tương tự em xem ví dụ
Clrscr;
Write(‘ nhap ho ten thu nhat: ‘); Realn (a);
Write(‘ nhap ho ten thu hai: ‘); Realn (b);
If length(a)>length(b) then Write(a) else writer(b); Realn
End
Bảng phụ chứa ví dụ Bảng phụ chứa ví dụ Bảng phụ chứa ví dụ Bảng phụ chứa ví dụ Hoạt động 3:
Củng cố:
Nhắc lại số hàm thủ tục liên quan đến xâu Nhắc lại cấu trúc câu lệnh
(67)Ngày soạn : 01/02/2010 Ngày dạy :02/02/2010
Tiết PPCT : 28 Tuần : 25
BÀI TẬP
A.MỤC ĐÍCH: 1.Kiến thức:
- Khắc sâu thêm phần kiến thức lý thuyết kiểu xâu kí tự, đặc biệt hàm thủ tục liên quan -Nắm số thuật toán bản: tạo xâu mới, đếm số lần xuất ký tự,
2.Kỹ năng:
-Khai báo biến kiểu xâu -Nập, xuất giá trị cho biến xâu -Duyệt qua tất ký tự xâu -Sử dụng hàm thủ tục chuẩn 3.Thái độ:
Tích cực vàc chủ động thực hành
B.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái C.CHUẨN BỊ:
Giáo viên: Giáo án, SGK, máy chiếu Học sinh: Chuẩn bị nhà
D TIẾN TRÌNH LÊN LỚP: I.ỔN ĐỊNH LỚP(1’):
II.KIỂM TRA BÀI CŨ(3’): Đưa toán lên máy chiếu sau Hãy cho biết số hàm thủ tục chuẩn sau đây:
S=’THUC HANH TIN HOC’ S1=’BAI TAP’);
Length(s)->? Insert(S1,S,0)->? COPY(S, 30,9)->?
a.Đặt vấn đề(1’): Hôm học “bài tập thực hành5(t1)” để kiểm tra số thuật toán, số thủ tục hàm xử lý xâu
b.Triển khai mới:
HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC
Hoạt động 1(20’)
(Tìm hiểu cách khai báo biến, sử dụng hàm thủ tục chương trình)
Ví dụ : Nhập xâu, kiểm tra xem ký tự xâu S1 có trùng với ký tự cuối xâu S2 hay không ?
I.Tìm hiểu khai báo biến, hàm thủ tục thơng qua số chương trình có sẳn:
VD :
Var s1,s2 : String ; x : Byte ;
Begin
Write('Nhap xau thu : '); Readln(s1) ;
Write('Nhap xau thu : '); Readln(s2) ;
x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else
Write('Khac nhau'); Readln ;
(68)Ví dụ : Nhập xâu, viết hình xâu theo thứ tự ngược lại ký tự xâu
Ví dụ : Nhập xâu, viết hình xâu bỏ tất ký tự dấu cách
Ví dụ : Nhập xâu, viết hình xâu gồm ký tự số xâu
VD :
Var i,k : Byte ; a : String ; Begin
Write('Nhap xau : ') ; Readln(a) ;
k := length(a) ;
For i := k downto Write(a[i]) ;
Readln ; End VD :
Var i,k : Byte ; a,b : String ; Begin
Write('Nhap xau : ') ; Readln(a) ;
k := length(a) ; b :='' ;
For i := to k if a[i] <> '' then b := b+a[i] ; Write(b) ; Readln ; End VD :
Var s1,s2 : String ; i : Byte ;
Begin
Write('Nhap xau s1 : ') ; Readln(s1) ;
s2 := '' ;
For i := to length(s1)
If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ;
Write(s2); Readln ; End
II.Vận dụng câu lệnh, hàm thủ tục để viết chương trình:
Bài1:Hãy viết chương trình nhập vào xâu S đưa hình xâu in hoa
Var S : String ; i : Byte ; Begin
(69)Gv:Yêu cầu hs kiểm tra với số liệu nhập vào từ bàn phím giải thích câu lệnh ví dụ
Hoạt động 2(17’)
(Rèn luyện kỷ lập trình) Gv:Đưa câu hỏi lên máy chiếu
Hãy cho biết hàm đổi ký tự thường thành chữ in hoa?
Hs:Hàm Upcase(ch) Gv:
Hãy viết đoạn chương trình đổi chữ thường thành chữ in hoa?
Hs:Thực hành máy trả lời câu hỏi For i:=1 To Length(S) Do
Write(Upcase(S[i]);
Gv:Đưa câu hỏi lên máy chiếu
Hãy nêu ý tưởng thuật tốn đếm xâu S có ký tự số?
Hs:Thực hành máy->Trả lời câu hỏi Dem:=0;
For i:=1 To length(S) Do
If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1;
Gv:Quan sát thực hành hs đưa câu hỏi
Ngồi cách viết thuật tốn trê ta cịn có cách viết khác nửa?
Hs:
Tách dãy từ xâu S thành xâu có số (Ví dụ 4)
Sử dụng hàm Length(S1)
Gv:Yêu cầu Hs thử sử dụng cách để kiểm chứng
Readln(S) ;
For i:=1 To Length(S) Do Write(Upcase(S[i]); Readln;
End
Bài2:Hãy viết chương trình nhập vào xâu (có ký tự ký tự số) đưa hình có ký tự số?
Ví dụ:
S=’08bC156546CD’ =>Dem=8 Var S:String;
i, Dem:Byte; Begin
Write(‘Nhap xau S=’);Readln(S); Dem:=0;
For i:=1 To length(S) Do
If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1;
Write(‘Tong so ky tu la so’,Dem); Readln;
End
IV.CỦNG CỐ(2’):
- Nhận xét buổi thực hành=>đưa số lổi thường gặp thực hành - Cần nắm cách khai báo biến xâu, hàm thủ tục xử lý xâu, V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau:
-Tiết sau học tiết: Tiết 32: Bài tập Thực hành 5(t2) -Bài tập nhà: 10,11/79(SGK)
- Xem đọc trả lời câu hỏi sau:
1.Hãy viết chương trình nhập vào từ bàn phím xâu S đếm xâu S có dấu cách?
(70)Ngày soạn : 21/02/2010 Ngày dạy :23/02/2010
Tiết PPCT : 29 Tuần : 26
BÀI TẬP VÀ THỰC HÀNH 5(Tiết 1)
A.MỤC ĐÍCH: 1.Kiến thức:
- Khắc sâu thêm phần kiến thức lý thuyết kiểu xâu kí tự, đặc biệt hàm thủ tục liên quan -Nắm số thuật toán bản: tạo xâu mới, đếm số lần xuất ký tự,
2.Kỹ năng:
-Khai báo biến kiểu xâu -Nập, xuất giá trị cho biến xâu -Duyệt qua tất ký tự xâu -Sử dụng hàm thủ tục chuẩn 3.Thái độ: Tích cực vàc chủ động thực hành.
B.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái C.CHUẨN BỊ:
1. Giáo viên: Giáo án, SGK, máy chiếu
2. Học sinh: Chuẩn bị nhà D TIẾN TRÌNH LÊN LỚP:
I.ỔN ĐỊNH LỚP(1’):
II.KIỂM TRA BÀI CŨ(3’): Đưa toán lên máy chiếu sau Hãy cho biết số hàm thủ tục chuẩn sau đây:
S=’THUC HANH TIN HOC’ S1=’BAI TAP’);
Length(s)->? Insert(S1,S,0)->? COPY(S, 30,9)->?
a.Đặt vấn đề(1’): Hôm học “bài tập thực hành5(t1)” để kiểm tra số thuật toán, số thủ tục hàm xử lý xâu
b.Triển khai mới:
HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC
Hoạt động 1(20’)
(Tìm hiểu cách khai báo biến, sử dụng hàm thủ tục chương trình)
Gv:Đưa tuèng chương trình lên máy chiếu để Hs quan sát tìm hiểu
-Giáo viên yêu cầu Hs gõ số chương trình sau vào NNLT Pascal, chạy chương trình để kiểm tra tính đắn thuật tốn
-Với ví dụ, Gv sâu vào giải thích câu lệnh trực tiếp đáp ứng yêu cầu ví dụ, em tiếp thu nhanh
Hs: Soạn thảo ví dụ vào máy tìm hiểu cách sử dụng biến, hàm thủ tục
Ví dụ : Nhập xâu, kiểm tra xem ký tự xâu S1 có trùng với ký tự cuối xâu S2 hay không ?
I.Tìm hiểu khai báo biến, hàm thủ tục thơng qua số chương trình có sẳn:
VD :
Var s1,s2 : String ; x : Byte ;
(71)Ví dụ : Nhập xâu, viết hình xâu theo thứ tự ngược lại ký tự xâu
Ví dụ : Nhập xâu, viết hình xâu bỏ tất ký tự dấu cách
Ví dụ : Nhập xâu, viết hình xâu gồm ký tự số xâu
Write('Nhap xau thu : '); Readln(s1) ;
Write('Nhap xau thu : '); Readln(s2) ;
x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else
Write('Khac nhau'); Readln ;
End VD :
Var i,k : Byte ; a : String ; Begin
Write('Nhap xau : ') ; Readln(a) ;
k := length(a) ;
For i := k downto Write(a[i]) ;
Readln ; End VD :
Var i,k : Byte ; a,b : String ; Begin
Write('Nhap xau : ') ; Readln(a) ;
k := length(a) ; b :='' ;
For i := to k if a[i] <> '' then b := b+a[i] ; Write(b) ; Readln ; End VD :
Var s1,s2 : String ; i : Byte ;
Begin
Write('Nhap xau s1 : ') ; Readln(s1) ;
s2 := '' ;
For i := to length(s1)
If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ;
(72)Gv:Yêu cầu hs kiểm tra với số liệu nhập vào từ bàn phím giải thích câu lệnh ví dụ
Hoạt động 2(17’)
(Rèn luyện kỷ lập trình) Gv:Đưa câu hỏi lên máy chiếu
Hãy cho biết hàm đổi ký tự thường thành chữ in hoa?
Hs:Hàm Upcase(ch) Gv:
Hãy viết đoạn chương trình đổi chữ thường thành chữ in hoa?
Hs:Thực hành máy trả lời câu hỏi For i:=1 To Length(S) Do
Write(Upcase(S[i]);
Gv:Đưa câu hỏi lên máy chiếu
Hãy nêu ý tưởng thuật tốn đếm xâu S có ký tự số?
Hs:Thực hành máy->Trả lời câu hỏi Dem:=0;
For i:=1 To length(S) Do
If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1;
Gv:Quan sát thực hành hs đưa câu hỏi
Ngoài cách viết thuật tốn trê ta cịn có cách viết khác nửa?
Hs:
- Tách dãy từ xâu S thành xâu có số (Ví dụ 4)
- Sử dụng hàm Length(S1)
Gv:Yêu cầu Hs thử sử dụng cách để kiểm chứng
Readln ; End
II.Vận dụng câu lệnh, hàm thủ tục để viết chương trình:
Bài1:Hãy viết chương trình nhập vào xâu S đưa hình xâu in hoa
Var S : String ; i : Byte ; Begin
Write('Nhap xau S : ') ; Readln(S) ;
For i:=1 To Length(S) Do Write(Upcase(S[i]); Readln;
End
Bài2:Hãy viết chương trình nhập vào xâu (có ký tự ký tự số) đưa hình có ký tự số?
Ví dụ:
S=’08bC156546CD’ =>Dem=8 Var S:String;
i, Dem:Byte; Begin
Write(‘Nhap xau S=’);Readln(S); Dem:=0;
For i:=1 To length(S) Do
If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1;
Write(‘Tong so ky tu la so’,Dem); Readln;
End IV.CỦNG CỐ(2’):
- Nhận xét buổi thực hành=>đưa số lổi thường gặp thực hành - Cần nắm cách khai báo biến xâu, hàm thủ tục xử lý xâu, V.DẶN DÒ(1’): Đưa lên hình máy chiếu sau:
-Tiết sau học tiết: Tiết 32: Bài tập Thực hành 5(t2) -Bài tập nhà: 10,11/79(SGK)
- Xem đọc trả lời câu hỏi sau:
1.Hãy viết chương trình nhập vào từ bàn phím xâu S đếm xâu S có dấu cách?
2.Hãy viết chương trình nhập từ bàn phím xâu S tách xâu từ xâu S vị trí lấy ký tự?
(73)Tiết PPCT : 30 Tuần : 26
BÀI TẬP VÀ THỰC HÀNH (Tiết 2) A.MỤC ĐÍCH:
1.Kiến thức:
- Hs tự xây dựng số thật toán xâu soạn thảo NNLT Pascal
- Khắc sâu thêm phần kiến thức lý thuyết kiểu xâu kí tự, đặc biệt hàm thủ tục liên quan 2.Kỹ năng:
-Khai báo biến kiểu xâu
- Nhập, xuất giá trị cho biến xâu - Duyệt qua tất ký tự xâu - Sử dụng hàm thủ tục chuẩn 3.Thái độ:
- Tích cực vàc chủ động thực hành
B.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái C.CHUẨN BỊ:
3. Giáo viên: Giáo án, SGK, máy chiếu
4. Học sinh: Chuẩn bị nhà D TIẾN TRÌNH LÊN LỚP:
I.ỔN ĐỊNH LỚP(1’):
II.KIỂM TRA BÀI CŨ(3’): Gọi Hs lên bảng viết
Hãy nêu cú pháp ý nghĩa hàm thủ tục xử lý xâu? Mỗi thủ tục hàm lấy ví dụ? a.Đặt vấn đề(1’): Hôm học “Bài tập Thực hành5(t2)” để kiểm tra số thuật toán, số thủ tục hàm xử lý xâu
b.Triển khai mới:
HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC
Hoạt động 1(15’)
(Tìm hiểu cách khai báo biến, sử dụng hàm và thủ tục chương trình)
Gv:Đưa nội dung tập lên máy chiếu
Hãy gõ chương tình chạy thử với test sau:
A=’abccba’ A=’fgđhfs’
Hs:Quan sát hình máy chiếu SGK để gõ chương trình vào NNLT Pascal
Gv: Quan sát Hs gõ chương trình đưa câu hỏi thảo luận sau:
Với hai test kết xuất nào?
Hs: Thực hành trả lời kết qua.í
I.Soạn thảo chương trình tìm hiểu cách khai báo biến số câu lệnh:
Nhập vào từ bàn phím xâu Kiểm tra xâu có phải xâu đối xứng hay khơng Xâu đối xứng có tính chất: đọc từ phải sang trái thu kết giống đọc từ trái sang phải (Còn gọi xâu palindrome)
a.Hãy chạy thử chương trình sau: Var
i,x:Byte; a,p:String; Begin
Write(‘Nhap xau a=’); Readln(a); P:=’’;
For i:=length(a) Downto Do p:=p+a[i]; If a=p Then Write(‘Xau palindrome) Else Write(‘Xau khong phai la palindrome); Readln;
End
(74)Gv: Hãy sửa lại chương trình mà khơng sử dụng biến P?
Hs:Thảo luận theo nhóm (2Hs/máy) -Dùng biến kt
-Soạn thảo chương trình
-Chạy thử chương trnhf với Test Gv:
-Quan sát đưa chương trình hồn chỉnh lên máy chiếu để Hs so sánh
-Ngoài cịn có cách thứ 2:
While i<=(x div2) And (a[i]=a[x-i+1] Do i:=i+1
If i>(x div 2) Then Write(‘Xau palindrome) Else Write(‘Xau khong phai la palindrome);
Hoạt động 2(22’)
(Rèn luyện kỷ lập trình) Gv:Đưa câu hỏi lên máy chiếu
S=’AbaCDacd’
Hãy cho biết số lần xuất chữ tiếng Anh S ( không phân biệt chữ hoa hay chữ thường)?
Hs:Đếm trả lời
Gv: Hãy nêu Input Output toán? Hs:
Input:Nhập xâu S
Output: Đếm số lần xuất hiền chữ tiếng anh
Gv:
Trong bảng chữ tiếng anh có chữ cái?
Hs:Gồm có 26 chữ Gv:Hướng dẫn
Dem[A]:=0; Dem[B:=0; … Dem[Z=0;
Hãy viết câu lệnh khởi tạo biến nào?
Hs:Sử dụng câu lệnh For
Gv: Hãy viết đoạn chương trình đếm số lần xuất chữ tiếng Anh?
Hs: Suy nghĩ trả lời If S[i] in ['A' 'Z'] Then Begin
S[i]:=upcase(S[i]);
dùng biến xâu p? Var
i,x:Byte; a,p:String; Kt:Boolean; Begin
Write(‘Nhap xau a=’); Readln(a); Kt:=True;
X:=length(a); For i:=1 To x div Do
If a[i]<> a[x-i+1] Then kt:=False; If Kt Then Write(‘Xau palindrome) Else Write(‘Xau khong phai la palindrome); Readln;
End
II.Vận dụng kiểu liệu xâu để lập trình:
Bài 2: Viết chương trình nhập từ bàn phím xâu S thông báo số lần xuất chữ tiếng Anh S ( không phân biệt chữ hoa hay chữ thường)
Input:Nhập xâu S
(75)Dem[S[i]]:=Dem[s[i]]+1; End;
Gv:Yêu cầu hoạt động theo nhóm (2Hs/1máy tính) theo mẫu sau:
Var
Dem:array['A' 'Z'] Of Byte; S: ;
i: ; ch: ; Begin
Write('Nhap xau S='); Readln(S); For ch:='A' To 'Z' Do Dem[ch]:= ; For i:=1 to Length(S) Do
If S[i] in ['A' 'Z'] Then Begin
End;
For ch:='A' to 'Z' Do If Dem[S[i]]<> Then Writeln( ); Readln;
End
Hãy viết chương trình đầy đủ chạy thử chương trình để để tra xem kết đúng?
Hs:Thảo luận theo nhóm để điền chạy chương trình báo cáo kết
Gv:Quan sát đưa tồn chương trình lên máy chiếu chạy thử để Hs quan sát
Var
Dem:array['A' 'Z'] Of Byte; S:string;
i:Byte; ch:char; Begin
Write('Nhap xau S='); Readln(S); For ch:='A' To 'Z' Do Dem[ch]:=0; For i:=1 to Length(S) Do
If S[i] in ['A' 'Z'] Then Begin
S[i]:=upcase(S[i]); Dem[S[i]]:=Dem[s[i]]+1; End;
For ch:='A' to 'Z' Do If Dem[S[i]]<> Then
Writeln('so lan xuat hien ',ch,' la',Dem[ch]); Readln;
End
IV.CỦNG CỐ(2’):
- Nhận xét buổi thực hành=>đưa số lổi thường gặp thực hành - Cần nắm cách khai báo biến xâu, hàm thủ tục xử lý xâu,
- Cần nắm thuật toán đếm số lần xuất chữ tiếng anh, kểu tra xâu đối xứng V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau:
-Tiết sau học tiết: Tiết 33: Bài tập -Bài tập nhà:
(76)Ngày soạn : 28/02/2010 Ngày dạy :01/03/2010
Tiết PPCT : 31 Tuần : 27
KIỂU BẢN GHI ( Tiết ½) A.MỤC ĐÍCH:
1.Kiến thức:
- Biết khái niệm kiểu bảng ghi
- Biết cách khai báo ghi, truy xuất trường ghi
- Phân biệt giống khác kiểu ghi với mảng chiều 2.Kỹ năng:
- Khai báo kiểu ghi, khai báo biến kiểu ghi NNLT Pascal - Nhập xuất liệu cho biến ghi
- Tham chiếu đến trường kiểu ghi - Sử dụng kiểu ghi để giải số toán
3.Thái độ:Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,
B.PHƯƠNG PHÁP: Nêu giải vấn đề + Thuyết trình C.CHUẨN BỊ:
5. Giáo viên: Giáo án, SGK, máy chiếu
6. Học sinh: Chuẩn bị nhà D TIẾN TRÌNH LÊN LỚP:
I.ỔN ĐỊNH LỚP(1’):
II.KIỂM TRA BÀI CŨ: Không
a.Đặt vấn đề(2’): Đưa lên máy chiếu tốn cần giải sau: Viết chương trình dùng để quản lí thí sinh kỳ thi tuyển sinh
- Làm để quản lý tồn thơng tin học sinh ?
- Mỗi thơng tin có kiểu liệu ?
HS : Có thể quản lý kiện mảng chiều
=>Ngơn ngữ lập trình bậc cao có cách tốt để quản lý liệu -> Bản ghi
b.Triển khai mới:
HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC
Hoạt động 1(10’)
(Giới thiệu số khái niệm)
Gv:Đưa bảng điểm SGK lên máy chiếu, rõ :
-Mỗi hàng gọi bảng ghi -Mỗi cột trường
Hs:Lắng nghe quan sát bảng máy chiếu để Hs biết rõ
Gv:
Bảng liệu thường xác định giá trị nào?
Hs:Dựa vào bảng SGK để trả lời câu hỏi Gv:
Đưa lên máy chiếu thuộc tính bảng ghi Hoạt động 2(15’)
(Khai báo biến bảng ghi)
Gv: -Mỗi NN có cách khai báo bảng ghi khác
I.Một số khái niệm:
- Kiểu ghi dùng để mô tả cho đối tượng có số thuộc tính mà thuộc tính có kiểu liệu khác
- Bản ghi thường gọi Record, Record lưu trữ liệu đối tượng cần quản lí
- Mỗi thuộc tính đối tượng tương ứng với trường ghi Các trường khác có liệu khác
- Các ngôn ngữ lập trình thường cho cách để xác định :
+ Tên kiểu ghi + Tên trường
(77)nhau
-Ngôn ngữ Pascal không cho bạn khai báo biến ghi trực tiếp mà phải khai báo biến ghi thông qua khai báo kiểu ghi
-Trước hết phải khai báo kiểu ghi sau biến ghi khai báo thông qua kiểu ghi
GV : Làm để khai báo nhiều biến ghi có kiểu ?
HS : GV gợi ý để học sinh đưa sử dụng kiểu mảng phần tử mảng có kiểu ghi
Gv:Ví dụ khai báo ghi
+Khai báo kiểu ghi để xử lý bảng kết thi học sinh
Mỗi ghi bao gồm : Họ tên học sinh (Hoten), ngày tháng năm sinh(Ngaysinh), Giới tính (NamNu), điểm thi môn học sinh (Toan, Ly, Hoa, Van, Su, Dia,Tin)
Hãy xác định kiểu liệu cho trường (Mỗi nội dung trường ghi)?
Hs:Vận dụng để viết cách khai báo
GV : Khi có nhu cầu thay đổi thông tin trường, làm để truy cập thông tin vào trường ghi ?
Hs:Mỗi ngơn ngữ có cách truy cập khác thường viết :
<Tên biến ghi>.<tên trường> GV: Đưa số ví dụ
Hoạt động 2(8’) (Giới thiệu cách gán giá trị)
Gv: Dựa vào cách khai báo biến ghi cho biết cách gán A:=B B:=A hay sai? Hs:A, B kiểu nên gán cho
Gv:Giới thiệu đưa lên máy chiếu nội dung gán
<Tên biến ghi> <Tên trường> II.Khai báo biến bảng ghi:
1.Cách khai báo kiểu :
Type <Tên kiểu ghi>=Record <Tên trường 1> : <Kiểu trường 1>; ……… ……… <Tên trường n> : <Kiểu trường n>; End ;
Var <Tên biến> : <Tên kiểu ghi>; Var
<Tên mảng> : Array[1 n] Of <Tên kiểu ghi> ; 2.Ví dụ:
Type Hocsinh = Record Hoten : String[30] ; Ngaysinh : String[10] ; NamNu :Boolean ;
Toan,Ly, Hoa, Van, Su, Dia : Real ; End ;
Var A, B : Hocsinh ;
Lop : Array[1 100] Of Hocsinh ; Ví dụ :
A.Hoten B.Ngaysinh Lop[i].Toan Lop[i].Ly
……… với i số mảng Lop Để truy cập vào trường ghi, ta viết:
<Tên biến ghi> <Tên trường> III.Gián giá trị:
Có cách để gán giá trị cho ghi
- Dùng lệnh gán trực tiếp : Nếu A, B hai ghi kiểu ta gán giá trị A cho B câu lệnh gán:
Vd : B := A ; A := B ;
- Gán giá trị cho trường Dùng câu lệnh gán gán giá trị cho trường nhập từ bàn phím A.Hoten := ‘Nguyen Van Tuan’ ;
Readln(a.Ngaysinh);
Chương trình xử lý bảng kết thi IV.CỦNG CỐ(8'):
(78)Ngày soạn : 28/02/2010 Ngày dạy :01/03/2010
Tiết PPCT : 32 Tuần : 27
KIỂU BẢN GHI ( Tiết 2/2 ) A.MỤC ĐÍCH:
1.Kiến thức:
- Ơn lại kiến thức ghi: cú pháp khai biến, cách tham chiếu, số câu lệnh liên quan đến thao tác xử lý ghi
- Nắm số thuật tốn: Nhập thơng báo kết trường, xếp liệu 2.Kỹ năng:
- Khai báo kiểu ghi NNLT Pascal - Nhập xuất liệu cho biến ghi
- Tham chiếu đến trường kiểu ghi - Sử dụng kiểu ghi để giải số toán
3.Thái độ:Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,
B.PHƯƠNG PHÁP: Vấn đáp tái + Thảo luận nhóm C.CHUẨN BỊ:
7. Giáo viên: Giáo án, SGK, máy chiếu, giấy A0 bút
8. Học sinh: Chuẩn bị nhà D TIẾN TRÌNH LÊN LỚP:
I.ỔN ĐỊNH LỚP(1’): II.KIỂM TRA BÀI CŨ(5'):
1.Hãy nêu cú pháp khai báo biến ghi? 2.Hãy khai báo biến ghi ví dụ sau:
BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008
TT Họ tên năm sinh Toán Lý Hoá Văn TB Xếp loại
1 n III.BÀI MỚI: a.Đặt vấn đề(1’):
Kiểu liệu ghi dùng để mơ tả đối tượng có số thuộc tính mà thuộc tính có kiểu liệu khác nhau, nghiên cứu lý thuyết kiểu ghi tiết trước Hôm vận dụng kiểu ghi để làm số tập
b.Triển khai mới:
HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC
Hoạt động 1(10’)
(Giới thiệu cách truy xuất đến trường) Gv:
-Yêu cầu Hs đọc câu hỏi tập 11/80
-Yêu cầu Hs xem lại ví dụ trả lời câu hỏi sau: Hãy xem ví dụ SGK bổ sung thêm đoạn chương trình đưa danh sách học sinh có xếp loại A?
Hs:Đọc đề kết hợp với ví dụ SGK để sửa lại chương trình
Gv:
Bài tập 11/80(SGK):
Lưu ý vận dụng tập tiết 34
Hãy bổ sung thêm vào chương trình Xeploai (ở 13) lệnh cần thiết để chương trình đưa danh sách học sinh xếp loại A
(79)-Phân tích câu lệnh Hs đưa ra=>Kết luận chương trình cụ thể
-Đưa tồn chương trình lên máy chiếu chạy vài test để kiểm chứng thuật toán
Hoạt động 2(24’) (Rèn luyện tư lập trình)
Gv:Đưa câu hỏi tập lên máy chiếu Y/c học sinh đọc
Hãy nêu cách tổ chức liệu cho tập 2? Hs:Lên bảng viết cách khai báo biến ghi Gv:Tổ chức hoạt động nhóm sau:
+Nhóm 1: Viết đoạn chương trình nhập Họ tên, DTBHK1 DTBHK2 học sinh
+Nhóm 2:Viết đoạn chương trình tính TBCN xếp loại
+Nhóm3:Viết đoạn chương trình xếp theo thứ tự tăng dần cột điểm TBCN
+Nhóm 4:Xuất kết theo bảng sau:
TT Họ tên DHK1 DHK2 DCN XL
1 n
Hs: Thảo luận theo nhóm phân cơng Gv:
-Y/c nhóm trình bày giấy A0
-Sau thảo luận nhóm xong nhóm lên bảng trình bày, nhóm khác bổ sung
-Sau nhóm bổ sung thi Gv nhận xét phân tích đoạn chương trình=>Đưa chương tình cụ thể sau lên máy chiếu chạy thử vài Test để kiểm chứng thuật toán
If lop[i].xeploai='A' Then Begin Write(i:4); Write(Lop[i].ten:30); Write(Lop[i].Xeploai); Writeln; End;
Bài tập 2/145(SBT Pascal5.5):
Viết chương trình nhập họ tên, điểm DHK1 DHK2 Hs lớp
a.Tính TBCN xếp loại
b Xếp hạng theo thứ tự tăng dần cột điểm TBCN học sinh
c.Thông báo theo bảng sau theo thứ tự xếp cột điểm TBCN
TT Họ tên DHK1 DHK2 DCN XL
1 n
*Chương trình: Type Bdiem=Record Hoten:String;
DHK1,DHK2,TBCN:Real; Xeploai:String[5];
End;
Var Hs:Array[1 60] Of Bdiem; I,j,n:Byte;
Tg:Bdiem; Begin
Write('Nhap so luong Hs n='); Readln(n); For i:=1 To n Do
With Hs[i] Do Begin
Write('Nhap Ho ten',i); Readln(Hoten); Write('NhapTBHK1',i); readln(DHK1);
Write('NhapTBKT2',i); Readln(DHK2); End;
{Tinh TB Ca nam va Xep loai} For i:=1 To n Do
Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3; For i:=1 To n Do
With Hs[i] Do Begin
If TBCN>=8.0 Then Xeploai:='Gioi'; if (TBCN>=6.5)and(TBCN<8.0) Then Xeploai:='Kha';
(80)If (TBCN>=3.5) and (TBCN<5) Then Xeploai:='Yeu';
If TBCn<3.5 Then Xeploai:='kem'; End;
For i:=1 to n-1 Do For j:=i+1 to n Do
If Hs[i].TBCN> Hs[j].TBCN Then Begin
tg:=Hs[i]; Hs[i]:=Hs[j]; Hs[j]:=tg;
End;
{Thong bao ket qua nhu sau}
Writeln(' '); Writeln('| TT |','| Ho ten |','| TBCN |','| xeploai |');
Writeln(' '); For i:=1 to n
With Hs[i] Do
Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10); Readln;
End IV.CỦNG CỐ(3'): Đưa lên máy chiếu ví dụ sau: -Cần nắm:
+Cách khai báo biến ghi
+Cách truy xuất vào giá trị trường
+Cách nhập xuất trường ghi +Một số câu lệnh
-Hai thuật tốn: Sắp xếp, tính tốn
V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau: - Câu hỏi ôn tập:
1 Câu lệnh rẽ nhánh lặp?
2.Khai báo kiểu mảng chiều, hai chiều, kiểu xâu? Các đoạn chương trình nhập xuất 3.Khai báo kiểu ghi? Các đoạn chương trình nhập xuất ghi?
4.Xem lại tập từ 1->11/80(SGK)
(81)Tiết PPCT : 33 Tuần : 28
BÀI TẬP (T1)
A.MỤC ĐÍCH:
1.Kiến thức:
- Ơn lại kiến thức ghi: cú pháp khai biến, cách tham chiếu, số câu lệnh liên quan đến thao tác xử lý ghi
- Nắm số thuật tốn: Nhập thơng báo kết trường, xếp liệu
2.Kỹ năng:
- Khai báo kiểu ghi NNLT Pascal - Nhập xuất liệu cho biến ghi
- Tham chiếu đến trường kiểu ghi - Sử dụng kiểu ghi để giải số toán
3.Thái độ:Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,
B.PHƯƠNG PHÁP: Vấn đáp tái + Thảo luận nhóm C.CHUẨN BỊ:
9 Giáo viên: Giáo án, SGK, máy chiếu, giấy A0 bút.
10 Học sinh: Chuẩn bị nhà.
D TIẾN TRÌNH LÊN LỚP: I.ỔN ĐỊNH LỚP(1’): II.KIỂM TRA BÀI CŨ(5'):
1.Hãy nêu cú pháp khai báo biến ghi? 2.Hãy khai báo biến ghi ví dụ sau:
BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008
TT Họ tên năm sinh Toán Lý Hoá Văn TB Xếp loại
1 n III.BÀI MỚI:
a.Đặt vấn đề(1’):
Kiểu liệu ghi dùng để mô tả đối tượng có số thuộc tính mà thuộc tính có kiểu liệu khác nhau, nghiên cứu lý thuyết kiểu ghi tiết trước Hôm vận dụng kiểu ghi để làm số tập
b.Triển khai mới:
HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC
Hoạt động 1(10’)
(Giới thiệu cách truy xuất đến trường) Gv:
-Yêu cầu Hs đọc câu hỏi tập 11/80
-Yêu cầu Hs xem lại ví dụ trả lời câu hỏi sau: Hãy xem ví dụ SGK bổ sung thêm đoạn chương trình đưa danh sách học sinh có xếp loại A?
Hs:Đọc đề kết hợp với ví dụ SGK để sửa lại chương trình
Gv:
Bài tập 11/80(SGK):
Lưu ý vận dụng tập tiết 34
Hãy bổ sung thêm vào chương trình Xeploai (ở 13) lệnh cần thiết để chương trình đưa danh sách học sinh xếp loại A
(82)-Phân tích câu lệnh Hs đưa ra=>Kết luận chương trình cụ thể
-Đưa tồn chương trình lên máy chiếu chạy vài test để kiểm chứng thuật toán
Hoạt động 2(24’) (Rèn luyện tư lập trình)
Gv:Đưa câu hỏi tập lên máy chiếu Y/c học sinh đọc
Hãy nêu cách tổ chức liệu cho tập 2? Hs:Lên bảng viết cách khai báo biến ghi Gv:Tổ chức hoạt động nhóm sau:
+Nhóm 1: Viết đoạn chương trình nhập Họ tên, DTBHK1 DTBHK2 học sinh
+Nhóm 2:Viết đoạn chương trình tính TBCN xếp loại
+Nhóm3:Viết đoạn chương trình xếp theo thứ tự tăng dần cột điểm TBCN
+Nhóm 4:Xuất kết theo bảng sau:
TT Họ tên DHK1 DHK2 DCN XL
1 n
Hs: Thảo luận theo nhóm phân cơng Gv:
-Y/c nhóm trình bày giấy A0
-Sau thảo luận nhóm xong nhóm lên bảng trình bày, nhóm khác bổ sung
-Sau nhóm bổ sung thi Gv nhận xét phân tích đoạn chương trình=>Đưa chương tình cụ thể sau lên máy chiếu chạy thử vài Test để kiểm chứng thuật toán
If lop[i].xeploai='A' Then Begin
Write(i:4);
Write(Lop[i].ten:30); Write(Lop[i].Xeploai); Writeln;
End;
Bài tập 2/145(SBT Pascal5.5):
Viết chương trình nhập họ tên, điểm DHK1 DHK2 Hs lớp
a.Tính TBCN xếp loại
b Xếp hạng theo thứ tự tăng dần cột điểm TBCN học sinh
c.Thông báo theo bảng sau theo thứ tự xếp cột điểm TBCN
TT Họ tên DHK1 DHK2 DCN XL
1 n
*Chương trình: Type Bdiem=Record Hoten:String;
DHK1,DHK2,TBCN:Real; Xeploai:String[5];
End;
Var Hs:Array[1 60] Of Bdiem; I,j,n:Byte;
Tg:Bdiem; Begin
Write('Nhap so luong Hs n='); Readln(n); For i:=1 To n Do
With Hs[i] Do Begin
(83)Write('NhapTBKT2',i); Readln(DHK2); End;
{Tinh TB Ca nam va Xep loai} For i:=1 To n Do
Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3; For i:=1 To n Do
With Hs[i] Do Begin
If TBCN>=8.0 Then Xeploai:='Gioi';
if (TBCN>=6.5)and(TBCN<8.0) Then Xeploai:='Kha'; If (TBCN>=5) and (TBCN<6.5) Then Xeploai:='TB'; If (TBCN>=3.5) and (TBCN<5) Then Xeploai:='Yeu'; If TBCn<3.5 Then Xeploai:='kem';
End;
For i:=1 to n-1 Do For j:=i+1 to n Do
If Hs[i].TBCN> Hs[j].TBCN Then Begin
tg:=Hs[i]; Hs[i]:=Hs[j]; Hs[j]:=tg; End;
{Thong bao ket qua nhu sau}
Writeln(' ');
Writeln('| TT |','| Ho ten |','| TBCN |','| xeploai |'); Writeln(' ');
For i:=1 to n do With Hs[i] Do
Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10); Readln;
End.
IV.CỦNG CỐ(3'): Đưa lên máy chiếu ví dụ sau: -Cần nắm:
+Cách khai báo biến ghi
+Cách truy xuất vào giá trị trường
+Cách nhập xuất trường ghi +Một số câu lệnh
-Hai thuật tốn: Sắp xếp, tính tốn
V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau: - Câu hỏi ôn tập:
1 Câu lệnh rẽ nhánh lặp?
2.Khai báo kiểu mảng chiều, hai chiều, kiểu xâu? Các đoạn chương trình nhập xuất 3.Khai báo kiểu ghi? Các đoạn chương trình nhập xuất ghi?
4.Xem lại tập từ 1->11/80(SGK)
(84)Tiết PPCT : 34 Tuần : 28 BÀI TẬP THỰC HÀNH (T2) I Mục tiêu học
1 Kiến thức
- Ôn lại kiến thức chương IV
- Kiểu mảng: khai báo, truy xuất đến phần tử biến mảng
- Kiểu xâu: khai báo, thao tác xử lý xâu Hàm thủ tục sử dụng xâu - Kiểu ghi: khai báo, truy xuất đến trường kiểu ghi
2 kĩ năng:vận dụng kiểu liệu có cấu trúc vào làm tập Rèn luyện kĩ tư thuật tốn lập trình
3 Thái độ :nghiêm túc, hứng thú với môn học II Phương pháp, phương tiện dạy học
Phương pháp: thuyết trình, câu hỏi gợi mở, hướng dẫn làm tập Phượng tiện dạy học: bảng đen
III Chuẩn bị giáo viên học sinh Giáo viên: giáo án, phấn, sổ điểm Học sinh: sgk, bút
IV Tiến trình lên lớp Ổn định lớp học Kiểm tra cũ
Câu hỏi: em nêu kiểu liệu có cấu trúc học Pascal? Trả lời: Kiểu mảng, kiểu xâu, kiểu ghi
3 Nội dung học a) Ma trận kiến thức
Đề mục Biết Hiểu Áp dụng
Kiểu mảng 1.Mảng chiều
- khái niệm: dãy hữu hạn các phần tử kiểu.
- Các quy tắc xác định kiểu mảng chiều
- Khai báo mảng chiều - tham chiếu đến phần tử thứ i mảng chiều.
2 Mảng chiều - khái niệm
- cách xác định kiểu liệu là kiểu mảng chiều
- cách khai báo
- Truy xuất đến phần tử i,j của mảng chiều.
Nắm kiểu liệu mảng một chiều.
biết cách khai báo kiểu liệu mảng chiều.
Nhập, in truy xuất phần tử mảng chiều
Khái niệm mảng chiều, cách khai báo mảng chiều.
sử dụng kiểu mảng chiều khi nào.
Khai báo kiểu mảng 1 chiều mảng chiều để giải số tập. Cài đặt số thuật toán liên quan đến kiểu dữ liệu kiểu mảng.
Kiểu Xâu Khái niệm xâu dãy kí tự trong bảng mã ASCII Mỗi kí tự phần tử xâu - Cách xác định kiểu liệu là kiểu xâu
- Khai báo biến kiểu xâu - Các thao tác xử lý xâu - Các hàm thủ tục trên
Nắm kiểu liệu kiểu xâu.
Cách khai báo biến kiểu xâu. Phép gán xâu so sánh xâu. Hiểu ý nghĩa các hàm sử dụng kiểu xâu.
(85)xâu Kiểu bản
ghi Khái niệm ghi dùng đểmô tả đối tượng có nhiều thuộc tính Nhưng thuộc tính có kiểu liệu khác nhau.
- thuộc tính gọi 1 trường
- Cách xác định kiểu liệu bản ghi.
- Tham chiếu đến trường của ghi.
- Khai báo biến kiểu ghi. - Phép gán giá trị kiểu bản ghi.
Khái niệm kiểu ghi.
Khai báo kiểu liệu là kiểu ghi.
Cách truy xuất đến trường của biến kiểu ghi.
Phân biệt hai cách gán giá trị kiểu liệu kiểu bản ghi.
Khai báo kiểu liệu kiểu ghi cho bài toán cụ thể.
Sử dụng kiểu liệu kiểu bản ghi để giải bài tập liên quan đến nó.
b) Bài tập
Bài tập: nhập xâu st từ bàn phím Hãy thực cơng việc sau: - Xố hết kí tự trắng xâu
- Kiểm tra xem xâu có phải xâu đối xứng hay khơng
Hướng dẫn: sử dụng hàm length(st) thủ tục delete(st, n, m) để làm câu a
Tạo xâu cách đảo ngược xâu cũ Sau kiểm tra xâu xâu cũ xâu xâu đối xứng khơng ngược lại
V Củng cố dặn dò
(86)Ngày soạn :14/03/2010 Ngày dạy :15/03/2010
Tiết PPCT : 35 Tuần : 29
BÀI TẬP CHƯƠNG IV.
I Mục tiêu:
1 Về kiến thức: Củng cố kiến thức về:
- Các quy tắc kiểu liệu có cấu trúc để thực liệu thực tế
- Kiểu liệu có cấu trúc xây dựng từ kiểu liệu sở theo số cách thức tạo kiểu ngôn ngữ lập trình Pascal quy định
- Mỗi kiểu liệu có cấu trúc thường hữu ích việc giải số tập - Trong ngôn ngữ Pascal dùng mơ tả kiểu liệu với từ khố Type
2 Về kĩ năng:
- Rèn luyện kĩ khai báo kiểu liệu có cấu trúc (với Pascal, sử dụng thành thạo từ khoá Var, Type)
- Sử dụng thành thạo thao tác vào/ phép toán thành phần sở 3 Về tư thái độ:
- Thái độ học tập tích cực, ham thích lập trình
- Tiếp tục hình thành xây dựng phẩm chất cần thiết người lập trình II Chuẩn bị:
- GV: Computer, Projecter - HS: Chuẩn bị tập nhà III Phương pháp:
- Nêu vấn đề, Dẫn dắt, gợi ý
IV Tiến trình hoạt động:
Tiết 1:
+ Hoạt động 1: Giải tập số trang 79 Sách GK Tin học lớp 11
Hoạt động GV HS Ghi bảng
HĐTP1:
H1: Sử dụng kiểu liệu cách khai báo? - Trả lời:
Kiểu mảng chiều:
Var A:array [1 100] of integer; H2: Khai báo biến nào?
- Yêu cầu HS viết chương trình nhập mảng A - Chỉnh sửa làm HS
H3: Số chẵn số nào?
- Nếu có số lượng số chẵn dãy tìm số lượng số lẻ hay không? - Nếu tìm cách nào? H4: Sử dụng câu lệnh để viết?
- Yêu cầu HS hoàn thành chương trình câu a - Nhận xét, chỉnh sửa làm HS
- Nếu có số lượng số chẵn dãy tìm số lượng lẻ cách: n - số lượng số chẵn
TL: If then HĐTP 2:
H1: Nêu thuật toán kiểm tra số có phải số nguyên tố hay không?
(87)Hoạt động GV HS Ghi bảng - Yêu cầu HS viết chương trình dựa theo thuật tốn
Hd: Sử dụng câu lệnh nào?
- Yêu cầu HS hoàn thành đoạn chương trình câu b - Nhận xét, đánh giá:
- Gợi ý để HS kết hợp hai đoạn chương trình thành chương trình hồn chỉnh cho
+ Hoạt động 2: Giải tập trang 79 Sách GK Tin học lớp 11
Hoạt động GV HS Ghi bảng
- Yêu cầu HS liệt kê số hạng đầu dãy Fiponaci - Liệt kê: 0, 1, 1, 2, 3,
H1: Đoạn chương trình nhập từ bàn phím số nguyện dương nào?
H2: Số hạng tổng quát thứ n nào? TL: Fn = Fn-1 + Fn-2
- Gợi ý: Để viết chương trình ta cần biến phụ?
H3: sử dụng câu lệnh này? TL: Dùng biến phụ (F1, F2)
- Yêu cầu HS viết chương trình tìm số hạng thứ n - Gọi HS hồn chỉnh lại chương trình
- Nhận xét, chỉnh sửa, đánh giá làm
Chính xác hố 6/trang79
+ Hoạt động 3: Củng cố (2ph)
(88)Ngày soạn :14/03/2010 Ngày dạy :15/03/2010
Tiết PPCT : 36 Tuần : 29
Kiểm tra tiết
I.Mục tiêu học Kiến thức
- Kiểm tra lại kiến thức học chương III Kĩ năng: rèn luyện kĩ làm kiểm tra
Thái độ: nghiêm túc, tuân thủ quy chế kiểm tra II Chuẩn bị giáo viên học sinh
Giáo viên: đề kiểm tra Học sinh: bút, sgk, ghi III Nội dung học
1 Ổn định lớp học 2 Đề kiểm tra Phần 1: trắc nghiệm
Câu 1: Chỉ số mảng kiểu ?
a)Kiểu số thực, kiểu logic b) Kiểu miền con, kiểu kí tự
c) Kiểu miền con, kiểu kí tự d) Kiểu số nguyên, ki ểu số thực e) a c Câu 2: S1= ‘chao bạn’; S2 = ‘Xin ’ Kết thủ tục Insert (S2,S1,1) là:
a ‘hao ban’ b ‘ Xin chao ban’ c ‘ chao ban xin’ d kết khác Câu 3: Giới hạn số chiều mảng ?
a 255 chiều b 256 chiều c Vô hạn d chiều Câu : Chức thủ tục Delete(st,vt,n) ?
a.Xoá xâu b Xoá n phần tử xâu c Chèn xâu d Tạo xâu Câu 5: Chương trình sau cho kết ?
Var a, b : String; Begin
Write(‘nhap xau ho ten thu nhat: ’); readln(a); Write(‘nhap xau ho ten thu hai : ’); readln(b); If length(a)> length(b) then write(a)
Else write(b); Readln
End
a)Xâu có độ dài lớn b) Độ dài lớn hai xâu c)Kí tự cuối xâu dài d) Kết khác
Câu 6: Trong ngơn ngữ lập trình Pascal, để tìm vi trí xuất xâu ‘hoa’ xâu S ta viết cách cách sau đây?
A S1:=’hoa’; i:=Pos(S1,’hoa’); B i:=Pos(‘hoa’,S); C i:=Pos(S,’hoa’); D i:=Pos(‘hoa’,’hoa’);
Câu 7: Trong ngơn ngữ lập trình Pascal, với xâu kí tự có phép tốn là? A Phép cơng, trừ, nhân, chia B Chỉ có phép cộng
C.Phép cộng phép trừ D Phép ghép xâu phép so sánh Câu 8: Trong ngôn ngữ lập trình Pascal, xâu kí tự gì?
(89)Câu 9: Trong ngơn ngữ lập trình Pascal, với khai báo mảng A: Array[1 100, 100]of integer; việc truy xuất đến phần tử sau:
A A[i],[j] B A[i][j] C.A[i;j] D A[i,j]
Câu 10: Trong ngơn ngữ lập trình Pasca,l đoạn chương trình sau đưa hình kết gì? For i:=10 to Write(i,’ ‘);
A 10 B Đưa 10 dấu cách C 10 D Không đưa kết Phần 2: Tự luận
Để quản lý việc bán hàng cửa hàng với thông tin mặt hàng: tên mặt hàng, giá trị mặt hàng, ngày sản xuất, ngày hết hạn sử dụng Hãy viết chương trình quản lý việc bán hàng với thơng tin n mặt hàng có cửa hàng với yêu cầu sau:
- Hãy khai báo kiểu liệu để quản lý n mặt hàng
(90)Ngày soạn :21/03/2010 Ngày dạy :23/03/2010
Tiết PPCT : 37 Tuần : 30
CHƯƠNG V : TỆP VÀ THAO TÁC VỚI TỆP § 14 KIỂU DỮ LIỆU TIỆP
§ 15 THAO TÁC VỚI TỆP
I Mục tiêu 1 Về kiến thức:
- Biết khái niệm kiểu liệu tệp
- Biết khái niệm tệp định kiểu tệp văn - Biết lệnh khai báo tệp kiểu tệp văn
- Biết bước làm việc ví i tệp: gán tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp - Biết số hàm thủ tục chuẩn làm việc ví i tệp
Về kỹ năng:
- Khai báo tên tệp
- Sử dụng số hàm thủ tục chuẩn làm việc ví i tệp
Về thái độ:
- Ham thích mơn học, có tính kỷ luật cao tính thần làm việc theo nhóm
- Tiếp tục rèn luyện phẩm chất cần thiết người lập trình như: xem xét vấn đề cách cẩn thận, chu đáo, sáng tạo, không thỏa mãn ví i kết ban đầu đạt được,…
II Phương pháp, phương tiện dạy học - Phương pháp: thuyết trình, vấn đáp - Phương tiện: máy chiếu, máy tính III Tiến trình dạy
Kiểm tra cũ:
Có pháp khai báo biến kiểu xâu, mảng chiều, chiều?
Những kiểu liệu lưu trữ RAM, tắt máy sao? Giảng mới:
HOẠT ĐỘNG GV & HS NỘI DUNG
-Kiểu liệu mảng có giá trị dãy hữu hạn liệu kiểu Số phần tử mảng hoàn toàn xác định khai báo mảng.Trong nhiều toán, cần phải lưu giữ liệu để sử dụng nhiều lần thực chương trình xử lí số lượng khơng xác định liệu kiểu Ví i nêu phải sử dụng kiểu liệu tệp
- Học sinh ý lắng nghe
- Kiểu liệu tệp có đặc điểm khác so ví i kiểu liệu biết
-Dựa vào đâu để phân loại tệp, có loại tệp ?
-Khai báo tệp văn theo có pháp nào? Cho ví dụ - Cho biết thao tác liên quan đến tệp văn
§ 14 KIỂU DỮ LIỆU TIỆP 1/ Vai trò tệp
Tệp dãy liệu kiểu, có đặc điểm sau:
- Dữ liệu kiểu tệp lưu trữ lâu dài nhớ (đĩa từ, CD, .) không bị tắt nguồn điện
- Lượng thông tin lưu trữ tệp lớn phụ thuộc vào dung lượng đĩa
2/ Phân loại tệp
* Xét theo tổ chức liệu có loại: - Tệp văn bản: tệp mà liệu ghi dạng kí tự theo mã ASCII
(91)-Đó theo tác gắn tên tập
-Trong thao tác thao tác ln phải có theo tác ví i tệp?
-Ý nghĩa hàm eof, eoln ?
* Xét theo cách thức truy cập, có loại:
- Tệp truy cập - Tệp truy cập trực tiếp 3/ Thao tác ví i tệp văn a) Khai báo
Var <tên biến tệp>: text Ví du:
Var tep1,tep2: text; b) Thao tác ví i tệp
* Gắn tên tệp:
Assign(<biến tệp>,<tên tệp>); * Mở tệp
Rewrite(<biến tệp>); * Mở tệp có
Reset(<biến tệp>); * Ghi liệu vào tệp
Write(<biến tệp>,<danh sách kết quả>); Hoặc
Writeln(<biến tệp>,<danh sách kết quả>); * Đọc tệp
Read(<biến tệp>,<danh sách biến>); Hoặc
Readln(<biến tệp>,<danh sách biến>); * Đóng tệp
Close(<biến tệp>); * Hàm EOF, EOLN
Eof(<biến tệp>) có giá trị true trỏ tệp cuối tệp
Eoln(<biến tệp>) có giá trị true trỏ tệp cuối dòng
3 Củng cố:
Nhắc lại thao tác tệp văn bản? Dặn dò:
(92)Ngày soạn :21/03/2010 Ngày dạy :23/03/2010
Tiết PPCT : 38 Tuần : 30
§ 16 : VÍ DỤ LÀM QUEN VỚI TỆP
I Mục tiêu 1 Về kiến thức:
- Biết khái niệm kiểu liệu tệp
- Biết khái niệm tệp định kiểu tệp văn - Biết lệnh khai báo tệp kiểu tệp văn
- Biết bước làm việc ví i tệp: gán tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp - Biết số hàm thủ tục chuẩn làm việc ví i tệp
Về kỹ năng:
- Khai báo tên tệp
- Sử dụng số hàm thủ tục chuẩn làm việc ví i tệp - Viết chương trình đơn giản thao tác ví i tệp văn
Về thái độ:
- Ham thích mơn học, có tính kỷ luật cao tính thần làm việc theo nhóm
- Tiếp tục rèn luyện phẩm chất cần thiết người lập trình như: xem xét vấn đề cách cẩn thận, chu đáo, sáng tạo, khơng thỏa mãn ví i kết ban đầu đạt được,…
II Phương pháp, phương tiện dạy học - Phương pháp: thuyết trình, vấn đáp - Phương tiện: máy chiếu, máy tính III Tiến trình dạy
Kiểm tra cũ:
Khai báo biến tệp văn bản? Cho ví dụ? Các thao tác tệp văn bản? Giảng mới:
HOẠT ĐỘNG GV & HS NỘI DUNG
-Yêu cầu học sinh xem đề chương trình SGK
-Theo em phải sử dụng lệnh while để đọc nội dung tệp?
-Hoàn chỉnh câu trả lời học sinh
-Khi thực hành phịng máy có thực hành ví dụ khơng? Lý do?
-Chúng ta khơng thể chạy chương trình khơng có tệp TRAI.TXT
-Giải thích cho học sinh hiểu lệnh sử dụng chương trình
-Ở ví dụ có biến kiểu tệp -Có hai biến kiểu tệp f1,f2
- Giải thích cho học sinh cách lệnh biểu thức sử dụng chương trình
- Theo em ý nghĩa lệnh writeln(f2) gì?
Ví dụ 1: (SGK TH11 Tr.87) Program khoang_cach; Var d:real;
f:text
X,y:integer; Begin
Assign(f,’TRAi.TXT’); Reset(f);
While not eof(f) Begin
Read(f,x,y); d:=sqrt(x*x+y*y);
Writeln(‘Khoang cach:’,d:10:2); End;
Colse(f); End
Ví dụ 2: (SGK TH11 Tr.88) Program Dientro;
(93)i:integer; Begin
Assign(f,’RESIST.DAT’); Reset(f1);
Assign(f,’RESIST.EQU’); Reset(f2);
While not eof(f1) Begin
Read(f1,R1,R2,R3);
a[1]:=R1*R2*R3/ (R1*R2+R1*R3+R2*R3);
a[2]:=R1*R2/(R1+R2)+R3; a[3]:=R1*R3/(R1+R3)+R2; a[4]:=R2*R3/(R2+R3)+R1; a[5]:=R1+R2+R3;
For i:=1 to
Write(f2,a[i]:9:3,’ ‘); Writeln(f2);
End;
Colse(f1); close(f2); End
3 Củng cố:
Để đọc toàn nội dung ta phải sử dụng lệnh nào? 4 Dặn dò:
+ Xem lại
+ Chuẩn bị tập trang 89
(94)Tiết PPCT : 39 Tuần : 31 BÀI TẬP A MỤC TIÊU
1 Kiến thức: Củng cố lại cho học sinh kiến thức chương
2 Kỹ năng:
Nâng cao kĩ sử dụng số lệnh kiểu liệu tệp Gắn tên tệp; + Mở tệp; + Đóng tệp;
Biết giải số toán cụ thể thường gặp
3 Thái độ: Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ động sáng tạo tìm kiếm kiến thức
B PHƯƠNG PHÁP
Thuyết trình giảng giải, kết hợp với hình ảnh trực quan Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1 Giáo viên: Giáo án, số tập đáp án
2 Học sinh: SGK, sách tập tập làm nhà D TIẾN TRÌNH LÊN LỚP
I Ổn định tổ chức (1p) II Kiểm tra cũ III Bài Đặt vấn đề
2 Triển khai
Hoạt động giáo viên học sinh Nội dung kiến thức
Hoạt động 1: Làm tập (Bài tập nhà)
Viết chương trình đọc hiển thị hình nội dung tập tin dạng văn bản, với tên tập tin nhập từ bàn phím (có kiểm tra tồn tập tin)
GV: Gọi học sinh lên bảng viết chương trình (Khơng cần kiểm tra tồn tập tin)
GV: Có thể đưa số câu hỏi gợi ý sau: - Biến tên tập tin có kiểu gì?
- Trước gắn tên tệp cho biến tệp ta cần phải làm gì? - Để đọc liệu từ tệp ta cần dùng câu lệnh để mở tệp?
- Để đọc hết liệu tệp ta làm nào? - Khi xuất liệu hình?
HS: Nghiên cứu, vận dụng kiến thức học để trả lời GV: Yêu cầu học sinh viết chương trình hồn thiện HS: Viết chương trình
GV: Đánh giá, hồn thiện cho điểm
Program Doc_tep;
Var tep: string; ch: char; f: text; Begin
Write('Nhap ten File can doc: '); readln(tep); Assign(f,tep); reset(f);
While not eof(f) begin
read(f,ch); write(ch); end;
close(f); readln;
End
Hoạt động 2: Giáo viên hướng dẫn cho học sinh cách lồng hàm kiểm tra tồn tập tin vào chương trình hồn thiện nội dung tập
Program Doc_tep;
Var tep: string; ch: char; f: text;
FUNCTION FileExists(FileTest: string): Boolean;
Var f: File; Begin
{$I-}
(95){$I+}
FileExists := (IOResult=0); end;
Begin
Write('Nhap ten File can doc: '); readln(tep); if FileExists(tep) then
begin
Assign(f,tep); reset(f); While not eof(f)
begin
read(f,ch); write(ch);
end; close(f); end
else writeln('File ',tep,' khong ton tai tren dia'); readln;
End Hoạt động 3: Kiểm tra 15’
Viết chương trình đọc tập tin dạng văn có đĩa Hiển thị hình nội dung tập tin dạng in hoa, (tên tập tin nhập từ bàn phím)
Var tep: string; ch: char; f: text; Begin
Write('Nhap ten File can doc: '); readln(tep); Assign(f,tep); reset(f);
While not eof(f) begin
read(f,ch); write(upcase(ch)); end;
close(f); readln;
End IV Củng cố
V Dặn dò (1p)
- Nghiên cứu trước nội dung 17: ‘Chương trình phân loại’ VI Rút kinh nghiệm:
(96)
Tiết PPCT : 39 Tuần : 31
Bài 16: CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI(t1/3)
A MỤC TIÊU 1 Kiến thức:
Biết khái niệm chương trình con, ý 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 con; 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 hai thủ tục
Biết cách khai bào hai loại chương trình với tham số hình thức chúng Cách viết lời gọi chương trình thân chương trình
3 Thái độ:
Tiếp tục rèn luyện phẩm chất người lập trình tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tn thủ theo u cầu việc chung
Có ý thức lưu trữ liệu cách khoa học B PHƯƠNG PHÁP
Thuyết trình giảng giải, kết hợp hình ảnh trực quan
Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1 Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn Học sinh: SGK,
D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p)
II Kiểm tra cũ III Bài
1 Đặt vấn đề (1p)
- Khi viết chương trình giải tốn phức tạp, chương trình thường dài, người đọc khó nhận biết chương trình thực cơng việc Vấn đề đặt phải cấu trúc chương trình để dể đọc, dể hiểu Mặt khác, việc giải tốn lớn thường địi hỏi phân thành tốn Vì lập trình cần phải chia chương trình thành chương trình
2 Triển khai
Hoạt động giáo viên học sinh Nội dung kiến thức
Hoạt động 1: Tiết 39( Hoạt động nhóm)
GV: Yêu cầu học sinh xác định ý tưởng giải toán tính tổng luỹ thừa: TLT = an+ bm + cp + dq,
đã giao nhiệm vụ nhà
HS: Lần lượt tính tổng luỹ thừa cho biến a, b, c, d sau tính tổng
HS: Chương trình dài, phải viết lại nhiều lần đoạn chương trình thực cơng việc tương tự
GV: Chiếu đoạn chương trình có sử dụng hàm việc giải toán yêu cầu học sinh so sánh với chương trình ban đầu
HS: Quan sát nhận xét
GV: Vậy nên viết chương trình con?
(97)HS: Đố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
GV: Vậy chương trình gì? HS: Nghiên cứu SGK trả lời
GV: Chia lớp thành ba nhóm Phát bìa cho nhóm u cầu HS điền lợi ích việc sử dụng chương trình
HS: Nghiên cứu SGK, thảo luận nhóm để điền phiếu học tập
GV: Thu phiếu học tập dán kết lên bảng Cho HS so sánh với kết giáo viên
a 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
b Lợi ích việc sử dụng chương trình
- Tránh việc phải viết lặp lặp lại dãy lệnh;
- Hỗ trợ việc thực chương trình lớn; - Phục vụ cho q trình trừu tượng hố; - Mở rộng khả ngôn ngữ;
- Thuận tiện cho phát triển, nâng cấp chương trình; Hoạt động 2: Tiết 40( hoạt động nhóm)
GV: Có loại chương trình con? Gọi tên chúng?
HS: Hai loại: hàm thủ tục
GV: Các em làm quen với hàm thủ tục chưa? Lấy số ví dụ hàm thủ tục học
HS: Rồi Hàm thủ tục chuẩn, ví dụ hàm Length(st); Copy(st, vt,n); Thủ tục delete(st, vt, n);
GV: Ý nghĩa hàm thủ tục HS: Nghiên cứu SGK trả lời
GV: Yêu cầu học sinh nhắc lại cấu trúc chương trình
HS: [<Phần khai báo>] <Phần thân>
GV: Giới thiệu cấu trúc chương trình Yêu cầu học sinh so sánh hai cấu trúc giải thích ý nghĩa phần
GV: Để sử dụng hàm thủ tục chuẩn em thường viết đâu viết nào?
HS: Trong chương trình Viết thủ tục kèm theo 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
GV: Diễn giảng
2 Phân loại cấu trúc chương trình a Phân loại (2 loại)
* Hàm (function): thực số thao tác trả giá trị kiểu đơn giản thông qua tên hàm * Thủ tục (Procedure): thực thao tác định không trả giá trị qua tên
b Cấu trúc * Cấu trúc chung
<Phần đầu> [<Phần khai báo>]
<Phần thân>
* Tham số hình thức: biến khai báo cho liệu vào/ra chương trình
* Biến cục bộ: khai báo để dùng riêng chương trình
* Biến tồn cục: biến chương trình c Thực chương trình
- Để thực chương trình ta cần 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 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
IV Củng cố (5p)
Câu 1: Giả sử có hai biến xâu x y (y có giá trị) câu lệnh sau không hợp lệ? A x:=Copy(y,5,3); C x:=Delete(y,5,3);
B x:=y; D Delete
V Dặn dò (1p)
(98)Ngày soạn: / /2010 Tiết 40
Ngày giảng:
Lớp 11A: / / / (sĩ số: ./ ) Lớp 11B: / / / (sĩ số: ./ )
Lớp 11C: / / / (sĩ số: ./ ) Lớp 11D: / / / (sĩ số: ./ )
Lớp 11E: / / / (sĩ số: ./ ) Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T1) A MỤC TIÊU
1 Kiến thức: - Giúp học sinh nắm được:
- Cấu trúc chung thủ tục chương trình - Phân biệt tham số tham trị
- Các khái niệm biến toàn cục biến cục
2 Kỹ năng: - Nhận biết thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu hai thủ tục
- Biết cách khai báo hai loại chương trình với tham số hình thức chúng - Cách viết 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 độ: - Tiếp tục rèn luyện phẩm chất người lập trình tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tuân thủ theo yêu cầu việc chung
- Có ý thức lưu trữ liệu cách khoa học B PHƯƠNG PHÁP
(99)- Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1 Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn Học sinh: SGK,
D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p) II Kiểm tra cũ (5p)
Câu hỏi: Hãy nêu khái niệm, phân loại chức loại chương trình
Đáp án: - 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
* Hàm (function): thực số thao tác trả giá trị kiểu đơn giản thông qua tên hàm * Thủ tục (Procedure): thực thao tác định khơng trả giá trị qua tên
III Bài Đặt vấn đề (1p)
- Bài học trước em tìm hiểu chương trình con, cấu trúc phân loại Vậy chương trình viết nào, sử dụng chúng sao, có giống khác với chương trình khơng? Bài học hơm tìm hiểu nội dung
2 Triển khai
Hoạt động giáo viên học sinh Nội dung kiến thức Hoạt động 1: (theo nhóm) (12p)
GV: Giới thiệu tốn ví dụ mở đầu Giới thệu cho học sinh cấu trúc thủ tục, vị trí khai báo thủ tục, lời gọi thủ tục HS: Quan sát, theo dõi ví dụ
GV: Vị trí thủ tục nằm phần chương trình chính?
HS: Ở phần khai báo, sau phần khai báo biến
GV: Cấu trúc thủ tục gồm có phần?
HS: Ba phần: tên, khai báo, phần than GV: Phân biệt giống khác chương trình chương trình HS: Giống: cấu trúc chung
Khác: phần tên, từ khoá đặt tên Prcedure có tham số
GV: Yêu cầu học sinh xác định cấu trúc chung thủ tục
- Lời gọi thủ tục ta viết phần chương trình?
HS: Trong phần thân chương trình
§18 Ví dụ cách viết sử dụng chương trình Cách viết sử dụng thủ tục
a Cấu trúc thủ tục
Procedure <tên thủ tục>[<danh sách tham số>]; [<Phần khai báo>]
Begin
[<Dãy lệnh>] End;
* Trong đó:
- Phần đầu gồm tên dành riêng tên thủ tục, danh sách tham số (có thể có khơng);
- Phần khai báo: dùng để xác định hằng, kiểu, 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
Hoạt động 2: (Theo nhóm) (10p) GV: Chiếu ví dụ 2, u cầu học sinh nhận xét thủ tục ve_HCN ví dụ với ví dụ trước
* Tổ chức hoạt động nhóm; - Phân nhóm từ 4-6 em
b Ví dụ thủ tục * Ví dụ 1;
Program VD_thutuc2; Uses crt;
Var a, b, i: integer;
(100)- Công việc: Xác định chất thủ tục ve_HCN;
- Câu hỏi: câu lệnh thực vẽ cạnh trên, hai cạnh bên câu lệnh thực vẽ cạnh
- Kết thúc hoạt động: thu kết nhóm, u cầu nhóm trình bày kết nhóm
- Cho nhóm nhận xét kết làm
- GV: nhận xét kết đưa kết luận (có thể cho điểm nhóm làm tốt)
GV: Trong chương trình ta vẽ tất thủ tục
GV: Giới thiệu tham số giá trị bvà tham số biến
Var i,j: integer; Begin
{Ve canh tren cua hinh chu nhat} For i:=1 to chdai write(‘*’); Writeln;
For j:=1 to chrong-2 write(‘ ’); Begin
Write(‘*’);
For i:=1 to chdai-2 write(‘ ’); Writeln(‘*’);
End;
For i:=1 to chdai write(‘*’); Writeln;
End;
BEGIN {Bat dau chuong trinh chinh} Clrscr;
Ve_HCN(25,10); Writeln; Writeln; Ve_HCN(5,10); Readln;
Clrscr; a:=4; b:=2; For i:=1 to
Begin
Ve_HCN(a,b); Readln; clrscr; a:=a*2; b:=b*2; end;
Readln; END
* Tham số giá trị: có hai chức - Đưa liệu vào cho chương trình con; - Đưa liệu chương trình tìm
* Tham số biến: lệnh 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 gọi tham số biến
Hoạt động 3: (Chung lớp) (10p)
GV: Chiếu VD_thambien1 len bảng Hỏi: thủ tục thực cơng việc gì;
HS: Hốn đổi giá trị hai biến liệu vào cho
GV: Chạy chương trình thực đổi phần khai báo thành: Procedure Hoan_doi (x: integer; var y: integer);
để HS quan sát nhận xét khác tham biến tham trị
Program VD_thambien1; Uses crt;
Var a, b: integer;
Procedure Hoan_doi (var x, y: integer); Var TG: integer;
Begin
TG:=x; x:=y; y:=TG; End;
BEGIN Clrscr;
(101)Writeln(a:6, b:6); Hoan_doi(a,b); Writeln(a:6,b:6); END
IV Củng cố (5p)
- Khi cần khai báo tham số phần khai báo chương trình theo kiểu tham biến, theo kiểu tham trị
- Phân biệt giống khác tham biến tham trị V Dặn dò (1p)
- Xem tiếp nội dung lại
- Viết thủ tục tìm thơng báo số lớn ba số a, b, c
Ngày soạn: / /2010 Tiết 41
Ngày giảng:
Lớp 11A: / / / (sĩ số: ./ ) Lớp 11B: / / / (sĩ số: ./ )
Lớp 11C: / / / (sĩ số: ./ ) Lớp 11D: / / / (sĩ số: ./ )
Lớp 11E: / / / (sĩ số: ./ )
Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T2) A MỤC TIÊU
1 Kiến thức: - Giúp học sinh nắm được:
- Cấu trúc chung thủ tục chương trình - Phân biệt tham số tham trị
- Các khái niệm biến toàn cục biến cục
2 Kỹ năng: - Nhận biết thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu hai thủ tục
(102)- 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 độ: - Tiếp tục rèn luyện phẩm chất người lập trình tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tuân thủ theo yêu cầu việc chung
- Có ý thức lưu trữ liệu cách khoa học B PHƯƠNG PHÁP
- Thuyết trình giảng giải, kết hợp hình ảnh trực quan
- Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1 Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn Học sinh: SGK,
D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p) II Kiểm tra cũ III Bài
1 Đặt vấn đề (1p)
- Bài học trước em tìm hiểu chương trình con, cấu trúc phân loại Vậy chương trình viết nào, sử dụng chúng sao, có giống khác với chương trình khơng? Bài học hơm tìm hiểu nội dung
2 Triển khai
Hoạt động giáo viên học sinh Nội dung kiến thức Hoạt động 1: (theo nhóm) (12p)
GV: Cho biết tên cách sử dụng số hàm học?
HS: Hàm abs(), sqrt(),
- Viết tên hàm cần gọi tham số - Lời gọi hàm viết biểu thức tốn hạng, chí tham số hàm khác
GV: Chuẩn xác
- Điểm khác biệt thủ tục hàm gì?
HS: Trong than hàm cần có lệnh gán giá trị cho tên hàm
GV: so sánh giống khác hàm thủ tục?
HS: giống: có cấu trúc tương tự, có tham số,
- Khác: Tên hàm phải quy định kiểu liệu; Trong than hàm phải có lệnh: tên_hàm:= biểu_thức; Bắt đầu hàm từ khố Function
§18 Ví dụ cách viết sử dụng chương trình Cách viết sử dụng hàm
a Cấu trúc thủ tục
Function <tên thủ tục>[<danh sách tham số>]: <kiểu liệu>;
[<Phần khai báo>] Begin
[<Dãy lệnh>]
<tên hàm>:= <biểu thức>; End;
Hoạt động 2: (Theo nhóm) (15p) GV: Chiếu ví dụ rút gọn phân số
- Trong chương trình có sử dụng hàm
HS: hàm
GV: hàm UCLN(x,y) dùng để làm gì?
b Ví dụ hàm * Ví dụ 1;
Program Rutgon_Phanso; Uses crt;
Var a, tuso, mauso: integer;
(103)- Lời gọi hàm nằm đâu? Có khác với thủ tục lời gọi hàm?
HS: Lệnh a:=UCLN(tuso, mauso) ;
- Lời gọi hàm phải đặt lệnh lời gọi chương trình khác
GV: Có biến sử dụng chương trình? Các biến khai báo chổ chương trình chính?
HS: tuso, mauso, a : khai báo chương trình
- sodu: khai báo chương trình
GV: Yêu cầu học sinh phân biệt giống khác biến toàn cục biến cục
GV: chạy chương trình để học sinh kiểm nghiệm tự rút kết luận
Var sodu: integer; Begin
While y<>0 Begin
Sodu:= x mod y; X:= y;
Y:= sodu; End;
UCLN:=x; End;
BEGIN {Bat dau chuong trinh chinh} Clrscr;
Write(‘Nhap tu so va mau so: ‘); readln(tuso,mauso); A:=UCLN(tuso, mauso);
If a>1 then Begin
Tuso:= tuso div a; Mauso:= mauso div a; end;
Writeln(tuso:5, ‘/’ ,mauso:5); Readln;
END Hoạt động 3: (Chung lớp) (10p)
GV: Chiếu ví dụ Minbaso lên bảng minh hoạ cho học sinh cách gọi hàm HS: Chú ý quan sát theo dõi
* Ví dụ 2:
Program Minbaso; Uses crt;
Var a, b, c: real;
Function Min(a,b: real):real; Begin
If a<b then min:=a Else min:=b;
End;
BEGIN {Bat dau chuong trinh chinh} Clrscr;
Write(‘Nhap vao ba so: ‘); readln(a,b,c);
Writeln(‘So nho nhat ba so la: ‘,min(a,b,c); Readln
END IV Củng cố (5p)
- Phân biệt giống khác hàm thủ tục
- Phân biệt giống khác biến toàn cục biến cục V Dặn dò (1p)
(104)Ngày soạn : 21/03/2010 Ngày dạy :23/03/2010
Tiết PPCT : 37 Tuần : 30
Chương V TỆP VÀ THAO TÁC VỚI TỆP
Bài 14 + 15 : KIỂU DỮ LIỆU TỆP THAO TÁC VỚI TỆP A MỤC TIÊU
1 Kiến thức:
- Biết đặc điểm kiểu liệu tệp
- Biết khái niệm tệp có cấu trúc tệp văn 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 lien 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
B PHƯƠNG PHÁP
- Thuyết trình giảng giải, kết hợp hình ảnh trực quan - Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1 Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn Học sinh: SGK,
D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p) II Kiểm tra cũ III Bài
1 Đặt vấn đề (1p)
- Các em học kiểu liệu có cấu trúc kiểu mảng, kiểu xâu kiểu ghi Hôm thầy giới thiệu em kiểu liệu có cấu trúc Đó kiểu tệp
2 Triển khai
Hoạt động giáo viên học sinh Nội dung kiến thức Hoạt động 1: (chung lớp) (10p)
GV: 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?
HS: Bộ nhớ RAM
GV: Vì em biết điều đó? HS: Mất liệu ki điện
GV: Diễn giải: Để lưu giữ liệu, ta phải lưu nhớ ngồi thong 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 SGK cho biết đặc điểm kiểu tệp? Có loại tệp?
HS; Nghiên cứu trả lời
GV: 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
HS: Nghiên cứu SGK trả lời
§14 Kiểu liệu tệp
1 Vai tró kiểu liệu tệp
- Dữ liệu lưu trữ nhớ ngồi khơng bị tắt nguồn điện
- Lượng liệu lưu trữ tệp lớn Phân loại tệp thao tác với tệp a Phân loại tệp
* Theo cách tổ chức liệu:
- 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
* Theo cách thức truy cập:
(105)GV: Đối với kiểu liệu tệp có thao tác nào?
HS: Trả lời
+ Tệp truy cập tuần tự: cho phép truy cập 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í liệu b Thao tác với tệp
- Ghi liệu vào tệp đọc liệu từ tệp thực với phần tử tệp
Hoạt động 2: (theo nhóm) (7p)
GV: Yêu cầu học sinh nghiên cứu SGK cho biết cú pháp khai báo kiểu tệp Nêu ví dụ cụ thể
HS: Nghiên cứu trả lời
§15 Thao tác với tệp Khai báo
a Cú pháp
Var <tên biến tệp>:text; b Ví dụ
Var tep1, tep2: text; Hoạt động 3: (theo nhóm) (20p)
GV: Giới thiệu thao tác gắn tên tệp, mở tệp, đọc/ghi tệp văn bản, đóng tệp Đối với thao tác yêu cầu học sinh lấy ví dụ cụ thể
HS: Assign(tep2, ‘C:\INP.DAT’);
HS: Assign(tep3,’C:\KQ.DAT’); Rewrite(tep3);
HS: Assign(tep1, ‘KQ.DAT’); Reset(tep1);
HS: Readln(<biến tệp>, <danh sách biến>);
HS: Writeln(<biến tệp>,<danh sách kết quả>);
2 Thao tác với tệp a Gắn tên tệp
* Cú pháp: Assign(<biến tệp>, <tên tệp>); Trong tên tệp biến xâu xâu * Ví dụ:
Assign(tep1, ‘DULIEU.DAT’); Assign(tep2, ‘C:\INP.DAT’); b Mở tệp
* Mở tệp để ghi: Rewrite(<biến tệp>); * Ví dụ: Assign(tep3,’C:\KQ.DAT’); Rewrite(tep3);
- Chú ý: Nếu thư mục gốc ổ đĩa C có tệp KQ.DAT nội dung cũ sẻ bị xóa, khơng tệp tạo với nội dung rỗng
* Mở tệp để đọc: Reset(<biến tệp>); * Ví dụ: tentep:= ‘KQ.DAT’;
Assign(tep1, tentep); Reset(tep1);
Hoặc: Assign(tep1, ‘KQ.DAT’); Reset(tep1);
c Đọc/ghi tệp văn * Đọc:
Read(<biến tệp>, <danh sách biến>); Hoặc:
Readln(<biến tệp>, <danh sách biến>); * Ghi:
Write(<biến tệp>,<danh sách kết quả>); Hoặc:
(106)HS: Close(tep3);
GV: Sử dụng máy chiếu chiếu chương trình ví dụ tổng hợp lên bảng để học sinh quan sát Yêu cầu học sinh đọc hiểu chương trình
* Một số hàm chuẩn thường dùng đọc/ghi tệp văn bản:
- eof: trả giá trị true trỏ tệp tới cuối tệp
- eoln: trả giá trị true trỏ tệp tới cuối dịng
d Đóng tệp
* Cú pháp: Close(<biến tệp>); * Ví dụ: Close(tep1);
IV Củng cố (5p)
- Nêu vai trò phân loại tệp?
- Đọc hiểu phân biệt hàm, thủ tục, ý nghĩa chương trình mẫu GV đưa V Dặn dò (1p)
(107)Ngày soạn : 21/03/2010 Ngày dạy :23/03/2010
Tiết PPCT : 38 Tuần : 30
Bài 16: V Í DỤ LÀM VIỆC VỚI TỆP A 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ụ Kỹ năng: Sử dụng hàm thủ tục liên quan để giải tập 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 B PHƯƠNG PHÁP
- Thuyết trình giảng giải, kết hợp hình ảnh trực quan - Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1 Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn Học sinh: SGK,
D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p) II Kiểm tra cũ (5p)
* Câu hỏi: Sắp xếp bảng theo thứ tự bước mở tệp để ghi để đọc?
Assign(<biến tệp>, <tên tệp>); Rewrite(<biến tệp>); Reset(<biến tệp>); + Read(<biến tệp>, <danh sách biến>); Write(<biến tệp>, <danh sách kết quả>); Close(<biến tệp>);
* Đáp án:
- Mở để ghi: + Assign(<biến tệp>, <tên tệp>); Rewrite(<biến tệp>); Write(<biến tệp>, <danh sách kết quả>); Close(<biến tệp>);
- Mở để đọc: + Assign(<biến tệp>, <tên tệp>); Reset(<biến tệp>); Read(<biến tệp>, <danh sách biến>); Close(<biến tệp>);
III Bài Đặt vấn đề (1p)
- Bài học trước em làm quen với kiểu liệu kiểu liệu tệp, để em nắm phần kiến thức lí thuyết học, học hơm vào tìm hiểu số ví dụ cụ thể Triển khai
Hoạt động giáo viên học sinh Nội dung kiến thức Hoạt động 1: (chung lớp) (10p)
GV: 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àm eof(f) có chức gì?
HS: Trả giá trị true trỏ tệp định vị vị trí kết thúc tệp
GV: Có thể sử dụng cấu trúc FOR thay cho WHILE khơng?
HS: Khơng, số lượng phần tử tệp
GV: Chương trình thực cơng việc gì? Vì sao?
HS: Tính đưa hình khoảng cách từ trại thầy hiệu trưởng đến trại giáo viên
GV: Giới thiệu cho HS cách tạo file
Ví dụ (SGK, trang 87) Progam Khoang_cach;
Var d: real; f :text; x, y: integer; Begin
Assign(f, ‘TRAI.TXT’); Reset(f);
While not eof(f) Begin
Read(f,x,y);
D:= sqrt(x*x+y*y);
Write(‘Khoang cach: ‘,d:10:2); End;
(108)TRAI.TXT Thực chương trình để học sinh thấy kết
Hoạt động 2: (theo nhóm) (7p)
GV: Chiếu tranh mơ kết nối điện trở, hình 17, trang 88 SGK Hãy cho biết cơng thức tính điện trở sơ đồ II, III, IV?
HS: Nghiên cứu trả lời
GV: Chiếu chương trình ví dụ lên bảng Hỏi mảng A dùng để lưu trữ giá trị nào?
HS: Lưu trữ giá trị điện trỡ tương đương theo cách ghép nối sơ đồ
GV: Cho file liệu vào gồm hàng Yêu cầu học sinh tính kết
HS: Tính kết điện trở tương đương GV: Thực chương trình đọc file liệu vào để học sinh đối chiếu kết
HS: Quan sát kết chương trình so sánh với kết tính Nhận xét tính xác thời gian thực chương trình
2 Ví dụ (SGK, trang 87) Program Dien_tro;
Var a: array[1 5] of real;
R1, R2, R3: real; f1,f2 :text; i: integer; Begin
Assign(f1, ‘RESIST.DAT’); Reset(f1);
Assign(f2, ‘RESIST.EQU’); Rewrite(f2);
While not eof(f1) Begin
Readln(f1,R1,R2,R3);
a[1]:=R1*R2*R3/(R1*R2+R1*R3+R2*R3); a[2]:=R1*R2/(R1+R2)+R3;
a[3]:=R1*R3/(R1+R3)+R2; a[4]:=R2*R3/(R2+R3)+R1; a[5]:=R1+R2+R3;
For i:=1 to write(f2, a[i]:9:3,’ ‘); Writeln(f2);
End;
Close(f1); Close(f2); End
Hoạt động 3: (Chung lớp) (p)
GV: Cung cấp cho HS số kiến thức mở rộng
- Giới thiệu cho HS thủ tục mở file để ghi thêm liệu vào file?
HS: Quan sát ghi
GV: Giới thiệu hàm kiểm tra tồn file
- Ý nghĩa: hàm trả giá trị TRUE tập tin cần mở có đĩa, ngược lại cho giá trị False - Lồng hàm vào ví dụ cho HS kiểm chứng
* Thủ tục: APPEND(biến tệp);
* Ý nghĩa: Thủ tục dùng để mở tập tin có tên gán cho biến tệp thủ tục Assign trước Khi tệp mở cửa sổ tệp định vị vị trí kết thúc tệp Từ ghi thêm liệu vào cuối tệp
FUNCTION FileExists (tên_file: String):Boolean; Var F: FILE;
Begin {$I-}
Assign (f, tên_file); Reset (f); Close (f); {$I+}
FileExists:= (IOResult=0); End;
IV Củng cố (5p)
- Nêu thao tác với tệp văn bản? V Dặn dò (1p)
- Bài tập:
(109)Ngày soạn : Ngày dạy :
Tiết PPCT : 39 Tuần : 31
Bài 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 1)
I Mục đích yêu cầu:
+ Biết CTC khối lệnh nhằm giải nêu để góp phần giải nêu lớn chương trình
+ Biết viết nhứng chương trình dài, phức tạp thỡ việc sử dụng CTC cần thiết + Biết lợi ích việc sử dụng CTC
II Chuẩn bị:
Máy chiếu bảng phụ viết sẵn chương trình tinh_tong khơng sử dụng chương trình sử dụng chương trình
III Tiến trình dạy :
Hoạt động GV HS Nội dung
+ Hoạt động 1:(5’) Đặt vấn đề:
Các chương trình giải nêu phức tạp thường dài, gồm nhiều lệnh, đọc khó hình dung chương trình thực cơng việc việc hiệu chỉnh chương trình khó khăn
Như làm nêu phức tạp dễ đọc, dễ hiểu, dễ hiệu chỉnh, dễ nâng cấp?
Do ta nghiên cứu vấn đề CTC, để tìm hiểu CTC ? + Hoạt động (17’)
Tỉnh tổng : an + bm + cp + dq
+ GV cho HS nêu ý tưởng nêu
+ HS nêu ý tưởng giải nêu trả lời
Có nghĩa chia nêu thành nêu nhỏ, làm làm mịn dần nêu -> thiết kế toán từ xuống
+ GV phân tích: để giải BT MT chia chương trình thành khối, khối gồm nhiều lệnh giải tốn -> chương trình xây dựng từ CTC
+ Chương trình ?
+ Giáo viên chốt lại khái niệm bảng phụ, máy chiếu viết bảng
+ Hoạt động ( 17’)
+ GV dùng bảng phụ 1: tinh_tong ( không sử dụng CTC trang 92 SGK ), cho HS nhận xét đoạn chương trình
+ Chỳ ý bảng phụ trình chiếu, sau nhận xét + GV chốt lại ý: đoạn CT có đoạn lệnh tương tự -> chương trình dài, khú theo dừi, khú hiệu chỉnh
+ Dùng bảng phụ 2: Chương trình tinh_tong có sử dụng chương trình
+ HS nhận xét so sánh đoạn chương trình + GV giải rhích : dùng lệnh:
var j: integer; tich:=1.0; for j:=1 to k
1.Khái niệm chương trình con Những tốn phức tạp phân chia thành nhiều nêu nhỏ, nêu nhỏ phân chia thành nhiều nêu nhỏ, q trình làm “mịn” dần tốn gọi cách thiết kế từ xuống
Khi lập trình để giải nêu chia thành khối, khối bao gồm lệnh để giải nêu đó, khối lệnh xây dựng thành CTC , sau chương trình xây dựng CTC này, cách lập trình gọi chương trình có cấu trúc 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
* Lợi ích việc sử dụng CTC
(110)tich:=tich*x
+ Để tính luỹ thừa ta viết: Luythua(a,n), luythua(b,m), Luythua(c,p), luythua(d,q)
+ Và rừ đoạn lệnh thay CTC
+ Từ điều nêu cho HS nêu ích lợi CTC + GV giải thích rừ ích lợi việc sử dụng CTC + Các HS nêu lợi ích CTC
lệnh;
+ Hổ trợ việc thực chương trình lớn;
+ Phục vụ cho quỏ trình trừu tượng hố ;
+ Mở rộng khả ngôn ngữ; + Thuận tiện cho phát triển, nâng cấp chương trình;
IV Củng cố:
(111)Hàm Thủ tục
Ngày soạn :4/4/2010 Ngày dạy :5/4/2010
Tiết PPCT : 41 Tuần : 32
Bài 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 2) I: Mục tiêu :
1 Kiến thức:
Biết phân biệt hai loại chương trình con: Hàm thủ tục Biết cấu trúc chương trình
Biết phân biệt tham số hình thức ví i tham số thực sự, biến cục ví i biến tồn cục 2 Kỹ năng:
- Nhận biết hai loại tham số hình thức tham số thật - Nhận biết phạm vi hoạt động biến toàn cục, biến cục
- Cách thực chương trinh Thái độ:
- Phát huy tinh thần học tập theo nhóm II Đồ dùng dạy học:
-GV: Bảng phụ, máy chiếu(nếu có ) -HS: SGK, sách tập
IV Tiến trình học. ổn định :
2 Bài cũ : Câu 1: Trình bày khái niệm chương trình ?
Câu 2: Mục đích sử dụng chương trình ? Bài giảng :
Hoạt động GV & HS Nội dung
ĐVĐ: Chúng ta biết chương trình ? Lợi ích việc sử dụng chương trình lập trình Nhưng ta chưa biết chương trình chương trình có cấu trúc nào? Và phân loại nào?
-Trong nhiều ngôn ngữ lập trình chương trình phân làm loại?
-Trong ngôn ngữ pascal em cho biết số hàm thủ tục chuẩn mà em biết?
-HS trả lời câu hỏi:
+ Hàm: Sin(x), sqrt(x),length(x) + Writeln, readln,
-Xét hàm sin(x)
Ví i x=∏/6 giá trị hàm sin(x) cho kết bao nhiờu ? -HS trả lời câu hỏi:
Sin(x)=1/2
GV nhận xét : Sau thực tính tốn hàm sin(x) ví i x= ∏/6 cho giá trị 1/2
Vậy em cho biết hàm có đặc điểm ?(hay hàm ?).
-Xét thủ tục Writeln, Writeln(‘‘xin chao’’)
Thủ tục Writeln(‘xin chao’) làm ? cho kết ? có trả giá trị khơng ?.
Vậy em cho biết thủ tục có đặc điểm ?(hay hàm gì ?).
ĐVĐ : Trên sở phân loại hàm thủ tục ta tìm
2 Phân loại cấu trúc chương trình con.
a Phân loại:
+Hàm: Là chương trình thực số thao tác Trả lại giá trị qua tên hàm
+Thủ tục: Là chương trình thực số thao tác Khơng trả lại giá trị qua tên thủ tục
b Cấu trúc chương trinh con <Phần đầu>
[<Phần khai báo >] <Phần thân > +Phần đầu:
+ Để khai báo tên hàm thủ tục
+ Nếu hàm phải khai báo kiểu liệu chi giá trị trả hàm
+ Nhất thiết phải có +Phần khai báo :
+ Khai báo biến cho liệu vào/ra, biến dùng chương trình
+Phần thân :
(112)Hoạt động GV & HS Nội dung hiểu cấu trúc hàm thủ tục (Chương trình con) tổ
chức ?
-Các em cho biết chương trình gồm phần ? (kiến thức củ).
-Học sinh trả lời:
[<Phần khai báo >] <Phần thân >
-Trong chương trình cấu trúc nú gồm phần ?
-Học sinh trả lời:
<Phần đầu>
[<Phần khai báo >] <Phần thân >
-Về chương trình chuơng trình có tương tự khơng ?
-Phần đầu dùng để làm ? -Phần Khai báo dùng để làm ? -Phần thân dùng để làm ?
Xét ví dụ : Tính luỹ thừa : luythua= xk tên chương
trình đặt luythua, tên biết chưa liệu vào x, k Vậy tính xk ta viết luythua(x,k) Khi x, k tham số
hình thức
-Vậy tham số hình thức ?
ĐVĐ : Đối biến cục bộ, ,biến toàn cục thỡ phạm vi hoạt động ?
ĐVĐ : Sau có chương trình con, muốn thực chuơng trình thỡ ta làm ?
-Hãy cho ví dụ lệnh gọi CTC ?
Xét ví dụ :CTC luythua(x,k) ví i x,k tham số hình thức Ví i biến : a =2, b=3
Lệnh gọi CTC Luythua(a,b) tham số hình thức x,k nhận giá trị tương ứng tham số thực a,b
-Học sinh đọc sách GK trả lời
những iệu vào/ra ta nhận liệu hay kết qủa mong muốn
*Khái niệm biến:
- Tham số hình thức: gồm biến khai báo cho liệu vào/ra
- Biến cục bộ: Gồm biến khái khai báo chương trình
- Biến tồn cục: Gồm biến khái khai báo chương trình
*Phạm vi hoạt động biến: -Biến cục bộ:
+ Chỉ sử dụng chương trình cuả nú mà thụi
+ Khơng thể sử dụng biến cục cuả chương trình cho chương trình chương trình khác
-Biến toàn cục:
+ Được sử dụng chương trình sử dụng chương trình
c Thực chương trình con: -Để thực gọi chương trình ta thực lệnh theo có pháp sau
Có pháp :
<tên chương trình con>(<tham số thực sự>)
Trong đó: tham số thực hằng, biến chứa liệu vào/
V Cũng cố kiến thức: -CTC gồm: Hàm thủ tục. -Cấu trúc chương trinh con. -Biến cục bộ, biến toàn cục.
(113)Ngày soạn :4/4/2010 Ngày dạy :5/4/2010
Tiết PPCT : 42 Tuần : 32
Bài 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, tuân thủ u cầu cơng việc chung
II CHUẨN BỊ :
Giáo viên : Máy vi tính máy chiếu projector để giới thiệu ví dụ.
Học sinh : Sách giáo khoa.
III TIẾN TRÌNH LÊN LỚP :
1 Hoạt động 1: Tìm hiểu cấu trúc chung vị trí thủ tục chương trình chính.
HOẠT ĐỘNG CỦA GV VÀ HS NỘI DUNG
- Chiếu chương trình ví dụ lên bảng (Ví dụ VD-thutuc1, trang 96) Giới thiệu cho học sinh cấu trúc thủ tục vị trí khai báo thủ tục, lời gọi thủ tục
2 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?
- Ba phần: Tên thủ tục, khai báo thủ tục phần thân thủ tục
- Hỏi: Phân biệt giống khác chương trình chương trình chính?
- Giống: Cấu trúc chung
- Khác: Trong phần tên: Từ khóa đặt tên Procedurre, có tham số
- Giới thiệuc cấu trúc chung thủ tục
- 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 - 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
- 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
1 Cách viết sử dụng thủ tục a Cấu trúc thủ tục:
Procedure <Tên thủ tuc> [(<DS tham số>)];
[< phần khai báo>] Begin
[<Dãy lệnh>] End;
- Phần đầu thủ tục gồm tên dành riêng Procedure, tên thủ tục DS tham số có khơng có - Phần khai báo: Dùng để xác định hằng, kiểu, biến xác định chương trình khác sử dụng thủ tục
- Dãy câu lệnhh:Được viết cặp tên dành riêng Begin và End tạo thành thân thủ tục
b VD thủ tục:
- Trong lời gọi thủ tục tham số hình thức thay tham số thực tương ứng giá trị cụ thể đgl tham số giá trị (tham trị)
(114)các tham số thực
- So sánh tham số lời gọi ve_hcn(5,10); ve_hcn(a,b);
4 Tìm hiểu tham số giá trị tham số biến - 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 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 dữ 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
hình thức thay tham số thực tương ứng tên biến chứa liệu đgl tham số biến (tham biến)
2.Hoạt động 2: Tìm hiểu cấu trúc chung vị trí hàm chương trình chính.
HOẠT ĐỘNG CỦA GV VÀ HS NỘI DUNG
1 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
1 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 nêu hạng, chí tham số hàm khác
2 Giới thiệu cấu trúc chung vị trí hàm chương trình
- Hỏi: So sánh giống khác hàm thủ tụ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 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
- 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
- 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?
II/ Dạng Hàm (Function) 1/ Cấu trúc:
Function <tên hàm>[<danh sách tham số>]: <kiểu liệu>;
[khai báo biến]; Begin
[<dãy lệnh>] End;
- <Kiểu liệu>: Kiểu liệu trả lại hàm kiểu integer, real, char, boolean, string
Vd: Function tong(x,y: integer): integer;
2/
Sử dụng hàm:
- Giống hàm chuẩn, viết tên hàm gọi thay tham số hình thức tham số thực tương ứng
- Lệnh gọi hàm tham gia vào biểu thức tốn hạng
Ví dụ: A:= 8*UCLN(x,y)-3;
Chú ý: Trong thân hàm phải có lệnh gán giá trị cho tên hàm <tên hàm>:= <biểu thức>;
3/ Phân biệt hàm thủ tục: a/ Giống nhau:
(115)Các biến khai báo chỗ 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
giống chương trình
- Đều chứa tham số, tuân theo quy định khai báo b/ Khác nhau:
- Tên hàm phải có kiểu liệu - Trong thân hàm phải có lệnh gán giá trị cho tên hàm