Tải bản đầy đủ (.pdf) (105 trang)

Bài giảng tin học ứng dụng trong hóa học - Đại học Thái Nguyên doc

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 (703.87 KB, 105 trang )



đạI học thái nguyên
trờng đạI học s phạm
Khoa Hoá học




TS Mai Xuân Trờng
D : 0912.739.257 CQ : 0280.3856.853 NR 0280.3759.402




Bài giảng


Tin học ứng dụng trong hoá học
(2 tín chỉ)



(TI LIU LU HNH NI B)


















Thái nguyên, 2011


TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

1
Mở đầu

Tin học trong hóa học (chemometric) hay hoá tin (computational
chemistry) là danh từ dùng để chỉ một lĩnh vực khoa học kết hợp toán
học - mà chủ yếu là phơng pháp tính - với máy tính để giải các bài toán hoá học.
Hoá tin bao giờ cũng đợc cấu thành bởi ba yếu tố: thuật toán (algorithm), đoạn
chơng trình máy tính (computer code) và nội dung hoá học.
Tin học ứng dụng trong hóa học có thể hiểu là các phơng pháp tính toán trên
máy tính để giải các bài toán hoá học và không có tính đặc thù đầy đủ. Tức là có thể
có những phơng pháp chỉ dùng để giải các bài toán hoá học, thờng là những phơng
pháp tổ hợp cấu thành bài toán lớn nh hoá lợng tử (quantum chemistry), mô phỏng
động lực phân tử lợng tử (quantum molecular dynamics simulation), và có những
phơng pháp không chỉ đợc dùng trong hoá học mà còn dùng trong các lĩnh vực
khác. Các phơng pháp này, đặc biệt là trong việc khai thác dữ liệu (datamining),

thờng là những phơng pháp đơn, không quá phức tạp và xuất phát từ những bài toán
cơ bản trong toán học về phơng pháp tính nh: phơng pháp hồi quy phi tuyến, giải
hệ phơng trình vi phân, lọc Kalman (Kalman filter), mạng nơron,
Những năm gần đây, sự phát triển các ngôn ngữ lập trình, thuật toán, các
bài toán hoá học, các phần mềm tính toán ứng dụng trong hoá học và số lợng
ngời sử dụng ngày càng nhiều. Để phục vụ công tác giảng dạy và học tập tin học
ứng dụng trong hóa học, chúng tôi đã biên soạn bài giảng "Tin học ứng dụng trong
hoá học". Hiện nay có rất nhiều thuật toán, phần mềm cũng nh các bài toán hoá
tin ứng dụng đã đợc tải lên mạng INTERNET, bạn có thể tìm thấy trên mạng các
thuật toán dới dạng mã nguồn mở cho hầu hết các bài toán ứng dụng trong hoá
học thì việc thay đổi cách học thực là rất cấp thiết. Tuy nhiên để có thể hiểu đ
ợc
các chơng trình đó ta cần phải hiểu các khái niệm cơ bản của tin học dùng trong
hoá học nh các học thuật toán, những lệnh rất cơ bản của ngôn ngữ lập trình đó.
Vì vậy giáo trình này chủ yếu cung cấp những khái niệm cơ bản nhất của
các ngôn ngữ lập trình để ngời học có thể lập trình những chơng trình đơn giản
hay có thể sử dụng các chơng trình nguồn mở đã có.
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

2
Chơng 1 : mở đầu

1.1. các khái niệm cơ bản
1.1.1. Thông tin
Mọi yếu tố có thể mang lại sự hiểu biết đều đợc gọi là thông tin. Thông
tin đợc thể hiện dới nhiều dạng thức khác nhau. Thông tin về một đối tợng
chính là các dữ kiện về đối tợng đó, càng nhiều thông tin thì độ bất định của đối
tợng càng giảm xuống.
1.1.2. Đơn vị đo thông tin
Đơn vị đo thông tin trong máy tính đợc gọi là bít. 1 bít mang lợng thông

tin tơng ứng với 1 trong 2 khả năng có thể xảy ra: 1 (tơng ứng với có điện hay
bóng đèn sáng) hoặc 0 (tơng ứng với không có điện (bóng điện tắt) ).
1 byte = 8 bít 1KB = 1024 byte 1MB = 1024KB
1GB = 1024MB
1.1.3. Xử lý thông tin bằng máy tính điện tử






Máy tính sẽ không làm gì nếu không có tác động của con ngời. Ngời sử
dụng phải nhập số liệu, bấm các phím thực hiện phép toán cũng nh yêu cầu
hiển thị kết quả hoặc lu trữ kết quả.
1.2. Cấu trúc hệ xử lý thông tin tự động












T
hông tin vào Quá trình xử lý Kết quả
Quy tắc theo đó quá trình xử lý đợc thực hiện (do con ngời đặt ra)

Thiết bị vào
Bàn phím
Chuột
ổ đĩa
Máy Scan
CPU
Bộ nhớ RAM
Bộ nhớ ROM
Bộ xử lý trung tâm
Bộ số học logic
Bộ điều khiển
Thiết bị ra
Màn hình
Máy in
ổ đĩa
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

3
Các thiết vào và các thiết ra gọi là các thiết bị ngoại vi, tùy theo yêu cầu
mà ta có thể thêm, bớt các thiết bị ngoại vi cho phù hợp.
Máy tính hoạt động dựa trên nguyên lý cơ bản Von Neumann. Các lệnh và
dữ liệu cùng đợc lu trữ trong bộ nhớ đợc tạo bởi các từ địa chỉ dựa trên 2 yếu
tố then chốt :
+ Điều khiển bằng chơng trình: Máy tính hoạt động theo sự chỉ dẫn, điều
khiển của chơng trình đợc lu trữ trong bộ nhớ của nó. Các bớc tác động
đợc tiến hành theo các câu lệnh của chơng trình. Chơng trình chỉ dẫn cho
máy tính biết phải làm gì và phải làm nh thế nào.
+ Truy xuất theo địa chỉ: Dữ liệu theo nghĩa rộng (dữ liệu vào, kết quả
trung gian, kết quả cuối cùng, chơng trình, dữ liệu ra, . . ) đợc lu trữ trong
RAM tại một vùng nhớ đợc định vị bằng các số thứ tự đợc gọi là địa chỉ. Dữ

liệu đợc chỉ định và đợc truy cập (đọc hay ghi) theo địa chỉ ô nhớ chứa chúng.
1.3. phần mềm
Trong tin học, thuật ngữ phần mềm đợc dùng để nói về các chơng trình
dùng để điều khiển hoạt động của máy tính, xử lý dữ liệu phục vụ cho một ứng
dụng cụ thể trong hoạt động kinh tế, sản xuất, kinh doanh, . . . Ví dụ: các chơng
trình nạp sẵn trong ROM, các chơng trình phần mềm do ngời lập trình viết.
Nếu ta đa ra khỏi máy tình toàn bộ các chơng trình nạp sẵn trong nó, kể
cả các chơng trình ghi sẵn trong ROM thì những gì còn lại đợc gọi là phần
cứng của máy tính. Nh vậy, thuật ngữ phần cứng đợc dùng để chỉ linh kiện,
chi tiết, thiết bị lắp ráp thành máy tính.
Các chuyên gia phần cứng tập trung vào việc thu nhỏ kích thớc, khối
lợng các linh kiện điện tử, cơ khí, bộ nhớ nhằm làm giảm năng lợng tiêu hao
cho máy tính, tăng khả năng lu trữ và vận tốc tính toán.
Các chuyên gia phần mềm tập trung vào việc xây dựng hoạt động chính
xác, khoa học và tiện lợi trên cơ sở phần khai thác tối đa khả năng của máy tính
phục vụ cho lợi ích của con ngời. Sự phối hợp chặt chẽ giữa hai lĩnh vực phần
cứng và phần mềm là động lực thúc đẩy sự phát triển của tin học
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

4
Chơng 2 : một số ngôn ngữ lập trình

2.1. Mở đầu
Các ngôn ngữ lập trình là phơng tiện giao tiếp giữa ngời và máy tính.
Nh ta đã biết, muốn yêu cầu máy tính giải một bài toán nào đó, ví dụ tính giá trị
của biểu thức a = (b + c).(d + e) hoặc a = b + c.d + e chúng ta phải viết một
chơng trình quy định thật rõ trật tự thực hiện các thao tác để đợc kết quả mong
muốn. Nh vậy chơng trình máy tính chính là một thuật giải đợc viết dới
dạng một quy định bằng một ngôn ngữ. Ngôn ngữ dùng để viết chơng trình
máy tính đợc gọi là ngôn ngữ lập trình.

Ví dụ: Để tính biểu thức a = (b + c).(d + e) thì quá trình thực hiện việc tính
toán bằng chơng trình máy tính nh sau:
Bớc 1. Đọc giá trị b ở bảng 1.
Bớc 2: Đọc giá trị c ở bảng 2, cộng b với c.
Bớc 3: Ghi giá trị tổng (b + c) vào bảng 5.
Bớc 4: Đọc giá trị d ở bảng 3.
Bớc 5: Đọc giá trị e ở bảng 4, cộng d với e.
Bớc 6: Ghi giá trị tổng (d + e) ra bảng 6.
Bớc 7: lấy giá trị ở bảng 5 nhân với giá trị ở bảng 6.
Bớc 8: ghi giá trị tích (b + c).(d + e) ra bảng 7 và gán cho giá trị a.
Bớc 9: Viết giá trị a ở bảng 7.
Bớc 10. Dừng chơng trình.
Các bảng 3, 4, 6, 7 có thể dùng lại bảng 1, 2 bằng cách xóa đi (ghi đè lên)
sau khi đã dùng xong.
Thuật giải (các bớc) ở trên chỉ để con ngời thực hiện, muốn cho máy
tính có thể hiểu và thực hiện đợc đúng ý đồ của chúng ta cần phải diễn đạt
thuật giải đã cho dới một dạng quy định nào đó. Một trong số các dạng quy
định đó là hợp ngữ. Hợp ngữ bao gồm tên các câu lệnh và các quy tắc viết các
câu lệnh để máy tính hiểu đợc. Tên các cấu lệnh thờng đợc viết dới dạng
tiếng anh nh: READ, WRITE, INPUT, ADD, PRINT, . . .
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

5
Ngoài ra nh ta đã biết, khi nạp chơng trình vào bộ nhớ chúng ta phải
dành chỗ lu trữ các giá trị của số liệu. Ví dụ trên là các giá trị: a, b, c, d, e.
INPUT b (nhập giá trị b từ bàn phím, ghi vào ô nhớ 1)
INPUT c (nhập giá trị c từ bàn phím, ghi vào ô nhớ 2)
INPUT d (nhập giá trị d từ bàn phím, ghi vào ô nhớ 3)
INPUT e (nhập giá trị e từ bàn phím, ghi vào ô nhớ 4)
LOAD b (đọc b ở vào ô nhớ 1)

ADD c (cộng c ở ô nhớ 2 vào ô nhớ 1, kết quả giữ ở ô nhớ 1)
MOVE a (ghi kết quả ô nhớ 1vào ô nhớ 5)
LOAD d (đọc d ở ô nhớ 3)
ADD e (cộng e ở ô nhớ 4 vào ô nhớ 3, kết quả giữ ở ô nhớ 3)
MULT a (nhân kết quả ô nhớ 3 với ô nhớ 5, kết quả giữ ở ô nhớ 3)
MOVE a (ghi kết quả từ ô nhớ 3 vào ô nhớ 5)
PRINT a (In ô nhớ 5 ra màn hình hoặc máy in)
HALT (Dừng chơng trình)
Chơng trình này phải sử dụng các ô nhớ (bảng) để lu giữ số liệu, cụ thể
là:
1 (ô nhớ dành cho a)
2 (ô nhớ dành cho b)
3 (ô nhớ dành cho c)
4 (ô nhớ dành cho d)
5 (ô nhớ dành cho e)
Chơng trình hợp ngữ trên nhận các giá trị b, c, d, e do ngời sử dụng
nhập từ bàn phím của máy tính rồi tính và hiển thị giá trị của biểu thức ra màn
hình.
Ngôn ngữ máy: Sau khi nạp chơng trình hợp ngữ trên vào máy tính,
trong máy sẽ diễn ra hai quá trình sau đây:
+ Dịch chơng trình hợp ngữ sang một chơng trình viết bằng ngôn ngữ
máy.
+ Thực hiện chơng trình đã dịch.
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

6
Tại sao lại phải dịch: Vì máy tính đợc thiết kế và làm việc trên cơ sở
của hệ nhị phân. Chơng trình viết bằng ngôn ngữ máy chỉ chứa các ký hiệu 0
(đèn tắt) và 1 (đèn sáng). Việc dịch từ chơng trình hợp ngữ sang ngôn ngữ máy
cũng đợc các nhà thiết kế máy tính chuẩn bị trớc và nạp sẵn trong máy. Khi

dịch, mỗi câu lệnh của hợp ngữ sẽ đợc chuyển sang dạng đặc biệt gọi là mã
máy hay mã nhị phân. Ví dụ câu lệnh LOAD (đọc) sẽ đợc chuyển thành 0000,
câu lệnh ADD (cộng) sẽ đợc chuyển thành 0001. Các ô nhớ dành cho các biến
a, b, c, d, e sẽ đợc gán địa chỉ của từ ứng với chúng. Ví dụ biến a sẽ chiếm vùng
nhớ bắt đầu bằng địa chỉ 00100000, biến b chiếm địa chỉ 00100010,
Khi đó dòng câu lệnh hợp ngữ: LOAD a sẽ đợc dịch thành:
0000 00100000.
Các ngôn ngữ lập trình bậc cao
Có thể viết trực tiếp chơng trình bằng ngôn ngữ máy đợc không? Có
thể. Tuy nhiên, nh ta đã thấy việc làm này rất vất vả và dễ sinh lỗi. Các nhà lập
trình dựa trên nguyên lý máy tính đợc điều khiển bằng chơng trình để sáng tạo
ra các ngôn ngữ lập trình gần với ngôn ngữ tự nghiên, phù hợp với tâm lý và t
duy của ngời lập trình để diễn đạt các thuật toán đợc trong sáng và tự nhiên.
Việc đặt ra hợp ngữ là một cố gắng bớc đầu giúp cho những ngời lập
chơng trình đợc thuận tiện hơn. Các câu lệnh của hợp ngữ đợc gán tên khá
gần với ngôn ngữ tự nhiên, việc dành vùng nhớ cho các biến đợc thực hiện
thông qua tên biến.
Vận dụng t tởng dịch từ ngôn ngữ này sang ngôn ngữ khác, các nhà tin
học đã sáng tạo ra những ngôn ngữ lập khác nhau thuận tiện hơn nữa với các
u
điểm sau:
+ Các câu lệnh của ngôn ngữ lập trình gần với ngôn ngữ tự nghiên.
+ Tùy theo lĩnh vực ứng dụng mà các ngôn ngữ lập trình mới này cung cấp
các phơng tiện trợ giúp để giải các bài toán khoa học, kỹ thuật hoặc quản lý.
Ngời ta gọi các ngôn ngữ nói trên là các ngôn ngữ lập trình bậc cao để
phân biệt với các ngôn ngữ lập trình bậc thấp là hợp ngữ và ngôn ngữ máy.
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

7
Quá trình giải các bài toán nhờ sự giúp đỡ của máy tính bao gồm các giai

đoạn sau:
Giai đọan 1: Tìm hiểu bài toán bao gồm việc xác định giả thiết, các yêu
cầu cần phải thực hiện, mục đích cần phải đạt.
Giai đoạn 2: Xác định thuật giải để giải bài toán đã cho.
Giai đoạn 3: Lập trình: sử dụng một ngôn ngữ bậc cao để diễn đạt thuật
giải.
Giai đoạn 4: Sử dụng một hệ trợ giúp, thông qua việc bấm các phím thích
hợp trên bàn phím để nhập chơng trình vào máy tính.
Giai đoạn 5: Yêu cầu máy dịch chơng trình đã nạp sang ngôn ngữ bậc
thấp (ngôn ngữ máy).
Giai đoạn 6: Yêu cầu máy thực hiện chơng trình đã dịch.
Nếu tại một giai đoạn nào đó ta phát hiện ra sai sót thì cần quay lại giai
đoạn trớc đó để sửa lỗi rồi thực hiện lại một số giai đoạn cần thiết cho tới khi
thu đợc kết quả mong muốn.
Chơng trình dịch
Trong các ngôn ngữ bậc thấp thì ngôn ngữ máy có bậc thấp nhất. Cần nhớ
là máy tính chỉ làm việc với ngôn ngữ máy.
Việc dịch một chơng trình viết bằng ngôn ngữ bậc cao sang ngôn ngữ
máy do một chơng trình đặc biệt đảm nhận gọi là chơng trình dịch. Chơng
trình dịch thực hiện chức năng sau đây:
+ Duyệt chơng trình nguồn để phát hiện và thông báo các lối cú pháp tức
là những lỗi do ngời lập trình viết sai.
+ Trong trờng hợp chơng trình dịch không phát hiện thấy lỗi trong
chơng trình nguồn nó sẽ dịch chơng trình nguồn thành chơng trình viết trên
ngôn ngữ máy gọi là chơng trình đích.
2.2. Ngôn ngữ BAssic
Ngôn ngữ BASIC (Beginers All purpose Symbolic Instruction đoạn
chơng trình - thông dịch) do Kemeny và Kuzt sáng lập ra vào năm 1965. Đợc
dùng nh là một ngôn ngữ khởi đầu cho việc lập trình. Hiện đợc cài đặt và phổ
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên


8
biến nhất trên máy tính IBM và tơng thích. Xu hớng hiện nay là cấu trúc hóa
ngôn ngữ này và tiếp cận dần với PASCAL. Một tiêu chuẩn mới đã đợc tác giả
soạn ra với tên TRUE BASIC.
2.3. Ngôn ngữ PASCAL
Do tính tờng minh về cấu trúc nên PASCAL rất thích hợp cho việc giảng
dạy cơ sở lập trình, đặc biệt đối với những ngời không chuyên tin. Bạn đọc có
thể đọc rất nhiều giáo trình khác nhau về PASCAL cơ bản (ví dụ Quách Tuấn
Ngọc Ngôn ngữ lập trình PASCAL).
T liệu Đọc thêm
Ngôn ngữ PASCAL là ngôn ngữ lập trình bậc cao do giáo s Niklaus Wirth (trờng
đại học kỹ thuật Zurich - Thụy Sĩ) sáng lập và công bố vào đầu những năm 1970, tên PASCAL
để kỷ niệm nhà toán học ngời Pháp Blaisse PASCAL ở thế ký 17. Lúc đầu, PASCAL đợc
sáng tác với mục đích làm ngôn ngữ cho máy tính để dạy học cho sinh viên ở các trờng đại
học: nó giúp cho sinh viên cũng nh ngời mới học lập trình có đợc thói quen viết một
chơng trình có cấu trúc sáng sủa, rõ ràng, dễ hiểu và dễ đọc cho cả mọi ngời khác. Trớc
khi có PASCAL, các sinh viên đều đợc học ngôn ngữ lập trình FORTRAN, một ngôn ngữ lâu
đời nhất và là ngôn ngữ không có cấu trúc. Giáo s Wirth thấy rằng có thể tránh đợc rất
nhiều lỗi khi lập trình với một ngôn ngữ cấu trúc khối và có sự kiểm tra kỹ lỡng sự tơng
thích giữa các dữ liệu.
PASCAL là một ngôn ngữ có định kiểu mạnh mẽ, có nghĩa là mọi biến và hằng của
một kiểu dữ liệu không thể tự do đem trộn lẫn với các biến và hằng của một kiểu dữ liệu khác.
Ví dụ cả hai vế phép gán phải là cùng một kiểu, ngoại trừ trờng hợp vế trái là một biến số
thực (real) còn vế phải có thể là số nguyên (integer). Việc định kiểu một cách chặt chẽ nh
vậy bắt buộc ngời lập trình luôn luôn phải có các biểu thức tơng thích nhau về kiểu dữ liệu.
PASCAL là một ngôn ngữ có cấu trúc. Một ngôn ngữ có cấu trúc khối là ngôn ngữ
mà ta có thể tách các thông tin dữ liệu (biến, hằng, . . .) và các lệnh cần dùng cho một nhiệm
vụ xác định thành những khối riêng, tách ra khỏi phần còn lại của chơng trình để ngời lập
trình có thể giải quyết dần từng phần một, từng khối một thậm trí có thể cho nhiều ngời cùng

tham gia lập trình, mỗi ngời phụ trách một vài khối. Thông thờng các khối ứng với các
nhiệm vụ cụ thể và xác định, đợc thực hiện bằng các chơng trình con với các biến địa
phơng là các biến tạm thời của chơng trình con đó. Bằng cách này ta có thể viết các chơng
trình con sao cho các sự kiện xảy ra trong đó không làm ảnh hởng tới các phần khác của
chơng trình nằm ngoài chơng trình con. Có thể nói tính cấu trúc của chơng trình PASCAL
đợc thể hiện trên 3 mặt.
+ Cấu trúc về mặt dữ liệu: từ các dữ liệu đã có (kiểu đơn giản hoặc dữ liệu cấu trúc) ta
có thể xây dựng các cấu trúc dữ liệu phức tạp hơn.
+ Cấu trúc về mặt lệnh: Từ các lệnh đã có (lệnh đơn giản hoặc lệnh có cấu trúc) ta có
thể nhóm chúng lại với nhau và đặt giữa hai từ khóa BEGIN và END thành câu lệnh phức tạp
hơn, gọi là lệnh hợp thành hay lệnh ghép.
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

9
+ Cấu trúc về mặt chơng trình: Một chơng trình có thể chia thành các modun
chơng trình độc lập (chơng trình con).
Bộ chữ viết của PASCAL
Ngôn ngữ PASCAl đợc xây dựng với bộ chữ viết sau:
Bộ 26 chữ cái la tinh: 26 chữ cái in hoa A, B, C, . . . ,Z
26 chữ cái thờng a, b, c, . . . , z
Ký tự gạch nối _.
Các chữ số thập phân: 0, 1, 2, . . ., 9
Các ký hiệu toán học thông thờng +, -, *, /, =, <, >, (),
Các ký hiệu đặc biệt nh các dấu chấm câu và các dấu khác: .,; :[]?%\!&#$
Dấu cách (Space) đợc dùng để ngăn cách các từ. Vì khi viết nó không hiện ra chữ gì
nên để tiện nhận biết trong một số trờng hợp nh cần đếm số dấu cách, trong tài liệu thờng
dùng dấu .
Từ vựng của PASCAL gồm một số từ riêng PASCAL đợc gọi là từ khóa (key word).
Các từ khóa này ngời sử dụng phải dùng đúng với cú pháp, không đợc dùng nó vào việc
khác hoặc đặt tên mới trùng với các từ khóa. Đó là các từ:

Từ khóa chung: PROGRAM, BEGIN, END, PROCEDURE, FUNCTION
Từ khóa để khai báo: CONST, VAR, LABEL, TYPE, ARRAY, STRING, RECORD,
SET, FILE, OF
Từ khóa của lệnh thử và rẽ nhánh: IF . . . THEN . . . ELSE. . ., CASE . . . OF. . .
Từ khóa của lệnh lặp: FOR . . . TO . . DO . . . , FOR. . . DOWNTO . . . DO. . . ,
WHILE. . . DO. . . , REPEAT. . . UNTIL. . .
Từ khóa điều khiển: WITH, GO TO.
Từ khóa toán tử: AND, OR, NOT, IN, DIV, MOD
Từ khóa NUL: NUL
Các từ khóa này có thể viết in hay viết thờng, giá trị và ý nghĩa của các từ khóa không
thay đổi.
Tên hay định danh (identifier)
Tên hoặc định danh là một dãy ký tự (không có dấu cách) đợc dùng để chỉ tên hằng
số, tên hằng ký tự, tên biến, tên kiểu, tên chơng trình, . . . Tên đợc tạo thành từ các chữ cái
và chữ số song bắt buộc chữ đầu phải là chữ cái. Tất nhiên ta phải đặt tên sao cho có ý nghĩa,
dễ nhớ. Để làm sáng sủa tên, PASCAL cho phép dùng dấu gạch dới "_" khi viết tên.
Một số tên nh tên của chơng trình con (SIN , COS, . . . ) đã đợc PASCAL định
nghĩa sẵn đợc gọi là tên chuẩn hay tên đã đợc định nghĩa. Sự khác nhau giữa tên chuẩn và từ
khóa là ngời sử dụng có thể định nghĩa lại tên chuẩn, dùng tên chuẩn vào việc khác nếu
muốn còn từ khóa thì bị nghiêm cấm dùng vào việc khác trái quy định.
Một số tên chuẩn của PASCAL: BOOLEAN, CHAR, INTEGER, REAL, BYTE,
TEXT, FALSE, TRUE, MAXINT, ABS, ARCTAN, CHR, COS, SIN, EOF, EOLN, EXP, LN,
ODD, ORD, ROUND, TRUNC, SQR, PRED, SUCC,DISPOSE, NEW, GET, PUT, READ,
READLN, WRITE, WRITELN, RESET, REWRITE.
Dấu chấm phẩy ; dùng để ngăn cách các câu lệnh của PASCAL và không thể thiếu
đ
ợc. Không nên hiểu dấu ; là kết thúc cấu lệnh.
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

10

Lời giải thích (Comment) có thể để bất kỳ chỗ nào của chơng trình cho dễ hiểu, dễ đọc
hơn mà không làm ảnh hởng đến các phần khác. Lời giải thích đợc đặt giữa hai dấu { } hoặc
(**) : { lời giải thích } hoặc giữa cụm dấu (* lời giải thích *).
Do có rất nhiều tài liệu về PASCAL và cũng do khuôn khổ của giáo trình
này nên chúng tôi chỉ trình bày những khái niệm cơ bản nhất về PASCAL để
ngời đọc có thể hiểu và lập trình đợc những chơng trình đơn giản.
2.3.1. Cấu trúc chơng trình PASCAL
Một tập các câu lệnh tạo thành một chơng trình. Lệnh còn đợc gọi là chỉ
thị dùng để hớng dẫn máy tính làm việc. Cấu trúc của một chơng trình
PASCAL hợp thành bởi các phần sau: đầu chơng trình, mô tả, thân chơng trình
và kết thúc.
Đầu chơng trình
Phần đầu của chơng trình bao gồm:

Trong đó tên chơng trình không đợc có dấu cách và các ký tự đặc biệt,
không đợc dùng các toán tử để đặt tên chơng trình, . . . kết thúc tên chơng
trình là dấu ;.
Ví dụ: PROGRAM GIAI_PHUONG_TRINH_BAC_2;
Phần mô tả
Phần mô tả có thể gồm có 5 phần: mô tả nhãn (địa chỉ), hằng, kiểu, biến,
thủ tục và hàm (chơng trình con).
Mô tả nhãn (địa chỉ)
Nhãn là một số nguyên dơng có 4 chữ số. Mô tả nhãn liệt kê tất cả các
nhãn sử dụng trong chơng trình và dùng để định vị các toán tử khi cần điều
khiển chơng trình hoạt động ngoài quy tắc thông thờng (từ trên xuống dới).
Cách mô tả :


Ví dụ: LABEL 10, 20, 123; mô tả 3 nhãn dùng trong khối.
PROGRAM tên chơng trình;

LABEL số nguyên;
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

11
Xác định hằng
Các hằng có giá trị không đổi trong suốt quá trình thực hiện chơng trình.
Bởi vậy không đợc phép dùng 1 lệnh nào để thay đổi giá trị của hằng. Cách xác
định:



Ví dụ: CONST Pi = 3.141598; ch= ' gia tri tich phan';
Xác định kiểu (TYPE)
TYPE dùng để xác định các kiểu dữ liệu mới so với 4 kiểu đã có của
PASCAL (Integer, Real, Char, Boolean).
Cách xác định :



Ví dụ: TYPE city = (HANOI,TOKYO, MOSCOW, PARIS);
color = (xanh, do, trang,tim,vang);
Với các kiểu này có thể dùng các hàm chuẩn ORD, PRED, SUCC. Sau khi
khai báo kiểu thì khi mô tả biến cần chỉ rõ biến nào thuộc kiểu đã đợc mô tả.
Mô tả biến
Nguyên tắc rất cơ bản của PASCAL là trong chơng trình dùng biến nào
phải mô tả biến đó. Khác với một số ngôn ngữ khác, PASCAL không có các biến
mặc định. Cách mô tả:




Ví dụ: VAR m,n : integer; ch : char;
x,y : real; j : boolean;
h : city;
chỉ ra m, n, ch, x, y, j, h : là các biến, trong đó: m, n là kiểu nguyên, x, y
là thực, ch là kí tự, j là logic và h là kiểu city (đã đợc định nghĩa trong TYPE).
CONST tên hằng 1 = gía trị hằng 1;
tên hằng 2 = gía trị hằng 2;
TYPE Tên kiểu 1 = ( phổ các giá trị của kiểu 1);
Tên kiểu 2 = ( phổ các giá trị của kiểu 2);
VAR tên biến 1, tên biến 2 : kiểu 1;
tên biến 3, tên biến 4 : kiểu 2;
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

12
Mảng
Để có thể truy nhập thông tin và sử dụng các phần tử trong dãy số
PASCAL đa vào khái niệm mảng. Mảng là một kiểu biến (hoặc hằng) có chỉ số
dùng để chỉ thứ tự của phần tử đó trong dãy số.
Cách mô tả mảng 1 chiều:



hoặc khai báo theo kiểu (TYPE) rồi sau đó mới khai báo biến nh sau:





Ví dụ dãy số dới đây :
x 1234 5 n

y1235109 1

Khai báo biến x và y là biến số thực theo kiểu mảng nh sau:
x,y: array[1 n] of real;
hoặc khai báo thông qua việc xác định trớc một kiểu biến mới
TYPE M1=array[1 10] of real;
VAR X,y: M1;
Cách thứ hai phổ biến hơn khi chúng ta phải sử dụng các chơng trình con
có các biến hình thức là các mảng (xem phần sau). Trong các tính toán, các phần
tử của mảng đóng vai trò nh các biến đơn.
Ngoài mảng một chiều còn có các mảng hai và ba chiều:
Cách mô tả mảng 2 chiều:
tên biến 1, tên biến 2, :
ARRAY [1 n, 1 m] of kiểu biến;
hoặc khai báo theo kiểu (TYPE) rồi sau đó mới khai báo biến nh sau:
tên biến 1, tên biến 2, : ARRAY [1 n] of kiểu biến;
tên biến 3, tên biến 4, : ARRAY [1 m]
of kiểu biến;
TYPE Mang1 = array [1 n] of kiểu biến;
Mang2 = array [1 m]
of kiểu biến;
VAR
tên biến 1, tên biến 2, : Mang1;
tên biến 3, tên biến 4, :
Mang2 ;
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

13
TYPE Mang1=array[1 n, 1 m] of kiểu biến;
VAR tên biến 1, tên biến 2, : Mang1;

Tơng tự ta có cách mô tả mảng 3 chiều:
tên biến 1, tên biến 2, :
ARRAY [1 n, 1 m,1 k] of kiểu biến;
Phần thân chơng trình
Thân chơng trình bao gồm các toán tử (còn gọi là các câu lệnh hoặc chỉ
thị) để thực hiện công việc chủ yếu của chơng trình và đợc đặt sau từ khóa:

Phần kết thúc
Phần kết thúc bao gồm tập hợp lệnh


Với một số phiên bản của chơng trình dịch PASCAL câu lệnh READLN
không nhất thiết phải có.
2.3.2. Các toán tử
Toán tử gán
Toán tử gán có dạng tổng quát :


Khi gặp lệnh này kết quả tính toán của biểu thức vế phải hoặc giá trị biến,
hằng vế phải đợc gán cho biến vế trái.
Ví dụ: Sau đây là một đoạn chơng trình có chứa các lệnh gán
W1 := a*2; W2 := b*2; y := sin(W1 + W2);
W1 := W1 + ln(y); W2 := W2 + y ;
y := (W1 + W2)/(W1 + SQRT(W2));
Toán tử chuyển (GOTO)
Dạng tổng quát


Dới tác động của toán tử này chơng trình chuyển đến nhãn (đã đợc xác
định bằng LABEL).

READLN; END.
Tên biến := biểu thức hoặc biến hoặc hằng;
GOTO nhãn;
BEGIN
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

14
Ví dụ: LABEL 10;

GOTO 10;

10: x2 := x1;
Toán tử xuất nhập
Có hai cách nhập dữ liệu PASCAL. Nhập qua bàn phím và nhập từ tệp dữ
liệu. Việc nhập từ tệp sẽ đợc trình bày kỹ trong học phần dành cho cao học.
Dới đây là cách nhập từ bàn phím. Bao giờ cũng có hai câu lệnh đi kèm. Câu
lệnh viết WRITE để thông báo nhu cầu nhập liệu, sau đó là câu lệnh đọc READ.
Cách mô tả:



Liên quan đến con trỏ trên màn hình, nếu sau khi viết thông báo hoặc
biến, nhập dữ liệu, bạn muốn con trỏ xuống hàng thì mô tả nh sau



Ví dụ để nhập ba hệ số của phơng trình bậc hai a,b,c ta cần hai câu lệnh
sau:
Write( nhap a, b, c: );
Read(a,b,c);

Nếu sau khi nhập dữ liệu, bạn muốn con trỏ xuống hàng thì viết
Write( nhap a, b, c : );
Readln(a,b,c);
Về cơ bản PASCAL dùng hai kiểu viết: định khuôn và không định khuôn.
Theo kiểu không định khuôn thì khi viết ra màn hình, các biến sẽ đợc bố trí
theo kiểu mặc định số cột dành cho mỗi biến hoặc hằng và các biến thực sẽ đợc
viết dới dạng dấu phảy di động.
WRITE(Thông báo hoặc biến);
READ(biến);
WRITELN(Thông báo hoặc biến);
READLN(biến);
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

15
Ví dụ:
Write(a,b,c); sẽ cho ra màn hình
1.2345678+01 3.00000000+02 -7.0001111-03
Trong trờng hợp định khuôn chúng ta dùng các số sau dấu : để mô tả
số cột trên màn hình dành cho việc viết biến hoặc hằng trớc đó. Riêng với các
số thập phân kiểu dấu phảy cố định có thêm số thứ hai sau dấu : thứ hai chỉ
số số thập phân sau dấu phảy.
Ví dụ:
Write (a:10, b:10:2, c:10:4); sẽ cho ra màn hình
1.23456+01 300.00 -0.0070
Định khuôn cũng dùng cho các biến nguyên, biến ký tự, biến dòng và các
kiểu biến khác theo nguyên tắc trên. Định khuôn liên quan chủ yếu đến cách
trình bày màn hình sao cho đẹp, dễ đọc và rõ ràng.
Với tất cả các điều vừa trình bày ở trên chúng ta đã có thể viết một chơng
trình PASCAL hoàn chỉnh, ví dụ để tính tích của hai số a và b, tức là S = a . b.
Ví dụ:

Program nhan;
Var A,B,S : real;
BEGIN
Write( nhap A va B : ); readln(A, B);
S:=A*B;
Writeln( Tich S = , S:10:4);
Readln;
END.
Toán tử điều khiển
Toán tử điều khiển của PASCAL có 2 vế:


Nếu điều kiện logic sau IF đợc thoả mãn thì thực hiện câu lệnh 1 sau
THEN. Nếu không thì thực hiện câu lệnh 2 sau ELSE.
IF <Điều kiện logic> THEN <Câu lệnh 1> ELSE <Câu lệnh 2>;
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

16
Ví dụ:
If (i=k) then a:=b else a:=d;
Trong trờng hợp đơn giản nhất ta chỉ cần đến vế đầu:


Nếu điều kiện logic sau IF thoả mãn thì thực hiện câu lệnh 1 sau THEN.
Ví dụ:
If (i=k) then a:=b;
Trong những trờng hợp phức tạp, sau THEN và ELSE chúng ta có thể
phải thực hiện nhiều câu lệnh, khi đó phải dùng các toán tử hợp thành bắt đầu
bằng BEGIN và kết thúc bằng END.










Chú ý là câu lệnh trớc ELSE không có dấu ;.
Dới đây là ví dụ đoạn chơng trình sử dụng toán tử IF THEN.
Ví dụ 1: Giải phơng trình bậc hai:

If (delta>=0) then
Begin
x1:= (- b + sqrt(delta))/2/a;
x2:= (- b - sqrt(delta))/2/a;
End
Else
IF <Điều kiện logic> THEN <Câu lệnh 1>;
IF <Điều kiện logic> THEN
BEGIN
Câu lệnh 1;. . .; Câu lệnh n;
END
ELSE
BEGIN
Câu lệnh 2; ; Câu lệnh m;
END;
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

17

Begin
AA: = -b/2/a; { phần thực của nghiệm phức }
BB:= sqrt(-delta)/2/a; { phần ảo của nghiệm phức }
End;

Ví dụ2: Tính tổng n số nguyên đầu tiên

i:=1;
sum:=0;
1: sum:=sum+i;
i:=i+1;
If (i<n) goto 1;

Ví dụ 3: Tính tổng các số chẵn và tổng các số lẻ trong một dãy n số
nguyên đầu tiên

i:=1;
TONGCHAN:=0;
TONGLE:=0;
15: if (i mod 2 =0) then TONGCHAN:=TONGCHAN+i else
TONGLE:=TONGLE+i;
i:=i+1;
if i<n goto 15;

Trong đó có sử dụng toán tử lấy số d khi chia số nguyên a cho số nguyên
b (câu lệnh là a mod b). Nếu muốn tính tổng các phần tử có chỉ số chẵn và tổng
các phần tử có chỉ số lẻ của mảng a[i] ta có:

i:=1;
sum1:=0;

TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

18
sum2:=0;
1: if (i mod 2 =0) then sum1:=sum1+a[i] else sum2:=sum2+a[i];
i:=i+1;
if i<n goto 1;

2.4. Ngôn ngữ FORTRAN
2.4.1. Giới thiệu ngôn ngữ FORTRAN
FORTRAN là ngôn ngữ lập trình cho máy tính. Nó thuộc loại ngôn ngữ
cap cấp thiên về bài toán, còn gọi là ngôn ngữ thuật toán hay ngôn ngữ thủ tục.
Đơng nhiên, ngôn ngữ chơng trình nào cũng dùng để thể hiện thuật
toán, nhng ngôn ngữ thuật toán cho phép chuyển trực tiếp từ mô tả thuật toán
sang chơng trình nguồn không cần thay đổi gì mấy.
FORTRAN là tên ghép của các chữ cái đầu FORmula TRANslation
nghĩa là biên dịch các công thức, bởi vì lúc đầu ngôn ngữ này dùng để giải các
bài toán kỹ thuật.
FORTRAN ra đời mới vài chục năm (1954) nhng sớm phát triển và có
sức sống mạnh mẽ và dẻo dai.
Hiện nay, đã có rất nhiều ngôn ngữ phát triển phức tạp, chặt chẽ và tinh tế
hơn, đặc biệt là PASCAL nhng FORTRAN vẫn đang là ngôn ngữ phổ dụng trên
thế giới: hơn 70% các chơng trình đợc viết bằng FORTRAN. Tuy nhiên ở Việt
Nam chơng trình FORTRAN chủ yếu đợc áp dụng nhiều trong các ngành
khoa học kỹ thuật, Trong giáo dục chơng trình FORTRAN không đợc phổ
biến nh PASCAL.
Những u điểm của FORTRAN:
+ Dễ học, dễ viết, dễ hiệu chỉnh.
+ Có hiệu quả khi dịch do cấu trúc ngôn ngữ đơn giản.
+ Vốn t liệu phong phú: Có nhiều kho chơng truình mẫu, chơng trình

phục vụ.
+ Khả năng vào ra đơn giản và dồi dào, tiện dụng.
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

19
Hiện nay, có nhiều dạng FORTRAN khác nhau dựa trên FORTRAN cơ sở
(Basic FORTRAN). FORTRAN chuẩn (standard FORTRAN) Từ phiên bản thứ
7 trở đi ngôn ngữ FORTRAN đợc ký hiệu là Fortran (Fortran 90). Hiện nay
đã có phiên bản 9 (Fortran 2003) và phiên bản 10 (Fortran 2008).
ở đây, chúng tôi chỉ giới thiệu những nét, những khái niệm cơ bản chung
nhất để ngời học có thể nắm đợc cơ sở của ngôn ngữ và lập đợc những
chơng trình không phức tạp (về mặt ngôn ngữ và kỹ thuật lập trình mà không
đề cập đến tính phức tạp về mặt chuyên môn) và không dùng bộ nhớ phụ.
Muốn lập chơng trình bằng ngôn ngữ FORTRAN, phải đọc tài liệu
hớng dẫn để biết đặc điểm, những hạn chế hay mở rộng của dạng FORTRAN,
thủ tục đa dịch và cho thực hiện chơng trình nh thế nào.
Chừng nào càng đi sâu vào giải quyết các bài toán thực tiễn ta mới càng
thấy kiến thức đã học là cha đầy đủ, mới thấy cần bổ sung những gì, và thấy rõ
thêm mặt mạnh và mặt yếu của từng loại ngôn ngữ. Quy mô bài toán tăng lên thì
khó khăn cũng gấp bội, bấy giờ mới thấy yêu cầu bức thiết về thuật toán, ngôn
ngữ, cấu trúc dữ liệu và cấu trúc chơng trình và mới có hớng để tự bổ sung
thêm.
2.4.2. Chỉ thị và thông báo
Chơng trình FORTRAN là một dãy các câu lệnh thuộc 2 loại: Chỉ thị hay
thông báo. Chơng trình là sự kết hợp giữa thuật toán và dữ liệu. Nó gồm một
mặt là các thông báo để mô tả dữ liệu và một mặt là các chỉ thị để thực hiện các
sự tác động lên dữ liệu đó theo một thuật toán (giải thuật) cho bài toán.
Chỉ thị (Statement) là các câu lệnh đợc thực hiện và sẽ đợc chơng trình
dịch biến thành dãy lệnh máy trong chơng trình đích. Chỉ thị có thể thực hiện là:
- Vào/ ra dữ liệu.

- Trao đổi thông tin giữa các phần của chơng trình, giữa bộ nhớ trong và
bộ nhớ ngoài,
- Tính toán số học, logic.
- Kiểm tra và quyết định lựa chọn.
- Điều khiển.
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

20
Thông báo (Declaration) là các câu lệnh không thực hiện và không cần
dịch, chỉ các tác dụng thông báo (khai báo) với chơng trình dịch về:
- Mô tả dữ liệu.
- Mô tả kích thớc mảng dữ liệu.
- Mô tả quy cách dữ liệu ngay khi dịch.
- Gán trớc dữ liệu ngay khi dịch.
- Trao đổi thông tin ở vùng chung.
- Chỗ cuối chơng trình cần dịch.
. . .
2.4.3. Phiếu mẫu và bìa FORTRAN
Trong FORTRAN khái niệm bìa và dòng in có một vai trò đặc biệt.
Chơng trình FORTRAN đợc ghi trên phiếu mẫu nh sau (xem ví dụ cụ
thể phiếu mẫu ở bảng 1).
Mỗi câu lệnh nói chung ghi ở 1 dòng, dù thừa chỗ cũng phải xuống dòng
khác (do đó nên ghi tha cho dễ đọc).
Mỗi dòng của phiếu có đúng 80 vị trí (cột), cho phép ghi 80 ký hiệu cơ sở
FORTRAN, kể cả ký hiệu trống là chỗ không ghi gì (để đánh dấu chỗ trống có
thể ghi dấu b hay B)
Những ký hiệu của chơng trình viết ở phiếu mẫu phải đợc mã hoá mới
đa vào máy đợc. Máy thu nhận các thông tin mã hoá từ bìa đục lỗ (loại 80
cột). Mỗi bìa có 80 cột ứng 80 vị trí của dòng phiếu. Nh vậy mỗi dòng phiếu
đợc mã hoá bởi một bìa.

Khi đục từng ký hiệu thì xuất hiện các tổ hợp lỗ đục ứng với mã ký hiệu
trên cột tơng ứng của bìa và phía trên cùng của cột có in bản thân ký hiệu đó.
Đục xong bìa thì nội dung của dòng phiếu tơng ứng sẽ hiện lên ở mép trên bìa,
nh vậy tiện kiểm tra bìa.
Chơng trình và dữ liệu trớc khi đa vào máy phải đợc chuẩn bị thành
các cỗ bìa: Cỗ bìa chơng trình và cỗ bìa dữ liệu.
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

21
Năm cột (vị trí) đầu tiên của phiếu dành ghi nhãn của câu lệnh hoặc để
trống. Nhãn (Label) của câu lệnh là một số nguyên không dấu, có giá trị từ 1 đến
99999 Không nhất thiết ghi từ cột đầu - dùng để đánh dấu câu lệnh đó.
Cột thứ sau (6) là cột nối tiếp (Continuation) để ghi dấu hiệu nối: Nếu câu
lệnh ghi một dòng cha đủ thì xuống dòng, ở các dòng tiếp theo (dòng phụ) phải
có dấu nối là một ký hiệu cơ sở nào đó khác số 0 và dấu b, ghi ở cột 6. Tối đa có
19 dòng phụ.
Câu lệnh chỉ đợc ghi từ cột thứ 7 tới cột 72 (tối đa 66 ký hiệu). Quãng
trống sẽ đợc bỏ qua - Máy không tính - trừ trong FORMAT.
Tám cột cuối từ cột 73 đến cột 80 dùng để đánh dẫu cỗ bìa, chẳng hạn ký
hiệu cỗ bìa và số thứ tự của bìa để khỏi lẫn lộn, hoặc để ghi tên chơng trình,
ngời lập. . . Những thông tin này không đợc dịch mà chỉ in để kiểm tra.
Riêng cột đầu của phiếu mẫu còn có tác dụng phân biệt dòng thuyết minh.
Các dòng có chữ C (Comment: thuyết minh, chú thích) ở đầu dòng (cột 1) đều là
các dòng thuyết minh, không có tác dụng với việc dịch và chạy chơng trình, chỉ
có tác dụng khi in kiểm tra chơng trình, cho phép ngời đọc dễ dàng theo dõi
từng đoạn chơng trình. Đặt các dòng thuyết minh thích đáng, đúng chỗ thì
ngời khác đọc cũng có thể hiểu đợc thuật toán, chơng trình. Các dòng thuyết
minh có thể gồm mọi ký hiệu cơ sở và muốn xuống dòng (sang bìa) chỉ cần ghi
C ở đầu dòng (chứ không dùng cột 6).
2.4.4. Một số chơng trình Fortran

Để có khái niệm ban đầu, bao quát nhng thô sơ và để hình dung thế nào
là một chơng trình viết bằng FORTRAN, ta sẽ xét một số chơng trình đơn
giản, qua đó giới thiệu một số yếu tố của FORTRAN.
Ví dụ 1: Viết chơng trình tính thể tích của hình trụ tròn xoay theo công
thức V = R
2
h. Với R là bán kính đáy hình trụ, h là chiều cao hình trụ (Bảng 1).

TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

22
Bảng 1: Phiếu mẫu của chơng trình tính thể tích của hình trụ tròn xoay
Công thức V = R
2
h. Với R là bán kính đáy hình trụ, h là chiều cao hình trụ.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
1
C H U O N G T R I NH TI NH THE T I CH HI NH TRU- TTR U
2
C
3
R E A D ( 5 , 1 0 ) B K I N H , C C A O
4
T T I CH=3, 1416*BKI N H **CCAO
5
W R I TE ( 6, 1 1 ) BKI N H , CCAO, TTI CH
6
S T O P

7
1 0 F 0 R MAT (2F10,2)
8
1 1 F 0 R MAT ( 9HOBKI NHb = b , F6 . 2 ,
9
* 11 HBBBBCC A OB=B, F6 . 2,
10
* 12H TT I CH = , F61. 2)
11
E N D
12

13

14

15

16

17

18

19

20

21


22

1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

23
ý nghĩa chơng trình là: đọc 1 bìa có ghi giá trị của bán kính (BKINH) và
chiều cao (CCAO), tính thể tích hình trụ (TTICH) theo công thức trên, in ra các
giá trị tơng ứng của bán kính, chiều cao, thể tích rồi dừng máy.
ý nghĩa của từng dòng:
1. Đây là dòng thuyết minh: tóm tắt nội dung và tên chơng trình là
TTTRU. Chữ C đầu dòng có thể đồng thời là chữ đầu của nội dung thuyết minh
(CHUONG) đồng thời cũng cho biết đây là dòng thuyết minh.
2. Dòng thuyết minh trống có chữ C ở đầu nhằm để cách dòng khi in
nhằm dễ theo dõi chơng trình.
3. READ là đọc: đọc nội dung 1 bìa ghi vào bộ nhớ bao gồm: 5 là số
hiệu kênh vào (bàn phím), 10 là nhãn của thông báo FORMAT tơng ứng cho
biết quy cách đọc. Nhãn ở đây là cần thiết vì có nhiều FORRMAT khác nhau,
cần phải đánh số của chúng để gọi cho đúng.
Chỉ thị này lệnh cho máy vào đọc bìa ở kênh 5 (bàn phím) theo quy cách
10 và gán giá trị đọc đợc cho 2 biến BKINH và CCAO tức là gửi nội dung đọc
đợc vào các biến nhớ có tên (địa chỉ) là BKINH và CCAO.
4. Dòng tiếp theo là một chỉ thị gán, cho phép tính thể tích hình trụ theo
bán kính và chiều cao đã xác định (ở trên) và gán kết quả cho biến TTICH. ở đây
* là dấu nhân; ** là dấu lũy thừa bậc 2.
5. WRITE là viết, Viết ra theo kênh số 6 (máy in) giá trị của ba biến
BKINH, CCAO và TTICH với quy cách thông báo FORMAT mang nhãn 11.
6. STOP là dừng lại, chỉ thị cho máy tính xong, kết thúc công việc.
7. 10 là nhãn của FORMAT , 2F10.2 là quy cách đọc: đọc 2 số liền nhau

dạng dấu phảy tĩnh (mã F) mỗi số 10 cột và có 2 số ở phân thập phân. FORMAT
để đâu cũng đợc miễn là cha kết thúc chơng trình.
Ví dụ bbbbb10.32bbbbb61.07 thì máy sẽ đọc là giá trị thứ nhất là 10,32 gán cho
BKINH và giá trị thứ hai 61,07 gán cho CCAO. ở đây dấu . đóng vai trò nh dấu
phảy và là 1 ô trong bìa, b chỉ chỗ trống không đục gì hoặc đục cách .
8. 11 là nhãn của FORMAT cho biết quy cách in ra: vừa in kết quả vừa
giải thích. Dùng hằng ký tự (HOLLERITH) để biên tập kết quả.
9HOBKINHb=b chỉ rằng máy sẽ in ra 8 ký tự kể từ chữ B (kể cả ký tự
trắng) tức là in ra BKINH_= _ chữ b có nghĩa là ký tự trắng.
TS Mai Xuân Trờng - Trờng Đại học S phạm - Đại học Thái Nguyên

24
số 9 cho biết số lợng ký tự sau chữ H là 9.
9H: Chữ H cho biết mã H (hằng ký tự).
9HO: Chữ O là dấu hiệu kiểm tra kéo giấy, không in ra, nó có nghĩa là bỏ
cách một dòng (để kéo giấy vào máy in) và in từ dòng thứ 2 các ký tự sau chữ O
với số lợng ký tự trớc chữ H.
F6.2 cho phép in giá trị của BKINH sau hằng ký tự vừa rồi, phạm vi in là 6
ký tự lệch về phải, có 2 số ở phần thập phân. Tức là khi in ra giấy ta sẽ có:
BKINH = 10.32.
Tơng tự với các phần sau.
Dấu * ở cột 6 trong dòng 9 và 10 là dấu hiệu nối tiếp của 2 dòng phụ đó
(tuy cho phép ghi 66 ký tự mỗi dòng, nhng không nên viết quá dài vì khó đọc
và dễ đục sai nên ngời ta thờng xuống dòng cho dễ theo dõi).
Tác động của FORMAT nhãn 11 (chiếm 3 dòng liền) là cho in ra dòng
sau:
BKINH = 10.32 CCAO = 61.07 TTICH = 29120.59
11. END hết là thông báo, báo chỗ chấm hết chơng trình cần dịch. Khi
dịch gặp tới END chơng trình dịch biết là đã dịch xong.
Qua ví dụ này ta thấy cấu trúc của ch

ơng trình rất đơn giản, rõ ràng, dễ
hiểu, nhng đủ minh họa cho một chơng trình đầy đủ hoàn chỉnh. Nó cho phép
chạy với nhiều dữ liệu khác nhau. Mỗi lần chạy, nó đọc một bìa ghi BKINH,
CCAO của một hình trụ và in ra các tham số đó cùng với kết quả là thể tích
tơng ứng. Cần in cả tham số vào vì nếu không sau khi chạy với một loạt hình
trụ sẽ không biết kết quả ứng với dữ liệu đầu vào nào.
Chơng trình trên có cấu trúc của một chơng trình tuyến tính, các chỉ thị
đợc thực hiện tuần tự nhau theo thứ tự tự nhiên, viết trớc thực hiện trớc, viết
sau thực hiện sau. Đây là cấu trúc đơn giản nhất. Muốn tránh phải dừng mày
luôn mỗi khi in xong 1 dòng (1 chơng trình). Có thể cho máy đọc tiếp bìa sau
để tính với dữ liệu khác, Thay dòng 3 là READ bởi chỉ thị có nhãn là 2 READ
và thay dòng 6 là STOP bằng Go To 2 thì mỗi khi in xong gặp chỉ thị này máy sẽ
chuyển tới chỉ thị mang nhãn 2 là đọc tiếp dữ liệu ở bìa sau tạo thành chu trình
để giải bài toán với nhiều dữ liệu, tới khi hết dữ liệu (dữ liệu không hợp lệ) thì
READ sẽ lỗi và chấm dứt chơng trình, lúc ấy máy sẽ tự động dừng.

×