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 dunghoá học.
105 trang |
Chia sẻ: lylyngoc | Lượt xem: 2080 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Tin học ứng dụng trong hoá học, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
đạ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ỉ)
(TÀI LIỆU LƯU HÀNH NỘI 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 l−u trữ kết quả.
1.2. Cấu trúc hệ xử lý thông tin tự động
Thô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 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
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ỗ 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 (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) để l−u 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ả