Củng cố các kiến thức cơ bản và kĩ năng đã có khi lập trình với kiểu dữ liệu mảng.\ Củng cố HS một thuật toán sắp xếp các phần tử của một dãy (bằng tráo đổi). Kĩ năng[r]
(1)CHƯƠNG 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
- -KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
I MỤC ĐÍCH, U CẦU
- Hiểu khả ngơn ngữ lập trình bậc cao, phân biệt với ngôn ngữ máy hợp ngữ - Hiểu ý nghĩa nhiệm vụ chương trình dịch
- Phân biệt biên dịch thông dịch
II PHƯƠNG PHÁP
Phát vấn kết hợp diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
SGK, SGV, bảng vẽ khổ lớn… có máy chiếu tốt
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (Kiểm tra sĩ số)
2 Ơn lại kiến thức cũ (nếu có) 3 Hoạt động dạy học
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Hoạt động 1: tìm hiểu khái niệm
lập trình ngơn ngữ lập trình Ở lớp 10 em học loại ngơn ngữ lập trình
? Hãy cho thầy biết có loại
ngơn ngữ lập trình?
? Cho biết đặc điểm loại?
? Có bước để giải tốn máy tính? Kể tên?
Chúng ta thấy bước thứ viết chương trình hay cịn gọi lập trình?
Thế lập trình?
Bài tốn:
Viết chương trình giải phương trình ax + b = 0?
Có loại: ngơn ngữ máy, hợp ngữ, ngơn ngữ lập lập trình bậc cao? Ngơn ngữ máy ngơn ngữ máy hiểu trực tiếp
Hợp ngữ: sd từ tiếng Anh
Ngơn ngữ lập trình bậc cao:
Các bước để giải tốn máy tính:
- Xác định toán - Xây dựng lựa thuật toán
- Viết chương trình (lập trình)
- Hiệu chỉnh - Viết tài liệu
Input: hai số a, b
Ngày soạn: 03/8/2010 Tuần:
(2)? Hãy xác định Input Output
bài tốn?
Xác định thuật tốn?
Đó thuật toán toán ? Để diễn tả thuật toán cho người nước ngồi hiểu em dùng ngơn ngữ nào?
? Còn máy hiểu em dùng ngôn ngữ nào?
Dẫn dắt vấn đề: hoạt động diễn đạt thuật tốn thơng qua ngơn ngữ lập trình gọi lập trình
Đọc SGK cho biết lập trình?
Giải thích câu lệnh Về việc chọn ngơn ngữ lập trình ta chọn loại ngôn ngữ
Nhưng đặc điểm vượt trội ngôn ngữ bậc cao nên người ta thường sd để lập trình
? Những đặc điểm
đặc điểm nào? Và để sd ngơn ngữ lập trình bậc cao phải có gì? Đó đặc điểm ngơn ngữ lập trình Nhưng sd ngơn ngữ lập trình bậc cao cần phải có chương trình dịch
Chức chương trình dịch
Ví dụ SGK giới thiệu trường
Chương trình dịch có hai loại: Biên dịch thông dịch
Output: x = - b/a, ptvn, pt có vơ số nghiệm Bước 1: nhập a, b; Bước 2: a <> x=-b/a
Bước 3: Nếu a = ptvn;
Bước 4: a = b=0 pt có vơ số nghiệm Em dùng tiếng Anh Ngơn ngữ lập trình HS phát biểu
HS chia nhóm thảo luận phút
Dịch từ ngôn ngữ khác sang ngơn ngữ máy
1 Khái niệm lập trình
Lập trình sử dụng cấu trúc liệu câu lệnh ngơn ngữ lập trình cụ thể để mô tả liệu diễn đạt thao tác thuật tốn
2 Chương trình dịch
Chức năng: chuyển đổi chương trình viết NNLT bậc cao thành chương trình thực máy
Chương trình dịch có hai loại: biên dịch thông dịch
a) Thông dịch:
Chương trình dịch
Chương trình nguồn
(3)? Biên dịch thông dịch khác
nhau chỗ nào?
Biên dịch:
- Dịch toàn chương trình
- Có thể lưu trữ để sd lại Thông dịch:
- Dịch câu lệnh - Khơng lưu lại
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 nhiều câu lệnh tương ứng NN máy
Thực câu lệnh vừa chuyển
b) Biên dịch:
Duyệt, phát lỗi, kiểm tra tính đắn câu lệnh
Dịch tồn chương trình nguồn thành chương trình đích thực máy lưu trữ để sd lại cần thiết
V CỦNG CỐ - DẶN DÒ a Củng cố:
Thế lập trình?
Chức chương trình dịch?
Sự giống khác biên dịch thông dịch?
b Dặn dò: Soạn trước:
? Thành phần NNLT?
? Thế tên? Qui tắc đặt tên?
? Có loại tên? phải nhớ tên riêng? ? Thế hằng? biến?
(4)CÁC THÀNH PHẦN CƠ BẢN CỦA NGƠN NGỮ LẬP TRÌNH
I MỤC ĐÍCH U CẦU
- Biết ngơn ngữ lập trình có ba thành phần
- Biết số khái niệm tên, tên dành riêng, tên chuẩn, biến
- HS nhớ qui định cách đặt tên hằng, biến Biết nhận biết tên đặt sai,
II PHƯƠNG PHÁP
Diễn giảng kết hợp phát vấn
III PHƯƠNG TIỆN DẠY HỌC
SGK, SGV, có máy chiếu tốt
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (Kiểm tra sỉ số)
2 Kiểm tra cũ
Câu 1: Chức chương trình dịch
Câu 2: Sự giống khác biên dịch thông dịch
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DỤNG
Hoạt động 1:
? Có yếu tố để xây dựng nên ngôn ngữ tiếng Việt?
NNLT tương tự vậy, gồm thành phần: bảng chữ cái, cú pháp ngữ nghĩa
? Hãy đọc SGK trang 9 cho thầy biết Pascal bảng chữ bao gồm kí tự nào?
Sau HS trả lời treo bảng khổ lớn bảng chữ
Bảng chữ NNLT nói chung khơng khác nhiều
VD: C++ khác với Pascal cịn có sd thêm kí tự dấu (“), ( \), ( ! )
Nhờ vào chúng mà chương trình dịch biết tổ hợp kí tự bảng chữ hợp lệ tổ hợp
Bảng chữ tiếng Việt, số, dấu
Cách ghép kí tự thành câu, cách ghép từ thành câu Ngữ nghĩa từ và câu
Đọc SGK trả lời câu hỏi
Chú ý nghe giảng
1 Các thành phần bản a) Bảng chữ
Tập hợp kí tự dùng để viết chương trình
Khơng dùng kí tự ngồi kí tự qui định bảng chữ
Ví dụ:
Trong Pascal bảng chữ bao gồm: Chữ thường chữ in hoa tiếng Anh
a z ; A Z;
10 chữ thập phân: kí tự đặc biệt:
+ - * / = < < [ ] , ; # ^ @ $ & ( ) { } : ‘
Dấu cách (mã ASCII 32)
b) Cú pháp Là qui tắt để viết chương
trình
Ngày soạn: 08/8/2010 Tuần:
(5)nào khơng hợp lệ Nhờ đó, mơ tả thuật toán để máy thực
VD: phần lớn NNLT sd dấu cộng ( +)
Xét hai biểu thức sau:
A + B (1)
I + J (2)
Giả sử: A, B đại lượng nhận giá trị thực; I, J nhận giá trị nguyên
(giải thích số thực số nguyên)
Dấu (+) biểu thức (1) cộng hai số thực
Dấu (+) biểu thức (2) cộng hai số nguyên
Hoạt động 2: Một số khái niệm
Một khái niệm tên
Tên phải đặt theo qui tắc đặt tên tuỳ vào NNLT
? Những tên tên nào qui tắc tên sai qui tắc NNLT Pascal? LOP11C2
LOP 11C2 LOP_11C2 2D
A\B
Lưu ý: NNLT Pascal không phân biệt chữ hoa chữ thường
Lấy ví dụ tên HS Tên có loại tên sau:
Chúng ta không dùng tên với ý nghĩa khác
? Trong Pascal có những tên riêng nào?
Ý nghĩa tên chuẩn qui định thư viện NNLT
? Trong Pascal có những tên chuẩn nào?
Chúng ta nên đặt tên cho gợi nhớ nội dung khơng nên đặt dài hay
Những tên đúng: LOP11C2 LOP_11C2 Những tên sai
LOP 11C2, 2D, A\B
Program, uses, const, type, var, begin, end…
abs, sqr, sqrt, byte, integer, real, longin…
c) Ngữ nghĩa xác định ý nghĩa thao tác
cần phải thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh
2 Một số khái niệm a) Tên
Mọi đối tượng chương trình phải đặt tên theo qui tắc NNLT chương trình dịch cụ thể
* Trong Turbo Pascal tên:
- Khơng chứa dấu cách, khơng q 127 kí tự, khơng chứa kí hiệu đặc biệt
- Bắt đầu chữ dấu gạch
VD:
- Tên
LOP11C2, LOP_11C2 - Tên sai:
LOP 11C2, 3D, A\B
* Tên dành riêng (từ khoá): NNLT qui định dùng với ý nghĩa xác định
Vd: Trong pascal: program, uses, const, type, var, begin, end…
* Tên chuẩn: dùng với ý nghĩa Nhưng ta khai báo dùng với ý nghĩa mục đích khác
(6)ngắn vd: để đặt tên cho điểm mơn tốn ta nên đặt dtoan khơng nên đặt dt hay diem_mon_toan
? Vì ta phải nhớ tên dành riêng?
Hằng có nhiều loại như: số học, logic, xâu…
VD: DELTA, I, J…
Khi đặt thích chương trình dịch bỏ qua
Để đặt tên khơng trùng
* Tên người lập trình đặt: tên xác định cách khai báo trước sd, không trùng với tên dành riêng Vd: X1; X2; DELTA, CT_VD; BAI6_3
b) Hằng biến * Hằng:
Hằng đại lượng không thay đổi trình thực chương trình Vd: - số học: 2; 0; -5; 1.25; -2.36
- logic: TRUE; FALSE
- xâu: ‘tin hoc’; ‘nguyen_van_A’; ‘Truong THPT Duyen Hai’
* Biến:
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) Chú thích:
Đặt thích để người đọc chương trình dễ hiểu
Trong pascal thích đặt dấu (* *) { }
V.CỦNG CỐ - DẶN DÒ 1 Củng cố:
- Thành phần NNLT: bảng chữ cái, cú pháp, ngữ nghĩa - Một số khái niệm: tên, hằng, biến
2 Dặn dò:
(7)BÀI TẬP CUỐI CHƯƠNG 1
- -I MỤC ĐÍCH - YÊU CẦU
- Củng cố lại kiến thức chương - Giải số tập chương
II PHƯƠNG PHÁP
Phát vấn kết hợp làm việc theo nhóm diễn giảng
III NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp: (Kiểm tra sĩ số)
2 Kiểm tra cũ
Câu 1: Hãy kể tên thành phần NNLT?
Câu 2: Thế tên dành riêng? Tại ta phải nhớ tên dành riêng? Câu 3: Những tên sau qui tắc, sai qui tắc?
_VIDU1; A#B; VI_DU1; VAR; VAR1
3 Nội dung:
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DỤNG
Câu Tại người ta phải
xây dựng NNLT bậc cao?
Câu 2: Chương trình dịch là
gì? Tại phải có chương trình dịch?
Nêu Input Output chương trình dịch
Câu 3: Biên dịch thông
dịch khác chỗ nào?
Câu Cho biết điểm
khác tên riêng tên chuẩn?
Gọi em trả lời
Câu 5: Hãy viết tên đúng
và tên sai theo qui tắc Pascal
Câu 6: Hãy cho biết những
biểu diễn không
Trao đổi nhóm phút
Trao đổi nhóm phút?
Trả lời câu hỏi
Trả lời câu hỏi
-3 tên đúng: VI_DU, _BAI6, BAITAP
- Tên sai: 2AB, I+J, BAI TAP
Câu 1
Người ta phải xây dựng NNLT bậc cao:
- NNLT bậc cao gần với NN tự nhiên hơn, thuận tiện cho đông đảo người lập trình
- Chương trình viết NNLT bậc cao phụ thuộc vào máy
- Chương trình viết NNLT bậc cao dễ hiểu, dễ hiệu chỉnh dễ nâng cấp - Cho phép làm việc với nhiều kiểu liệu cách tổ chức liệu đa dạng thuận tiện cho mơ tả thuật tốn
Câu 2:
- SGK trang
- Nhờ có chương trình dịch mà chương trình dịch mà máy thực chương trình viết NNLT bậc cao
Câu 4: tên dành riêng không dùng
với ý nghĩa khác; tên chuẩn dùng với ý nghĩa khác
Ngày soạn: 14/8/2010 Tuần:
(8)phải biểu diễn Pascal lỗi trường hợp:
a) 150.0 b) -22 c) 6,23 d) ‘43’ e) A20 f) ‘C g) 1.06E-15 h) 4+6 i) ‘TRUE”
Nếu thời gian cho bài tập thêm:
Câu 7: Hãy tên
nào tên sai Pascal giải thích lí do:
#TONG 1DIEM SO2
USES1 DT HV END
EN5D BAI_1 BAI1
Câu 8: thích nào
sau sai? Giải thích lí do?
a (*giải phương trình* b.(*giải phương trình*) c.(*giải phương trình} d.{giải phương trình e.{giải {phương{ trình} f.{giải (*phương trình}
Thảo luận phút
Những tên sai:
#TONG : Sai tên bắt đầu kí tự đặc biệt #
1DIEM : Sai bắt đầu kí tự số
END : Sai trùng với từ khố
DT HV : Sai có dấu cách
Chú thích sai: a : sai thiếu dấu )
c : sai mở (* đóng }
d : sai thiếu dấu }
Những biểu diễn không hằng:
6,23: dấu phẩy (nếu dấu chấm đúng)
A20: tên khơng rõ giá trị
‘C: sai qui định xâu: thiếu dấu nháy đơn cuối
IV DẶN DÒ
Về nhà học tiết sau kiểm tra 15 phút Soạn trước theo câu hỏi sau:
Câu 1: Cấu trúc chương trình viết NNLT?
Câu 2: Các cách khai báo Pascal: khai báo tên chương trình, khai báo thư viện, khai báo hằng, khai báo biến
Câu 3: thân chương trình Pascal gồm từ khố nào?
(9)KIỂM TRA ĐÁNH GIÁ 15 PHÚT
I MỤC ĐÍCH
Kiểm tra lại khã tiếp thu q trình học tập HS Từ điều chỉnh phương pháp giảng dạy
II BẢNG RA ĐỀ KIỂM TRA
III NỘI DUNG
IV KẾT QUẢ KIỂM TRA
Trên trung bình: Dưới trung bính:
Mức độ Bài Bài
Biết 1, 2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 18, 19, 20
Hiểu 9, 11, 12
(10)CHƯƠNG II CHƯƠNG TRÌNH ĐƠN GIẢN -
-BÀI CẤU TRÚC CHƯƠNG TRÌNH
I MỤC ĐÍCH – U CẦU
Hiểu chương trình mơ tả thuật tốn NNLT
Biết cấu trúc chương trình đơn giản: cấu trúc chung thành phần Nhận biết thành phần chương trình đơn giản
II PHƯƠNG PHÁP
Phát vấn kết hợp với diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
SGK, SGV, giáo án, số bảng vẽ lớn
IV NỘI DUNG VÀ DIỄN BIẾN TIẾT DẠY 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ
Câu 1: NNLT có thành phần nào?
Câu 2: Thế tên dành riêng? Viết số tên dành riêng mà em biết? Câu 3: Tên dành riêng khác với tên chuẩn điểm nào?
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Hoạt động 1:
? Một làm văn em thường viết có phần? phần có thứ tự không? phải chia vậy?
Tư tự chương trình viết NNLT bậc cao có thành phần thứ tự thành phần
Yêu cầu HS đọc SGK
? Cấu trúc chung chương trình viết NNLT bậc cao có thành phần nào?
Phần khai báo đặt dấu ngoặc vng có nghĩa có khơng Phần thân thiết phải có
? Trong khai báo có loại nào?
? Để khai báo tên chương trình ta khoá nào?
Khai báo tên chương trình có ý nghĩa để ghi nhớ tên tốn cần giải
Một số NNLT không cần
Lắng nghe, suy nghĩ trả lời: Có phần
Có thứ tự: mở bài, thân bài, kết luận
Để dễ viết, dễ đọc, dễ hiểu nội dung
Đọc SGK Trả lời câu hỏi
Bắt đầu từ khoá
Program
1 Cấu trúc chung
[<phần khai báo>] <phần thân>
2 Thành phần chương trình a Phần khai báo:
a1) Khai báo tên chương trình Cú pháp:
Program <tên chương trình>;
Ví dụ:
Program giai_phuong_trinh; Program VI_DU;
Ngày soạn: 24/8/2010 Tuần:
(11)phải khai báo tên chương trình
Lưu ý kết thúc câu lệnh ta dùng dấu chấm phẩy‘;’
Mỗi NNLT 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
Trong thư viện CRT pascal cung cấp chương trình có sẵn để làm việc với hình văn bàn phím
Khai báo thường sử dụng cho giá trị xuất nhiều lần chương trình
? Yêu cầu lấy ví dụ khai báo Pascal
Tất biến dùng chương trình phải đặt tên phải khai báo cho chương trình dịch biết để lưu trữ xử lí
Khai báo biến ta học Ở ta làm quen khái niệm biến đơn
Ví dụ: khảo sát phương trình đường thẳng ax + by + c = hệ số a, b, c khai báo biến đơn
Ngồi ta cịn khai báo chương trình trình bày chương VI
? Dấu hiệu để nhận biết thân chương trình
Hướng dẫn học sinh bước Khai báo tên chương trình Dùng câu lệnh đưa hình lệnh Write hay Writeln Pascal
Yêu cầu học sinh viết chương trình này?
Giải thích khác lệnh write writeln
Ví dụ tương tự ví dụ thêm câu lệnh Writeln
Ví dụ:
CONST Nmax = 1000; PI = 3.14;
Thân chương trình nằm hai từ khố mở đầu kết thúc
Một em lên bảng trình bày em khác làm nháp
a2) Khai báo thư viện Cú pháp:
USES <tên thư viện>;
Ví dụ: khai báo thư viện pascal:
USES CRT;
Sau khai báo CRT ta dùng lệnh: clrscr; (lệnh xóa hình) a3) Khai báo hằng
Cú pháp
CONST Tên _hằng = giá trị;
a4) Khai báo biến:
Biến đơn biến nhận giá trị thời điểm thực chương trình
b) Phần thân chương trình:
Thân chương trình Pascal
3 Ví dụ chương trình đơn giản Ví dụ 1: viết chương trình đưa
màn hình thơng báo ‘Xin chao cac ban!’
Program vi_du1; Begin
writeln(‘Xin chao cac ban’);
End. Ví dụ 2:
Program vi_du2;
BEGIN
[<dãy câu lệnh>]
(12)Yêu cầu học sinh viết chương trình này?
Lên bảng viết chương trình Begin
writeln(‘Xin chao cac ban’); writeln(‘Moi cac ban lam quen voi Pascal’);
End.
V CỦNG CỐ DẶN DÒ 1 Củng cố:
Cấu trúc chương trình có phần?
Các từ khố khai báo: tên chương trình; hằng; thư viện. Dấu hiệu nhận biết thân chương trình Pascal
2 Dặn dò
Về nhà soạn 4, SGK
Trong Pascal sử dụng kiểu liệu nào? Phạm vi kiểu? Cách khai báo biến Ví dụ khai báo biến Pascal.
(13)§ MỘT SỐ KIỂU DỮ LIỆU CHUẨN § KHAI BÁO BIẾN
I MỤC ĐÍCH – YÊU CẦU
Biết số kiểu liệu chuẩn: nguyên; thực, logic, kí tự Xác định kiểu cần khai báo liệu đơn giản Hiểu cách khai báo biến
Biết khai báo biến
II PHƯƠNG PHÁP
Diễn giảng, phát vấn kết hợp làm việc nhóm
III PHƯƠNG TIỆN DẠY HỌC
Bảng vẽ khổ lớn, SGK, giáo án…
IV NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ
Câu 1: Cấu trúc chung chương trình viết NNLT bậc cao?
Câu 2: Trong Pascal khai báo tên chương trình, thư viện, ta dùng từ khoá nào? 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Các tốn thực tế thường có liệu vào kết thuộc kiểu liệu quen biết: số nguyên, thực, kí tự…
Treo bảng vẽ lên bảng Ta nên chọn kiểu số nguyên cho phù hợp để tốn nhớ
Có nhiều kiểu dùng để khai báo đại lượng nhận giá trị số thực Thường dung kiểu liệt kê bảng
Treo bảng lên
? Ở kí tự kí
tự bảng mã ASCII Bộ mã ASCII kí tự?
Ví dụ kí tự A có mã
§ MỘT SỐ KIỂU DỮ LIỆU CHUẨN 1 Kiểu nguyên
Kiểu Bộ nhớ lưu trữ
một giá trị Phạm vi giá trị
Byte Byte → 255
Integer Byte -215 → 215 – 1
Word Byte → 216-1
Longint Byte -231 → 231-1
2 Kiểu thực
Kiểu
Bộ nhớ lưu trữ giá
trị Phạm vi giá trị Real Byte giá trị tuyệt đối nằm phạm vi
10-38 Đến 1038
Extended 10 Byte giá trị tuyệt đối nằm phạm vi 10-4932 đến 104932
3 Kiểu kí tự
Kiểu
Bộ nhớ lưu trữ giá
trị
Phạm vi giá trị Char Byte 256 Ktự mã
Ngày soạn: 3/9/2010 Tuần:
(14)ASCII thập phân 65 ? Dấu cách có mã ASCII bao nhiêu?
Chú ý: người lập trình
cần tìm hiểu đặc trưng kiểu liệu chuẩn xác định dịch sử dụng để khai báo biến
Như nói trên, biến dùng chương trình cần khai báo tên kiểu liệu Tên biến dung để xác lập quan hệ biến với địa nhớ nơi lưu giữ giá trị biến
? Trong chương trình biến khai báo lần?
Phần trình bày chương IV Ta khai báo nào?
Ví dụ 2:
Xét khai báo sau:
VAR
X, Y, Z: real; C: char; I, J: byte; N: word;
? Trong khai báo
nhớ cần cấp phát ?
Khi khai báo ta cần ý
Bộ mã ASCII có 256 kí tự Dấu cách có mã ASCII 32
Một lần
Lên bảng khai báo
Bộ nhớ cấp cho ba biến X, Y, Z 18 byte
ASCII
4 Kiểu lôgic
Kiểu Bộ nhớ lưu trữ giá
trị
Phạm vi giá trị Boolean Byte True False
§ KHAI BÁO BIẾN
Mọi biến dùng chương trình cần khai báo tên kiểu liệu
Trong Pascal khai báo biến khoá
VAR Cú pháp
VAR <danh sách biến>: <kiểu liệu>;
Danh sách biến: gồm nhiều biến, các biến viết cách dấu phẩy;
Kiểu liệu kiểu liệu chuẩn kiểu dũ liệu người lập trình tự định nghĩa
Ví dụ 1: GSử chương trình cần biến
A, B, C, D, X1, X2 biến thực M, N biến nguyên
Ta khai báo
VAR
(15)đến số vấn đề sau: - Ví dụ: cần đặt tên hai biến biểu diễn điểm toán, điểm tin mà khơng nên ngắn gọn mà đặt d1, d2 mà nên đặt dtoan, dtin
- Ví dụ khơng nên dùng d1, d2 diemmontoan, diemmontin Ví dụ khai báo biến số học sinh lớp nên khai báo biến thuộc kiểu byte, số HS tồn trường phải kiểu word
C byte I, J byte N byte
Tổng cộng: 23 byte
* Một số vấn đề cần ý:
- Cần đặt tên biến cho gợi nhớ ý nghĩa của biến đó.
- Khơng nên đặt tên biến ngắn hay dài, dễ mắc lỗi viết tên biến nhiều lần.
- Khai báo biến cần đặc biệt lưu ý đến phạm vi giá trị nó.
V CỦNG CỐ DẶN DÒ 1 Củng cố:
- Các kiểu liệu chuẩn: số nguyên (integer), số thực (real), kí tự (char), logic (Boolean) - Mọi biến chương trình đèu phải khai báo tên kiểu liệu
VAR <danh sách biến>: <kiểu liệu>;
2 Dặn dò
Về nhà học trả lời câu hỏi 1; 2; 3; 4; SGK trang 35
Soạn 6:
Yêu cầu 1: lớp chia làm nhóm chuẩn bị bảng phụ ghi bảng sau:
Tổ 1: ghi bảng phép toán Pascal
Tổ 2: ghi qui tắt viết biểu thức toán học Pascal Tổ 3: chuẩn bị bảng số hàm chuẩn
Yêu cầu 2: soạn phần 4, 5, 6
Câu 1: biểu thức quan hệ có dạng nào? Trình tự thực biểu thức quan hệ? Kết biểu thức quan hệ?
Câu 2: Biểu thức lôgic gồm biểu thức nào? Các biểu thức quan hệ đặt đâu? Giá trị thực biểu thức logic?
(16)§ PHÉP TỐN, BIỂU THỨC, CÂU LỆNH GÁN
I MỤC ĐÍCH – YÊU CẦU
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
Viết lệnh gán
Viết biểu thức số học logic với phép tốn thơng dụng
II PHƯƠNG PHÁP
Phát vấn diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Bảng phụ, SGK, giáo án…
IV NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ
Câu 1: Có kiểu liệu chuấn nào?
Câu 2: Để khai báo tuổi người tốt ta dùng kiểu liệu nào?
Câu 3: giả sử ta có biến sau: x, y nhận giá trị thực; i, j nhận giá trị nguyên ta khai báo
như nào?
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Để mô tả thao tác thuật toán, NNLT xác định sd khái niệm bản: Phép toán, biểu thức gán giá trị cho biến
Hoạt động 1
? Hãy kể phép toán toán học
Tương tự Pascal có phép tốn diễn đạt cách
Cho tổ treo bảng phụ phép toán bảng
Giải thích phép tốn div, mod, not, or, and.
Chú ý:
Kết phép toán quan hệ cho giá trị logic
Ứng dụng phép toán logic để tạo biểu thức phức tạp từ quan hệ đơn giản
Cộng, trừ, nhân, chia, lấy phần dư, chia nguyên…
Lên treo bảng phụ chuẩn bị trước
§ PHÉP TỐN, BIỂU THỨC, CÂU LỆNH GÁN
1 Phép tốn
Phép toán Trong toánhọc PascalTrong Các phép
toán số học với số nguyên
+, -, x, /, div, mod
+, -, x, /, div, mod Các phép
toán số học
với số thực +, -, x, / +, -, x, / Các phép
toán quan
hệ
,
, , ,
, <, <=, >,
>=, =, <> Các phép
toán lôgic (phủ dịnh),
(hoặc),
(và)
not, or, and
Ngày soạn: 10/9/2010 Tuần:
(17)Hoạt động 2
Trong lập trình, biểu thức số học biến kiểu số biến kiểu sô số liên kết với số hữu hạn phép toán số học dấu ngoặc tròn (và )
Treo bảng tổ chuẩn bị
Lấy số ví dụ
Yêu cầu HS viết cho
Chú ý:
Nếu biểu thức chứa hay biến thực ta có biểu thức số học thực, giá trị biểu thức thuộc kiểu thực
Trong số trường hợp nên dùng biến trung gian
Hoạt động 3
Để lập trình dễ dàng thuận tiện hơn, NNLT có thư viện chứa số chương trình tính giá trị hàm tốn học thường dùng
Cú pháp:
Hàm(đối số) Treo bảng hàm chuẩn
Yêu cầu hai học sinh lên bảng biểu diễn
Hoạt động 4
Hai biểu thức kiểu liên
Tổ đem bảng lên
Lên bảng viết biểu thức tương ứng
Hai em lên bảng
2 Biểu thức số học
Qui tắc viết biểu thức:
- Dùng dấu ngoặc tròn để xác định trình tự thực phép tốn
- Viết từ trái sang phải
- Khơng bỏ qua dấu nhân (*) tích
Thứ tự thực phép toán: - Trong ngoặc thực trước
- Nếu khơng có dấu ngoặc thực từ trái sang phải theo thứ tự nhân, chia, div, mod, thực trước sau cộng, trừ Vd: 3x7y 3*x7*y
c b a c ab / * C x B x x A C Bx
Ax2 * * *
xy z x x y x
→(x + y)/(x -1/2) – (x-z)/(x*y)
3 Hàm số học chuẩn
Hàm Toánhọc Pascal đối sốKiểu kết quảKiểu
Bình
phương x2 sqr(x) I or R
Theo kiểu đối
số Căn bậc
hai sqrt(x) I or R R Trị tuyệt
đối |x| abs(x) I or R
Theo kiểu đối
số
Lôgarit Lnx ln(x) R R
Lũy thừa
của e ex exp(x) R R
Sin sinx sin(x) R R
Cos cosx cos(x) R R
VD: a
a ac b b → (-b+sqrt(sqr(b)-4*a*c)/(2*a) b sinx 1 cos2 x
→ sin(x) = sqrt(1-sqr(cos(x)))
(18)kiết với phép toán quan hệ cho ta biểu thức quan hệ
Biểu thức quan hệ có dạng nào?
Lấy ví dụ cụ thể i +1 >=2*j Lấy ví dụ SGK
Hoạt động 5
Các biểu thức quan hệ thường được đặt ngoặc trịn
Giải thích biểu thức quan hệ Kết biểu thức quan hệ TRUE FALSE
Hoạt động 6
Trong trường hợp đơn giản tên biến biến đơn
Kiểu biểu thức phải kiểu biến
VD: biến kiểu thực biểu thức phải kiểu thực
Dấu := có nghĩa giá trị giá trị biểu thức vế phải
Chú ý: viết dấu ( : )sát với dấu
Ý nghĩa lệnh giảm giá trị z đơn vị
Ý nghĩa lệnh tăng giá trị x lên đơn vị
Đọc SGK, lên bảng viết - Dạng:<Bthức 1><Phép toán qhệ><Bthức 2>
VD: x<5
i + >= 2*j - Trình tự thực hiện:
+ Tính giá trị biểu thức
+ Thực phép toán quan hệ - Kết quả: TRUE FALSE
5 Biểu thức logic
- Biểu thức logic đơn giản biến logic
- Biểu thức logic biểu thức logic đơn giản, biểu thức quan hệ lien kết với phép toán logic
VD: not(4>6)
(5 <= x) and (x<=11)
(M mod = 0) or (N mod = 0)
6 Câu lệnh gán
- Dạng:
<tên biến> := <biểu thức>;
VD: x1:= (-b + sqrt(delta))/(2*a); x2 := -b/a – x1;
z := z – 1; x := x + 1;
V CỦNG CỐ DẶN DỊ 1 Củng cố:
Các phép tốn , biểu thức số học, hàm chuẩn, biểu thức quan hệ, biểu thức lôgic, câu lệnh gán Pascal
2 Dặn dị
(19)§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 ĐÍCH – YÊU CẦU
Biết lệnh vào/ra đơn giản để nhập liệu từ bàn phím đưa liệu hình Viết số lệnh vào đơn giản
Biết bước: soạn 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
Bước đầu sd 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 thong báo lỗi chương trình dịch tính hợp lí kết thu
II PHƯƠNG PHÁP
Phát vấn diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu, máy tính có soạn sẵn chương trình đơn giản, SGK, giáo án…
IV NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ
Câu 1: Viết biểu thức biểu diễn toán học sang biểu thức pascal
d b c a
; (x y)
y z x
xz y x
Câu 2: Biểu diễn hàm sau pascal:
x x
x x
sin cos
) ( sin cos2
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Đặt vấn đề
Để khởi tạo giá trị ban đầu biến, ta dùng lệnh gán để gán giá trị cho biến Như chương trình ln làm việc với liệu vào
Để chương trình làm việc với nhiều liệu vào khác nhau, thư viện NNLT cung cấp số chương trình dùng để dưa liệu vào đưa liệu
Các chương trình đưa liệu vào gọi chung thủ tục chuẩn vào/ra đơn giản
Hoạt động 1
Chú ý lắng nghe
§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
Cú pháp:
Ngày soạn: 13/9/2010 Tuần:
(20)Danh sách biến gồm nhiều biến(trừ biến kiểu Boolean) Trường hợp có nhiều biến tên biến viết cách dấu phẩy
? Lệnh thứ lệnh thứ hai dùng để làm gì?
Khi nhập giá trị cho nhiều biến, giá trị gõ cách dấu cách hoặc xuống dòng (nhấn Enter)
Nhập giá trị biến nguyên không sd dấu chấm thập phân
Nhập giá trị biến thực nhập bình thường dùng dấu phẩy động
Vd: nhập giá trị cho a, b, c 1, -5, ta gõ;
1 -5 1.0 -5
Hoạt động 2
? viết cú pháp thủ tục đưa ra
màn hình?
? Phân biệt thủ tục write và writeln
Minh hoạ cụ thể
Giải thích qui cách
Lệnh thứ để nhập N Lệnh thứ hai để nhập a, b, c
Lên bảng viết
Write đưa kết hình trỏ khơng chuyển xuống dịng, cịn thủ tục writeln đưa hình trỏ tự động xuống dòng
Read(<danh sách biến vào>);
hoặc
Readln(<danh sách biến vào>);
Ví dụ: read(N); readln(a, b, c);
Nhập giá trị cho a, b, c 1, -5, ta gõ:
1 -5 1.0 -5
2 Đưa liệu hình
*Cú pháp:
Write(<danh sách kết ra>);
writeln(<danh sách kết ra>); Vd để nhập giá trị cho biến M ta dùng
Writeln('nhap gia tri M’); Readln(M);
*Chú ý:
Các thủ tục readln write khơng có tham số.
Trong thủ tục write writeln, sau kết qui cách ra:
+ Đối với kết thực :<độ rộng>:<số chữ số thập phân>
+ Đối với kết khác: : <độ rộng>
Ví dụ:
Writeln(N:5, x:6:2); Write(( i:3, j:4, a+b:8:3);
Để thực chương trình viết NNLT, cần soạn thảo, sd chương trình dịch để dịch chương trình
(21)sang NN máy Các hệ thống lập trình cụ thể thường cung cấp phần mềm phục vụ cho việc soạn thảo, dịch hiệu chỉnh chương trình
Chiếu lên hình
Giới thiệu sơ lược hình Pascal
Việc soạn thảo giống soạn thảo word lưu ý không bỏ dấu
Nếu chương trình có lỗi cú pháp phần mềm hiển thị thông báo Cần sửa lỗi lại biên dịch lại tới khơng cịn lỗi
§8 SOẠN THẢO, DỊCH, THỰC HIỆN HIỆU CHỈNH CHƯƠNG
TRÌNH
- Màn hình làm việc Pascal
- Soạn thảo: gõ nội dung chương trình gồm phần khai báo lệnh phần thân
- Lưu chương trình:
Nhấn phím F2 → gõ tên tệp Vào File → Save → gõ tên tệp - Biên dịch chương trình: Nhấn Alt +F9 - Chạy chương trình: nhấn Ctrl + F9 - Dóng cửa sổ chương trình: nhấn phím
Alt + F3
- Thốt khỏi phần mềm: Alt + X
- Mở tệp có: nhấn phím F3
V CỦNG CỐ DẶN DÒ 1 Củng cố:
Viết thủ tục đưa liệu vào/ra: write( ) writeln( ), read( ) readln Các thao tác lưu tệp, dịch chương trình, đóng cửa sổ, đóng phần mềm, mở tệp
2 Dặn dò
(22)BÀI THỰC HÀNH 1
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Giới thiệu chương trình Pascal hồn chỉnh đơn giản;
Làm quen với số dịch vụ Turbo Pascal Free Pascal việc soạn thảo, lưu trữ, dịch thực chương trình
2 Kĩ năng
Soạn chương trình, lưu đĩa, phát thơng báo lỗi cú pháp, thực tìm lỗi thuật toán, hiệu chỉnh
Bước đầu biết phân tích hồn chỉnh chương trình đơn giản Turbo Pascal
3 Thái độ
Tự giác, tích cực, chủ động thực hành
II PHƯƠNG PHÁP
Nêu vấn đề giải vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phòng máy thực hành trường, máy chiếu có
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Phổ biến nội qui phịng máy Chiếu chương trình lên bảng yêu cầu học sinh thực nhiệm vụ
Hướng dẫn học sinh cách khởi động chương trình Pascal
Soạn chương trình vào máy Lưu chương trình với tên PTB2.PAS
Dịch sửa lỗi cú pháp Thực chương trình
Nhập liệu 3 Xem kết
Trở hình soạn thảo Thực chương trình Nhập liệu xem thơng báo
? Vì có lỗi xảy Sửa lại chương trình khơng dùng biến D
Khởi động chương trình Pascal
Gõ nội dung vào máy
Program Giai_PTB2; Uses crt;
Var a, b, c, D: real; x1, x2 : real;
Begin
Clrscr;
Write(‘a, b, c: ‘); Readln(a, b, c); D:=b*b 4*a*c;
x1 = (b sqrt(D))/(2*a); x2 = b/a x1;
writeln(‘x1= ‘, x1:6:2,’x2 = ‘,x2:6:2); readln
End.
x1 = (b sqrt(b*b4*a*c))/(2*a); x2 = (b +sqrt(b*b 4*a*c))/(2*a) writeln(‘x1= ‘, x1:6:2,’x2 = ‘,x2:6:2); readln
Nếu thời gian cho thêm tập
Chiếu nội dung tập lên Quan sát lắng nghe
Viết chương trình tính diện tích hình tơ màu, với a nhập vào bàn phím
Ngày soạn: 20/9/2010 Tuần:
(23)Phân tích hướng dẫn học sinh làm toán
? Dữ liệu vào? ? Dữ liệu ra? Cách tính:
u cầu HS soạn chương trình lưu đĩa
Quan sát hướng dẫn HS lúc thực hành
Yêu cầu HS nhập liệu thông báo kết
a =
Dữ liệu vào a Dữ liệu S
Tính diện tích hình trịn diện tích hình vng Diện tích hình tơ đen = diện tích hình trịn - diện tích hình vng
- Soạn chương trình - Nhấn phím F2, gõ tên vào - Nhấn phím Alt + F9, dịch sửa lỗi có
- Nhấn phím Ctrl + F9 để thực chương trình Nhập liệu vào
S1:= Pi*R*R; S2:= sqr(a*sqrt(2)); S := S1- S2;
Với a = ta S = 10.26
Với a = - kết khơng độ dài cạnh phải hình vng
V CỦNG CỐ - DẶN DỊ 1 Củng cố:
Các bước để hoàn thành chương trình - Xác định liệu vào, liệu
- Xác định thuật toán
- Soạn chương trình vào máy - Lưu trữ chương trình - Biên dịch chương trình
- Thực hiệu chỉnh chương trình
2 Dặn dị
(24)BÀI TẬP CHƯƠNG 2
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
− Cũng cố nội dung đạt tiết thực hành − Biết sử dụng thủ tục chuẩn vào/ra
− Biết xác định Input Output
II PHƯƠNG PHÁP
Nêu vấn đề giải vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Hình vẽ khổ lớn, bảng phụ…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ:
Câu Trong Pascal, biến nhận giá trị nguyên từ phạm vi 10 đến 25532 biến có
thể khai báo kiểu liệu nào?
Câu Viết dạng thủ tục vào/ra? Cho biết khác thủ tục write writeln?
Câu Biến P nhận giá trị 5, 10, 15, 20, 30, 60, 90 biến X nhận giá trị 0.1, 0.2, 0.3,
0.4, 0.5 Khai báo khai báo sau đúng?
a Var X, P: byte; b Var X, P: real;
c Var P: real; d Var X: real;
X: byte; P: byte;
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Yêu cầu học sinh lên bảng biểu diễn
Yêu cầu HS lên bảng
Lên bảng biểu diễn Pascal
a
b a b
a
2 b
2
abc
c
ac b c
b
a
1
d
b a
b
2
Bài tr35
Hãy biểu diễn biểu thức toán học sau Pascal
3
1 )
1 (
x a
z y x z
(1+z)*(x+y/z)/(a-1/(1+x*x*x))
Bài - tr36
Hãy chuyển biểu thức Pascal sang biểu thức toán học tương ứng a a/b*2 b a*b*c/2
c 1/a*b/c d b/sqrt(a*a+b)
Bài - tr 36
Hãy viết biểu thức lôgic cho cho kết True toạ độ (x,y) điểm nằm vùng gạch chéo kể biên hình 2.a 2.b
Ngày soạn: 01/10/2010 Tuần: 10
(25)? Đường thẳng a có phương trình gì?
? Đường thẳng b, c có phương trình gì?
? Vậy miền nằm hai đường thẳng có phương trình?
Tóm lại điểm nằm hình gạch chéo phải thoả điều kiện:
x y y 1
Yêu cầu HS lên biểu diễn Pascal
Hãy lên biểu diễn hình 2b
Hãy đưa phương án giải
y =
y = x y = −x y > x y > −x
(y <=1) and (y >= abs(x))
((−1 <= y) and (y<=1)) or ((−1<= x) and (x <= 1))
Thảo luận vòng phút
Ta thấy lấy tam giác phần cung bị bơi đen ¼ đường trịn Nếu cộng lại ½ diện tích đường trịn Vậy ta tính diện tích đường trịn chia hai
Hình 2: miền cần xác định
Bài tr 36
Hãy viết chương trình nhập số R (R > 0) tính đưa diện tích phần bơi đen hình
Program BAI_9; Const pi = 3.1416; Var S, R: real; BEGIN
Write('nhap vao ban kinh duong tron’); Readln(R);
S:=1/2*pi*R*R;
Write(' dien tich phan boi den den S = ', S: 6:4);
END
Bài 10 tr 36
−1
1
x y
a
−1
−1
1
x y
(26)Hướng dẫn sau yêu cầu HS lên bảng viết
Trao đổi thảo luận, sau lên bảng
Lập trình đưa hình vận tốc v chạm đất vật rơi từ độ cao h Biết v 2ghtrong g gia tốc tự
và g = 9.8 m/s2 Độ cao h (m) nhập từ bàn phím
Chương trình Program BAI_10; Const g = 9.8; Var v, h: real; BEGIN
Write('nhap vao cao cua vat d = ’); Readln(h);
v:=sqrt(2*g*h);
Write(' van toc vat cham dat la v= ', v: 6:4, ' m/s’);
END
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Một số chương trình tính đơn giản
2 Dặn dị
(27)CHƯƠNG III: CẤU TRÚC RẼ NHÁNH LẶP § CẤU TRÚC RẼ NHÁNH
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
− Hiểu nhu cầu cấu trúc rẽ nhánh biểu diễn thuật toán; − Hiểu câu lệnh rẽ nhánh (dạng thiếu dạng đủ)
− Hiểu câu lệnh ghép
2 Kĩ năng:
− Sử dụng cấu trúc rẽ nhánh mơt tả thuật tốn số toán đớn z giản
− Viết câu lệnh rẽ nhánh dạng đủ, dạng thiếu áp dụng để thể thuật toán số toán đơn giảng
II PHƯƠNG PHÁP
Phát vấn, diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Hình vẽ khổ lớn, bảng phụ…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ: (nếu có) 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Nêu ví dụ thực tiễn minh hoạ cho tổ chức rẽ nhánh:
Chiều nay, trời không mưa An xem đá bóng trời mưa An mở Tivi xem
Yêu cầu HS lấy vài ví dụ tương tự
Yêu cầu học sinh đưa cấu trúc chung cách diễn đạt
Yêu cầu HS lấy ví dụ dạng khuyết đưa cấu trúc chung
Cấu trúc dùng để mơ tả mệnh đề có dạng gọi cấu trúc rẽ nhánh dạng thiếu đủ
? Hãy nêu bước kết lụân nghiệm phương trình bậc hai ax2 + bx + c = (a ≠ 0) ?
Như vậy, sau tính D tuỳ thuộc vào giá trị D, hai thao tác thực
Mọi NNLT có câu lệnh để mô tả cấu trúc rẽ nhánh
Nếu đội tuyển VN thắng Indonesia đá tiếp tranh huy chương vàng với Thái Lan, khơng thắng Indonesia tranh huy chương đồng với Mianma Nếu… … khơng … ……
Nếu Nam làm tập sớm Nam chơi Nếu … thì……
Trước hết ta tính delta: D = b2 − 4ac;
Nếu D không âm ta đưa nghiệm Trong trường hợp ngược lại, ta thông báo phương trình vơ nghiệm
Xét giải phương trình bậc ax2 + bx + c = (a ≠ 0)
TUẦN: TIẾT: 11
NGÀY SOẠN: ………
Nhập a, b, c
D ← b2 − 4ac
D ≥ 0?
Thơng báo vno kết thúc
Tính đưa no kết thúc
(28)Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh gì?
Yêu cầu học sinh lên bảng viết dạng thiếu dạng đầy đủ
Ở dạng thiếu: điều kiện tính kiểm tra Nếu điều kiện câu lệnh thực hiện, ngược lại câu lệnh bỏ qua
Ở dạng đủ: điều kiện tính kiểm tra Nếu điều kiện câu lệnh thực hiện, ngược lại câu lệnh thực
Theo cú pháp sau từ khoá then hoặc esle phải câu lệnh. Nhưng sau từ khoá có nhiều câu lệnh ta gọi câu lệnh ghép.
Câu lệnh If … then …
Hai em lên bảng viết
2 Câu lệnh if then 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ệnh1> else <câu lệnh 2>;
Ví dụ 1:
if D < then
writeln( 'phuong trinh vo nghiem’);
Ví dụ 2:
if a mod = then write('a chia het cho 3’) esle write('a khong chia hết cho 3’);
Ví dụ 3: Để tìm giá trị lớn a b có
thể dùng hai cách sau:
Dạng thiếu:
if b >a then max := b; Dạng đủ:
if b >a then max := b esle max:=a; 3 Câu lệnh ghép
Câu lệnh ghép Pascal có dạng
Ví dụ:
if D < then
writeln('phương trinh vo nghiem’)
esle begin
x1 :=(−b − sqrt(D))/(2*a); x2 := −b/a − x1;
end;
Điều kiện
Câu lệnh True
False
Điều kiện
Câu lệnh True
False Câu lệnh
Begin
(29)Ví dụ 1: Tìm nghiệm thực PTB2: ax2 + bx + c = (a 0) ? Hãy xác định toán?
Hướng dẫn HS viết chương trình
u cầu HS lên bảng viết
Ví dụ 2: Viết chương trình tính số ngày năm N, biết năm chia hết cho 400 chia hết cho không chia hết cho 100
? Hãy xác định toán? Hướng dẫn HS viết chương trình
Yêu cầu HS lên bảng viết
Lên bảng viết chương trình
Lên bảng viết chương trình
4 Một số ví dụ
Ví dụ 1:
Program Giai_PTB2; Uses crt;
Var a, b, c, D: real; x1, x2 : real;
Begin
Clrscr;
Write(‘nhap a, b, c: ‘); Readln(a, b, c);
D:=b*b 4*a*c;
if D < then
writeln('phương trinh vo nghiem’)
esle begin
x1 :=(−b − sqrt(D))/(2*a); x2 := −b/a − x1;
writeln(‘x1= ‘, x1:6:2,’x2 = ‘, x2:6:2);
end;
readln
End. Ví dụ 2:
Program Nam_nhuan; Uses crt;
Var N, SN: integer;
Begin
clrscr;
write(‘nhap nam: ’); readln(N); if (N mod 400 = 0) or ((N mod = 0) and ((N mod 100 <> 0)) then
SN: =366 esle SN:=365;
Write(‘so cua nam:‘, N, ‘la:’, SN); Readln
End. V CỦNG CỐ - DẶN DÒ
1 Củng cố:
Cấu trúc rẽ nhánh if then Câu lệnh ghép
2 Dặn dị
(30)§ 10 CẤU TRÚC LẶP
I MỤC ĐÍCH – YÊU CẦU
− Hiểu nhu cầu cấu trúc lặp biểu diễn thuật toán
− Hiểu cấu trúc lặp với số lần biết trước câu lệnh for … …
II PHƯƠNG PHÁP
Phát vấn, diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Hình vẽ khổ lớn, bảng phụ…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ:
Câu 1: Viết cú pháp cấu trúc lặp: dạng thiếu dạng đủ Câu Begin
clrscr;
write(‘nhap nam: ’); readln(N);
(N mod 400 = 0) ((N mod = 0) ((N mod 100 <> 0)) then SN: =366 SN:=365;
Write(‘so cua nam:‘, N, ‘la:’, SN); Readln
End.
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Hoạt động 1
Nêu vấn đề toán 1:
Ta thấy hai tốn cách tính tổng S có nhiều điểm tương tự
Đối với toán 1: số lần lặp 100, việc cộng vào tổng S kết thúc thực việc cộng 100 lần
Cịn tốn 2: số lần lặp chưa biết trước việc cộng vào tổng kết thúc điều
Chú ý lắng nghe ghi
1 Lặp
Bài tốn 1: tính đưa kết
hình tổng 100 1 1 a a a a S
Bài tốn 2: tính đưa kết hình tổng 1 1 N a a a a
S cho
đến 0,0001 N
a
+ Xuất phát S gán cho giá trị a
1
+ Tiếp theo cộng vào S giá trị: N
a
1
với N =1, 2, 3,
* Cấu trúc lặp có hai loại: lặp với số lần
biết trước lặp với số lần trước.
TUẦN:
(31)kiện 0,0001 N
a thoả
mãn
Nói chung số thuật tốn có thao tác lặp lặp lại số lần
Các NNLT có câu lệnh để mô tả cấu trúc lặp
Hoạt động
Trao đổi nhóm phút lên bảng viết thuật tốn 1a 1b:
Nhóm 1, 2, nghiên cứu thuật tốn 1a;
Nhóm 4, 5, nghiên cứu thuật toán 1b;
Ta thấy thuật toán Tong_1a giá trị N bắt đầu tham gia vòng lặp sau lần lặp tăng lên 1cho đến N >100 Thuật toán Tong_1b giá trị N bắt đầu tham gia vòng lặp 100 sau lần lặp giảm xuống N <1 Ta nói cách lặp thuật tốn Tong_1a dạng tiến cịn Tong_1b dạng lùi
Ở dạng lặp tiến câu lệnh sau từ khoá thực tuần tự, biến đếm lần lược nhận giá trị liên tiếp từ giá trị đầu đến giá trị cuối
Ở dạng lặp lùi câu lệnh sau từ khoá thực tuần tự, biến đếm lần lược nhận giá trị giảm liên tiếp từ giá trị cuối đến giá trị đầu
Chia nhóm thảo luận lên bảng trình bày
Các nhóm khác nhận xét bổ sung
2 Lặp với số lần biết trước câu lệnh for……do…
Thuật toán Tong_1a
B1: S ← 1/a; N ← 0; {khởi tạo S,N}; B2: N ← N + 1;
B 3: Nếu N > 100 chuyển đến B5; B 4: S ← S + 1/(a+N) quay lại B2; B5: Đưa S hình kết thúc
Thuật tốn Tong_1a
B1: S ← 1/a; N ← 101; {khởi tạo S,N}; B2: N ← N − 1;
B 3: Nếu N < chuyển đến B5; B 4: S ← S + 1/(a+N) quay lại B2; B5: Đưa S hình kết thúc
* Trong Pascal ta dùng câu lệnh lặp for−do + Lặp dạng tiến:
For <biến đếm>:=<giá trị đầu> to <giá trị
cuối> <câu lệnh>; + Lặp dạng lùi:
For <biến đếm>:=<giá trị cuối> downto
<giá trị đầu> <câu lệnh>;
Biến đếm biến đơn kiểu nguyên Giá trị đầu giá trị cuối kiểu với
biến đếm
* Chú ý: giá trị biến đếm điều chỉnh
tự động, câu lệnh viết sau không thay đổi giá trị biến đếm
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Cấu trúc lặp dạng lặp với số lần biết trước Cú pháp dạng lặp tiến lặp lùi
2 Dặn dị
(32)§ 10 CẤU TRÚC LẶP (tt)
I MỤC ĐÍCH – YÊU CẦU
− Biết cách vận dụng đắn loại cấu trúc lặp vào tình cụ thể − Mơ tả số thuật tốn số tốn đơn giản có sd lệnh lặp − Viết chương trình đơn giản có sd dịng lặp for ……do……
− Biết sử dụng cấu trúc lặp với số lần chưa biết trước câu lệnh while … do…
II PHƯƠNG PHÁP
Phát vấn, diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Hình vẽ khổ lớn, bảng phụ…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ:
Câu hỏi: Viết cú pháp câu lệnh lặp dạng tiến dạng lùi giải thích biến đếm, giá trị đầu giá trị cuối phải ?
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Ở tiết trước em học cú pháp dòng lặp for Tiết tìm hiểu cách vận dụng vịng lặp để viết chương trình
Trao đổi nhóm phút lên bảng viết chương trình
Lên bảng trình bày
Các nhóm cịn lại ý nhận xét bổ sung
2 Lặp với số lần biết trước câu lệnh for……do…
Ví dụ1
Program Tong_1a; Uses crt;
Var S: real;
a, N: integer;
Begin
Clrscr;
Write(‘hay nhap gia tri a vao’); Readln(a);
S:=1/a;
For N:=1 to 100 S:= S+1/(a+N); Write(‘tong S = ’, S:8:4); Readln
End.
Program Tong_1a; Uses crt;
Var S: real;
a, N: integer;
Begin
Clrscr;
Write(‘hay nhap gia tri a vao’); Readln(a);
S:=1/a;
For N:=100 to S:= S+1/(a+N); Write(‘tong S = ’, S:8:4); Readln
End.
TUẦN:
(33)Hãy xác định tốn
Thảo luận phút lên bảng trình bày
Nhận xét đánh giá cho điểm
Thảo luận nhóm đưa để đưa thuật tốn tính tổng toán Nhận xét, đánh giá cho điểm Như vậy, việc lặp với số lần chưa biết trước kết thúc điều cho trước thoả mãn
Để mô tả cấu trúc lặp Pascal người ta dùng câu lệnh while−do
Nếu câu lệnh ghép ta dùng từ khố gì?
Treo sơ đồ lặp while −
Treo sơ đồ khối thuật toán Tong_2
Input: Hai số M, N;
Output: tổng số chia hết cho chia hết cho
Lên bảng trình bày
Begin end
Quan sát theo dõi
Ví dụ2: Viết chương trình nhập từ bàn
phím hai số nguyên dương M N (M < N) tính đưa hình tổng số chia hết cho phạm vi từ M đến N
Program vi_du_2; Uses crt;
Var M, N, I: integer;
T: longint;
Begin
Clrscr;
Write(‘nhap M nho hon N’); Write(‘M = ‘); readln(M); Write( ‘N = ‘); readln(N); T:= 0;
For I := M to N
if (I mod = 0) or (I mod = 0) then T:= T+I;
Write(‘KET QUA: ‘, T); Readln;
End.
3 Lặp với số lần chưa biết trước câu lệnh while − do
Thuật toán Tong_2
B1: S ← 1/a; N ← 0; {khởi tạo S N} B2: Nếu 1/(a+N)<0.0001 chuyển đến bước 5;
B3: N= N+1;
B4: S ← S + 1/(a+N) quay lại bước 2; B5: đưa S hình, kết thúc
Cú pháp:
While <điều kiện> <câu lệnh>;
Trong đó:
Điều kiện biểu thức lơgic
Câu lệnh: câu lệnh đơn hay lệnh ghép
Điều kiện
Câu lệnh TRUE
(34)Có nhiều thuật tốn khác tìm ƯCLN M, N Ở lớp 10 em học thuật tốn Treo hình thuật tốn liệt kê bước sơ đồ khối
Chương trình Program Tong_2;
Uses crt; Var S: real;
A, N: integer;
Begin
Write((hay nhap gia trị a vào!’); Readln(a);
S:=1/a; N:= 0;
While not(1/(a+N) < 0.0001) Begin
N:=N+ 1;
S:= S + 1/(a + N );
End;
Writeln(‘ Tong S la: ‘, S: 8: 3); Readln
End.
Ví dụ: Tìm ước chung lớn (ƯCLN) hai số nguyên dương M, N
Chương trình: Program UCLN; Uses crt;
Var M, N : integer; Begin
Clrscr;
Write(‘nhap gia tri M= ’); readln(M); Write(‘nhap gia tri N= ’); readln(N); While M <> N
If M > N then M:= M − N else N:= N − M;
writeln(‘UCLN= ’, M); readln
end.
Chú ý: câu lệnh dòng lặp thường
được lặp lại nhiều lần, để tăng hiệu chương trình thao tác khơng cần lặp lại nên đưa ngồi vịng lặp
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Cấu trúc lặp dạng lặp với số lần chưa biết trước Các chương trình đơn giản
2 Dặn dò
(35)BÀI THỰC HÀNH 2
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh − Tiếp tục làm quen với việc hiệu chỉnh chương trì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 tốn cụ thể
3 Thái độ
Tự giác, tích cực, chủ động thực hành
II PHƯƠNG PHÁP
Nêu vấn đề giải vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phịng máy thực hành vi tính , máy chiếu
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Gợi ý để HS nêu khái niệm số Pitago:
? Thế số Pi ta go
? Lấy ví dụ số Pitago cụ thể? ? Vậy để kiểm tra số có phải số Pi ta go ta kiểm tra đẳng thức nào?
Dành thời gian cho học sinh gõ nội dung vào
Ba số nguyên dương a, b, c gọi số Pi ta go tổng bình phương hai số bình phương số cịn lại
3, 4, a2 = b2 + c2 b2 = a2 + c2 c2 = a2 + b2 Gõ nội dung vào
Viết chương trình nhập từ bàn phím ba số ngun dương a, b, c kiểm tra xem chúng có số Pi ta go hay không
Program Pi_ta_go; Uses crt;
Var a, b, c : integer;
a2, b2, c2: longint;
Begin
Clrscr;
Write('nhap a = '); Readln(a); Write('nhap b = '); Readln(b); Write('nhap c = '); Readln(c); a2 : = a;
b2 := b; c2 := c; a2 := a2*a; b2 := b2*b; c2 := c2*c;
if (a2 = b2 + c2) or (b2 = a2 + c2) or
(c2=a2+ b2) then
writeln('ba so da nhap la bo so Pi ta go)
TUẦN:
(36)Lưu chương trình với tên PITAGO vào thư mục lớp Nhấn phím F7 để thực câu lệnh chương trình, nhập giá trị a = 3, b = 4, c=5
Vào bảng Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2
Nhấn phím F7 để thực câu lệnh tính giá trị nói so sánh với kết a2=9, b2 = 16, c2 = 25
Quan sát rẽ nhánh
Lặp lại bước với liệu a = 700, b = 1000, c=800
a2 : = a; b2 := b; c2 := c; a2 := a2*a; b2 := b2*b; c2 := c2*c; Bằng dãy lệnh
a2 := a*a; b2 := b*b; c2 := c*c;
Thì kết có thay đổi liệu a = 700, b = 1000, c=800
Lưu vào (nhấn F2)
Nhấn F7 sửa lỗi nhập a = 3, b = 4, c=5 nêu kết Vào bảng debug
Nhấn F7 so sánh kết Tiếp tục nhấn F7 để theo dõi trình rẽ nhánh Nhập số: a = 700, b=1000, c = 800 Thông báo kết
Thay đổi câu lệnh với liệu kết luận
else writeln('ba so da nhap khong phai
la bo so Pi ta go); readln
end.
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại số lỗi thực hành
2 Dặn dò
(37)BÀI TẬP CHƯƠNG III
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Củng cố kiến thức học chương III: cấu trúc rẽ nhánh cấu trúc lặp
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 tốn cụ thể
3 Thái độ
Tự giác, tích cực, chủ động việc làm tập
II PHƯƠNG PHÁP
Nêu vấn đề giải vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Bảng phụ, giáo án…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ:
Câu 1: viết cấu trúc lặp pascal: dạng lặp tiến lặp lùi? Cho ví dụ? Câu 2: điền câu lệnh vào đoạn chương trình sau: Program Tong_2;
Uses crt;
Var A, N: integer;
………
Begin
Write((hay nhap gia trị a vào!’); Readln(a);
S:=1/a; N:= 0;
While not(1/(a+N) < 0.0001) Begin
N:=N+ 1;
………
End;
Writeln(‘ Tong S la: ‘, S: 8: 3); Readln
End. 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Yêu cầu HS thảo luận
phút lên bảng viết câu lệnh Thảo luận trình bày bảng
Bài 4: Viết câu lệnh rẽ nhánh tính
a)
5. 0
2
y x
y x z
if (sqr(x) + sqr(y)) <= then z :=sqr(x) + sqr(y) else
if ((sqr(x) + sqr(y)) > 1) and (y>=x) then z := x+ y else z := 0.5;
nếu x2 + y2 ≤ 1
nếu x2 + y2 > y ≥ x
nếu x2 + y2 > y < x
TUẦN: …… TIẾT: ……
(38)Điều kiện để M thuộc đường tròn tâm O
Yêu cầu HS lên biểu diễn Pascal
Hướng dẫn giải
? n có giá trị nào?
? Vậy ta phải dùng cấu trúc lặp tốt nhất?
Tương tự chương trình tính tổng VD1
u cầu HS viết chương trình
Gơi ý HS khởi tạo giá trị ban đầu:
OM ≤ R Hay
R b y a
x )2( )2 (
Lên bảng trình bày
N có giá trị từ đến 50 Cấu trúc lặp với số lần biểt trước For −
Viết chương trình
b y x y x z
if sqrt(sqr(x − a) +sqr(y − b))<= R then z:=abs(x) + abs(y) else z := x + y;
Bài Lập trình tính:
a)
50 1 n n n y Program bai_5a; Uses crt;
Var y : real;
n: byte;
Begin
clrscr;
y := 0; {khởi tạo giá trị y}
for n:= to 50
y:= y + n/(n+1); write('y= ', y:9:3); readln
end
b
! ! ! 1 ) ( n n
e
khi 2 10
!
1
n đưa giá trị hình
program bai_5b; uses crt;
var n: longint;
e, gt: real;
begin
gt := 1/2; {khởi tạo gt} n := 2;
e := + gt;
while gt > 2*E−6 begin
inc(n); {tăng n lên đơn vị}
Nếu điểm (x, y) thuộc hình trịn bán kính r (r > 0), tâm (a,b) Trường hợp lại M(x, y)
R
(39)Gợi ý HS viết chương trình
Các tập lại yêu cầu HS tự nhà giải
Hướng dẫn:
Bài dùng dòng lặp while −
Khi tuoicha <> 2*tuoicon làm
tăng tuổi cha lên tăng tuổi lên tăng năm lên
gt := gt*(1/n); e := e + gt;
end;
write('gia tri e(n) la: ', e: 9:4); readln
end.
Bài 6: lập trình giải tốn cổ program btoan_co;
uses crt;
var cho, ga: byte; begin
for cho := to 24 begin
ga := 36 − cho;
if ga + 2*cho = 50 then
write('ga: ', ga, ' cho: ',cho);
end;
readln
end.
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại câu lệnh lặp với số lần biết trước số lần chưa biết trước
2 Dặn dò
(40)KIỂM TRA ĐÁNH GIÁ TIẾT
I MỤC ĐÍCH
Kiểm tra lại khã tiếp thu q trình học tập HS Từ điều chỉnh phương pháp giảng dạy
II BẢNG RA ĐỀ KIỂM TRA
III NỘI DUNG
IV KẾT QUẢ KIỂM TRA
Mức độ Chương I Chương II Chương III
Biết Câu 1, 3, 6, 28, 30 Câu 2, 5, 9, 17, 18, 20, 21,
22 , 27 Câu 4, 10, 13, 14, 15, 16, 29,31, 32, 33, 34, 35, 36, 37, 38, 39, 40
Hiểu 7, 24, 25, 11 8, 19, 23, 26, 8, 12
Vận dụng
Lớp Giỏi Khá Trung bình yếu
11C1 11C3 11C4 11C5
TUẦN: …… TIẾT: ……
(41)TUẦN: ……… TIẾT: ……
NGÀY SOẠN: ………
CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC § 11 KIỂU MẢNG
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
− Kiểu mảng kiểu liệu có cấu trúc, cần thiết hữu ích chương trình − Mảng chiều dãy hữu hạn phần tử kiểu
− NNLT thông dụng cho phép mô tả kiểu liệu mảng chiều
− Để mô tả mảng chiều cần khai báo kiểu phần tử cách đánh số phần tử
− Có thể tham chiếu phần tử mảng tên mảng só tương ứng phần tử
2 Kĩ năng:
− Nhận biết thành phần khai báo kiểu mảng chiều
− Nhận 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ô kiểu miền kiểu nguyên
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu Projector
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ: (nếu có) 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Chiếu đề chương trình ví dụ
Giải thích: ta dùng biến để lưu trữ nhiệt độ ngày tuần
Và để xét nhiệt độ lớn nhiệt độ trung bình ta dùng 7 câu lệnh if − then
? Khi ta cần xét nhiệt độ cho năm sau?
Để 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ố
? Thế mảng chiều? Ví dụ: a1, a2, …, an
? Để mô tả mảng chiều ta cần ý đến yếu tố nào?
Chiếu slide 2
Hầu hết NNLT có qui tắc cho phép xác định
− Tên kiểu mảng chiều
Chú ý lắng nghe
cần dùng nhiều biến viết nhiều câu lệnh if − then
Đứng dậy phát biểu
Kiểu phần tử cách đánh số phần tử
§ 11 KIỂU MẢNG
1 Kiểu mảng chiều
(42)− Số lượng phần tử
− Kiểu liệu phần tử − Cách khai báo biến mảng − Cách tham chiếu đến ptử
Chiếu slide phần khai báo
Chiếu chương trình ví dụ
? Trong ví dụ dòng khai báo mảng chiều
Khi khai báo mảng chiều ta có cách để khai báo
? Hãy xác định toán?
Treo bảng thuật toán
Yêu cầu thảo luận phút lên viết chương trình
Dịng
Input: số nguyên N dãy N số nguyên a1, a2, …,aN Output: số giá trị lớn dãy
thảo luận lên viết chương trình
a Khai báo
− Khai báo trực tiếp:
Var <tên biến mảng>:array [kiểu
số] of <kiểu phần tử>;
Ví dụ: var A : array[1 10] of integer; − Khai báo gián tiếp
Type <tên kiểu mảng> = array [kiểu
chỉ số] of <kiểu phần tử>;
var <tên biến mảng>:< tên kiểu mảng>;
ví dụ: type mang = array[1 10] of integer; var A : mang;
trong đó:
− Kiểu số: thường đoạn số nguyên liên tục
− Kiểu phần tử kiểu phần tử mảng
* Tham chiếu phần tử mảng: thông qua tên mảng số
Cú pháp: tên_mảng[chỉ số]
Ví dụ: A[2] {tham chiếu đến phần tử thứ hai mảng A
Để tham chiếu đến phần tử thứ 10 mảng ta viết nhietdo[10]
chỉ số phần tử 10 11
Mảng
Nhietdo 23 24 22 28
b Một số ví dụ
ví dụ 1: viết chương trình tìm đưa hình phần tử lớn dãy dố nguyên
* Chương trình:
Program TimMax; Uses crt;
Type Dayso = array[1 250] of integer; Var N, i, Max, csMax: integer;
A: Dayso;
Begin
Clrscr;
Write(‘nhap so phan tu: ‘); readln(N);
For i := to N do Begin
(43)Yêu cầu xác định toán
Yêu cầu thảo luận phút lên bảng viết chương trình
Hãy xác định toán
Yêu cầu thảo luận phút
Input: Số nguyên dương N, dãy A gồm N số nguyên dương A1, A2, …,AN Output: Dãy số A xếp thành dãy không giảm
Input: Số nguyên dương N, dãy A gồm N số nguyên dương A1, A2, …, AN số nguyên k
Output: số i mà Ai = k thơng báo “khơng tìm thấy số hạng k
Readln(A[i]);
End;
Max:= A[1]; csMax := 1;
For i:= to N If A[i] > Max then Begin
Max := A[i]; Csmax := i;
End;
Write(‘gia tri cua phan tu max: ‘,max); Write(‘chi so cua phan tu Max: ‘, csmax);
Readln
End.
Ví dụ 2: Sắp xếp dãy số nguyên thuật toán tráo đổi
Program sapxep; Uses crt;
Type Dayso = array[1 250] of integer; Var N,i, j,t: integer;
Begin Clrscr;
Write(‘nhap so phan tu day: ‘); readln(N);
for i:=1 to N begin
write(‘nhap vao phan tu thu ‘,i,’: ‘); readln(A[i]);
end;
for j := N downto N for i := to j –
if A[i] > A[i + 1] then
begin {trao doi A[i] va A[i + 1]} t := A[i];
A[i]:= A[i + 1]; A[i + 1] := t; end;
writeln(‘day so duoc sap xep la:’); for i := to N write(A[i]:4); readln;
End
Ví dụ 3: tìm kiếm nhị phân
Chương trình:
Program TK_nhiphan; Uses crt;
Type Dayso = array[1 250] of integer; Var N, i, k: integer;
(44)lên bảng trình bày chương trình A: Dayso;
Tim_thay: boolean;
Begin
clrscr;
write(‘nhap so phan tu cua day, N = ‘); readln(N);
writeln(‘nhap cac phan tu cua day so tang: ‘);
For i := to N begin
write(‘phan tu thu’,i,’ = ‘); readln(A[i]);
end;
write(‘nhap gia tri k = ‘); readln(k);
Dau:= 1; cuoi := N; Tim_thay:= false;
while (dau<=cuoi) and not (Tim_thay) do
begin
Giua:= (Dau + Cuoi) div 2;
if A[Giua] = k then
Tim_thay := True
else if A[Giua] > k then
Cuoi := Giua −
else Dau:= Giua + 1; end;
if Tim_thay then
writeln(‘chi so tim duoc la: ‘,Giua)
else write(‘khong tim thay’);
readln
end. V CỦNG CỐ - DẶN DÒ
1 Củng cố:
Các cách khai báo mảng, tham chiếu đến phần tử mảng
2 Dặn dò
(45)TUẦN: ……… TIẾT: ……
NGÀY SOẠN: ………
BÀI THỰC HÀNH 3
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Củng cố kiến thức kiểu liệu mảng
2 Kĩ năng
− Nâng cao kĩ sử dụng số lệnh kiểu liệu mảng chiều lập trình cụ thể: + Khai báo kiểu liệu mảng
+ Nhập/Xuất liệu cho mảng
+ Duyệt qua tất phần tử mảng để xử lí phần tử − Biết giải số tốn thường gặp:
+ Tính tổng phần tử thoả mãn điều kiện + Đếm phần tử thoả mãn điều kiện + Tìm phần tử nhỏ nhất, lớn
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 thực hành
II PHƯƠNG PHÁP
Nêu vấn đề giải vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phịng máy thực hành vi tính , máy chiếu
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Chiếu chương trình lên bảng Hướng dẫn tìm hiểu chương trình
? Myarray tên kiểu liệu hay tên biến?
? Những dòng tạo biến mảng A?
? Thủ tục Randomize có ý nghĩa gì?
Giải thích hàm chuẩn Random(n)
Tên kiểu liệu Học sinh trả lời
Khởi tạo chế sinh số ngẫu nhiên
Gõ nội dung vào máy
Bài 1: Tạo mảng A gồm n (n<= 100) số
nguyên, số có trị tuyệt đối khơng vượt q 300 Tính tổng phần tử mảng bội số nguyên dương k cho trước
a Chương trình proram Sum1; uses crt;
type Myarray = array[1 100] of integer; var A:Myarray;
s, n, i, k: integer;
begin
clrscr; randomize; write('nhap n = '); readln(n);
for i := to n
A[i] :=random(300) − random(300);
for i:=1 to n
write(A[i]: 5); writeln;
write('nhap k = '); readln(k);
s := 0;
for i := to n
(46)b) Yêu cầu HS đưa câu lệnh posi, neg: integer;
posi := 0; neg := 0;
if A[i] > then posi := posi + else if A[i] < then neg:=neg +1;
writeln(posi:4, neg:4);
? câu lệnh có ý nghĩa gì? Sửa lỗi chạy chương trình
b Chỉnh sửa chương trình chạy chương trình
Thêm vào chương trình cho vị trí câu lệnh
Đếm phần tử mảng A dương hay âm
Gõ chương trình vào máy
writeln(' Tong can tinh la: ', s); readln
end.
Bài 2: Viết chương trình tìm phần tử có giá
trị lớn mảng đưa hình số giá trị phần tử tìm Nếu có nhiều phần tử có giá trị lớn đưa phần tử có số nhỏ
a Chương trình Program MaxElement;
uses crt;
type Myarray = array[1 100] of integer; var N, i, j: integer;
A: Myarray;
begin
clrscr;
write(‘nhap so phan tu: ‘); readln(N);
for i := to N do begin
write(‘nhap phan tu thu ‘,i, ‘:’); readln(A[i]);
end;
j := 1;
for i:= to N
if A[i] > A[j] then j := i;
write(‘chi so: ’, j, ‘ Gia tri: ’,A[j]:4); Readln
end.
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại số lỗi thực hành
2 Dặn dò
(47)TUẦN: ………
TIẾT: …… § 11 KIỂU MẢNG (tt) NGÀY SOẠN: ………
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
HS nắm cấu trúc mảng hai chiều Biết khai báo biến mảng hai chiều
Tham chiếu đến phần tử biến mảng hai chiều
2 Kĩ năng:
− Nhận biết thành phần khai báo kiểu mảng hai chiều
− Nhận biết định danh phần tử kiểu mảng hai chiều xuất chương trình − Biết cách khai báo mảng đơn giản với sô kiểu miền kiểu nguyên
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu Projector
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ: (nếu có) 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
? Với kiểu liệu thơng thường ta biểu diễn tốn u cầu dạng bảng hay khơng?
Với kiểu liệu thông thường biểu diễn dạng bảng Do đó, chúng ta cần xây dạng kiểu liệu sau học phần ? Hãy cho biết mảng hai chiều?
Ta thấy hàng mảng hai chiều có cấu trúc mảng chiều kích thước ? Để mo tả mảng hai chiều ta cần xác định yếu tố nào?
Cũng giống mảng chiều, muốn sử dụng biến mảng hai chiều ta phải khai báo
Khai báo mảng hai chiều tương tự mảng chiều Yêu cầu HS lên khai báo
Có (hoặc không)
Đứng dậy phát biểu
Nêu yếu tố SGK
Lên bảng khai báo
§ 11 KIỂU MẢNG (tt)
2 Mảng hai chiều:
Mảng hai chiều bảng phần tử có kiểu
* Các yếu tố để xây dựng mảng hai chiều:
- Tên kiểu mảng hai chiều - Số lượng phần tử
- Kiểu liệu phần tử - Các cách khai báo biến - Cách tham chiếu đến phần tử a Khai báo
− Khai báo trực tiếp:
Var <tên biến mảng>:array [kiểu
số hàng, kiểu số cột] of <kiểu phần tử>;
(48)Thơng thường cách ta thường dùng
Khi khai báo mảng hai chiều cần ý đến số dòng số cột kiểu phần tử
Hãy nêu cú pháp tham chiếu đến phần tử mảng chiều
Tương tự mảng chiều tham chiếu đến phần tử mảng hai chiều ta có thêm số cột
Soạn sẵn chương trình chiếu lên giải thích câu lệnh
Yêu cầu thảo luận nhóm để viết chương trình
Chiếu lên hình nhận xét đánh giá
Chuẩn bị chương trình để chiếu chạy thử
Tên biến mảng[chỉ số]
Thảo luận nhóm sau trình bày giấy
− Khai báo gián tiếp
Type <tên kiểu mảng> = array [kiểu
chỉ số hàng, kiểu số cột] of <kiểu phần tử>;
var <tên biến mảng>:<tên kiểu mảng>;
ví dụ: type mang = array[1 9,1 10] of integer;
var A : mang; Trong đó:
- Type, Var, of: từ khóa
- Array: từ khóa để khai biến mảng
- Tên biến mảng, tên kiểu mảng: người lập trình tự đặt
− Kiểu số hàng, kiểu số cột: đoạn số nguyên liên tục
− Kiểu phần tử kiểu phần tử mảng
* Tham chiếu đến phần tử mảng hai chiều
<Tên biến mảng>[chỉ số dòng, số cột] b Một số ví dụ
Ví dụ 1: chương trình đưa bảng nhân
program Bang_nhan; uses crt;
var
B: array[1 9,1 10] of integer; i, j : integer;
begin
clrscr;
for i:=1 to for j:= to 10
B[i,j]:= i*j;
for i:=1 to begin
for j:= to 10 write(B[i,j]:4);
writeln;
end;
readln
end.
Ví dụ 2:
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Các cách khai báo mảng, tham chiếu đến phần tử mảng hai chiều
2 Dặn dò
(49)TUẦN: ……… TIẾT: ……
NGÀY SOẠN: ………
BÀI TẬP CHƯƠNG IV
I MỤC ĐÍCH – YÊU CẦU
Củng cố kiến thức học 11
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng., thảo luận nhóm
III PHƯƠNG TIỆN DẠY HỌC
Bảng phụ, máy chiếu, máy tính
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ:
Câu 1: Viết cú pháp khai báo mảng hai chiều?
Câu 2: Viết câu lệnh nhập phần từ cho mảng hai chiều?
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Yêu cầu HS thảo luận phút
Gợi ý cho HS viết chương trình
Lấy d = A[2]-A[1]
Khi dãy A cấp số cộng thỏa mãn điều kiện
A[i]=A[1]+(i-1)d
Hoặc điều kiện A[i+1]-A[i]=d (với 1<i<N)
Dùng dòng lặp theo biến đếm i để kiểm tra xem A[i] có thỏa mãn điều kiện nói hay khơng, cần phát phần tử A không thỏa mãn kết luận dãy A cấp số cộng
Yêu cầu HS thảo luận để viết chương trình
HS thảo luận đưa phương án để giải
Thảo luận viết chương trình
Câu trang 79
Câu 6/79: Chương trình Program baitap6; uses crt;
var A: array[1 100] of integer;
N, i, u: integer;
so_nt, so_chan: integer;
begin
so_chan:= 0; so_nt := 0;
write(‘so phan tu cua day A (N<=100), N= ‘); readln(N);
while (N < 0) or (N > 100) begin
write(‘nhap lai so phan tu cua day A (N<=100), N = ‘); readln(N);
end.
(50)Nhận xét đánh giá cho điểm
Chương trình thực với N = 24 số Phi-pơ-na-xi thứ 25 75025 vượt q phạm vi kiểu word
begin
write(‘A[‘,i,’]= ’); readln(A[i]);
if A[i] mod = then
so_chan:=so_chan+1;
if A[i] > then begin
u:=2;
while (u<=sqrt(A[i])) and
(a[i]mod u <>0) u:=u+1;
if u> sqrt(a[i]) then
so_nt:=so_nt +1;
end; end;
writeln(‘so luong so chan: ‘, so_chan); writeln(‘so luong so le: ‘, N-so_chan); writeln(‘so luong so ngto: ‘, so_nt); readln
end. Câu 7/79
Chương trình:
Program cau_7; Uses crt;
Var n, i:word;
F1, F2, F: word;
Begin
clrscr;
write(‘tim so hang thu N cua day phi-po-na-xi, N= ‘); readln(N);
F1:=1; F2:= 1;
for i:=1 to n do begin
F:= F1+F2; F1:=F2; F2:=F;
end;
write(F); readln
end.
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại số ý viết chương trình
2 Dặn dị
(51)TUẦN: ……… TIẾT: ……
NGÀY SOẠN: ………
BÀI THỰC HÀNH
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Củng cố kiến thức kĩ có lập trình với kiểu liệu mảng.\ Củng cố HS thuật toán xếp phần tử dãy (bằng tráo đổi)
2 Kĩ năng
Diễn đạt thuật tốn chương trình sử dụng kiểu liệu mảng
3 Thái độ
Rèn luyện HS ý thức cần có người lập trình viết chương trình với khối lượng tính tốn
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 thực hành
II PHƯƠNG PHÁP
Nêu vấn đề giải vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phịng máy thực hành vi tính , máy chiếu
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Yêu cầu HS mở chương trình Pascal
Hướng dẫn HS tìm hiểu chương trình
? Hãy xác định tốn?
Sử dụng ví dụ chuyển đĩa để đưa bước chuyển đổi sd biến tạm t
yêu cầu HS chỉnh lỗi chạy chương trình
Đặt yêu cầu khai báo thêm biến dem bổ sung vào chương trình câu lệnh để tính số lần thực tráo đổi chương trình
Chúng ta khai báo biến đếm nào?
Yêu cầu HS viết câu lệnh đếm số lần tráo đổi
Đặt dem:= dem +1 đâu:
Mở chương trình Pascal
Input: Dãy A gồm N số nguyên
Output: dãy A xếp
- Dem : integer; dem:= dem +1
- Sau câu lệnh tráo đổi A[i+1] := t;
Bài 1:
uses crt;
type Arrint = array[1 250] of integer; var n, i, j, t: integer;
A : ArrInt;
begin
clrscr; randomize;
write('nhap n = ’); readln(n);
for i:= to n do
A[i] := random(300) – random(300);
for i:=1 to n write(A[i]:5);
writeln;
for j:= n downto n do for i:= to j -1
if A[i] > a[i+1] then begin
t := A[i]; A[i]:= A[i+1]; A[i+1] := t;
end;
writeln('day da duoc sap xep:’);
(52)Giới thiệu HS chương trình chưa cải tiến
? Trong chương trình phải thực phép cộng
? Có cách cải tiến?
Yêu cầu HS dùng lệnh B[1]:=A[1];
for i:= to n do
B[i]:=B[i-1]+A[i];
thay đoạn chương trình từ{Bat dau tao B} đến{Ket thuc tao B}
Phân tích ưu điểm việc thay lệnh
Quan sát giáo viên thực
n(n+1)/2 phép cộng Để tính bước thứ i ta sử dụng kết bước thứ i-1
writeln; readln
end. Bài 2:
program Tinhtong; uses crt;
type MyArray = array[1 250] of integer; var n, i, j: integer;
A,B : MyArray;
begin
clrscr; randomize;
write('nhap n = ’); readln(n);
for i:= to n do
A[i] := random(300) – random(300);
for i:=1 to n write(A[i]:5);
writeln; {Bat dau tao B}
for i :=1 to n begin
B[i]:=0;
for j:= to i B[i]:=B[i]+ A[j]; end;
{Ket thuc tao B}
for i:= to n write(B[i]:7);
readln
end.
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại số lỗi thực hành
2 Dặn dò
(53)TUẦN: ………
TIẾT: …… NGÀY SOẠN: ………
KIỂM TRA TIẾT
I MỤC TIÊU ĐÁNH GIÁ:
Đánh giá khả tiếp thu học sinh 11
II.MỤC ĐÍCH YÊU CẦU CỦA ĐỀ:
Yêu cầu học sinh:
- Biết số khái niệm mảng, khai báo mảng
- Nhận biết số lỗi chức chương trình - Viết số chương trình mảng chiều
III CẤU TRÚC ĐỀ IV KẾT QUẢ
Lớp 11A1 11A2 11C4 11C5 11C6 11C7
Giỏi Khá TB Yếu kém
(54)TUẦN: ………
TIẾT: …… § 12 KIỂU XÂU NGÀY SOẠN: ………
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Biết xâu dãy kí tự (có thể coi xâu mảng chiều) Biết khai báo xâu, truy cập đến phần tử xâu
2 Kĩ năng:
Sử dụng số thủ tục hàm thông dụng xâu Cài đặt số chương trình đơn giản có sd xâu
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng., thảo luận nhóm
III PHƯƠNG TIỆN DẠY HỌC
Bảng phụ có viết hàm, thủ tục xử lí xâu
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ: 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Đưa tốn: Viết chương trình nhập họ tên 40 HS
? Ta chọn kiểu liệu nào? Khai báo nào? Nhập tên nào?
? Vậy viết chương trình nhập vào tên 40 HS có điều bất tiện?
Dẫn dắt vào
? Thế xâu?
? Độ dài xâu gì?
? Thếnào xâu rỗng ?
? Để mô tả kiểu xâu ta cần xác định yếu tố nào?
Ta xem kiểu xâu mảng chiều, phần tử đánh số bẳt đầu
Hãy nhắc lại cú pháp tham chiếu đến phần tử mảng chiều
Tương tự để tham chiếu đến phần tử xâu ta có cú pháp sau:
Để sd biến xâu trước hết
Kiểu mảng chiều gồm 40 kí tự
readln(A[1]); readln(A[2]); readln(A[3]); readln(A[4]);
Phải viết 40 câu lệnh nhập vào phần tử mảng Đứng dậy phát biểu
Nhìn SGK em đọc yếu tố
Tên biến mảng[chỉ số]
§ 12 KIỂU XÂU
* Một số khái niệm:
- Xâu dãy kí tự mã ASCII, kí tự phần tử xâu
- Số lượng kí tự xâu gọi độ dài xâu
- Xâu có độ dài gọi xâu rỗng * Để mô tả kiểu xâu ta cần xác định:
- Tên kiểu xâu
- Cách khai báo biến kiểu xâu - Số lượng kí tự kiểu xâu
- Các phép toán thao tác với xâu - Cách tham chiếu tới phần tử xâu * Tham chiếu đến phần tử xâu
Tên biến xâu[chỉ số]
(55)ta phải khai báo
Yêu cầu HS lên viết cú pháp khai báo
? Nếu độ dài tối đa hiểu xâu có tối đa kí tự?
Để thao tác xâu ta cần có phép toan, hàm, thủ tục xử lí xâu
Yêu cầu HS viết kết
? Khi hai xâu nhau?
Đưa ví dụ yêu cầu HS đưa kết
ví dụ: s1: ‘Le’
s2: ‘Nguyen Van A’ insert(s1, s2,8) ->?
ví dụ:
S: ‘Nguyen Van A’
? Muốn lấy xâu ‘Van’ ta phải viết nào?
ví dụ: S: ‘Nguyen Van A’
? length(s) cho giá trị bao nhiêu?
Lên viết phần khai báo
255 kí tự
Truong Duyen Hai
khi chúng giống hoàn toàn
Đưa kết Nguyen A
‘Nguyen Le Van A’
copy(S,8,3)
12
1 Khai báo var
<tên biến xâu>: string[độ dài tối đa xâu]
Trong đó:
- Tên biến xâu: người lập trình tự đặt - var, string: từ khoá
- độ dài tối đa qui định số kí tự tối đa xâu có, nêu khơng ghi ngầm định 255 kí tự
ví dụ: var hoten: string[30]; S : string;
2 Các thao tác xâu:
* Phép ghép xâu (kí hiệu cộng) ví dụ: ‘Truong’ + ‘ ’+ ‘Duyen Hai’ * Phép so sánh xâu: <, >, <=, >=, =, <> theo qui tắc so sánh từ kí tự trái sang phải
Ví dụ: ‘may tinh’ < ‘may tinh cua toi’ ‘TIN HOC’ = ‘TIN HOC’ * Các thủ tục hàm xử lí xâu
a Thủ tục xố n kí tự
Cú pháp delete(st,vt,n)
st: xâu
vt: vị trí bắt đầu xố n: số kí tự xóa ví dụ:
Giá trị st Thao tác Kết
‘Nguyen Van A’ delete(st,8,3) ?
b Thủ tục chèn xâu S1 vào xâu S2
Cú pháp: Insert(s1,s2,vt) s1, s2: xâu
vt: vị trí bắt đầu chèn xâu s1
c Hàm tạo xâu
Cú pháp: copy(s,vt,n) s: xâu
vt: vị trí bắt đầu lấy xâu s n: số kí từ sé lấy
d Hàm tính độ dài xâu
Cú pháp: length(s)
(56)ví dụ: s1: ‘uy’
s2: ‘Nguyen Van A’ pos(s1,s2) có giá trị bao nhiêu?
Chia nhóm nhóm ví dụ thảo luận phút lên bảng viết chương trình
Nhận xét cho điểm
3
Nhóm 1-6: ví dụ Nhóm 2-5: Ví dụ Nhóm 3-4: ví dụ
lên bảng viết chương trình
cú pháp: pos(s1,s1)
f Hàm cho chữ in hoa
Cú pháp: upcase(ch) ví dụ: upcase(a) -> ‘A’
upcase(B) -> ‘B’
3 Một số ví dụ SGK
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Thế xâu?
Cách khai báo xâu? Tham chiếu đến phần tử xâu? Các hàm thủ tục xử lí xâu?
2 Dặn dò
(57)TUẦN: 27
TIẾT: 33 BÀI TẬP CHƯƠNG IV (tt) NGÀY SOẠN: 31/01/2010
I MỤC ĐÍCH – YÊU CẦU
Củng cố kiến thức học 12
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng., thảo luận nhóm
III PHƯƠNG TIỆN DẠY HỌC
Bảng phụ viết chương trình tập chương
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ:
Câu 1: viết cú pháp khai báo xâu?
Câu 2: Giả sử biến xâu St lưu giá trị ‘Truong THPT Duyen Hai’ viết kết sau: Delete(St,13,9) → ?, Copy(st,8,4)→ ?, length(St)→ ?
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Hôm trước ta dừng lại ví dụ tiết tập ta xét tiếp ví dụ cịn lại
Ví dụ 4: Viết chương trình nhập vào xâu đưa hình xâu thu từ loại dấu cách
Vd:
I: ‘a d nf h d f’ O: ‘adnfhdf’
Ví dụ 5: Viết chương trình nhập vào xâu s1, tạo xâu s2 gồm tất chữ số xâu s1
I: ‘a7cv912n9d356’ O: ‘79129356’
Hướng dẫn gợi ý học sinh thảo luận
Hãy đưa phương án
Bài 10/80
Viết chương trình nhập từ bàn phím xâu kí tự s có độ dài khơng 100 Hãy cho biết có chữ số xuất xâu s
HS thảo luận đưa phương án để giải
Có thể dùng thủ tục delete Dùng xâu mởi lưa xâu xâu kí tự
Kiểm tra kí tự kí tự số đưa vào xâu giống ví dụ
SGK
SGK Câu 10/80.
Chương trình
Program cau_10; Var S:tring[100];
i, dem: byte;
begin
(58)Thảo luận viết chương trình
readln(S); dem:= 0;
for i:=1 to length(S)
if (‘0’ <= S[i]) and (S[i]<9) then
dem:= dem +1;
write(‘trong xau co ’, dem, ‘ chu so’); readln
end
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại số ý viết chương trình
2 Dặn dị
(59)TUẦN: ………
TIẾT: …… BÀI THỰC HÀNH NGÀY SOẠN: ………
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Làm quen với tiềm kiếm, thay biến đổi xâu
2 Kĩ năng
HS biết khai báo xâu
Nhập liệu cho xâu, đưa hình giá trị xâu Duyệt qua tất kí tự xâu
Sử dụng hàm thủ tục chuẩn học
3 Thái độ
Rèn luyện HS ý thức cần có người lập trình
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 thực hành
II PHƯƠNG PHÁP
Nêu vấn đề giải vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phòng máy thực hành vi tính, máy chiếu
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Yêu cầu HS mở chương trình Pascal
Hướng dẫn HS tìm hiểu chương trình
Một xâu gọi Palidrom ta đọc kí tự từ phải sang trái giống từ trái sang phải
Bài 2:
Hướng dẫn HS :
Ta thấy cần ghi nhận số lần xuất chữ Có tất 26 chữ từ A đến Z Có thể dung mảng chiều để ghi nhận số lần xuất
Mở chương trình Pascal
Chương trình
var i, x: byte;
a, p: string;
begin
write('nhap vao xau: ’); readln(a); x:= length(a);
p:=’’;
for i := x downto
p:= p+a[i];
if a = p then write('xau la palindrome’) else write('xau la palindrome’);
readln
end.
b Hãy viết lại chương trình đó, khơng dùng biến xâu p
(60)xâu S kí tự
Do chương trình khơng phân biệt chữ hoa chữ thường nên ta dùng hàm upcase để đổi kí tự thường thành kí tự hoa
Có thể cho dàn ý sau: {phần khai báo}
begin
{nhập xâu S} N:= length(S);
{khởi tạo giá trị cho mảng dem}
for i:= to N
{nếu S[i] chữ đếm tăng cho S[i] }
for i :=1 to 26
{Thông báo số lần xuất chr(i+ord(‘A’) –1)}
end.
Yêu cầu HS nhà chuẩn bị
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại số lỗi thực hành
2 Dặn dò
(61)TUẦN: 27
TIẾT: 34 § 13 KIỂU BẢN GHI NGÀY SOẠN: ………
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Biết khái niệm kiểu ghi
Biết cách khai báo ghi, truy cập đến trường ghi Các thao tác nhập, xuất hay xử lí trường ghi
2 Kĩ năng:
Bước đầu biết mô tả đối tượng số thuộc tính cần quản lí Khai báo kiểu ghi
Nhận biết trường (thuộc tính) biến ghi bước đầu viết vài thao tác xử lí trường ghi
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng., thảo luận nhóm
III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu, máy tính…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ: 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Chiếu kết thi tốt nghiệp SGK trang
? Trên bảng có thơng tin gì?
? Bảng chứa thơng tin đối tượng?
Mỗi thông tin đối tượng gọi thuộc tính hay trường Mỗi đối tượng mô tả nhiều thông tin hàng gọi ghi
NNLT cho phép ta xác định kiểu ghi
? Để mô tả kiểu ghi ta cần xác định yếu tố nào?
Để khai báo kiểu ghi ta cần khai báo: Tên kiểu ghi, tên trường, kiểu liệu trường
Họ tên, ngày sinh, giới tính, điểm môn thi Bảng chứa thông tin đối tượng
HS trả lời câu hỏi
§ 13 KIỂU BẢN GHI
* Để mô tả kiểu bàn ghi ta cần xác định: - Tên kiểu ghi
- Tên thuộc tính (trường) - Kiểu liệu trường - Các khai báo biến
- Cách tham chiếu đến trường
1 Khai báo
Cú pháp:
type <tên kiểu ghi> = record
<tên trường 1>: <kiểu trường 1>; < tên trường k>: <kiểu trường k>;
end;
var <tên biến ghi>: <tên kiểu ghi>;
* Trong đó:
(62)Yêu cầu HS cho ví dụ khai báo kiểu liệu ghi
Nếu A B hai biến ghi có kiểu ta gán giá trị B cho A
Yêu cầu HS viết thủ tục nhập giá trị trường biến ghi DS
Yêu cầu HS nghiên cứu ví dụ SGK
? Sử dụng kiểu liệu để giải toán Nêu bước để giải tốn
u cầu chia nhóm thảo luận sau ghi giấy thu lại cho nhóm khác nhận xét
Chiếu mẫu chương trình chạy thử
Lên cho ví dụ
Readln(DS.Ho_ten); Readln(DS.Ngay_sinh); Readln(DS.Gioi_tinh); Readln(DS.Toan); Readln(DS.Li); Readln(DS.Hoa); Readln(DS.Tin); Một bảng ghi Bước1: Tạo kiểu liệu, khai báo biến
Bước 2: Nhập liệu cho mảng ghi
Bước 3: Tính tổng điểm Toan điểm Van
+ Bước 4: dựa vào tổng điểm để xếp loại
- <tên kiểu ghi>; <tên trường
1>, <tên trường k>; <tên biến ghi>:
do người lập trình tự đặt
- <kiểu trường 1>, , <kiểu trường k>: thuộc kiểu liệu chuẩn hay kiểu liệu có cấu trúc
Vd: type danh_sach = record
Ho_ten:string[30]; Ngay_sinh:string[10]; Gioi_tinh: boolean; Toan, Li, Hoa, Tin:real; end;
Var DS: danh_sach;
* Tham chiếu đến trường bảng ghi:
<tên biến ghi>.<tên trường>
Ví dụ: DS.Tin
2.Gán giá trị
Có hai cách để gán giá trị cho biến ghi:
- Dùng lệnh gán trực tiếp
Nếu A B hai biến ghi có kiểu thì: A:=B;
- Gán giá trị cho trường: A.ht:=B.ht; A.dtb:=B.dtb;
Ví dụ: SGK
Chương trình: SGK
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Cách khai báo kiểu ghi, tham chiếu đến trường bảng ghi Gán giá trị cho ghi, thủ tục, câu lệnh nhập xuất, xử lí bảng ghi
2 Dặn dị
(63)TUẦN: 28
TIẾT: 35 NGÀY SOẠN: ………
BÀI TẬP I MỤC ĐÍCH – YÊU CẦU:
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,
II PHƯƠNG PHÁP:
Vấn đáp kết hợp diễn giảng III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu, máy tính…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ:
1.Hãy nêu cú pháp khai báo biến ghi? 2.Hãy khai báo biến ghi ví dụ sau:
BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008
TT Họ tên năm sinh Toán Lý Hoá Văn TB Xếp loại
1 n 3 Nội dung
Đặ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
HOẠT ĐỘNG CỦA GV & HS NỘI DUNG KIẾN THỨC Hoạt động 1: 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
Bài tập 11/80(SGK):
Lưu ý vận dụng tập tiết 34
(64)đ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ụ trong
SGK để sửa lại chương trình
-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: Rèn luyện tư lập trình GV: Đưa câu hỏi tập lên máy chiếu
và 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 bản
ghi
Tổ chức hoạt động nhóm sau:
+Nhóm 1: Viết đoạn chương trình nhập Họ tên, DTBHK1 DTBHK2 học sinh
+Nhóm 2: Viết đoạn chương trình tính TBCN xếp loại
+Nhóm3: Viết đoạn chương trình xếp theo thứ tự tăng dần cột điểm TBCN
+Nhóm 4: Xuất kết theo bảng sau:
TT Họ tên
DHK1 DHK2 DCN XL
2 n
HS: Thảo luận theo nhóm phân cơng
-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
Writeln(' TT ',' Ho va Ten ', ' Xloai '); For i:=1 to n
If lop[i].xeploai='A' Then Begin
Write(i:4);
Write(Lop[i].ten:30); Write(Lop[i].Xeploai); Writeln;
End;
Bài tập 2/145(SBT Pascal5.5):
Viết chương trình nhập họ tên, điểm DHK1 DHK2 Hs lớp
a.Tính TBCN xếp loại
b Xếp hạng theo thứ tự tăng dần cột điểm TBCN học sinh
c.Thông báo theo bảng sau theo thứ tự xếp cột điểm TBCN
TT Họ tên DHK1 DHK2 DCN XL
2 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
(65)Write('NhapTBHK1',i); readln(DHK1); Write('NhapTBKT2',i); Readln(DHK2); End;
{Tinh TB Ca nam va Xep loai}
For i:=1 To n Do
Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3; For i:=1 To n Do
With Hs[i] Do Begin
If TBCN>=8.0 Then Xeploai:='Gioi'; if (TBCN>=6.5)and(TBCN<8.0) Then Xeploai:='Kha';
If (TBCN>=5) and (TBCN<6.5) Then Xeploai:='TB';
If (TBCN>=3.5) and (TBCN<5) Then Xeploai:='Yeu';
If TBCn<3.5 Then Xeploai:='Kem'; End;
For i:=1 to n-1 Do For j:=i+1 to n Do
If Hs[i].TBCN> Hs[j].TBCN Then Begin
tg:=Hs[i]; Hs[i]:=Hs[j]; Hs[j]:=tg; End;
{Thong bao ket qua nhu sau}
Writeln(' '); Writeln('| TT |','| Ho ten |','| TBCN |','| xeploai |');
Writeln(' '); For i:=1 to n
With Hs[i] Do
Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10); Readln;
End
V.CỦNG CỐ -DẶN DÒ:
1.Củng cố
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
2 Dặn dò:
(66)TUẦN: 28
TIẾT: 36 NGÀY SOẠN: ………
KIỂM TRA THỰC HÀNH DƯỚI 45 PHÚT I MỤC ĐÍCH – YÊU CẦU
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: đề kiểm tra
Học sinh: Học trước nhà
III NỘI DUNG
1 Ổn định lớp học 2 Đề kiểm tra
Viết chương trình nhập vào xâu s
a Đếm xuất hình số lần chữ số xuất chữ số xâu
b Tạo xâu cách lấy đổi tất kí tự xâu s thành kí tự in hoa
3 Đáp án
NỘI DUNG CHƯƠNG TRÌNH THANG ĐIỂM
Program chuong_trinh; Uses crt;
Var s, st : string[50]; dem, i, l: byte;
2đ
Begin
Write(‘nhap xau: ’); readln(s); 1đ
l:= length(s);
dem:= 0; 1đ
For i:= to l
if (s[i]>= ‘0’) and (s[i] <= ‘9’ then
dem:= dem +1; 2đ
Writeln(‘so lan xuat hien chu so: ’, dem:5); 1đ St:=’’;
2đ For i:= to l
st:= st + upcase(s[i]); Write(‘xau vua tao: ‘, st); Readln
End 1đ
(67)TUẦN: 29
TIẾT: 37 NGÀY SOẠN: ………
§ 14 KIỂU DỮ LIỆU TỆP § 15 THAO TÁC VỚI TỆP
I MỤC ĐÍCH – YÊU CẦU
- Biết khái niệm vai trò kiểu tệp
- Biết hai cách phân loại tệp: theo cách tổ chức liệu theo cách truy cập - Hiểu chất tệp văn
- Biết bước làm việc với tệp
- Biết khai báo tệp thao tác với tệp văn - Biết sử dụng số hàm thủ tục chuẩn làm việc với tệp
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng., thảo luận nhóm
III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu, máy tính…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ: Không kiểm tra 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
? Trong máy tính có loại nhớ nào? Loại không bị liệu tắt máy điện?
? Dữ liệu thuộc kiểu liệu xét lưu trữ đâu?
? Vì em biết?
Chốt lại: để lưu trữ liệu lâu dài lưu với dung lượng lớn người ta lưu liệu nhớ ngồi thơng qua tệp (file)
Có nhiều cách để phân loại tệp
? Xét theo cách tổ chức liệu tệp chia thành loại? Kể tên loại?
? Xét theo cách thức truy cập tệp chia thành loại? Kể tên loại?
Mất liệu điện Bộ nhớ nhớ Bộ nhớ không liệu tắt máy điện
Trong RAM
Mất liệu điện
2 loại: tệp văn tệp có cấu trúc
2 loại: tệp truy cập tệp truy cập trực tiếp
§ 14 KIỂU DỮ LIỆU TỆP
1 Vai trò kiểu tệp: Đặc điểm kiểu liệu tệp
+ Dữ liệu kiểu tệp lưu trữ lâu dài nhớ không bị tắt nguồn điện
+ Lượng liệu lưu trữ tệp lớn phụ thuộc vào dung lượng đĩa
2 Phân loại thao tác với tệp
* Xét theo cách tổ chức liệu
+ Tệp văn tệp mà liệu ghi dạng kí tự theo mã ASCII
+ Tệp có cấu trúc: tệp mà thành phần tổ chức theo cấu trúc định
* Xét theo cách thức truy cập:
+ Tệp truy cập tuần tự: cho phép truy cập liệu
(68)Dẫn dắt để chuyển sang 15 Viết khai báo lên bảng giải thích thành phần cú pháp
Yêu cầu HS lấy ví dụ minh hoạ
Mỗi liệu điều có tên tệp để tham chiếu Trong lập trình ta không cần thao tác trực tiếp với tệp liệu đĩa mà thông qua biến tệp
Yêu cầu lấy ví dụ gắn tên tệp
Lấy hai tình cần phải mở tin học 11: mở để ghi (ghi liệu), mở để học (dọc liệu) => trường hợp phải mở tệp
Giới thiệu thủ tục để mở tệp: Yêu cầu HS lấy ví dụ minh hoạ
? Để nhập liệu từ bàn phím, để in liệu lên hình ta dùng thủ tục nào? Giới thiệu thủ tục đọc liệu từ tệp ghi liệu vào tệp
Yêu cầu HS lấy ví dụ?
Đưa lí phải đóng tệp để giáo dục cho HS ý thức bảo mật, an tồn thơng tin
Ghi vào
var T1, T2: Text;
assign(T1,’BAITAP.TXT); ý nghe giảng liên hệ với học
Mỗi em lấy ví dụ Trả lời câu hỏi
Mỗi em lấy ví dụ
§ 15 THAO TÁC VỚI TỆP
1 Khai báo
Cú pháp: var <tên biến tệp>: Text;
2 Thao tác với tệp a Gắn tên tệp
Thủ tục gắn tên tệp với biến tệp:
assign(<biến tệp>,<tên tệp>);
tên tệp: biến xâu xâu
b Mở tệp
Hai thủ tục để mở tệp - Mở để ghi liệu:
Rewrite(biến tệp); - Mở tệp để đọc liệu:
Reset(biến tệp);
c Đọc/ghi tệp văn bản
- Đọc liệu từ tệp:
Read(biến tệp, danh sách biến);
Readln(biến tệp, danh sách biến); - Ghi liệu vào tệp:
Write(biến tệp, danh sách kết quả);
Writeln(biến tệp, danh sách kết quả); *Một số hàm đọc/ghi tệp văn bản - Hàm eof(biến tệp) trả giá trị TRUE trỏ tệp đến cuổi tệp
- Hàm eoln(biến tệp) trả giá trị TRUE trỏ tệp đến cuổi dịng
d Đóng tệp:
Thủ tục để đóng tệp
Close(biến tệp); V CỦNG CỐ - DẶN DÒ
1 Củng cố:
Cụ thể sơ đồ SGK trang 86
2 Dặn dò
(69)TUẦN: 29
TIẾT: 38 NGÀY SOẠN: ………
§ 16 VÍ DỤ LÀM VIỆC VỚI TỆP
I MỤC ĐÍCH – YÊU CẦU
Hiểu thao tác làm việc với tệp
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng., vấn đáp…
III PHƯƠNG TIỆN DẠY HỌC
Máy tính máy chiếu projector
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ:
Câu hỏi: Viết cú pháp mở, đọc/ghi, đóng tệp? Mỗi phần cho ví dụ minh hoạ?
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Hoạt động 1: Ví dụ 1
Hoạt động 1.1: Tìm hiểu đề bài
Chiếu tốn lên
Hướng dẫn HS tìm hiều đề bài:
? Yêu cầu HS nhắc lại cơng thức tính khoảng cách biết toạ độ hai điểm?
Hoạt động 1.2: tìm hiểu
chương trình:
Chiếu chương trình soạn sẵn lên (có đánh vị trí dịng)
? Gọi HS nêu ý nghĩa câu lệnh dòng?
Nhận xét, sau khái qt chương trình để HS nắm chạy chương trình
Hoạt động 1.3: Mở rộng bài
tốn
u cầu in lên hình khoảng cách trại xa với trại hiệu trưởng nhất?
Hoạt đơng 2: ví dụ 2
Hoạt động 2.1: Tìm hiểu bài
tốn
Chiếu tốn lên
u cầu HS chia nhóm để tính điện trở tương đương sơ đồ
Chiếu sơ đồ điện trở
Phân tích, xác định yêu cầu toán theo hướng dẫn giáo viên
Trả lời câu hỏi
Tìm hiểu nghiên cứu chương trình
Quan sát kết chạy chương trình
Thảo luận phút đưa đáp án
Quan sát tìm hiểu tốn
Chia nhóm nhóm xây dựng cơng thức tính điện trở tương đương
Ví dụ 1:
Chương trình:
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);
write(‘khoang cach: ‘,d:10:2);
end; close(f) end.
Vi dụ
Chương trình:
Program Chuong_trinh; Var a: array[1 5] of real;
R1, R2, R3: real; i: integer;
(70)Nhận xét yêu cầu nhóm chuyển biểu thức sang NNLT Pascal
Hoạt động 2.2: Xây dựng
chương trình:
Gọi HS lên xây dựng chương trình theo bước
Chiếu bước lên + Khai báo
+ Gán tên tệp cho biến tệp + Đọc liệu từ tệp
+ Tính điện trở tương đương + Ghi vào tệp
+ Đóng tệp
Nhận xét tối ưu chương trình
Chạy chương trình
Mỗi HS lên trình bày theo bước
Theo dõi rút kinh nghiệm chỗ sai sót
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:2,‘= ‘); writeln(f2);
end; close(f1); close(f2); end
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại thủ tục thao tác với tệp
2 Dặn dò
(71)TUẦN: 30
TIẾT: 39 NGÀY SOẠN:
TIẾT BÀI TẬP
I MỤC ĐÍCH – YÊU CẦU
Củng cố kiến thức học chương V
II PHƯƠNG PHÁP
Nêu vấn đề, vấn đáp…
III PHƯƠNG TIỆN DẠY HỌC
SGK, bảng phụ…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ:
Không kiểm tra cũ kiểm tra 15 phút
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS
Hoạt động 1: câu 1/89
Nêu câu hỏi sau yêu cầu HS suy nghĩ trả lời
Hoạt động 2: câu 2/89
Trong sơ đồ thao tác với tệp, cần nhập liệu từ tệp phải dùng thao tác nào?
Hoạt động 3: câu 3/89
Tại cần phải có câu lệnh mở tệp trước đọc /ghi tệp?
Hoạt động 4: câu 4/89
Tại sau phải dùng câu lệnh đóng tệp sau kết thúc ghi liệu vào tệp?
Có thể trình bày thêm ý: trước liệu thực ghi vào tệp, lưu trữ nhớ đệm Mỗi nhớ đệm đầy có u cầu đóng tệp liệu nhớ đệm (có thể chưa đầy) chuyển ghi vào tệp
Trả lời câu hỏi: Lưu lượng lớn thông tin, lưu thông tin lâu dài
Trong sơ đồ thao tác với tệp, cần nhập liệu từ tệp phải dùng thao tác như: gắn tên tệp, mở tệp để ghi, ghi liệu vào tệp, đóng tệp để hồn tất việc ghi liệu
assign(f, fi); rewrite(f);
write(f, x, ‘ ‘,y, ‘ ‘,z, ‘ ‘); close(f);
Trước sử dụng tệp phải có câu lệnh để trình dịch biết mục đích mở tệp để đọc hay ghi, đồng thời đặt trỏ tệp vào vị trí thích hợp
Phải dùng câu lệnh đóng tệp sau kết thúc ghi liệu vào tệp để hệ thống hoàn tất việc ghi liệu tệp
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhăc lại cần thiết phải sử dụng trệp
2 Dặn dò
(72)TUẦN: 30 - 31
TIẾT: 40 - 41 NGÀY SOẠN: ………
CHƯƠNG VI CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CĨ CẤU TRÚC
§ 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
− Biết khái niệm chương trình
− Sự khác biệt hàm thủ tục
− Biết ý nghĩa chương trình con, cần thiết phải viết chương trình thành chương trình
− Biết cấu trúc chương trình
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 thác hai loại chương trình với tham số hình thiức chúng − Biết cách viết lời gọi chương trình thân chương trình
3 Thái độ
Rèn luyện phẩm chất người lập trình tinh thần hợp tác, làm việc theo nhóm,tn thủ u cầu cơng việc chung
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng, thảo luận nhóm
III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu, máy tính…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ: không kiểm tra cũ
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Hoạt động 1: khái niệm
chương trình phân loại:
Hoạt động 1.1: Khái niệm
chương trình
Đặt vấn đề: chiếu toán
trong SGK
? Nếu em nhóm trưởng thì
nhóm em giải tốn nào?
Dẫn dắt để đưa khái niệm chương trình
Hoạt động 1.2: Lợi ích của
việc sử dụng chương trình Chiếu chương trình giải tốn
? Em có nhận xét chương
Quan sát tốn
Chia nhóm thảo luận (2’) Em chia bạn thực
Đọc chương trình 3’ nhận xét:: Chương trình
1 Khái niệm chương trình con 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 con
− Tránh việc phải viết viết lại dãy lệnh
− Chương trình dễ đọc, dễ hiểu, dễ kiểm tra phát lỗi chỉnh sửa
(73)trình (Đặc biệt phần bôi đen)?
Để xử lí vấn đề NNLT bậc cao cung cấp khã xây dựng chương trình dạng tổng quát “đại diện” cho nhiều đoạn lệnh tương tự
Cho HS nghiên cứu lợi ích việc sử dụng chương trình
Giải thích lợi ích
Hoạt động 2:
Hoạt động 2.1: Phân loại
chương trình
? Thế hàm, thủ tục?
sự khác hàm thủ tục?
? Em làm quen với hàm thủ tục
Hoạt động 2.2: cấu trúc
chương trình con:
Đọc SGK yêu cầu HS lên bảng viết
Yêu cầu HS so sánh với cấu trúc chương trình
Yêu cầu HS giải thích phần khai báo phần thân chương trình
Hoạt động 3: Một số khái
có đoạn lệnh tương tự Làm cho chương trình trở nên dài
Nhóm HS khác nhận xét Đọc SGK cho biết lợi ích
HS phát biếu chỗ
Hàm: Sin(x), SQR(x), length(s)
Thủ tục: write( ), readln, delete(st,p,n)
Lên bảng viết cấu trúc CTC Giống cấu trúc chương trình khác chỗ phần đầu chương trình bắt buộc phải có
HS đứng chỗ phát biểu
lớn
− Phục vụ cho trình trừu tượng hóa − Mở rộng khã NN
− Thuận tiện cho việc phát triển nâng cấp chương trình
2 Phân loại cấu trúc chương trình con
a Phân loại:
− Hàm (Function): chương trình thực số thao tác trả giá trị qua tên
VD: sin(x), sqrt(s), length(s)
− Thủ tục (procedure): chương trình thực số thao tác định khơng trả giá trị qua tên
VD: write( ), readln, delete(st,p,n)
b cấu trúc chương trình con <phần đầu> [<phần khai báo]>
<phần thân>
− Phần khai báo khai báo biến,
− Phần thân dãy lệnh với nhiệm vụ
Chương trình
Modul1(CTC) Modul1(CTC)
Modul1(CTC) Modul1(CTC)
(74)niệm:
Diễn giải để đưa khái niệm biến cục bộ, tham số hình thức VD: chương trình Luythua(x,k) x, k tham số hình thức j biến cục
Hoạt động 4: Thực CTC ? Để sử dụng thủ tục hàm
chuẩn em thường viết đâu viết nào?
Để gọi chương trình con, ta cần có lệnh gọi tương tư tự hàm thủ tục chuẩn theo cú pháp
Yêu cầu HS cho ví dụ
Chiếu chương trình yêu cầu HS xác định tham số hình thức, tham số thực sự, biến cục bộ, biến tồn cục
Viết chương trình Viết tên thủ thục tham số kết thúc dấu “;” Viết hàm lệnh thủ tục Hàm không viết lệnh
Cho ví dụ
Chia nhóm để trả lời câu hỏi
* Tham số hình thức
Các biến khai báo cho liệu vào/ra gọi tham số hình thức CTC
* Biến cục bộ:
Các biến khai báo dùng riêng cho chương trình gọi biến cục
* Biến tồn cục:
Biến sử dụng cho chương trình, kể CTC
* Tham số thực sự:
Là biến chứa liệu vào tương ứng với tham số hình thức
VD: Luythua(a,m) a, m tham số thực
c Thực chương trình con:
Tên chương trình con(tham số thực sự) VD: Luythua(b,n);
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
- Khái niệm chương trình - Lợi ích việc sd CTC - Phân biệt hàm thủ tục
- Tham số hình thức, tham số thực sự, biến cục biến toàn cục - Thực chương trình
2 Dặn dò
(75)TUẦN: 31 - 32
TIẾT: 42 - 43 NGÀY SOẠN:
§ 18 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CTC I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức
− HS thấy thủ tục có cấu trúc tương tự chương trình − Hiểu mối liên quan chương trình thủ tục
− Phân biệt tham trị tham số biến khai báo tham số hình thức 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 phần đầu thủ tục
− Nhận biết lời gọi thủ tục chương trình tham số thực
II PHƯƠNG PHÁP
Nêu vấn đề, diễn giảng, thảo luận nhóm
III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu, máy tính…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (kiểm tra sĩ số) 2 Kiểm tra cũ:
Câu 1: lợi ích việc sd CTC? Câu 2: hàm khác thủ tục điểm nào?
Câu 3: biến cục bộ, biến toàn cục, tham số hình thức, tham số thật sự, cho ví dụ?
3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Hoạt động 1: Đặc vấn đề:
Chiếu vd lên bảng (ví dụ VD_thutuc1 trang 96)
Giới thiệu cho HS cấu trúc thủ tục vị trí khai báo thủ tục, lời gọi thủ tục Hoạt động 2: Tìm hiểu chương trình
Chiếu chương trình
VD_thutuc1
Giải thích để HS thấy được:
+ Tên thủ tục + Thân thủ tục + Lời gọi thủ tục
+ Hoạt động ch.trình ? Nếu ta muốn vẽ hình chủ nhật ta phải sửa chương trình nào?
Hoạt động 3: cấu trúc thủ
tục
Theo dõi
(76)? Vị trí thủ tục nằm phần chương trình chính?
? Cấu trúc thủ tục gồm phần?
Phần đầu thủ tục gồm từ khoá procedure là tên thủ tục, DS tham số có khơng
Phần khai báo dùng để xác định kiểu biến xác định chương trình khác sd thủ tục
Dãy câu lệnh viết trong cặp từ khoá begin và
end
? Chương trình Ve_hcn khuyết phần so với cấu trúc thủ tục? Tổng quát chiếu cấu trúc thủ tục
Nhấn mạnh số đặc điểm để HS nắm
Hoạt động 4: Ví dụ thủ
tục có sử dụng tham số
Hoạt động 4.1 VD_thutuc2
Xây dựng chương trình Hướng dẫn HS chia nhỏ yêu cầu để HS viết câu lệnh tương ứng
+ Vẽ cạnh + Vẽ hai cạnh bên + Vẽ cạnh
Chính xác hố thủ tục đưa tồn chương trình hồn chỉnh
Phân tích lời gọi thủ tục đưa khái niệm tham trị
Nằm phần khai báo, sau phần khai báo biến Ba phần: tên thủ tục, khai báo thủ tục phần thân
Khuyết phần khai báo
Theo dõi ghi vào tập
Viết câu lệnh theo hướng dẫn GV
Nghe giảng ghi khái niệm tham trị tham
a Cấu trúc thủ tục
procedure <Tên thủ tục>[(ds tham số)]
[<phần khai báo>] begin
[<dãy lệnh>] end;
* Chú ý:
- Sau từ khoá end “;”
- Các thủ tục có phải khai báo mơ tả phần khai báo chương trình sau phần khai báo biến
- Khi muốn thực thủ tục ta viết lệnh gọi thủ tục thủ tục chuẩn
Chương trình: VD_thutuc2: SGK
* Một số khái niệm:
(77)tham biến
Hoạt động 4.2:
VD_thambien1
Chiếu yêu cầu đầu yêu cầu HS đưa thuật tốn hốn đổi
Chiếu chương trình lên hình chạy chương trình cho HS thấy hoạt động tham biến
Thay đổi thủ tục cách đưa x var
Hoạt động 5: Cách viết
và sử dụng hàm
? Thủ tục khác với hàm điểm nào?
Hàm có cấu trúc tương tự thủ tục khác với thủ tục phần đầu
Giải thích cụ thể tên hàm, DS tham số, kiểu liệu
Hoạt động 5.1: Ví dụ 1
Chiếu chương trình ví dụ ? Trong chương trình có hàm?
? Hàm UCLN(x,y) dùng để làm gí?
? Lời gọi hàm đâu?
? Có khác với thủ tục lời gọi hàm?
Hoạt động 5.2: Ví dụ 2
Yêu cầu HS tham khảo SGK
biến
Dùng biến trung gian TG TG x;
x y; y TG;
Quan sát kết chạy chương trình
Trả lời câu hỏi
Quan sát ví dụ Một hàm UCLN
Tìm UCLN lớn hai số x, y
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
hình thức thay tham số thực tương ứng giá trị cụ thể không khai báo sau từ khoá var.
- Tham số biến (tham biến): tham số hình thức thay tham số thực tương ứng tên biến khai báo sau từ khoá var.
Chương trình VD_tham bien1: SGK
2 Cách viết sử dụng hàm:
- Hàm có cấu trúc tương tự thủ tục, khác phần đầu
function <tên hàm>[(DS tham số)]: <kiểu liệu>;
Vi dụ 1: SGK
* Cách sử dụng hàm
- Việc sử dụng hàm tương tự việc sử dụng hàm chuẩn
- Lệnh gọi hàm tham gia vào biểu thức tham số lời gọi hàm, thủ tục khác
V CỦNG CỐ - DẶN DÒ
1 Củng cố:
- Cấu trúc thủ tục hàm - Cách viết sd thủ tục hàm - Phân biệt tham trị tham biến
2 Dặn dò
(78)TUẦN: 32 - 33
TIẾT: 44 - 45 BÀI THỰC HÀNH NGÀY SOẠN: 19/02/08
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Củng cố lại kiến thức xâu chương trình
2 Kĩ năng
Rèn luyện kĩ xử lí xâu việc tạo hiệu ứng chữ chạy hình Sử dụng chương trình lập trình
3 Thái độ
Rèn luyện HS ý thức cần có người lập trình
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 thực hành
II PHƯƠNG PHÁP
Nêu vấn đề giải vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phòng máy thực hành vi tính, máy chiếu
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS
Yêu cầu HS khởi động chương trình Pascal
Hoạt động 1: Tìm hiểu xây dựng hai thủ tục catdan(s1,s2) cangiua(s)
chiếu thủ tục catdan(s1,s2) lên hình
? Đầu vào thủ tục này?
Chức thủ tục gì? Lấy ví dụ SGK
Chiếu nội dung thủ tục
? Đầu vào thủ tục?
? Thủ tục thực cơng việc gì?
Cần lưu ý không khai báo s tham biến thủ tục khơng có hiệu lực lệnh đưa s hình khơng nằm thủ tục
Hoạt động 2: Tìm hiểu chương trình câu b
Chiếu nội dung chương trình lên hình
? Chức chương trình?
Giới thiệu cho học sinh thủ tục hàm chuẩn Gotoxy(x,y):
Delay(n): thường dùng để làm chậm chương trình lại cho ta quan sát, n số ngun tính ms
Keypressed: cho giá trị True ta nhấn phím
Khởi động chương trình
Quan sát trả lời câu hỏi GV Vào: Xâu kí tự s1
Ra: biến xâu kí tự s2
Thực việc tạo sâu s2 từ xâu s1 việc chuyển kí tự thứ đến vị trí cuối xâu Đầu vào xâu kí tự s khơng q 79 kí tự Bổ sung vào s dấu cách để s đưa hình kí tự ban đầu dịng gồm 80 kí tự
(79)nào vào bàn phím
Thực chương trình để giúp HS thấy kết chương trình
Hoạt động 3: Rèn luyện kĩ lập trình
Yêu cầu HS tìm hiểu vấn đề
Yêu cầu HS lập trình máy
Yêu cầu HS chạy chương trình nhập test Đánh giá kết lập trình HS
Quan sát kết hình Quan sát đưa kết luận
- Giống nhiệm vụ câu b, khác chương trình câu b ln cho xâu kí tự chạy dịng 12cịn xâu kí tự phải chạy xâu bất kì.Vì truyền tham số cho dòng chạy cho thủ tục
Viết chương trình máy báo cáo kết Nhập test theo hướng dẫn giáo viên
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại số lỗi thực hành
2 Dặn dò
Câu hỏi tập nhà
Viết thủ tục chaychu(s, dong) nhận tham số xâu s khơng q 79 kí tự biến ngun dịng In hình dịng chữ xác định S chạy dịng Don Viết chương trình thực có sử dụng thủ tục
(80)TUẦN: 25
TIẾT: 44 BÀI THỰC HÀNH NGÀY SOẠN: 19/02/08
I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức
Củng cố lại kiến thức chương trình
2 Kĩ năng
Rèn luyện kĩ lập trình giải số toán đơn giản
3 Thái độ
Rèn luyện HS ý thức cần có người lập trình
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 thực hành
II PHƯƠNG PHÁP
Nêu vấn đề giải vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phịng máy thực hành vi tính, máy chiếu
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra cũ 3 Nội dung
HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS
Họat động 1: Tìm hiểu việc xây dựng hàm thủ tục Chiếu khai báo kiểu liệu Diem tam giác Chiếu thủ tục lên bảng
? Chức CTC?
Có tham số nào? Tham số tham số biến, tham số tham trị?
Hoạt động 2: tìm hiểu chương trình câu b SGK Chiếu chương trình câu b
? Chương trình thực cơng việc gì?
Thực chương trình để giúp HS thấy kết Thay biến thành tham trị để HS thấy sai khác
Chức CTC:
Daicanh( ) tính độ dài ba cạnh a, b, c tam giác r
Chuvi( ): real; cho giá trị chu vi tam giác Tinhchat( ) khẳng định tính chất tam giác: đều, cân, vuông
Hienthi( ); hiển thị toạ độ ba đỉnh tam giác
Kh_cach( ); cho giá trị khoảng cách hai điểm
- Tham số biến r, a, b, c - Tham số giá trị p, q
Nhập toạ độ ba đỉnh tam giác khảo sát tính chất tam giác cân, đều, vng In chu vi diện tích tam giác
V CỦNG CỐ - DẶN DÒ 1 Củng cố:
Nhắc lại số lỗi thực hành
2 Dặn dò
Câu hỏi tập nhà
Viết thủ tục chaychu(s, dong) nhận tham số xâu s khơng q 79 kí tự biến ngun dịng In hình dịng chữ xác định S chạy dịng Don Viết chương trình thực có sử dụng thủ tục
(81)