Tải bản đầy đủ (.docx) (44 trang)

ngoân ngöõ laäp trình pascal http violet vnthanhliem24 giaùo aùn pascal 9 tuaàn ngaøy soaïn tieát ngaøy daïy teân baøi giôùi thieäu ngoân ngöõ pascal turbo pascal i muïc tieâu naém khaùi nieäm n

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (283.99 KB, 44 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Tuần Ngày soạn:


Tiết Ngày dạy:


<b>Tên bài: GIỚI THIỆU NGÔN NGỮ PASCAL & TURBO PASCAL</b>
<b>I) Mục tiêu:</b>


- Nắm khái niệm ngơn ngữ lập trình Pascal, các bước khởi động và thoát khỏi Pascal,
tạo, lưu, mở tập tin trong mơi trường Pascal.


- Nắm cách dịch chương trình và thực hiện chương trình trong Pascal.
<b>II) Chuẩn bị:</b>


- Giáo án, sách giáo khoa.
- Máy vi tính.


- Hs: xem trước nội dung bài.
<b>III) Các hoạt động dạy và học:</b>


Hoạt động GV Hoạt động Hs Nội dung




<b>Hoạt động 1:Ổn định lớp, kiểm tra bài cũ.</b>
<b>Ổn định lớp: Kt sĩ số.</b>


<b>Kieåm tra bài cũ:</b>


Sửa kiểm tra một tiết.


<b>Hoạt động 2: Hướng dẫn khái niệm ngơn ngữ lập trình Pascal.</b>



Giáo viên giới thiệu:
1-Ngôn ngữ Pascal
Vào những năm đầu
1970 do nhu cầu học tập
của sinh viên, giáo sư
Niklaus Wirth (Trường Đại
học kỹ thuật Zurich Thụy
sĩ ) đã sáng tác ra ngơn
ngữ lập trình cấp cao dùng
cho công tác giảng dạy
sinh viên. Nó được đặt tên
là Pascal để kỉ niệm nhà


Hs lắng nghe <b>1) khái niệm ngôn ngữ lập trình Pascal:</b>


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

tốn học người Pháp
Blaise Pascal.


Pascal là ngơn ngữ lập
trình có cấu trúc thể hiện
trên 3 phương diện:


-Về mặt dữ liệu: ngồi
các kiểu dữ liệu đơn giản
cịn có các kiểu dữ liệu có
cấu trúc và ta có thể xây
dựng được các kiểu dữ liệu
phức tạp từ các kiểu đã có.
-Về mặt câu lệnh: từ


các câu lệnh đơn giản và
lệnh có cấu trúc ta có thể
xây dựng các câu lệnh hợp
thành.


-Về mặt chương trình:
một chương trình có thể
được chia làm nhiều
chương trình con.


2-Turbo Pascal


Như trên đã trình bày
Pascal lúc mới ra đời chỉ là
ngơn ngữ dùng để giảng
dạy và học tập nhưng dần
dần các ưu điểm của nó
được phát huy và trở thành
1 ngơn ngữ lập trình mạnh.
Từ Pascal chuẩn ban đầu
đã được nhiều hãng cải
tiến với nhiều thêm bớt
khác nhau.


TURBO PASCAL là
sản phẩm của hãng
Borland được dùng rất phổ
biến trên thế giới vì những
ưu điểm của nó như: tốc độ
dịch nhanh, các cải tiến so



học người Pháp Blaise
Pascal.


Pascal là ngơn ngữ lập
trình có cấu trúc thể hiện
trên 3 phương diện:


<b>-Về mặt dữ liệu</b>
<b>-Về mặt câu lệnh</b>
<b>-Về mặt chương trình</b>


<b>2-Turbo Pascal:</b>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

với Pascal chuẩn đã đáp
ứng được nhiều yêu cầu
của người dùng.


TURBO PASCAL 4.0
có 1 cải tiến rất quan trọng
là đưa vào khái niệm Unit
để có thể dịch sẵn các
module trên đĩa làm cho
việc lập trình trở nên ngắn
gọn.


TURBO PASCAL 5.5 là
version mới ra đời năm
1989 có 1 kiểu dữ liệu
hoàn toán mới là kiểu


OBJECT cho phép đưa các
mã lệnh xen kẽ với dữ
liệu.


Hiện nay đã có Turbo
Pascal version 7.0


<b>Hoạt động 3: Hướng dẫn các bước khởi động và thoát khỏi Pascal, tạo, lưu, mở tập </b>


tin trong môi trường Pascal.
Như trên đã trình bày,
người sử dụng MTĐT
thường viết chương trình
bằng một ngơn ngữ cấp
cao. Trong tài liệu này ta
dùng Pascal, một ngôn ngữ
cấp cao rất mạnh và được
sử dụng rộng rãi mà phiên
bản mới nhất hiện nay là
Turbo Pascal 7.


Để sử dụng Turbo
Pascal ta cần tối thiểu là


hai teäp: Turbo


Để sử dụng Turbo Pascal
ta cần tối thiểu là hai tệp:
Turbo PASCAL.EXE và



<b>1)Khởi động – và kết</b>


<b>thuùc Turbo Pascal:</b>


<i><b> *Khởi động:</b></i>


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

PASCAL.EXE và TURBO
PASCAL.TPL. giả sử hai
tệp này được ghi trên một
đĩa mềm 1.44MB và máy
của ta có ổ đĩa A đọc được
loại đĩa này.


Để khởi động Turbo
Pascal Pascal, ta đưa đĩa
có hai tệp trên vào ổ A rồi
chọn Turbo tiếp theo là
phím Enter.


Khởi động Turbo Pascal
<i>là ta đi vào môi trường</i>


<i>triển khai hợp nhất mà để</i>


cho đơn giản, ta gọi là mơi
trường của Turbo Pascal.
Muốn thốt khỏi Turbo
Pascal trở về hệ thống ta
làm thế nào



1-Soạn thảo chương
trình mới hoặc đưa một
chương trình đã có sẵn trên
đĩa vào bộ nhớ.


Để soạn thảo một chương
trình mới hoặc muốn lưu
chương trình, mở 1 chương
trình đã có sẵn trên đĩa thì
cũng tương tự như các
phần mềm đã biết
(Word,Excel…) do Turbo
Pascal 7.0 có hỗ trợ chuột.


<i>Nhưng ta cần chú ý điều</i>


gì ?


TURBO PASCAL.TPL.


<i>Nhưng ta cần chú ý:</i>


Khi ta đưa tên file
<i>vào và đánh Enter (chú ý</i>


<i>tên file phải theo đúng quy</i>
<i>cách đặt tên của DOS</i>
<i>“phần tên có thể có từ 1</i>
<i>đến 8 ký tự, lớn hoặc nhỏ,</i>
<i>khơng được có khoản</i>


<i>trống, các ký tự có thể là:</i>
<i><b>AZ az 09 @ # $ %</b></i>
<i>& ( ) _     ) thì có 2</i>


trường hợp xẩy ra.


-Nếu file chưa có
trên đĩa thì màn hình được


chọn Turbo tiếp theo là
phím Enter.


<i><b>*Kết thúc:</b></i>


Muốn thốt khỏi Turbo
Pascal trở về hệ thống hãy
gõ ALT+X (Giữ phím Alt
rồi đánh phím X).


2)Tạo, mở, lưu File
Program:


* Tạo tập tin:


Nhấn F10/ File/ New.
* Lưu tập tin:


Nhấn F10/ File/Save
( hoặc Save as )/đặt tên.
* Mở Tập tin:



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Khi chúng ta đưa vào
một chương trình mới mà
chương trình hiện đang
soạn thảo chưa được ghi
vào đĩa (chưa ghi toàn bộ
tập tin hặc chưa ghi lại
những thay đổi mới nhất)
thì Turbo Pascal sẽ thơng
báo:


Nếu chọn Yes sẽ ghi
chương trình hiện hành


xóa sạch để ta soạn thảo
chương trình mới.


-Nếu file đã có trên
đĩa (chương trình đã dược
soạn thảo rồi) thì đưa vào
bộ nhớ và trình bày lên
màn hình. Lúc này ta có
thể chạy chương trình hoặc
sửa chữa nó.


-Trong trường hợp ta
muốn đưa một chương
trình đã có trên đĩa vào
màn hình soạn thảo nhưng
ta lại quên mất tên tập tin


chương trình đó thì hãy
nhập *.PAS vào chỗ
“Name”. Một danh sách
các tập tin chương trình sẽ
được trình bày để ta lựa
chọn bằng cách sử dụng
các phím mũi tên để di
chuyển con trỏ hoặc có thể
dùng chuột để chọn và
Enter để đưa chương trình
đó vào soạn thảo.


<b>Ghi chương trình đang</b>
<b>soạn thảo vào đĩa</b>


Một chương trình đã
soạn thảo xong hoặc đang
soạn thảo mà ta muốn lưu
trữ trên đĩa thì hãy đánh
phím F2 hoặc dùng chuột
chọn File\Save khi chương
trình chưa có tên hoặc
chọn File\Save as… khi
muốn đặt lại tên mới.


<b>Ghi chương trình đang</b>
<b>soạn thảo vào đĩa</b>


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

vào đĩa trước khi soạn thảo
chương trình mới.



Nếu chọn No thì
chương trình hiện hành
khơng được ghi vào đĩa.


Trong q trình soạn
thảo hoặc sửa chữa chương
trình ta có thể sử dụng các
phím chức năng sau:


<b>Các phím thơng tin</b>
<b>trợ giúp</b>


F1 Xem


thơng tin phần trợ giúp


<b>Ctrl-F1</b> <b>Trợ </b>


<b>giúp theo ngữ cảnh</b>


Hướng dẫn các phím sử
dụng con trỏ và sử dụng
khối ?


<b>Sử dụng khối</b>


Khối là một đoạn văn
bản chương trình hình chữ nhật
được xác định bởi đầu khối là


góc trên bên trái và cuối khối
là góc dưới bên phải hình chữ
nhật. Khi một khối đã được xác
định (trên màn hình thấy khối
có màu khác chỗ bình thường)
thì ta có thể sao chép, di
chuyển, xóa khối… sử dụng
khối cho phép chúng ta soạn
thảo chương trình một cách
nhanh chóng. Sau đây là các
thao tác đối với khối:


Ctrl-K-B Đánh dấu đầu
khối


Ctrl-K-K Đánh dấu cuối
khối


Ctrl-K-C Chép khối vào
sau vị trí con trỏ


Ctrl-K-C Di chuyển
khối tới sau vị trí con trỏ


<b>Các phím dịch chuyển con</b>
<b>trỏ</b>


<b>Enter Đưa con trỏ xuống</b>
<b>dòng</b>



<b> Đưa con trỏ lên hàng</b>


<b>trước</b>


<b> Đưa con trỏxuống hàng</b>


<b>sau</b>


<b> Đưa con trỏsang phải</b>


<b>một ký tự</b>


<b> Đưa con trỏ sang trái</b>


<b>một ký tự</b>


<b>End Đưa con trỏ đến cuối</b>
<b>dòng</b>


<b>Home Đưa con trỏ đến đầu</b>
<b>dòng</b>


<b>PageUp Đưa con trỏ lên</b>
<b>trang trên</b>


<b>PageDowwn Đưa con trỏ</b>
<b>xuống trang dưới</b>


<b>Các phím xóa ký tự</b>



<b>Delete Xóa 1 ký tự tại vị trí</b>
<b>con trỏ</b>


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Ctrl-K-Y Xóa khối hiện
hành


Ctrl-K-W Ghi khối hiện
hành vào đóa như một tập tin


Ctrl-K-R Đọc khối (tập
tin) từ đĩa vào sau vị trí con trỏ


Ctrl-K-H Tắt mở khối


<b>trước vị trí con trỏ</b>


<b>Ctrl-Y Xóa 1 dòng tại vị trí con trỏ</b>


<b>Hoạt động 4: Hướng dẫn dịch chương trình và chạy chương trình trong Turbo Pascal.</b>


Như ta đã biết, MTĐT
hoạt động dựa trên nguyên
tắc làm việc một cách tự
động theo chương trình.
Chương trình gồm những
lệnh riêng lẻ sắp xếp theo
một trình tự nào đó.


MTĐT chỉ trực tiếp
thực hiện được những


chương trình viết bằng
ngôn ngữ máy, tức là với
từ vựng chỉ cần hai ký tự 0
và 1. Đối với những máy
tính thuộc vài thế hệ ban
đầu, người ta chỉ dùng
ngôn ngữ máy, chương
trình thường rất dài và
cồng kềnh. Ngôn ngữ máy
lại phụ thuộc vào từng loại
máy tính. Người nào
chuyên sâu, thơng thạo
máy nào thì viết được
chương trình cho máy đó,
khi chuyển sang máy khác
có khi đành chịu bó tay.
Đối với những máy tính
thuộc thế hệ sau này,
người ta đã sáng tạo ra


<b>*Dịch chương trình</b>
Giả sử chương trình
hiện hành là chương trình
chao.PAS. Muốn dịch
chương trình Pascal
này(gọi là một chương
trình nguồn) ra mã máy có
thể chạy được ở hệ thống,
ta làm như sau:



-Gõ đồng thời Alt-C
để chọn COMPILE;


-Nếu ở dịng
DESTINATION có ghi
MEMORY thì gõ D để
chuyển sang DISK (đĩa
chứa tập tin Turbo.PAS)
còn nếu đã ghi sẵn là
DISK thì đương nhiên
không phải gõ D;


-Gõ đồng thời Alt-F9
để dịch chương trình.


Kết quả dịch là một
chương trình có đi EXE,
trong trường hợp này là
chao.exe.


Gõ Alt-X để trở về
hệ thống, trong hệ thống ta
mở đĩa chứa Pascal và tìm


<b>3) Dịch chương trình và </b>


<b>chạy chương trình:</b>


<b>* Muốn dịch</b>
<b>chương trình gõ đồng thời</b>


<b>Alt-F9 để dịch chương</b>
<b>trình.</b>


<b>* Muốn chạy một</b>


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

những ngơn ngữ cấp cao
nhằm làm dễ dàng cho
người sử dụng. Những
ngôn ngữ cấp cao thường
dùng hiện nay là


FORTRAN, BASIC,


PASCAL, ACCESS,


COBOL, C,… các lệnh của
những ngôn ngữ này có
cách diễn đạt gần giống
với ngơn ngữ tự nhiên, nhờ
vậy chương trình trở nên rõ
ràng, dễ hiểu đối với
người. Tuy nhiên, MTĐT
không trực tiếp thực hiện
được những chương trình
viết bằng ngơn ngữ cấp
cao mà phải gián tiếp
<i>thông qua chương trình</i>


<i>dịch (giống như người</i>



phiên dịch) để chuyển
những chương trình từ
ngôn ngữ cấp cao sang
ngơn ngữ máy.


mở chương trình chao.exe
sẽ được thực hiện. Như
vậy, những chương trình đã
dịch (mang đi EXE nếu
dịch nhờ Turbo Pascal)
chạy được ở hệ thống.


<b>Hoạt động 5: Dặn dị </b>


Xem bài cấu trúc chương trình Pascal chuẩn bị tiết học.


Tuần Ngày soạn:


Tiết Ngày dạy:


Tên bài:

<b>CẤU TRÚC CHƯƠNG TRÌNH PASCAL</b>



<b>I) Mục tiêu:</b>


- Nắm các thành phần cơ bản của ngơn ngữ lập trình Pascal.


- Nắm cấu trúc chương trình và các bước cơ bản để viết chương trình.
<b>II) Chuẩn bị:</b>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

- Hs: xem trước nội dung bài.


<b>III) Các hoạt động dạy và học:</b>


Hoạt động GV Hoạt động Hs Nội dung


<b>Hoạt động 1: Ổn định lớp, kiểm tra bài cũ.</b>


<b>Ổn định lớp: Kt sĩ số.</b>
<b>Kiểm tra bài cũ:</b>


Nêu cách khởi động và
thoát khỏi Pascal ?


Nêu các bước tạo mở lưu
File trong Pascal ?




<b>Hoạt động 2: Giới thiệu các thành phần cơ bản của Pascal.</b>


Giới thiệu kí tự trong
chương trình Pascal ?


Bộ chữ trong ngơn ngữ
Pascal bao gồm:


-26 chữ cái la tinh lớn:
A, B, C,…..Z


-26 chữ cái la tinh nhỏ:
a, b, c,…..z



-Ký tự gạch nối _ (cần
phân biệt với dấu -)


-Bộ chữ số thập phân: 0,
1,2,3,4,5,6,7,8,9


-Các ký hiệu toán học: +
, - , * , / , = , < , > , ( , )


-Các ký tự đặc biệt: . , :
;   ? % @ \ { ! & # $ 


-Dấu cách hay khoản
trống (Space)


Các từ khóa là các từ dành
riêng của Pascal mà người
lập trình có thể sử dụng
chúng trong chương trình


Hs lắng nghe


<b>1) Các thành phần cơ bản:</b>


<b>a) Ki tự:</b>


<b>Bộ chữ trong ngơn ngữ </b>
<b>Pascal bao gồm:</b>



-26 chữ cái la tinh lớn: A, B,
C,…..Z


-26 chữ cái la tinh nhỏ: a, b,
c,…..z


-Ký tự gạch nối _ (cần phân
biệt với dấu -)


-Bộ chữ số thập phân: 0,
1,2,3,4,5,6,7,8,9


-Các ký hiệu toán học: + , - ,
* , / , = , < , > , ( , )


-Các ký tự đặc biệt: . , : ; 
 ? % @ \ { ! & # $ 


-Dấu cách hay khoản trống
(Space)


<b>b) Từ khoá:</b>


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

tùy theo ý nghĩa của từng
từ và khơng được dùng từ
khóa để đặt tên của riêng
mình.


-Tên hay còn gọi là
danh biểu (identifier) dùng


để đặt cho chương trình,
hằng, kiểu, biến, chương
trình con.


-Tên có 2 loại là tên
chuẩn đã được Pascal đặt
trước chẳng hạn các hàm
số SIN, COS…, hằng số PI,
kiểu INTERGER, CHAR…,
và tên do người lập trình tự
đặt.


Ví dụ: write(‘nhap so
a:’); readln(a);


Program
Begin
End
Or
Var
If
else


While
Whith
Type
Array
Const
File
……….



…….


<b>c) Teân:</b>


-Dùng bộ chữ cái, bộ chữ số
và ký tự gạch dưới ( _ ) để đặt
tên nhưng phải tuân thủ quy
cách:


*Bắt đầu bằng chữ
cái


*Khơng có khoảng
trống ở giữa tên


*Khơng được
trùng với từ khóa


-Độ dài tối đa của tên là
127 ký tự, tuy nhiên cần đặt
tên sao cho gọn và có ý nghĩa,
dễ nhận biết, dễ nhớ


-Pascal không nghiêm cấm
việc đặt tên trùng với tên
chuẩn nhưng khi đó ý nghĩa
của tên chuẩn khơng cịn giá
trị nữa.



<b>d) Dấu chấm phẩy:</b>


Dấu chấm phẩy dùng để
ngăn cách các câu lệnh


<b>Hoạt động 3: Giới thiệu cấu trúc chương trình Trong ngơn ngữ Pascal.</b>


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

phần khai báo


phần khai báo có thể
gồm các mục sau


-Tên chương trình:
PROGRAM<tên chương
trình>


-Khai báo sử dụng
UNIT: USE<tên UNIT> 
<, tên UNIT>


-Khai báo


nhãn:LABEL<nhãn> <,
nhãn>


-Khai báo


hằng:CONST


-Khai báo kiểu:TYPE


-Khai báo biến:VAR
-Khai báo chương trình con


<b>a) Tiêu đề:</b>


Program tênchươngtrình;


<b>b) Các khai báo:</b>


Phần khai báo có thể
gồm các mục sau


-Tên chương trình:
PROGRAM<tên chương
trình>


-Khai báo sử dụng
UNIT: USE<tên UNIT> 
<, tên UNIT>


-Khai báo


nhãn:LABEL<nhãn> <,
nhãn>


-Khai báo


hằng:CONST


-Khai báo kiểu:TYPE


-Khai báo biến:VAR
-Khai báo chương trình con


<b>c) Thân chương trình:</b>


Phần thân chương trình
Bắt đầu bằng từ khóa
Begin, kết thúc bằng từ
khóa End và dấu “.” giữa
begin và end là các câu
lệnh.


<b>Hoạt động 4: Giới thiệu các bước viết chương trình.</b>


Thuật giải là một trong
những khái niệm rất quan
trọng của Toán học và Tin
học.


Hàng ngày con người
tiếp xúc với rất nhiều bài
toán từ đơn giản đến phức
tạp. Đối với một số bài
toán, tồn tại những quy tắc


Thuật giải theo nghĩa
trực giác được hiểu như
một quy tắc chính xác và
đơn trị để tiến hành một số



<b>3) Các bước cơ bản viết</b>
<b>chương trình:</b>


<b>Phân tích công việc và</b>
<b>chọn cách giải:</b>


<b>a) Thuật giải:</b>


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

xác định mơ tả q trình
giải. Từ đó người ta đi đến
khái niệm trực giác về
thuật giải và khái niệm
này đã được dùng từ lâu,
kéo dài suốt mấy nghìn
năm trong Tốn học.


Trong việc sử dụng
MTĐT, người ta có thể
giao cho chúng giải nhiều
bài toán. Để những thiết bị
kĩ thuật có thể làm được
việc này một cách tự động,
người ta cần mơ tả chính
xác những hành động và
trình tự thực hiện các
hành động đó để giải bài
tốn đặt ra, tức là cần xác
<i>định những thuật giải để</i>
giải nó.



<i>Ví dụ: Giải phương</i>


<i>trình bậc nhất ax+b=0 với</i>
<i>a khác 0.</i>


<b>Thuật giải pt1;</b>


Biến a, b, x: thực;
y: văn bản;


hữu hạn những thao tác sơ
cấp theo một trình tự nhất
định trên những đối tượng
sao cho sau một số hữu
hạn bước thì đi đến kết
quả mong muốn.


Ví dụ: Hãy trình bày
thuật giải để giải phương
trình bậc nhất dạng
ax+b=0


<i>Giải đáp:</i>


Bước 1: Nạp vào các
số a và b;


Bước 2: Kiểm tra điều
kiện a=0



Nếu đúng thì
chuyển sang bước 3


Cịn nếu sai
thì chuyển sang bước 4;


Bước 3: Kiểm tra điều
kiện b=0


Nếu đúng thì
kết luận phương trình có
vơ số nghiệm, đó là tất cả
các nghiệm thực


Còn nếu sai
thì kết phương trình vô
nghiệm;


Chuyển sang
bước 5;


Bước 4: Trả lời nghiệm
của phương trình là –b/a;


Bước 5: Kết thúc.


<i>Chương trình bao gồm hai</i>
<i>thành phần cơ bản là cấu</i>
<i>trúc dữ liệu (tổ chức, sắp</i>
<i>xếp thông tin) và thuật</i>


<i>giải.</i>


Thuật giải thường
được biểu diễn bằng những
hình thức khác nhau


-Ngơn ngữ tự
nhiên


-Sơ đồ khối


-Ngơn ngữ phỏng
trình


-Những ngơn
ngữ lập trình


<b>b)Bố cục của thuật</b>
<b>giải:</b>


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>bắt đầu</b>


đọc vào a, b với giả
thuyết a khác 0;


y:= “phương trình có
1 nghiệm duy nhất”;


x:=-b/a
in ra y;


in ra x


<b>kết thúc.</b>


Trước hết ta hãy lập
một chương trình Pascal
hết sức đơn giản để tập
làm việc với môi trường
Turbo Pascal. Muốn soạn
thảo một chương trình(hay
mở một chương trình có
sẵn), ta gõ F3 để mở tệp.
Trên màn hình sẽ hiện
thơng báo:


Name
*.PAS


Nó có nghĩa là u cầu
ta nạp tên tệp mà ta sẽ ghi
chương trình vào. Tên tệp
là một dãy ký tự nên lấy
trong tập hợp các chữ cái
và chữ số. Với ý định soạn
một chương trình mang tên
CHAO.PAS ta gõ CHAO
rồi gõ phím ENTER, máy
tự động điền đi .Pas (có
nghĩa là một tệp chương
trình được soạn thảo bằng


Pascal) vào sau phần chính
của tên tệp.


Nếu chương trình có
lỗi thì máy sẽ thông báo
lỗi và con trỏ sẽ xuất hiện
ở vị trí có lỗi để chờ ta
sửa.


<b>Thuật giải tên</b>


thuật giải;
Khai báo


<b>Bắt đầu</b>


Các lệnh của
thuật giải cách nhau bởi
dấu “;”


<b>Keát thúc.</b>


<b>b)Chương trình Pascal</b>


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

Ta hãy nạp qua bàn
phím một chương trình rất
ngắn gọn như sau:


<b>Program chao;</b>



Begin


Write(‘Chào
cac ban !’); readln


End.


Giả sử chương trình
hiện hành là chương trình
chao.PAS. Muốn dịch
chương trình Pascal
này(gọi là một chương
trình nguồn) ra mã máy có
thể chạy được ở hệ thống,
ta làm như sau:


-Để chạy chương
trình chao hãy đánh
Ctrl-F9, rồi kiểm tra(học sinh
tự kiểm tra)


-Gõ Alt-X để trở về
hệ thống, trong hệ thống ta
mở đĩa chứa Pascal và tìm
mở chương trình chao.exe
sẽ được thực hiện. Như
vậy, những chương trình đã
dịch (mang đuôi EXE nếu
dịch nhờ Turbo Pascal)
chạy được ở hệ thống. (học


sinh tự kiểm tra)


-Nếu ở dịng
DESTINATION có ghi
MEMORY thì gõ D để
chuyển sang DISK (đĩa
chứa tập tin Turbo.PAS)
còn nếu đã ghi sẵn là
DISK thì đương nhiên
khơng phải gõ D;


<b>c) Dịch chương</b>
<b>trình và chạy chương</b>
<b>trình:</b>


-Gõ đồng thời Alt-C
để chọn COMPILE;


-Gõ đồng thời Alt-F9
để dịch chương trình.


Kết quả dịch là một
chương trình có đi EXE.
Ta ghi chương trình
trên vào đĩa bằng cách
dùng phím F2 rồi cho thực
hiện chương trình bằng
cách gõ đồng thời hai phím
Ctrl+F9.



<b>TÓM TẮT</b>


1. Dạng đơn giản của một chương trình Pascal


<b>program tên chương trình ;</b>
<b>begin</b>


Những lệnh (ngăn cách nhau bởi dấu chấm phẩy)


<b>end.</b>


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>Hoạt động 5: Viết chương trình để máy in lên màn hình thơng báo được trang trí như</b>


sau: *********************************
& TRUNG TAM MAY TÍNH &


& xin gui loi &


& CHAO CAC BAN &
*********************************


<i>Ghi chương trình này vào đóa</i>


cho chạy chương trình đó.


<b>Hoạt động 6: Dặn dò.</b>


Xem bài các kiểu dữ liệu chuẩn bị cho tiết học.


Tuần Ngày soạn:



Tiết Ngày dạy:


<b>Tên bài: KIỂU DỮ LIỆU VAØ CÁC KHAI BÁO.</b>
<b>I) Mục tiêu:</b>


- Nắm khái niệm các kiểu dữ liệu ngơn ngữ lập trình Pascal.


- Nắm các kiểu dữ liệu cơ sở như: kiểu số ngun, kiểu số thực, kiểu kí tự, kiểu
logic.


<b>II) Chuẩn bị:</b>


- Giáo án, sách giáo khoa.
- Máy vi tính.


- Hs: xem trước nội dung bài.
<b>III) Các hoạt động dạy và học:</b>


Hoạt động GV Hoạt động Hs Nội dung


<b>Hoạt động 1: Ổn định lớp, kiểm tra bài cũ.</b>
<b>Ổn định lớp: Kt sĩ số.</b>


<b>Kiểm tra bài cũ:</b>


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

Pascal ?


<b>Hoạt động 2: Hướng dẫn kiểu dữ liệu trong Pascal.</b>



Một cách chung nhất,
mọi thông tin xử lý bởi
máy tính được gọi là dữ
liệu. Ơû mức ngôn ngữ
máy, các dữ liệu được biểu
diễn bởi dãy các phần tử
nhị phân, còn gọi là bít.
Các ngơn ngữ bậc cao trừu
tượng hóa khái niệm dữ
liệu và bỏ qua chi tiết về
biểu diễn bên trong khi
xây dựng khái niệm dữ
liệu.


Một kiểu dữ liệu xác
định tập hợp các giá trị mà
biến thuộc kiểu này có thể
nhận, mỗi biến xuất hiện
trong chương trình dều
phải được gán một kiểu
duy nhất. Các kiểu dữ liệu
trong Pascal có thể rất
phức tạp, nhưng đều được
tạo ra từ các kiểu đơn
giản, không cấu trúc. Các
kiểu đơn giản hoặc do
người lập trình định nghĩa
và được gọi là kiểu vô
hướng, hoặc là một trong


bốn kiểu chuẩn: nguyên
(interger), thực (real),
logic (boolean) hoặc kí tự
(char).


<b>Một kiểu vơ hướng được </b>
<b>đặc trưng bởi tập hợp các</b>
<b>giá trị của nó cùng với </b>
<b>quan hệ thứ tự tuyến tính</b>
<b>trong tập hợp. Các giá trị</b>
<b>được mô tả bởi các tên </b>
<b>liệt kê trong định nghĩa </b>
<b>kiểu.</b>


Một giá trị kiểu nguyên
là 1 phần tử của tập hợp
con các số nguyên có thể
biểu diễn trên một máy cụ
thể.


chú ý: abs và sqr chỉ cho
kết quả nguyên nếu đối số
thuộc kiểu ngun.


Nếu I là một biến kiểu
nguyên thì:


Succ(i) cho số nguyên
tiếp theo ( i+1)



Pred(i) cho số nguyên
đằng trước ( i-1)


Tên chuẩn maxint (phụ
thuộc vào máy) ký hiệu số
nguyên lớn nhất có thể
biểu diễn được trong máy
cụ thể. Nếu a và b là các
biểu thức nguyên và op là
một toán tử thì phép tốn a
op b chỉ cho kết quả đúng
nếu abs(a op b)<= maxint


<b>1) Kiểu dữ liệu cơ sở:</b>
<b>a) Kiểu số nguyên:</b>


(interger)


Các phép toán sau áp
dụng cho các toán hạng
nguyên và cho kết quả
nguyên


abs(x) : giá trị tuyệt đối
của x.


sqr(x) : bình phương
của x


trunc(x): x là số thực, kết


quả là phần nguyên(phần
thập phân bị bỏ qua), ví dụ
trunc(3.7)=3, trunc(-3.7)=
-3


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

Một giá trị kiểu thực là
một phần tử của tập con
các số thực có thể biểu
diễn được trên một máy cụ
thể.


<b>Nếu ít nhất một trong </b>
<b>các tốn hạng có kiểu </b>
<b>thực,</b>


Chú ý: mặc dù được
định nghĩa như kiểu vô
hướng, kiểu thực không
phải luôn được sử dụng
như các kiểu vô hướng
khác; chẳng hạn các hàm
succ và pred không chấp
nhận tham số thực; các số


vaø abs(a)<=maxint


<b> abs(b)<=maxint</b>


Một giá trị kiểu ký tự là
phần tử của một tập hợp


hữu hạn và sắp thứ tự các
ký tự. Mọi máy tính đều có
tập các ký tự của mình,
trong đó bao gồm


<b>b) Kiểu thực (real)</b>


các phép toán sau cho
kết quả thực:


* nhaân


/ chia (kết quả luôn
thuộc kiểu thực, ngay cả
khi hai toán hạng thuộc
kiểu nguyên)


+ cộng
- trừ


nếu tham số là số thực
thì hàm chuẩn sau cho kết
quả thuộc kiểu thực:


abs(x) giá trị tuyệt đối
của x


sqr(x) bình phương x
cịn các hàm sau cho kết
quả thuộc kiểu thực trong


mọi trường hợp:


sin(x)
cos(x)
arctan(x)


ln(x) logarit cơ số e
của x


exp(x) e mũ x


<b>sprt(x) căn bậc 2 của x.</b>
<b>c) Kiểu ký tự: (char)</b>
<b>Kiểu kí tự bao gồm:</b>


1. Các chữ cái, bảng
chữ cái Latinh xếp thứ tự
từ A->Z:


2. Các chữ số thập
phân xếp thứ tự từ 0->9


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

thực cũng không thể được
sử dụng làm chỉ số của
mảng, của chu trình hoặc
cơ sở của một tập hợp.


Một giá trị logic nhận
các giá trị “đúng” hoặc
“sai”; trong Pascal chúng


được ký hiệu bằng các tên
xác định sẵn là true và
false.


Các phép toán quan hệ
=, < >, <=, <, >, >=, in;
cũng cho kết quả logic


khác, ví dụ: <, >, , , (, )….


<b>d) Kiểu logic (boolean)</b>


<b>Các phép tốn áp dụng tới</b>
<b>giá trị logic cho kết quả logic</b>
<b>là</b>


<b>and</b> <b>phép “và” logic</b>
<b>or</b> <b>phép “hoặc”</b>
<b>logic</b>


<b>Not</b> <b>phép “không”</b>
<b>logic</b>


Ngồi ra cịn có các hàm
logic chuẩn, các hàm này
cho kết quả kiểu boolean:


odd(x) : true neáu x
lẻ, false nếu x chẵn.



eold(f) :ký hiệu
xuống dòng


eof(f) : ký hiệu kết
thúc tệp


<b>Hoạt động 3: Dặn dị.</b>


Xem phần các khai báo chuẩn bị cho tiết học.


Tuần Ngày soạn:


Tiết Ngày dạy:


<b>Tên bài: KIỂU DỮ LIỆU VAØ CÁC KHAI BÁO ( Tiếp theo )</b>
<b>I) Mục tiêu:</b>


- Nắm khái niệm các kiểu dữ liệu và các khai báo trong ngơn ngữ lập trình Pascal.
- Nắm các khai báo nhãn, hằng, biến trong Pascal.


<b>II) Chuaån bị:</b>


- Giáo án, sách giáo khoa.
- Máy vi tính.


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>III) Các hoạt động dạy và học:</b>


Hoạt động GV Hoạt động Hs Nội dung


<b>Hoạt động 1: Ổn định lớp, kiểm tra bài cũ.</b>



<b>Ổn định lớp: Kt sĩ số.</b>
<b>Kiểm tra bài cũ:</b>


- Nêu các kiểu dữ liệu
trong chương trình Pascal ?


<b>Hoạt động 2: Hướng dẫn các khai báo trong Pascal.</b>


Nhãn có thể đặt trước
tất cả các câu lệnh bởi dấu
: , để thực hiện câu lệnh có
nhãn có hai cách : hoặc cứ
để thực hiện theo trật tự tự
nhiên của chương trình
hoặc sử dụng câu lệnh
chuyển điều khiển goto.
Tất cả các nhãn đều phải
khai báo trong phần khai
báo nhãn trước khi sử dụng
nó.


Nhãn là một số ngun
khơng dấu, không nhiều
hơn 4 chữ số.


<b>Ví dụ: label 3, 18, 1977;</b>


Hằng là 1 đại lượng
không đổi trong q trình


thực hiện chương trình.


Có 2 loại hằng là hằng
chuẩn và hằng do người
lập trình định nghĩa.


*Hằng chuẩn là hằng


Nhãn là một số ngun
khơng dấu, khơng nhiều
hơn 4 chữ số.


<b>Ví dụ: label 3, 18, 1977;</b>


<b>1)Khai báo nhãn:</b>
<b>(label)</b>


<b>Có hai cách :</b>


-Thực hiện theo trật tự tự
nhiên của chương trình
- sử dụng câu lệnh chuyển
điều khiển goto.


<b>2)Khai baùo hằng</b>
<b>(constant);</b>


<b>Cú pháp khai báo là:</b>


CONST<Tên hằng>


= <Giá trị của hằng>;


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

do Pascal định sẵn. Chẳng
hạn hằng số PI. Hằng chỉ
màu Red=4… Người lập
trình khơng cần định nghĩa
lại nếu khơng cần thiết.


<b>*Hằng do người lập trình </b>
<b>định nghĩa thơng qua việc</b>
<b>khai báo hằng.</b>


Biến là một ô nhớ
trong bộ nhớ của máy, giá
trị của biến có thể thay đổi
trong quá trình thực hiện
chương trình và biến sẽ
được giải phóng (bộ nhớ
thu hồi ơ nhớ) khi chương
trình kết thúc.


<b>Chương trình quản lý </b>
<b>biến thơng qua tên biến </b>
<b>và mỗi biến tương ứng </b>
<b>với một chương trình </b>
<b>nhất định.</b>


Như chúng ta đã biết
kiểu có 2 loại kiểu là kiểu
chuẩn và kiểu do người lập


trình tự định nghĩa.


<b>Kiểu do người lập trình </b>
<b>định nghĩa thơng qua việc</b>
<b>khai báo kiểu.</b>


ví dụ: CONST a=50;
ch=’A’;


<b>d=TRUE;</b>


ví dụ: VAR a, b, c:
interger;


r:Real;


  Giá trị của hằng 


<b>3)Khai báo biến:</b>
<b>(Varible)</b>


Biến trước khi được sử
dụng phải được khai báo
kiểu theo cú pháp sau:


VAR < Tên biến>
,Tên biến : <kiểu
biến>;


,Tên biến,Tên


biến : <kiểu>


<b>4) Mơ tả kiểu dữ liệu</b>
<b>mới:</b>


<b>Cú pháp khai báo là:</b>


TYPE <Tên kiểu> =
<kiểu>;


<b>Tên kiểu   kiểu </b>
<b>;</b>


<b>Hoạt động 3: Dặn dị.</b>


Xem bài phép tốn biểu, thức, hàm chuẩn bị cho tiết học.


Tuần Ngày soạn:


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

Tên bài: PHÉP TỐN, BIỂU THỨC, HÀM
<b>I) Mục tiêu:</b>


- Nắm khái niệm Phép toán, biểu thức, hàm trong Pascal.
- Aùp dụng giải bài tập.


<b>II) Chuẩn bị:</b>


- Giáo án, sách giáo khoa.
- Máy vi tính.



- Hs: xem trước nội dung bài.
<b>III) Các hoạt động dạy và học:</b>


Hoạt động GV Hoạt động Hs Nội dung


<b>Hoạt động 1: Ổn định lớp, kiểm tra bài cũ.</b>
<b>Ổn định lớp: Kt sĩ số.</b>


<b>Kiểm tra bài cũ:</b>


-Nêu cấu trúc của chương
trình Pascal ?


- Nêu các thành phần cơ
bản trong Pascal ?


<b>Hoạt động 2: Hướng dẫn sử dụng biểu thức số học và biểu thức logic.</b>


Là một phần của câu lệnh
bao gồm hằng, biến, hàm
được liên kết với nhau bởi
các phép toán, các dấu ( ).


Các toán tử logic trên các
kiểu Boolean cho kết quả
kiểu Boolean bao gồm:


Vídụ:


(b+SQRT(d)


)/(2*a)


Là biểu thức
số học.


<b>1) Biểu thức số học:</b>


Là một phần của câu lệnh bao gồm
hằng, biến, hàm được liên kết với nhau
bởi các phép tốn, các dấu ( ).


Ví dụ: (b+SQRT(d))/(2*a)


<b>2) Biểu thức logic:</b>


</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

AND (và ), OR (hoặc),
XOR và NOT (phủ định).
Bảng giá trị của các toán
tử này được định nghĩa như
sau:


<b>Hoạt động 3: Dặn dị.</b>


Xem biểu thức kí tự và các hàm cơ bản chuẩn bị cho tiết học.


Tuần Ngày soạn:


Tiết Ngày dạy:


Tên bài: PHÉP TỐN, BIỂU THỨC, HAØM ( Tiếp theo )


<b>I) Mục tiêu:</b>


- Nắm khái niệm Phép toán, biểu thức, hàm trong Pascal.
- Aùp dụng giải bài tập.


<b>II) Chuẩn bị:</b>


- Giáo án, sách giáo khoa.
- Máy vi tính.


- Hs: xem trước nội dung bài.
<b>III) Các hoạt động dạy và học:</b>


Hoạt động GV Hoạt động Hs Nội dung


<b>Hoạt động 1: Ổn định lớp, kiểm tra bài cũ.</b>
<b>Ổn định lớp: Kt sĩ số.</b>


<b>Kiểm tra bài cũ:</b>


-Nêu khái niệm biểu thức
số học trong chương trình
Pascal ?


<b>- Nêu khái niệm biểu</b>
<b>thức logic và kết quả</b>
<b>trong chương trình</b>
<b>Pascal ?</b>


X Y X AND Y X OR Y X XOR Y



FALSE FALSE FALSE FALSE FALSE


FALSE TRUE FALSE TRUE TRUE


TRUE FALSE FALSE TRUE TRUE


</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

<b>Hoạt động 2: Hướng dẫn sử dụng biểu thức kí tự và biểu thức một số hàm cơ bản.</b>


Trong chương trình Pascal
ta thường sử dụng một số
hàm thông dụng như sau:
<b>a)Hàm cắt TRUNC(x) cho</b>
kết quả là 1 số nguyên là
phần nguyên của x


b) Haøm laøm tròn
ROUND(x) cho kết quả là
một số nguyên bằng cách
quy tròn phần thập phân
của x. Nói cách khác hàm
Round(x) cho ta số nguyên
gần x nhất.


c) Hàm CHR (n) cho kết
quả là1 kí tự có mã ASCII
là số n. Để cho gọn ta có
thể viết #n thay cho CHR
(n).



d) Hàm ORD (ch) cho kết
quả một số nguyên là mã
số ASCII của kí tự ch.


e) Hàm ODD (n) cho kết
quả là TRUE nếu n là số
lẻ và cho kết quả là
FALSE nếu n chẵn.


Ngồi ra còn các hàm
SIN,COS,…


ví dụ Trunc(35,12)=35,
Trunc(-35,12)=-35


Vídụ


Round(56.596)=57,
Round(56.215)=56,
Round(-56.589)=-57,
Round(-56.231)=-56.


<b>Các hàm cơ bản:</b>


<b>a)Hàm cắt TRUNC(x) cho</b>
kết quả là 1 số nguyên là
phần nguyên của x


b) Hàm làm tròn
ROUND(x) cho kết quả là


một số nguyên bằng cách
quy tròn phần thập phân
của x. Nói cách khác hàm
Round(x) cho ta số nguyên
gần x nhất.


c) Hàm CHR (n) cho kết
quả là1 kí tự có mã ASCII
là số n. Để cho gọn ta có
thể viết #n thay cho CHR
(n).


d) Hàm ORD (ch) cho kết
quả một số nguyên là mã
số ASCII của kí tự ch.


e) Hàm ODD (n) cho kết
quả là TRUE nếu n là số
lẻ và cho kết quả là
FALSE nếu n chaün.


f) Hàm ABS (x) lấy giá trị
tuyệt đối của số x.


g) Hàm SQR (x) lấy giá trị
bình phương của x.


h) Hàm SQRT(x) lấy giá
trị căn bậc hai của x.



i)EXP(x) Hàm số mũ cơ số
e của x.


<b>Hoạt động 3: Dặn dị.</b>


</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

Tuần Ngày soạn:


Tiết Ngày dạy:


Tên bài:

CÂU LỆNH, LỆNH GÁN, NHẬP-XUẤT DỮ LIỆU


<b>I) Mục tiêu:</b>


- Nắm khái niệm câu lệnh và lời giả thích trong Pascal.
- Aùp dụng giải bài tập.


<b>II) Chuẩn bị:</b>


- Giáo án, sách giáo khoa.
- Máy vi tính.


- Hs: xem trước nội dung bài.
<b>III) Các hoạt động dạy và học:</b>


Hoạt động GV Hoạt động Hs Nội dung


<b>Hoạt động 1: Ổn định lớp, kiểm tra bài cũ.</b>
<b>Ổn định lớp: Kt sĩ số.</b>


<b>Kiểm tra bài cũ:</b>



-Nêu khái niệm biểu thức
kí tự trong chương trình
Pascal ?


- Nêu các hàm cách sử
dụng trong chương trình
Pascal ?


<b>Hoạt động 2: Hướng dẫn khái niệm câu lệnh trong Pascal.</b>


Một câu lệnh xác định
một cơng việc mà
chương trình phải thực
hiện để xử lý các dữ
liệu đã được mô tả và
khai báo. Các câu lệnh
ngăn cách bởi dấu
chấm phẩy “;”. Dấu
chấm phẩy “;” chỉ có


<b>1-Khái niệm về câu</b>


<b>lệnh:</b>


Có hai loại câu lệnh :
câu lệnh đơn và câu lệnh
có cấu trúc.


</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

tác dụng ngăn cách
giữa các câu lệnh chứ


không phải là kết thúc
một câu lệnh và nó
khơng thuộc vào câu
lệnh.


Trong chương trình
nhiều lúc cần phải đưa
vào lời giải thích nhằm
diễn giải cơng việc mà
đoạn chương trình đó
thực hiện làm cho
chương trình dễ hiểu
hiểu mà không ảnh
hưởng đến kết quả
chương trình. Lời giải
thích có thể đặt bất cứ
chỗ nào trong chương
trình và phải để trong
cặp dấu  hoặc cặp
dấu “ * *”. Trong lúc
hiệu đính chương trình
ta cũng có thể dùng cặp
dấu  hoặc cặp dấu “ *
*” để tạm thời bỏ đoạn
nào đó của chương
trình.


Ví dụ: Chương trình giải
phương trình bậc hai



loại Procedure, lệnh nhảy
khơng điều kiện Goto.


Câu lệnh có cấu trúc:
bao gồm cấu trúc điều
kiện rẽ nhánh, cấu trúc
điều kiện lựa chọn, cấu
trúc lặp và câu lệnh hợp
thành. Câu lệnh hợp
thành bao gồm nhiều
lệnh đơn, nó được bắt đầu
từ BEGIN và kết thúc bởi
từ END.


<b>2-Lời giải thích</b>


Trong chương trình
nhiều lúc cần phải đưa
vào lời giải thích nhằm
diễn giải công việc mà
đoạn chương trình đó thực
hiện làm cho chương trình
dễ hiểu hiểu mà không
ảnh hưởng đến kết quả
chương trình. Lời giải
thích có thể đặt bất cứ
chỗ nào trong chương
trình và phải để trong cặp
dấu  hoặc cặp dấu “ *
*”. Trong lúc hiệu đính


chương trình ta cũng có
thể dùng cặp dấu  hoặc
cặp dấu “ * *” để tạm
thời bỏ đoạn nào đó của
chương trình.


<b>3-Một số lệnh đơn</b>


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

Đó là lệnh gán.
Thực hiện lệnh này,
MTĐT sẽ tính giá trị
của biểu thức ở bên
phải, sau đó gán giá trị
của biểu thức này cho
biến ở bên trái dấu gán,
tức là giá trị đó vào
vùng nhớ có địa ký
hiệu bởi tên biến ở bên
trái. Sau lệnh gán, giá
trị cũ của biến bị mất
và biến nhận giá trị
mới.


Ta cho máy thực
hiện chương trình này bằng
cách gõ đồng thời hai phím
Ctrl-F9.


Trong chương trình
trên giữa phần tựa đề và


thân chương trình cịn có
phần khai báo, trong ví dụ
trên là var k1, k2, cv, dt :
<i>real. Từ var là một từ khóa,</i>
viết tắt của variable, có
<i>nghĩa là biến. Từ real nghĩa</i>
<i>là số thực. Dịng khai báo</i>
của chương trình này có
<i>nghĩa là số thực. Dịng khai</i>
báo của chương trình này
có nghĩa là khai báo các
biến mang tên là k1, k2, cv,
dt; các biến này nhận giá trị
thực. Về thực chất là sử
dụng bốn vùng nhớ có địa
chỉ ký hiệu lần lượt là k1,
k2, cv, dt để sẵn sàng chứa
bốn số thực.


Ví dụ:


Program chunhat;
Var k1, k2, cv, dt : real;
Begin
Readln(k1,k2);
cv:=2*(k1+k2);
dt:=k1*k2;
writeln(cv);
write(dt);
readln


end.


Chú ý: không nên lẫn dấu
“:=” trong lệnh gán (có nghĩa là
thao tác đưa giá trị vào ô nhớ) với
dấu “=” trong toán học(chỉ sự bằng
nhau hoặc một mệnh đề về sự bằng
nhau).


(assignment statement)
Lệnh gán dùng để
gán giá trị của một biểu
thức, một hằng vào một
biến.


Cú pháp: <Tên
biến>:=<biểu thức>


Nội dung thân chương
trình trên có nghóa là:


- Nhập từ bàn phím hai
giá trị và gán cho các biến k1,
k2, tức là đưa các giá trị đó
vào các địa chỉ ký hiệu là k1
và k2.


- Tính giá trị biểu thức
2*(k1+k2) ở bên phải dấu
“:=” rồi gán giá trị đó cho


biến cv, tức là đưa giá trị đó
vào địa chỉ kí hiệu là cv. Lệnh
cv:= 2*(k1+k2) được gọi là


<i>lệnh gán.</i>


- Tính giá trị biểu thức
k1*k2 ở bên phải dấu “:=” rồi
gán giá trị đó cho biến dt, tức
là đưa giá trị đó vào địa chỉ kí
hiệu là dt.


- Đưa giá trị ở địa chỉ
cv ra màn hình.


- Đưa giá trị ở địa chỉ
dt ra màn hình.


Chú ý: khơng nên lẫn
dấu “:=” trong lệnh gán (có
nghĩa là thao tác đưa giá trị
vào ơ nhớ) với dấu “=” trong
toán học(chỉ sự bằng nhau
hoặc một mệnh đề về sự bằng
nhau).


Trong chương trình có
các lệnh mới:


readln(k1,k2);



</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

Ta ghi lại (dùng phím F2)
rồi cho thực hiện chương
trình CHUNHAT.PAS (gõ
đồng thời Ctrl-F9). Khi thực
hiện chương trình, trên màn
hình xuất hiện tín hiệu mời
(nhấp nháy) có nghĩa là
máy hỏi ta hai giá trị k1 và
k2.


màn hình sẽ xuất hiện hai
giá trị:


1.8000000000E+01
2.0000000000E+01


Đó là chu vi và diện tích
hình chữ nhật nhưng được viết dưới
dạng dấu phẩy động. Hai giá trị trên
có nghĩa là:


1.8000000000 x 1001<sub> tức 18</sub>


(nếu làm tròn tới đơn vị)


2.0000000000 x 1001<sub> tức 20</sub>


(nếu làm tròn tới đơn vị).



Hai giá trị nạp vào phải cách
nhau bởi một hay nhiều dấu
cách và kết thúc bởi phím
Enter.


Writeln(cv);


Cho hiện trên màn
hình giá trị của biểu thức cv,
sau đó xuống dịng.


Write(dt);


Cho hiện trên màn
hình giá trị của biểu thức dt.


<b>b/Thực</b> <b>hiện</b>


<b>chương trình</b>


Ta ghi lại (dùng phím
F2) rồi cho thực hiện chương
trình CHUNHAT.PAS (gõ
đồng thời Ctrl-F9). Khi thực
hiện chương trình, trên màn
hình xuất hiện tín hiệu mời
(nhấp nháy) có nghĩa là máy
hỏi ta hai giá trị k1 và k2.
Đánh 4 5 (cách nhau bởi dấu
cách) rồi gõ phím Enter, trên


màn hình sẽ xuất hiện hai giá
trị:


1.8000000000E+01
2.0000000000E+01


Đó là chu vi và diện
tích hình chữ nhật nhưng được
viết dưới dạng dấu phẩy động.
Hai giá trị trên có nghĩa là:


1.8000000000 x 1001


tức 18 (nếu làm tròn tới đơn
vị)


2.0000000000 x 1001


tức 20 (nếu làm tròn tới đơn
vị).


<b>Hoạt động 3: Dặn dị.</b>


</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

Tuần Ngày soạn:


Tiết Ngày daïy:


Tên bài:

CÂU LỆNH, LỆNH GÁN, NHẬP-XUẤT DỮ LIỆU


<b>I) Mục tiêu:</b>



- Nắm khái niệm câu lệnh nhập và xuất dữ liệu trong Pascal.
- Aùp dụng giải bài tập.


<b>II) Chuẩn bị:</b>


- Giáo án, sách giáo khoa.
- Máy vi tính.


- Hs: xem trước nội dung bài.
<b>III) Các hoạt động dạy và học:</b>


Hoạt động GV Hoạt động Hs Nội dung


<b>Hoạt động 1: Ổn định lớp, kiểm tra bài cũ.</b>


<b>Ổn định lớp: Kt sĩ số.</b>
<b>Kiểm tra bài cũ:</b>


-Nêu khái niệm câu lệnh
trong chương trình


Pascal ?


- Nêu khái niệm lời giải
thích trong chương trình
Pascal ?


<b>Hoạt động 2: Hướng dẫn lệnh nhập dữ liệu và xuất dữ liệu trong Pascal.</b>


Read vaø



Readln khác nhau ở
chỗ: đối với Readln sau
khi gõ Enter thì con trỏ
sẽ dời xuống dịng tiếp
theo cịn read thì không.
Nên dùng Readln khi
đọc dữ liệu để dễ phân
biệt trên màn hình.


<i><b>Bài tốn</b></i>
<i>Tính chu vi</i>
<i>và diện tích hình chữ</i>
<i>nhật khi biết hai cạnh</i>


<b>Lệnh nhập-xuất dữ liệu</b>


<b>a)Thủ tục đọc dữ liệu từ bàn phím</b>


</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

Readln (khơng
có biến ) là khơng đọc
gì cả mà chỉ chờ ta gõ
Enter. Người ta thường
dùng read ở cuối
chương trình (trước
end.) để khi chương
trình chạy xong màn
hình kết quả cịn dừng
lại để ta xem, gõ Enter
để trở về chế độ soạn


thảo. Cũng có khi người
ta dùng readln ở một
chỗ nào đó của chương
trình để khi chạy tới đó
chương trình sẽ tam
dừng lại cho ta kiểm tra,
gõ Enter để chương
trình tiếp tục chạy.


Trong chương
trình có lệnh:


<b>readln(k1,k2);</b>


Đó là yêu cầu
nạp dữ liệu từ bàn phím
để đưa vào các địa chỉ
ký hiệu bởi k1,k2. Hai
giá trị nạp vào phải
cách nhau bởi một hay
nhiều dấu cách và kết
thúc bởi phím Enter.


<i>của nó.</i>


Ta có thể
nghĩ rằng tính chu vi và
diện tích hình chữ nhật
thì khơng có gì khó
khăn. Tuy nhiên điều đó


lại nằm trong ý đồ muốn
chuyển từ một lãnh vực
quen thuộc (tính tốn)
sang một lãnh vực chưa
biết (lập trình).


<i><b> </b></i>


<i><b> Thuật giải</b></i>


<b> Thuật giải chữ</b>


nhật;


<b> Biến</b>
k1,k2,cv,dt: thực;


<b> Bắt đầu</b>


Nhận vào k1, k2;
Cv:=2*(k1+k2);
Dt:=k1*k2;
Hiển thị cv và dt


<b> Kết thúc.</b>


read(mục1,mục2,………,mụcN);
readln(mục1,mục2,………,mụcN);
readln;



Các cụm dữ liệu gõ từ bàn phím cho
các biến được phân biệt với nhau bằng cách
<i>gõ Space Bar ít nhất một lần. Kết thúc việc</i>
gán trị bởi phím Enter.


<i><b>Chương trình</b></i>
Program chunhat1;
Var k1, k2, cv, dt : real;
Begin
Readln(k1,k2);
cv:=2*(k1+k2);
dt:=k1*k2;
writeln(cv);
write(dt);
readln
end.


Trong chương trình có lệnh:


<b>readln(k1,k2);</b>


</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

<b>Hoạt động 3: Hướng dẫn thủ tục xuất ra màn hình trong Pascal.</b>
*Để viết dữ liệu ra màn hình


Pascal có 3 mẫu viết sau:


write(muïc1,muïc2,
………,muïcN);


writeln(muïc1,muïc2,………,muïcN);


writeln;


Thủ tục writeln(mục1,mục2,
………,mụcN) khác thủ tục
write(mục1,mục2,………,mụcN) ở
chỗ viết xong sẽ xuống hàng.


Thủ tục writeln(mục1,mục2,
………,mụcN) khác thủ tục
write(mục1,mục2,………,mụcN) ở
chỗ viết xong sẽ xuống hàng.


Thủ tục writeln(mục1,mục2,
………,mụcN) khác thủ tục
write(mục1,mục2,………,mụcN) ở
chỗ viết xong sẽ xuống hàng.


Thủ tục writeln(mục1,mục2,
………,mụcN) khác thủ tục
write(mục1,mục2,………,mụcN) ở
chỗ viết xong sẽ xuống hàng.


<b>b)Thủ tục viết dữ liệu ra</b>


<b>màn hình WRITE và</b>
<b>WRITELN</b>


*Để viết dữ liệu ra màn
hình Pascal có 3 mẫu viết
sau:



write(mục1,mục2,
………,mụcN);


writeln(mục1,mục2,
………,mụcN);
writeln;


Trongđó mục1,mục2,
………,mụcN là các mục cần
viết ra có thể là một trong
các loại sau:


-Biến chẳng hạn
write(i,j)


-Biểu thức


chẳng hạn write(2*a+b)
-Hằng chẳng hạn
write(Pi)


-Giá trị của kiểu vô
hướng chuẩn chẳng hạn
write(230,23.56,TRUE,’a’)


-Một chuỗi ký tự


chẳng hạn



write(‘Chào các bạn!!’)


Thủ tục


writeln(mục1,mục2,


………,mụcN) khác thủ tuïc
write(muïc1,muïc2,


………,mụcN) ở chỗ viết
xong sẽ xuống hàng.


</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

Nếu sau Write(mục1,
……,mụcN) có writeln thì dịng
trống được in ra.


Nếu sau Write(mục1,
……,mụcN) có writeln thì dịng
trống được in ra.


một việc làm việc đơn giản
là đặt con trỏ xuống dòng
tiếp theo do đó lệnh
writeln(mục1,mục2,


………,mụcN) tương đương
với


Begin
Write(muïc1,


……,muïcN);


Writeln;
End.


Nếu sau Write(mục1,
……,mụcN) có writeln thì
dịng trống được in ra.


<b>Hoạt động 4: Hướng dẫn qui định dạng thập phân trong Pascal.</b>
Với chương trình hình


chữ nhật viết ở mục 3 thì giá trị
của chu vi và diện tích hình chữ
nhật sẽ xuất hiện dưới dạng mà
ta chưa biết, đó là dạng dấu
<i>phẩy động; đây là cách viết</i>


<i>không đúng quy cách. Muốn</i>


cho các số thực xuất hiện dưới
dạng thập phân thông thường
(gọi là dạng dấu phẩy tỉnh) ta
<i>phải viết đúng quy cách.</i>


Ta sẽ sửa đổi chương
trình như sau:


Program chunhat;
Var k1, k2, cv, dt : real;


Begin


Readln(k1,k2);
cv:=2*(k1+k2);
dt:=k1*k2;
writeln(cv :6 :2);




Ví dụ:


write(biểuthứcthực :m :n) hoặc
writeln(biểuthứcthực :m :n)


<b>b)Quy định dạng xuất</b>


<b>hiện số thập phân</b>


<i><b>Cách viết đúng quy</b></i>
<i><b>cách: ta bố trí số chỗ cố định</b></i>
bằng cách thêm dấu hai
chấm“:” theo sau là số chỗ để
viết “:m:n”. Máy sẽ bố trí số
nguyên từ phải qua trái, nếu
thừa chỗ sẽ để trống bên trái.


Hiển thị giá trị của
biểu thức thực vào một khu vực
có độ dài m ký tự với n chữ số
ở phần thập phân. Nếu dùng


writeln thì sau khi in xong, máy
sẽ chuyển con chạy xuống
dòng tiếp theo.


Ta ghi chương trình trên
vào đĩa nhưng với một tệp
mang tên khác (chunhat2.pas)
để chương trình trước khỏi bị
xóa mất. Muốn vậy ta gõ đồng
thời Alt-F để chọn FILE rồi
chọn SAVE AS.


</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

write(dt :6 :2);
readln


end.


Dạng mới của lệnh
WRITELN hoặc WRITE ở đây
có nghĩa là:


WRITELN(cv :6 :2);
Cho hiện trên màn
hình giá trị của biểu thức cv
vào một vùng có thể ghi 6 ký
tự với 2 chữ số thập phân, sau
đó xuống dịng.


WRITE(dt :6 :2);
Cho hiện trên màn


hình giá trị của biểu thức dt vào
một vùng có thể ghi 6 ký tự với
2 chữ số thập phân.


chunhat2, ta đã cho xuất hiện
số thực dưới dạng dấu phẩy
tỉnh. Ngay ở dạng dấu phẩy
động, ta cũng có thể quy định
dạng trình bày nhờ lệnh
WRITELN viết dưới dạng như
chương trình tính chu vi, diện
tích và đường chéo của hình
chữ nhật khi cho hai kích thước
như sau:


Program chunhat;


Var k1, k2, cv, dt, dc :
real;


Begin


Readln(k1,k2);
cv:=2*(k1+k2);


dc:=sqrt(k1*k1+k2*k2);
writeln(cv :9);


writeln(k1*k2 :9);
write(dc :9);


readln


end.


Nghĩa của dạng mới của
lệnh WRITELN trong chương
trình này là:


WRITELN(cv :9);
Hiển thị chỉnh phải giá trị
của biến thực cv lên màn hình
dưới dạng dấu phẩy động vào
một khu vực có 9 ơ.


<b>Hoạt động 5: Hướng dẫn thực hiện chương trình trong Pascal.</b>


<b> c/Thực hiện chương</b>


<b>trình</b>


</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

Để tính chu vi và diện tích hình
chữ nhật ứng với các giá trị
khác của k1 và k2, trước hết ta
lại gõ đồng thời Ctrl-F9. Sau đó
ta nạp hai giá trị mới của k1 và
k2 (cách nhau bởi dấu cách),
rồi gõ phím Enter, trên màn
hình sẽ xuất hiện hai giá trị
mới của chu vi và diện tích
hình chữ nhật.



Qua việc thực hiện
chương trình trên, ta rút ra nhận
xét như sau: Nạp chương trình
trên vào máy tức là ta đã ghi
trong máy cách giải khơng phải
chỉ của một bài tốn mà của


<i>lớp bài tốn với hai biến k1 và</i>


k2. Sau đó, mỗi lần muốn giải
một bài toán cụ thể của lớp đó
của lớp đó, ta chỉ cần ấn các
phím Ctrl-F9 rồi nạp hai giá trị
của k1 và k2 chứ không cần
nạp lại chương trình. Đó là ưu
điểm cơ bản của việc sử dụng
MTĐT để giải toán. Ngay cả
những máy tính bỏ túi (khơng
lập trình), mặc dầu tính tốn rất
nhanh cũng khơng có ưu điểm
này.


Chẳng hạn:


Với 3.17 và 51.26 máy cho
hiện kết quả: 108.86 162.49
Với 67.125 và 12.378 máy cho
hiện kết quả: 159.01 830.873



trị 4 và 5 có dấu cách ở
giữa, trên màn hình sẽ
xuất hiện kết quả dưới
dạng quen thuộc:


18.00
20.00


Dấu chấm ở đây nghĩa
là dấu phẩy trong cách biểu
diễn số thập phân.


<b>Hoạt động 6: Dặn dò.</b>


</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34></div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

<b>BAØI 6 LỆNH LỰA CHỌN, LỆNH LẶP</b>


<b>I-LỆNH CẤU TRÚC RẼ NHÁNH</b>


1/Dạng khơng đầy đủ


<b>Cú pháp: IF <Điều kiện> THEN <Công việc></b>


<b>Ý nghĩa: nếu Điều kiện đúng Thì thực hiện Cơng việc</b>
Lưu đồ cú pháp:


Ví dụ 1: Trong việc thực hiện phép chia số a cho b, phải có điều kiện b < > 0. Điều đó được thể
hiện trong chương trình sau:


Var


a,b: interger;


Begin


Write(‘Nhập số a:’);readln(a);
Write(‘Nhập số b:’);readln(b);


IF b < > 0 THEN writeln(‘Thương của 2 số là:’,a/b:5:2);
Readln;


End.


2/Dạng đầy đủ


<b>Cú pháp: IF <Điều kiện> THEN <Công việc 1> ELSE<Công việc 2></b>


<b>Ý nghĩa: nếu Điều kiện đúng Thì thực hiện Cơng việc 1 ngược lại thì thực hiện Cơng việc 2</b>
Lưu đồ cú pháp:


Ví dụ 2:
Var


a,b: interger;
Begin


Write(‘Nhập số a:’);readln(a);
Write(‘Nhập số b:’);readln(b);


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

ELSE


Writeln(‘Số chia bằng 0, phép chia không có nghóa’);
Readln;



End.


<b>Chú ý: - Trước từ khóa ELSE khơng có dấu chấm phẩy</b>


- Cơng việc có thể chỉ là một lệnh hoặc nhiều lệnh. Trong trường hợp nhiều lệnh thì
phải để chúng trong cặp BEGIN và END (tạo nên một lệnh hợp thành).


Ví dụ 3: Nhập vào hai số a và b tìm giá trị lớn nhất và nhỏ nhất trong hai số đó.
Var


a,b:real;
begin


write(‘Nhập vào a:’);radln(a);
write(‘Nhập vào b:’);radln(b);
IF a>b THEN


Begin


Writeln(a:5:2,’là số lớn nhất’);
Writeln(b:5:2,’là số nhỏnhất’);
End;


ELSE
Begin


Writeln(a:5:2,’là số nhỏ nhất’);
Writeln(b:5:2,’là số lớn nhất’);
End;



End.


II-LỆNH CẤU TRÚC LỰA CHỌN
1/Dạng khơng đầy đủ


Cú pháp


CASE <Biến> OF


Hằng1a,hằng1b,………….,hằng1x: <Công việc 1>;
Hằng2a,hằng2b,………….,hằng1x: <Công việc 2>;
……….
HằngNa,hằngNb,………….,hằngNx: <Công việc N>;
END;


Ý nghĩa: Trước hết kiểm tra xem giá trị của <Biến> có phải là một trong các
Hằng1a,hằng1b,………….,hằng1x hay khơng. Nếu đúng thì thực hiện <công việc 1> rồi kết thúc
lệnh(thực hiện lệnh tiếp theo sau END;), nếu sai thì kiểm tra xem giá trị của <Biến> có phải là một
trong các hằng Hằng2a,hằng2b,………….,hằng1x hay khơng. Nếu đúng thì thực hiện <Cơng việc 2>
rồi kết thúc lệnh, nếu sai thì tiếp tục kiểm tra… Cứ tiếp tục như vậy, nếu giá trị của <Biến> không
thuộc tập hợp các hằng từ 1a đến Nx thì lệnh kết thúc mà không thực hiện bất kỳ một công việc
nào cả.


Ví dụ 4: viết chương trình nhập điểm của một học sinh theo thang điểm 10 và tiến hành xếp
loại văn hóa theo điểm như sau:


9,10 : Loại giỏi


7,8 : Loại khá



</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>

3,4 : Loại yếu


0,1,2 : Loại kém


Program xeploại1;
Var


Diem:integer;
Begin


Write (‘Bai dat bao nhieu diem:’);readln(diem);
CASE diem OF


9,10: Writeln(‘Loai gioi’);
7,8: Writeln(‘Loai kha’);
5,6: Writeln(‘Loai trung binh’);
3,4: Writeln(‘Loai yeu’);
0,1,2: Writeln(‘Loai kem’);
END;


Readln
End.
2/Dạng đầy đủ


Cú pháp


CASE <Biến> OF


Hằng1a,hằng1b,………….,hằng1x: <Công việc 1>;


Hằng2a,hằng2b,………….,hằng1x: <Công việc 2>;
……….
HằngNa,hằngNb,………….,hằngNx: <Công việc N>
ELSE


<Công việc N+1>;
END;


<b>Ýù nghĩa: Khác dạng không đầy đủ ở chỗ: khi giá trị của <Biến> không thuộc tập hợp các</b>


hằng từ 1a đến Nx thì sẽ thực hiện <Cơng việc N+1>; (các lệnh sau từ khóa ELSE) rồi kết thúc
lệnh.


ví dụ 5: cũng như ví dụ 4 nhưng yêu cầu thêmlà nếu số điểm nhập vào không nằm trong các
số từ 0 đến 10 thì in ra câu: nhập điểm sai.


Program xeploại2;
Var


Diem:integer;
Begin


Write (‘Bai dat bao nhieu diem:’);readln(diem);
CASE diem OF


</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>

Write (‘nhap diem sai:’);
END;


Readln
End.



<b>Chú ý: Biến sau từ khóa CASE phải là một biến kiểu đếm được.</b>


III-CÁC LỆNH VÒNG LẶP


<b>1/Lệnh lặp với số lần lặp xác định</b>
a)Dạng 1:


Cú pháp: FOR <Biến>:= <Giá trị đầu> TO <Giá trị cuối> DO <Công việc>
Ý nghĩa: Các bước thực hiện lệnh như sau:


<b>Bước 1: Kiểm tra xem giá trị đầu <= giá trị cuối. Nếu đúng thì gán giá trị đầu cho biến và</b>
<b>thực hiện cơng việc.</b>


<b>Bước 2: Kiểm tra xem giá trị của biến < > giá trị cuối. Nếu đúng thì tăng thêm cho biến một</b>
<b>“đơn vị” (tức là biến:=SUCC(biến)) rồi thực hiện công việc.</b>


<b>Lặp lại bước 2 cho đến khi giá trị của biến bằng giá trị cuối thì kết thúc lệnh.</b>
Chú ý:


<b>-Biến sau từ khóa FOR gọi là biến đếm, biến đếm phải có kiểu đếm được và giá trị đầu <=</b>


<b>giá trị cuối.</b>


<b>-Trong các lệnh của cơng việc khơng được có các lệnh làm thay đổi giá trị của biến đếm.</b>
-Như vậy sau khi vịng lặp kết thúc thì giá trị của biến là giá trị cuối.


Ví dụ 6:
Var



i: integer;
begin


for i:= 1 to 5 do


writeln(‘day la vong lap thu ‘,i);
writeln(‘den day het vong lap’);
readln;


end.


Ví dụ 7: viết chương trình tính tổng của n số, số n và các số hạng nhập từ bàn phím khi chạy
chương trình.


Var


N,I,s,so:integer;
Begin


Write(‘Dãy có bao nhiêu số?’);readln(n);
s:=0;


FOR i:=1 TO n DO
Begin


Write(‘Nhập số thứ ’, i ,’:’); readln(so);
s:=s+so;


end;



writeln(‘Tổng của dãy số là S=’, s);
readln;


</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>

b)Dạng 2
cú pháp:


FOR <Biến>:= <giá trị đầu> DOWNTO <giá trị cuối> TO <công việc>


Ý nghĩa: tương tự dạng 1 nhưng sau mỗi lần lặp thì biến bị giảm một “đơn vị” (Biến :=
PRED(biến)).


Trong chương trình có thể có nhiều vòng lặp FOR…TO… DO hoặc FOR… DOWNTO… DO lồng
nhau. Lúc đó ứng với mỗi giá trị của biến ở vịng ngồi máy đều lặp lại cơng việc của vịng trong.


Ví dụ 8: tìm các số ngun dương là ước của n.
Program uocso;


Var


i,n:integer;
begin


write(‘nhap so n:’);readln(n);
for I:=n downto 1 do


if n mod i:=0 then
write(i:8);
readln;


end.



2/Lệnh lặp với số lần lặp không xác định
a)Dạng 1


Cú pháp: WHILE <Điều kiện> DO <Công việc>


nghĩa: Vào lệnh sẽ kiểm tra <Điều kiện>. Nếu <Điều kiện> đúng thì thực hiện <Cơng
việc> sau đó quay lại kiểm tra <Điều kiện>. Cứ tiếp tục như thế cho đến khi nào <Điều kiện> sai
thì kết thúc lệnh.


Lưu đồ cú pháp:


ví dụ 9: Tính tổng S=1+2+….+n sao cho S>1000. Hỏi khi đó S bằng bao nhiêu?
Var


i,s:integer;
Begin


s:= 0;
i:= 1;


</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>

s:= s + 1;
i:= i + 1;
end;


writeln(‘Khi do tong S=’,S);
readln;


End.



Ví dụ 10: Để tìm USCLN của 2 số a và b ta làm như sau: Đầu tiên ta cho UCLN bằng số
nhỏ hơn trong 2 số a hoặc b sau đó ta kiểm tra điều kiện: Nếu một trong hai số a hoặc b không chia
hết cho UCLN xuống 1 đơn vị và cứ lặp lại điều đó cho đến khi cả 2 số a và b đều chia hết cho
UCLN thì UCLN là số cần tìm.


Program USCLN;
Var


a,b,ucln: integer;
begin


write(‘nhap so a :’);readln(a);
write(‘nhap so b :’);readln(b);
if a < b then


ucln:= a
else


ucln:= b;


while (a mod ucln < > 0) or (b mod ucln < > 0) do
ucln := ucln – 1;


writeln(‘USCLN của hai số ‘,a,’và’,b,’la:’,ucln);
readln;


end.


Chú ý: Trong vịng lặp phải có một lệnh có khả năng làm thay đổi điều kiện sau từ khoá
WHILE để đến một lúc nào đó thì điều kiện này khơng cịn đúng nữa thì vịng lặp kết thúc. Trong


ví dụ 9 đó là lệnh S:=S+1 cịn trong ví vụ 10 đó là lệnh ucln := ucln – 1.


b)Dạng 2


Cú pháp: REPEAT <Công việc> UNTIL <Điều kiện>


Ý nghĩa: Vào lệnh sẽ thực hiện <cơng việc> sau đó kiểm tra
<Điều kiện>. Nếu <Điều kiện> sai thì tiếp tục thực hiện <cơng việc>, sau đó lại kiểm tra <Điều
kiện>. Quá trình trên cứ tiếp tục cho tới khi nào <Điều kiện> đúng thì kết thúc lệnh.


Ví dụ:Viết chương trình nhập vào một số nguyên dương n và xác định xem nó có phải là
số nguyên tố không?


</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>

n,i: integer;
begin


write(‘Hay nhap vao so n:’);readln(n);
i:=1;


REPEAT
i:= i+1;


UNTIL (n mod I = 0) or (i*i>n);
If i*i>n then


Write(n,’la so nguyen to’)
Else


Write(n,’la hop so ’);
Readln;



End.


c) Sự khác nhau giữa WHILE…DO và REPEAD…..UNTIL
Giữa hai loại lệnh này có sự khác nhau như sau:


Trong lệnh WHILE…DO thì <Điều kiện> sẽ được kiểm tra trước, nếu <Điều kiện> đúng thì
thực hiện <Cơng việc>. Cịn trong lệnh REPEAD…..UNTIL thì ngược lại <Cơng việc> sẽ được
làm trước rồi mới kiểm tra <Điều kiện>, nếu <Điều kiện> đúng thì vịng lặp kết thúc. Như vậy
tùy những hoàn cảnh khác nhau mà ta lựa chọn sử dụng lệnh nào thích hợp. Nếu dùng 2 loại
lệnh này để giải cùng một loại bài toán với cùng một giải thuật như nhau thì <Điều kiện> sau
WHILE và <Điều kiện> sau UNTIL là phủ định của nhau.


Chúng ta thường sử dụng lệnh lặp với số lần lặp không xác định để quay vịng một cơng
việc nào đó cho đến khi ta khơng muốn thực hiện nó nữa. Như vậy mỗi lần muốn tìm UCLS của
2 số nào đó ta phải chạy chương trình USCLN một lần. Điều đó làm chúng ta bực mình vì cứ
phải đánh Ctrl-F9 hồi. Có cách nào khắc phục điều đó khơng? Có đấy! Lệnh
REPEAD…..UNTIL sẽ giúp chúng ta. Hãy sửa đổi chương trình USCLS một chút như sau:


Program USCLN;
Var


a,b,ucln: integer;
traloi:char;
begin


REPEAD


write(‘nhap so a :’);readln(a);
write(‘nhap so b :’);readln(b);


if a < b then


ucln:= a
else


ucln:= b;


while (a mod ucln < > 0) or (b mod ucln < > 0) do
ucln := ucln – 1;


writeln(‘USCLN của hai số ‘,a,’và’,b,’la:’,ucln);
readln;


</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>

<b>2/Làm việc với môi trường của turbo pascal </b>


Trong bài 1, ta đã viết một chương trình Pascal rất đơn giản, những nó hồn tồn có thể giúp ta
làm quen với những thao tác đối với một chương trình Pascal bất kì. Ta có thể cho thực hiện chương
trình này, có thể sửa chữa nó, ghi nó vào đĩa thành một tệp, gọi nó vào bộ nhớ trong v.v… Điều
quan trọng là tất cả các thao tác đó có thể áp dụng cho một chương trình Pascal bất kì, dù nó phức
tạp đến mấy. Vì vậy ta có thể tập làm việc với một chương trình, với một tệp, thơng qua chương
trình đơn giản nói trên.


1. Mơi trường của Turbo Pascal


<i>Khởi Turbo Pascal là ta đi vào môi trường của hệ thống này. Môi trường này thể hiện trên màn</i>
hình ở dạng bảng chọn như sau:


Sau khi khởi động Turbo Pascal, trên màn hình đã có sẵn một cửa sổ của một tệp tên là
NONAME00.PAS. Tệp này có thể mang một chương trình để máy có thể làm ngay một số cơng
việc ban đầu nào đó, hoặc nó có thể chứa một đoạn văn bản nào đó. Nếu khơng cần thiết tệp này,


ta có thể đóng nó, đồng thời cũng đóng cửa sổ có ghi NONAME00.PAS bằng cách ấn đồng thời hai
phím Alt – F3.


Mơi trường trên giúp ta làm việc với Turbo Pascal: soạn thảo chương trình (Edit), thực hiện
chương trình (Run), ghi chương trình vào đĩa, gọi chương trình từ đĩa (File) v.v…


2. Cách làm việc với bảng chọn


Với bảng chọn (MENU) trên, muốn chọn công việc nào, ta dùng một trong các cách sau:
- Gõ đồng thời thời phím Alt và chữ cái có độ sáng cao trong tên các từ cần chọn. Ví dụ gõ
Alt – E để gõ chương trình.


- Nhấn phím F10, di chuyển vệt sáng đến từ cần chọn rồi gõ Enter.


-Nhiều cơng việc ghi trên menu cịn có thể thực hiện bằng cách gõ một số phím chức năng
cho nhanh. Ví dụ F3 để mở tệp, Alt – F3 để đóng tệp, Ctrl – F9 để thực hiện chương trình, Alt – X
để kết thúc làm việc với Turbo Pascal.


</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>

Trở lại công việc hiện nay, sau khi đã soạn và ghi chương trình CHAO.PAS lên đĩa, muốn
kiểm tra việc ghi này, ta gõ phím F3 để mở tệp. Trên màn hình sẽ hiện ra một cửa sổ, trong đó có
ghi danh mục các tệp trên đĩa ở ổ hoạt động. Ta thấy trong danh mục này có tên tệp CHAO.PAS.
Vì bây giờ ta chỉ muốn xem danh mục tệp trên đĩa chứ không muốn mở một tệp khác nên ta gõ
phím ESC để huỷ bỏ lệnh mở tệp và quay về màn hình soạn thảo.


<i>Hoạt động 1: Hãy sửa đổi chương trình “chào” để có thể cho xuất hiện nhiều văn bản hơn</i>


nữa trên màn hình, cụ thể là ngồi văn bản cũ cịn có thêm dòng “ Chung ta bat dau lam viec”.


<i>Giải đáp: Muốn vậy ta bổ sung vào chương trình cũ một dịng lệnh như sau:</i>



Program chao;
begin


write(‘Chao cac ban !’);


write(‘Chung ta bat dau lam viec !’);
readln;


end.


Một kiến thức mới cần ghi nhớ là ta đã dùng dấu (“;”) để ngăn cách hai lệnh.


<i>Hoạt động 2: Hãy cho chạy chương trình vừa sửa đổi.</i>


<i>Giải đáp: Gõ đồng thời Ctrl – F9, ta thấy xuất hiện trên màn hình:</i>


Chao cac ban ! Chung ta bat dau lam viec !
3. Những lệnh hiển thị


Đối với những chương trình trong mục 2, một điều ngồi ý ta là khơng có xuống dịng khi
ngắt câu thứ nhất. Như vậy là write không gây ra việc xuống dịng khi kết thúc văn bản. Muốn có
<b>xuống dịng, ta dùng một lệnh mới là writeln.</b>


<i>Hoạt động 3: Hãy sửa chương trình trở thành như sau:</i>


Program chao;
begin


writeln(‘Chao’);
writeln(‘ cac’);


writeln(‘ ban !’);
writeln;


writeln(‘CHUNG TA BAT DAU LAM VIEC !’);


writeln(‘ ******** ’);readln;
end.


Cho chạy chương trình này, ta thấy xuất hiện trên màn hình:
chao


cac
ban


CHUNG TA BAT DAU LAM VIEC !
********


Qua chương trình trên và chương trình ở mục 2, ta có thể nêu lại các lệnh hiển thị sau đây:
<b>-write(‘dãy kí tự’);</b>


Dãy kí tự trong dấu nháy đơn được đưa lên màn hình ngun văn.
<b>-writeln(‘dãy kí tự’);</b>


<b>Lệnh này có tác dụng giống như write nhưng có xuống dòng khi kết thúc văn bản.</b>
<b>-writeln; </b>


</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=44>

<i>Hoạt động 4: Hãy sửa chương trình trở thành như sau:</i>


Program chao;
Begin



writeln(‘Chao’);
writeln(‘ cac’);
writeln(‘ ban !’);
writeln;


writeln(‘CHUNG TA BAT DAU LAM VIEC !’);


writeln(‘ ******** ’);readln;
end.


Cho chạy chương trình này, ta thấy kết quả vẫn như trên. Như vậy một điều lí thú là, trong
chương trình Pascal, chỗ nào đã đã có 1 kí tự trống (trừ trường hợp bên trong văn bản) thì ta có thể
thay bằng một số tuỳ ý các kí tự trống và một số tuỳ ý lần xuống dịng mà khơng hề làm thay đổi
tác dụng của chương trình. Đặc điểm này cho phép ta linh hoạt trong cách trình bày một chương
trình Pascal (viết lùi vào, xuống dịng, trình bày thành từng khối v.v…) để chương trình đó sáng sủa,
dễ đọc và dễ hiểu.


Để ra khỏi Pascal trở về hệ thống, ta gõ đồng thời hai phím Alt – X. lúc đó máy hỏi có ghi
chương trình đang có trong bộ nhớ lên đĩa hay khơng. Nếu muốn ghi thì ta ấn phím chữ Y (viết tắt
của Yes), nếu khơng thì ấn phím N (viết tắt của No).


TÓM TẮT


4. p dụng


<b>C. Dịch chương trình</b>


<b>D. Chạy thử và kiểm tra kết quả</b>



1. Những lệnh


writeln(‘dãy kí tự’);


Dãy kí tự trong hai dấu nháy đơn được đưa lên màn hình
ngun văn, sau đó thì xuống dịng.


Writeln;


Bỏ trống một dòng.


2. Mơi trường làm việc của Turbo Pascal


Trong bài này ta mới chỉ làm việc với các phím sau:


<b>F3 mở tệp</b>
<b>Alt-F3 đóng tệp</b>
<b>F2 ghi tệp lên đĩa</b>


<b>Ctrl-F9 thực hiện chương trình</b>


</div>

<!--links-->

×