MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
Trang 1Chương 1 MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ
2 Biết vai trò của chương trình dịch
3 Biết khái niệm thông dịch và biên dịch
4 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ệnlỗi cú pháp của chương trình nguồn
II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
1 Phương pháp: Thuyết trình, vấn đáp
2 Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM:
1 Trong chương trình lớp 10 các em đã được biết đến một số khái niệm: ngônngữ lập trình, chương trình dịch; nên trong bài này chúng ta nên trình bày rõ chohọc sinh hiểu về biên dịch và thông dịch
IV NỘI DUNG BÀI GIẢNG:
Hoạt động của Giáo viên và Học sinh Nội dung
Ổ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
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 đã
-Trả lời câu hỏi: Có 3 loại ngôn ngữ lập trình:
Trang 2GV: 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 đó
Khi 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 đó
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
=>Cần phải có chương trình dịch để chuyểnchương trình viết bằng ngôn ngữ lập trình bậccao 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 toàn bộ chương trình nguồn thành mộtchươ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ụnglạ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ãycác bước sau:
Kiểm tra tính đúng đắn của câu lệnh tiếp theotrong chương trình nguồn
Chuyển đổi các câu lệnh đó thành một haynhiề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
V CỦNG CỐ , DẶN DÒ:
Nhắc lại một số khái niệm mới
Trang 3§2 CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH
I MỤC ĐÍCH YÊU CẦU
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
Hiểu và phân biệt được 3 thành phần này
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
Phân biệt được tên, hằng và biến
Biết đặt tên đúng
II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
Phương pháp: Thuyết trình, vấn đáp
Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM:
Phần này bắt đầu một kiến thức mới, ngoài giới thiệu cho các em biết các kháiniệm mới, cần giải thích sự khác nhau giữa cú pháp và ngữ nghĩa
Riêng các thành phần cơ sở của Pascal, với mỗi khái niệm cần nên lấy ví dụ minhhọa đúng-sai, và ví dụ sự khác biệt giữa chúng, nên minh họa bằng một đoạnchương trình đơn giản
IV NỘI DUNG BÀI GIẢNG:
Hoạt động của Giáo viên và Học sinh Nội dung
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
a.Bảng chữ cái: Là tập các ký hiệu dùng để
Trang 4Ví 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ừ
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,
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ữ khác nhau
o 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
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ìnhhợ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áthiệ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ạychương trình
2 Một số khái niệm
a Tên
- Mọi đối tượng trong chương trình đều phảiđược đặt tên Mỗi ngôn ngữ lập trình cómột quy tắc đặt tên riêng
- Trong ngôn gnữ Turbo Pascal tên là mộtdãy liên tiếp không qúa 127 ký tự bao gồmcác chữ cái, chữ số và dấu gạch dướinhưng phải bắt đầu bằng chữ cái hoặc dấugạch dưới
- Trong Free Pascal, tên có thể có tối đa 255
ký tự
- Ngôn ngữ lập trình Pascal không phân biệtchữ hoa, chữ thường nhưng một số ngônngữ lập trình khác lại phân biệt chữ hoa vàchữ thường
- Ngôn ngữ lập trình thường có 3 loại tên cơbản: Tên dành riêng, tên chuẩn và tên dongười lập trình tự đặt
Tên dành riêng:
- Là những tên được ngôn ngữ lập trình quyđịnh với ý nghĩa xác định mà người lậptrì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
Trang 5thao 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 những
+ Delta là tên để lưu giá trị của Delta
- 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 nhau 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ể
- Được xác định bằng cách khai báo trước khi
sử dụng và không được trùng với tên dànhriêng
- Các tên trong chương trình không đượctrù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áunháy “ hoặc ””
+ Hằng Logic : là các giá trị đúng hoặc sai
Biến:
- Là đại lượng được đặt tên, giá trị có thểthay đổi được trong chương trình
- Các NNLT có nhiều loại biến khác nhau
- 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ácchú thích cho chương trình Chú thíchkhô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à */
IV CỦNG CỐ , DẶN DÒ :
Nhắc lại một số khái niệm mới
Cho bài tập về nhà
Trang 6CHƯƠNG II:
CHƯƠNG TRÌNH ĐƠN GIẢN
§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 một ngôn ngữ lập trình
Biết cấu trúc của một chương trình Pascal: cấu trúc chung và các thành phần
Nhận biết được các thành phần của một chương trình đơn giản
II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
Phương pháp: Thuyết trình, vấn đáp
Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM:
Cách dạy hiệu qủa nhất là có một chương trình mẫu với đầy đủ các thành phầncủa một chương trình, chỉ cho học sinh từng thành phần trong chương trình đó vàthành phần nào có thể có, thành phần nào bắt buộc phải có …
IV NỘI DUNG BÀI GIẢNG:
Hoạt động của Giáo viên và Học sinh Nội dung
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 cho gnười
- 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ự đặttheo đú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 : Uses <tên thư viện>;
- Trong ngôn ngữ C++ : #include<Tên tệp thư viện>
Trang 7trì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
GV : Đưa ra những ví dụ khác nhau về cách
viết thân chương trình trong các ngôn ngữ lập
trình khác nhau
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
chươ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
Ví dụ: Trong Turbo Pascal : Uses CRT, GRAPH;
Trong VISUAL STUDIO 2005 : Imports System.Xml
Khai báo hằng :
- Những hằng sử dụng nhiều lần trongchương trình thường được đặt tên cho tiệnkhi 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 trong chương trình đềuphả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ờigọi chương trình con
- Thân chương trình thường có cặp dấu hiệubắ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
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
Program VD;
Begin Write(‘Chao cac ban’);
}
V CỦNG CỐ , DẶN DÒ:
Nhắc lại một số khái niệm mới
Trang 8§4 MỘT SỐ KIỂU DỮ LIỆU CHUẨN
I MỤC ĐÍCH YÊU CẦU
Biết một số kiểu dữ liệu định sẵn: nguyên, thực, ký tự, logic, và miền con
Xác định được kiểu cần khai báo của dữ liệu đơn giản
II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
Phương pháp: Thuyết trình, vấn đáp
Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM:
Trong phần này giáo viên chú ý cần lấy nhiều ví dụ đơn giản để học sinh luyện tập việc xác định kiểu dữ liệu cần khai báo …
IV NỘI DUNG BÀI GIẢNG:
Hoạt động của Giáo viên và Học sinh Nội dung
Ổ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
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 ?
HS : 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 dạng
văn bản hay là dạng ký tự
- Điểm của học sinh là các thông tin các số
thực
- Số thứ tự của học sinh là các số nguyên
- Một số thông tin khác lại chỉ cần biết
chúng là đúng hay sai
GV : Thuyết trình đưa ra một số bổ sung như
sau :
- 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ị thuộc kiểu đó
- Trong lập trình nói chung thì kiểu kí tự
2 Kiểu thực
- Có nhiều kiểu cho giá trị là số thực nhưng haydù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 1038) 6EXTENDED 0 hoặc nằm trong
(10-4932 104932) 10
3 Kiểu kí tự
- 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
Trang 9kí tự, trong các bảng mã hóa kí tự người
ta quy định có bao nhiêu kí tự khác nhau
và mỗi kí tự có một 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 nhau 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
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ậptrình nào thì cần tìm hiểu đặc trưng củacác kiểu dữ liệu của ngôn ngữ đó
V CỦNG CỐ , DẶN DÒ:
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
Trang 10§5 KHAI BÁO BIẾN
I MỤC ĐÍCH YÊU CẦU
Hiểu được cách khai báo biến
Khai báo đúng
Nhận biết được khai báo sai
II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
Phương pháp : Thuyết trình, vấn đáp
Phương tiện : Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM:
Trong phần này giáo viên chú ý cần llấy nhiều ví dụ đơn giản để học sinh luyệntập việc xác định kiểu dữ liệu và tự khai báo biến
Chú ý cho học sinh :
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 qúa ngắn hay quá dài, dễ dẫn đến mắc lỗi hoặc hiểunhầm
Khai báo biến cần quan tâm đến phạm vi giá trị của nó
IV NỘI DUNG BÀI GIẢNG :
Hoạt động của Giáo viên và Học sinh Nội dung
Ổ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
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 trong chương
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
- Trong ngôn ngữ Pascal, biến đơn được khaibáo như sau :
Var <danh sách biến> : <kiểu số liệu>
Trong đó:
+ Var : là từ khóa dùng để khai báo biến
+ Danh sách biến : tên các biến cách nhau
bởi dấu phẩy+ Kiểu dữ liệu : là một kiểu dữ liệu nào đó
của ngôn ngữ Pascal+ 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 vigiá trị của nó
V CỦNG CỐ , DẶN DÒ :
Nhắc lại một số khái niệm mới
Trang 11§6 PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN
I MỤC ĐÍCH YÊU CẦU
Giới thiệu phép toán, biểu thức số học, hàm số học chuẩn và biểu thức quan hệ
Hiểu lệnh gán
Viết được lệnh gán
Phân biệt được sự khác nhau giữa lệnh gán (:=) và phép so sánh bằng
Viết được biểu thức số học và logic với các phép toán thông dụng
II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
Phương pháp: Thuyết trình, vấn đáp
Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM:
Đối với việc dạy phép toán, cần chú ý cho học sinh một số phép toán thườngkhông dùng trong toán học, và một số phép toán có kí hiệu khác với kí hiệu trongtoán học
Kết quả của phép toán quan hệ mang giá trị logic
Đối với việc dạy biểu thức số học, cần phân biệt cho học sinh cách viết biểuthức số học trong toán học và trong tin học Kiễu giá trị của biểu thức thường làkiểu của biến, hay hằng có độ lớn kiểu lớn nhất trong nó, nên sử dụng biến trunggian để tránh việc sử dụng biến nhiều lần
Khi dạy biểu thức quan hệ và biểu thức logic, cần lấy nhiều ví dụ từ đơn giản đếnphức tạp để học sinh có thể tính toán đưa ra giá trị của biểu thức, hay nêu ví dụ
cụ thể về các mối quan hệ trong cuộc sống để học sinh tự đưa ra biểu thức logic.Tại câu lệnh gán cần cho học sinh hiểu lệnh gán là lấy giá trị của biểu thức bênphải để đưa vào biến bên trái, hay thay giá trị biến bên trái lệnh gán bằng giá trịcủa biểu thức bên phải Có thể cho học sinh so sánh với phép so sánh bằng và từ
đó phân biệt dễ dàng
IV NỘI DUNG BÀI GIẢNG :
Hoạt động của Giáo viên và Học sinh Nội dung
Ổ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
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
- 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 12cũ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ế
nào?
HS : Có thể đưa ra là X*X
GV : Muốn tính ,sinx, cosx,… làm thế nào ?
HS : Chưa biết cách tính
GV : Để tính các giá trị đó một cách đơn 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ề
VD : 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,…)
- Các phép toán Logic : NOT (phủ định),
OR (hoặc), AND (và): thường dùng để kếthợ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ínhtoá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ủabiến hoặc hằng có miền giá trị lớn nhấttrong 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ấpsẵ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ứcnhư toán hạng bất kỳ
- 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à TRUEhoặc FALSE
Trang 13Đưa ra ví dụ và cách viết đúng trong ngôn ngữ
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
Ví dụ:
- Ba số dương a, b, c là độ dài ba cạnh tamgiác nếu biểu thức sau cho giá trị đúng (a+ b > c) and (b+ c >a) and (c+ a >b)
- Biểu thức điều kiện 0 d” X d’ 5 được viếtnhư sau:
(x >= 0) and (x <= 5)
6 Câu lệnh gán
- Lệnh gán là cấu trúc cơ bản nhất của mọingôn ngữ lập trình, thường dùng để gángiá 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ênbiến Có nghĩa là kiểu của tên biến phảicùng kiểu với kiểu của biểu thức hoặcphả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ủabiểu thức sau đó ghi giá trị đó vào tênbiến
Trong đó : 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ị
V CỦNG CỐ , DẶN DÒ:
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 tinhọc tương ứng và tìm chỗ sai của biểu thức so với trong toán
Trang 14§ 7 CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN
I MỤC ĐÍCH YÊU CẦU
Biết lệnh vào ra đơn giản để nhập thông tin từ bàn ph1im và đưa thông tin ra mànhình
Viết được một số lệnh vào ra đơn giản
II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
Phương pháp: Thuyết trình, vấn đáp
Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM :
Cần chú ý cho học sinh phân biệt giữa 2 lệnh nhập dữ liệu liệu Read và Readln, khinhập dữ liệu nên dùng Readln vì nếu không có thể làm trôi lệnh readln; (không tham số)tiếp theo
Cần hướng dẫn cụ thể cho học sinh việc sử dụng lệnh Write và Writeln, các cách đểhiển thị dữ liệu, các kiểu dữ liệu trong nó
Cần hướng dẫn học sinh cách kết hợp hai lệnh vào ra dữ liệu khi viết chương trình chohợp lý, sáng sủa (tốt nhất là viết chương trình cụ thể, đơn giản)
IV NỘI DUNG BÀI GIẢNG:
Hoạt động của Giáo viên và Học sinh Nội dung
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
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ờ
Write(‘Moi ban nhap 3 so:’);
Readln(a, b, c);
Write(‘Ban vua nhap vao 3 so:, a, b, c);
Readln;
Trang 15GV : Chạy chương trình cho học sinh quan sá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
Lấy ví dụ minh họa cụ thể bằng chương trình
Có thể lấy dữ liệu của phần nhập dữ dữ liệu
sửa để học sinh thấy việc khác nhau giữa 2
lệnh Write và Writeln
Minh họa quy cách đưa thông tin ra bằng
chương trình
Sửa lại ví dụ 2 của phần 1 để dữ liệu của 3 số
phân cách nhau – người dùng có thể phân biệt
Trong đó: {1} Đưa ra thông báo:
Nhap gia tri cua M:
Còn {2} Dùng để đọc giá trị và gán cho biến M
Cấu trúc {1}, {2} gọi là giao tiếp người – máy
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áchhoặc dấu Enter,máy sẽ gán giá trị cho các biếntheo thứ tự như trong lệnh tương ứng
2 Đưa dữ liệu ra màn hình
- Để đưa dữ liệu ra màn hình tại vị trí contrỏ, ta dùng thủ tục WRITE hoặc WRITELNvới cấu trúc :
Write/Writeln(<Giá trị 1>, <Giá trị 2>,…,<Giátrị n>);
- Trong đó các Giá trị có thể là tên biến, tênhằng, giá trị cụ thể, biểu thức hoặc tênhàm
Ví dụ:
Write(a, b, c);
Writeln(‘Gia tri cua N la : ’,N);
-Thủ tục Writeln sau khi đưa kết quả ra sẽchuyển con trỏ màn hình xuống đầu dòng tiếptheo
Ngoài ra trong TP còn có qui cách đưa thôngtin ra như sau :
Trang 16§ 8
SOẠN THẢO, DỊCH, THỰC HIỆN
VÀ HIỆU CHỈNH CHƯƠNG TRÌNH
I MỤC ĐÍCH YÊU CẦU
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 sử dụng đượ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 thông 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ƯƠNG TIỆN DẠY HỌC :
Phương pháp : Thuyết trình, vấn đáp
Phương tiện : Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM:
Ta có thể gõ một chương trình từ đầu, tạo ra các lỗi điển hình, sửa lỗi, làm mịn chươngtrình để học sinh có thể hình dung ra quá trình lập trình, sử dụng chương trình dịch đểgiúp tìm lỗi, lập trình nhanh hơn
IV NỘI DUNG BÀI GIẢNG :
Hoạt động của Giáo viên và Học sinh Nội dung
Ổ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
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 người đó
Màn hình làm việc ngôn ngữ Pascal có dạngnhư sau:
Một số thao tác thường dùng trong Pascal:
-Xuống dòng: Enter-Ghi file vào đĩa: F2-Mở file đã có: F3-Biên dịch chương trình: Alt + F9-Soát lỗi chương trình: F9
-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
V CỦNG CỐ , DẶN DÒ:
- Nhắc lại hoạt động của Write/Writeln, Read/Readln
- Cho bài tập về nhà
Trang 17I MỤC ĐÍCH YÊU CẦU
Hiểu nhu cầu 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
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 để thể hiện đượcthuật toán của một số bài tóan đơn giản
II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:
Phương pháp: Thuyết trình, vấn đáp
Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM :
Nên sử dụng các thuật toán các em đã học ở lớp 10
Cần xây dựng các bài thực hành và tổ chức thực hiện tại phòng máy để học sinhđạt được những kỹ năng theo yêu cầu
IV NỘI DUNG BÀI GIẢNG :
Hoạt động của Giáo viên và Học sinh Nội dung
Ổ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
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ươngtrình vô nghiệm, ngược lại thì phương trình
mô tả các cấu trúc rẽ nhánh như trên
Trang 18Đư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
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à
GV : Phân tích sự tiện lợi trong cách 2 và 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 ngô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ựchiệ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âulệ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 19GV : Chỉ rõ đâu là lệnh ghép trong chuỗi lệnh
này
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 thí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
Ví dụ : Đoạn chương trình sau trong ngôn ngữ
Pascal có sử dụng chương trình ghép
IF DELTA <0 THEN WRITELN(‘Phuong trinh vo nghiem’)ELSE
BEGIN X1 :=(-B-SQRT(DELTA))/(2*A);
X2 := - B/A – X1;
WRITELN(‘X1=’,X1:6:3,’X2=’,X2:6:3); END;
V CỦNG CỐ , DẶN DÒ:
Nhắc lại một số khái niệm mới
Nhắc lại cấu trúc câu lệnh IF – THEN, IF – THEN – ELSE thông qua các ví dụ
Cho bài tập về nhà
Trang 20§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 kiểm tra điều kiện trước, cấu trúc lặp với số lần định trước
Biết cách vận dụng đúng đắn cấu trúc lặp vào tình huống cụ thể
Mô tả thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp
Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần lặp trước
Viết được thuật toán của một số bài toán đơn giản
II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC :
Phương pháp : Thuyết trình, vấn đáp
Phương tiện : Máy chiếu, máy tính, phòng chiếu hoặc bảng
III LƯU Ý SƯ PHẠM :
Cần tổng kết 3 loại cấu trúc điều khiển: tuần tự, rẽ nhánh và lặp
Bước đầu hình thành khái niệm lập trình có cấu trúc cho học sinh
Cần xây dựng các bài thực hành và tổ chức thực hiện tại phòng máy để học sinh đạtđược những kỹ năng theo yêu cầu
Khi dạy lệnh lặp, với mỗi một dạng lệnh lặp, tốt nhất viết một ví dụ cụ thể, với số lầnlặp nhỏ rồi viết mô tả việc hoạt động của vòng lặp bằng cấu trúc tuần tự (thể hiện sựtương đương trong công việc nhưng lệnh lặp diễn tả ngắn hơn nhiều) điều đó cũng giúphọc sinh hiểu hơn về vòng lặp)
IV. NỘI DUNG BÀI GIẢNG :
Hoạt động của Giáo viên và Học sinh Nội dung
Ổ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
GV : Đưa ra bài toán, yêu cầu học sinh tìm
cách để lập trình giải các bài toán này
HS : Đưa ra cách giải của mình, học sinh có
thể đưa ra những cách giải khác nhau
GV : Đưa ra cách giải cho bài toán
Giải theo các lệnh tuần tự
S1:=0;
If (1/a>0.0001) then S1:=S1+ 1/a;
If (1/(a+1)>0.0001) then S1:=S1+ 1 /(a+1);
If (1/(a+2)>0.0001) then S1:=S1+ 1 /(a+2);
If (1/(a+3)>0.0001) then S1:=S1+ 1 /(a+3);
…
HS : Nhận xét với việc giải bài toán theo cách
đó ?
Với N = 100 thì lặp 100 lần như thế nhưng
theo việc kiểm tra điều kiện thì không biết phải
làm theo cách nào? Theo cả hai trường hợp thì
đều quá dài
2
11
11
a a
Bài toán 2 : Tính Tổng
S2= 1
2
11
11
a a
Với điều kệin 1 0.0001
N a
Cách giải :
- Bắt đầu S được gán giá trị 1/a
- Tiếp theo mỗi lần cộng thêm vào S là1/(a+N) với N = 1, 2, 3, …
- Với bài toán 1, việc cộng thêm dừng khi1/(a+N) < 0.0001, => số lần lặp chưabiết
- Với bài toán 2, việc cộng thêm dừng khi N
= 100, => số lần lặp đã biết trước
Trang 21Để học sinh hiểu được khái niệm lặp, giáo viên
đưa ra một số ví dụ trong thực tế được tính
toán lặp đi lặp lại nhiều lần
VD1 : Bài toán gửi tiền vào ngân hàng Hằng
tháng phải tính lãi và cộng thêm vào gốc đang
gửi hay nói cách khác gốc của tháng sau = gốc
+ lãi tháng trước
VD 2: Tính tổng của một đoạn số nguyên mà
không được dùng công thức
N:=101;
B2: N := N -1;
B3: Nếu N < 1 thìchuyển sang bước5;
B4: S:= S+
1/(a+N) rồi quaylại B2;
B5: Đưa ra S rồikết thúc
GV : Gọi một số học sinh nhận xét về 2 thuật
Cái gì thay đổi trong thuật toán này?
Sau khi so sánh hai thuật toán trên, giáo viên
đưa ra hai cách lặp trong ngôn ngữ Pascal, giải
thích ý nghĩa của các thành phần trong câu
lệnh
GV : Lấy ví dụ minh họa trong Pascal để các
em thấy được sự thay đổi giá trị của biến đếm
trong một chương trình thực sự của Pascal
Với 2 ví dụ này, giáo viên nên gõ sẵn
chương trình và cho học sinh quan sát việc
chạy chương trình, giáo viên vừa cho chạy
chương trình vừa giải thích ý nghĩa các lệnh
trong chương trình (chú ý nhiều đến lệnh lặp)
GV : Đưa ra thuật toán hoặc có thể yêu cầu
học sinh tự xây dựng thuật toán giải bài toán
2, nếu tự xây dựng được thuật toán thì các em
sẽ hiểu hơn về lặp không biết trước số lần
Đưa thêm ví dụ : Nhắc lại bài toán gửi
tiền vào ngân hàng: Nếu có số tiền là A, muốn
gửi vào ngân hàng để được số tiền là B > A thì
Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp Lặp thường có 2 loại :
Lặp với số lần biết trước
Lặp với số lần không biết trước NNLT nào cũng cung cấp một số câu lệnh để mô
tả các cấu trúc lặp như trên
Sau đây chúng ta sẽ tìm hiểu các câu lệnh trongngôn ngữ Pascal
2 Lặp có số lần biết trước và câu lệnh for – do
Trong Pascal, có 2 lọai câu lệnh lặp có số lầnbiết trước :
Biến đếm thường là biến kiểu số nguyên.
Giá trị đầu, giá trị cuối là các biểu thức
cùng kiểu với biến đếm Giá trị đầu phải
nhỏ hơn hay bằng giá trị cuối.
Ở dạng lặp tiến: Biến đếm tự tăng dần từgiá trị đầu đến giá trị cuối
Ở dạng lặp lùi: Biến đếm tự giảm dần từgiá trị cuối đến giá trị đầu
Tương ứng với mỗi giá trị của biến đếm,câu lệnh sau do thực hiện 1 lần
Ví dụ 1 : Hai chương trình cài đặt thuật toán
Trang 22toán này
GV : Phân tích phương án trả lời của học sinh
sau đó đưa ra lời giải cho bài toán
GV : Đưa ra cấu trúc câu lệnh While – Do
Trong Pascal, giải thích ý nghĩa các thành
phần
HS : Lắng nghe và ghi chép.
GV: Nên gõ sãn những ví dụ này để học sinh
có thể quan sát chương trình, giáo viên chạy
thử chương trình trong Pascal
Riêng với VD 2, trước khi đưa ra thuật toán,
GV nên cho học sinh xây dựng thuật toán tìm
ước chung lớn nhất (đã học ở lớp 10)
Chạy chương trình với nhiều cặp M, N khác
nhau
Tốt nhất chạy từng bước, cho học sinh thấy sự
thay đổi của các biến
_ Pascal sử dụng câu lệnh lặp While
- Do để tổ chức lặp với số lần chưa viết như sau
While <Điều kiện> Do <Câu lệnh>;
Trong đó
- Điều kiện là biểu thức quan hệ hoặc logic.
- Câu lệnh là một câu lệnh trong Pascal.
Ý nghĩa : Khi điều kiện còn đúng thì còn thực
hiện câu lệnh sau Do sau đó lại quay lại kiểm tra
điều kiện.
Ví dụ 1 : Chương trình của bài toán 1.
Ví dụ 2 : Tìm ước chung lớn nhất của M và N.
Thuật toán :B1: Nếu M = N thì ƯCLN := M;
Nhắc lại một số khái niệm mới
Nhắc lại cấu trúc câu lệnh
Cho bài tập về nhà
Trang 23Chương IV :
KIỂU DỮ LIỆU CÓ CẤU TRÚC
Bài 11 : KIỂU MẢNG
I MỤC ĐÍCH, YÊU CẦU :
Hiểu khái niệm mảng một chiều và hai chiều
Hiểu cách khai báo và truy cập đến các phần tử của mảng
Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều
Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng
II PHƯƠNG PHÁP, PHƯƠNG TIỆN :
Phương pháp : Thuyết trình, vấn đáp
Phương tiện : Máy chiếu, máy tính, phông chiếu hoặc bảng
III LƯU Ý SƯ PHẠM :
IV. Cần cho học sinh thấy cần phải có một kiểu dữ liệu mới, ích lợi của kiểu dữ liệu đó, có thể minh họa bằng hình ảnh
Khi làm việc với mảng, học sinh khó hiểu nhất vẫn là cách truy xuất tới các phần tử của mảng Cần làm rõ các khái niệm như : đánh số các phần tử của mảng, chỉ số, kiểu chỉ số
V NỘI DUNG BÀI GIẢNG :
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH NỘI DUNG
Ổ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
Trước khi vào bài, giáo viên đưa ra một số vấn đề
cần giải quyết như sau :
Với những kiểu dữ liệu như đã biết, làm thế nào để :
- Lưu trữ và xử lý một dãy số ?
- Lưu trữ và xử lý Họ và tên của một người ?
- Lưu trữ và xử lý bảng kết quả thi tốt nghiệp ?
HS : Đưa ra các phương án để trả lời cho 3 câu hỏi
trên
GV : Các ngôn ngữ lập trình thường cung cấp một số
kiểu dữ liệu được xây dựng từ những kiểu dữ liệu
chuẩn gọi là kiểu dữ liệu có cấu trúc
Chương này chúng ta sẽ tìm hiểu một số kiểu dữ
Có thể sử dụng ví dụ trong SGK để họcsinh dễ theo dõi, gõ trước chương trình
để có thể sử dụng cho các phần tiếptheo
Trong lập trình thường có 2 loại mảng :
- Mảng một chiều
Trang 24GV : Đánh giá ý kiến của học sinh, sau đó đưa ra
mục đích của việc sử dụng cấu trúc mảng trong
chương trình
GV : Đưa ra khái niệm mảng một chiều và một số
yếu tố liên quan trong lập trình nói chung
GV : Đi sâu phân tích hai chương trình để cho học
sinh nhận thấy sự tiện lợi khi sử dụng mảng
HS : Trong khi giáo viên phân tích hai chương trình,
học sinh sẽ đưa ra ý kiến nhận xét về 2 chương trình
GV : Đưa ra cách khai báo mảng một chiều trong
ngôn ngữ Pascal, giải thích ý nghĩa của các từ khóa
mới
GV : Khai báo bằng cách nào tiện lợi hơn ?
HS : Thường thì học sinh trả lời cách 1 tiện lợi hơn ?
GV : Tùy trường hợp cụ thể mà ta dùng cách 1 hay
cách 2 nhưng thông thường ta sử dụng cách 1
GV : Sử dụng một sồ hình ảnh trực quan minh họa
cho học sinh cấu trúc mảng và chỉ số của phần tử
số Để mô tả mảng một chiều ta cần xácđịnh kiểu của các phần tử và cách đánhchỉ số các phần tử
Với mảng một chiều ta quan tâm đến :
- Tên mảng một chiều
- Số lượng phần tử trong mảng
- Kiểu dữ liệu của phần tử
- Cách khai báo biến mảng mộtchiều
- Cách truy cập vào từng phần tửcủa mảng
Xét ví dụ : Nhập vào nhiệt độ trung
bình mỗi ngày trong tuần Tính và đưa
ra màn hình nhiệt độ trung bình của cảtuần và đếm số ngày có nhiệt độ lớnhơn nhiệt độ trung bình này
Quan sát hai chương trình viết bằngngôn ngữ Pascal cùng để giải bài toántrên
- Chương trình 1 : Không sử dụngkiểu mảng
- Chương trình 2 : Sử dụng kiểumảng một chiều
a> Khai báo mảng một chiều
Trong ngôn ngữ Pascal, mảng một chiềuđược khai báo bằng hai cách như sau :
- Kiểu thành phần là kiểu dữ liệu củaphần tử mảng
- Để truy cập vào phần tử mảng taviết :
- <Tên biến mảng>[Chỉ số]
Ví dụ :
A[20] Truy cập phần tử mang chỉ số 20
Trang 25Đưa ra một số khai báo mảng trong Pascal
Nếu có nhiều thời gian, giáo viên sẽ tiến hành soạn
chương trình từ đầu để học sinh có thể dễ dàng nhận
ra các thao tác cần phải thực hiện khi viết chương
trình
GV : Đưa ra ví dụ, nhắc lại ý tưởng của thuật toán
trong mảng A
Ví dụ : Khai báo biến mảng thông qua kiểu mảng :
TypeArrayInteger=Array[1 100] of Integer;ArrayReal=Array[1.50] of Real;
Var A : Array[1 50];
B : Array[1 50] of Real;
Khai báo mảng trực tiếp :
Var A : Array[1 100] of Integer ;
Chương trình như sau :
Program timmax ;Uses crt ;
var a : array[1 250] of integer ; n,i,max,csmax : Integer ;Begin
clrscr ; Write('Nhap n = ') ; Readln(n) ;
For i := 1 to n do Begin
Write('a[',i,'] = ') ; readln(a[i]) ; End ;
max := a[i] ; csmax := 1 ; For i := 2 to n do
If a[i] > max then Begin
max := a[i] ; csmax :=i ; End ;
Writeln('Gia tri lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax)
; Readln ; End
Ví dụ 2 : Sắp xếp dãy số nguyên theo
bằng thuật toán tráo đổi
- Input : Số nguyên dương N và dãy
Trang 26GV soạn sẵn chương trình và cho học sinh quan
sát chương trình
Nếu có thời gian, giáo viên sẽ tiến hành soạn
chương trình từ đầu để học sinh có thể dễ dàng nhận
ra việc chuyển đổi ngôn ngữ từ ngôn ngữ thuật toán
sang ngôn ngữ lập trình
GV : Đưa ra ví dụ, nhắc lại ý tưởng của thuật toán
HS : Xây dựng thuật toán để giải bài toán (thuật
toán đã học ở lớp 10)
GV soạn sẵn chương trình và cho học sinh quan sát
chương trình
Nếu có thời gian, giáo viên sẽ tiến hành soạn
chương trình từ đầu để học sinh có thể dễ dàng nhận
ra việc chuyển đổi ngôn ngữ từ ngôn ngữ thuật toán
sang ngôn ngữ lập trình
thứ tự không giảm
- Ý tưởng :
+ Đổi để đưa số lớn nhất về vị trícuối cùng
+ Làm tương tự đối với những sốcòn lại
Chương trình như sau :
Program sapxep ;Uses crt ;
var A : Array[1 250] of integer ; n,i,j,tg : Integer ;
Begin clrscr ; Write('Nhap so phan tu mang n = ') ; Readln(n) ;
For i := 1 to n do Begin
Write('A[',i,'] = ') ; readln(A[i]) ; End ;
For j := n downto 2 do Begin
For i := 1 to j-1 do
If A[i] > A[i+1] then Begin
tg := A[i] ; A[i] := A[i+1] ; A[i+1] := tg ; End ;
End ; Writeln('day sau khi sap xep : ') ; For i := 1 to n do
write(a[i]:8) ; readln ;End Writeln('chi so ptu lon nhat : ',csmax); readln ;
End
Ví dụ 3 : Tìm kiếm nhị phân
- Input : Dãy số A1, A2,………, AN
đã được sắp xếp tăng dần
- Output : Có hay không chỉ số i
mà A[i] = k hoặc thông báokhông tìm thấy
var A : Array[1 250] of integer ; n,i,k : Integer ;
dau,cuoi,giua : Integer ;
Trang 27GV : Quay lại ví dụ về lưu trữ dữ liệu dạng bảng để
các em nhận ra nhu cầu phải sử dụng mảng 2 chiều
trong lập trình
GV : Khai báo cách nào tiện lợi hơn (tương tự mảng
1 chiều) ?
HS : Thường thì học sinh vẫn chọn cách 1
GV : Tùy theo trường hợp cụ thể nhưng thường thì
cách 1 hay được dùng hơn
TK : boolean ;Begin
clrscr ; Write('Nhap so ptu mang n = ') ; Readln(n) ;
For i := 1 to n do Begin
Write('A[',i,'] = ') ; readln(A[i]) ; End ;
Write('nhap so can tim k : ') ; Readln(k);
dau := 1 ; cuoi := n ;
TK := false ; while (dau <= cuoi) and Not TK Do Begin
giua := (dau+cuoi) div 2 ;
If A[giua] = k then TK := true Else
If a[giua]>k then cuoi := giua - 1 Else dau := giua + 1 ;
End ;
If TK then write('Chi so la : ',giua) else write(' Khong tim thay ');
readln ;End
- Tên kiểu mảng hai chiều
- Số lượng phần tử của mỗi chiều trong mảng
- Kiểu dữ liệu của phần tử
- Cách khai báo biến mảng hai chiều
- Cách truy cập vào từng phần tử của mảng
a> Khai báo mảng hai chiều
- Trong ngôn ngữ Pascal, mảnh hai chiều được khai báo như sau :
Cách 1 : Khai báo trực tiếp
Var : <Tên mảng> : Array[kiểu chỉ số dòng, kiểu chỉ số cột] of < kiểu phần tử> ;
Cách 2 : Khai báo gián tiếp thông qua
khai báo kiểu mảng
Trang 28GV : Khi khai báo mảng 2 chiều cần chú ý điều gì ?
HS : Tìm câu trả lời, GV gợi ý để các em chỉ ra được
chỉ số của mảng, số dòng, số cột và kiểu của mỗi
phần tử trong mảng
GV : Gọi một số học sinh lên khai báo một số biến
mảng một chiều theo yêu cầu của giáo viên
Minh họa bằng hình ảnh mảng 2 chiều và chỉ số các
phần tử mảng hai chiều cũng như cách viết truy cập
phần tử mảng
GV cho học sinh quan sát chương trình và giải thích
các lệnh trong chương trình, chú ý đi sâu vào các
lệnh lặp để các em nhận ra thường thì ta sử dụng
vòng lặp for - do để duyệt qua các phần tử mảng
GV nên soạn sẵn chương trình và cho các em quan
sát chương trình, và chạy thử chương trình trên máy
để các em tiện theo dõi
TypeArrayInteger = Array[1 10,1 15] of Integer ;
ArrayReal=Array[1 50,1 100] of Real ;Var A : ArrayInteger ;
B : ArrayReal ;
Khai báo mảng trực tiếp :
Var A : Array[1 10,1 15] og Integer ;
i, j : Byte ;Begin Clrscr ; Writeln('Bang cuu chuong 1 -> 9 : '); Writeln ;
For i := 1 to 9 do For j := 1 to 9 do A[i,j] := i*j ; For i := 1 to 9 do Begin
For j := 1 to 9 do Write(a[i,j]:4); Writeln ;
Writeln ; End ; Readln ;End
Ví dụ 2 :
Chương trình sau nhập vào một mảng 2
Trang 29 Nhắc lại một số khái niệm mới
Nhắc lại cấu trúc câu lệnh bằng cách chia bảng thành 4 phần đồng thời gọi 4 học sinh lênbảng viết lại các cách khai báo, truy xuất, và hiển thị để nhập dữ liệu
Ra bài tập về nhà
Trang 30Bài 12 : KIỂU XÂU
I MỤC ĐÍCH, YÊU CẦU :
Biết xâu là một dãy ký tự (có thể coi xâu là một mảng một chiều)
Biết cách khai báo xâu, truy cập phần tử của xâu
Sử dụng được một số thủ tục, hà thông dụng về xâu
Cài đặt được một số chương trình đơn giản có sử dụng xâu
II PHƯƠNG PHÁP, PHƯƠNG TIỆN :
Phương pháp : Thuyết trình, vấn đáp
Phương tiện : Máy chiếu, máy tính, phông chiếu hoặc bảng
III LƯU Ý SƯ PHẠM :
Thuận tiện của bài này là các em đã được học khái niệm về mảng, có thể sử dụng điều này để dạy về xâu, nhưng cần chú ý cho các em một số khác biệt so với mảng một chiều : độ dài xâu, một số phép toán trên xâu và một số hàm và thủ tục xử lý xâu
IV NỘI DUNG :
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH NỘI DUNG
Ổ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
GV : Để lưu trữ và xử lý Họ tên của một người, các
kiểu dữ liệu đã học có đáp ứng được ?
HS : Đưa ra một số phương án
GV : Phân tích các phương án của học sinh, từ đó
đưa ra yêu cầu cần sử dụng một kiểu mới : Kiểu
xâu
GV : Giới thiệu một số khái niệm và thao tác thường
dùng khi làm việc với xâu ký tự trong lập trình nói
chung
GV : Đây là cách khai báo trong ngôn ngữ Pascal,
trong các ngôn ngữ khác nhau có thể có cách khai
báo khác nhau Do đó khi viết chương trình bằng
ngôn ngữ nào cần tìm hiểu rõ các đối tượng của ngôn
- Số lượng kí tự trong xâu được gọi là
độ dài của xâu
- Xâu có độ dài bằng 0 gọi là xâurỗng
- Tham chiếu tới phần tử trong xâuđược xác định thông qua chỉ số củaphần tử trong xâu
- Chỉ số phần tử trong xâu thườngđược đánh số là 1
- Trong ngôn ngữ Pacal, tham chiếutới phần tử thường được viết :
<Tên biến xâu>[chỉ số]
Cách khai báo và xử lí xâu trong ngôn ngữ Pascal :
1 Khai báo biến xâu :
Pascal sử dụng từ khóa STRING để
khai báo xâu Độ dài tối đa của xâu
được viết trong [ ] sau từ khóa STRING Khai báo như sau :