Mỗi loại máy có một ngôn ngữ riêng, thường thì chương trình viết bằng ngôn ngữ của máy nào chỉ chạy được trên máy Khái niệm lập trình: Lập trình là sử dụng một cấu trúc dữ liệu và các c
Trang 1Chương 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
Bài 1: KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
I MỤC ĐÍCH, YÊU CẦU
1 Kiến thức
- Nắm được các thành phần cơ bản của ngôn ngữ lập trình nói chung
- Biết được khái niệm về chương trình dịch
- Phân biệt được chươn trình dịch là biên dịch và thông dịch
2 Kỹ năng
- Biết vai trò của chương trình dịch
- Hiểu ý nghĩa nhiệm vụ của chương trình dịch
3 Thái độ
- Ý thức được tầm quan trọng của môn học và có thái độ học tập nghiêm túc, luôn tự tìm hiểu học tập
II CHUẨN BỊ
1 Gv: Giáo án, máy chiếu, máy tính, phòng chiếu hoặc bảng
2 Hs: Đọc trước SGK, xem lại một số kiến thức Tin học lớp 10
III PHƯƠNG PHÁP
- Thuyết trình, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề
IV NỘI DUNG
Hoạt động 1: Khái niệm về lập trình và ngôn ngữ lập trình GV: Đặt câu hỏi 1: Em hãy cho biết các
bước giải một bài toán trên máy tính?
HS: Suy nghĩ và trả lời câu hỏi.
GV: Phân tích câu trả lời của học sinh.
Nhắc lại các bước giải bài toán trên máy
tính đã học ở lớp 10
GV: Đặt câu hỏi 2: Em hãy cho biết có
mấy loại ngôn ngữ lập trình?
HS: Trả lời câu hỏi của giáo viên.
GV: Phân tích câu trả lời của học sinh.
Mỗi loại máy có một ngôn ngữ riêng,
thường thì chương trình viết bằng ngôn
ngữ của máy nào chỉ chạy được trên máy
Khái niệm lập trình: Lập trình là sử dụng
một cấu trúc dữ liệu và các câu lệnh của một ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt thuật toán
-Trả lời câu hỏi: Có 3 loại ngôn ngữ lập trình: Ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao
Chương trình viết bằng ngôn ngữ máy có thể nạp trực tiếp vào bộ nhớ thi hành ngay
Trang 2Khi viết chương trình bằng ngôn ngữ bậc
cao muốn thi hành được trên loại máy nào
thì cần chuyển chương trình sang ngôn ngữ
máy của máy đó
Chương trình viết bằng ngôn ngữ bậc cao nói chung không phụ thuộc loại máy, muốn thi hành được thì nó phải được chuyển sang ngôn ngữ máy
Hoạt động 2: Phân loại chương trình dịch GV: Đặt câu hỏi 3 : Làm thế nào để chuyển
chương trình viết bằng ngôn ngữ bậc cao
sang ngôn ngữ máy?
Đưa ra ví dụ : Bạn là người không biết
tiếng Anh vậy làm sao để bạn có thể nói
chuyện với người Anh hay đọc một cuốn
sách tiếng Anh?
+ Khi một người làm phiên dịch người đó
phải dịch như thế nào? (Dịch ngay từng
câu khi 2 người nói chuyện)
+ Khi một người muốn dịch 1 cuốn sách
sang tiếng Việt thì làm thế nào? (Dịch
toàn bộ cuốn sách đó sang tiếng Việt để
người đó có thể đọc được)
GV: Lấy ví dụ về biên dịch và thông dịch
cho học sinh có thể hình dung được mỗi
công việc
Biên dịch: Sử dụng ngôn ngữ lập trình
Pascal để dịch một chương trình viết sẵn ra
đĩa và thi hành chương trình đã dịch để học
sinh quan sát
Thông dịch: Sử dụng các lệnh trong
Command promt để thực hiện một số lệnh
của DOS hoặc dùng ngôn ngữ Foxpro để
thực hiện một số lệnh quản trị dữ liệu, học
sinh dễ dàng nhận ra việc thông dịch
Đi kèm với các chương trình dịch thường
có các công cụ như soạn thảo chương trình
nguồn, lưu trữ, tìm kiếm, phát hiện lỗi,
thông báo lỗi,… ngôn ngữ lập trình thường
chứa tất cả các dịch vụ trên
=>Cần phải có chương trình dịch để chuyển chương trình viết bằng ngôn ngữ lập trình bậc cao sang ngôn ngữ máy để máy có thể thi hành được
Chương trình dịch có 2 loại: Biên dịch và
Dịch toàn bộ chương trình nguồn thành một chương trình đích (ngôn ngữ máy) để
có thể thực hiện trên máy và có thể lưu trữ
để sử dụng lại khi cần
+ Thông dịch (Interpreter): Dịch lần lượt
từng câu lệnh và thực hiện ngay câu lệnh ấy
Thông dịch được thực hiện bằng cách lặp lại dãy các bước sau:
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ác câu lệnh đó thành một hay nhiều câu lệnh trong ngôn ngữ máy
Thực hiện các câu lệnh vừa chuyển đổi
được
Trang 34 Cũng cố
Nhắc lại một số khái niệm mới
V PHỤ LỤC
………
………
………
………
………
………
………
Trang 4Tiết: 02 Ngày dạy: …/…/……
Bài 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH
I MỤC ĐÍCH, YÊU CẦU
1 Kiến thức
- Biết một số khái niệm như: tên, tên chuẩn, tên dành riêng, …
2 Kỹ năng
- Phân biệt được tên chuẩn với tên dành riêng và tên do người lập trình đặt
- Nhớ các quy tắc đặt tên hằng và biến
- Biết đặt tên đúng, nhận biết tên sai
3 Thái độ
- Ý thức được tầm quan trọng của môn học và có thái độ học tập nghiêm túc, luôn tự tìm hiểu học tập
II CHUẨN BỊ
1 Gv: Giáo án, máy chiếu, máy tính, phòng chiếu hoặc bảng
2 Hs: Hiểu kiến thức ở bài 1, đọc trước SGK bài 2
III PHƯƠNG PHÁP
- Thuyết trình, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề
IV NỘI DUNG
1 Ổn định lớp:
+ Chào thầy cô
+ Cán bộ lớp báo cáo sỉ số
+ Chỉnh đốn trang phục
2 Kiểm tra bài cũ
Câu 1: Thế nào là lập trình, ngôn ngữ lập trình?
Câu 2: Chương trình dịch là gì? Có mấy loại chương trình dịch?
3 Bài mới
Hoạt động 1: Các thành phần của ngôn ngữ lập trình GV: Các ngôn ngữ lập trình nói chung
thường có chung một số thành phần như:
Dùng những ký hiệu nào để viết chương
trình, viết theo quy tắc nào, viết như vậy có
ý nghĩa là gì? Mỗi ngôn ngữ lập trình có
một quy định riêng về những thành phần
này
Ví dụ: Bảng chữ cái của các ngôn ngữ lập
trình khác nhau có sự khác nhau Chẳng hạn
ngôn ngữ Pascal không sử dụng dấu ! nhưng
ngôn ngữ C++ lại sử dụng ngôn ngữ này
- Cú pháp các ngôn ngữ lập trình khác nhau
cũng khác nhau, ngôn ngữ Pascal dùng cặp
từ Begin – End để gộp nhiều lệnh thành 1
lệnh nhưng C++ lại dùng cặp kí hiệu {}
1.Các thành phần cơ bản:
- Mỗi ngôn ngữ lập trình thường có 3 thành phần cơ bản là : bảng chữ cái, cú pháp và ngữ nghĩa
a.Bảng chữ cái: Là tập các ký hiệu dùng
để viết chương trình
-Trong ngôn ngữ Pascal bảng chữ cái gồm: Các chữ cái trong bảng chữ cái tiếng Anh, các chữ số 0 9 và một số ký tự đặc biệt (xem trong SGK)
b.Cú pháp: Là bộ quy tắc dùng để viết
chương trình
Trang 5Ví dụ: Xét 2 biểu thức:
A + B (1) A, B là các số thực
I + J (2) I, j là các số nguyên
Khi đó dấu + trong (1) sẽ là cộng hai số
thực, trong (2) là cộng hai số nguyên
- Mỗi ngôn ngữ khác nhau cũng có cách xác
định ngữ nghĩa khác nhau
HS: Lắng nghe, ghi chép.
GV: Đưa ra ví dụ ngôn ngữ tự nhiên cũng
có bảng chữ cái, ngữ pháp (cú pháp) và
nghĩa của câu, từ
c Ngữ nghĩa: Xác định ý nghĩa thao tác
cần thực hiện ứng với tổ hợp ký tự dựa vào ngữ cảnh của nó
- 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 của các tổ hợp ký tự trong chương trình
- Lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập trình Chương trình không còn lỗi cú pháp thì mới có thể dịch sang ngôn ngữ máy
- Lỗi ngữ nghĩa được phát hiện khi chạy chương trình
Hoạt động 2: Một số khái niệm GV: Trong các ngôn ngữ lập trình nói
chung, các đối tượng sử dụng trong chương
trình đều phải đặt tên để tiện cho việc sử
dụng Việc đặt tên trong các ngôn ngữ khác
nhau là khác nhau, có ngôn ngữ phân biệt
chữ hoa, chữ thường, có ngôn ngữ không
phân biệt chữ hoa, chữ thường
GV: Giới thiệu cách đặt tên trong ngôn ngữ
cụ thể Pascal
Ví dụ :
Tên đúng: a, b, c, x1, x2, _ten …
Tên sai: a bc,2x, a&b …
GV: Ngôn ngữ nào cũng có 3 loại tên cơ
bản này nhưng tùy theo ngôn ngữ mà các
tên có ý nghĩ khác nhau trong các ngôn ngữ
- Trong ngôn gnữ Turbo Pascal tên là một dãy liên tiếp không qúa 127 ký tự bao gồm các chữ cái, chữ số và dấu gạch dưới nhưng phải bắt đầu bằng chữ cái hoặc dấu gạch dưới
- Trong Free Pascal, tên có thể có tối đa
Trang 6o Trong khi soạn thảo chương trình, các
ngôn ngữ lập trình thường hiển thị các
tên dành riêng với một màu chữ khác
hẳn với các tên còn lại giúp người lập
trình nhận biết được tên nào là tên dành
riêng (từ khóa) Trong ngôn ngữ Pascal,
từ khóa thường hiển thị bằng màu
trắng
GV: Mở một chương trình viết bằng Pascal
để học sinh quan sát cách hiển thị của một
số từ khóa trong chương trình
- Các ngôn ngữ lập trình thường cung
cấp một số đơn vị chương trình có sẵn
trong các thư viện chương trình giúp
người lập trình có thể thực hiện được
nhanh một số thao tác thường dùng
- Giáo viên chỉ cho học sinh một số tên
chuẩn trong ngôn ngữ Pascal
GV: Đưa ra ví dụ: Để viết chương trình
giải phương trình bậc hai ta cần khai báo
- Hằng thường có 2 loại, hằng được đặt
tên và hằng không được đặt tên Hằng
không được đặt tên là những giá trị viết
trực tiếp khi viết chương trình Mỗi
ngôn ngữ lập trình có một quy định về
cách viết hằng riêng.Hằng được đặt tên
cũng có cách đặt tên cho hằng khác
nhau
- Biến là đối tượng được sử dụng nhiều
nhất trong khi viết chương trình Biến
là đại lượng có thể thay đổi được nên
thường được dùng để lưu trữ kết qủa,
làm trung gian cho các tính toán,…Mỗi
loại ngôn ngữ có những loại biến khác
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 được gọi là từ khóa
- Các tên trong chương trình không được trùng nhau
b Hằng và biến
Hằng: Là các đại lượng có giá trị không
đổi trong quá trình thực hiện chương trình
- Các ngôn ngữ lập trình thường có:
+ Hằng số học : số nguyên hoặc số thực.+ Hằng xâu : là chuỗi ký tự đặt trong d6áu nháy “ hoặc ””
+ Hằng Logic : là các giá trị đúng hoặc sai
Trang 7nhau và cách khai báo cũng khác nhau.
- Khi viết chương trình, người lập trình
thường có nhu cầu giải thích cho những
câu lệnh mình viết, để khi đọc lại được
thuận tiện hoặc người khác đọc có thể
hiểu được chương trình mình viết, do
vậy các ngôn ngữ lập trình thường cung
cấp cho ta cách để đưa các chú thích
vào trong chương trình
- Ngôn ngữ khác nhau thì cách viết chú
thích cũng khác nhau
GV: Mở một chương trình Pascal đơn giản
có chứa các thành phần là các khái niệm của
bài học, nếu không có máy để giới thiệu thì
có thể sử dụng bản in sẵn khổ lớn chỉ cho
học sinh từng khái niệm được thể hiện trong
chương trình
- Biến phải khai báo trước khi sử dụng
c Chú thích
- Trong khi viết chương trình có thể viết các chú thích cho chương trình Chú thích không làm ảnh hưởng đến chương trình
Trong Pascal chú thích được đặt trong { và } hoặc (* và *)
Trong C++ Chú thích đặt trong /* và */
4 Cũng cố
Nhắc lại một số khái niệm mới
Cho bài tập về nhà
V PHỤ LỤC
………
………
………
………
………
………
………
………
BÀI TẬP
I MỤC ĐÍCH, YÊU CẦU
1 Kiến thức
Trang 8- Cũng cố lại kiến thức về ngôn ngữ lập trình, chương trình dịch
- Biết ngôn ngữ lập trình có 3 thành phần cơ bản là: bảng chữ cái, cú pháp và ngữ nghĩa
2 Kỹ năng
- Biết các thành phần cơ bản của Pascal: Bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa), hằng và biến Quy tắc đặt tên trong Pascal, biết đặt tên đúng
- Phân biệt được tên, hằng và biến
- Biết một trong những nhiệm vụ quan trọng của chương trình dịch là phát hiện lỗi cú pháp của chương trình nguồn
3 Thái độ
- Nghiêm túc, tích cực trong học tập
II CHUẨN BỊ
1 Gv: Giáo án, máy chiếu, máy tính, phòng chiếu hoặc bảng
2 Hs: Học bài cũ, đọc trước SGK bài mới
III PHƯƠNG PHÁP
- Thuyết trình, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề
IV NỘI DUNG
Gv:Trước khi giải bài tập trong
SGK, các em tự ôn lại một số kiến
thức mà chúng ta đã học ở các bài
trước dựa trên yêu cầu của câu hỏi
trang 13 SGK
Đặt câu hỏi số 1: Tại sao người
ta phải xây dựng các ngôn ngữ
Đặt câu hỏi 2: Chương trình
dịch là gì? Tại sao cần phải có
chương trình dịch?
Hs: Suy nghĩ, trả lời câu hỏi, cho ví
dụ
Câu 1:
- Ngôn ngữ bậc cao gần với ngôn ngữ tự nhiên hơn, thuận
tiện cho đông đảo người lập trình
- Chương trình viết bằng ngôn ngữ bậc cao nói chung
không phụ thuộc vào phần cứng máy tính và một chương trình có thể thực hiện trên nhiều máy tính khác nhau
- Chương trình viết bằng ngôn ngữ bậc cao dễ hiểu, dễ hiệu
chỉnh và dễ nâng cấp
- Ngôn ngữ bậc cao 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ạng, thuận tiện cho mô tả thuộc toán
Câu 2:
- Chương trình dịch là chương trình đặc biệt, có chức năng
chuyển đổi chương trình được viết trên ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy tính
cụ thể
Chương trình nguồn -> Chương trình dịch -> Chương trình
Trang 9Gv:Đặt câu hỏi 3: Biên dịch và
thông dịch khác nhau như thế nào?
Hs: Suy nghĩ, trả lời, giải thích từng
câu hỏi,
Gv: Phân tích câu trả lời của học
sinh
Gv:
Đặt câu hỏi 4: Hãy cho biết các
điểm khác nhau giữa tên dành
riêng và tên chuẩn?
- Gọi hs trả lời và cho ví dụ
Hs: Suy nghĩ, trả lời, giải thích từng
câu hỏi,
Gv: Phân tích câu trả lời của học
sinh
Gv: Đặt câu hỏi 5: Hãy tự viết ra
ba tên đúng theo quy tắc của Pascal
- Gọi 3 học sinh lên bảng cho ví
dụ về tên do người lập trình đặt.
Hs: Suy nghĩ trả lời
Gv: Nhận xét, sửa chữa, góp ý.
Gv: Đặt câu hỏi 6: Hãy cho biết
những biểu diễn nào dưới đây
không phải là biểu diễn hằng trong
Pascal và chỉ rõ trong từng trường
- Trình biên dịch: duyệt, kiểm tra, phát hiện lỗi, xác định
chương trình nguồn có dịch được không? dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ lại để sử dụng về sau khi cần thiết
- Trình thông dịch lần lượt dịch từng câu lệnh ra ngôn ngữ
máy rồi thực hiện ngay câu lệnh vừa dịch được hoặc báo lỗi nếu không dịch được
Câu 4:
- Tên dành riêng không đượ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.
VD:
Tên dành riêng trong Pascal: program, uses, const, type, var,
begin, end
Tên chuẩn: trong Pascal abs, integer.
Câu 5: Gợi ý: Trong Pascal tên (do người lập trình đặt) được
đặt tuân theo các quy tắc sau:
- Chỉ bao gồm chữ cái, chữ số và dấu gạch dưới;
- Không bắt đầu bằng chữ số;
- Độ dài theo quy định của chương trình dịch (TP không
quá 127 kí tự, Free Pascal không quá 255 kí tự)
- Tuy nhiên, không nên đặt tên quá dài hay quá ngắn mà
nên đặt sao cho gợi ý nghĩa đối tượng mang tên đó
Câu 6:
-Những biểu diễn sau đây không phải là hằng trong Pascal:6,23 dấu phẩy phải thay bằng dấu chấm;
A20 là tên chưa rõ giá trị;
4+6 là biểu thức hằng trong Pascal chuẩn cũng được coi là hằng trong Turbo Pascal;
‘TRUE’ là hằng xâu nhưng không là hằng lôgic
4 Cũng cố
-Ôn lại các khái niệm, các tên & Chuẩn bị bài Cấu trúc chương trình
Chương 2: 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
1 Kiến thức
- Cấu trúc chung của một chương trình và cấu trúc chung của một chương trình Pascal
Trang 102 Kỹ năng
- Hiểu và phân biệt các thành phần trong cấu trúc của một chương trình
- Nhận biết được các thành phần của một chương trình đơn giản
3 Thái độ
- Ý thức được tầm quan trọng của môn học và có thái độ học tập nghiêm túc, luôn tự tìm hiểu học tập
II CHUẨN BỊ
1 Gv: Giáo án, máy chiếu, máy tính, phòng chiếu hoặc bảng
2 Hs: Học bài cũ, đọc trước SGK bài mới
III PHƯƠNG PHÁP
- Thuyết trình, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề
IV NỘI DUNG BÀI GIẢNG
1 Ổn định lớp:
+ Chào thầy cô
+ Cán bộ lớp báo cáo sỉ số
+ Chỉnh đốn trang phục
2 Kiểm tra bài cũ
Câu 1: Nêu các thành phần của ngôn ngữ lập trình?
Câu 2: Trong Pascal có máy loại tên?nêu quy tắc đặt tên?
3 Bài mới
Hoạt động 1: Cấu trúc chung của chương trình
GV : Thuyết trình đưa ra cấu trúc chung của
Hoạt động 2: Các thành phần của chương trình
GV : Phần khai báo sẽ báo cho máy biết
chương trỉnh sẽ sử dụng những tài nguyên nào
của máy
GV : Mỗi ngôn ngữ lập trình có cách khai báo
khác nhau và tùy thuộc vào ngôn ngữ mà ta cần
tìm hiểu xem trong chương trình ta cần khai
báo những gì
GV : Thư viện chương trình thường chứa
những đoạn chương trình lập sẵn giúp người
lập trình thực hiện một số công việc thường
dùng, các đoạn chương trìnhnày cực kỳ hữu ích
2 Các thành phần của chương trình
a.Phần khai báo
- Có thể khai báo tên chương trình, hằng được đặ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 do người lập trình tự đặt theo đúng quy tắc đặt tên
Ví dụ : Program Bai_1;
Program Tong;
Khai báo thư viện:
- Trong ngôn gnữ Pascal :
Trang 11cho gnười lập trình, nhất là trong những ngôn
ngữ lập trình tiên tiến hiện nay
GV : Lấy một ngôn ngữ lập trình mới nhất
hiện nay, chẳng hạn Visual Basic.NET, lấy một
số lệnh để học sinh thấy được sự tiện dụng khi
sử dụng thư viện
GV : Khai báo hằng là việc đặt tên cho hằng để
tiện khi sử dụng và tránh việc phải viết lặp lại
nhiều lần cùng một hằng trong chương trình
Khai báo hằng còn tiện lợi hơn khi cần thay đổi
giá trị của nó trong chương trình
GV : Lập trình bằng ngôn ngữ nào cần tìm
hiểu cách khai báo hằng của ngôn ngữ ấy
GV : Nếu có thể giáo viên giải thích để học
sinh có thể hiểu được rằng, khai báo biến là xin
máy tính cấp cho chương trình một vùng nhớ
để lưu trữ và xử lý thông tin trong bộ nhớ
trong
GV : Mỗi ngôn ngữ lập trình có cách tổ chức
chương trình khác nhau, thường thì phần thân
chứa các câu lệnh của chương trình
Ví dụ: Trong Turbo Pascal : Uses CRT,
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 trong chương trình đều phải khai báo để chưoyng trình dịch biết để
xử lý và lưu trữ
- Biến chỉ mang một giá trị gọi là biến đơn(Khai báo biến sẽ trình bày ở bài 5)
Phần thân chương trình :
- Thân chương trình thường là nơi chứa toàn
bộ các câu lệnh của chương trình hoặc lời gọi chương trình con
- Thân chương trình thường có cặp dấu hiệu bắt đầu và 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: Chương trình đơn giản
GV : Cho học sinh quan sát 2 chương trình
trong 2 ngôn ngữ khác nhau là Pascal và C++
HS : Quan sát và nhận xét về cách viết của hai
chương trình trong 2 ngôn ngữ khác nhau
Thông qua đó học sinh cần nhận ra : hai
3 Ví dụ chương trình đơn giản
Xét hai chương trình đơn giản trong 2 ngôn ngữ khác nhau sau đây :
Chương trình 1 : Trong ngôn ngữ Turbo Pascal
Trang 12chương trình cùng thực hiện một công việc
nhưng viết bằng hai ngôn ngữ khác nhau nên
hệ thống các câu lệnh trong chương trình cũng
khác nhau
Có thể thêm câu lệnh hiển thị một xâu vào
trong chương trình Pascal để thể hiện rõ hơn là
nếu muốn đưa ra câu thông báo thì ta có thể sử
dụng lệnh Writeln và xâu được để trong dấu
nháy đơn
Program VD;
Begin Write(‘Chao cac ban’);
}
4 Cũng cố
Nhắc lại một số khái niệm mới
Cho một chương trình mẫu về nhà yêu cầu học sinh phân biệt và chỉ rõ từng thành phần của chương trình đó.
Bài 4: MỘT SỐ KIỂU DỮ LIỆU CHUẨN
Bài 5: KHAI BÁO BIẾN
I MỤC ĐÍCH YÊU CẦU
1 Kiến thức
- Biết được cấu trúc chung của một chương trình
- Biết được một số kiểu dữ liệu chuẩn: nguyên, ký tự, logic, thưc
- Biết đực cấu trúc chung của khai báo biến
2 Kỹ năng
- Sử dụng được kiểu dữ liệu và khai báo biến để viết được một chương trình đơn giản
- Hiểu được khai báo biến Khai báo đúng, nhận biết được khai báo sai
3 Thái độ
- Ý thức được tầm quan trọng của môn học và có thái độ học tập nghiêm túc, luôn tự tìm hiểu học tập
II CHUẨN BỊ
1 Gv: Giáo án, máy chiếu, máy tính, phòng chiếu hoặc bảng
2 Hs: Học bài cũ, đọc trước SGK bài mới
III PHƯƠNG PHÁP
- Thuyết trình, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề
IV NỘI DUNG
1 Ổn định lớp:
+ Chào thầy cô
+ Cán bộ lớp báo cáo sỉ số
+ Chỉnh đốn trang phục
2 Kiểm tra bài cũ
Câu 1: Nêu cấu trúc chung của chương trình? Cách khai báo các thành phần của chương trình?
3 Bài mới
Hoạt động 1: Một số kiểu dữ liệu chuẩn
GV : Vấn đáp: Khi cần viết chương trình
quản lý học sinh ta cần sử lý thông tin ở
những dạng nào ?
Trang 13HS : Suy nghĩ, trả lời câu hỏi của GV
GV : Phân tích câu trả lời của học sinh,
đưa ra một vài dạng thông tin như sau :
- Họ tên học sinh là những thông tin
- Ngôn ngữ lập trình nào cũng đưa ra
một số kiểu dữ liệu chuẩn đơn giản,
từ những kiểu đơn giản này ta có thể
xây dựng thành những kiểu dữ liệu
phức tạp hơn
- Kiểu dữ liệu nào cũng có miền giới
hạn của nó, máy tính không thể lưu
trữ tất cả các số trên trục số nhưng nó
có thể lưu trữ với độ chính xác cực
cao
- Tùy thuộc vào ngôn ngữ lập trình mà
tên của các kiểu dữ liệu khác nhau và
miền giá trị của các kiểu dữ liệu này
cũng khác nhau
- Với mỗi kiểu dữ liệu người lập trình
cần ghi nhớ tên kiểu, miền giá trị và
số lượng ô nhớ để lưu một giá trị
mã thập phân tương ứng Để lưu các
giá trị là kí tự thì phải lưu mã thập
phân tương ứng của nó
GV : Đặt câu hỏi: Em biết những bảng
mã nào?
HS : HS sẽ đưa ra một số bảng mã nhưng
GV chú ý các em NNLT Pascal chỉ sử
dụng bảng mã ASCII cho kiểu kí tự
- Kiểu logic là kiểu thường chỉ có 2 giá
trị đúng – sai Mỗi ngôn ngữ khác
NNLT Pascal có một số kiểu dữ liệu chuẩn sau :
2 Kiểu thực
- Có nhiều kiểu cho giá trị là số thực nhưng hay dùng một số kiểu sau :
Tên kiểu Miền giá trị Số Byte
REAL 0 hoặc nằm trong (10-38
- Tên kiểu: CHAR
- Miền giá trị: Là các kí tự trong bảng mã ASCII gồm 256 ký tự
- Mỗi ký tự có 1 mã tương ứng từ 0 đến 255
- Các kí tự có quan hệ so sánh, việc so sánh dựa trên mã của từng kí tự
Ví dụ: Trong bảng mã ASCII, các kí tự trong bảng
chữ cái tiếng Anh xếp liên tiếp vối nhau, các chữ số cũng xếp liên tiếp, cụ thể: A mã 65; a mã 97, 0 mã 48
4 Kiểu logic
- Tên kiểu : Boolean
- Miền giá trị : Chỉ có 2 giá trị là TRUE (Đúng) hoặc FALSE (Sai)
- Một số ngôn ngữ có cách mô tả các giá trị logic bằng những cách khác nhau
- Khi viết chương trình bằng ngôn ngữ lập trình
Trang 14nhau lại có cách mô tả kiểu logic khác
nhau, Pascal dùng True – False nhưng
một số ngôn ngữ khác lại mô tả bằng 0
– 1,… Có ngôn ngữ lại không có kiểu
logic mà người lập trình phải tự tìm
cách để thể hên những giá trị dạng
này
nào thì cần tìm hiểu đặc trưng của các kiểu dữ liệu của ngôn ngữ đó
Hoạt động 2: Khai báo biến
GV : Khai báo biến là chương trình báo
cho máy biết phải dùng những tên nào
cần khai báo các biến như sau:
Var a, b, c, x1, x2, delta : real;
- Để tính chu vi và diện tích tam giác
cần khai báo các biến sau:
Var a, b, c, p, s, cv: Real;
Trong đó :
a, b, c: dùng để lưu độ dài 2 cạnh
của tam giác
p: nửa chu vi tam giác
cv, s: chu vi và diện tích tam giác
GV : Đặt câu hỏi: Khi khai báo biến cần
chú ý những điều gì ?
HS : Suy nghĩ trả lời câu hỏi
GV : Phân tích câu trả lời của học sinh.
GV: Lấy ví dụ về khai báo biến giải
phương trình bậc 2, giải hệ phương trình
bậc nhất, tính diên tích tam giác khi biết 3
cạnh
GV: Phân tích ví dụ đầu, 2 ví du sau cho
học sinh phân tích và tự khai báo
GV: Phân tích và chữa lại
- Trong ngôn ngữ Pascal, biến đơn được khai báo như sau :
Var <danh sách biến> : <kiểu số liệu>
+ Sau Var có thể khai báo nhiều danh sách biến có
những kiểu dữ liệu khác nhau
+ Cần đặt tên biến sao cho gợi nhớ đến ý nghĩa của nó
+ Không nên đặt tên quá ngắn hay quá dài, dễ dẫn tới mắc lỗi hoặc hiểu nhầm
Khai báo biến cần quan tâm đến phạm vi giá trị của
nó
Ví dụ 1:
Khai báo biến giải phương trình ax2+bx+c=0(a<>0)
Var a, b, c, x1, x2, Delta :Real;
Ví du 2: Khai báo biến giải hệ phương trình bậc
nhất
a1x+b1y=c1
a2x+b2y=c2
{Phương pháp thông thường}
Var a1, a2, b1, b2, c1, c2, x, y:Real;
Trang 15dài 3 cạnh
Var a, b, c, p, S: Real;
4 Cũng cố
Nhắc lại các kiểu dữ liệu đơn giản hay dùng
Cho về nhà một số ví dụ về việc lưu trữ trong cuộc sống và yêu cầu học sinh tìm kiểu dữ liệu tương ứng
Bài 6: PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN
I MỤC ĐÍCH, YÊU CẦU
1 Kiến thức
- Biết được các phép toán thông dụng trong ngôn ngữ lập trình
- Biết diễn đạt một số hình thức trong ngôn ngữ lâp trình
- Biết được chức năng của câu lệnh gán
- Biết được cấu trúc câu lệnh gán và một số hàm chuẩn trong ngôn ngữ lập trình Pascal
1 Gv: Giáo án, máy chiếu, máy tính, phòng chiếu hoặc bảng
2 Hs: Học bài cũ, đọc trước SGK bài mới
III PHƯƠNG PHÁP
- Thuyết trình, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề
IV NỘI DUNG
1 Ổn định lớp:
+ Chào thầy cô
+ Cán bộ lớp báo cáo sỉ số
+ Chỉnh đốn trang phục
2 Kiểm tra bài cũ
Câu 1: Nêu cú pháp khai báo biến trong Pascal? Cho ví dụ.
3 Bài mới
Hoạt động 1: Phép toán, biểu thức số học
GV : Dẫn dắt vào bài: Trong khi viết
chương trình ta thường phải thực hiện các
tính toán, thực hiện các so sánh để đưa ra
quyết định xem làm việc gì? Vậy trong
chương trình ta viết thế nào? Có giống với
ngôn ngữ tự nhiên hay không? Tất cả các
ngôn ngữ có sử dụng chúng một cách
giống nhau không ?
GV : Toán học có những phép toán nào ?
HS : Đưa ra một số phép toán thường dùng
trong toán học
GV : Chúng có dùng được trong các ngôn
ngữ lập trình ?
- Ngôn ngữ lập trình nào cũng sử dụng đến phép toán, biểu thức, câu lệnh gán
- Ta xét các khái niệm này trong ngôn ngữ Pascal
1 Phép toán
NNLT Pascal sử dụng một số phép toán sau:
- Với số nguyên : +, -, * (nah6n), div (chia
lấy nguyên), mod (chia lấy dư)
- Với số thực : +, -, *, / (chia)
- Các phép toán quan hệ <, <= , >, >=, =,
Trang 16Chỉ một số phép dùng được, một số phép
phải xây dựng từ các phép toán khác
VD : Phép lũy thừa không phải ngôn ngữ
nào cũng viết được
GV : Mỗi ngôn ngữ khác nhau lại có cách
kí hiệu phép toán khác nhau
GV : Trong toán học, biểu thức là gì?
HS : Đưa ra khái niệm.
GV : Đưa ra khái niệm biểu thức trong lập
trình
GV: Cách viết các biểu thức này trong lập
trình có giống cách viết trong toán học ?
HS : Đưa ra ý kiến của mình
GV : Phân tích ý kiến của học sinh.
GV : Đưa ra cách viết biểu thức và thứ tự
thực hiện phép toán trong lập trình
GV : Cách viết biểu thức phụ thuộc cú
pháp từng ngôn ngữ lập trình
Đưa ra một số biểu thức toán học và yêu
cầu các em viết chúng trong ngôn ngữ
Pascal
HS : Gọi một vài học sinh lên bảng viết.
GV : Đặt câu hỏi, muốn tính X2 ta viết thế
giản, người ta xây dựng sẵn một số đơn vị
chương trình trong các thư viện chương
trình giúp người lập trình tính toán nhanh
các giá trị thông dụng
GV : Với các hàm chuẩn, cần quan tâm
đến kiểu của đối số và kiểu của giá trị trả
về
<>: Cho kết qủa là một giá trị logic (True hoặc False)
- Các phép toán Logic : NOT (phủ định),
OR (hoặc), AND (và): thường dùng để kết hợp nhiều biểu thức quan hệ với nhau
2 Biểu thức số học
- Là một dãy các phép toán +, -, *, / Div và Mod từ các hằng, biến kiểu số và các hàm
- Dùng cặp dấu () để qui định trình tự tính toán
Thứ tự thực hiện các phép toán :
- Trong ngoặc trước, ngoài ngoặc sau
- Nhân chia trước cộng trừ sau
- Giá trị của biểu thức có kiểu là kiểu của biến hoặc hằng có miền giá trị lớn nhất trong biểu thức
3 Hàm số học chuẩn
- Các ngôn ngữ lập trình thường cung cấp sẵn một số hàm số học để tính một số giá trị thông dụng
- Cách viết : Tên_hàm (Đối số)
- -Kết qủa của hàm phụ thuộc vào kiểu của đối số
- Đối số là một hay nhiều biểu thức số học đặt trong dấu ngoặc () sau tên hàm
- Bản thân hàm cũng có thể coi là biểu thức
số học và có thể tham gia vào biểu thức như toán hạng bất kỳ
Bảng một số hàm chuẩn:
(Theo dõi SGK và màn hình)
4 Biểu thức quan hệ
Có dạng như sau:
Trang 17VD : Sinx thì được đo bằng độ hay
radian ?
GV : Trong lập trình thường ta phải so
sánh hai giá trị nào đó trước khi thực hiện
lệnh nào đó Biểu thức quan hệ còn được
gọi là biểu thức so sánh 2 giá trị, cho kết
quả là đúng hoặc sai (logic)
VD : 3>5: Cho kết quả sai
GV : Đặt câu hỏi, muốn so sánh nhiều điều
kiện đồng thời làm thế nào?
HS : Đưa ra ý kiến của mình (và, hoặc,…)
Đưa ra ví dụ và cách viết đúng trong ngôn
- Biểu thức 1 và biểu thức 2 phải cùng kiểu
- Kết quả của biểu thức quan hệ là TRUE hoặc FALSE
- Biểu thức điều kiện 0 d” X d’ 5 được viết như sau:
GV : Phân tích câu trả lời của học sinh sau
đó tổng hợp lại: cần chú ý đến kiểu của
biến và kiểu của biểu thức
GV : Minh họa một vài lệnh gán bằng một
ví dụ trực quan trên bảng hoặc trên màn
hình
6 Câu lệnh gán
- Lệnh gán là cấu trúc cơ bản nhất của mọi ngôn ngữ lập trình, thường dùng để gán giá trị cho biến
Cấu trúc:
<tên biến> := <biểu thức>;
- Trong đó biểu thức phải phù hợp với tên biến Có nghĩa là kiểu của tên biến phải cùng kiểu với kiểu của biểu thức hoặc phải bao hàm kiểu của biểu thức
- Hoạt động của lệnh gán : Tính giá trị của biểu thức sau đó ghi giá trị đó vào tên biến
Trang 18Trong đó : lệnh thứ 3 tăng giá trị của I một đơn
vị, lệnh thứ 4 giảm giá trị biến J hai đơn vị
4 Cũng cố
- Nhắc lại một số khái niệm mới
- Cho bài tập về nhà, ngoài bài tập có trong sách có thể cho thêm nhiều biểu thức logic để học sinh về nhà tính toán tìm giá trị của nó, cho học sinh một số biểu thức trong toán học và yêu cầu viết nó trong tin học (NNLT); có thể cho thêm bài theo cột, một cột là biểu thức toán học, một cột là biểu thức trong tin học tương ứng và tìm chỗ sai của biểu thức so với trong toán
V PHỤ LỤC
BÀI TẬP
I MỤC ĐÍCH, YÊU CẦU
1 Kiến thức
- Củng cố lại hco học sinhnhững kiến thức liên quan đén tổ chức rẽ nhánh và lặp : Cấu trúc lặp, sơ
đồ thực hiện, sự thực hiện của máy khi gặp lệnh lặp
1 Chuẩn bị của giáo viên
- Máy chiếu Projector, máy vi tính để giới thiệu ví dụ minh họa, một số chương trình mẫu
2 Chuẩn bị của học sinh
2 Kiểm tra bài cũ
Kiểm tra khi giảng bài
3 Bài mới
Hoạt động 1: Nhắc lại kiến thức đã học về tổ hcức rẽ nhánh và lặp
a Mục tiêu:
- Học sinh nắm được cấu trúc rẽ nhánh và lặp, sơ đồ thực hiện của máy Phân được được sự giống
và khác nhau giữa lệnh lặp For và lệnh lặp While
Trang 19For <biến đếm>:=<giá trị đầu> downto <giá trị cuối> Do <lệnh>;
- Lặp While
While <điều kiện> Do <lệnh>;
c Các bước tiến hành:
Gv Yêu cầu học sinh nhắc lại cấu trúc rẽ
nhánh
Hs Độc lập suy nghĩ để trả lời câu hỏi
Gv: Cũng cố và nhắc lại
- Chiếu chương trình tìm giá trị lớn nhất của
hai số, trong đó có sử dụng câu lệnh rẽ
For_do: biết trước số lần lặp.
While_do: không biết trước số lần lặp.
Hoạt động 2: rèn luyện kỹ năng vận dụng tổ chức lặp.
Trang 20a mục tiêu:
Học sinh biết sử dụng lệnh lặp để giải quyết một bài toán cụ thể Linh hoạt trong việc chọn lựa cấu trúc lặp
b Ví dụ
Ví dụ 1: Viết chương trình tính giá trị của biểu thức Y=
Ví dụ 2: Viết chương trình tính tổng Xn=13+33+…+(2n+1)3 cho tới khi Xn không nhỏ hơn 2 x
109
c Các bước tiến hành
Gv Tìm hiểu bài tập 1 và giải quyết
- Chiếu nội dung ví dụ 1 lên bảng
- Có thể triển khai biểu thức Y thành tổng
các số hạng như thế nào?
Hs Suy nghĩ trả lời
Gv Dùng câu lệnh lặp nào?
Hs Thảo luận và làm việc theo nhóm
Báo cáo kết quả theo nhóm
Gv Cho học sinh tìm hiểu ví dụ 2, gợi ý và
yêu cầu học sinh về nhà làm bài
- dùng câu lệnh lặp với số lần không biết
trước
Y=1/2+2/3+3/4+…+50/51
Var n,i :integer;
Begin Y:=0;
For i:=1 to 50 do Y:=Y+n/(n+1);
Write(Y);
readln
End.
4 cũng cố
- Nhắc lại cấu trúc câu lệnh rẽ nhánh và câu lệnh lặp
- Yêu cầu học sinh làm các bài tập còn lại
- Biết được ý nghĩa của các thủ tục vào\ra chuẩn đối với lập trình
- Biết được cấu trúc chung của thủ tục vào\ra trong ngôn ngữ lập trình pascal
- Biết được các bước để hoàn chỉnh một chương trình
- Biết được các file chương trình cơ bản của Turbo Pascal 7.0
2 Kỹ năng
- Viết đúng lệnh vào\ra dữ liệu
- Biết nhập đúng dữ liệu khi thực hiện chương trình
- Biết khởi động và thoát khỏi hệ soạn thảo Turbo Pascal
- Soạn thảo được một chương trình vào máy
- Dịch được chương trình để phát hiện lỗi cú pháp
- Thực hiện chương trình để nhập dữ liệu và thu kết quả, tìm lỗi của thuật toán và sủa lỗi
3 Thái độ
Trang 21- Ý thức được tầm quan trọng của môn học và có thái độ học tập nghiêm túc, luôn tự tìm hiểu học tập
II CHUẨN BỊ
1 Gv: Giáo án, máy chiếu, máy tính, phòng chiếu hoặc bảng
2 Hs: Học bài cũ, đọc trước SGK bài mới
III PHƯƠNG PHÁP
- Thuyết trình, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề
IV NỘI DUNG
1 Ổn định lớp:
+ Chào thầy cô
+ Cán bộ lớp báo cáo sỉ số
+ Chỉnh đốn trang phục
2 Kiểm tra bài cũ
Câu 1: Kể tên và cho ví dụ về biểu thức số học?
Câu 2: Nêu cú pháp câu lệnh gán và cho ví dụ
3 Bài mới
Hoạt động 1: Thủ tục nhập dữ liệu từ bàn phím GV: Khi sử dụng các ứng dụng ta thường
nhập thông tin vào, như vậy bằng cách nào
ta nhập được thông tin nào khi lập trình?
Làm cách nào để nhập giá trị từ bàn
phím vào cho biến
GV: Diễn giải hoạt động của
READ/READLN, nêu sự khác nhau khi
dùng Read/Readln
GV: Mỗi ngôn ngữ có cach nhập thông tin
vào khác nhau
GV: Đưa ra hai ví dụ về chương trình có
nhập thông tin vào từ bàn phím
- Ta dùng thủ tục chuẩn READ hoặc READLN
có cấu trúc như sau:
READ/READLN(<biến 1>, …,<biến n>);
Ví dụ: Read(N);
Readln(a,b,c);
Chú ý : Khi nhập dữ liệu từ bàn phím READ và
READLN có ý nghĩa như nhau, thường hay dùng READLN hơn READLN luôn chờ gõ phím Enter.
Write(‘Moi ban nhap 3 so:’);
Readln(a, b, c);
Write(‘Ban vua nhap vao 3 so:, a, b, c);
Readln;
End
Trang 22sát, nhận xét về chương trình
Giải thích việc nhập giá trị cho nhiều
biến đồng thời
Có thể thay đổi lệnh Readln(a, b, c) trong
ví dụ 2 thánh Read(a, b, c), chạy chương
trình để học sinh thấy sự khác nhau khi sử
dụng hai lệnh này
GV : Ta thấy ở ví dụ 2 của phần 1 việc ghi
ra dữ liệu thì 3 giá trị a, b, c dính liền vào
nhau và người sử dụng không thể phân biệt
được giá trị của từng biến Vậy làm thế nào
và có những cách nào để hiển thị dữ liệu
theo ý muốn của người lập trình
Việc lập dữ liệu cho nhiều biến thì giá trị mỗi biến phải cách nhau ít nhất một dấu cách hoặc dấu Enter,máy sẽ gán giá trị cho các biến theo thứ
tự như trong lệnh tương ứng
Hoạt động 2: Thủ tục đưa dữ liệu ra màn hình
GV : Giới thiệu một số tập tin vần thiết để
Turbo Pascal có thể chạy được, hướng dẫn
các em cách khởi động Pascal trên máy
tính
Turbo.exe (file chạy)
Turbo.tpl (file thư viện)
Turbo.tph (file hướng dẫn)
GV : Giới thiệu một số thao tác thường
dùng khi soạn thảo chương trình trong môi
trường soạn thảo Turbo Pascal
GV : Thực hiện một vài lần các thao tác
này để các em nhận thấy mức độ tệin lợi
của nó khi soạn thảo cũng như chạy
chương trình
GV : Viết một chương trình ví dụ, thực
hiện các thao tác sửa lỗi…
Có thể lấy ví dụ yêu cầu người dùng nhập
vào năm sinh, trả ra kết quả là tuổi của
-Chạy chương trình: Ctrl + F9-Đóng cửa sổ chương trình: Alt + F3-Chuyển qua lại giữa các cửa sổ: F6-Xem lại màn hình kết qủa: Alt + F5-Thoát khỏi Turbo Pascal: Alt + X
4 Cũng cố:
- Biết được cấu trúc và ý nghĩa của câu lệnh nhập xuất
- Sử dụng được câu lệnh nhập xuất trong một số trường hợp đơn giản
- Về nhà học bài cũ và đọc bài mới
V PHỤ LỤC
Trang 23Tuần: 5 Ngày soạn:03/09/2011
BÀI TẬP VÀ THỰC HÀNH 1
I MỤC ĐÍCH, YÊU CẦU
1 Về kiến thức:
- Biết được một chương trình Pascal hoàn chỉnh
- Biết sử dụng một số dịch vụ chủ yếu của Pascal trong soạn thảo, lưu, dịch và thực hiện chương trình
2 Về kỹ năng:
- Viết được chương trình đơn giản, lưu được chương trình trên đĩa, dịch lỗi cú pháp, thực hiện và tìm lỗi thuật toán, hiệu chỉnh
- Bước đầu biết phân tích và hoàn thành một chương trình đơn giản trên Pascal hoặc Free Pascal
3 Về tư duy và thái độ:
- Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc
- Tự giác, tích cực và chủ động hoàn thành
II CHUẨN BỊ
1 Gv: Giáo án, máy chiếu, máy tính, phòng chiếu hoặc bảng
2 Hs: Học bài cũ, chuẩn bị bài thực hành trong SGK
III PHƯƠNG PHÁP
- Thuyết trình, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề
IV NỘI DUNG
Trang 243 Bài mới
Tiết 9
Hoạt động 1: Kiểm tra nội dung thực hành và khởi động máy.
- GV kiểm tra sự chuẩn bị nội dung thực hành của
học sinh
- HS để nội dung thực hành trước mặt
- GV hướng dẫn học sinh khởi động máy, và khởi
động chương trình Turbo Pascal hoặc Free Pascal
- Chý ý hướng dẫn của GV để khởi động máy và
chương trình Turbo Pascal hoặc Free Pascal
Hoạt động 2: Tìm hiểu một chương trình Pascal hoàn chỉnh.
- GV ghi chương trình Giai_PTB2 lên bảng
- GV yêu cầu học sinh đọc và gõ chương trình
Giai_PTB2 như trên bảng
- Học sinh quan sát trên bảng và độc lập gõ chương
trình vào máy
- GV yêu cầu học sinh thực hiện các nhiệm vụ sau:
+ Lưu chương trình bằng cách nhấn phím F2 với tên
PTB2.PAS.
+ Dịch và sửa lỗi cú pháp với tổ hợp phím Alt+F9.
+ Thực hiện chương trình với tổ hợp phím Ctrl+F9.
+ Nhập các giá trị 1; -3; và 2 Thông báo kết quả của
máy đưa ra
- Trở về màn hình soạn thảo bằng phím Enter.
- Tiếp tục thực hiện chương trình
Chương trình giải phương trình bậc hai:
write(‘x1 = ‘, x1 : 6 : 2, ’ ‘x2: = ‘, x2 : 6 : 2); readln
end.
Trang 25- Nhập các giá trị 1 ; 0 ; -2 Thông báo kết quả của
máy đưa ra
- Nhấn phím Ctrl+F9
Hs:
- Thông báo lỗi
Gv: Vì sao lại có lỗi xuất hiện? và sửa lại cho đúng
Hs: Suy nghĩ trả lời: do delta âm.
+ Sửa lại chương trình trên không dùng đến biến D
và thực hiện chương trình đã sửa
- Thông báo lỗi và cho biết vì sao: Do căn bậc hai
của một số âm
- Thông báo lỗi với lý do delta của pt là số âm
+ Thực hiện chương trình đã sửa với bộ dữ liệu 1 ; -
5 ; 6 Thông báo kết quả
+ Thực hiện chương trình với bộ dữ liệu 1 ; 1 ; 1
Thông báo kết quả
- Nhắc lại các bước khi hoàn thành một chương trình
- Phân tích một bài toán xác đinh I/O
Hoạt động 3: Rèn luyện thêm về kỹ năng lập trình cho học sinh
GV: yêu cầu học sinh hãy viết một chương trình
tính diện tích một tam giác khi biết độ dài ba cạnh
của nó
Trang 26Hs: Nghe và nhận nhiệm vụ.
- Phân tích theo yêu cầu của giáo viên
GV định hướng để học sinh phân tich bài toán.
+ Dữ liệu vào (Input)
+Diệu liệu ra (Output)
+ Thông báo kết quả cho giáo viên
- GV yêu cầu học sinh nhập dữ liệu và thông báo kết
+ p:= (a+b+c)/2S: = sqrt(sqr(p-a)*sqr(p-b)*sqr(p-c))
sqrt(sqr(p-a)*sqr(p-b)*sqr(p-Write();
Readln
End.
4 Cũng cố
Nhắc lại các bước khi hoàn thành một chương trình
+ Phân tích bài toán để xác định dữ liệu
vào/ ra
+ Xác định thuật toán
+ Soạn chương trình
+ Lưu chương trình+ Biên dịch chương trình+ Thực hiện và hiệu chỉnh chương trình
Trang 27………
………
Chương 3: CẤU TRÚC RẼ NHÁNH VÀ LẶP
Bài 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
- Học sinh nắm vững ý nghĩa và cú pháp của câu lệnh rẽ nhánh dạng khuyết và dạng đủ, hiểu được cách sử dụng câu lệnh ghép
2 Kĩ năng:
- Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản
- Viết được các lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ và áp dụng được để thể hiện thuật toán của một số bài toán đơn giản
3 Về tư duy và thái độ:
- Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc
Điều kiện Đ
Trang 282 Học sinh: học bài cũ, đọc và chuẩn bị bài mới.
2 Kiểm tra bài cũ:
Bài toán: cho 2 số nguyên a, b; tìm Max(a,b)
Yêu cầu: viết phần tên, phần khai báo, và câu lệnh nhập a, b
Nêu thuật toán tìm Max(a,b)
3 Bài mới
Hoạt động 1: Khái niệm rẽ nhánh
GV : Đưa ra ví dụ rồi cùng học sinh thảo
luận phương pháp giải quyết bài toán
- Nếu <0 thì phương trình vô nghiệm
- Nếu >=0 thì phương trình có nghiệm
- Như vậy tùy thuộc vào giá trị của mà
ta đưa ra vô nghiệm hay có nghiệm
- Hoặc có thể nói : Nếu < 0 thì phương trình vô nghiệm, ngược lại thì phương trình có nghiệm
=>Như vậy ta thấy một số mệnh đề có dạng+ Nếu … thì…
+ Nếu … thì… ngược lại thì Cấu trúc này được gọi là cấu trúc rẽ
Câu lệnh 2
Trang 29Đưa ra khái niệm rẽ nhánh trong lập
trình
Mỗi NNLT có cách thể hiện rẽ nhánh
khác nhau
nhánh
Các NNLT thường cung cấp các câu lệnh
để mô tả các cấu trúc rẽ nhánh như trên
GV : Đưa ra cấu trúc lệnh rẽ nhánh
trong Pascal Nhắc nhở học sinh đây là
cấu trúc quan trọng, nó sẽ được sử dụng
rất nhiều trong các chương trình sau này
GV : Lưu ý các em sau Then và sau Else
chỉ có một lệnh chương trình
GV : Với hai dạng này, dạng nào dùng
thuận tiện hơn ?
HS : Tìm câu trả lời, giáo viên gợi ý để
học sinh đưa ra được tùy trường hợp cụ
thể mà dùng dạng thiếu hay dạng đủ
Đưa ra các ví dụ có sử dụng lệnh rẽ
nhánh, nếu không có lệnh rẽ nhánh thì
không thể thực hiện được
GV : ở VD3: Cách nào nhanh hơn, tiện
- Điều kiện : Là biểu thức quan hệ Logic.
- Câu lệnh, câu lệnh 1, câu lệnh 2 là 1 câu
lệnh của Pascal
Ý nghĩa của các câu lệnh :
- Dạng thiếu : Nếu điều kiện đúng thì câu
lệnh được thực hiện, nếu điều kiện sai thì không thực hiện gì
- Dạng đủ : Nếu điều kiện đúng thì thực hiện
câu lệnh 1, nếu điều kệin sai thì thực hiện câu lệnh 2
VD 1 : If (X Mod 2 = 0) Then
WRITE(x,’La so chan’);
VD 2: If DELTA <0 Then
WRITE(‘PT Vo Nghiem’)
Else WRITE(‘PT co nghiem’);
VD 3: Tìm giá trị lớn nhất (max) của 2 số a
và b
Trang 30và số lệnh mà máy phải thực hiện.
GV : Trong câu lệnh If – Then muốn
thực hiện nhiều lệnh sau Then hay nhiều
lệnh sau Else làm thế nào ?
HS : Phát biểu ý kiến của mình.
GV : Khi đó ta cần gộp nhiều lệnh đó lại
và coi đó là một câu lệnh trong chương
trình Các ngôn ngữ lập trình thường có cấu
trúc để giúp ta thực hệin điều này
GV : Giới thiệu lệnh ghép của một vài
ELSE BEGIN X1 :=(-B-SQRT(DELTA))/(2*A); X2 := - B/A – X1;
WRITELN(‘X1=’,X1:6:3,’X2=’,X2:6:3);
END;
Hoạt động 3: Một số ví dụ
GV nên soạn sẵn hai chương trình này và
cho các em quan sát cách viết chương trình
để các em hình thành dần cách viết một
chương trình
Chạy thử chương trình và chỉ rõ các
lệnh trong chương trình dùng để làm gì
Nếu có nhiều thời gian, GV có thể gõ
từng lệnh chương trình, gõ đến đâu giải
Trang 31thích cho học sinh đến đó.
Nếu còn thời gian, gọi học sinh lên bảng
viết câu lệnh If – Then cho một số bài
toán đơn giản
Có thể viết chương trình mẫu cho học
sinh xong, yêu cầu các em gõ lại chương
trình vừa được theo dõi mà không cần nhìn
vào bài mẫu
Tìm số ngày của một năm: Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100
4 Cũng cố
- Nhắc lại một số khái niệm mới
- Nhắc lại cấu trúc If- Then
- Nhắc lại cấu trúc câu lệnh ghép
B3 Nếu max<b thì max< b
B4: nếu max <c thì max < c
Write(‘Hay nhap ba so a, b,c:’);
Readln(a, b, c);
Max:=a;
If ( Max < b) Then Max:= b;
If (Max < c) Then Max:=c;
Write(‘Max cua a, b, c la:’, Max);
Trang 32Readln;
End
Bài 2:
Nhập 3 cạnh vào và báo cáo ra là
-Tam giác hay không?
-Tam giác thường, vuông, đều, cân!
write('Nhap 3 canh tam giac: ');readln(a,b,c);
UNTIL ((a+b)>c) AND ((a+c)>b) AND ((b+c)>a);
IF (a*a+b*b=c*c) OR (a*a + c*c=b*b) OR (b*b + c*c=a*a) THEN vuong:=TRUE;
IF ((a=b) AND (b<>c)) OR ((a=c)AND (c<>b)) OR ((c=b)AND(b<>a)) THEN can:=TRUE;
IF (a=b) AND (a=c) THEN deu:=TRUE;
IF (vuong AND NOT can) THEN write('Tam giac vuong ');
IF (NOT deu AND can) THEN write('Tam giac can');
IF (vuong AND can) THEN write('Tam giac vuong can');
IF deu THEN write('Tam giac deu');
IF (NOT vuong) AND (NOT can) AND (NOT deu) THEN
write('Tam giac thuong');
readln;
- Rèn luyện kỹ năng sử dụng cấu trúc rẽ nhánh trong việc giải một số bài toán cụ thể
- Làm quen với công cụ phục vụ và hiệu chỉnh chương trình
3 Về tư duy và thái độ:
- Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc
Trang 332 Kiểm tra bài cũ:
Dùng câu lệnh lặp For_do tính tổng sau S=12+32+52+…+(2n-1)2 với n được nhập vào
Gv Gợi ý để học sinh nêu khái niện về bộ
Gv Để kiểm tra bộ ba số a,b,c có phải là
bộ 3 số Pitago ta phải kiểm tra đẳng thức
nào?
Hs Dựa vào khái niệm trả lời
Gv Yêu cầu học sinh soạn vào máy theo