1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

105 973 16
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài giảng Tin học ứng dụng trong hóa học
Tác giả TS Mai Xuân Trường
Trường học Trường Đại học Sư phạm - Đại học Thái Nguyên
Chuyên ngành Tin học ứng dụng trong hóa học
Thể loại Bài giảng
Năm xuất bản 2011
Thành phố Thái Nguyên
Định dạng
Số trang 105
Dung lượng 703,87 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ìn

Trang 1

đạI học thái nguyên

Trang 2

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ó

Trang 3

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) )

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

Quy tắc theo đó quá trình xử lý được thực hiện (do con người đặt ra)

Trang 4

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

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

Trang 5

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 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,

Trang 6

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)

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

Trang 7

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

Trang 8

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

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ổ

Trang 9

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

Trang 10

+ 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

Trang 11

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;

Cách mô tả :

Ví dụ: LABEL 10, 20, 123; mô tả 3 nhãn dùng trong khối

PROGRAM tên chương trình;

LABEL số nguyên;

Trang 12

Ví dụ: VAR m,n : integer; ch : char;

chỉ ra m, n, ch, x, y, j, h : là các biến, trong đó: m, n là kiểu nguyên, x, y

là thực, ch là kí tự, j là logic và h là kiểu city (đã đ−ợc định nghĩa trong TYPE)

CONST tên hằng 1 = gía trị hằng 1;

tên hằng 2 = gía trị hằng 2;

TYPE Tên kiểu 1 = ( phổ các giá trị của kiểu 1);

Tên kiểu 2 = ( phổ các giá trị của kiểu 2);

VAR tên biến 1, tên biến 2 : kiểu 1;

tên biến 3, tên biến 4 : kiểu 2;

Trang 13

Mảng

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

Cách mô tả mảng 1 chiều:

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

Ví dụ dãy số dưới đây :

y 12 3 5 10 9 1Khai 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 ;

Trang 14

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:

Trang 15

WRITE(‘Th«ng b¸o’ hoÆc biÕn);

READ(biÕn);

WRITELN(‘Th«ng b¸o’ hoÆc biÕn);

READLN(biÕn);

Trang 16

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ớ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

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>;

Trang 17

Ví dụ:

If (i=k) then a:=b else a:=d;

Trong trường hợp đơn giản nhất ta chỉ cần đến vế đầu:

Nếu điều kiện logic sau IF thoả mãn thì thực hiện câu lệnh 1 sau THEN

Ví dụ:

If (i=k) then a:=b;

Trong những trường hợp phức tạp, sau THEN và ELSE chúng ta có thể phải thực hiện nhiều câu lệnh, khi đó phải dùng các toán tử hợp thành bắt đầu bằng BEGIN và kết thúc bằng END

Chú ý là câu lệnh trước ELSE không có dấu “;”

Dưới đây là ví dụ đoạn chương trình sử dụng toán tử IF … THEN

Ví dụ 1: Giải phương trình bậc hai:

If (delta>=0) then

Begin x1:= (- b + sqrt(delta))/2/a;

x2:= (- b - sqrt(delta))/2/a;

End

Else

IF <Điều kiện logic> THEN <Câu lệnh 1>;

IF <Điều kiện logic> THEN

BEGIN

Câu lệnh 1; .; Câu lệnh n;

END ELSE

BEGIN

Câu lệnh 2; ; Câu lệnh m;

END;

Trang 18

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ụ 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

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;

Trang 19

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

Trang 20

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à:

Trang 21

- 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

Trang 22

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ó

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 = πR2h Với R là bán kính đáy hình trụ, h là chiều cao hình trụ (Bảng 1)

Trang 23

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 = πR2h Với R là bán kính đáy hình trụ, h là chiều cao hình trụ

Trang 24

ý nghĩa chương trình là: đọc 1 bìa có ghi giá trị của bán kính (BKINH) và chiều cao (CCAO), tính thể tích hình trụ (TTICH) theo công thức trên, in ra các giá trị tương ứng của bán kính, chiều cao, thể tích rồi dừng máy

ý nghĩa của từng dòng:

1 Đây là dòng thuyết minh: tóm tắt nội dung và tên chương trình là TTTRU Chữ C đầu dòng có thể đồng thời là chữ đầu của nội dung thuyết minh (CHUONG) đồng thời cũng cho biết đây là dòng thuyết minh

2 Dòng thuyết minh trống có chữ C ở đầu nhằm để cách dòng khi in nhằm dễ theo dõi chương trình

3 READ là “đọc”: đọc nội dung 1 bìa ghi vào bộ nhớ bao gồm: 5 là số

hiệu kênh vào (bàn phím), 10 là nhãn của thông báo FORMAT tương ứng cho

biết quy cách đọc Nhãn ở đây là cần thiết vì có nhiều FORRMAT khác nhau, cần phải đánh số của chúng để gọi cho đúng

Chỉ thị này lệnh cho máy vào đọc bìa ở kênh 5 (bàn phím) theo quy cách

10 và gán giá trị đọc được cho 2 biến BKINH và CCAO tức là gửi nội dung đọc

được vào các biến nhớ có tên (địa chỉ) là BKINH và CCAO

4 Dòng tiếp theo là một chỉ thị gán, cho phép tính thể tích hình trụ theo bán kính và chiều cao đã xác định (ở trên) và gán kết quả cho biến TTICH ở đây

* là dấu nhân; ** là dấu lũy thừa bậc 2

5 WRITE là “viết”, Viết ra theo kênh số 6 (máy in) giá trị của ba biến

BKINH, CCAO và TTICH với quy cách thông báo FORMAT mang nhãn 11

6 STOP là “dừng lại”, chỉ thị cho máy tính xong, kết thúc công việc

7 10 là nhãn của FORMAT , 2F10.2 là quy cách đọc: đọc 2 số liền nhau dạng dấu phảy tĩnh (mã F) mỗi số 10 cột và có 2 số ở phân thập phân FORMAT

để đâu cũng được miễn là chưa 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

Trang 25

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ó:

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, nhưng 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:

Chương trình trên có cấu trúc của một chương trình tuyến tính, các chỉ thị

được thực hiện tuần tự nhau theo thứ tự tự nhiên, viết trước thực hiện trước, viết sau thực hiện sau Đây là cấu trúc đơn giản nhất Muốn tránh phải dừng mày luôn mỗi khi in xong 1 dòng (1 chương trình) Có thể cho máy đọc tiếp bìa sau

để tính với dữ liệu khác, Thay dòng 3 là READ bởi chỉ thị có nhãn là 2 READ

và thay dòng 6 là STOP bằng Go To 2 thì mỗi khi in xong gặp chỉ thị này máy sẽ chuyển tới chỉ thị mang nhãn 2 là đọc tiếp dữ liệu ở bìa sau tạo thành chu trình

để giải bài toán với nhiều dữ liệu, tới khi hết dữ liệu (dữ liệu không hợp lệ) thì READ sẽ “lỗi” và chấm dứt chương trình, lúc ấy máy sẽ tự động dừng

Trang 26

Bảng 2: Tính trung bình cộng của một dãy số

Các số đều là số nguyên, không vượt quá 100, mỗi số 3 ký tự Đục 8 số trên 1 bìa Bìa đầu có kích thước 80 của dãy (80 ký tự)

Trang 28

X k

1 S

Gọi X(K) là số liệu thứ K, K = 1 đến N và XTB là giá trị trung bình cộng của X(K)

Trang 29

X N

2

X k

1 S

Gọi X(K) là số liệu thứ K, K = 1 đến N

XTB là giá trị trung bình cộng của X(K) (Bảng 4)

Ví dụ 5: Tìm giá trị bé nhất MIN trong hai số X, Y cho trước

Real (thực) thông báo MIN là biến thực

MIN.GT.Y là biểu thức logic ở đây “.GT.” là lớn hơn, lấy giá trị TRUE (đúng) nếu MIN > Y, nó là FALSE (sai) nếu MIN không lớn hơn Y

Trang 30

IF là chỉ thị kiểm tra điều kiện logic Nếu biểu thức logic trong ngoặc

đúng thì thực hiện chỉ thị đứng sau biểu thức logic rồi chuyển sang thực hiện chỉ thị sau IF, nếu biểu thức logic sai thì bỏ qua chỉ thị sau biểu thức logic và chuyển sang thằng chỉ thị sau IF

Tư liệu đọc thêm

1 INTEGER Là số nguyên; DIMENSION DAY (80) là thông báo mô tả kích thước mảng DAY, báo để chương trình dành cho mảng này 80 ký tự tối đa DIMENSION (kích thước)

2 WRITE (6, 49) không có danh sách biến vì chỉ in hằng ký tự ở FORMAT nhãn 49 H1 là ký hiệu kiểm tra, không in ra, chỉ nhắc rằng phải in những ký hiệu sau ở đầu trang mới (sang trang)

3 READ (5, 50) KT cho đọc kích thước thực tế của mãng DAY KT không được vượt quá kích thước tối đa cho phép ở DIMENSION Đọc theo mã I3 ở quy cách 50

4 READ (5, 50) (DAY (I), I = 1,KT) cho đọc cả một mảng biến có chỉ số DAY (I) Chỉ số I tự động tăng từ 1 tới KT với bước tăng 1 Quy cách đọc theo nhãn 50 Mỗi bìa ghi 8

số, mỗi số 3 ký tự

5 WRITE (6, 51) In ra máy in từng dòng, mỗi dòng 8 số, mỗi số 5 ký tự (trừ số đầy

có 4 ký tự), thừa để trắng bên tráu tức là canh phải của 5 ký tự

6 DO 20 J = 1, KT là chỉ thị chu trình cho phép thực hiện KT lần chỉ thị 20 với giá trị của J tăng từ 1 đến KT

7 Dấu / là dấu chia

+ Dấu Cộng * Dấu nhân ** Dấu lũy thừa Dấu chấm

Dấu dùng với 4 nghĩa:

- Là dấu thập phân thay cho dấu phảy

Trang 31

- Là dấu phân ly trong mã đặc trưng F6.2

- Là dấu ở phép logic GT là lớn hơn hay EQ là bằng

- Là dấu chấm câu

Dấu = dùng theo nghĩa gán, muốn diễn tả sự bẳng nhau dùng phép so sánh quan hệ ED

Tránh dùng ký hiệu ngoại lai như: π,∞,↑, Đ, Ơ,

Có thể mở rộng dấu đặc biệt như: ;, :, &, $

Ký hiệu thứ cấp gồm:

Từ các ký hiệu cơ sở (sơ cấp) có thể tạo ra các ký hiệu thứ cấp

- Trị logic TRUE., FALSE

- Quan hệ logic: EQ., NE., LT., LE., GT., GE

- Phép logic: NOT., AND., OR

- Các từ khóa:

CALL Gọi; COMMON Chung; COMPLEX Phức; CONTINUE Tiếp tục; DATA Dữ liệu; DIMENSION Kích thước; DO Làm; DOUBLE PRECISION Chính xác kép; END Hết

Số từ khóa này nhiều hay ít tùy thuộc vào chương trình dịch Từ khóa để xây dựng các chỉ thị, thông báo

Ngoài ra còn loại từ tự đặt do người lập chương trình đặt riêng cho minh dùng để ghi các tên gọi (biến, hàm, thủ tục, ) thường là một dãy không quá 6 ký tự bắt đầu bằng chữ cái

Các từ khóa là từ riêng cho ngôn ngữ, phải viết trong chương trình theo đung quy tắc chính tả và ngữ pháp

Trong FORTRAN không được viết:

DIMENTION thay cho DIMENSION

Các yếu tố FORTRAN có thể phân loại như sau:

+ Hằng các loại + Biến đơn và mang chỉ số + Biểu thức số học và logic + Chỉ thị gán số học và logic + Chỉ thị điều khiển

+ Chỉ thị vào ra + Hàm và chương trình con + Các thông báo

Trang 32

Muốn chạy được chương trình linh hoạt, vạn năng thì các tham số cần đưa vào dưới dạng biến hơn là hằng

Trong FORTRAN có các hằng sau:

+ Hằng nguyên (Integer) có mã I là dãy chữ số đi sau dấu + hoặc - Số chữ số hạn chế, thường không quá 11; tốt nhất để đảm bảo không mắc lỗi nên viết không quá 5, tuy nhiên có máy chấp nhận tới 20 chữ số

+ Hằng thực (REAL) : Được biểu diễn dưới 2 dạng

- Dạng dấu chấm tĩnh hay mã F (fixe point) thường không quá 9 chữ số viết giống như cách thông thường, bắt buộc phải có dấu chấm (dấu thập phân) thay cho dấu phảy

Số thực nói chung chỉ được biểu diễn xấp xỉ và chỉ gồm số hữu tỷ

Số quá lớn hoặc quá bé Ví dụ 15000000000000000000 không thể biểu diễn bằng mã

F, với mã E là 15E18, tương tự 0,0000000000000001 được viết là 1.E-16

Khi chưa biết trước kết quả tính lớn hay bé nên biểu diễn theo mã E

+ Hằng chính xác kép (Double precision) có độ dài gấp đôi hằng thực, chiếm hai đơn

vị nhớ

+ Hằng phức (Complex) có mã C biểu diễn bởi cặp số thực chỉ phần thực và phần ảo (hai đơn vị nhớ, mỗi phần một theo mã F hay mã E)

A + bi biểu diễn bới (a, b)

Ví dụ 2.7, 7.25) biểu diễn phức số 2,7 + 7,25i

(3.E2, 1E-1) biểu diễn phức số 3.102 + 0,1i

Các phép tính đưa về phép tính giữa phần thực và phần ảo

+ Hằng logic (Logical) có mã L chỉ gồm 2 giá trị TRUE (đúng) và FALSE (sai) + Hằng ký tự (Holerit) có mã H có dạng:nHxxx…xxx hay xxx….xxx

X là các ký hiệu cơ sở, có n ký hiệu cơ sở x các ký tự trống trong mã H vẫn phải tính Hằng ký tự thường dùng để biên tập các thông báo, thuyết minh, kết quả

Biến

Biến là một đại lượng có tên, có thể thay đổi giá trị khi chạy chương trình Tên biến

đồng thời là địa chỉ của đơn vị nhớ chứa giá trị biến

Tên biến là một dạy các chữ cái và chữ số, bắt đầu bằng chữ cái và không quá 6 ký tự viết liền nhau (không có dấu cách)

Trang 33

Mảng A gồm n hàng, m cột được viết là (A(n, m)

Mảng X là mảng 1 chiều kích thước 3: X(1) X(2) X(3)

Mảng A là mảng 2 chiều kích thước 3: A(1,1) A(1,2) A(1,3)

Tên biến và tên mảng theo quy cách gọi tên và xác định loại

Mỗi hàng, mỗi cột là mảng 1 chiều

(A(1, J), J=1,3) là hàng 1 gồm A(1,1) A(1,2) và A(1,3)

(A(I, 2), I = 1, 2) là cột 2 gồm A(1,2) và A(2,2)

Mảng phải được thông báo kích thước bởi thông báo DIMENSION (kích thước) để chương trình dịch biết dành vùng nhớ chứa mảng đó

Ví dụ DIMENSION X(3), A(2,3)

Mảng X là mảng 1 chiều kích thước 3 còn mảng A là mảng 2 chiều kích thước 3

Quy cách vào, ra

Các biến có thể được gán một giá trị (các hằng) và được đọc hay in ra phải dùng các mã đặc trưng để giải mã các dữ liệu của biến (hay hằng) đó

ALOG(X) là hàm lnX SIN(X) là hàm sinX

COS(X) là hàm cosX EXP(X) là hàm e X

ATAN(X) là hàm acrtgX

2.4.5.7 Biểu thức logic và các quan hệ

Chỉ thị gán số học

na = b

n là nhãn (nếu có) của chỉ thị a tên biến b biểu thức số học

Chuyển điều khiển

Trang 34

Có các chỉ thị GOTO, IF, DO, CONTINUE, PAUSE, STOP, END, CALL, RETURN, READ, WRITE

n GO TO m nghĩa là: n là nhãn (nếu có) của bản thân chỉ thị, GO TO là chuyển tới, m

là nhãn của chỉ thị sẽ thực hiện ngay sau đó

n GO TO (n1, n2, nk), i nghĩa là: n là nhãn (nếu có) của bản thân chỉ thị, GO TO là chuyển tới, nj(j = 1 k) là nhãn của chỉ thị có trong chương trình (thường k ≤ 10), i biến nguyên không dấu, không chỉ số Biến i khi gặp GO TO sẽ tính, có giá trị j thì chuyển tới chỉ thị có nhãn nj

n IF (e) n1, n2, n3 nghĩa là: n là nhãn (nếu có) của bản thân chỉ thị, IF là nếu, e là biểu thức số học hoặc biểu thức logic, n1, n2, n3 là nhãn chỉ thị có trong chương trình

n DO m i=j, k, l nghĩa là n là nhãn (nếu có) của bản thân chỉ thị, DO là làm i, j, k, l là các hằng hoặc biến nguyên không dấu, không chỉ số i là biến chỉ số hay biến điều khiển đóng vai trò đếm vòng lặp, không được là hằng j là cận dưới hay giá trị ban đầu cuả i (ban đầu i = j) k là cận trên (thực hiện DO đến khi i ≤ k) l là bước lặp hay số gia (i = i + l nếu l = 1 thì không cần ghi) m là nhãn của chỉ thị cuối phạm vi tác dụng của DO

n CONTINUE là chỉ thị giả (không làm gì cả) Gặp chỉ thị này chỉ việc chuyển sang chỉ thị tiếp theo (thường dùng cuối phạm vi DO)

END nghĩa là hết là thông báo cuối cùng của mọi chương trình nguồn (kể cả chương trình con) chỉ có tác dụng báo cho chương trình dịch đó là chỗ cuối chương trình nguồn Khi gặp END máy sẽ báo hiệu dịch xong chương trình tương ứng

STOP nghĩa là đứng, khi gặp chỉ thị này máy sẽ dừng chờ người thao tác điều khiển và nếu tiếp tục thi bắt đầu lại từ đầu

PAUSE nghĩa là nghỉ tương tự như STOP nhưng khác là ấn nút CHAY thi máy tiếp tục thực hiện chương trình

READ (m, n) dsb nghĩa là đọc từ thiết bị m (kênh vào), quy cách n (ghi nhãn của thông báo FORMAT tương ứng) và gán cho danh sách biên dsb

WRITE (m, n) dsb nghĩa là viết ra thiết bị m (kênh ra) danh sách biến dsb với quy cách n (ghi nhãn của thông báo FORMAT tương ứng)

Mã A thì sẽ in dồn về phía phải (nếu w≥ c), thừa để trắng bên trái w – c ký tự

Nếu w < c thì chỉ in ra w ký tự bên trái (đầu số) đuôi bị cắt

Mã H thì in ra các thông báo, tiêu đề, thuyết minh

Mã X dùng để bỏ trắng n vị trí ở dòng in ra

Trang 35

Việc thực hiện lệnh gán các biến a, b, c sẽ đ−ợc lặp lại từ giá trị của i bằng

1 (a = 1; b = 2; c = 5) sau đó tăng i lên 1 đơn vị (i=2) và thực hiện lệnh gán các biến a, b, c (a = 3; b = 4; c = 6) sau đó tiếp tục tăng i lên 1 đơn vị i= 3 và i = 4

và cho đến giá trị của i bằng 5 thì thực hiện xong các lệnh gán thì thoát ra khỏi vòng lặp

FOR Biến_điều_khiển:=Giá_trị_đầu Giá_trị_cuối Do <Câu lệnh>

FOR Biến_điều_khiển:=Giá_trị_đầu Giá_trị_cuối Do <Câu lệnh>

FOR Biến_điều_khiển:=Giá_trị_đầu Giá_trị_cuối Do

Trang 36

For i:=1 to n do if (i mod 2 = 0) then

sum1:=sum1+i else sum2:=sum2+i;

Trang 37

amax:= a[k]; imax := k;

for i:= k+1 to n do if a[i]>amax then begin

CÊu tróc lÖnh REPEAT UNTIL

REPEAT

Trang 38

Việc thực hiện <công việc> hoặc <Các công việc> nằm giữa REPEAT và UNTILl sẽ được lặp lại cho đến khi biểu thức logic thoả mãn

Ví dụ 1: Đoạn chương trình 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

CASE i=1: Begin

End;

Trang 39

Cấu trúc lệnh WHILE DO

Nếu biểu thức logic đúng thì thực hiện <Các công viêc>;

3.1.3 Lệnh nhảy vô điều kiện GO TO

Khử Gauss là một phương pháp đơn giản và dễ hiểu về thuật toán để tính

định thức của ma trận cũng như giải hệ phương trình tuyến tính Giả sử có hệ n phương trình tuyến tính n ẩn số

<Các công việc>;

END;

GOTO

Trang 40

Dưới dạng tổng quát khi thay vào phương trình thứ m ta có:

(am2 – am1a12(1))x2 + + (amn – am1a1n(1)xn = am(n+1) – am1a1(n+1)m=2, n (3.2)

Đây chính là hệ n-1 phương trình mới không chứa ẩn x1 Tiếp tục thực hiện việc khử x2 trong hệ n-1 phương trình mới này theo cách tính toán tương tự

ta sẽ được hệ n-2 phương trình không chứa ẩn x1 và x2 v.v đoạn chương trình máy tính của cách khử này có dạng

i:=1;

For k:=i to n+1 do a[i,k]:=a[i,k]/a[i,i]; (*chia 2 vế cho aii: pt(3.1)*)

For m:=i+1 to n do

For k:=i+1 to n+1 do a[m,k]:=a[m,k]-a[m,i]*a[i,k]; (* pt (3.2) *)

Đến đây chúng ta chỉ việc thực hiện một vòng lặp theo i, bắt đầu từ i=1

đến i=n-1, tức là

for i:=1 to n do

begin

For k:=i to n+1 do a[i,k]:=a[i,k]/a[i,i]; (* xác dịnh các (Bi) *)

If i=n then goto 1;

Ngày đăng: 01/04/2014, 11:21

HÌNH ẢNH LIÊN QUAN

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 - Bài giảng tin học ứng dụng trong hóa học - Đại học Thái Nguyên doc
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 (Trang 23)
Bảng 2: Tính trung bình cộng của một dãy số. - Bài giảng tin học ứng dụng trong hóa học - Đại học Thái Nguyên doc
Bảng 2 Tính trung bình cộng của một dãy số (Trang 26)
Bảng 3: Tính trung bình cộng của một dãy số theo công thức  ∑ - Bài giảng tin học ứng dụng trong hóa học - Đại học Thái Nguyên doc
Bảng 3 Tính trung bình cộng của một dãy số theo công thức ∑ (Trang 27)
Bảng 4: Tính độ lệch chuẩn theo công thức  ∑ ( ) - Bài giảng tin học ứng dụng trong hóa học - Đại học Thái Nguyên doc
Bảng 4 Tính độ lệch chuẩn theo công thức ∑ ( ) (Trang 28)
Bảng 4 trình bày kết quả xác định đồng thời các tham số cân bằng ion  trong dung dịch từ dữ liệu đo pH ở các lực ion khác nhau của hệ axit axetic trong  môi trường NaCl - Bài giảng tin học ứng dụng trong hóa học - Đại học Thái Nguyên doc
Bảng 4 trình bày kết quả xác định đồng thời các tham số cân bằng ion trong dung dịch từ dữ liệu đo pH ở các lực ion khác nhau của hệ axit axetic trong môi trường NaCl (Trang 64)
Hình 1: Sơ đồ thuật toán tính Monte-Carlo hệ động hóa học - Bài giảng tin học ứng dụng trong hóa học - Đại học Thái Nguyên doc
Hình 1 Sơ đồ thuật toán tính Monte-Carlo hệ động hóa học (Trang 67)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w