đạ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ờ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
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ữ
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)
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
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
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
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ả:
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;
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);
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.
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;
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.
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
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
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