-Söû duïng caùc kieåu döõ lieäu vaø khai baùo bieán ñuùng ñeå coù theå vieát ñöôïc moät chöông trình.. Troïng taâm:.[r]
(1)CHƯƠNG I: MỘT SỐ KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
BÀI 1: KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
I MỤC TIÊU BAØI HỌC: Kiến thức:
-Biết khái niệm lập trình ngơn ngữ lập trình. -Biết khái niệm chương trình dịch.
-Phân biệt loại chương trình dịch: thơng dịch biên dịch. Kỹ năng:
-Chưa cần kó cụ thể. Trọng tâm:
-Chương trình dịch. Tư – Thái độ:
-Học tập nghiêm túc lập trình. II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: Vấn đáp, gợi mở.
-Phương tiện: Phấn màu, thước kẻ, SGK tin11, SGV.
Hoïc sinh:
-Sách giáo khoa, đọc trước SGK, thực tiễn. III TIẾN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:không .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH 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. GV: Đặt vấn đề: tốn có thuật tốn
đều giải máy tính Các bước để giải toán: +Xác định toán +Xây dựng thuật tốn khả thi +Lập trình
HS: Chú ý lắng nghe
GV: u cầu học sinh: Xác định yếu tố input output tốn giải phương trình bậc ax+b=0:
B1: Nhập a,b
B2: Nếu a<>0, kết luận: x=-b/a
B3: Nếu a=0 b<>0, kết luận: vô nghiệm B4: Nếu a=0 b=0, kết luận: vô số nghiệm
HS: Xaùc định:
Input: a,b
Output: nghiệm nhất: x=-b/a, voâ nghiệm, voâ
số nghiệm
GV: Diễn giảng: hệ thống bước gọi thuật toán
Hỏi: diễn đạt thuật toán cho máy hiểu em
(2)dùng ngôn ngữ gì?
HS: Dùng ngôn ngữ lập trình
GV: Diễn giảng: 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
Yêu cầu: đọc SGK cho biết khái niệm lập trình
HS: Lập trình việc sử dụng cấu trúc liệu
và lệnh ngôn ngữ lập trình cụ thể để mô
tả liệu diễn đạt thao tác thuật toán GV: Hỏi: kết hoạt động lập trình gì?
HS: Được chương trình
GV: Yêu cầu: Ghi loại ngôn ngữ lập trình biết
HS: Có loại ngôn ngữ lập trình:
+Ngôn ngữ máy
+Hợp ngữ
+Ngoân ngữ bậc cao
GV: Hỏi: em hiểu ngôn ngữ máy ngôn ngữ bậc cao?
HS: Ngôn ngữ máy: lệnh mô tả thành
các bit 0,1 Chương trình viết ngôn ngữ
máy nạp vô nhớ thực
Ngoân ngữ bậc cao:lệnh mô tả gần
ngôn ngữ người
Chương trình phải chuyển đổi thành chương
trình ngôn ngữ máy
GV: Hỏi: Để chuyển đổi chương trình viết ngơn ngữ bậc cao sang ngơn ngữ máy phải làm sao?
HS: Sử dụng chương trình dịch để chuyển đổi GV: Hỏi: Tại khơng lập trình ngơn ngữ máy mà phải làm ngơn ngữ bậc cao?
HS: Lập trình ngôn ngữ bậc cao dễ viết
hơn
Khái niệm lập trình: Lập trình sử dụng cấu
trúc liệu câu lệnh ngôn ngữ lập trình cụ thể để mơ tả liệu diễn đạt thuật tốn
-Có loại ngơn ngữ lập trình: Ngơn ngữ máy, hợp ngữ ngơn ngữ bậc cao
-Chương trình viết ngơn ngữ máy nạp trực tiếp vào nhớ thi hành
-Chương trình viết ngơn ngữ bậc cao nói chung khơng phụ thuộc loại máy, muốn thi hành phải chuyển sang ngơn ngữ máy
=>Cần phải có chương trình dịch để chuyển chương trình viết ngơn ngữ lập trình bậc cao sang ngơn ngữ máy để máy thi hành
Hoạt động 2: Tìm hiểu chương trình dịch: thơng dịch biên dịch GV: Đặt vấn đề: Giới thiệu đất nước cho
một du khách nước ngoài:
C1: cần người biết tiếng Anh dịch câu nói em cho người khách
C2: Soạn nội dung cần giới thiệu giấy dịch tồn nội dung sang tiếng Anh cho người khách
HS: Chú ý lắng nghe ví dụ đưa thảo luận để tìm ví dụ tương tự
GV: Yêu cầu học sinh nghiên cứu SGK cho biết bước tiến trình thơng dịch biên dịch
Chương trình dịch có loại: Biên dịch thông dịch
+ Biên dịch (Compiler): Thực bước sau:
-Duyệt, kiểm tra, phát lỗi kiểm tra tính đắn câu lệnh chương trình nguồn
-Dịch tồn chương trình nguồn thành chương trình đích (ngơn ngữ máy) để thực máy lưu trữ để sử dụng lại cần
(3)HS: Tìm hiểu trả lời:
Biên dịch: ( cần thực nhiều lần) Thông dịch: (Phù hợp với môi trường
đối thoại người máy)
lệnh thực câu lệnh
Thông dịch thực cách lặp lại dãy bước sau:
-Kiểm tra tính đắn câu lệnh chương trình nguồn
-Chuyển đổi câu lệnh thành hay nhiều câu lệnh ngôn ngữ máy
-Thực câu lệnh vừa chuyển đổi
.Củng cố:
-Lập trình ngôn ngữ lập trình
-Hai loại chương trình dịch: thông dịch biên dịch .Dặn dò tập nhà:
-Mỗi loại ngôn ngữ lập trình phù hợp với lập trình có trình độ nào?
-Kể tên số ngôn ngữ lập trình bậc cao có sử dụng biên dịch số sử dụng kĩ thuật thoâng dịch
-Xem trước .Rút kinh nghiệm bổ sung:
………
-
-CHƯƠNG I: MỘT SỐ KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
BÀI 2: CÁC THÀNH PHẦN CỦA NGƠN NGỮ LẬP TRÌNH
I MỤC TIÊU BAØI HỌC: Kiến thức:
-Biết thành phần ngơn ngữ lập trình Một ngơn ngữ lập trình có thành phần: Bảng chữ cái, cú pháp, ngữ nghĩa.
-Biết số khái niệm như: tên, tên dành riêng, tên chuẩn, tên người lập trình đặt, hằng, biến và chú thích.
2 Kỹ năng:
-Phân biệt thành phần ngơn ngữ lập trình.
-Biết cách đặt tên phân biệt tên chuẩn, tên dành riêng tên người lập trình đặt -Phân biệt biến.
-Biết sử dụng thích. Trọng tâm:
-Một số khái niệm: tên dành riêng, tên chuẩn, tên người lập trình đặt, hằng, biến. Tư – Thái độ:
- Rèn luyện tư logic. II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở, hoạt đơng nhóm. -Phương tiện: Phấn màu, thước kẻ,SGK tin11 ,SGV.
Hoïc sinh:
-Sách giáo khoa, đọc trước SGK, thực tiễn. III TIẾN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:
-Tại phải xây dựng ngôn ngữ lập trình bậc cao?
-Chương trình dịch gì? Tại cần có chương trình dịch?
Tiết :2
(4)-Phân biệt thông dịch biên dịch
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Hoạt động 1: Tìm hiểu thành phần ngơn ngữ lập trình. GV: Hãy nhắc lại khái niệm ngơn ngữ lập
trình bậc cao số ngơn ngữ lập trình bậc cao
GV: Các lệnh mã hóa ngơn
ngữ gần với ngơn ngữ tiếng anh Chương trình viết ngơn ngữ lập trình bậc cao phải chuyển đổi thành chương trình ngơn ngữ máy thựa
Một số ngơn ngữ lập trình bậc cao: Pascal, C+ +,C#, Java,…
Một ngôn ngữ lập trình thường có thành phần: bảng chữ cái, cú pháp ngữ nghĩa
GV: Hỏi:bảng chữ sử dụng ngơn ngữ
lập trình gì?
HS: Nghiên cứu SGK trả lời: bảng chữ
trong ngơn ngữ lập trình gồm: chữ thường hoa bảng chữ tiếng anh, số từ 0,…, 9; kí tự khác
GV: Hỏi: cú pháp khác ngữ nghĩa chỗ nào? HS: Trả lời: cú pháp qui tắc để viết chương trình, dễ phát lỗi tổ hợp kí tự khơng hợp lệ, cịn ngữ nghĩa xác định ý nghĩa tổ hợp kí tự chương trình
1.Các thành phần bản:
- Mỗi ngơn ngữ lập trình thường có thành phần : bảng chữ cái, cú pháp ngữ nghĩa
a.Bảng chữ cái: Là tập ký hiệu dùng để viết chương trình
-Trong ngơn ngữ Pascal bảng chữ gồm: Các chữ bảng chữ tiếng Anh, chữ số
số ký tự đặc biệt (xem SGK)
b.Cú pháp: Là quy tắc dùng để viết chương trình
c Ngữ nghĩa: Xác định ý nghĩa thao tác cần thực
ứng với tổ hợp ký tự dựa vào ngữ cảnh
-Cú pháp cho biết cách viết chương trình hợp lệ, ngữ nghĩa xác định ý nghĩa tổ hợp ký tự chương trình
-Lỗi cú pháp chương trình dịch phát thơng báo cho người lập trình Chương trình khơng cịn lỗi cú pháp dịch sang ngôn ngữ máy Lỗi ngữ nghĩa phát chạy chương trình
Hoạt động 2: Tìm hiểu tên ngơn ngữ lập trình. GV: Đặt vấn đề: đối tượng chương
trình phải đặt tên
HS: Trình bày: turbo pascal: tên tối đa 127 kí tự, dùng chữ, số , dấu gạch bắt đầu số
GV: Hỏi: vấn đề đặt ra: vấn đề chữ hoa
và thường ngôn ngữ lập trình có phân biệt hay khơng?
HS: Tìm hiểu trả lời: ngơn ngữ lập trình C+ + phân biệt chữ thường chữ hoa cịn ngơn ngữ pascal khơng
GV: Hỏi: nêu số ví dụ tên hợp lệ
và khơng hợp lệ turbo pascal?
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
(5)HS: Trả lời: số tên hợp lệ: CBA,_405 Một số tên không hợp lệ:9AB,VE C,AW@#K…
GV: Chia lớp thành ba nhóm: cho nhóm
nghiên cứu trình bày tên dành riêng , tên chuẩn, tên người lập trình đặt
HS: Nghiên cứu trình bày:
Tên dành riêng ( từ khóa) :là tên dùng với ý nghĩa xác định , không dùng với ý nghĩa khác Tên chuẩn:là tên ngơn ngữ lập trình có ý nghĩa đó, định nghĩa lại để dùng với ý nghĩa khác
Tên người lập trình đặt tên dùng ý nghĩa riêng người lập trình khai báo trước sử dụng khơng trùng với tên dành riêng
GV: Hỏi:Xác định tên dành riêng , tên chuẩn,
tên người lập trình đặt: program, type, var,abs vidu,xyz, abc,byte, div,char
HS: Trả lời:
Tên dành riêng:Program, type
Tên chuẩn:integer, byte, abs,div,char Tên người lập trình đặt:vidu,xyz,abc
GV: Đúc kết lại tất ý kiến nhóm.
-Ngơn ngữ lập trình thường có loại tên bản: Tên dành riêng, tên chuẩn tên người lập trình tự đặt Tên dành riêng:
-Là tên ngơn ngữ lập trình quy định với ý nghĩa xác định mà người lập trình khơng thể dùng với ý nghĩa khác
-Tên dành riêng cịn gọi từ khóa
Ví dụ: Một số từ khóa
Trong ngơn ngữ Pascal: Program, Var, Uses, Begin, End, …
Trong ngôn ngữ C++: main, include, while, void,… Tên chuẩn:
-Là tên ngơn ngữ lập trình (NNLT) dùng với ý nghĩa thư viện NNLT, người lập trình sử dụng với ý nghĩa khác
Ví dụ: Một số tên chuẩn
Trong ngôn ngữ Pascal: Real, Integer, Sin, Cos, Trong ngôn ngữ C==: cin,cout Getchar…
Tên người lập trình tự đặt
-Được xác định cách khai báo trước sử dụng không trùng với tên dành riêng
-Các tên chương trình khơng trùng
Hoạt động 3: Tìm hiểu , biến thích. GV: Hỏi: cho ví dụ số , xâu
và logic?
Trình bày khái niệm này?
HS: Trả lời:Hằng số là:31,4; +3.1419, 1.0E-6
Haèng logic: true,false Hằng xâu: “ học di”
Hằng số:là số ngun, số thực, có dấu khơng dấu
Hằng logic giá trị sai
b Hằng biến Hằng:
- Các ngơn ngữ lập trình thường có: + Hằng số học : số nguyên số thực
+ Hằng xâu : chuỗi ký tự đặt d6áu nháy “ ””
+ Hằng Logic : giá trị sai
Là đại lượng có giá trị khơng đổi q trình thực chương trình
Bieán:
(6)Hằng xâu chuỗi kí tự mã Ascii, đặc cặp dấu nháy
GV: Hỏi:hãy xác định số xâu
trong ví dụ: ‘ abc’; 3,14; ’14,3’ ;1.5E+3 Để xác định xâu dấu nháy đơn pascal:’ ‘
HS: Trả lời: số 3,14;1.5E+3 Hằng xâu ‘abc’, ’14,3’
GV: Hoûi: định nghóa định
nghóa bieán?
HS: Nghiên cứu SGK trả lời:
Hằng giá trị không đổi thực chương trình
Biến phải khai báo trước sử dụng,lưu giá trị thay đổi thưc chương trình
GV: Hỏi: cho biết chức
thích chương trình ?
HS: Chú thích đặt cặp dấu {} (* *)để giải thích cho chương trình dễ hiểu
GV: Hỏi:Các lệnh viết dấu{} có
turbo pascal dịch không?
Tên biến tên thuộc kiểu tên ba loại học?
HS: Trả lời: khơng dịng thích Trả lời: tên người lập trình đặt
-Là đại lượng đặt tên, giá trị thay đổi chương trình
-Các NNLT có nhiều loại biến khác -Biến phải khai báo trước sử dụng
c Chú thích
- Chú thích khơng làm ảnh hưởng đến chương trình Trong Pascal thích đặt { } (* *)
Trong C++ Chú thích đặt /* */
.Củng cố:
-Nhắc lại khái niệm: tên , tên dành riêng ,tên chuẩn, tên người lập trình đặt -Phân biệt tên dành riêng ,tên chuẩn đồng thời biến
.Dặn dò tập nhà:
-Làm baøi 4,5,6 SGK
-Xem trước cấu trúc chương trình -Đọc đọc thêm ngơn ngữ pascal
.Rút kinh nghiệm bổ sung:
………
-
-CHƯƠNG I: MỘT SỐ KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
BÀI TẬP
I MỤC TIÊU BAØI HỌC: Kiến thức:
-Củng cố kiến thức học ban đầu lập trình, ngơn ngữ lập trình: chương trình dịch, thơng dịch biên dịch,các thành phần ngơn ngữ lập trình, tên chuẩn, tên dành riêng,hằng biến.
2 Kỹ năng:
-Hiểu phải xây dựng ngôn ngữ lập trình bậc cao.
-Biết cách phân biệt thơng dịch biên dịch,phân biệt tên dành riêng tên chuẩn. Tư – Thái độ:
Tieát :3
(7)II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở. -Phương tiện: Phấn màu, thước kẻ, SGK tin11, SGV.
Hoïc sinh:
-Sách giáo khoa, đọc trước SGK, thực tiễn. III TIẾN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:
-Hãy nêu thành phần ngơn ngữ lập trình?
-Mọi đối tượng chương trình phải đặt tên, tên qui định ngơn ngữ lập trình nào?
-Hãy viết số tên hợp lệ ngôn ngữ lập trình Pascal,viết số tên dành riêng tên chuẩn? -Nêu hiểu biết biến ngôn ngữ lập trình?
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH
NỘI DUNG
Hoạt động 1: Củng cố kiến thức ban đầu lập trình, ngơn ngữ lập trình. GV: Nêu vấn đề: em học lập trình
và ngơn ngữ lập trình,bây trả lời số câu hỏi
GV: Yêu cầu: Học sinh trả lời xong câu, hỏi học sinh khác cần bổ sung câu trả lời bạn khơng, từ đúc kết thành câu trả lời hồn chỉnh
GV: Đặt câu hỏi số 1: Tại người ta phải xây dựng ngơn ngữ lập trình bậc cao? -Nhận xét, đánh giá bổ sung hướng dẫn cho học sinh trả lời câu hỏi số 1:
HS: Đọc suy nghĩ trả lời câu hỏi
GV: Đặt câu hỏi 2: Chương trình dịch gì?
Tại cần phải có chương trình dịch?
HS: Suy nghĩ, trả lời câu hỏi
GV: Đặt câu hỏi 3: Biên dịch thông dịch
khác nào?
-Phân tích câu trả lời học sinh
HS:Suy nghĩ, trả lời câu hỏi, cho ví dụ
GV: Đặt câu hỏi 4: Hãy cho biết điểm
khác tên dành riêng tên chuẩn? -Gọi hs trả lời cho ví dụ
HS: Suy nghĩ để đưa phương án trả lời
GV: Phân tích câu trả lời học sinh
Câu 1: ngơn ngữ lập trình bậc cao gần với ngơn ngữ tự nhiên nên dễ hiểu, dễ nâng cấp.Chương trình viết ngơn ngữ lập trình bậc cao khơng phụ thuộc vào phần cứng máy tính nên thực nhiều loại máy
Cho phép làm việc với nhiều kiểu liệu
Câu 2:Chương trình dịch chương trình chuyển đổi chương trình viết ngơn ngữ lập trình bậc cao thành ngơn ngữ máy
Chương trình viế ngơn ngữ máy nạp vào nhớ htực
Câu 3:
Trình thơng dịch:dịch câu lệnh ngôn ngữ máy thực câu lệnh, báo lỗi
Trình biên dịch:duyệt, phát lỗi, kiểm tra tính đắn, dịch tồn chương trình nguồn thành chương trình đích lưu trữ để sử dụng lại Câu 4:
Tên dành riêng:khôn gđược dùng khác với ý nghĩa xác định
Tên chuẩn:có thể dùng với ý nghĩa khác phải khai báo
(8)GV: Đặt câu hỏi 5: Hãy tự viết ba tên theo quy tắc Pascal
-Gọi học sinh lên bảng cho ví dụ tên người lập trình đặt
-Nhận xét, sửa chữa, góp ý
HS: Suy nghĩ, trả lời, giải thích câu hỏi,
GV: Đặt câu hỏi 6: Hãy cho biết biểu
diễn biểu diễn Pascal rõ trường hợp:
a) 150.0 b) –22 c) 6,23 d) ‘43’ e) A20 f) 1.06E-15 g) 4+6 h) ‘C i) ‘TRUE’
HS: Suy nghĩ, trả lời câu hỏi
GV:Nhận xét, giải thích
Câu 5:
Ba tên ngơn ngữ lập trình Pascal: Tinhoc, lap_trinh11,_92hugo
Ba tên dành riêng:program, const, var Ba tên chuẩn:char, exp,sin
Câu 6:
Những biểu diễn pascal: 6,23 ( thay dấu chấm)
A20 ( tên không rõ giá trị khôn gphải hằng) ‘C ( sai qui định xâu)
Còn: 4+6 biểu thức Pascal chuẩn coi Turbo Pascal
Hoạt động 2: Tìm hiểu số tập. GV: Nêu số câu hỏi:
HS: Học sinh suy nghĩ trả lời:
Câu 1: chế độ biên dịch, chương trình dịch thơng suốt, hệ thống khơng báo lỗi.Có thể khẳng định ta có chương trình hay chưa?Tại sao?
Câu 2:Trong chế độ thông dịch, giả sử 2/3 số câu lệnh chương trình thực Có thể khẳng định chương trình khơng cịn chứa lỗi cú pháp hay không ? Tại sao?
Câu 3:Sau chương trình dịch thơng suốt, khơng cịn lỗi cú pháp có cần tiếp tục tìm sửa lỗi chương trình nguồn hay khơng?
Câu 4:Tại phải kiểm tra tính đắn chương trình nhiều liệu thử nghiệm khác nhau?
Câu1:Chưa thể khẳng định ta có chương trình Vì có cịn lỗi nhữ nghĩa
Ví dụ:Câu lệnh Z:=a+b trình dịch Turbo Pascal câu lệnh cú pháp biến khai báo trước Nếu a b khai báo kiểu integer ( giá trị từ -32768 đến 32767)
Nếu cho a=20000, b=15000 Z thuộc kiểu longint câu lệnh sai ngữ nghĩa TP qui định cộng hai số integer phải trả kiểu Nhưng với Free Pascal khơng lỗi
Nếu khai báo a,b thuộc longint
Lỗi ngữ nghĩa sinh không đáp ứng yêu cầu ngữ nghĩa ngơn ngữ chương trình dịch cụ thể Câu 2:Khơng thể khẳng định chương trình khơng cịn chứa lỗi cú pháp.Vì theo thơng dịch câu lệnh 1/3 cịn lại chưa kiểm tra tính đắn ,nên có lỗi xảy
Câu 3:Cịn cần tiếp tục tìm sửa lỗi chương trình nguồn chương trình nguồn cịn có lỗi ngữ nghĩa
Câu 4:Bởi chương trình chạy sai số liệu đặc biệt đó.Ví dụ : chương trình xếp dãy số tăng có liệu có hai phần tử trùng
(9)Câu 5: Trong chương trình cịn có lỗi cú pháp thơng thường chương trình biên dịch hay thông dịch phát lỗi nhanh sao?
Câu 6: người ta dùng trình soạn thảo ngơn ngữ bậc cao để soạn thảo chương trình nguồn cho ngơn ngữ bậc cao khác khơng thể dùng trình soạn thảo cho ngơn ngữ máy được? Vì sao?
Câu 7:Hãy giải thích hợp ngữ chưa thích hợp với đa số người lập trình ứng dụng?
Câu 8:có thể nói so với hợp ngữ ngơn ngữ lập trình bậc cao phụ thuộc vào loại máy cụ thể khơng?Hãy giải thích sao?
vì kiểm tra tính đắn duyệt sửa lỗi tồn chương trình thực lệnh
Câu 6:Vì ngơn ngữ máy câu lệnh biểu diễn dãy bit, loại máy tính có ngơn ngữ riêng.Ngơn ngữ máy cho phép tối ưu khả máy tính
Mặt khác ngơn ngữ bậc cao cần phải có chương trình dịch nên thực
Câu 7:Vì chương trình viết hợp ngữ cịn phụ thuộc vào máy, chương trình cịn cồng kềnh
Câu 8:Ngơn ngữ lập trình bậc cao phụ thuộc vào loại máy cụ thể, chương trình thực nhiều loại máy khác gần với ngôn ngữ tự nhiện
Chương trình trở nên ngắn gọn, dễ chỉnh sửa , cho phép làm việc nhiều kiểu liệu
.Củng cố:
-Giáo viên nhắc lại số kiến thức chương đặc biệt chương trình dịch, cú pháp ngữ nghĩa, tên ngôn ngữ lập trình
.Dặn dò tập nhà:
-Học sinh nhà xem lại tập chuẩn bị
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI 3: CẤU TRÚC CHƯƠNG TRÌNH
I MỤC TIÊU BÀI HỌC: Kiến thức:
-Biết cấu trúc chung thành phần chương trình viết ngơn ngữ bậc cao. -Hiểu chương trình mơ tả thuật tốn ngơn ngữ lập trình
-Biết cấu trúc chương trình đơn giản gồm cấu trúc chung thành phần. -Nhận biết phần chương trình đơn giản.
2 Kỹ năng:
-Nhận thức chương trình viết ngơn ngữ lập trình bậc cao cần phải viết cú pháp ngơn ngữ đó.
-Biết viết biểu thức đơn giản chương trình. Trọng tâm:
-Các thành phần chương trình. Tư – Thái độ:
-Xác định thái độ nghiêm túc học tập làm quen với nhiều quy định nghiêm ngặt lập trình. II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở. -Phương tiện: Phấn màu, thước kẻ,SGK tin11 ,SGV.
Hoïc sinh:
-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.
Tieát :4
(10)III TIẾN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ: không .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC
SINH NỘI DUNG
Hoạt động 1: Tìm hiểu cấu trúc chung chương trình. GV: Câu hỏi gợi ý: để viết đơn
một tập làm văn phải viết phần nào?Vì phải chia ra?
Yêu cầu học sinh nghiên cứu SGK trả lời
HS: Suy nghĩ trả lời:có phần: mở đầu, phần thân phần kết luận
Bởi : chia dễ viết, dễ hiểu nội dung kiểm tra
GV: Hỏi:chương trình viết ngơn ngữ lập trình bậc cao có phần?
HS: Trả lời: cấu trúc chương trình diễn tả gồm: [<phần khai báo>]
<phần thân>
Phần khai báo có khơng , phần thân chương trình thiết phải có
1 Cấu trúc chung
- Mỗi chương trình nói chung gồm phần: phần khai báo phần thân chương trình
[<Phần khai báo>] <Phần thân>
Hoạt động 2: Tìm hiểu thành phần chương trình. GV: Yêu cầu học sinh nghiên cứu SGK trả
lời:
Hỏi:trong phần khai báo có khai báo nào?
HS: Tên chương trình , thư viện , hằng, biến
và chương trình
GV: Giúp học sinh hiểu phần có khơng.u cầu học sinh lấy ví dụ khai báo tên chương trình ngơn ngữ Pascal
HS: Program chongiadung;
tên chương trình nên đặt xác với mục đích chương trình
GV: Trình bày:mỗi ngơn ngữ lập trình có thư viện cung cấp chương trình mẫu, để sử dụng phải khai báo.Yêu cầu học sinh lấy ví dụ khai báo thư viện ngôn ngữ Pascal
HS: Uses tênthưviện;
Uses crt; cung cấp chương trình làm việc với hình văn bàn phím
Và lệnh clrscr; xóa hình đưa dấu trỏ đầu hình
GV: Trình bày: khai báo tạo thuận lợi để chỉnh sửa giá trị lần cho tồn chương trình.u cầu lấy ví dụ khai báo
2 Các thành phần chương trình a.Phần khai báo
- Có thể khai báo tên chương trình, đặt tên, biến, thư viện, chương trình con,…
Khai báo tên chương trình
- Trong Turbo pascal
Program <tên chương trình>;
- Tên chương trình người lập trình tự đặt theo quy tắc đặt tên
Ví dụ : Program Bai_1;
Program phuongtrinh;
Khai báo thư viện:
- Trong ngôn ngữ Pascal : Uses <tên thư viện>; - Trong ngôn ngữ C++ :
#include <Tên tệp thư viện>
Ví dụ: Trong Turbo Pascal : Uses CRT, GRAPH;
Khai baùo :
(11)ngơn ngữ Pascal
HS: Const kq = ‘thua’; Const giadung =5.500; Const no =60;
GV: Trình bày:biến phải đặt tên khai báo để chương trình dịch biết lưu trữ xử lý.Yêu cầu học sinh lấy ví dụ
HS: Var tenbien :kieugiatri;
Để giải phương trình bậc nhất:ax+b=0 giá trị a,b cụ thể ta khai báo biến a,b:
Var a,b:integer;
GV: Yêu cầu học sinh cho biết cấu trúc chung phần thân chương trình ngơn ngữ Pascal?( khai báo chương trình tìm hiểu sau)
HS: Begin
Dãy leänh; End
thường đặt tên cho tiện sử dụng
Ví dụ: Trong Pascal :
Const N = 100; e = 2.7;
Trong C++ :
Const int N = 100; Const float e = 2.7
Khai báo biến :
- Mọi biến sử dụng chương trình phải khai báo để chưoyng trình dịch biết để xử lý lưu trữ
- Biến mang giá trị gọi biến đơn (Khai báo biến trình bày 5)
Phần thân chương trình :
- Thân chương trình thường nơi chứa tồn câu lệnh chương trình lời gọi chương trình
- Thân chương trình thường có cặp dấu hiệu bắt đầu kết thúc chương trình
Ví dụ: Trong ngơn gnữ Pascal
Begin
[<Các câu lệnh>] End
Hoạt động 3: Tìm hiểu ví dụ chương trình đơn giản. GV: Đưa bảng có chương trình pascal đơn
giản
Program giadung; Uses crt;
Const giadung = 5.500; Begin
Clrscr;
Writeln(‘ xin chao cac ban toi la computer so:’,giadung);
Readln; End
GV: Hỏi:chỉ phần khai báo chương trình thân chương trình?
HS: Khai báo tên chương trình Khai báo thư viện
Khai báo
Phần thân chương trình có lệnh xố hình , lệnh đưa thơng tin hình
GV: Đưa bảng có chương trình c++ đơn giản:
#include < stdio.h> Void main()
3 Ví dụ chương trình đơn giản
Xét hai chương trình đơn giản ngôn ngữ khác sau :
Chương trình : Trong ngơn ngữ Turbo Pascal
Chương trình : Trong ngơn ngữ C++
(12){ printf(“ xin chao toi la computer”); }
GV: Hỏi:phần khai báo chương trình thân chương trình lệnh Printf có ý nghóa gì?
HS: Lệnh Printf dùng để đưa thơng tin hình
GV: Yêu cầu học sinh lấy ví dụ chương trình khác?
HS: Begin writeln(‘ thieu no’); End
.Củng cố:
-Giáo viên nhắc lại thành phần chương trình
.Dặn dò tập nhà:
- Học sinh chuẩn bị
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN
BAØI 4-5: MỘT SỐ KIỂU DỮ LIỆU CHUẨN-KHAI BÁO BIẾN
I MỤC TIÊU BAØI HỌC: Kiến thức:
- Biết tên số kiểu liễu chuẩn: nguyên, thực, kí tự, logic biết giới hạn biểu diễn mỗi loại kiểu liệu đó.
-Biết biến dùng chương trình phải khai báo tên kiểu liệu trước sử dụng. -Biết cấu trúc chung khai báo biến ngơn ngữ Pascal.
2 Kỹ năng:
-Phải xác định kiểu cần khai báo liệu đơn giản. -Biết cách để khai báo biến đúng.
-Sử dụng kiểu liệu khai báo biến để viết chương trình. Trọng tâm:
-Khai báo biến. Tư – Thái độ:
-Thái độ nghiêm túc học tập II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở. -Phương tiện: Phấn màu, thước kẻ,SGK tin11,giáo án.
Hoïc sinh:
-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.
III TIẾN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:
-Hãy viết chương trình Pascal đơn giản có sử dụng thư viện làm việc với hình văn bàn phím, có khai báo câu lệnh đưa thơng báo hình?
Tiết :5
(13).Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH
NOÄI DUNG
Hoạt động 1: Tìm hiểu số kiểu liệu chuẩn. GV: Đặt vấn đề: toán học sử dụng tập
hợp số để thể phép tính tốn tập số tự nhiên, tập số nguyên, tập số hữu tỉ, tập số thực
Trình bày: tin học , ngơn ngữ lập trình Pascal để viết chương trình giải tốn cần tập có giới hạn định
HS: Học sinh suy nghĩ để thấy tập số tốn tương ứng với kiểu liệu Pascal
Các em hiểu sau:Vậy liệu thơng tin mã hố máy tính, ngơn ngữ lập trình thường cung cấp số kiểu liệu chuẩn Mỗi kiểu đặc trưng tên kiểu, miền giá trị, kích thước nhớ, phép toán, hàm thủ tục sử dụng chúng
GV: Yêu cầu học sinh nghiên cứu SGK trả lời câu hỏi sau:
-Trong ngôn ngữ lập trình Pascal người ta sử dụng kiểu liệu chuẩn?
-Có kiểu nguyên thường dùng, phạm vi biểu diễn loại?
- Có kiểu thực thường dùng phạm vi biểu diễn loại?
-Trình bày kiểu logic kiểu kí tự ngơn ngữ lập trình Pascal?
HS: Trả lời
- Sử dụng kiểu chuẩn
- Có kiểu nguyên: Kiểu byte, Kiểu integer, Kiểu word, Kiểu longint
-Có kiểu thực: Kiểu real, Kiểu extended -Đặc điểm kiểu logic, kiểu kí tự
GV: Lấy ví dụ để thấy kiểu kí tự sử dụng kí tự mã Ascii
VD: @ có mã 64, $ có mã 36, & có mã 38, % có mã 37
GV: Giải thích phạm vi biểu diễn loại kiểu số khác nhau:
- kiểu nguyên có hạn chế miền giá trị, máy tính kiểu nguyên hữu hạn, có thứ tự tập số ngun vơ hạn có thứ tự đếm
-kiểu thực miền giá trị mở rộng so với
Bài 4: Kiểu liệu chuẩn.
Kiểu nguyên, kiểu thực, kiểu kí tự, kiểu logic - Kiểu byte: 1byte, phạm vi: 0-255
Kieåu integer: 2byte, phạm vi:-215 – 215-1 -32768…32767 Kiểu word: byte, phaïm vi:0 - 216 -1 0…65535 Kiểu longint: byte, phạm vi:-231 – 231-1 -2148473648…2148473647
-Kiểu real: byte, phạm vi: có giá trị tuyệt đối nằm phạm vi từ : 10-38 đến 10 38
Khoảng từ 2.9* 10-39 đến 1.7 *1038 số + Khoảng từ -1.7* 1038 đến -2.9 * 10-39 số âm.
Một số thực viết dạng số thập phân: -1.5E3 = -1.5*103
Kiểu extended: 10 byte, phạm vi: có giá trị tuyệt đối nằm phạm vi từ : 10-4932 đến 104932 Khoảng từ: 3.4 * 10-4932 đến 1.1 * 104932
-Kiểu logic: có hai giá trị True ( đúng)hoặc False ( sai) dùng kiểm tra điều kiện tìm giá trị biểu thức logic
(14)kiểu nguyên, kiểu thực lưu trữ kết tính tốn gần đúng,cũng số ngun số thực máy tính rời rạc hữu hạn.Phép toán chứa toán hạn gồm kiểu nguyên thực cho kết kiểu thực
GV: Hỏi: muốn tính tốn giá trị: 2, -5, 9.04 ta dùng kiểu liệu nào?
HS: Trả lời: kiểu số thực
phân từ đến 255
Hoạt động 2: Tìm hiểu khai báo biến đơn ngơn ngữ lập trình Pascal. GV: Nêu vấn đề:mọi biến dùng chương
trình cần khai báo tên kiểu liệu, tên biến dùng để xác lập quan hệ biến với địa nhớ nơi lưu trữ giá trị biến quan trọng khai báo biến nên nghiên cứu kĩ phần
GV: Hỏi: cấu trúc chung việc khai báo biến ngôn ngữ Pascal?
HS: Nghiên cứu SGK đồng thời nhớ trước
GV: Yêu cầu học sinh lấy ví dụ khai báo biến
HS: Lấy ví dụ
GV: Trình bày: khai báo thường đặt sau khai báo hằng: cấu trúc chương trình phần khai báo sau: Program <tênchươngtrình>;
Uses <têncácthưviên>;
Const <tênhằng> = <giátrịcủahằng>; Var <danhsáchbiến> : <kiểudữliệu>;
GV: Chú ý khai báo biến
GV: Hỏi:các em đưa ví dụ biến sai với qui định đặt tên, biến danh sách biến không phân cách dấu phẩy, tên biến trùng nhau, sử dụng biến chưa khai báo, biến danh sách không kiểu?
HS: Suy nghó đưa ví dụ: Var x y z:real;
A,a:integer; N,l:long int;
Trphu:integer,tphu:real;
Bài 5: Khai báo bieán.
Var < danh sách biến> :<kiểu liệu>;
Trong danh sách biến biến cách dấu phẩy
Kiểu liệu biến kiểu liệu chuẩn Sau từ khố khai báo nhiều danh sách biến *Ví dụ: var x,y: real; biến kiểu thực
a,b,c:char; biến kiểu kí tự
*Chú ý :
-Đặt tên biến gợi nhớ đến ý nghĩa biến
VD: đặt tên biến biểu diễn điểm rớt điểm đậu Không nên đặt: dr,dd mà đặt drot, ddau
-Không đặt ngắn dài dễ lỗi viết nhiều lần tên biến
VD: không nên đặt: latrieuphu, latiphu mà đặt trphu,tphu
(15)GV: Khai báo biến để cấp phát nhớ cho biến , đưa tên biến vào danh sách đối tượng cần quản lý, kiểu biến giúp chương trình dịch biết cách tổ chức liệu, truy cập giá trị biến.Sau khai báo biến có vùng nhớ dành cho biến kiểu để lưu trữ giá trị biến
GV: Nêu ví dụ: xét khai báo biến: Var a,b,c:word;
X:longint; tno:integer; thua:byte;
Cho biết nhớ phải cấp phát bao nhiêu?
HS: Suy nghĩ trả lời:
Tổng nhớ cần cấp phát: a( 2byte),b( 2byte),c ( 2byte) X( 4byte)
tno( 2byte) tthua( 1byte) Tổng 13 byte
GV: Trình bày: sau khai báo vùng nhớ dành cho biến chưa xoá hết dẫn đến việc ban đầu biến nhận giá trị nên cần gán giá trị đầu cho biến.Các biến đơn thời điểm chứa giá trị
*Ví dụ: xét khai báo biến: Var a,b,c:word; X:longint; tno:integer; thua:byte;
Cho biết nhớ phải cấp phát bao nhiêu?
.Củng cố:
-Các kiểu liệu chuẩn: kiểu số nguyên, kiểu số thực, kiểu kí tự, kiểu logic
-Mọi biến chương trình phải khai báo để cấp phát nhớ cho biến.Cấu trúc chung khai báo biến: var <danh sách biến>: <tên kiểu liệu>;
.Dặn dò tập nhà:
-Làm taäp 1,2,3,4,5 SGK trang 35
-xem trước nội dung bài: phép tốn, biểu thức, lệnh gán
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI 6: PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN
I MỤC TIÊU BAØI HỌC: Kiến thức:
- 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ệ. -Nắm phép tốn thơng dụng ngơn ngữ lập trình.
-Học sinh phải hiểu lệnh gán, hiểu chức lệnh gán, hiểu cấu trúc lệnh gán. Kỹ năng:
- Viết biểu thức số học, biểu thức quan hệ biểu thức logic với phép tốn thơng dụng.
Tieát :6
(16)-Sử dụng phép toán để xây dựng biểu thức.
-Viết lệnh gán, sử dụng lệnh gán để viết chương trình Trọng tâm:
-Biểu thức, lệnh gán. Tư – Thái độ:
- Giáo dục thái độ cách nhìn nhận biểu thức số học câu lệnh gán. II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở. -Phương tiện: Phấn màu, thước kẻ,SGK tin11,bảng con,SGV.
Hoïc sinh:
-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.
III TIẾN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:
- Câu hỏi: Trình bày số kiểu liệu chuẩn thường dùng cho biến đơn pascal?
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH
NỘI DUNG
Hoạt động 1: Tìm hiểu số phép tốn ngơn ngữ lập trình pascal. GV: Nêu vấn đề:bất kì ngơn ngữ lập trình
để mô tả thao tác thuật toán cần phải xây dựng phép toán.Các phép tốn ngơn ngữ lập trình thường có nét diễn đạt riêng thường ứng với phép toán ta thường thấy toán học
HS: Chú ý lắng nghe
GV: Hỏi:em kể số phép toán học toán học?
HS: Trả lời:cộng , trừ , nhân , chia, chia lấy nguyên, lấy phần dư, so sánh, phủ định
GV: Diễn giảng: ngôn ngữ lập trình pascal xây dựng phép tốn diễn đạt cách riêng
GV: Yêu cầu: học sinh đọc SGK cho biết nhóm phép tốn ngơn ngữ Pascal
HS: Ghi bài:
-Các phép toán số học:+, -, *, div, mod i mod j= i- i div j *j
-Các phép toán quan hệ:<, <=, >,>=, <> -Các phép toán logic:not, and, or
GV: Hỏi:sau ta sử dụng biểu thức có sử dụng phép tốn quan hệ kiểu trả kiểu gì?
HS: Trả lời: kiểu logic
* NNLT sử dụng đến phép toán, câu lệnh gán biểu thức, khái niệm xét NNLT Pascal
1 Phép toán:
NNLT Pascal sử dụng số phép toán sau: + Số nguyên: +,- , *, / , DIV, MOD
+ Số thực: +,- , *, / ,
(17)GV: Diễn giảng:đối với phép toán div mod ta sử dụng cho kiểu liệu số nguyên
Hoạt động 2: Tìm hiểu biểu thức, hàm số học chuẩn ngôn ngữ Pascal. GV: Đặt vấn đề: toán học
gặp khái niệm biểu thức.Vậy yếu tố xây dựng nên biểu thức toán học gì?
HS: Trả lời: bao gồm hai phần tốn hạng tốn tử
GV: Trong lập trình biểu thức số học biểu thức có dạng tương tự cách viết toán học toán tử phép tốn số học cịn tốn hạng gì?
HS: Nghiên cứu SGK trả lời: toán hạng biến số, số, biến số, số liên kết toán tử dấu ngoặc tròn ( )
GV: Hãy biểu diễn biểu thức tốn học sau thành biểu thức ngơn ngữ lập trình: 9x3+2x2-x+3
x uv v
v u
uv
1 a3bc
xx2yy
HS: Lên bảng viết biểu thức ngơn ngữ lập trình:
9*x*x*x+2*x*x-x+3 u*v*(u+v)/(v-1)+u*v/x (a+b+c)/3
(x+2*y)/(x-y)
GV: Hỏi:hãy nêu thứ tự thực phép toán?
HS: Trả lời ghi bài:
-Thực phép toán ngoặc trước -Dãy phép tốn khơng chứa ngoặc thực từ trái sang phải:nhân, chia, chia nguyên, lấy phần dư thực trước, cộng trừ thực sau
GV: Nêu vấn đề:
Ngơn ngữ lập trình cung cấp thư viện chứa chương trình tính giá trị hàm toán học thường dùng gọi hàm số học chuẩn
Ta biết số hàm số học em kể tên số hàm đó?
HS: Trả lời:căn bậc hai, logarit, sin, cos
GV: Hỏi:em trình bày cách trình bày hàm số học chuẩn ngơn ngữ lập trình?
2 Biểu thức số học:
- Là dãy phép toán +,- , *, / , DIV, MOD từ biến kiểu số hàm
- Dùng dấu ( ) để qui định trình tự tính tốn VD: ( SGK- 25)
* Chú yù:
Thứ tự thực phép toán: + Trong ngoặc trước, ngoặc sau
+ Nhân, chia, chia nguyên, chia lấy dư trước, cộng, trừ sau
3 Hàm số học chuẩn:
Cách viết cho số hàm số học chuẩn: Tên hàm (đối số)
+ Đối số hay nhiều biểu thức số học đặt dấu ngoặc ( ) sau tên hàm
VD: (SGK- 26)
(18)HS: Suy nghĩ trả lời: đối số đặt cặp ngoặc tròn sau tên hàm, hàm chuẩn xem biểu thức số học giống toán hạng
GV: Treo bảng chứa hàm số học chuẩn ,yêu cầu học sinh lên bảng điền đầy đủ kiểu đối số kiểu kết
HS: Nghiên cứu SGK trả lời số hàm chuẩn, ghi bài: bình phương, bậc hai, giá trị tuyệt đối, logarit tự nhiên, luỹ thừa số e, sin, cos Tương ứng ngơn ngữ lập trình: sqr(x), sqrt(x), abs(x), ln(x), exp(x), sin(x), cos(x)
GV: Hỏi:viết biểu thức sau sang biểu thức ngơn ngữ lập trình?
p(p a)(p b)(p c) , ( P=
2 c b a
)
HS: Sqrt(p*(p-a)*(p-b)*(p-c))
GV: Hỏi: hai biểu thức số học kiểu liên kết với phép toán quan hệ ta biểu thức biểu thức gọi gì?
HS: Trả lời: biểu thức gọi biểu thức quan hệ
GV: Hỏi: lấy ví dụ biểu thức quan hệ?
HS: Suy nghĩ trả lời: no+6*laixuat*no>100
GV: Trình bày: “no” có giá trị 90 “laixuat” có giá trị :1.5% biểu thức có giá trị true
GV: Hỏi:em cho biết cấu trúc chung biểu thức quan hệ, biểu thức quan hệ thực theo trình tự nào?
HS: Trả lời ghi bài: cấu trúc chung biểu thức quan hệ:
< biểu thức1> phép toán quan hệ <biểu thức2> Biểu thức quan hệ thực theo trình tự:
- tính giá trị biểu thức
- thực phép toán quan hệ
GV: Trình bày:các biểu thức quan hệ liên kết với phép toán logic.( and, or, not)
x y not x x and y x or y true true false true true true false false false true false true true false true false false true false false
GV: Hỏi:cho ví dụ biểu thức logic biểu diễn ngôn ngữ lập trình
4 Biểu thức quan hệ: Cấu trúc chung:
<BT1> < phép toán quan hệ > <BT2> + BT1 BT2 phải kiểu
+ Kết biểu thức quan hệ TRUE FALSE
VD:- > 2
5 Biểu thức logic.
- Biểu thức logic đơn gian biến logic - Dùng để liên kết nhiều biểu thức quan hệ lại với
(19)HS: Cho ví dụ:
Xeáp :6.5<= kha<= 7.9
Hàng đổi hàng: 3<= bo 9<= trau Biểu diễn ngôn ngữ lập trình: (6.5<=kha) and (kha<=7.9) (3<= bo) or (9<= trau)
GV: Hỏi:kết biểu thức logic có kiểu liệu gì?
HS: Nhận thấy giá trị biểu thức logic true false( kiểu logic)
Hoạt động 3: Tìm hiểu câu lệnh gán ngơn ngữ lập trình pascal. GV: Trình bày: chức lệnh đặt cho
biến có tên bên trái dấu “:=” có giá trị với giá trị biểu thức bên phải
Cấu trúc lệnh gán: <tên biến>:=<biểu thức>;
GV: Hỏi:vậy kiểu biến giá trị biểu thức nào?
HS: Trả lời:Kiểu giá trị biểu thức phù hợp với kiểu biến
GV: Giới thiệu ví dụ lệnh gán Pascal: No:=4+6;
GV: Giải thích:lấy 4+6 đem kết đưa vào no nên “no” 10;
GV: Hỏi:vậy em nêu chức lệnh gán?
HS: Nghe ví dụ suy nghĩ để trả lời Tính giá trị biểu thức gán giá trị tính vào tên biến
GV: Giới thiệu chương trình:nhập số giây in giờ, phút, giây tương ứng
Program doigiay; Var h,m,s:integer; Begin
Writeln(‘ giay can doi la:’); S:=5000;
h:= s div 3600;
m:= (s mod 3600) div 60; s:= s mod 60;
writeln(‘doi ta duoc:’,h,’:’, m,’:’,s); end
HS: Quan sát tìm hiểu cơng việc câu lệnh đồng thời kết chương trình
HS: Lên bảng viết kết chương trình giải thích câu lệnh
6 Câu lệnh gán.
- Lệnh gán cấu trúc NNLT, thường dùng để gán gái trị cho biến
Cấu trúc:
< tên- biến>:= <biểu thức>;
VD:
x:= (b*b-4* a*c); i:= i+1;
j:= j-1;
.Củng cố:
(20)- Nhắc lại cho học sinh : phép toán, biểu thức, lệnh gán ngơn ngữ lập trình pascal (về số học, quan hệvà logic)
.Dặn dò tập nhà:
- Học sinh chuẩn bị
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI 7: CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN
BÀI 8: SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH CHƯƠNG TRÌNH
I MỤC TIÊU BAØI HỌC: Kiến thức:
- Biết ý nghĩa thủ tục vào/ra đơn giản với việc lập trình để nhập liệu từ bàn phím đưa dữ liệu hình.
-Biết cấu trúc chung thủ tục vào ngôn ngữ Pascal. Kỹ năng:
- Viết lệnh vào/ra liệu.
-Rèn luyện việc nhập liệu thực chương trình. Trọng tâm:
-Các thủ tục chuan vào/ra. Tư – Thái độ:
-Nâng cao nhận thức cần phải thật cẩn thận việc nhập liệu cho liệu vịêc học lập trình pascal.
II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở, hoạt động nhóm. -Phương tiện: Phấn màu, thước kẻ,SGK tin11, SGV.
Hoïc sinh:
-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.
III TIẾN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:
-Câu hỏi: Viết số hàm số học chuẩn Pascal?
Cho biết chức lệnh gán, cấu trúc chung lấy ví dụ?
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH
NỘI DUNG
Hoạt động 1: Tìm hiểu thủ tục chuẩn vào/ra đơn giản. GV: Đặt vấn đề: cần giải toán ta
phải đưa liệu vào để máy tính xử lý,ta sử dụng lệnh gán sử dụng với liệu cố định muốn chỉnh sửa lại
1 Nhập liệu vào từ bàn phím:
Tiết :7
(21)phải vơ chương trình để chỉnh.Để khắc phục điều người ta sử dụng thủ tục nhập liệu
GV: Yêu cầu học sinh nghiên cứu SGK tìm hiểu cấu trúc chung thủ tục nhập liệu ngơn ngữ lập trình pascal
HS: Suy nghĩ trả lời, ghi bài:nhập liệu từ bàn phím thực thủ tục chuẩn: Read(<tên biến1>,…,<tên biến k>); Readln(<tên biến 1>,…<tên biến k>); ( trừ biến kiểu boolean)
Câu lệnh readln; khơng có biến dấu “ ()” có tác dụng dừng chương trình cho xem kết
GV: Nêu ví dụ:a,b,c biến số thực.Ta nhập liệu cho biến sau: Readln(a,b,c); nhập: -3.5 Trình bày:khi thực câu lệnh
read/readln chương trình tạm dừng sau ta gõ giá trị cho biến từ bàn phím từ trái qua phải cách khoảng trắng sau nhập đủ ta kết thúc phím enter
GV: Nêu vấn đề:sau xử lý xong kết tìm được lưu nhớ Để thấy kết hình ta phải sử dụng thủ tục xuất liệu
GV: Yêu cầu học sinh nghiên cứu SGK cho biết cấu trúc chung thủ tục xuất liệu ngơn ngữ lập trình pascal
HS: Nghiên cứu trả lơiø, ghi bài:
Cú pháp:write/writeln( <danh sách biểu thức>);
Danh sách biểu thức cách dấu phẩy
Biểu thức:hằng ,biến,các biểu thức số học Cách thực hiện:xuất kết toán hình từ trái qua phải
Câu lệnh Writeln sau xuất kết hình trỏ hình xuống đầu dịng
Lệnh writeln(); khơng có tham số:viết hình dịng chữ dịch chuyển trỏ hình xuống đầu dịng ( chừa chỗ trống)
GV: Diễn giảng: Các biểu thức câu lệnh writeln in qui cách sau:
Đối với kết thực:
<biểu thức>:<độ rộng>:<số chữ số thập phân> Đối với kết khác:
- Trong pascal ta dùng thủ tục chuẩn sau: Read(danh sách biến vào);hoặc
Readln(danh sách biến vào); - Ví dụ: Read(N); Readln(a,b,c);
- Chú ý:+ Khi nhập liệu từ bàn phím READ, READLN, có ý nghĩa nhau, thường hay dùng READLN
+ Khi nhập giá trị cho biến thủ tục, giá trị gõ cách dấu cách phím Enter
2 Đưa liệu hình
Trong pascal cung cấp thủ tục chuẩn:
write(<Danh sách kết ra>); writeln(<Danh sách kết ra>);
trong <Danh sách kết ra>có thể tên biến đơn, biểu thức,
Ví dụ: write(‘Nap so N:’); Readln(N); *Chú ý:
- writeln sau đưa kết trỏ xuống dịng
- Ngồi TPcó quy cách đưa thơng tin nàm hình sau:
+ Kết thực:
: <Độ rộng>:<số chữ số thập phân> + Kết khác:
:<Độ rộng>
ví dụ: Write(N:3); Writeln(‘X=’,x:8:2);
(22)<biểu thức>:<độ rộng>
GV: Nêu ví dụ: write(a:8); Write(no:8:2);
vị trí kể từ vị trí trỏ thời dành để đưa giá trị a nên a có giá trị nguyên dương chữ số giá trị số âm chữ số vị trí đầu điền dấu cách.8 vị trí dành để đưa giá trị biến “no” vị trí để đưa phần thập phân.Do phần nguyên thập phân cách dấu chấm nên cịn lại vị trí cho phần ngun
HS: Theo dõi giáo viên trình bày ví dụ
GV: Hỏi: tham số lệnh write() thuộc kiểu char real quy định vị trí nào?
HS: Khi tham số có kiểu kí tự việc qui định vị trí giống kiểu nguyên
Khi tham số có kiểu thực phải quy định hai loại vị trí :vị trí cho tồn số thực vị trí cho phần thập phân
GV: Đưa bảng có chứa
HS: Theo dõi chương trình cho biết thủ tục nhập xuất liệu Kết việc chạy chương trình đồng thời giải thích câu lệnh
3 Chương trình ví dụ: chương trình tính diện tích
một hình chữ nhật: Program dtich; Uses crt; Var a,b,s:real; Begin
Clrscr;
Write(‘nhap chieu rong cua hcn’); Readln(a);
Write(‘nhap chieu dai cua hcn’); Readln(b);
S:=a*b;
Writeln(‘dieân tich la:’,s); Readln;
End
Hoạt động 2: Tìm hiểu việc soạn thảo , dịch, thực hiệu chỉnh chương trình. GV: Nêu vấn đề: thực chương trình viết
bằng ngơn ngữ lập trình pascal cần sử dụng chương trình dịch, dịch chương trình soạn thảo sang ngơn ngữ máy Vì hệ thống lập trình 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
-Để sử dụng chương trình
turbopascal máy phải có file chương trình.Cụ thể:turbo.exe, turbo.tpl,
graph.tpu,egavga.bgi
GV: Yêu cầu học sinh theo dõi hình aûnh minh
Một số thao tác thường dùng pascal:
- Khi soạn thảo muốn xuống dòng nhấn Enter - Ghi file vào đĩa: F2
- Mở file có: F3
- Biên dịch chương trình: Alt +F9 - Chạy chương trình: Ctrl + F9 - Đóng cửa sổ chương trình: Alt + F3
(23)hoạ hình pascal SGK
HS: Tìm hiểu:dịng thứ hai hình gọi bảng chọn, mục nhóm cơng việc ta lựa chọn Dấu “ :” cuối hình cho biết trỏ dịng cột hình soạn thảo
HS: Tập soạn chương trình dịch lỗi cú pháp:
GV: Hỏi: tìm lỗi cú pháp chương trình sau:
Program giadung Var gia:integer; Begin
Write(‘ ban hay nhap gia cho san pham:’); readln( gia);
Gdung:= sqr(gia); Write(‘ gia dung cua san pham:’,gdung);
End
Nhấn F2 lưu chương trình , sau dịch chương trình:alt +F9, chạy chương trình: clr + F9 ,đóng cửa số: alt+F3, thoát:alt+X
HS: Theo dõi chương trình giáo viên đưa suy nghĩ để sửa lỗi cú pháp chương trình:
Thứ nhất: sai cú pháp cuối tên chương trình phải có dấu chấm phẩy
Thứ hai: trước sử dụng phải khai báo biến gdung
.Củng coá:
- Thủ tục, nhập liệu: Read/readln(<tên biến1>,…,<tên biến k>); -Thủ tục, xuất liệu: Write/writeln(<danh sách liệu>);
.Dặn dò tập nhà:
-Viết chương trình nhập vào bán kính hình tròn tính chu vi , diện tích
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI TẬP VAØ THỰC HAØNH 1
I MỤC TIÊU BAØI HỌC: Kiến thức:
- Biết viết chương trình ngơn ngữ lập trình Pascal đơn giản.
-Làm quen sử dụng dịch vụ chủ yếu Pascal việc soạn thảo, lưu, dịch thực chương trình
(24)2 Kỹ năng:
- Phải biết cách soạn chương trình, lưu vào máy, dịch lỗi cú pháp,thấy lỗi thuật toán chạy chương trình
-Biết cách phân tích nhập liệu chạy chương trình hình nhập liệu. Tư – Thái độ:
-Xác định thái độ nghiêm túc,tự giác, tích cực q trình thực hành.
-Có thái độ tn thủ giai đoạn xây dựng chương trình chạy chương trình. II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương tiện: SGK tin11,sách tập,phịng máy, chương trình soạn kiểm tra máy
Hoïc sinh:
-Phương tiện: SGK 11, đọc trước SGK , xem lại khái niệm,xem trước chương trình đơn giản để soạn thảo máy chạy thử.
III TIẾN TRÌNH THỰC HÀNH:
TIẾT 1 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ:không .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC
SINH NỘI DUNG
Hoạt động 1: Tìm hiểu chương trình đơn giản. GV: Diễn giảng: chương trình có phần khai báo phần thân
Yêu cầu học sinh viết chương trình xuất ngồi hình câu thơng báo: chúng tơi học sinh lớp 11CB
HS: Chú ý lắng nghe viết chương trình
1 Tìm hiểu viết chương trình đưa hình câu thông baùo
Program vd; Ues crt; Begin Clrscr;
Writeln(' chung toi la hoc sinh lop 11CB.'); Readln
End
Hoạt động 2: Tìm hiểu chương trình hồn chỉnh. GV: u cầu học sinh thực nhiệm
vuï:
-Soạn chương trình vào máy -Lưu chương trình
-Dịch chương trình -Chạy chương trình
-Sửa lại chương trình khơng dùng biến delta
HS: Mở chương trình soạn thảo pascal gõ chương trình giải phương trình bậc hai Nhấn F2 tên pt.pas
Nhaán alt+F9
2 Tìm hiểu ,viết, chạy chương trình giải phương trình bậc 2:
Program giaipt; Uses crt;
Var a, b, c, delta:real; Begin
Clrscr;
Write('nhap he so cua phuong trinh:'); Readln(a,b,c);
Delta:=b*b-4*a*c;
X1:=(-b –sqrt(delta))/(2*a); X2:=-b/a-x1;
Write('x1=',x1:8:2,'x2=',x2:8:2);
Tiết :8
(25)Nhấn clt+F9
Nhập liệu -3 quan sát kết thị hình x1=1.00 x2=2.00 Nhập liệu Chạy chương trình thơng báo lỗi bậc hai số khơng âm tức delta âm phương trình vơ nghiệm
X1:= (-b-sqrt(b*b-4*a*c))/(2*a); X1:= (-b+sqrt(b*b-4*a*c))/(2*a);
Readln; End
.Củng cố:
-Dịch chương trình: Alt+F9 -Chạy chương trình: Ctr+F9
.Dặn dò tập nhà:
-Xem lại thực hành, chuẩn bị thực hành tiếp
.Rút kinh nghiệm bổ sung:
-
-TIẾT 2 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ: không .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Hoạt động: Rèn luyện tư cách thiết lập chương trình, soạn thảo dịch chạy chương trình. GV: Nêu tập
GV: Định hướng cho học sinh: Dữ liệu vào: a
Dữ liệu ra:s
Cách tính :cạnh hình vuông a hai
HS: Chú ý lắng nghe
GV: Yêu cầu học sinh viết chương trình
HS: Thực theo u cầu:
-Soạn chương trình ngơn ngữ pascal
GV: Yêu cầu học sinh nhập liệu thông báo kết
HS: Chạy chương trình với liệu a=2,10
Bài thực hành:
Chương trình tính diện tích hình tô đậm sau đây:
Program tinhdientich; Uses crt;
Var a,s:real; Begin
Clrscr;
Writeln('gia tri :'); Readln(a); S:=(a* )2/2;
Write('dien tich la:',s); Readln;
End
Tiết :9
(26).Củng cố:
- Hồn thành chương trình cần phải:xác định liệu vào ra, xác định thuật tốn,soạn chương trình,lưu chương trình, dịch chương trình,thực hiệu chỉnh
.Dặn dò tập nhà:
- Viết chương trình nhập cạnh hình tam giác tính diện tích -Chuẩn bị tập SGK sách tập
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI TẬP
I MỤC TIÊU BAØI HỌC: Kiến thức:
- Củng cố nội dung thực hành phòng máy. -Ôn lại cách sử dụng biến, phải khai báo biến.
2 Kỹ năng:
-Xây dựng cách giải biết viết chương trình từ tốn. Tư – Thái độ:
-Có thái độ học tốt việc xác định phạm vi biến để khai báo biến viết chương trình từ tốn.
II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở.
-Phương tiện: SGK tin11,sách tập, chương trình soạn bảng
Hoïc sinh:
-Phương tiện: SGK tin11, sách tập,đọc trước SGK , xem trước tập. III TIẾN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:
-Câu hỏi: em viết chương trình Pascal đơn giản nhập vào cạnh hình vuông xuất diện tích
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Hoạt động 1: Tìm hiểu số tập khai báo biến. GV: Hỏi: giá trị có đặt tên biến
như nào?
HS: Trả lời: Giá trị ô nhớ chứa có đặt tên khơng đổi q trình chạy chương trình cịn giá trị nhớ biến thay đổi thời điểm chạy chương trình
GV: Hướng dẫn: biến chương trình cân thiết sử dụng ta phải khai báo Trong khai báo biến ta phải khai báo kiểu biến
Câu 1:Hãy cho biết khác có đặt tên biến?
Câu 2:Tại phải khai báo biến?
Tiết :10
(27)HS: Khai báo biến nhằm mục đích: -Xác định kiểu biến, để tổ chức ô nhớ tương ứng chứa giá trị biến
-Đưa tên biến vào danh sách chương trình quản lý
-Trình dịch biết cách truy cập giá trị biến
GV: Yêu cầu học sinh lên bảng giải tập 3,4
HS: Giải tập
GV: Khai báo b,d khai báo d tốt
Biểu thức logic: (y<=1) and (y>=abs(x))
Câu 3: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 p,x:real; c)var p:real; d)var x:real; x:byte; p:byte;
Câu 4:Hãy viết biểu thức logic cho kết True toạ độ (x,y) vùng gạch chéo kể biên hình sau:
Hoạt động 2: Xây dựng chương trình từ tốn. GV: u cầu học sinh viết chương trình giải tốn
HS: Lên bảng xây dựng chương trình: Xác định tốn:
Dữ liệu vào: h,g=9.8 Dữ liệu ra: v
Caùch tính: v=
HS: Soạn chương trình
HS: Soạn chương trình
Lưu chương trình, dịch chạy chương trình
1) Tính đưa hình vận tốc v chạm đất vật từ độ cao h, biết v=
g= 9,8 m/s2, h nhập vào từ bàn phím. Program vantoc;
Const g=9.8; Var v,h:real; Begin
Write('nhap cao cua vat h='); Readln(h);
V:=sqrt(2*g*h);
Write('van toc cham dat la:v=',v:10:2); Readln;
End
2) Viết chương trình nhập vào độ dài cạnh tam giác tính chu vi diện tích tam giác
Program tamgiac; Uses crt;
Var a,b,c,p,s:real; Begin
Clrscr;
Writeln('nhap cac canh cua tam giac:'); Readln(a,b,c);
P:=a+b+c;
S:=sqrt(p/2*(p/2-a)*(p/2-b)*(p/2-c)); Write('chu vi hinh tam giac:',p); Write('dien tich tam giac:',s);
(28)Readln; End
.Củng cố:
-Khai báo biến
.Dặn dò tập nhà:
-Làm tập 5,6,9 SGK sau:cho biết chương trình sau làm gì: Program vd;
Var x,y:real; Begin
realn(x); y:=(((x-1)*x+4)*x-3)*x+6; writeln('y=',y); end
-Đọc trước bài: cấu trúc rẽ nhánh
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP BÀI 10: CẤU TRÚC RẼ NHÁNH
I MỤC TIÊU BAØI HỌC: Kiến thức:
-Học sinh hiểu khái niệm rẽ nhánh, biết cấu trúc chung cấu trúc rẽ nhánh.
-Biết sử dụng câu lệnh rẽ nhánh, sử dụng hai dạng cấu trúc rẽ nhánh dạng thiếu đủ Kỹ năng:
-Biết thể câu lệnh,viết chương trình giải số tốn đơn giản áp dụng cấu trúc rẽ nhánh. -Biết sử dụng câu lệnh ghép cần thiết
3 Trọng tâm:
-Câu lệnh rẽ nhánh: If- Then. Tư – Thái độ:
-Nhận thức niềm ham thích lập trình máy tính để giải tốn. II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: Nêu vấn đề, diễn giảng, học sinh giải vấn đề. -Phương tiện: Phấn màu, thước kẻ,SGK tin11, SGV.
Hoïc sinh:
-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.
III TIEÁN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:
-Câu hỏi: Viết số hàm số học chuẩn Pascal?
Cho biết chức lệnh gán, cấu trúc chung lấy ví dụ?
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Tieát :11
(29) Hoạt động 1: Tìm hiểu ý nghĩa cấu trúc rẽ nhánh. GV: Giao nhiệm vụ cho học sinh
HS: Thực yêu cầu
GV: Hỏi: làm để tìm số lớn số a,b
HS: Trả lời: thực so sánh: Nếu a>b max=a
Nếu a<b max=b
GV: Hỏi: để thực thuật toán pascal em làm nào?
HS: Trả lời: chưa thể làm
GV: Nêu ví dụ thực tiễn minh họa cho cấu trúc rẽ nhánh: chiều mai trời không mưa T rủ N xem phim
HS: Chú ý theo dõi ví dụ giáo viên để tìm ví dụ khác
GV: Yêu cầu học sinh tìm thêm ví dụ
HS: Nếu đội bóng Việt Nam thắng đội Thái Lan đoạt cúp khơng Việt Nam giành huy chương bạc
GV: Yêu cầu học sinh đưa cấu trúc chung cách diễn đạt
HS: Ví dụ 1:Cấu trúc chung là:Nếu… Ví dụ 2:Cấu trúc chung là:Nếu …thì…nếu không…thì…
GV: Hỏi:hãy nêu bước kết luận nghiệm phương trình bậc nhất:ax+b=0
HS: Theo dõi thực u cầu:
Nếu a<>0 phương trình có nghiệm x=-b/a Nếu a=0 b<>0 phương trình vô nghiệm Nếu a=0 b=0 kết luận phương trình vô số nghiệm
GV: Diễn giảng: Cấu trúc dùng để mô tả mệnh đề gọi cấu trúc rẽ nhánh dạng thiếu đủ Mọi ngơn ngữ lập trình có câu lệnh để mơ tả cấu trúc rẽ nhánh
Cấu trúc tìm số lớn số
1 Rẽ nhánh:
* Một số mệnh đề có dạng điều kiện: + Dạng thiếu: Nếu…thì…
+ Dạng đủ: Nếu … … khơng …
* Cấu trúc dùng để mô tả mệnh đề gọi cấu trúc rẽ nhánh thiếu đủ
* Mọi ngơn ngữ lập trình có câu lệnh để mô tả cấu trúc rẽ nhánh
Hoạt động 2: Tìm hiểu câu lệnh rẽ nhánh ngơn ngữ lập trình Pascal. GV: Diễn giảng: để mơ tả cấu trúc rẽ nhánh
Pascal dùng câu lệnh
HS: Quan sát ghi chép
GV: Giải thích q trình thực câu lệnh
GV: Yêu cầu học sinh viết câu lệnh so sánh để tìm Max(a,b) cách
HS: Lên bảng viết:
If a > b then max:= a; If a < b then max:= b;
1)Cấu trúc IF dạng thiếu:
+ Cú pháp: If <điều kiện> then <lệnh>; <điều kiện> biểu thức logic +Chức năng: (thực hiện) pascal tính kiểm tra <điều kiện> , <điều kiện> thực lệnh, <điều kiện> sai bỏ qua lệnh
2)Cấu trúc IF dạng đủ:
+Cú pháp: If <điều kiện> then <lệnh 1> else <lệnh 2>;
<điều kiện> biểu thức logic +Chức năng:Tính kiểm tra <điều kiện>
(30)Hoặc: If a > b then max:=a Else max:=b;
GV: Với dạng dạng thuận tiện hơn?
HS: Tùy trường hợp cụ thể
GV: Yêu cầu:Hãy vẽ sơ đồ khối thể câu lệnh rẽ nhánh dạng thiếu đủ?
HS: Lên bảng vẽ sơ đồ khối:
GV: Trình bày ví dụ: viết chương trình kiểm tra số nguyên nhập vào có chia hết cho không?
*Giải thuật:
+ Xác định tốn: Đại lượng vào:số ngun
Đại lượng ra: thơng báo a chia hết cho không chia hết
+ Trình bày thuật tốn:
Nhập số nguyên a. >Kiểm tra a có chia hết cho không. >Thông báo. >Kết thúc
HS: Quan sát vaø ghi baøi
GV: Đối với cấu trúc IF dạng đủ câu lệnh thể với lệnh trên?
HS: Trả lời:If a mod =0 then write(a,' chia het cho 3')
else write(a,' khong chia het cho 3');
GV: Diễn giảng: Sau then, else cấu trúc lệnh, thực tế nhiều lệnh.Để ghép lệnh thành lệnh ta sử dụng câu lệnh ghép
HS: Ghi bài: Câu lệnh ghép:
Begin Leänh 1;… Leänh n; end
Thực lệnh đến lệnh n.Khi lệnh n kết thúc lệnh ghép kết thúc
Nếu <điều kiện> thực <lệnh 1>, <điều kiện> sai thực <lệnh 2>
*Chương trình ví dụ:
kiểm tra số nguyên nhập vào có chia hết cho Program kiemtra;
Var a:integer; Begin
Write(' nhap so nguyen:'); Readln(a);
If a mod =0 then write(a,' chia het cho 3'); Readln
End
* Câu lệnh ghép :
* Trong ngơn ngữ Pascal câu lệnh ghép có dạng: Begin
<các câu lệnh>; End;
Hoạt động 3: Tìm hiểu số ví dụ. GV: Viết lên bảng ví dụ
GV: Yêu cầu học sinh xác định toán
HS: Xác định toán:
Input: số a,b,c nhập từ bàn phím
Output: diện tích tam giác thơng báo khơng cạnh tam giác
GV: Phân nhóm, yêu cầu học sinh thảo luận
nhóm viết chương trình Ghi lời giải vào bảng
3 Ví dụ:
VD1: viết chương trình tính diện tích tam giác theo
cơng thức herong có a,b,c nhập vào từ bàn phím Program tamgiac;
Uses crt; Var a,b,c,p,s:real; Begin
Write(' nhap so canh tam giac:'); Readln(a,b,c);
Điề u kiện
lệnh
Đi ều kie än
(31)phụ
HS: Thảo luận nhóm trình bày lời giải vào
bảng phụ, đại diện nhóm lên treo bảng trình bày, nhóm khác nhận xét
GV: Trình bày hướng giải tốn: độ dài
cạnh tam giác dương nên phải sử dụng lệnh rẽ nhánh để kiểm tra giá trị độ dài nhập vào, đồng thời tổng hai cạnh tam giác phải lớn cạnh thứ ba Tổng quát lời giải học sinh cho điểm
GV: Yêu cầu học sinh làm ví dụ 2: viết
chương trình giải phương trình bậc hai: ax2+bx+c=0 (a<>0).
HS: Xác định toán:
Input:hệ số a,b,c nhập từ bàn phím
Output:đưa hình nghiệm thơng bào phương trình vơ nghiệm
GV: Trình bày:các bước để tìm nghiệm
phương trình bậc hai Tính delta
Nếu delta <0 kết luận phương trình vô nghiệm
Nếu delta>=0 kết luận phương trình có nghiệm: x:=(-b+sqrt(delta))/2a);
x:=(-b-sqrt(delta))/2a);
Trong toán cần hai lệnh rẽ nhánh dạng thiếu, sử dụng lệnh dạng đủ
HS: Viết chương trình
If (a+b>c) and (b+c>a) and (a+c>b) then Begin
P:=(a+b+c)/2; S:=sqrt(p*(p-a)*(p-b)*(p-c)); Write('dien tich',s:6:3);
End;
Else write(' so khong la canh tam giac'); Readln
End
VD2: viết chương trình giải phương trình bậc hai:
ax2+bx+c=0 (a<>0). Program pt;
Uses crt;
Var a,b,c,d,x1,x2:real; Begin
Clrscr;
Write('nhap he so phuong trinh:'); Readln(a,b,c);
D:=b*b-4*a*c;
If d<0 then writeln('phuong trinh vo nghiem'); Else begin
X1:=(-b-sqrt(d))/(2*a); X2:=(-b+sqrt(d))/(2*a); End;
Readln; End
.Củng cố:
-Câu lệnh rẽ nhánh dạng đủ thiếu Pascal -Sơ đồ thực chức câu lệnh if
.Dặn dò tập nhà:
-Viết chương trình nhập vào ba số đưa giá trị lớn
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP BÀI 11: CẤU TRÚC LẶP (3 TIẾT)
I MỤC TIÊU BÀI HỌC: Kiến thức:
-Học sinh hiểu ý nghóa tác dụng cấu trúc lặp.
(32)-Học sinh hiểu cấu trúc lặp với số lần biết trước,cấu trúc chung lệnh for ngơn ngữ lập trình pascal, biết sử dụng hai dạng lệnh for ngơn ngữ lập trình pascal.
-Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc chung lệnh while ngôn ngữ pascal, sự thực chương trình dịch gặp lệnh while
2 Kỹ năng:
-Sử dụng lệnh for để lập trình giải số tốn đơn giản. -Sử dụng lệnh while.
-Phân biệt hai cấu trúc lặp for while, sử dụng lệnh lặp để lập trình giải tốn. -Mơ tả thuật toán số toán đơn giản có sử dụng lệnh lặp
3 Trọng taâm:
-Câu lệnh lặp: For while. Tư – Thái độ:
-Tìm hiểu cấu trúc lặp để viết chương trình rút ngắn cho thuật tốn II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo vieân:
-Phương pháp: Nêu vấn đề, diễn giảng, học sinh giải vấn đề, hoạt động nhóm. -Phương tiện: Phấn màu, thước kẻ,SGK tin11, SGV.
Hoïc sinh:
-Sách giáo khoa, soạn nhà. -Đọc trước SGK, thực tiễn.
III TIẾN TRÌNH BÀI HỌC:
TIẾT 1 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ:
Kiểm tra 15 phút
Câu 1: Hãy nêu cú pháp cách thực lệnh if dạng thiếu đủ? (4đ)
Câu 2: Viết chương trình kiểm tra số nhập từ bàn phím có phải cạnh tam giác khơng, tính diện tích theo cơng thức hêrơng? (6đ)
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH
NOÄI DUNG
Hoạt động 1: Tìm hiểu ý nghĩa cấu trúc lặp.
GV: Đặt vấn đề cách đưa toán:
Bài tốn 1: Tính tổng
s=1/a+1/(a+1)+ +1/(a+1000)
HS: Chú ý quan sát tốn
GV: Hỏi: Có thể xác định cơng thức tốn để
tính tổng khơng?
HS: Trả lời: khó xác định
GV: Gợi ý: xem tổng s không gian chứa,
các số hạng vật chứa nước có dung tích khác nhau, việc tính tổng giống đổ nước vào khơng gian chứa
Lặp:
- Cấu trúc lặp mơ tả thao tác lặp - Có loại thao tác lặp:
+ Lặp với số lần biết trước + Lặp với số lần chưa biết trước Bài tốn 1: Tính tổng
s=1/a+1/(a+1)+ +1/(a+1000)
Tieát :12
(33)GV: Hỏi: có lần đổ nước? Mỗi lần đổ bao nhiêu?
Thực tất lệnh?
HS: Có tất ngàn lần
Mỗi lần đổ:1/(a+i)
Thực 1000 lệnh lâu
GV: Bài toán 2: Giả sử có số tiền X, gửi tiết
kiệm ngân hàng lãi 2% tháng Hỏi sau năm không rút tiền lãi số tiền bao nhiêu?
HS: Chú ý quan sát toán
GV: Hỏi: cách tính tiền gửi tiết kiệm sau motä
năm nào?
HS: Sau tháng có tiền lãi: 0,02*X,cộng
vào tiền gốc tính lãi cho tháng đến đủ 12 tháng thơi
GV: Phải thực lần?
HS: Mười hai lần
GV: Bài toán 3: Viết chương trình xuất 10 câu
Diễn giảng: Đối với ba tốn chương trình viết dài,dễ sai.Cần phải có cấu trúc để thực cơng việc lặp
HS: Tập trung theo dõi
Bài tốn 2: Giả sử có số tiền X, gửi tiết kiệm ngân hàng lãi 2% tháng Hỏi sau năm không rút tiền lãi số tiền bao nhiêu?
Bài tốn 3: Viết chương trình xuất 10 câu
Hoạt động 2: Tìm hiểu lệnh lặp for ngôn ngữ pascal.
GV: Yêu cầu học sinh nhắc lại toán
nghiên cứu tiết trước.Chia lớp làm hai nhóm, yêu cầu nhóm viết thuật tốn; bắt đầu tính tổng số hạng cuối, nhóm viết thuật tốn
HS: Viết thuật tốn:
Nhóm 1:B1:s 1/a, n 0; B2: n n+1;
B3:nếu n>1000 xuất s dừng B4: s s+1/ (a+n) quay lại B2; Nhóm 2: B1:s 1/a, n 1001;
B2: n n-1;
B3:nếu n<1 xuất s dừng B4: s s+1/ (a+n) quay lại B2;
GV: Hỏi: cấu trúc chung lệnh for
gì?
HS: Nghiên cứu SGK trả lời
GV: Diễn giảng cách thực lệnh For
GV: Khi dùng lệnh FOR cần ý
2 Lệnh lặp biết trứơc số lần lặp: (lệnh FOR)
a Cú pháp: C1(dạng tieán):
FOR <biến đếm> := <giatrị 1> TO <giatrị 2> DO <lệnh>;
<giatrò 1> <= <giatrị 2> C2(dạng lùi):
FOR <biến đếm> := <giatrị 1> DOWNTO <giatrị 2> DO <lệnh>;
<giatrò 1> >= <giatrò 2>
b Chức năng:
Biến đếm nhận giá trị từ giátrị đến giátrị 2.Sau lần thực lệnh sau DO
c Chú ý: Dạng tiến sau lần biến đếm tăng
Dạng lùi giảm
Giátrị = giatrị câu lệnh sau DO thực lần
Số lần thực lệnh: trị tuyệt đối <giatrị 1> - <giatrị 2> +
(34)GV: GV treo bảng phụ sơ đồ thuật tốn lặp
Cấu trúc leänh For
Sơ đồ khối câu lệnh: dạng tiến
S
Đ
Dạng lùi:
S Đ
.Củng cố:
-Cú pháp lệnh For
.Dặn dò tập nhà:
-Chuẩn bị
.Rút kinh nghiệm bổ sung:
-
-TIẾT 2 .Ổn định lớp kiểm tra sĩ số
.Kieåm tra cũ:
-Câu hỏi: cú pháp câu lệnh For cách thực lệnh?
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Hoạt động: Rèn luyện vận dụng lệnh FOR qua số tập. GV: Treo bảng chương trình tính tổng số từ
1000
HS: Quan sát bảng phụ
*Bài tập 1: viết chương trình in 1000 số nguyên từ đến 1000
Program bt1;
Biếnđếm:=giatrị
Lệnh, Biếnđếm:=biếnđếm+1 Biếnđế
m<=gia tri
Biếnđếm:=giatrị
Lệnh, Biếnđếm:=biếnđếm-1 Biếnđế
m>=gia tri
Tieát :13
(35)GV: Yêu cầu học sinh thực Mục tiêu: xác định việc cần làm: Xác định giá trị đầu, giá trị cuối Xác định lệnh cần lặp
HS: trả lời:
-Giá trị đầu 1, giá trị cuối 1000 Lệnh xuất hình: write(i, ‘ ‘);
GV: Yêu cầu viết chương trình
HS: Thực viết chương trình
GV: Sửa học sinh đúc kết chương trình
GV: Bài tập 2: Viết chương trình tính tổng:
S=1/a+1/(a+1)+…+1/(a+n)
GV: Yêu cầu học sinh định hướng vấn đề
chính
HS: Giá trị đầu 1, giá trị cuối 1000
Lệnh xuất hình: s:=s+1/(a+n);
GV: Chia lớp làm nhóm u cầu viết chương
trình
HS: Thực viết chương trình
GV: Hỏi: Qua ví dụ ta nhận xét
biến đếm?
HS: Được điều chỉnh tự động
Var i: integer; Begin
Write(‘ chuong trinh in 1000 so nguyen’); FOR i:=1 TO 1000 DO write(i, ‘ ‘);
Readln End
*Bài tập 2: Viết chương trình tính tổng: S=1/a+1/(a+1)+…+1/(a+n)
Program bt2; Var s: real; a,n: integer; Begin
Write(‘ nhap gia tri a:’); readln(a); S:=1/a;
FOR n:=1 TO 1000 DO s:=s+1/(a+n); Writeln(‘tong s la:’,s:8:4);
Readln End
.Củng cố:
-Cấu trúc lệnh For
.Dặn dò tập nhà:
-Giải tập 5a,6 SGK trang 51
-Viết chương trình tạo bảng cửu chương
.Rút kinh nghiệm bổ sung:
BẢNG PHỤ:
Chương trình tính tổng số ngun từ đến 1000.
*Dùng lệnh For tiến:Program tong; Var i,S: integer; Begin
Write (‘ Tong cac so nguyen tu den 1000 la:’); S:=0;
For i:= to 1000 S: = S + i; Writeln(S);
Readln; End
*Dùng lệnh For lùi:Program tong; Var i,S: integer; Begin
Write (‘ Tong cac so nguyen tu den 1000 la:’); S:=0;
For i:= 1000 downto S: = S + i;
(36)Writeln(S); Readln; End
-
-TIẾT 3 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ: -Câu hỏi:Viết chương trình in hình 50 số nguyên, từ đến 50? .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC
SINH NOÄI DUNG
Hoạt động 1: Tìm hiểu lệnh lặp While (chưa biết trước số lần lặp) ngôn ngữ pascal.
GV: Yêu cầu học sinh nghiên cứu SGK cho
biết cấu trúc chung lệnh lặp While
HS: Chú ý theo dõi làm theo yêu cầu giáo
viên
GV: Cú pháp, chức lệnh while
GV: Neâu ý
GV: Hỏi: khác lệnh cần lặp
For While gì?
HS: Suy nghĩ trả lời: câu lệnh while
phải có tăng biến số
GV: Hỏi: Dựa vào sơ đồ khối xác định máy
sẽ thực tính <điều kiện> trước hay thực <lệnh cần lặp> trước?
HS: Tính biểu thức điều kiện trước, thực lệnh cần lặp sau
3 Lệnh lặp với số lần lặp biết trứơc: (lệnh WHILE)
a) Cú pháp: while <điều kiện> <leänh>;
<điều kiện> biểu thức quan hệ biểu thức logic
<lệnh> lệnh đơn lệnh ghép
b) Chức năng:Bước 1:tính kiểm tra điều kiện Bước 2:Nếu điều kiện sai kết thúc câu lệnh
Nếu điều kiện thực lệnh quay lại bước
c)Chú ý: Nếu từ đầu điều kiện sai câu lệnh sau Do khơng thực hiện, điều kiện câu lệnh sau Do thực vô hạn
Hoạt động 2: Rèn luyện vận dụng lệnh While qua số tập
GV: Chia học sinh làm hai nhóm, yêu cầu
nhóm viết thuật tốn, nhóm viết chương trình
HS: Theo doõi
HS: Làm theo yêu cầu giáo viên: *Viết thuật toán:
Bước 1:gán i:=1,s:=0;
Bước 2:nếu s>10 xuất giá trị s;
*Bài tập 1: viết chương trình tính s=1+1/2+…+1/n, đến s>10 dừng
Điều kiện
Câu lệnh
Tieát :14
(37)Bước 3: gán s:=s+1/i; i:=i+1; quay lại bước *Viết chương trình:
Program bt;
Var s:real; I:integer; Begin
I:=1; s;=0;
While s<=10 begin
S:=s+1/I; I:=I+1; End;
Writeln('tong s la:',s:8:4); End
GV: Diễn giảng: Muốn biết số lần lặp lệnh
ta in kết i
Muốn cộng vào biến s đại lượng x ta dùng s:=s+x;
HS: Chú ý lắng nghe
GV: Yêu cầu học sinh
-Định hướng vấn đề chính: +Xác định điều kiện để lặp +Xác định lệnh cần lặp -Nhận xét chương trình
HS: Định hướng: Điều kiện:s<s1
s:=s+0.005 *s; để tính tiền I:=i+1; để tính số tháng
HS: Làm việc nhóm để viết chương trình hồn chỉnh
Program bt2;
Const ls=0.005; Var s,s1:real; i:integer; Begin
Writeln('nhap so tien da gui:');readln(s); Writeln('nhap so tien muon nhan:'); readln(s1);
while s>= s1 begin
s:=s+0.005*s; i:=i+1; end;
readln end
GV: Chia nhóm học sinh viết chương trình
HS: Làm việc nhóm để viết chương trình hồn chỉnh
Program uocchung;
Var a,b,m,n,ucln:integer; Begin
Writeln('nhap hai so a va b:'); readln(a,b); if a=0 then ucln:=b
*Bài tập 2: người có số tiền s, gửi tiết kiệm 0.5% tháng Hỏi sau tháng có số tiền lớn s1?
*Bài tập 3:viết chương trình nhập vào hai số nguyên dương a b Tìm ước số chung lớn hai số đó?
(38)else begin
m:=a; n:=b;
r:=n mod m;
while r<>0 begin n:=m; m:=r;
r:=n mod m; end; ucln:=m;
writeln('ucln cua', a,' va',b,' la:',ucln); readln
end
.Củng cố:
-Củng cố nội dung học:cấu trúc lệnh lặp while cách thực
.Dặn dò tập nhà:
-Giải tập SGK
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VAØ LẶP BAØI TẬP VAØ THỰC HAØNH (2 TIẾT)
I MỤC TIÊU BAØI HỌC: Kiến thức:
-Học sinh củng cố cấu trúc thực cấu trúc rẽ nhánh, lặp. Kỹ năng:
-Sử dụng lệnh if,while,for để rèn luyện kĩ lập trình giải số toán đơn giản liên quan.
3 Tư – Thái độ:
-Tích cực, chủ động thực hành II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương tiện: SGK tin11, phịng máy, chương trình soạn kiểm tra máy, máy chiếu
Hoïc sinh:
-Phương tiện: SGK 11, đọc trước SGK , xem lại khái niệm,xem trước chương trình đơn giản để soạn thảo máy chạy thử.
III TIẾN TRÌNH THỰC HÀNH:
TIẾT 1 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ:không .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH
NỘI DUNG
Tieát :15
(39) Hoạt động 1: Làm quen với chương trình sử dụng cấu trúc rẽ nhánh công cụ hiệu chỉnh chương
trình
GV: Yêu cầu học sinh tìm hiểu
HS: Theo dõi SGK
GV: Yêu cầu học sinh nêu khái niệm
số pitago
HS: Theo dõi nêu khái niệm số pitago: tổng bình phương hai số bình phương số lại
GV: Hỏi: Để kiểm tra số nhập có số
pitago không ta kiểm tra nào?
HS: Ta kiểm tra: a2=b2+c2, b2=a2+c2, c2=a2+b2 Ví dụ số pitago: a=3, b=4, c=5
GV: Yêu cầu học sinh soạn chương trình vào
máy
HS: Gõ chương trình chạy máy:
GV: u cầu học sinh lưu chương trình với
tên pytago.pas ( F2 gõ tên)
GV: u cầu học sinh thực lệnh
của chương trình (F7 nhập giá trị a=3,b=4,c=5)
GV: u cầu học sinh tự tìm thêm liệu
là số pitago so sánh
HS: Làm theo yêu cầu giáo viên
Tập viết chạy chương trình tốn: nhập từ bàn phím số nguyên dương a,b,c kiểm tra xem chúng có số Pitago hay không?
Program ct; Uses crt;
Var a,b,c:integer; a2,b2,c2:longint; begin
clrscr; write('a,b,c:'); readln(a,b,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(' so da nhap la bo so pitago')
else writeln(' so khong la bo so pitago'); readln
end
.Củng cố:
-Dịch chương trình: Alt+F9 -Chạy chương trình: Ctr+F9
.Dặn dò tập nhà:
-Xem lại thực hành, chuẩn bị thực hành tiếp
.Rút kinh nghiệm bổ sung:
-
-TIẾT 2 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ: Thông qua thực hành kiểm tra số học sinh .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC
SINH NOÄI DUNG
Hoạt động: Làm quen với chương trình sử dụng cấu trúc lặp cơng cụ hiệu chỉnh chương trình.
GV: Chiếu đề lên
HS: Theo doõi
GV: Yêu cầu học sinh tìm hiểu soạn chương
1 Tập viết chương trình, luyện tập với chương trình có cấu trúc lặp: nhập vào số nguyên dương n>1 Cho biết từ đến n có số chia hết cho
Tieát :16
(40)trình chạy máy
HS: Soạn chương trình máy
GV: Yêu cầu học sinh lưu chương trình với tên
dem.pas ( F2 gõ tên)
GV: Chiếu đề
GV: Hỏi: xác định input output
HS: Viết nháp: Input: giá trị a,b nguyên Output: ước chung a b
GV: Yêu cầu học sinh xem lại thuật tốn
học
GV: Yêu cầu học sinh viết chương trình
HS: Soạn chương trình
Program bai1;
Var n,I,dem:integer; Begin
I:=1; Readln(n); Dem:=0;
While(n>=i) begin
If I mod =0 then dem:=dem+1; I:=i+1;
End; Writeln(dem); End
2 Tìm hiểu chương trình tìm in UCLN hai số nguyên a,b(>=0)
Program ucln;
Var a,b,m,n,r,uc:integer; Begin
Readln(a,b);
If a=0 then uc:=b Else begin M:=a;
N:=b;
R:=n mod m;
While r<>0 begin N:=m; M:=r;
R:= n mod m; End; Uc:=m;
End; End
.Củng cố:
- Các bước hồn chỉnh chương trình
+Phân tích tốn +Soạn chương trình +Lưu chương trình +Biên dịch +Thực hiệu chỉnh chương trình
.Dặn dò tập nhà:
- Làm tập SGK
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP BÀI TẬP
I MỤC TIÊU BÀI HỌC: Kiến thức:
- Củng cố nội dung thực hành phịng máy.
-Ơn lại câu lệnh rẽ nhánh, lặp biết trước số lần lặp FOR chưa biết trước số lần lặp Tiết :17
(41)2 Kỹ năng:
-Xây dựng cách giải biết viết chương trình liên quan đến câu lậnh rẽ nhánh lặp. Tư – Thái độ:
-Có thái độ học tốt việc xác định kiểu lệnh viết chương trình từ toán. II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở.
-Phương tiện: SGK tin11,sách tập, chương trình soạn bảng
Học sinh:
-Phương tiện: SGK tin11, sách tập,đọc trước SGK , xem trước tập. III TIẾN TRÌNH BAØI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ: Không .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Hoạt động: Tìm hiểu số tốn liên quan đến câu lệnh lặp.
GV: Ghi baûng: chương trình tập
Xây dựng chương trình giải toán giáo viên đưa ra:
GV: Định hướng vấn đề chính:
Xác định giá trị đầu, giá trị cuối: giá trị đầu 1, giá trị cuối 35
Xác định lệnh cần lặp: câu lệnh IF , xuất hình số gà số chó
GV: Treo bảng u cầu học sinh xây dựng
chương trình
HS: Xây dựng chương trình: Định hướng vấn đề chính:
Xác định điều kiện để tiếp tục lặp: n>=I;
Xác định lệnh cần lặp: câu lệnh IF, I:=i+1;
GV: Treo bảng có chứa chương trình ví dụ để
sửa lỗi cho học sinh
*Bài : Viết chương trình vừa gà, vừa chó, bó lại cho trịn 36 con, 100 chân chẵn.Hỏi gà, chó
Program ga,cho;
Var x,y:integer; Begin
For x:=1 to 35 For y:=1 to 35
If (x+y=35) and (2*x+4*y=100) Then write('so ga:',x,' so cho',y); End
*Bài : Viết chương trình tính tổng số lẻ từ m đến n nhập:
Program tong;
Var m,n,s,i:integer; Begin
Readln(m,n); S:=0;
I:=m;
While n>=I begin
If (I mod 2<>0) then s:=s+I; I:=i+1;
End; End
.Cuûng coá:
(42)-Cấu trúc lệnh lặp while, for cách thực
.Dặn dò tập nhà:
- Dặn dò giải thêm tập SGK
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP
KIỂM TRA TIẾT
A) M Ụ C ĐÍCH CẦN ĐÁNH GIÁ:
-Giúp học sinh hệ thống hoá kiến thức học
-Rèn luyện kĩ viết chương trình ngơn ngữ lập trình Pascal để giải tốn B) M C Ụ Đ ÍCH U CẦU C A Ủ ĐỀ :
-Bám sát kiến thức SGK kiến thức mà học sinh học
-Phù hợp với học sinh , học sinh trung bình làm điểm trung bình
C) MA TR N Ậ ĐỀ :
Mức độ
Chủ đề
NHẬN BIẾT THÔNG
HIỂU
VẬN
DỤNG
T ỔNG
caâu Điểm Tự
luận
Trắc
nghiệm
Tự
luận
Trắc
nghiệm
Tự
luận
Trắc
nghiệm
Tự
luận
Trắc
nghiệm
Tên,Biến,hằng, kiểu liệu chuẩn,cấu trúc chương trình
Câu
6,2,17 Câu 16,20 Câu 1,19 1.75
Phép toán, biểu thức, câu lệnh gán.Thủ tục
chuẩn vào/ra
Câu 3,8,18
Câu 4,9,10,
15
Câu
5,12,13 10 2.5
Cấu trúc rẽ nhánh
lặp Câu Câu Caâu 11 Caâu Caâu 14 5.75
caâu 7 20
(43)ĐỀ KIỂM TRA TIẾT- TIN 11(HKI,2008-2009)- THỜI GIAN 45 PHÚT I) TRẮC NGHIỆM: (5Đ)
1) Biến X nhận giá trị: 0;1;3;5;7;9 biến Y nhận giá trị: 0.5; 1.5; 2.5; 3.5; 4.5 Khai báo biến sau đúng?
A) Var X:Real; Y:Byte; B) Var X,Y:Byte; C) Var X,Y:Real; D) Var X:Byte; Y:Real; 2) Tên đặt sai quy định Pascal:
A) Giai_PT_Bac_2 B) Noi Sinh C) PN1992 D) NgayThangNamSinh
3) Cho câu lệnh Writeln(x:7:3) độ rộng biểu diễn là:
A) B) C) D) 10
4) Cho biến x kiểu thực gán x:=12.41; Lệnh để in lên sau: x=12.41
A) Writeln(x); B) Writeln('x=,x:5:2'); C) Writeln('x=',x:5:2); D) Writeln(x:5); 5) Biểu thức 25 div 3+5/2*3 có giá trị là:
A) 8.0 B) 15.5 C) 15.0 D) 9.5
6) Khai báo đúng:
A) Var x,y:integer; B) Var x,y = integer; C) Var x,y of integer; D) Var x,y:=integer; 7) Lệnh sau in hình số lớn x y:
A) If x>y then write(x) else write(y); B) If x=<y then write(x) else write(y);
C) If x>y then readln(x); D) If x>y then write(x);
8) Để biên dịch chương trình Pascal ta dùng tổ hợp phím:
A) ALT+F9 B) CTR+F7 C) ALT+F7 D) CTR+F9
9) Lệnh sau dùng để nhập liệu cho biến x:
A) Readln('x'); B) Writeln(x); C) Readln(x); D) Write('x');
10) Để tính giá trị
b x
a
, chọn cách viết nào:
A) x:=-b/2a; B)
b x
a
C) x:=-b/2*a; D) x:=-b/2/a;
11) Cho đoạn chương trình sau: Begin x:=a;
If a<b then x:=b; End
Cho a=20; b=15 Kết x bao nhiêu?
A) 25 B) 20 C) 10 D) 15
12) Biểu thức viết Pascal: - a/c/sqrt(b - 1) tốn học viết nào? A)
ac
1
b
B)
(1 a) b c
C)
a
1
c b
D)
1 a c b
13) Với biến a, b nguyên, để nhập liệu vào máy lệnh sau đúng:
A) Real(a,b); B) Read(a,b) C) Readln(a;b); D) Write(a,b);
14) Cho đoạn chương trình sau: i:=1; s:=0;
While i<10 begin s:=s+2; i:=i+1; end;
Đoạn chương trình cho kết S là:
A) 10 B) 14 C) 18 D) 20
15) Biểu thức tính cạnh huyền a tam giác ABC:
A) a:=Sqrt(Sqr(c)+Sqr(b)); B) Sqrt(a):= Sqrt(b)+Sqrt(c);
C) a:=Sqr(Sqrt(b)+Sqrt(c); D) Sqr(a):=Sqr(b)+Sqr(c);
16) Giá trị x=105.32 nhận kiểu liệu kiểu liệu sau:
A) Word B) Integer C) Real D) Longint
17) Mục có tên đặt quy định Pascal:
A) x1,X-2; B) CONST, X_123; C) X1,X2; D) X[1],x2;
18) Trong Pascal, để chạy chương trình, ta dùng tổ hợp phím:
A) ALT+F9 B) ALT+F8 C) CRTL+F8 D) CRTL+F9
(44)19) Chọn câu sai: chương trình Pascal không có:
A) Phần đầu chương trình B) Phần khai báo C) Phần khai báo biến D) Phần thân chương trình 20) Trong Pascal, lệnh có tác dụng xóa hình:
A) Clrslr; B) Clrscr; C) Clrscl; D) Crlscr;
II) PHẦN TỰ LUẬN: ĐỀ 1(5Đ)
CÂU 1: (3đ) Viết chương trình giải phương trình bậc ax+b=0? CÂU 2: (2đ) Viết câu lệnh rẽ nhánh tính:
x+y, x>1 y>1 V= x-y, x>1 y<=1
-x+y, x<=1
ĐỀ 2(5Đ)
CÂU 1: (3đ) Viết chương trình nhập vào số kiểm tra số có chia hết cho khơng? CÂU 2: (2đ) Viết câu lệnh rẽ nhánh tính:
x y , neáu x+y >=0
Z= x y , x+y<0 x2+y2=1 x , neáu x+y<0 x2+y2<>1
HẾT -
-ĐÁP ÁN (MÔN TIN HỌC LỚP 11) ĐỀ1
II.T Ự LU Ậ N :( 5Điểm)
Câu 1: (3 ñieåm) Program cau1;
Uses crt; Var a,b: real; Begin Clrscr;
Write('nhap he so a,b:'); readln(a,b);
If a<>0 then write('pt co nhat nghiem:',-a/b:8:2) Else If b=0 then write('pt co vo so nghiem.')
Else write('pt vo nghiem.'); Readln
End Câu 2: (2 điểm)
If (x>1) then If (y>1) then v:=x+y Else v:= x-y
Else x:=y-x;
ĐỀ2 II.T Ự LU Ậ N :( 5Điểm)
Câu 1: (3 điểm) Program VD2;
Uses crt; Var x: integer; Begin Clrscr;
Write('nhap mot so:'); Readln(x);
If x mod 3=0 then write(' chia het cho 3.') Else write(' khong chia het cho 3.'); Câu 2: (2 điểm)
If (x+y)>=0 then z:= sqrt(x-y)
Else If (sqr(x) +sqr(y))=1 then z:= abs(x+y) Else z:=x;
(45)ĐỀ1
1.D 2.B 3.B 4.C 5.B 6.A 7.A 8.A 9.C 10.D 11.B 12.C 13.B 14.C 15.A 16.C 17.C 18.D 19.D 20.B
ĐỀ2
1.C 2.D 3.D 4.C 5.C 6.D 7.A 8.C 9.B 10.C 11.C 12.A 13.A 14.D 15.B 16.A 17.C 18.B 19.A 20.D
ĐỀ12 3
1.D 2.A 3.A 4.C 5.B 6.C 7.A 8.B 9.C 10.A 11.A
12.C 13.B 14.B 15 D 16.C 17.D 18.A 19.A 20.A
ĐỀ32 1
1.C 2.D 3.C 4.B 5.A 6.C 7.D 8.C 9.D 10.B 11.C 12.D 13.A 14.A 15 B 16.B 17.A 18.C 19.A 20.A
Vuõ Bảo Tuyên
(46)CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC BÀI 11: KIỂU MẢNG (4 TIẾT)
I MỤC TIÊU BAØI HỌC: Kiến thức:
- Hiểu kiểu liệu kiểu mảng chiều Biết loại biến có số.
- Cách khai báo biến mảng chiều Tham chiếu đến phần tử mảng tên mảng chỉ số tương ứng phần tử này.
2 Kỹ năng:
-Khai báo sử dụng biến mảng chiều ngôn ngữ Pascal -Nhận biết thành phần khai báo kiểu mảng chiều. -Biết cách định danh phần tử kiểu mảng chiều chương trình. Trọng tâm:
-Mảng chiều. Tư – Thái độ:
-Ý thức rèn luyện kĩ thao tác kiểu mảng. II PHƯƠNG TIỆN CHUẨN BỊ :
Giaùo vieân:
-Phương pháp: Nêu vấn đề, diễn giảng, học sinh giải vấn đề. -Phương tiện: Phấn màu, thước kẻ,SGK tin11.
Hoïc sinh:
-Sách giáo khoa, soạn nhà, đọc trước SGK,thực tiễn. III TIẾN TRÌNH BÀI HỌC:
TIẾT 1 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ: không .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC
SINH NOÄI DUNG
Tiết : 19 Ngày soạn : 11/10
(47)GV: Đưa đề chương trình ví dụ để dẫn dắt vào vấn đề:
HS: Theo dõi chương trình ví dụ, ghi
GV: u cầu học sinh tìm hiểu chương trình trả lời: số tuần lớn chương trình có hạn chế gì?
HS: Trả lời câu hỏi giáo viên:
Khai báo nhiều biến nên số câu lệnh xử lý nhiều
GV: Dẫn dắt vào bài: để khắc phục ta ghép biến thành dãy, đặt chung tên, đánh phần tử số
HS: So s ánh ch/tr
1 Kiểu mảng chiều:
a) Xét ví dụ:
Nhập vào nhiệt độ trung bình ngày tuần, tính đưa hình nhiệt độ trung bình tuần số lượng ngày tuần có nh/độ cao nh/độ t/bình tuần
- Giải: Chương trình viết sau: Program ndtuan;
Var t1,t2,t3,t4,t5,t6,t7,tb:real; Dem:integer;
Begin
Write('nhap vao nhiet ngay:'); Readln(t1,t2,t3,t4,t5,t6,t7);
Tb:=(t1+t2+t3+t4+t5+t6+t7)/7; Dem:=0;
If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; Writeln('nhiet tb tuan:',tb);
Writeln('so nd cao hon nd tb tuan:',dem); End
Dùng mảng chiều: Program nhdo;
Const max = 20;
Type a = array[1 max] of real; Var ndo:a; d,i,n: byte; t,tb: real; Begin
Writeln('Nhap so ngay: '); Readln(n);
T:=0; d:=0; For i:=1 to n Begin
Writeln('Nhap vao nhiet cua thu ',i,':'); Readln(ndo[i]);
T:=t+ndo[i]; End;
Tb:=t/n; For i:=1 to n
If ndo[i]>tb then d:=d+1;
Writeln('Nhiet tr/binh tuan: ',tb:5:2);
Writeln('So nh/do cao hon nh/do t/binh la: ',d);
(48).Củng cố:
-Cách tạo mảng 1chiều
-Tham chiếu đến phần tử mảng
.Dặn dò tập nhà:
-Làm 1-7 SGK/79
.Rút kinh nghiệm bổ sung:
-
-TIẾT 2 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ:
-Câu hỏi: Khai báo tham chiếu mảng chiều?
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH
NOÄI DUNG
Hoạt động: Viết chương trình sử dụng mảng chiều. GV: Treo bảng phụ: viết chương trình cho ví dụ
1: Tìm phần tử lớn dãy số nguyên
GV: Yêu cầu học sinh xác định toán
HS: Tìm input output:
Input : số nguyên dương n, dãy số nguyên: a1,a2, …, an
Output: giá trị lớn dãy số
GV: Lấy ví dụ cụ thể: có dãy số: -6 10
10
GV: Yêu cầu học sinh viết chương trình qua hướng dẫn thuật tốn giáo viên
HS: Khai báo mảng chiều A
Nhập số phần tử
Nhập giá trị phần tử câu lệnh for Viết lệnh theo thuật toán: cho giá trị lớn phần tử ban đầu, xét từ phần tử thứ đến hết có phần tử lớn cho giá trị lớn phần tử lớn
Ví dụ 1 : Tìm phần tử lớn dãy số
nguyeân
- Input : Số nguyên dương N dãy số A1, A2,
… , AN
- Output : Chỉ số giá trị số lớn
daõy
- Ý tưởng :
+ Đặt số A1 số lớn (max)
+ Cho i lặp từ đến N, A[i]> đổi max = A[i] vả lưu lại vị trí i
Chương trình: Const nmax=250;
Type mang=array[1 nmax] of integer; Var n,I,max:integer;
A:mang; Begin
Write('nhap so phan tu:'); readln(n); For i:=1 to n begin
Write('phan tu thu',I,'la:'); Readln(A[i]);
End; Max:=A[1];
For i:=2 to n if A[i]>max then Max:=A[i]; Tieát : 20
Ngày soạn : 11/10
(49)HS: Thể chương trình.
GV: u cầu học sinh xác định tốn
HS: Tìm input output:
Input: số nguyên dương n, dãy số nguyên: a1,a2, …, an
Output: dãy A dãy không giảm
GV: Lấy ví dụ dãy số: -3 -7 Có đĩa A,B hai giá tráo đổi vị trí thơng qua giá thứ 3:
A B
GV: Tóm lại ta có ý tưởng thuật toán Diễn giảng ý tưởng
GV: Yêu cầu học sinh dự vào ý tưởng viết chương trình
HS: Khai báo mảng chiều A
Nhập số phần tử
Nhập giá trị phần tử câu lệnh for Viết lệnh theo thuật toán: phần tử đứng trước lớn phần tử đứng sau ta đổi chổ chúng biến trung gian
Chương trình hồn chỉnh
Writeln('phan tu lon nhat:',max); Readln
End
Ví dụ : Sắp xếp dãy số nguyên thuật toán
tráo đổi
- Input : Số nguyên dương N dãy số A1, A2,
…, AN
- Output : Dãy A xếp theo thứ tự
không giảm
- Ý tưởng :
+ Đổi để đưa số lớn vị trí cuối + Làm tương tự số cịn lại
Chương trình sau :
Const amax=250;
Type mang=array[1.nmax] of integer; Var n,I,j,t:integer;
A:mang; Begin
Write('nhap so phan tu:'); readln(n); For i:=1 to n begin
Write('phan tu thu:',I,'la:'); readln(A[i]);
end; for j:=n downto for i:=1 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 sap:');
For i:=1 to n write(A[i]:4); Readln
End
.Củng cố:
-Ý tưởng tìm giá trị lớn dãy xếp dãy
.Dặn dò tập nhà:
-Đọc trước nội dung toán mảng chiều SGK/58
.Rút kinh nghiệm bổ sung:
-
-TIẾT 3 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ:
-Câu hỏi: Hãy nêu ý tưởng tốn tìm GTLN?
.Bài mới:
Tiết : 21 Ngày soạn : 11/10
(50)HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Hoạt động: Viết chương trình sử dụng mảng chiều. GV: Trình bày phương pháp tìm kiếm nhị phân
Cho dãy số nguyên: k= {5,7,10,17,21, 29} với khóa X=21
HS: Trả lời câu hỏi giáo viên: Input, Output
GV: Hãy xác định khóa X có nằm dãy K hay không? Xác định Input Output?
HS: Chia đôi mảng xếp so sánh phần tử lớn hay nhỏ giá trị X cần tìm bên phải hay bên trái mảng
GV: Hướng dẫn học sinh hiểu đoạn câu lệnh thuật tốn tìm kiếm nhị phân ví dụ SGK trang 58
HS: Theo dõi SGK trang 58.
Ví dụ 3 : Tìm kiếm nhị phân
- Input : Dãy số A1, A2,………, AN
xếp tăng dần
- Output : Có hay không số i mà A[i] = k
hoặc thơng báo khơng tìm thấy
- Ý tưởng :
Thuật tốn tìm kiếm nhị phân SGK lớp 10
Chương trình sau :
Program sapxep ; Uses crt ;
var A : Array[1 250] of integer ; n,i,k : Integer ;
dau,cuoi,giua : Integer ; TK : boolean ;
Begin clrscr ;
Write('Nhap so ptu mang n = ') ; Readln(n) ;
For i := to n Begin
Write('A[',i,'] = ') ; readln(A[i]) ; End ;
Write('nhap so can tim k : ') ; Readln(k);
dau := ; cuoi := n ; TK := false ;
while (dau <= cuoi) and Not TK Do Begin
giua := (dau+cuoi) div ; If A[giua] = k then TK := true Else
If a[giua]>k then cuoi := giua - Else dau := giua + ;
End ;
If TK then write('Chi so la : ',giua) else write(' Khong tim thay '); readln ;
End
.Củng cố:
-Ý tưởng giải tốn tìm kiếm nhị phân
.Dặn dò tập nhà:
-Chuẩn bị mới: mảng hai chiều
(51)
-
-TIEÁT 22
I MỤC TIÊU BAØI HỌC: Kiến thức:
-Biết kiểu liệu kiểu mảng hai chiều
-Cách khai báo biến mảng hai chiều Tham chiếu đến phần tử mảng tên mảng chỉ số tương ứng phần tử
2 Kỹ năng:
-Khai báo sử dụng biến mảng hai chiều ngôn ngữ Pascal
-Nhận biết thành phần khai báo kiểu mảng chiều: hình dung mảng chiều như bảng có dịng cột.
-Biết cách định danh phần tử kiểu mảng hai chiều chương trình.Phân biệt với mảng một chiều.
3 Trọng tâm:
-Kiểu mảng chiều. Tư – Thái độ:
-Xác định thái độ nghiêm túc học tập II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: Nêu vấn đề, diễn giảng.
-Phương tiện: Phấn màu, thước kẻ,SGK tin10,bài soạn.
Hoïc sinh:
-Sách giáo khoa, soạn nhà, đọc trước SGK, thực tiễn. III TIẾN TRÌNH BÀI HỌC:
.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:
-Câu hỏi: Hãy nêu ý tưởng toán xếp thành dãy không giảm?
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH
NỘI DUNG
Hoạt động 1: Tìm hiểu ý nghĩa kiểu mảng chiều. GV: Dẫn dắt ví dụ
HS: Tìm hiểu ví dụ sách.
GV: Hỏi: Nếu dùng mảng chiều có hạn chế
gì?
HS: Dùng mảng, lưu hàng bảng. GV: Diễn giảng: Khắc phục: xem mảng chiều phần tử, ghép mảng chiều thành mảng chiều
Bài tốn tính đưa hình bảng cửu chương: sgk
Hoạt động 2: Khai báo biến mảng chiều, tham chiếu đến phần tử mảng.
GV: Diễn giảng: đặc điểm mảng chiều Mảng hai chiều bảng phần tử kiểu
Với mảng hai chiều ta quan tâm đến:
- Tên kiểu mảng hai chiều
- Số lượng phần tử chiều mảng
Tiết : 22 Ngày soạn : 11/10
(52)GV: Hỏi: em nêu cách khai báo biến mảng chiều?
HS: Dựa vào SGK đứng chỗ trình bày
cách khai báo
GV: Yêu cầu học sinh lấy ví dụ cụ thể
HS: Lên bảng lấy ví dụ cho lớp theo dõi
GV: Hỏi: muốn biết giá trị phần tử mảng ta phải làm sao?
HS: Phải tham chiếu đến phần tử mảng
GV: Lấy ví dụ đánh số phòng chia phòng phòng lớn để minh họa cách tham chiếu đến phần tử mảng
GV: Yêu cầu học sinh viết chương trình nhập bảng điểm tin có cột : 15', 45', dtb bảng có 46 dịng tương ứng số học sinh Tính dtb=(điểm 15'+2*điểm 45')/3 Xuất dtb lớn
HS: Khai báo mảng chiều: có cột cột loại điểm, dòng mảng điểm học sinh
Nhập điểm câu lệnh FOR Tính điểm trung bình đưa vào cột thứ
Dùng thuật tốn tìm giá trị lớn tính dtb lớn
Đưa giá trị lớn hình
- Kiểu liệu phần tử
- Cách khai báo biến mảng hai chiều - Cách truy cập vào phần tử mảng 1.Khai báo:
Cách trực tiếp:
Var <tên biến mảng>:array[kiểu số dòng, kiểu số cột] of <kiểu phần tử>;
Cách gián tiếp:
Type <tên kiểu mảng>=array[kiểu số dò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>; Kiểu số: đoạn số nguyên
Kiểu phần tử: phần tử mảng: integer, real, boolean
Ví dụ:
Type tiencuatoi=array[1 7,1 3] of real; Var tien:tiencuatoi;
2.Tham chiếu đến phần tử mảng: Tênbiếnmảng[chỉ số dòng,chỉ số cột]
3.Ví dụ:
Var A:array[1 46,1 3] of real; I,j:byte;
Begin
Writeln('nhap diem va tinh dtb:'); For i:=1 to 46 begin
writeln('hoc sinh thu:',i);
write('diem 15:'); readln(A[I,1]); write('diem 45:'); readln(A[I,2]; write('diem tb:');
A[I,3]:=(A[I,1]+2*A[I,2])/3; Writeln(A[I,3]:4:1);
End; Max:=A[I,3];
For i:=2 to 46
If max<A[I,3] then max:=A[I,3]; Writeln('diem tbln la:',max:4:1); Readln
End
.Củng cố:
-Tạo kiểu mảng chiều.Tham chiếu đến phần tử Phân biệt mảng chiều chiều
.Dặn dò tập nhà:
-Làm 8,9SGK/79,80 -Xem trước TH SGK/63
.Ruùt kinh nghiệm bổ sung:
(53)
-CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC BÀI TẬP VAØ THỰC HAØNH ( TIẾT)
I MỤC TIÊU BAØI HỌC: Kiến thức:
- Củng cố kiến thức mảng chiều chiều. Kỹ năng:
-Biết giải số toán đơn giản qua việc xây dựng ý tưởng viết chương trình. +Tính tổng phần tử thoả điều kiện.
+Đếm số phần tử.
+Tìm phần tử thoả điều kiện: lớn nhỏ nhất. Tư – Thái độ:
-Tích cực, chủ động thực hành II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
(54)Học sinh:
-Phương tiện: SGK 11, đọc trước SGK , xem lại khái niệm, xem trước chương trình đơn giản III TIẾN TRÌNH BÀI HỌC:
TIẾT 1 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ: -Thông qua thực hành kiểm tra lấy điểm miệng số em .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH
NOÄI DUNG
Hoạt động 1: Tìm hiểu sử dụng mảng chiều qua chương trình ví dụ.
Tìm hiểu chương trình câu a SGK/63 Cho học sinh chạy thử
GV: Treo bảng phụ có nội dung số 1a/
sgk/63 ( sử dụng máy chiếu ) Sau đặt câu hỏi cho học sinh trả lời
GV: Khai báo uses CRT; có ý nghóa gì?
HS: Trả lời
GV: Hỏi: tên myarray kiểu liệu hay tên
bieán?
HS: Tên kiểu liệu
GV: Hỏi: dòng lệnh tạo biến mảng A?
Lệnh khai báo kiểu khai báo biến
HS: Chỉ vị trí chương trình
GV: Hỏi: lệnh gán: A[i]:=random(300)-random(300) có ý nghóa gì?
HS: Sinh ngẫu nhiên giá trị cho mảng A từ -299 đến 299
GV: Leänh for i:=1 to n write(A[i]:5); có
ý nghóa gì?
HS: Xuất hình phần tử A
GV: Lệnh s:=s+A[i]; thực lần?
HS: Trả lời:
+Số lần thực lệnh gán số phần tử mảng chia hết cho k (Bằng số phần tử A[i] chia hết cho k.)
HS: Soạn chương trình Pascal chạy thử
GV: Sửa câu a để chương trình giải
quyết câu b
GV: Hỏi: ý nghóa biến Posi neg?
Chức lệnh:
If A[i]>0 then posi:=posi+1 Else if A[i]<0 then neg:=neg+1;
HS: Lưu số lượng đếm Đếm số dương số âm
-Khai báo thư viện chương trình CRT để sử dụng thủ tục Clrscr;
- Myarray: tên kiểu liệu
- nmax: số phần tử tối đa chứa biến mảng a,
n: số phần tử thực tế a
-Random(n): cho số ngẫu nhiên từ đến n-1
+posi: đếm số dương mảng +neg: đếm số âm mảng
(55)GV: Yêu cầu học sinh thêm vào chương trình câu a để đếm số lưu lại với tên khác Thực chương trình báo cáo kết
HS: Thêm câu lệnh vào vị trí Lưu lại chương trình chạy
.Củng cố:
-Khai báo câu lệnh nhập mảng chiều
.Dặn dò tập nhà:
-Chuẩn bị tiếp thực hành
.Rút kinh nghiệm bổ sung:
-
-TIẾT 2 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ: -Thông qua thực hành kiểm tra lấy điểm miệng số em .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Hoạt động: Rèn luyện kĩ viết chương trình.
Tìm hiểu chương trình tìm số giá trị lớn
GV: Cho học sinh đọc đoạn chương trình 2/64sgk
GV: Lấy ví dụ minh học: giống người mù
tìm sỏi kích thước lớn dãy viên sỏi kích thước khác nhau, gợi ý cho học sinh ý tưởng toán
HS: Từ gợi ý giáo viên xây dựng ý tưởng tốn
GV: Hỏi: biến j có tác dụng gì?
HS: Cho biết số phần tử có giá trị lớn
GV: Nếu muốn tìm phần tử nhỏ cần
sửa chỗ nào?
HS: Thay đổi phép so sánh hai phần tử Sửa a[i] > a[j] ; thành a[i] < a[j] ;
GV: Nếu muốn tìm phần tử lớn với
số lớn ta sửa chỗ nào?
HS: Chỉnh sửa chương trình để đưa số
Ví dụ: Cho mảng gồm phần tử: Tìm phần tử có giá trị lớn vị trí mảng ( số thứ tự )
j:=1;
For i:=2 to n If a[i] > a[j] then j:=i;
(Sau kết thúc:
+ Giá trị lớn a[j] + vị trí cần tìm j.)
Tiết : 24 Ngày soạn : 25/10
(56)của phần tử có giá trị lớn Sửa a[i] > a[j]; thành a[i] >= a[j];
GV: Lệnh xuất số có giá trị giá
trị lớn tìm Nằm sau tìm giá trị lớn
Nhận xét liệu xuất hình có thoả mãn u cầu tốn chưa
GV: Hỏi: cần thêm lệnh vị trí cần
theâm?
HS: Trả lời
GV: Chạy thử chưong trình cho học sinh theo dõi
Yêu cầu học sinh thực chạy chương trình, nhập liệu đánh giá kết
HS: thực chạy chương trình
GV: Theo dõi học sinh thực chương trình xem kết
.Củng cố:
-Ý tưởng tốn tìm giá trị lớn
.Dặn dò tập nhà:
-Viết chương trình nhập giá trị cho mảng chiều nhập x , đếm số số có giá trị x -Xem nội dung TH SGK/65
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC BAØI TẬP VAØ THỰC HAØNH ( TIẾT)
I MỤC TIÊU BAØI HỌC: Kiến thức:
-Học cách lập trình với thuật tốn xếp đơn giản. -Nâng cao khả lập trình với kiểu liệu mảng. Kỹ năng:
-Rèn cách sử dụng kiểu liệu có cấu trúc.
-Khả nhận xét, phân tích, đề xuất ý tưởng giải tốn cho chương trình chạy nhanh hơn.
3 Tư – Thái độ:
-Tích cực, chủ động thực hành II PHƯƠNG TIỆN CHUẨN BỊ :
(57)-Phương tiện: Bút dạ, thước kẻ,SGK tin11,bài soanï, phịng máy vi tính đầy đủ.
Hoïc sinh:
-Phương tiện: SGK 11, đọc trước SGK , xem lại khái niệm, xem trước chương trình đơn giản III TIẾN TRÌNH BÀI HỌC:
TIẾT 1 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ: không .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Hoạt động 1: Tìm hiểu cách xây dựng chương trình tốn xếp
GV: u cầu học sinh trình bày bước
xếp phần tử thành không giảm
HS: Lấy cặp phần tử kề từ trái qua phải, so sánh với nhau, số trước nhỏ số sau đổi chỗ
GV: Yêu cầu học sinh soạn chương trình vào Pascal chạy
HS: Sau soạn xong, nhập liệu cho toán, kiểm tra kết
GV: Hỏi: Biến I,j có tác dụng gì?
Ba lệnh để đổi giá trị phần tử A[i], A[i+1] gì?
HS: Làm biến đếm cho chương trình T:=A[i];
A[i]:=A[i+1]; A[i+1]:=t;
Đề: Sắp xếp dãy số nguyên thuật toán tráo đổi với giá trị khác n số
CT( SGK/65)
Hoạt động 1: Sửa CT câu a để giải toán câu b. GV: Trình bày: khai báo thêm biến dem
để chương trình xuất số lần thực tráo đổi Yêu cầu hs sửa lại CT theo gợi ý nêu
HS: Viết lệnh tăng biến dem lân đơn vị lần thực tráo đổi tức sau lệnh thực tráo đổi phần tử
Thêm CL hướng dẫn vào CT
GV: Hướng dẫn hs chỉnh sửa chạy CT
GV: Đưa liệu khác tổng quát trường hợp đặc biệt ví dụ số âm số dương, nhiều số trùng Yêu cầu học sinh nhập liệu kiểm tra xem chương trình có chạy khơng
HS: Nhập vào từ bàn phím liệu mà giáo viên đưa Thơng báo kết cho giáo viên Sau nhận xét kết
GV: Đánh giá kết hs
Đề: Khai báo biến đếm nguyên Dem bổ sung vào chương trình câu lệnh cần thiết để biến Dem tính số lần tráo đổi chương trình
.Củng cố:
-Thuật tốn xếp tráo đổi
(58)- Đếm số lần tráo đổi
-Ý tưởng toán xếp thuật tốn tráo đổi đơn giản
.Dặn dò tập nhà:
- Tìm thêm thuật toán xếp khác tối ưu
- Cho mảng A mảng B (là mảng A xếp) Hãy in số phần tử mảng A theo mảng B
- Xem trước thực hành
.Rút kinh nghiệm bổ sung:
-
-TIẾT 2 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ: Thông qua thực hành kiểm tra số học sinh .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
Hoạt động 1: Ôn lại kiến thức chuẩn bị thực hành
GV: Hỏi 1: cách khai báo kiểu mảng chieàu
Hỏi 2: (tuỳ lớp)
HS: Tl: có cách + gián tiếp:
+ trực tiếp:
Mảng chiều.
Hoạt động 2: Rèn luyện kĩ nhận xét, phân tích, đề xuất cách giải tốn để chương trình
chạy nhanh
GV: Cho mảng A gồm n phần tử Viết chương
trình tạo mảng B mà B[i] tổng giá trị I phần tử mảng A
HS: Đọc đề suy nghĩ ý nghĩa lệnh chương trình
GV: Yêu cầu học sinh xác định liệu vào,
dữ liệu
HS: Vào: mảng A gồm n phần tử
Ra: mảng B có tính chất phần tử thứ I tổng giá trị phần tử từ đến I mảng A
GV: Thực chương trình để học sinh biết
thời gian chạy chương trình kết chương trình
GV: Hỏi: chương trình phải thực
bao nhiêu phép cộng?
HS: Thực n(n+1)/2 phép
Đề: Cho mảng A gồm n phần tử Viết CT tạo mảng B[1 n]
Khai baùo: + k/baùo mảng + biến đơn Phần thân:
B1: tạo mảng A B2: xd maûng B theo A B3: In maûng B
(59)GV: Thực thay đổi chương trình cho xử lý phép cộng
HS: Cải tiến: để tính bước thứ I ta sử dụng kết tính bước thứ i-1
Thay B[i]:=B[i-1]+A[i] lệnh For j:=1 to I B[i]:=B[i]+A[j];
Hoạt động 3: Hs thực hành máy theo nhóm
GV: Yêu cầu học sinh viết chương trình hồn
chỉnh
HS: Chạy chương trình nhận xét thời gian thực so với chương trình trước Hs nhập chtrình vào máy
2. Tự biên dịch chạy CT với ví dụ Tự lấy Input để chạy lại CT
GV: Nhận xét: tốn có nhiều
cách giải khác nhau, người lập trình nên chọn cách cho máy thực nhanh đỡ tốn nhớ
Đề: Cho mảng A gồm n phần tử Viết CT tạo mảng B[1 n]
Đoạn CT cải tiến: Sgk
.Củng cố:
-Một tốn có nhiều cách viết, chọn cách thích hợp
.Dặn dò tập nhà:
-Xem lại lý thuyết kiểu mảng, số chương trình kèm thuật tốn
.Rút kinh nghiệm bổ sung:
-
-CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC BÀI 11: KIỂU XÂU (2 TIẾT)
I MỤC TIÊU BAØI HỌC: Kiến thức:
-Biết xâu dãy kí tự , xem mảng chiều.
-Biết cách khai báo biến xâu, tham chiếu đến phần tử xâu, phép toán thủ tục, hàm liên quan đến xâu.
-Phân biệt kiểu mảng kí tự xâu kí tự. Kỹ năng:
-Sử dụng biến kiểu xâu phép toán xâu để giải số ví dụ tốn đơn giản. Trọng tâm:
-Kiểu liệu xâu. Tư – Thái độ:
(60)II PHƯƠNG TIỆN CHUẨN BỊ :
Giáo viên:
-Phương pháp: Nêu vấn đề, diễn giảng, học sinh giải vấn đề. -Phương tiện: Phấn màu, thước kẻ,SGK tin11.
Hoïc sinh:
-Sách giáo khoa, soạn nhà, đọc trước SGK. III TIẾN TRÌNH BÀI HỌC:
TIẾT 1 .Ổn định lớp kiểm tra sĩ số
.Kiểm tra cũ: không .Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH
NỘI DUNG
Hoạt động 1: Tìm hiểu xâu kí tự cách sử dụng chương trình.
GV: Dẫn dắt: Viết chương trình nhập họ tên
của học sinh lớp
Yêu cầu học sinh sử dụng kiểu mảng chiều đưa nhận xét
HS: Khai báo biến mảng A gồm 45 phần tử kiểu kí tự
Lệnh nhập xuất liệu cho phần tử: Readln(A[1]);…readln(A[45]);
GV: Diễn giảng: Chương trình viết dài,
có thể gộp lại thành câu lệnh ngắn để yêu cầu nhập giá trị cho phần tử : Cần có kiểu liệu cho phép nhập, xuất liệu cho xâu lệnh
GV: Yêu cầu học sinh đưa caùch khai baùo
kiểu liệu xâu Hỏi: Ý nghĩa từ String? Độ dài lớn xâu
HS: Đưa khai báo trả lời
GV: Hỏi: Khi khai báo n số lượng phần tử tối đa bao nhiêu?
HS: Số lượng phần tử tối đa 255
GV: Trình bày: kí tự xem phần tử xâu Số lượng kí tự xâu gọi độ dài xâu
GV: Hỏi: Xâu gồm kí tự rỗng, viết nào?
HS: Đặt cặp nháy đơn khoảng trắng
GV: Một xâu có nhiều kí tự thành phần tử xâu Hỏi: để biết phần tử xâu ta làm cách nào?
HS: Dùng tham chiếu đến xâu
GV: Yêu cầu học sinh nêu ví dụ xâu tham chiếu đến phần tử thứ
1) Khai baùo:
Cú pháp: var <tênbiến>:string[độ dài lớn xâu];
Độ dài lớn xâu không 255 VD: var doan:string[30];
Khai báo biến doan kiểu xâu dài 30 kí tự
Chú ý: khai báo biến xâu khơng có độ dài ngầm định độ dài 255
VD: var douong:string;
2) Tham chiếu đến phần tử xâu: Tênbiếnxâu[ chỉsố]
VD: biến Hoten lưu giá trị xâu: 'AnSongJong'
Hoten[4]'s'
Kí hiệu: ' ', độ dài VD: readln(hoten);
Writeln('ten ban:',hoten);
(61)GV: Nhập, xuất liệu xâu giống biến đơn
Có thể sử dụng lệnh gán để nhập liệu cho biến xâu
GV: Yêu cầu học sinh đưa cách nhập xuất xâu
HS: Nhớ lại đứng chỗ trình bày
VD: doan:=' cacom';
Hoạt động 2: Tìm hiểu thao tác xử lý xâu. GV: Yêu cầu học sinh nhắc lại phép toán học kiểu liệu chuẩn
HS: Suy nghĩ trả lời: Phép toán số học, phép toán so sánh, phép tốn logic
GV: Diễn giảng: Kết chương trình sau
là ta xâu hồn chỉnh
GV: Chiếu chương trình VD Var s:string;
Begin
S:='ran la loai bo'+'sat khong chan'; Write(s);
Readln End
Hỏi: Kết chương trình in hình? Thực chương trình cho HS thấy kết
GV: Y/c HS tìm số VD khác
GV: Hỏi: Chức phép cộng
GV: Chiếu chương trình VD phép so sánh y/c HS cho biết kết
HS: Kết chương trình sau là: true Var ga:boolean;
Begin
Ga:='AB' < 'AC'; Write(ga); Readln End
GV: Lưu ý cho HS
Chú ý: xâu có độ dài nhỏ lớn xâu có độ dài lớn
GV: Đối với xâu ta cần thao tác xử lý gì?
HS: Tính chiếu dài, trích xâu, xóa số kí tự xâu, chèn xâu…
GV: Tương ứng với thao tác xâu ta có hàm thủ tục: Nêu hàm cho ví dụ
HS: Đưa cấu trúc chung
3) Các thao tác xử lý xâu: a Phép ghép xâu: kí hiệu: +
VD: 'ran la loai bo'+'sat khong chan' b Phép so sánh: =,<>, <,>,<=,>= độ ưu tiên thấp phép ghép xâu *Quy tắc so sánh hai xâu: A B
-Xâu A lớn xâu B kí tự khác chúng từ trái sang phải A có mã Ascii lớn
VD: 'A'<'a' giá trị true
-Xâu A B có độ dài KN A đoạn đầu B A<B
VD:'Hoa' <'Hoa Hong'
-A B giống hồn tồn VD: 'Nam' <> 'Nu'
c Các hàm thủ tục:
+Hàm length(s): cho giá trị độ dài xâu s VD: length('Hoa Hong') 8
+Hàm copy(s,p,n): tạo xâu dài n kí tự từ vị trí p xâu s
VD: trích từ 'hoa' , copy(s,1,3)
+Hàm pos(s1,s2): cho vị trí xuất s1 s2
VD: pos('o',s) 2
+Hàm upcase(ch): cho chữ viết hoa từ chữ ch
+Thủ tục delete(s,p,n): xố n kí tự từ vị trí p xâu s
+Thủ tục insert(s1,s2,p): chèn s1 vào s2 p
VD: chèn xâu 'do' vào đề có xâu 'Hoa Hong Do' Insert('do',s, 9)
.Củng cố:
-Khai báo sử dụng kiểu liệu xâu, tham chiếu, nhập/xuất
.Dặn dò tập nhà:
-Xem kĩ hàm thủ tục xử lý xâu
(62)
-
-TIẾT 2 .Ổn định lớp kiểm tra sĩ số
.Kieåm tra cũ: -Câu hỏi: Hãy viết cú pháp khai báo biến xâu cho ví dụ Cách tham
chieáu?
.Bài mới:
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
SINH NỘI DUNG
GV: Treobảng phụ chứa ví dụ
yêu cầu học sinh đọc phân tích
HS: Theo dõi, tìm hiểu
GV: Yêu cầu học sinh xác định input, output,
nhiệm vụ giải tốn, cần sử dụng hàm nào?
HS: Làm theo yêu cầâu: Input: giá trị họ tên Output: tên dài
So sánh độ dài xâu họ tên, dùng hàm "length"
GV: Ý nghiã hàm Length(b)?
HS: Cho số lượng kí tự có xâu b
GV: Em giải thích câu lệnh
For i:=k downto write([i]);
HS: Sử dụng vòng lặp For giá trị cuối downto giá trị đầu để sau in kí tự chuỗi theo chiều ngược lại
GV: Bảng phụ chứa ví dụ
HS: Yêu cầu học sinh giải thích lệnh chương trình
VD1: viết chương trình nhập họ tên hai người vào biến xâu đưa hình xâu dài Nếu đưa xâu nhập sau
Var a,b:string[20]; Begin
Writeln('nhap ho ten thu 1:'); readln(a); Writeln('nhap ho ten thu 2:'); readln(b); If length(a)> length(b) then write(a) Else write(b);
End
VD2: Nhập sau vào từ bàn phím đưa hình xâu theo thứ tự ngược
Var I,d:byte; A:string; Begin
Write('nhap xau:'); readln(a); D:=length(a);
For i:=d downto write(a[i]); End
(63)GV: Bảng phụ chứa ví dụ
HS: Yêu cầu học sinh giải thích lệnh chương trình
GV: Bảng phụ chứa ví dụ
HS: Yêu cầu học sinh giải thích lệnh chương trình
GV: Qua ví dụ ta thấy điêù gì?
HS: cho thấy hàm length() tham chiếu đến kí tự xâu thơng qua vị trí
GV: Em có nhận xét xâu b tạo
thaønh
HS: Xâu b tạo thành từ xâu rỗng qua phép ghép xâu
VD3:Viết chương trình nhập vào tên bạn lớp Nếu nhập xuất thơng báo: roi Ngược lại xuất : sai
Var a,b:string[30]; Begin
A:='LVTi';
Writeln('nhap xau:'); readln(b); If b=a then writeln('dung roi.') Else writeln('sai roi.');
End
VD4: viết chương trình nhập từ bàn phím xâu Sau đổi chữ thường xâu sang chữ hoa
Var s:string; I:byte; Begin
Writeln('nhap xau:'); readln(s); For i:=1 to length(s)
If(s[i]>='a') and (s[i]<='z') then s[i]:=upcase(s[i]);
Writeln('xau hoa la:',s); End
.Củng cố:
-Một số hàm xử lý xâu
.Dặn dò tập nhà:
-Bài 10/80
-Viết chương trình nhập xâu, xuất số từ xâu -Chuẩn bị TH
.Rút kinh nghiệm bổ sung: