Tải bản đầy đủ (.doc) (130 trang)

Bài giảng tin học trong hóa học 1

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 (976.19 KB, 130 trang )

ai hoc Thai Nguyờn
Trng ai hoc S pham
Khoa Hoa hoc
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
Bài giảng
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ó.
1
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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
1GB = 1024MB
1.1.3. Xử lý thông tin bằng máy tính điện tử
Thông tin vào
Quá trình xử lý
Kết quả
1KB = 1024 byte
1MB = 1024KB
Quy tắc theo đó quá trình xử lý đ ợc thực hiện (do con ng ời đặt ra)
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 l u trữ kết quả.
1.2. Cấu trúc hệ xử lý thông tin tự động
Thiết bị vào
Bàn phím
Chuột
CPU
Bộ nhớ ROM
Bộ nhớ RAM
Bộ xử lý trung tâm
Thiết bị ra
Màn hình
Máy in
ổ đĩa
Máy Scan
Bộ số học logic
Bộ điều khiển
2
ổ đĩa
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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 l u 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 l u 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 l u 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 l u 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
3
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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, . . .
4
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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ỗ l u 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
INPUT c
INPUT d
INPUT e
LOAD b
ADD c
MOVE a

LOAD d
ADD e
MULT a
MOVE a
PRINT a
HALT
là:
1
2
3
4
5
(ô nhớ dành cho a)
(ô nhớ dành cho b)
(ô nhớ dành cho c)
(ô nhớ dành cho d)
(ô nhớ dành cho e)
(nhập giá trị b từ bàn phím, ghi vào ô nhớ 1)
(nhập giá trị c từ bàn phím, ghi vào ô nhớ 2)
(nhập giá trị d từ bàn phím, ghi vào ô nhớ 3)
(nhập giá trị e từ bàn phím, ghi vào ô nhớ 4)
(đọc b ở vào ô nhớ 1)
(cộng c ở ô nhớ 2 vào ô nhớ 1, kết quả giữ ở ô nhớ 1)
(ghi kết quả ô nhớ 1vào ô nhớ 5)
(đọc d ở ô nhớ 3)
(cộng e ở ô nhớ 4 vào ô nhớ 3, kết quả giữ ở ô nhớ 3)
(nhân kết quả ô nhớ 3 với ô nhớ 5, kết quả giữ ở ô nhớ 3)
(ghi kết quả từ ô nhớ 3 vào ô nhớ 5)
(In ô nhớ 5 ra màn hình hoặc máy in)
(Dừng ch ơng trình)

Ch ơng trình này phải sử dụng các ô nhớ (bảng) để l u giữ số liệu, cụ thể
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.
5
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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.
6
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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ổ
7
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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.
8
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
+ 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.
9
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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:
PROGRAM tên ch ơng trình;
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ả :
LABEL số nguyên;
Ví dụ: LABEL 10, 20, 123; mô tả 3 nhãn dùng trong khối.
10
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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:
CONST tên hằng 1 = gía trị hằng 1;
tên hằng 2 = gía trị hằng 2;
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 :
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);
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ả:
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;
Ví dụ:
VAR
m,n
x,y
h
: integer;
: real;
: city;
ch
j
: char;
: boolean;
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).
11
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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:
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;
hoặc khai báo theo kiểu (TYPE) rồi sau đó mới khai báo biến nh sau:
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 ;
Ví dụ dãy số d ới đây :
x
1 2 3 4
5 n
y 12 3 5 10 9 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:
12
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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:

BEGIN
Phần kết thúc
Phần kết thúc bao gồm tập hợp lệnh
READLN; END.
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 :
Tên biến := biểu thức hoặc biến hoặc hằng;
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
GOTO nhãn;
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).
13
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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ả:
WRITE(Thông báo hoặc biến);
READ(biến);
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
WRITELN(Thông báo hoặc biến);
READLN(biến);
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.
14
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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;
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ế:
IF <Điều kiện logic> THEN <Câu lệnh 1> ELSE <Câu lệnh 2>;
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.
15
BEGIN
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên

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:
IF <Điều kiện logic> THEN <Câu lệnh 1>;
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.
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;
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
16
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên

Begin
AA: = -b/2/a;
BB:= sqrt(-delta)/2/a;
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;

17
{ phần thực của nghiệm phức }
{ phần ảo của nghiệm phức }
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại h ọc Thái Nguyên
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, nh ng 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) nh ng 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 nh ng 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.
18
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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à ch a đầ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.
19
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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 th a 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.
20
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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 ch a đủ 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 nh ng 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 2h. Với R là bán kính đáy hình trụ, h là chiều cao hình trụ (Bảng 1).
21
TS Mai Xuân Tr ờng - Tr ờng Đại học S phạm - Đại học Thái Nguyên
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 2h. Với R là bán kính đáy hình trụ, h là chiều cao hình trụ.
1
1
2
3
4
5
6
7
8
9
10
11
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
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
C
C
H
U
O
N
G
R
T
W
S

T
E
T
R
T
0
0
R
A
I
I
O
R
R
I
D
C
T
P
N
H
(
5
3
(
T
T
T
,
,

6
(
(
I
1
1
,
2
9
1
1
N
0
4
1
F
H
1
2
H
)
1
1
1
O
H
H
6
)
0

B
B
T
B
*
H
K
B
B
E
I
K
K
)
N
B
H
C
T
N
I
I
T
H
N
N
I
,
H
H

C
C
*
,
H
C
*
C
A
C
C
H
O
C
A
I
N
H

×