Bài giảng Tin học ứng dụng trong hoá học

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.

pdf105 trang | Chia sẻ: lylyngoc | Lượt xem: 2101 | Lượt tải: 0download
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ả