Biên dịch: - Dịch toàn bộ chương trình - Có thể lưu trữ để sd lạiThông dịch: - Dịch từng câu lệnh - Không lưu lại được Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình
Trang 1CHƯƠNG 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP
TRÌNH - - KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
I MỤC ĐÍCH, YÊU CẦU
- Hiểu khả năng của ngơn ngữ lập trình bậc cao, phân biệt được với ngơn ngữ máy và hợp ngữ
- Hiểu ý nghĩa và nhiệm vụ của chương trình dịch
- Phân biệt được biên dịch và thơng dịch
II PHƯƠNG PHÁP
Phát vấn kết hợp diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
SGK, SGV, bảng vẽ khổ lớn… nếu cĩ máy chiếu thì tốt
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (Kiểm tra sĩ số)
2 Ơn lại kiến thức cũ (nếu cĩ)
3 Hoạt động dạy và học
Hoạt động 1: tìm hiểu khái niệm
? Cĩ mấy bước để giải bài tốn
trên máy tính? Kể tên?
Chúng ta thấy ở bước thứ 3 viết
chương trình hay cịn gọi là lập
Ngơn ngữ máy là ngơn ngữ máy cĩ thể hiểu trựctiếp
Hợp ngữ: sd từ tiếng Anh
Ngơn ngữ lập trình bậc cao:
Các bước để giải bài tốntrên máy tính:
- Xác định bài tốn
- Xây dựng và lựa thuật tốn
- Viết chương trình (lập trình)
Trang 2TIN HỌC 11
? Hãy xác định Input và Output
bài toán?
Xác định thuật toán?
Đó là thuật toán của bài toán
? Để diễn tả thuật toán cho
người nước ngoài hiểu em dùng
ngôn ngữ nào?
? Còn để cho máy hiểu em dùng
ngôn ngữ nào?
Dẫn dắt vấn đề: như vậy hoạt
động diễn đạt một thuật toán thông
qua ngôn ngữ lập trình được gọi là
Nhưng do đặc điểm vượt trội của
ngôn ngữ bậc cao nên người ta
thường sd nó để lập trình
? Những đặc điểm đó là những
đặc điểm nào? Và để sd ngôn ngữ
lập trình bậc cao phải có cái gì?
Đó là những đặc điểm của ngôn
ngữ lập trình Nhưng khi sd ngôn
Bước 3: Nếu a = 0 thì ptvn;
Bước 4: nếu a = 0 và b=0thì pt có vô số nghiệm
Em dùng tiếng AnhNgôn ngữ lập trình
HS phát biểu
HS chia nhóm thảo luận trong 3 phút
Dịch từ ngôn ngữ khác sang ngôn ngữ máy
1 Khái niệm lập trình
Lập trình là sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán
2 Chương trình dịch
Chức năng: chuyển đổi chương trình được viết bằng NNLT bậc cao thành chương trình thực hiện trên máyđược
Chương trình dịch có hai loại: biên dịch và thông dịch
a) Thông dịch:
Chương trình dịch
Chương trình nguồn
Chương trình đích
Trang 3? Biên dịch và thông dịch khác
nhau chỗ nào?
Biên dịch:
- Dịch toàn bộ chương trình
- Có thể lưu trữ để sd lạiThông dịch:
- Dịch từng câu lệnh
- Không lưu lại được
Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn
Chuyển đổi câu lệnh đó thành một hoặc nhiều câu lệnh tương ứng trong NN máy
Thực hiện câu lệnh vừa chuyển được
b) Biên dịch:
Duyệt, phát hiện lỗi, kiểm tratính đúng đắn của câu lệnh
Dịch toàn bộ chương trình nguồn thành chương trình đích có thể thực hiện trên máy và có thể lưu trữ
để sd lại khi cần thiết
V CỦNG CỐ - DẶN DÒ
a Củng cố:
Thế nào là lập trình?
Chức năng của chương trình dịch?
Sự giống và khác nhau của biên dịch và thông dịch?
b Dặn dò:
Soạn bài trước:
? Thành phần của NNLT?
? Thế nào là tên? Qui tắc đặt tên?
? Có mấy loại tên? tại sao phải nhớ tên riêng?
? Thế nào là hằng? thế nào là biến?
Học bài và trả lời câu hỏi SGK
Trang 4- Biết ngôn ngữ lập trình có ba thành phần cơ bản
- Biết một số khái niệm tên, tên dành riêng, tên chuẩn, hằng và biến
- HS nhớ qui định về cách đặt tên hằng, biến Biết nhận biết tên đặt sai, đúng
II PHƯƠNG PHÁP
Diễn giảng kết hợp phát vấn
III PHƯƠNG TIỆN DẠY HỌC
SGK, SGV, nếu có máy chiếu thì tốt
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (Kiểm tra sỉ số)
2 Kiểm tra bài cũ
Câu 1: Chức năng của chương trình dịch
Câu 2: Sự giống và khác nhau giữa biên dịch và thông dịch
Đọc SGK và trả lời câu hỏi
Chú ý nghe giảng
1 Các thành phần cơ bản
a) Bảng chữ cái
Tập hợp kí tự được dùng để viếtchương trình
Không được dùng bất cứ kí tự nàongoài các kí tự qui định trong bảng chữcái
Ví dụ:
Trong Pascal bảng chữ cái bao gồm:Chữ cái thường và chữ cái in hoa tiếngAnh
b) Cú pháp Là bộ qui tắt để viết chương
trình
Tiết: 2
Trang 5Tên phải được đặt theo qui
tắc đặt tên tuỳ vào từng
NNLT
? Những tên sao đây tên nào
đúng qui tắc tên nào sai qui
Lưu ý: NNLT Pascal không
phân biệt chữ hoa chữ thường
tên riêng nào?
Ý nghĩa của tên chuẩn được
qui định trong các thư viện
của NNLT
? Trong Pascal có những
tên chuẩn nào?
Chúng ta nên đặt tên sao
cho gợi nhớ nội dung của nó
không nên đặt quá dài hay quá
Những tên đúng:
LOP11C2 LOP_11C2Những tên sai
c) Ngữ nghĩa xác định ý nghĩa thao tác
cần phải thực hiện, ứng với tổ hợp kí tựdựa vào ngữ cảnh của nó
2 Một số khái niệm
a) Tên
Mọi đối tượng trong chương trình đềuphải đặt tên theo qui tắc của NNLT và củatừng chương trình dịch cụ thể
* Trong Turbo Pascal tên:
- Không chứa dấu cách, không quá
127 kí tự, không chứa kí hiệu đặc biệt
- Bắt đầu bằng chữ cái hoặc dấu gạchdưới
* Tên chuẩn: được dùng với một ý nghĩa
nào đó Nhưng ta có thể khai báo và dùngvới ý nghĩa và mục đích khác
Vd: abs, sqr, sqrt, byte, integer, real,longin
Trang 6TIN HỌC 11
ngắn vd: để đặt tên cho điểm
môn toán thì ta nên đặt dtoan
không nên đặt dt hay
Để khi đặt tên không trùng
* Tên do người lập trình đặt: tên này xácđịnh bằng cách khai báo trước khi sd,không được trùng với tên dành riêngVd: X1; X2; DELTA, CT_VD; BAI6_3
b) Hằng và biến
* Hằng:
Hằng là đại lượng không thay đổitrong quá trình thực hiện chương trình.Vd: - hằng số học: 2; 0; -5; 1.25; -2.36
- hằng logic: TRUE; FALSE
- hằng xâu: ‘tin hoc’;
‘nguyen_van_A’; ‘Truong THPT DuyenHai’
* Biến:
Biến là đại lượng được đặt tên,dùng để lưu trữ giá trị và giá trị có thểđược thay đổi trong quá trình thực hiệnchương trình
c) Chú thích:
Đặt chú thích để người đọc chươngtrình đó dễ hiểu hơn
Trong pascal chú thích được đặt trongdấu (* và *) hoặc { và }
V.CỦNG CỐ - DẶN DÒ
1 Củng cố:
- Thành phần của NNLT: bảng chữ cái, cú pháp, và ngữ nghĩa
- Một số khái niệm: tên, hằng, biến
2 Dặn dò:
Về nhà học bài và trả lời câu hỏi trong SGK tiết sau giải bài tập
Trang 7BÀI TẬP CUỐI CHƯƠNG 1
- -I MỤC ĐÍCH - YÊU CẦU
- Củng cố lại kiến thức chương 1
- Giải một số bài tập của chương
II PHƯƠNG PHÁP
Phát vấn kết hợp làm việc theo nhóm và diễn giảng
III NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp: (Kiểm tra sĩ số)
2 Kiểm tra bài cũ
Câu 1: Hãy kể tên thành phần của NNLT?
Câu 2: Thế nào là tên dành riêng? Tại sao ta phải nhớ tên dành riêng?
Câu 3: Những tên nào sau đây là đúng qui tắc, sai qui tắc?
_VIDU1; A#B; VI_DU1; VAR; VAR1
3 Nội dung:
Câu 1 Tại sao người ta phải
Câu 4 Cho biết sự các điểm
khác nhau giữa tên riêng và
tên chuẩn?
Gọi một em trả lời
Câu 5: Hãy viết ra 3 tên đúng
và 3 tên sai theo qui tắc của
Pascal
Câu 6: Hãy cho biết những
biểu diễn nào dưới đây không
Trao đổi nhóm trong 7 phút
Trao đổi nhóm trong 2 phút?
Trả lời câu hỏi
Trả lời câu hỏi-3 tên đúng: VI_DU, _BAI6,BAITAP
- 3 Tên sai: 2AB, I+J, BAI TAP
- Chương trình viết bằng NNLT bậc cao
ít phụ thuộc vào máy
- Chương trình viết bằng NNLT bậc cao
dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp
- Cho phép làm việc với nhiều kiểu dữliệu và cách tổ chức dữ liệu đa dạngthuận tiện cho mô tả thuật toán
Câu 2:
- SGK trang 4
- Nhờ có chương trình dịch mà chươngtrình dịch mà máy có thể thực hiện đượcchương trình viết bằng NNLT bậc cao
Câu 4: tên dành riêng không được dùng
với ý nghĩa khác; tên chuẩn có thể dùngvới ý nghĩa khác
Tiết: 3
Trang 8TIN HỌC 11
phải là biểu diễn hằng trong
Pascal và chỉ lỗi từng trường
Câu 7: Hãy chỉ ra những tên
nào đúng tên nào sai trong
Pascal giải thích lí do:
Chú thích sai:
a : sai vì thiếu dấu )
c : sai vì mở là (* nhưngđóng }
d : sai vì thiếu dấu }
Những biểu diễn không là hằng:
6,23: dấu phẩy (nếu là dấu chấm thìđúng)
A20: tên không rõ giá trị
‘C: sai qui định về hằng xâu: thiếu dấunháy đơn ở cuối
IV DẶN DÒ
Về nhà học bài tiết sau kiểm tra 15 phút
Soạn bài trước theo câu hỏi sau:
Câu 1: Cấu trúc của một chương trình được viết bằng NNLT?
Câu 2: Các cách khai báo trong Pascal: khai báo tên chương trình, khai báo thư viện, khai báohằng, khai báo biến
Câu 3: thân chương trình của Pascal gồm những từ khoá nào?
Câu 4: để viết được lệnh đưa thông báo ra màn hình ta dùng lệnh nào?
Trang 9KIỂM TRA ĐÁNH GIÁ 15 PHÚT
I MỤC ĐÍCH
Kiểm tra lại khã năng tiếp thu cũng như quá trình học tập của HS Từ đó có thể điều chỉnhphương pháp giảng dạy
II BẢNG RA ĐỀ KIỂM TRA
III NỘI DUNG
IV KẾT QUẢ KIỂM TRA
Trang 10TIN HỌC 11
CHƯƠNG II CHƯƠNG TRÌNH ĐƠN GIẢN
BÀI 3 CẤU TRÚC CHƯƠNG TRÌNH
- -I MỤC ĐÍCH – YÊU CẦU
Hiểu chương trình là sự mô tả của thuật toán bằng NNLT
Biết cấu trúc của chương trình đơn giản: cấu trúc chung và các thành phần
Nhận biết được thành phần của một chương trình đơn giản
II PHƯƠNG PHÁP
Phát vấn kết hợp với diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Câu 2: Thế nào là tên dành riêng? Viết một số tên dành riêng mà em biết?
Câu 3: Tên dành riêng khác với tên chuẩn ở điểm nào?
Phần khai báo được đặt trong dấu
ngoặc vuông có nghĩa là có thể có
hoặc không Phần thân nhất thiết
phải có
? Trong khai báo có những loại
nào?
? Để khai báo tên chương trình ta
bắt đầu bằng từ khoá nào?
Khai báo tên chương trình chỉ có ý
nghĩa để ghi nhớ tên bài toán cần
Tiết: 4
Trang 11phải khai báo tên chương trình.
khai báo thư viện chứa nó
Trong thư viện CRT trong
pascal cung cấp các chương trình
có sẵn để làm việc với màn hình
văn bản và bàn phím
Khai báo hằng thường được sử
dụng cho những giá trị xuất hiện
nhiều lần trong chương trình
? Yêu cầu lấy ví dụ khai báo
hằng trong Pascal
Tất cả các biến dùng trong chương
trình đều phải đặt tên và phải khai
báo cho chương trình dịch biết để
lưu trữ và xử lí
Khai báo biến ta sẽ học ở bài 5
Ở đây ta làm quen khái niệm biến
đơn
Ví dụ: khi khảo sát phương
trình đường thẳng ax + by + c = 0
các hệ số a, b, c có thể được khai
báo như một biến đơn
Ngoài ra ta còn khai báo chương
trình con được trình bày ở chương
VI
? Dấu hiệu nào để nhận biết thân
chương trình
Hướng dẫn học sinh các bước
− Khai báo tên chương trình
Một em lên bảng trình bày các em khác làm trong nháp
a2) Khai báo thư viện
Cú pháp:
USES <tên thư viện>;
Ví dụ: khai báo thư viện trong pascal:
CONST Tên _hằng = giá trị;
a4) Khai báo biến:
Biến đơn là biến chỉ nhận một giá trị tại mỗi thời điểm thực hiện chươngtrình
b) Phần thân chương trình:
Thân chương trình trong Pascal
3 Ví dụ chương trình đơn giản
Ví dụ 1: viết chương trình đưa ra
màn hình thông báo ‘Xin chao cac ban!’
END.
Trang 12TIN HỌC 11
Yêu cầu học sinh viết chương
trình này?
Lên bảng viết chương trình Begin
writeln(‘Xin chao cac ban’);writeln(‘Moi cac ban lam quen voi Pascal’);
End.
V CỦNG CỐ − DẶN DÒ
1 Củng cố:
−Cấu trúc của chương trình có mấy phần?
− Các từ khoá trong khai báo: tên chương trình; hằng; thư viện
− Dấu hiệu nhận biết thân chương trình trong Pascal.
2 Dặn dò
Về nhà soạn bài 4, 5 SGK
− Trong Pascal sử dụng kiểu dữ liệu nào? Phạm vi của từng kiểu?
− Cách khai báo biến Ví dụ khai báo biến trong Pascal.
− Khi khai báo biến ta cần chú ý đến điểm nào?
Trang 13§ 4 MỘT SỐ KIỂU DỮ LIỆU CHUẨN
§ 5 KHAI BÁO BIẾN
I MỤC ĐÍCH – YÊU CẦU
Biết một số kiểu dữ liệu chuẩn: nguyên; thực, logic, kí tự
Xác định được kiểu cần khai báo của dữ liệu đơn giản
Hiểu cách khai báo biến
Biết khai báo biến đúng
II PHƯƠNG PHÁP
Diễn giảng, phát vấn kết hợp làm việc nhóm
III PHƯƠNG TIỆN DẠY HỌC
Bảng vẽ khổ lớn, SGK, giáo án…
IV NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY
1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra bài cũ
Câu 1: Cấu trúc chung của chương trình viết bằng NNLT bậc cao?
Câu 2: Trong Pascal khi khai báo tên chương trình, thư viện, hằng ta dùng từ khoá nào?
3 Nội dung
Các bài toán trong thực
tế thường có dữ liệu vào
Thường dung hơn cả là
các kiểu được liệt kê trong
Ngày soạn: 3/9/2010
Tiết: 5
Trang 14cần tìm hiểu đặc trưng của
các kiểu dữ liệu chuẩn
được xác định bởi bộ dịch
và sử dụng để khai báo
biến
Như nói ở trên, mọi
biến dùng trong chương
trình đều cần khai báo tên
và kiểu dữ liệu Tên biến
dung để xác lập quan hệ
giữa biến với địa chỉ bộ
nhớ nơi lưu giữ giá trị
biến
? Trong chương trình biến
được khai báo bao nhiêu
lần?
Phần này được trình
bày trong chương IV
Ta sẽ khai báo như thế
Phạm vi giá trị
Boolean 1 Byte True hoặc False
§ 5 KHAI BÁO BIẾN
Mọi biến dùng trong chương trình đều cần khai báo tên và kiểu dữ liệu
Trong Pascal khai báo biến bắt đầu bằng từ khoá
VAR
Cú pháp VAR <danh sách biến>: <kiểu dữ liệu>;
Danh sách biến: gồm một hoặc nhiều biến, các
biến được viết cách nhau bởi dấu phẩy;
Kiểu dữ liệu là kiểu dữ liệu chuẩn hoặc kiểu dũ
liệu do người lập trình tự định nghĩa
Ví dụ 1: GSử trong chương trình cần các biến
Trang 15đến một số vấn đề sau:
- Ví dụ: cần đặt tên hai
biến biểu diễn điểm toán,
điểm tin mà không nên vì
nên khai báo biến đó thuộc
kiểu byte, nhưng nếu là số
HS toàn trường thì phải là
kiểu word
C là 1 byte
I, J là 2 byte
N là 2 byteTổng cộng: 23 byte
- Các kiểu dữ liệu chuẩn: số nguyên (integer), số thực (real), kí tự (char), logic (Boolean)
- Mọi biến trong chương trình đèu phải được khai báo tên và kiểu dữ liệu
VAR <danh sách biến>: <kiểu dữ liệu>;
2 Dặn dò
Về nhà học bài trả lời các câu hỏi 1; 2; 3; 4; 5 SGK trang 35
Soạn bài 6:
Yêu cầu 1: lớp chia làm 3 nhóm chuẩn bị bảng phụ ghi những bảng sau:
Tổ 1: ghi bảng phép toán trong Pascal
Tổ 2: ghi qui tắt viết biểu thức toán học trong Pascal
Tổ 3: chuẩn bị bảng một số hàm chuẩn
Yêu cầu 2: soạn phần 4, 5, 6
Câu 1: biểu thức quan hệ có dạng nào? Trình tự thực hiện biểu thức quan hệ? Kết quả biểu thức quan hệ?
Câu 2: Biểu thức lôgic gồm những biểu thức nào? Các biểu thức quan hệ đặt đâu? Giá trị khi thực hiện biểu thức logic?
Câu 3: Trong Pascal câu lệnh gán có dạng nào? Kiểu của biểu thức như thế nào với kiểu của biến?
Trang 162 Kiểm tra bài cũ
Câu 1: Có những kiểu dữ liệu chuấn nào?
Câu 2: Để khai báo tuổi của con người tốt nhất ta dùng kiểu dữ liệu nào?
Câu 3: giả sử ta có các biến sau: x, y nhận giá trị thực; i, j nhận giá trị nguyên vậy ta khai báo
như thế nào?
3 Nội dung
Để mô tả các thao tác của
thuật toán, mỗi NNLT đều xác
định và sd khái niệm cơ bản:
Phép toán, biểu thức gán giá trị
Giải thích phép toán div,
mod, not, or, and.
Chú ý:
Kết quả các phép toán quan
hệ cho giá trị logic
+, -, x, /, div,mod
+, -, x, /,div, mod
Các phép toán số họcvới số thực +, -, x, / +, -, x, /Các phép
>=, =, <>Các phép
toán lôgic
¬(phủ dịnh),
∧(hoặc), ∨
(và)
not, or, and
Tiết: 6
Trang 17Hoạt động 2
Trong lập trình, biểu thức số
học là một biến kiểu số hoặc
các biến kiểu sô và các hằng số
liên kết với nhau bởi một số
Nếu biểu thức chứa hằng
hay biến thực thì ta có biểu
thuận tiện hơn, các NNLT đều
có thư viện chứa một số chương
- Viết lần lượt từ trái sang phải
- Không được bỏ qua dấu nhân (*) trongtích
Thứ tự thực hiện phép toán:
- Trong ngoặc thực hiện trước
- Nếu không có dấu ngoặc thì thực hiện
từ trái sang phải theo thứ tự nhân, chia, div,mod, thực hiện trước sau đó cộng, trừ.Vd: 3x+7y→3*x+7*y
c b a c
Ax2 + + → * * + * +
xy
z x x
hai 2 sqrt(x) I or R R Trị tuyệt
đối |x| abs(x) I or R
Theo kiểu đối số Lôgarit Lnx ln(x) R R Lũy thừa
của e e x exp(x) R R Sin sinx sin(x) R R Cos cosx cos(x) R R
VD: a
a
ac b
b
2
4
2 −+
Trang 18TIN HỌC 11
kiết với nhau bởi phép toán
quan hệ cho ta biểu thức quan
Giải thích biểu thức quan hệ
Kết quả biểu thức quan hệ
cũng là TRUE hoặc FALSE
Hoạt động 6
Trong trường hợp đơn giản
tên biến là biến đơn
Kiểu của biểu thức phải
cùng kiểu của biến
VD: biến là kiểu thực thì
biểu thức phải là kiểu thực
Dấu := có nghĩa là giá trị
mới bằng giá trị của biểu thức ở
Ý nghĩa của lệnh 4 là tăng
giá trị x lên một đơn vị
- Kết quả: TRUE hoặc FALSE
VD: not(4>6) (5 <= x) and (x<=11)(M mod 3 = 0) or (N mod 3 = 0)
Trang 19§7 CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN
§8 SOẠN THẢO, DỊCH, THỰC HIỆN HIỆU CHỈNH CHƯƠNG TRÌNH
I MỤC ĐÍCH – YÊU CẦU
Biết các lệnh vào/ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra màn hình
Viết được một số lệnh vào ra đơn giản
Biết các bước: soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình
Biết một số công cụ của môi trường Turbo pascal
Bước đầu sd được chương trình dịch để phát hiện lỗi
Bước đầu chỉnh sửa được chương trình dựa vào thong báo lỗi của chương trình dịch và tính hợp
lí của kết quả thu được
II PHƯƠNG PHÁP
Phát vấn và diễn giảng
III PHƯƠNG TIỆN DẠY HỌC
Máy chiếu, máy tính có soạn sẵn chương trình đơn giản, SGK, giáo án…
IV NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY
1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra bài cũ
Câu 1: Viết biểu thức biểu diễn trong toán học sang biểu thức trong pascal
d
b c
a + ; (x y)
y
z x xz
y x
++
−
Câu 2: Biểu diễn hàm sau trong pascal:
x x
x x
sin1cos
)(sin
gán để gán một giá trị cho biến
Như vậy mỗi chương trình luôn
làm việc với một bộ dữ liệu
vào
Để chương trình có thể làm
việc với nhiều bộ dữ liệu vào
khác nhau, thư viện của các
NNLT cung cấp một số chương
trình dùng để dưa dữ liệu vào
và đưa dữ liệu ra
Các chương trình đưa dữ liệu
vào và ra được gọi chung là các
thủ tục chuẩn vào/ra đơn giản
Hoạt động 1
Chú ý lắng nghe
§7 CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN
1 Nhập dữ liệu vào từ bàn phím
Tiết: 7
Trang 20TIN HỌC 11
Danh sách biến gồm 1 hoặc
nhiều biến(trừ biến kiểu
Boolean) Trường hợp có
nhiều biến thì tên biến được
viết cách nhau bởi dấu phẩy
? Lệnh thứ nhất và lệnh thứ
hai dùng để làm gì?
Khi nhập giá trị cho nhiều
biến, những giá trị này được gõ
cách nhau ít nhất một dấu cách
hoặc xuống dòng (nhấn Enter)
Nhập giá trị biến nguyên
không được sd dấu chấm thập
Lên bảng viết
Write khi đưa kết quả ra màn hình con trỏ không chuyển xuống dòng, còn đối với thủ tục writeln khi đưa ra màn hình con trỏ tự động xuống dòng
Vd để nhập giá trị cho biến M ta dùng
Writeln('nhap gia tri M’);
Readln(M);
*Chú ý:
Các thủ tục readln và write có thể không có tham số.
Trong thủ tục write hoặc writeln, sau mỗi kết quả có thể qui cách ra:
+ Đối với kết quả thực :<độ rộng>:<số chữ số thập phân>
+ Đối với kết quả khác:
Trang 21Việc soạn thảo giống như
soạn thảo trong word và lưu ý
là không bỏ dấu
Nếu chương trình có lỗi cú
pháp phần mềm sẽ hiển thị
thông báo Cần sửa lỗi lại và
biên dịch lại tới khi không còn
lỗi
§8 SOẠN THẢO, DỊCH, THỰC HIỆN HIỆU CHỈNH CHƯƠNG
TRÌNH
- Màn hình làm việc của Pascal
- Soạn thảo: gõ nội dung chương trình gồm phần khai báo và các lệnh trong phần thân
- Lưu chương trình:
Nhấn phím F2 → gõ tên tệp
Vào File → Save → gõ tên tệp
- Biên dịch chương trình: Nhấn Alt +F9
Viết được thủ tục đưa dữ liệu vào/ra: write( ) hoặc writeln( ), read( ) hoặc readln
Các thao tác lưu tệp, dịch chương trình, đóng cửa sổ, đóng phần mềm, mở tệp
2 Dặn dò
Học bài xem trước bài tập thực hành 1
Trang 22TIN HỌC 11
BÀI THỰC HÀNH 1
I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức
− Giới thiệu một chương trình Pascal hoàn chỉnh đơn giản;
− Làm quen với một số dịch vụ cơ bản của Turbo Pascal hoặc Free Pascal trong việc soạn thảo, lưu trữ, dịch và thực hiện chương trình
Nêu vấn đề giải quyết vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phòng máy thực hành của trường, máy chiếu nếu có
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (kiểm tra sĩ số)
2 Nội dung
Phổ biến nội qui phòng máy
Chiếu chương trình lên bảng
yêu cầu học sinh thực hiện các
nhiệm vụ
Hướng dẫn học sinh cách
khởi động chương trình Pascal
Soạn chương trình vào máy
Lưu chương trình với tên
? Vì sao có lỗi xảy ra
Sửa lại chương trình không
dùng biến D
Khởi động chương trình Pascal
Gõ nội dung vào máy
End.
x1 = (−b − sqrt(b*b−4*a*c))/(2*a);x2 = (−b +sqrt(b*b − 4*a*c))/(2*a)writeln(‘x1= ‘, x1:6:2,’x2 = ‘,x2:6:2);readln
Nếu còn thời gian cho thêm bài
tập
Chiếu nội dung bài tập lên bản Quan sát lắng nghe
Viết chương trình tính diện tích hình được
tô màu, với a được nhập vào bàn phím
Tiết: 8
Trang 23Yêu cầu HS soạn chương
trình và lưu trên đĩa
Quan sát hướng dẫn HS
trong lúc thực hành
Yêu cầu HS nhập dữ liệu và
thông báo kết quả
a = 3
Dữ liệu vào a
Dữ liệu ra STính diện tích hình tròn và diện tích hình vuôngDiện tích hình tô đen = diện tích hình tròn - diện tích hình vuông
- Soạn chương trình
- Nhấn phím F2, gõ tên vào
- Nhấn phím Alt + F9, dịch sửa lỗi nếu có
- Nhấn phím Ctrl + F9 để thực hiện chương trình Nhập dữ liệu vào
S1:= Pi*R*R;
S2:= sqr(a*sqrt(2));
S := S1- S2;
Với a = 3 ta được S = 10.26Với a = - 3 kết quả không đúng vì độ dài cạnh phải là hình vuông
V CỦNG CỐ - DẶN DÒ
1 Củng cố:
Các bước để hoàn thành một chương trình
- Xác định dữ liệu vào, dữ liệu ra
Trang 24TIN HỌC 11
BÀI TẬP CHƯƠNG 2
I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức
− Cũng cố những nội dung đã đạt được ở tiết thực hành 1
− Biết sử dụng thủ tục chuẩn vào/ra
− Biết xác định Input và Output
II PHƯƠNG PHÁP
Nêu vấn đề giải quyết vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Hình vẽ khổ lớn, bảng phụ…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra bài cũ:
Câu 1 Trong Pascal, nếu một biến chỉ nhận giá trị nguyên từ phạm vi 10 đến 25532 thì biến đó có
thể được khai báo bằng các kiểu dữ liệu nào?
Câu 2 Viết dạng của thủ tục vào/ra? Cho biết sự khác nhau giữa thủ tục write và writeln?
Câu 3 Biến P có thể nhận giá trị 5, 10, 15, 20, 30, 60, 90 biến X có thể nhận giá trị 0.1, 0.2, 0.3,
0.4, 0.5 Khai báo nào trong khai báo sau là đúng?
3 Nội dung
Yêu cầu 2 học sinh lên bảng
biểu diễn
Yêu cầu 4 HS lên bảng
Lên bảng biểu diễn trong Pascal
a
b
a b
1(
x a
z
y x z
+
−
++
và 2.b
Tiết: 10
Trang 25Hãy lên biểu diễn hình 2b
Hãy đưa ra phương án giải
Thảo luận trong vòng 3 phút
Ta thấy nếu lấy một tam giác và một phần cung bị bôi đen thì là ¼ đường tròn
Nếu cộng lại thì được ½ diện tích đường tròn
Vậy ta chỉ tính diện tích đường tròn rồi chia hai
Hình 2: các miền cần xác định
Bài 9 tr 36
Hãy viết chương trình nhập số R (R > 0) rồi tính và đưa ra diện tích phần bôi đen trong hình 3
Program BAI_9;
Const pi = 3.1416;
Var S, R: real;
BEGINWrite('nhap vao ban kinh duong tron’); Readln(R);
Trang 26TIN HỌC 11
Hướng dẫn sau đó yêu cầu HS
lên bảng viết Trao đổi thảo luận, sau đó lên bảng
Lập trình đưa ra màn hình vận tốc v khi chạm đất của một vật rơi từ độ cao h Biết rằng v= 2ghtrong đó g là gia tốc tự do và
g = 9.8 m/s2 Độ cao h (m) được nhập từ bàn phím
Chương trìnhProgram BAI_10;
Const g = 9.8;
Var v, h: real;
BEGINWrite('nhap vao do cao cua vat d = ’); Readln(h);
Về nhà tự tìm bài tập trong sách bài tập tin học 11
Xem trước bài 9 và 10
Trang 27CHƯƠNG III: CẤU TRÚC RẼ NHÁNH LẶP
§ 9 CẤU TRÚC RẼ NHÁNH
I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức
− Hiểu nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán;
− Hiểu câu lệnh rẽ nhánh (dạng thiếu và dạng đủ)
− Hiểu câu lệnh ghép
2 Kĩ năng:
− Sử dụng cấu trúc rẽ nhánh trong môt tả thuật toán của một số bài toán đớn z giản
− Viết được câu lệnh rẽ nhánh dạng đủ, dạng thiếu và áp dụng để thể hiện được thuật toán của một số bài toán đơn giảng
Nêu ví dụ thực tiễn minh
hoạ cho tổ chức rẽ nhánh:
Chiều nay, nếu trời không
mưa An sẽ đi xem đá bóng nếu
trời mưa An sẽ mở Tivi xem
Yêu cầu HS lấy một vài ví
dụ tương tự
Yêu cầu học sinh đưa ra cấu
trúc chung của cách diễn đạt đó
Yêu cầu HS lấy ví dụ dạng
khuyết và đưa ra cấu trúc chung
? Hãy nêu các bước kết lụân
nghiệm phương trình bậc hai
ax2 + bx + c = 0 (a ≠ 0) ?
Như vậy, sau khi tính D tuỳ
thuộc vào giá trị của D, một
trong hai thao tác sẽ được thực
Nếu… thì … nếu không
là phương trình vô nghiệm
Trang 28TIN HỌC 11
Để mô tả cấu trúc rẽ nhánh,
Pascal dùng câu lệnh gì?
Yêu cầu học sinh lên bảng
viết dạng thiếu và dạng đầy đủ
Ở dạng thiếu: điều kiện sẽ
được tính và kiểm tra Nếu điều
kiện đúng thì câu lệnh sẽ được
thực hiện, ngược lại câu lệnh sẽ
Theo cú pháp sau từ khoá then
hoặc esle phải là một câu lệnh.
Nhưng nếu sau từ khoá đó có
nhiều câu lệnh thì ta gọi câu
x1 :=(−b − sqrt(D))/(2*a);x2 := −b/a − x1;
end;
Điều kiện
Câu lệnh True
False
Điều kiện
Câu lệnh True
False Câu lệnh 2
Begin
<các câu lệnh>;
End;
Trang 29Ví dụ 1: Tìm nghiệm thực của
PTB2: ax2 + bx + c = 0 (a ≠0)
? Hãy xác định bài toán?
Hướng dẫn HS viết chương
trình
Yêu cầu HS lên bảng viết
Ví dụ 2: Viết chương trình tính
số ngày của năm N, biết rằng là
năm chia hết cho 400 hoặc chia
hết cho 4 nhưng không chia hết
cho 100
? Hãy xác định bài toán?
Hướng dẫn HS viết chương
trình
Yêu cầu HS lên bảng viết
Lên bảng viết chương trình
Lên bảng viết chương trình
Trang 30TIN HỌC 11
§ 10 CẤU TRÚC LẶP
I MỤC ĐÍCH – YÊU CẦU
− Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán
− Hiểu cấu trúc lặp với số lần biết trước bằng câu lệnh for … do …
2 Kiểm tra bài cũ:
Câu 1: Viết cú pháp của cấu trúc lặp: dạng thiếu và dạng đủ
Câu 2 Begin
clrscr;
write(‘nhap nam: ’); readln(N);
(N mod 400 = 0) ((N mod 4 = 0) ((N mod 100 <> 0)) then
Nêu vấn đề bài toán 1:
Ta thấy cả hai bài toán cách
chưa biết trước nhưng việc
cộng vào tổng kết thúc khi điều
Chú ý lắng nghe và ghi bài
1 Lặp Bài toán 1: tính và đưa kết quả ra màn
hình tổng
100
1
2
11
11
++++
+++
=
a a
a a S
Bài toán 2: tính và đưa kết quả ra màn hình tổng
1
2
11
11
+++++
+++
=
N a a
a a S
* Cấu trúc lặp có hai loại: lặp với số lần
biết trước và lặp với số lần không biết trước.
TUẦN: 6
Trang 31kiện 1 <0,0001
mãn
Nói chung một số thuật toán
có những thao tác lặp đi lặp lại
một số lần
Các NNLT đều có các câu
lệnh để mô tả cấu trúc lặp
Hoạt động 2
Trao đổi nhóm trong 3 phút
và lên bảng viết thuật toán 1a
và 1b:
Nhóm 1, 2, 3 nghiên cứu
thuật toán 1a;
Nhóm 4, 5, 6 nghiên cứu thuật
toán 1b;
Ta thấy thuật toán Tong_1a
giá trị N khi bắt đầu tham gia
vòng lặp là 1 và sau mỗi lần lặp
là tăng lên 1cho đến khi N >100
Thuật toán Tong_1b giá trị
N khi bắt đầu tham gia vòng lặp
là 100 và sau mỗi lần lặp là
giảm xuống 1 cho đến khi N <1
Ta nói cách lặp ở thuật toán
Tong_1a là dạng tiến còn
Tong_1b là dạng lùi
Ở dạng lặp tiến câu lệnh sau
từ khoá do được thực hiện tuần
tự, biến đếm lần lược nhận giá
trị liên tiếp từ giá trị đầu đến
giá trị cuối
Ở dạng lặp lùi câu lệnh sau từ
khoá do được thực hiện tuần tự,
biến đếm lần lược nhận giá trị
giảm liên tiếp từ giá trị cuối đến
Thuật toán Tong_1a
B1: S ← 1/a; N ← 0; {khởi tạo S,N}; B2: N ← N + 1;
B 3: Nếu N > 100 thì chuyển đến B5;
B 4: S ← S + 1/(a+N) rồi quay lại B2;B5: Đưa S ra màn hình rồi kết thúc
Thuật toán Tong_1a
B1: S ← 1/a; N ← 101; {khởi tạo S,N}; B2: N ← N − 1;
For <biến đếm>:=<giá trị cuối> downto
<giá trị đầu> do <câu lệnh>;
• Biến đếm là biến đơn và là kiểu nguyên
• Giá trị đầu giá trị cuối cùng kiểu với biến đếm
* Chú ý: giá trị biến đếm được điều chỉnh
tự động, vì vậy câu lệnh viết sau do không
được thay đổi giá trị biến đếm
V CỦNG CỐ - DẶN DÒ
1 Củng cố:
Cấu trúc lặp dạng lặp với số lần biết trước
Cú pháp của dạng lặp tiến và lặp lùi
2 Dặn dò
Về nhà học bài và xem tiếp phần sau
Trang 32TIN HỌC 11
§ 10 CẤU TRÚC LẶP (tt)
I MỤC ĐÍCH – YÊU CẦU
− Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể
− Mô tả một số thuật toán của một số bài toán đơn giản có sd lệnh lặp
− Viết được chương trình đơn giản có sd dòng lặp for ……do……
− Biết sử dụng cấu trúc lặp với số lần chưa biết trước bằng câu lệnh while … do…
2 Kiểm tra bài cũ:
Câu hỏi: Viết cú pháp của câu lệnh lặp dạng tiến và dạng lùi và giải thích biến đếm, giá trị đầu giá trị cuối phải như thế nào ?
Trao đổi nhóm trong 5 phút
lên bảng viết chương trình
Lên bảng trình bày Các nhóm còn lại chú ýnhận xét bổ sung
2 Lặp với số lần biết trước và câu lệnh
Trang 33Hãy xác định bài toán
Thảo luận trong 4 phút lên bảng
trình bày
Nhận xét đánh giá cho điểm
Thảo luận nhóm đưa để đưa ra
thuật toán tính tổng bài toán 2
Nhận xét, đánh giá cho điểm
Như vậy, việc lặp với số lần
chưa biết trước sẽ chỉ kết thúc
khi một điều cho trước được
thoả mãn
Để mô tả cấu trúc lặp như vậy
trong Pascal người ta dùng câu
lệnh while−do
Nếu là câu lệnh ghép ta
dùng từ khoá gì?
Treo sơ đồ lặp while − do
Treo sơ đồ khối thuật toán
Tong_2
Input: Hai số M, N;
Output: tổng các số chia hếtcho 3 hoặc chia hết cho 5
Câu lệnh TRUE
FALSE
Trang 34TIN HỌC 11
Có nhiều thuật toán khác nhau
tìm ƯCLN của M, N Ở lớp 10
các em đã học thuật toán này
Treo hình thuật toán liệt kê
từng bước và sơ đồ khối
If M > N then M:= M − N else N:= N − M;
writeln(‘UCLN= ’, M);
readln
end.
Chú ý: câu lệnh trong dòng lặp thường
được lặp lại nhiều lần, vì vậy để tăng hiệuquả của chương trình thì những thao táckhông cần lặp lại nên đưa ra ngoài vòng lặp
V CỦNG CỐ - DẶN DÒ
1 Củng cố:
Cấu trúc lặp dạng lặp với số lần chưa biết trước
Các chương trình đơn giản
2 Dặn dò
Về nhà học bài và xem tiếp bài thực hành 2, làm bài tập chương III
Trang 35BÀI THỰC HÀNH 2
I MỤC ĐÍCH – YÊU CẦU
1 Kiến thức
− Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh
− Tiếp tục làm quen với việc hiệu chỉnh chương trình
Nêu vấn đề giải quyết vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Phòng máy thực hành vi tính , máy chiếu
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (kiểm tra sĩ số)
2 Nội dung
Gợi ý để HS nêu khái niệm về
Dành thời gian cho học sinh
gõ nội dung vào
Ba số nguyên dương a, b, c được gọi là bộ số Pi ta go nếu tổng bình phương hai
số bằng bình phương số còn lại
writeln('ba so da nhap la bo so Pi ta go)
TIẾT: 13 − 14
Trang 36TIN HỌC 11
Lưu chương trình với tên
PITAGO vào thư mục lớp mình
Nhấn phím F7 để thực hiện
từng câu lệnh chương trình,
nhập các giá trị a = 3, b = 4,
c=5
Vào bảng Debug mở cửa sổ
hiệu chỉnh để xem giá trị a2,
b2, c2
Nhấn phím F7 để thực hiện
câu lệnh tính những giá trị nói
trên và so sánh với kết quả
= 3, b = 4, c=5 nêu kết quả
Vào bảng debug
Nhấn F7 và so sánh kết quả
Tiếp tục nhấn F7 để theodõi quá trình rẽ nhánh
Nhập bộ số: a = 700,b=1000, c = 800 Thôngbáo kết quả
Thay đổi câu lệnh với bộ
Trang 37BÀI TẬP CHƯƠNG III
Nêu vấn đề giải quyết vấn đề
III PHƯƠNG TIỆN DẠY HỌC
Bảng phụ, giáo án…
IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp (kiểm tra sĩ số)
2 Kiểm tra bài cũ:
Câu 1: viết cấu trúc lặp trong pascal: dạng lặp tiến hoặc lặp lùi? Cho ví dụ?
Câu 2: hãy điền câu lệnh vào đoạn chương trình sau: Program Tong_2;
Yêu cầu HS thảo luận trong 3
phút lên bảng viết câu lệnh Thảo luận và trình bày trên bảng
Bài 4: Viết câu lệnh rẽ nhánh tính
+
=
5.0
2 2
y x
y x z
if (sqr(x) + sqr(y)) <= 1 then
z :=sqr(x) + sqr(y) else
if ((sqr(x) + sqr(y)) > 1) and (y>=x) then z := x+ y else z := 0.5;
nếu x 2 + y 2 ≤ 1 nếu x 2 + y 2 > 1 và y ≥ x nếu x 2 + y 2 > 1 và y < x
TUẦN: …….
TIẾT: ……
Trang 38Hướng dẫn giải bài 5
? n có giá trị như thế nào?
? Vậy ta phải dùng cấu trúc lặp
nào tốt nhất?
Tương tự như chương trình tính
tổng VD1
Yêu cầu HS viết chương trình
Gơi ý HS khởi tạo giá trị ban
đầu:
OM ≤ RHay
R b y a
x− )2 +( − )2 ≤
(Lên bảng trình bày
N sẽ có giá trị từ 1 đến 50Cấu trúc lặp với số lần biểt trước For − do
+
=
y x
y x z
if sqrt(sqr(x − a) +sqr(y − b))<= R then z:=abs(x) + abs(y) else z := x + y;
!2
1
!1
11)
n n
6102
inc(n); {tăng n lên 1 đơn vị}
gt := gt*(1/n);
Nếu điểm (x, y) thuộc hình tròn bán kính r (r > 0), tâm (a,b)
Trường hợp còn lại M(x, y)
R
O(a,b)
Trang 39Gợi ý HS viết chương trình
Các bài tập còn lại yêu cầu HS
tăng tuổi cha lên 1
tăng tuổi con lên 1
tăng năm lên 1
Trang 40II BẢNG RA ĐỀ KIỂM TRA
III NỘI DUNG
IV KẾT QUẢ KIỂM TRA
Biết Câu 1, 3, 6, 28, 30 Câu 2, 5, 9, 17, 18, 20, 21,