Trong các chương trình tính hiện đại thường hay dùng các toán tử OPEN và CLOSE (dùng các số liệu trong đưa ra ngoài để giảm bộ nhớ trong)
Sử dụng bộ nhớ trong đưa ra ngoài nhằm giảm bớt nội dung mà bộ nhớ trong cần lưu trữ làm tăngkhar năng tính toán của máy. Tuy vậy việc trao đổi thông tin từ trong ra ngoài và ngược lại sẽ làm giảm tốc độ tính toán của chương trình (của máy).
Lưu ý rằng khi số liệu được tạo khuôn thì bộ nhớ sẽ tăng lên (lượng thông tin từ trong ra ngoài sẽ tăng lên). Vì vậy trong tường hợp những số liệu trung gian cần trao đổi giữa bên trong và bên ngoài nên dùng bản ghi không tạo khuôn.
Tốc độ trao đổi trong và ngoài còn phụ thuốc vào thiết bị trao đối:
- Ổ cứng: tốc độ ghi (tốc đọ quay của ổ cứng)
- USB Phụ thuộc tốc độ truy cập của USB.
27 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 1139 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Tài liệu môn học Ngôn ngữ lập trình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NGÔN NGỮ LẬP TRÌNH
I KHÁI NIỆM
CÁC NGÔN NGỮ
Khi lập trình phải sử dụng các ngôn ngữ, gọi là các ngôn ngữ lập trình, có 2 loại:
Ngôn ngữ lập trình hướng vào máy;
Ngôn ngữ lập trình hướng vào người viết chương trình, còn gọi là ngôn ngư phất triển, hoặc là ngôn ngữ bậc cao.
Ngôn ngữ lập trình hướng vào máy
Nôn ngữ máy tương đối gần với cấu trúc của máy tính, sử dụng chúng rất phức tạp và có rất ít phương tiện để kiểm tra sự đúng đắn của chương trình.
Thao tác trên ngôn ngữ máy rất phức tạp, người lập trình phải nắm vững phần cứng của máy; hơn nữa các mã được thể hiện dưới dạng nhị phân nên thao tác rất vất vã và trong quá trình tính không kiểm tra được chương trình.
Các chương trình dịch hợp ngữ: Việt chương trình dưới dạng text, sau đó chương trình dịch sẽ dịc các chương trình dạngg text sang dạng ngôn ngữ máy.
Các chương trình dịch hợp ngữ Macro: Được việt theo tưng dạng modul, mỗi modul bao hàm nhiều tập hợp lênh, người sử dụng sẽ kết hợp nhiều modul theo dạng Macro để tạo thành một chương trình hoàn chỉnh.
Các ngôn ngữ có cấu trúc cho hệ thống
Các ngôn ngữ phát triển (Ngôn ngữ bậc cao)
Người lập trình dựa vào việc xử lý thông tin thông qua các dữ liệu đã cho, viết chương trình xử lý qua các ngôn ngữ lập trình.
Từ chương trình ở dạng mac nguồn (viết theo ngôn ngữ phát triển nào đó) phải được chuyển đổi (biên dịch) về ngôn ngữ máy.
Ở đây, ta nghiên cứu những phần có liên quan đến chương trình.
Khi lập trình phải biết cấu trúc hóa các chương trình: Khi nghiên cứu giải quyết các vấn đề cần phải có sự kết hợp các thao tác, các cấu trúc ngôn ngữ trong ngôn ngữ phát triển cho phép các biểu diễn sau:
+ Tuần tự: Thực hiện các lệnh lần lượt
Ví dụ: D = A+B*C ® được viết là: E = B*C
D = A+E
+ Điều kiện:
Nếu điều kiện này là hiện thưc, thì ta thi hành lệnh xử lý nay; nếu không thì thực hiện lệnh xử lý khác.
+ Lặp số học (lặp lại bao nhiêu lần thì tính toán bấy nhiêu lần)
+ Lặp logic (Lặp lại tính toán như thế nào tới khi thu lại điều kiện như thế đấy).
Trong chương trình máy tính là một chuỗi liên tục các chỉ thị, khi đó chương trình phất triển sẽ được cấu trúc thành các “khối” xử lý, với các “ khối” xử lý này những người lập trình sẽ đễ dàng kiểm tra quá trình viết chương trình của mình dựa vào các “khối” – Các “ khối” đó còn gọi là “ sơ đồ khối”.
Cấu trúc hóa dữ liệu
Số lượng : số nguyên
Giá cả, kích thước : số thập phân (số thực)
Văn bản: là lời (ký tự; text)
Các loại thể hiện ở trên được mã hóa trong chương trình, chúng được lưu trữ với bộ nhớ khác nhau.
Chuyển đổi
Một chương trình được viết theo ngôn ngữ nào đó trước khi sử dụng phải chuyển qua ngôn ngữ máy bằng một chương trình phiên dịch nào đó. Trong quá trình phiên dịch có thể xảy ra trường hợp chương trình quá lớn, làm cho máy tính không thể làm việc được. Có 2 các giải quyết:
Thu nhỏ chương trình lại bằng cách: cho ít ẩn, biến hơn (trường hợp này khó thực hiện)
® Có thể thực hiện bằng cách chia nhỏ chương trình (tốt hơn), tức là chia nhỏ công đoạn tính (bài toán nhỏ) thành những chương trình con, được gọi là các “modul”.
Thực hiện chế độ biên dịch chương trình theo kiểu chồng lớp (overlap): có thể thực hiện ở bộ nhớ trong máy tính, hoặc ở bộ nhớ ngoài máy tính, nó chỉ thực hiện phần trọng tâm của chương trình, sau đó tùy theo yêu cầu dần dần nạp các phần cần thiết vào chương trình, phần nạp sau phủ lên phần nạp trước.
Nhược điểm: cần phải truy cập và trao đổi với bộ nhớ ngoài (ổ cứng) nên thời gian biên dịch lâu.
Các ngôn ngữ phát triển chính
Có rất nhiều các ngôn ngữ phát triển chính. Mỗi ngôn ngữ có một hiệu năng, tính chất riêng của nó, ta cần biết để sử dụng đúng lúc, đúng chổ.
Ngôn ngữ FORTRAN
Được sử dụng trong tính toán khoa học kỹ thuât.
Tháng 9/1957 FORTRAN II được xuất hiện, cuối 1958 FORTRAN III; đến 1962 FORTRAN IV xuất hiện; năm 1977 FORTRAN IV chuẩn xuất hiện, còn gọi là FORTRAN 77., sau đó xuất hiện FORTRAN 90..
Yếu điểm chính của FORTRAN là không có phương tiện thao tác ký tự, nhưng FORTRAN rất thành công trong các bài toán KHKT, nó là ngôn ngữ lập trình tối ưu nhất.
Vì FORTRAN là ngôn ngữ bậc cao tiên tiến và lâu đời nên nó để lại một tài sản về chương trình đồ sộ, quý gia trong nhều vĩnh vực khác nhau, trong đó có toán học, cơ học, kết cấu công trình. Cũng vì lý do đó, ta chọn ngôn ngứ FORTRAN để nghiên cứu và sử dụng.
Ngôn ngữ PASCAL
Là ngôn ngữ được phát triển trong lập trình KHKT và trong học đường. Nó có cấu trúc kiểm tra hữu hiệu, có sự tổ chức dữ liệu tốt, có điều kiện kiểm tra dể dàng hiệu lực của một chương trình. Người ta còn coi PASCAL là ngôn ngữ tốt nhất để viết chương trình. Ngôn ngữ PASCAL được xuất hiện từ 1972 đến nay.
Ngôn ngữ BASIC
Là ngôn ngữ quen thuộc nhất của vi tin học. Nó xuất hiện cùng lúc với sự xuất hiện của máy vi tính. Các thiết bị vào ra hơi nhiều, công kềnh, thích hợp cho những người không chuyên và ít được đào tạo về tin học.
Nhược:
Chế độ vào ra không thich hợp;
Dung lượng nhỏ;
Sự chuyển đổi chương trình không linh hoạt
Cấu trúc kiểm tra nghèo nàn;
Câud trúc dữ liệu không linh hoạt
Tóm lại: Ở trình độ cao và ở những bài toán khoc học phức tạp không nên sử dụng BASIC.
Ngôn ngữ C
Là ngôn ngữ hiện đai được sử dụng rộng rãi nhất trong mọi ứng dụng. Các ứng dụng và các phần mềm hiện đại đều được viết trên ngôn ngữ C. Nhiều nước coi ngôn ngữ C là ngôn ngữ chính thống để sử dụng và phát triển đại trà.
Nhiều lý thuyết về tin học đã được thể hiện thành công trong ngôn ngữ C. Có thể nói sức mạnh của chương trình và tính học thuật cao của ngôn ngữ C đã dần dần đưa ngôn ngữ C thành ngôn ngữ chuẩn được nhiều người ưa chuộng
PHẦN A. LẬP TRÌNH BẰNG NGÔN NGỮ FORTRAN
CHƯƠNG I
CÁC KHÁI NIỆM CƠ BẢN
Các ký hiệu dùng cho FORTRAN 90
Có 3 loại ký hiệu chính:
Các số: từ 1 ¸ 9 và các tổ hợp của nó
Ví dụ: 12; 12.345
Các chữ cái la tính: Có thể viết hoa, có thể viết thường. Chữ cái hoa và chữ cái thường không được hiểu giống nhau, đồng nhất với nhau.
Các ký tự đặc biệt
Ký hiệu
Tên ký tự
+
-
*
/
(
)
.
,
;
=
_
‘
$
Dấu cộng
Dấu trừ
Dấu nhân
Dấu chia
Mở ngoặc
Đóng ngoặc
Dấu chấm (thay dấu phẩy trong số thập phân)
Dấu phấy
Dấu chấm phẩy
Dấu bằng
Dấu cachs, dấu để trống
Dấu nháy
Ký hiệu đô la
Chú ý phân biệt giữa chữ O và số 0.
Để phân biết, người ta dùng ký hiệu O là chữ O
ø là số 0
Các dứ liệu
Dữ liệu gồm các loại:
Số nguyên
Số thực
Số thực độ dài gấp đôi: số lẻ phía sau dài hơi (14 số lẻ) để đảm bảo độ chính xác của phép tính (khi đó sẽ chiếm nhiều ô nhớ và thời gian tính hơn)
Số phức
Hằng logic (có, không, đúng sai)
Hằng lời – chữ viêt, không có chữ số
So sánh
Tên gọi
Được cấu tạo thông thường gồm 1 tập hợp gồm 5 đến 6 ký hiệu . Tên gọi phải được bắt đầu bằng chữ, ví dụ: X1, N3, C3N
Tên gọi dùng để chỉ các hằng, các biến số, các mảng, các biến. (Mảng là 1 tên gọi trong đó có chứa nhiều phần tử ở bên trong và được xếp theo một thứ tự nào đó. Mỗi phần tử ở trong mảng là một hằng hay một biến). Tên gọi cũng có thể tên của chương trình.
Các loại hằng
Hằng nguyên ( INTEGER )
+ Để mô tả các số thứ tự, số lượng, được tập hợp bởi các số từ 1 ÷ 9
Ví dụ: 1, 2, 12, 0, -123456
+Các tên gọi đặt cho hằng nguyên được tập hợp bởi các chữ và số (số không được đặt ở đầu tập) với chữ đầu tiên là các ký tự sau (6 ký tự): I, J, K L, N, M
Ví dụ: MOMENT =12, I = 4, K = 5.
+ Hằng nguyên có thể mang dấu +, -
Hằng thực ( REAL)
+ Hàng thực dùng để biểu diễn số thập phân. Số lẻ thập phân được ngăn cách bởi dấu “.”. Số số lẻ có giá trị trong máy là 7 số lẻ (Số lẻ thứ 8 sẽ được làm tròn).
Ví dụ: 0.035, hoặc viết là: .035, 12.956, 12.1234567 (không lớn hơn 7 số lẻ)
Chú ý là viết 0. cũng tương đương khi viết .0
+ Hằng thực còn biểu diễn theo dạng số mũ của 10
Ví dụ: cần viết: 1, 324 x 106 thì viết là: 1.324E+06
Khi in ra sẽ có dạng: .1324E+07
Số 4,25 x 10-20 FORTRAN viết là: 4.25E-20
+ Tên gọi của các hằng thưc được viết bằng cách tập hợp các chữ cái và chữ số (chữ số và 6 ký tự đại diện cho số nguyên – I, J, K, L, M, N không được đứng đầu tập hợp). Tập hằng thực bao gồm 5 ÷ 6 ký tự.
Ví dụ: Thể hiện Momen = 20 phải viết là:
AMOMEN = 20.
Hằng có độ dài gấp đôi (DOUBLE PRECISION) (Độ chính xác gấp đôi)
+Khi sử dụng hằng có độ dài gấp đôi, số lẻ của hằng sẽ là 14 số
Hằng có độ dài gấp đôi có thể đươc biểu diễn dưới dạng số mũ 10. Để phân biệt với hằng thực, ký hiệu E được thay bằng ký hiệu D.
Ví dụ: 2,35 x 106 sẽ được viết theo ngôn ngữ FORTRAN là: 2.35D06
+ Hằng có độ dài gấp đôi chiếm ô nhớ nhiều hơn do có nhiều số lẻ. Máy tính sẽ tính chậm hơn, nhưng cho ta kết quả chính xác hơn, tránh sai số tích lũy do quá trình tính và làm tròn số lẻ của máy.
Các hằng phức ( COMPLEX )
Được biểu diễn bằng một cặp 2 số thực viết trong ngoặc, cách nhau bằng một dấu phẩy. Số thứ nhất là số thực, số thứ 2 là số ảo. Ví dụ: ta có (a, b) thì a là số thực b là số ảo, nên khi viết: (2.,13.) có nghĩa là 2+13i.
Tên gọi của hằng phức có cấu tạo giốn như tên gọi của hằng thực nhưng trước khi vào chương trình thì phải mô tả những tên gọi đó để máy tính hiểu là hằng phức.
Ví dụ: có a = 2,15 +4i
FORTRAN viết: ANFA = (2.15,4.)
(Phải thông báo trước ở đầu chương trình hằng ANFA là hằng phức, việc thông báo này sẽ được đề cập và hướng dẫn ở phần sau)
Hằng LOGIC (LOGICAL)
Hằng LOGIC chỉ mô tả 2 giá trị:
+ Đúng: .TRUE.
+ Sai: .FALSE.
Hằng lời
Hằng lời được biểu diễn bằng tập hợp các ký hiệ dùng trong FORTRAN, biểu diễn như sau:
Cách 1: nHabcdef .n ký tự (n là số ký tự)
Cách 2: ‘các ký tự’
Tùy từng trường hợp có thể sủ dụng cách 1 hoặc cách 2 cho thuận tiện.
Ví dụ: Viết lời sau: lớp xây dựng công trình biển
Thì cách 1 sẽ là:
28Hlop xay dưng cong trinh bien
Cách 2 sẽ là:
‘Lop xay dung cong trinh bien’
Hằng lời lớn nhất là 128 ký tự vì máy in chỉ có 128 cột
(Thông thường nên ký hiệu khoảng 110 đến 120 ký tự)
Các biến
Định nghĩa. Biến là đại lượng có thể nhận những giá trị khác nhau tại những giai đoạn khác nhau trong quá trình tính toán.
Ví dụ: ta có:
X = Y + 2.*Z
Trong đó: 2. là số thực (hằng); X, Y Z là biến
Hoặc:
DELTA = B*B-4.*A*C
Thì 4. là hằng, còn A, B, C là các biến; D (DENTA) cũng là biến.
Biến tuân theo quy tắc tên gọi, và phải theo yêu cầu sau:
Mở đầu phải bằng chữ (không phải là số);
Nếu biến bắt đầu bằng chữ I,J K, L M, N thì biên đó là biến nguyên
Biến bắt đầu bằng các chữ cái khác thì sẽ là biến thực;
Biến có thể độ dài gấp đôi, phức, logic với điều kiện trước khi vào chương trìnhphair mô tả chúng.
Các loại biến
Caqwn cứ vào dữ liệu ta có biên nguyên, biến thực, biến độ dài gấp đôi, biến phức, biến logic
Có 2 cách mô tả biến:
Cách 1:Mô tả ẩn – Mô tả theo quy tắc tên gọi, trong đó các biến có chử cacis đầu I, J, K, L, M, N là biến nguyên, còn lại là biến thực
Cách 2:Dùng toán tử mô tả loại; khi dùng toán tử mô tả loại thì biến sẽ phụ thuộcvaof toán tử mô tả mà không phụ thuộc vào chữ cái đầu.
Ví dụ:
Cách 1: IN = 3 ® biến nguyên
AIN = 4.® biến thực
Cách 2: REAL IN, M ® biến IN và M là biến thực (trong khi có chữ cái là biến
nguyên)
COMPLEX ANFA ® biến ANFA là biến phức
INTEGER ANFA, BETA ® ANFA, BETA là nguyên
LOGICAL M, N, A ® M, N, A là biến LOGIC
DOUBLE PRECISION A ® A có độ dài gấp đôi
Mảng
Định nghĩa: Mảng là một dãy các đại lương sắp xếp theothuws tự nhất định. Mảng thường biểu diễn các ma trận.
Có các loại mảng sau:
Mảng 1 chiều: A(k) ® biểu diễn các vecto có k phần tử
Mảng 2 chiều: B(j,k) ® biểu diễn ma trận có j hàng, k cột
Mảng 3 chiều: C(i,j,k) ® để mô tả mảng 3 chiều
Các dạng chỉ số của mảng
Các số nguyên ở trong ngơcj được gọi là chỉ số, chỉ số có thể là một biểu thức nguyên, ví dụ: A (k+4*j) là mảng 1 chiều
Chú ý:
Chỉ số của mảng không thể là một số £ 0
Chỉ số không nên để ở dạng biểu thức, ví dụ có mảng 2 chiều:
A(3*k+2, 5*J**2)
Nên đăt: k1= 3*k+2
k2= 5*j**2
A(k1,k2).
Các loại mảng: Tương tự như biến, mảng có các loại mảng nguyên, thực, độ dài gấp đôi, phức, logic Biểu diễn mảng có 2 cách tương tự như biểu diễn biến.
Cách 1: ẩn
Cách 2 : dùng toán tử, ví du:
REAL IC(14)
COMPLEX A(7)
Kích thước mảng
Gía trị lớn nhất của trị số ( ) là kích thước mảng, ví dụ:
A(25) là mảng 1 chiều có kích thước là 25 (tức là có 25 biến, hay 25 phần tử: bao gồm: A(1), A(2), A(3) .., A(24), A(25))
B(12,15) là mảng có kích thước 12x15 và có 12x15 = 180 phần tử: B(1), B(2) . B(179), B(180).
Trình tự sắp xếp mảng theo bộ nhớ
+ Với mảng một chiều thì phần tử mảng sắp xếp theo thứ tự tăng dần
+ Với mảng nhiều chiều thì các phần tử sẽ sắp xếp theo bộ nhớ tăng dần theo chiều của chỉ số: 1, 2, 3 Ví dụ:
A(i,j), i=1,2, j=1,3 ® có nghĩa sẽ đi theo hàng trước, như sau: A(1,1), A(1,2), A(1,3), A(2,1), A(2,2), A(2,3)
Nếu viết: A(i,j), j=1,3, i=1,2 ® có nghĩa sẽ đi theo cột trước, như sau: A(1,1), A(2,1), A(1,2), A(1,2), A(1,3), A(2,3).
Theo ngôn ngữ FORTRAN, thứ tự chạy theo mảng được viết như sau:
(A(I), I=1,10) Mảng 1 chiều
(A(I,J), I=1,2, j=1,3) Mảng 2 chiều
(A(I,J),J=1,3, I=1,2) Mảng 2 chiều
III. Các biểu thức
Các loại biểu thức
Các biểu thức có thể là hằng, là biến, là phần tử mảng hàm số hoắc các tổ hợp của chúng – được liên hệ với nhau bởi các dấu của phép tính (+ - * / .), dấu phẩy, dấu ngoặc.
Có 3 loại biểu thức:
Biểu thức số học;
Biểu thức logic;
Biểu thức quan hệ
Biểu thức số học
Biểu thức số học được tạo ra bởi các phép tính và toán hạng. Toán hạng có thể lag hằng, biến, phần tử mảng và hàm số. Các toán hạng và giá trị biểu thức số học có thể là nguyên, thực, độ dài gấp đôi và phức.
Các phép tính: Có 5 loại: cộng (+), trừ (-), nhân (*), chia (/) và lũy thừa (**)
Ví dụ: A+B thì A và B là toán hạng;
Dấu + là phép tính
Trong phép tính cho phép dùng dấu ngoặc, mỗi dấu ngoặc đóng và mở ngoặc tạo thành 1 lớp; có thể có nhiều lớp và được tính từ trong ra ngoài
Ví dụ: X1 = (-B+A1)?(2.*A)
Khác với biểu thức:
X2=(-B+A1)/2.*A ® lúc này máy tính sẽ hiểu là: X2= ((-B+A1)/2.)*A
Hoăc: Y=4.*(12*A*(B+C)) ® Tính giá trị (B+C) trước, sau đó mới nhân các kết quả với nhau.
Chú ý
+ Không được viết A.B mà phải viết: A*B
+ Không được viết: A*-B mà phải viết: A*(-B)
+ Biểu thức ( theo ngôn ngữ FORTRAN viết là: (A**B)**C
+ Biểu thức theo ngôn ngữ FORTRAN viết là: A**(B**C)
Trong cùng một bậc thì làm từ trái qua phải và phép tính trong ngoặc được làm trước.
Các chú ý khác
+ Nếu trong biểu thức có các đại lượng nguyên và thực thì kết quả đưa ra là đại lượng thực, ví dụ: A=4*B tương đương: A=4.*B (không nên dung 4 để tính, vì khi đó chương trình sẽ chuyển 4 thành 4. sau đó mới nhân, sẽ tính chậm hơn do quá trình biến đổi số nguyên thành số thực.
+ Nên dùng nguyên lũy thừa nguyên hoặc thực lũy thừa thực
Ví dụ: 2**4 hoặc 2.**4.
2**2.5 nên đổi thành 2.**2.5
+Một số loại lũy thừa được chấp nhân:
R**R
R**I
R**DP (Tực lũy thừa độ dài gấp đôi)
C**I
+Biểu thức: A**2 nên viết A*A (tính sẽ nhanh hơn)
Hoặc A**3 nên viết A*A*A
Biểu thức quan hệ
Được cấu tạo bới 2 biểu thức số học, được liên hệ với nhau bới phép tính quan hệ. Giá trị biểu thức quan hệ là loại LOGIC: Chỉ nhận đúng (TRUE) hoặc sai (FALSE)
Biểu thức quan hệ có thể là nguyên, thực, độ dài gấp đôi (có thể là phức) gồm:
.LT. tức là (<) nhỏ hơn - Little
.LE. (£) nhỏ hơn hoặc bằng – Little or Equal
.GT. (>) lớn hơn – Greater
.GE. (³) lớn hơn hoặc bằng – Greater or Equal
.EQ. (=) Bằng – Equal
.NE. (¹) Không bằng – Not Equal
Ví dụ: viết lệnh: Nếu A nhỏ hơn B thì đi
FORTRAN viết như sau:
IF(A.LT.B) GO TO
Biểu thức LOGIC
Được cấu tạo bởi toán hạng và các phép tính LOGIC. Toán hạng có thể là hằng logic, biến logic, phần tử mảng logic, hàm logic và các biểu thức quan hệ.
Ta có các phép tính quan hệ như sau:
.OR. (Hoặc)
.AND. (Và)
.NOT. (Không)
Ví dụ: IF(A.LT.B.AND.C.GT.D.OR. .) ®
Nếu A D hoặc
Trình tự thực hiện:
Bậc 1: .NOT.
Bậc 2: .AND.
Bậc 3: .OR.
Nếu ở trong dấu ngoặc thì thực hiện trước.
Nếu có phép tính quan hệ trong biểu thức LOGIC thì phép tính thực hiện theo thứ tự sau:
Thực hiện phép tính số học trước
Phép tính quan hệ tiếp theo
Sau đó thực hiện phép tính LOGIC
IV. Phân loại các toán tử
Toán tử thực hiện:
Toán tử gán
Toán tử điều khiển
Toán tử vào/ra
Toán tử không thực hiện
Toán tử mô tả
Toán tử cho giá trị ban đầu
Toán tử mô tả khuôn, dữ liệu
Toán tử xác định hàm và chương trình con
Thư tự viết các toán tử trong chương trình
Viết toán tử mô tả đặc biệt: thực, nguyên
Toán tử xác định hàm
Toán tự thực hiện
Dòng cuối là dòng kết thúc chương trình bằng chữ END.
V. Toán tử gán dùng để gán các kết quả tính toán, các hằng, các biến vào các tên gọi:
1. Toán tử gán số học:
V = A
Trong đó: V – Tên gọi: hoặc của hằng, biến, hoặc của phần tử mảng; V có thể là nguyên, thực, độ dài gấp đôi hoặc phức.
A – Kết quả tính toán, hằng, biến
Ví dụ:
DENTA = b**2- 4.*a*c
X(10) = 4.
IN = I**2+J
Chú ý
+ Tên gọi (vế trái) không thể là một biểu thức, một phép tính hoặc là một số, những biểu thị sau là sai, ví dụ:
X+Y =7
7+X = y
+ Gán một số thực cho 1 tên gọi nguyên sẽ được1 số nguyên bằng cách loại bỏ số lẻ thập phân chứ không làm tròn số.
Ví dụ: Cho
A = 2.3
B = 2.999
I1 = A ® sẽ được giá trị 2.
I2 = B ® sẽ được giá trị 2.
Như vây:
J = I1/I2 = 1 (két quả sai)
Trong thực tê, nếu cần tìm số lẻ thì làm như sau:
B = 2.999
I=B ® I = 2
A = 1.*I ® A = 2.
C = B – A ® C = 0.999
2. Toán tử gán LOGIC
Có biểu thức:
V = L
Trong đó: V là tên gọi của biến logic hay của phần tử mảng logic
L là biểu thức logic
Ví dụ:
L1 =.TRUE.
L2 =.FALSE.
L = L1.OR. .NOT. L2
VI. Các toán tử điều khiển
Ý nghĩa: Nếu như không có toán tử điều khiển thì máy sẽ làm theo các lệnh thừ trên xuống. Toán tử điruf khiển dùng để rẻ nhánh chuyển đến một vị trí cần thiết
Toán tử điều khiển có 6 loại
GOTO (đi đến) – hoặc có thể viết rời ra: GO TO
IF (nếu)
CALL (gọi)
RETURN (trở về)
DO (thực hiện)
CONTINUE (tiếp tục)
Toán tử GOTO
Có 3 dạng
+ Chuyển vô điều kiện
+ Chuyển có điều kiện (có tính toán)
+ Chuyển ấn định
Chuyển điều khiển vô điều kiện
Lệnh: GOTO m
Trong đó: m là nhãn của toán tử thực hiên mà ta cần đi đến
Ví dụ:
A = 2.
B = 1.5
I = J+1
IF(A.GT.B) GOTO 3
C=A+B
GOTO 4
C=A*B
Chú ý: Từ cột 1¸5 cột gắn nhãn
Cột 6 dùng để nối hàng
Từ cột 7 để đi viết chương trình
Toán tử chuyển điều khiển có tính toán (có điều kiện)
Lệnh: GOTO (M1, M2, M3, Mn), K
Trong đó K là 1 chỉ số xác định từ 1 ¸ n
Còn M1 ¸Mn là các nhãn của toán tử.
Nếu K = j thì toán tử điều khiển cho nhảy đến nhãn có trị số là Mj
Ví dụ:
I=J+K
A=4.
B=2.
GOTO(1,3,7,9),I
1 C=A*B
GOTO 10
3 D=A+B
GOTO 10
7 E=2.*A
GOTO 10
9 E=2.*A**3
10 Viết dữ liệu ra .
Như vây, I có trị số từ 1 đến 4, tùy giá trị I ta có thể chuyển qua các nhãn khác nhau để tính toán:
I=1 ® nhảy qua nhãn 1
I=2 ® nhảy qua nhãn 3
I=3 ® nhảy qua nhãn 7
I=9 ® nhảy qua nhãn 9
Toán tử IF
Có 2 dạng: IF số học và IF logic
IF số học
Lện tổng quát: IF(A) m1, m2, m3
Trong đó A là biểu thức số học, hoặc một tên gọi
m1, m2, m3 là nhãn của toán tử thực hiện.
Ý nghĩa tổng quát:
Nếu A<0. thì nhảy đến nhãn m1
Nếu A=0. thì nhảy đến nhãn m2
Nếu A>0. thì nhảy đến nhãn m3
Ví dụ:
A=B+C-2.*D
IF(A)1,1,4
1 A=-A
GOTO 5
4 CC=SQRT(A)
5 Tiếp tục chương trình
IF logic
Lệnh tổng quát: IF(L)S
Trong đó: L là biểu thức logic, thường là biểu thức quan hệ
Ví dụ: biểu thức L như sau: (A.LT.B.OR.A.EQ.C)
Hoặc: (A.LE.0)
S là toán tử thực hiện bất kỳ, trừ 2 toán tử IF và DO. Toán tử S thường là toán tử chuyển vô điều kiện: GOTO m.
Khi sử dụng cho toán tử thực hiện bất kỳ thì chú ý quan hệ sau:
A=B+C-2.*D
IF(A.GT.0) GOTO 4
A=-A
CC=SQRT(A)
Chú ý: 2 đoạn chương trình nêu trên là tương đương.. Ta cũng có thể viết đoạn chương trình trên bằng cách khác:
A=B+C-2.*D
IF(A.LE.0) A=-A
CC=SQRT(A)
Cách này hay dùng, nếu dùng không cẩn thận thì dễ bị sai
Ta làm một số ví dụ:
Nếu I = 1 thì A=B+C
Nếu I = 2 thì A= 2B+D**E
Ta có nhiều cách viết:
A=B+C
IF(I.EQ.Q) GOTO 2
A=2.*B+D**E
2 Tiếp tục tính
Hoặc
IF(I.EQ.1) A=B+C
IF(I.EQ.2) A=2.B+D**E
Hoăc
IF(I.EQ.1) GOTO 2
IF(I.EQ.2) A=2.B+D**E
GOTO 3
2 A=B+C
3 Tiếp tục tính
Ví dụ khác:
A=2B nếu -¥£x<10
A = 4B nếu x>10
Viết chương trình như sau:
E=-1.E+20
A=2.*B
IF(E.LE.X.AND.X.LT.10.) GOTO 4
A=4.*B
4 Tiếp tục tính
Hoặc
A=4.*B
IF(X.GT.10.) GOTO 4
A=2.*B
4 Tiếp tục tính
Hoặc
IF(X.GT.10.) GOTO 4
A=4.*B
GOTO 5
4 A=2.*B
5 Tiếp tục tính
Còn có thể viết:
IF(X-10.) 1,1,4
1 A=2.*B
GOTO 2
4 A=4.*B
2 Tiếp tục tính .
Toán tử điều khiển chương trình: PAUSE và STOP
Toán tử PAUSE là toán tử tạm nghỉ, sau đó chạy tiếp. Có 2 loại:
PAUSE
PAUSE n
Trong đó n là 1 ố để chỉ địa chỉ dừng, toán tử PAUSE thường ít dùng (dừng máy để tiếp tục đưa số liệu vào)
Toán tử STOP có 2 dạng:
STOP
STOP n
Ta hay dùng toán tử STOP – dừng hẳn.
Còn toán tử STOP n, trong đó n là chỉ số, khi đến chỉ số đó mới dừng
Thông tường mỗi chương trình (chương trình chính), trước khi muốn kết thúc ta dùng lệnh STOP, như vậy trong mỗi chương trình có ít nhất 1 lệnh STOP.
Toán tử DO
Toán tử DO thường dùng trong thuật toán có chu trình. Đây là toán tử cơ bản của FORTRAN. Lệnh như sau:
DO m i=m1,m2,m3
Trong đó, m là nhãn của toán tử thực hiện náo đó sau toán tử DO. Toán tử m còn gọi là toán tử cuối của chu trình DO
Toán tử cuối của DO không được là6 toán tử sau:
IF số học
IF logic
STOP
PAUSE
RETURN
DO
Nếu cần chuyển tới 6 toán tử đóthif có thể thay toán tử chứa nhãn m bằng 1 toán tử rỗng (được ký hiệu là CONTINUE)
i là biến nguyên, biến điều khiển của chương trình
m1 có thể là hằng nguyên, hoặc biến nguyên, gọi là thông số ban đầu;
m2 là hằng nguyên, hoặc biến nguyên, gọi là thông số cuối
m3 là hằng nguyên, hoặc biến nguyên, là gia số hoặc là bước của chu trình.
m1, m2, m3 phải > 0 (nếu không chắc chắn phải có toán tử điều khiển IF).
Nếu m3 = 1, thì lệnh thực hiện có thể viết gọn lại bằng cách bỏ m3:
DO m i=m1,m2
Ví dụ:
Giải phương trình bậc 2: AX2+ BX + C = 0 tìm x; A, B, C đã biết
Sơ đồ khối như sau:
Đọc A, B, C
D = B2 – 4AC
So sánh: D ³ 0 + Làm tiếp D=
-
Vô nghiệm Tính X1, X2
STOP Viết X1, X2
STOP
Trong đó: X1 = X2 =
Chương trình viết như sau:
Đọc số liệu A, B, C
DENTA = B**2-4.*A*C
IF(DENTA.LT.0.) GOTO 1
D=SQRT(DENTA)
X1=(-B+D)/(2.*A)
X2=(-B-D)/2./A
Viết X1, X2
GOTO 2
1 Viết: Phương trình vô nghiệm
2 STOP
END
Có thể viết theo nhiều cách khác nhau
Nếu có nhiều bài toán giải phường trình bậc 2 thì đưa vào lênh GOTO 3 (lênh đầu chương trình để tính tiếp. Có nhiều cách để kết thúc chường trình, sẽ xem xét ở phần sau.
Ví dụ: Tính tổng: S =
Cách viết 1
Đọc N
Đọc (R(I), I=1,N)
SUM = 0.
I=1
1 SUM=SUM+R(I)
I=I+1
IF(I.LE.N) GOTO 1
Viết kết quả của SUM
STOP
END
Cách 2
Đọc N
Đọc (R(I), I=1,N)
SUM = 0.
DO 5 I = 1,N
SUM=SUM+R(i)
5 CONTINUE
Viết KQ
STOP
END
Trong quá trình viết cố gắng tiết kiệm lệnh.
Thuât toán Có 5 dạng thuật toán:
Thuật toán thường (đơn giản): Các khối được ghép tuần tự với nhau
Thuật toán tích lũy và chu trình;
Thuật toán phân nhánh;
Thuật toán lặp;
Thuật toán nhận dạng, gồm mã hóa các dữ liệu.
Chú ý khi dùng toán tử DO
+ Biến I và các thông số m1, m2, m3 không được dùng các toán tử khác để thay đổi trong miền DO;
Trong miền DO có chứa chu trình DO khác (DO lồng nhau), chú ý là:
Các biến phải khác nhau;
Chu trin hf DO ở phía ngoài có thể chứa 1 hay nhiều chu trình DO ở phía trong và được kết thúc bằng 1 toán tử cuối
Ví dụ:
DO 5 I1=
. .
.
.
DO 5 I2 =
.
.
.
5 CONTINUE
.
Hoặc là:
DO 5 I1=1,N
.
.
.
DO 10 I2 = 1,N1
.
.
.
DO 15 I3 =1,M
.
.
.
15 CONTINUE
10 CONTINUE
5 CONTINUE
Hoặc là:
DO 5 I=1,N
.
.
DO 10 I1=1,M
10 CONTINUE
DO 15 J =1,K
15 CONTINUE
5 CONTINUE
Các chương trình Do chứa trong nhau và lồng nhau chứ không được cắt nhau
6. Toán tử CONTINUE
Là toán tử rỗng, nó không ứng với một phép tính nào cả, không ảnh hưởng gì đến thứ tự các phép tính trong chương trình. Công dụng của nó là thường dùng để đặt ở cuối chu trình Do để tránh dùng các toán tử: GOTO, PAUSE, STOP, RETURN, DO, IF
CONTINUE mang nhãn của chu trình DO (là toán tử cuối của chu trình)
Ví dụ 1:
Cho mảng 2 chiều A(I,J): I=1,20
J=1,30
Tạo màng để tất cả các phần tử của mảng bằng 0.
DO 5 I=1,20
DO 5 J=1,30
5 A(I,J)=0.
STOP
END
Ví dụ 2: Cho ma trận hình vuông A(I,J) I=1,N
J=1,N
Tạo ma trận tam giác dưới có hệ số bằng 1.
Thường người ta xóa sạch ma trận A, cho các hệ sô bằng 0, sau đó chèn các hệ số phía dưới bằng 1
DO 5 I=1,N
DO 5 J=1,N
5 A(I,J)=0.
DO 10 I=1,N
DO 10 J=1,I
10 A(I,J)=1..
STOP
END
Ví dụ 3: Công ma trận:
A(I,J) I=1,N và ma trận B(I,J) I=1,N
J= 1,M J=1,M
Hãy tính: C = A + B
DO 5 I=1,N
DO 5 J=1,M
5 C(I,J)=A(I,J)+B(I,J)
STOP
END
Ví dụ 4: Nhân 2 ma trận C= A*B với A(I,J) I=1,N B(I,J) I=1,M
J = 1,M J=1,N
Ta có: cị =
DO 1 I=1,N
DO 1 J=1,N
C(I,J)=0.
DO 1 K=1,M
C(I,J)=C(I,J)+a(I,K)*B(K,J)
1 CONTINUE
STOP
END
VII. Toán tử trao đổi (toán tử vào/ra I/O Input/Output)
Toán tử vào ra dùng để trao đổi thông tin giữa bộ nhớ trong và ngoài
Bộ nhớ trong bao gồm các toán tử trao đổi thông tin và toán tử phụ
Bộ nhớ ngoài bao gồm: bàn phím, đĩa cứng, ÚB
Các đặc trưng chung của toán tử trao đổi
Toán tử trao đổi gồm 2 toán tử chính:
READ (dọc) dùng để đưa thông tin từ thiết bị ngoài vào bộ nhớ trong
WRITE (Viết) dùng để đưa thông tin từ bộ nhớ trong ra ngoài.
(PRINT :Ít dùng )
Khi dùng các toán tử trên, cần phải chỉ ra các yếu tố sau:
Thiết bị ngoài: kênh nào? (UNIT)
Khuôn dữ liệu (FORMAT)
Danh sách trao đổi (nôi dung trao đổi)
Toán tử READ
READ có 4 dạng chính như sau:
a/ READ (u, f, s) D
b/ READ (u, f) D
c/ READ (u, s) D
d/ READ (u) D
Trong đó:
u là ký hiệu thiết bị ngoài, hay ký hiệu kênh
f là nhãn (địa chỉ) của FORMAT dữ liệu (tạo khuôn dữ liệu)
Trong trương hợp khuôn tự do (FORMAT tự do) ta có mặc định: thay “f” bằng ký hiệu “*”, lúc đó ta không cần tạo khuôn cho dữ liệu vào (trường hợp a/ và b/)
Trong trường hợp sử dụng toán tử ra vào không được tạo khuôn (“UNFORMATTED” thì f vắng mặt (trường hợp c/ và d/)
s có thể có các dạng sau::
ERR = m (nếu sai, đi đến nhãn m)
END = m (nếu kết thúc, đi đến nhãn m)
Nếu trong quá trình đọc hoặc viết, trường hợp gặp sai số máy không nhảy ra ngoài mà dùng đọc để nhảy đến nhãn m để tiếp tục chương trình.
Khi đọc hết dữ liệu, hoặc hết mảng số liệu cần đoc, máy cũng sẽ nhảy đến nhãn m để tiếp tục chương trình.
Ngoài ERR, END, còn có một số toán tử điều khiển khác, có thể tham khảo thêm trong các tài liệu tham khảo khi cần thiết .
D là danh sách trao đổi, danh sách có thể là các biến, tên hằng, các mảng, các phần tử mảng, danh sách các đối tượng được thực hiện từ trái sang phải, có 2 dạng chính:
danh sách đơn giản
danh sách kiểu DO (ẩn, không cần viết “DO”)
Danh sách đơn giản
Có thể là biến của phần tử mảng, hay mảng, các đối tượng được cách nhau bởi dấu phẩy
Ví dụ: Đọc số liệu A, B, C trong giải phương trình bậc 2:
READ(1,*) A, B, C
Trong đó, * là FORMAT tự do: muốn ghi số theo kiểu nào cũng đươc, có thể ghi theo kiểu thập phân, ghi dươi dạng số mũ nhưng nếu A, B, C là thực, nguyên thì phải ghi thưc, nguyên.
“1” là kênh, là địa chỉ trong máy dùng để chứa file dữ liệu của A, B, C
Có thể viết kiểu khác:
READ (1, 3) A, B, C
3 FORMAT (3F10.2)
Khi đó phải đưa số liệu theo khuôn, như sau:
F thể hiện số thực (thập phân), mỗi số nằm trong 10 cột, có 2 số lẻ.
Như vậy số A nằm ở ô 1 đến 10, số B nằm từ 11 đến 20, số C nằm ở cột 21 đến 30. Các số khác nhau không được nằm ở các cột không phải của minh.
Danh sách kiểu DO (ảo) dùng để mô tả mảng.
Cấu trúc của nố giống như cấu trúc của toán tử DO có điều khiển (nhưng ẩn) tức là:
I=m1,m2,m3
Trong đó: m1, m2, m3 được giải thích giống như chu trình DO.
Cấu trúc kiểu DO có thể nằm trong 2 dấu ngoạc (lồng nhau), 3 dấu ngoặc (3 lần) ® tương đương với mảng 3 chiều.
Các danh sách đơn giản và danh scahs kiểu chu trình DO ẩn có thể được viết liên tiếp và cách nhau bằng dấu phẩy.
Ví dụ:
READ (1,3) ((A(I,J),I=1,N0, J=1,N)
Nhận xét: Nếu mảng đơn giản có
0 chiều: 0 dấu ngoặc
1 chiều: 1 dấu ngoặc
2 chiều: 2 dấu ngoặc
3 chiều: 3 dấu ngoặc
Có thể viết:
READ(2,*) A,B,C, N, (D(J),J=1,N),E
Khi đó các số cách ngay 1 dấu phây hoặc 1 (hoặc nhiều) dấu cách; mỗi hàng chỉ được thể hiện 72 cột, không viết ở cột 73. Nếu viết một hàng không đủ thì xuống hàng, và phải nối hàng bằng kí hiệu nội hàng (ký hiệu bất kyỳ) ở cột thứ 7 của hàng tiếp theo.
Chú ý là việc nối hàng không được dài quá 19 hàng
Toán tử WRITE
Cũng có những dạng tương tự như toán tử READ, như sau:
a/ WRITE (u, f, s) D
b/ WRITE (u, f) D
c/ WRITE (u, s) D
d/ WRITE (u) D
Các chỉ số u, f, s, D tương tự như toán tử READ.
Ví dụ:
WRITE (3,*) A, B, (C(I), I=1,4)
Chú ý:
Toán tử u có 2 dạng đặc biêt.:
Dạng 1: u = * ® dữ liệu vào ra được biểu diễn trên màn hình
Dạng 2: Nếu trên màn hình xuất hiện câu hỏi:
UNIT u=?
Trả lời: VIDU1.DAT (có nghĩa đưa file VIDU1.DAT vào đọc (hoặc viết))
Trả lời CON (có nghĩa đọc (hoặc viết) dữ liệu từ màn hình.)
Cấu trúc toán tử vào ra
Bao gồm:
OPEN (Mở file)
CLOSE (Đóng file)
INQUIRE (1 số yêu cầu)
BACKSPACE (quay lại)
REWIND (Về vị trí ban đầu)
ENDFILE (Đi về cuối file)
A. Một số khái niệm cơ bản
a. Bảng ghi (record)
Nhằm mục đích ghi các số liệu vào tệp (file) – Có 2 cách chính:
Bản ghi được tạo khuôn (formatted)
Bản ghi không được tao khuôn (unformatted)
Bản ghi được tạo khuôn cho 1 kết quả theo 1 khuôn mẫu ấn định: chiều dài định ghi, kiểu thể hiện – thường cho bằng ngôn ngữ, chữ viết thông thường. Còn bản ghi không được tạo khuôn được ghi bằng ngôn ngữ máy: tiết kiệm bộ nhớ, ghi nhanh hơn, chính vì vậy trong trường hợp cần thiết (để cho người đọc và viết) ta mới sử dụng bản ghi được tạo khuôn, còn trong quá trình trao đổi của máy thì không cần tạo khuôn.
b. Các tệp (files)
Các tệp là tên của một nội dung nào đó mà ta ký hiệu trong quá trình ghi lại. Có 2 loại:
- Tệp bên trong: nằm ở bộ nhớ trong
- Tệp bên ngoài: nằm ở các thiết bị ngoài: đĩa mềm, đĩa cứng.
Tệp bên trong chính là các hằng, các biến, các mảng nằm trong chương trình
Các tệp bên ngoài là các tệp được ghi lại trong các đĩa mềm hoặc đĩa cứng khi cần thiết sẽ được gọi ra để đưa vào bộ nhớ trong và sử dụng chúng..
c. Các ghi các tệp theo kiểu tuần tự (sequential access)
Tính chât:
*Nội dung được đưa vào (ra) một cách tuần tự, không có đia chỉ cụ thể
* Nội dung có thể được ghi theo dạng được tạo khuôn hay không được tạo khuôn.
* Độ dài của bản ghi có thể thay đổi
d. Cách ghi các tệp theo kiểu trực tiếp (direct access)
Có các tính chất sau:
* Mỗi một đợt ghi có địa chỉ (thứ tự) riêng biệt, có độ dài bản ghi cố định cho mỗi đợt ghi.
* Phải đọc và viết theo kiểu trực tiếp (có địa chỉ ® thay s bằng: REC=j); phải mô tả độ dài cho đủ.
* Khi viết (ghi vào) 1 nội dung vào 1 dịa chỉ nào đó thì nội dung cũ sẽ mất đị và được thay vào nội dung mới.
* Thứ tự ghi vào các địa chỉ có thể là bất kỳ
e. Các kên (UNIT)
Các kênh là thứ tự của thiết bị ngoài dùng để gắn tên các tệp nào đó vào những kênh xác định. Kênh là số nguyên dương. Mỗi kênh chỉ chứa một tệp duy nhât, nếu người ta gán một tệp mới vào kênh đang chứa một tệp khác, nếu một tệp cũ chưa được đóng lại thì tệp cũ sẽ bị xóa đi và thay bằng thệp mới.
B. Toán tử OPEN
Dạng tổng quát: OPEN (Olist)
Trong đó: Olist: sẽ là những kí hiệu (những lệnh) mô tả sau:
1. Có thể là mô tả kênh: [UNIT=] u
Dấu ngoặc: có thể không cần UNIT = trong ngoặc
2. Có thể là (hoặc): FILE = f
Thể hiện file hoặc tệp được gán vào kênh u ( kênh u chứa vào tệp f).
Nếu ta có hằng lời, ví dụ: CB2.DAT thì có thể ghi: FILE = CB3.DAT
Nếu chưa mô tả tên file là hằng lời thì phải ký hiệu như sau: FILE = “LOPCTB.DAT”
3. STATUS = Sta.
Sta=’NEW’ nếu như chúng tao khởi tạo file f lần đầu tiên hoặc có rồi, thì nó sẽ khởi tạo lại, tức là xóa hết tất cả cái cũ đi.
Sta=’OLD’ có nghĩa đã ó sẵn trong máy rồi, máy không cần tạo file mới
4. ASEC =Ac
Ac = ‘ SQUETIAL’ tuần tự (mặc định)
Ac = ‘DIRECT’ : trực tiếp
5. Dạng FORM = form
Trong đó form được tạo khuôn hoặc không được tạo khuôn, lệnh như sau
FORM =’FORMATTED’
FORM = ‘UNFORMATTED’
6. RECL (Chiều dài (độ lớn) của 1 bản ghi), ta có
RECL= rec, trong đó “rec” là một số thể hiện độ lớn của bản ghi, được dùng trong cách ghi trực tiếp, cách ghi tuần tự không có.
Thông thường:
Nếu tạo khuôn:
1 số nghuyên tạo khuôn thì rec = 8
1 số thực tạo khuôn thi rec = 14
1 số độ dài gấp đội thì rec = 28
Tính xem có bao nhiêu số trong một lần ghi, sẽ tìm đươc độ dài tổng thể cần khai bao.
Nếu không tạo khuôn:
1 số nghuyên tạo khuôn thì rec = 2
1 số thực tạo khuôn thi rec = 4
1 số độ dài gấp đội thì rec = 8
Ví dụ
Mở file “T”, mới, trực tiếp, không tạo khuôn, dài 1 bản ghi là 180
OPEN (2, FILE=’T’, STATUS=’NEW’, ACCESS=’DIRECT’, RECL= 180, FORM=’UNFORMATTED’.
Ghi chú: Có quyền thay đổi vị trí, không cần theo thứ tự trên.
Nếu bản ghi cũ thì có thể: thay ‘NEW’ bằng ‘OLD’, hoặc không cần ghi thì máy sẽ mặc định là ‘OLD’.
Nếu bản ghi cũ, ghi tuần tự, tạo khuôn thì có thể viết:
OPEN (2, FILE=’T’) (bản ghi cũ, theo tuần tự, tạo khuôn ® đã mặc định, không cần ghi).
Vậy, kênh 2 sẽ vào file “T”.
Toán tử CLOSE (đóng file)
Dạng đơn giản : CLOSE (Olist)
Trong đó: Olist sẽ là:
UNIT = u
STATUS = sta
sta = DELETE (xóa file, loại bỏ dữ liệu)
sta = KEEP (lưu giữ lại dữ liệu của file)
Trong trường hợp ổ cứng có nhiều khoảng tróng lưu trữ, thường dùng KEEP để lưu giữ, nếu ít chổ lưu trử, có thể xóa đi để tăng cương bộ nhớ..
Khi xóa đi, trong kênh 2 sẽ không còn tồn tại file T nữa, nhưng nếu lưu lại (KEEP), thi trong ổ cứng vẫn còn lưu trữ file T, nhưng trong bộ nhớ trong không còn chứa file T.
Toán tử BACKSPACE (quay trở lại)
Toán tử BACKSPACE cho phép quay trở về vị trí bản ghi tước đó (thường dùng trong ghi tuần tự). Dạng cơ bản:
BACKSPACE u
Hoặc:
BACKSPACE (Olist)
Trong đó:
Olist có thể là:
+ UNIT = u
+ ERR = m
Ví dụ: BACKSPACE (4)
Hoặc: BACKSPACE 4
REWIND (Quay lại vị trí ban đầu)
Lênh tương tự như toán tử BACKSPACE:
REWIND (Olist)
Trong đó:
Olist có thể là:
+ UNIT = u
+ ERR = m
, ví dụ:
REWIND (4)
Hoặc: REWIND 4
Thông thường được sử dụng trong ghi tuần tự.
Trong các chương trình tính hiện đại thường hay dùng các toán tử OPEN và CLOSE (dùng các số liệu trong đưa ra ngoài để giảm bộ nhớ trong)
Sử dụng bộ nhớ trong đưa ra ngoài nhằm giảm bớt nội dung mà bộ nhớ trong cần lưu trữ ® làm tăngkhar năng tính toán của máy. Tuy vậy việc trao đổi thông tin từ trong ra ngoài và ngược lại sẽ làm giảm tốc độ tính toán của chương trình (của máy).
Lưu ý rằng khi số liệu được tạo khuôn thì bộ nhớ sẽ tăng lên (lượng thông tin từ trong ra ngoài sẽ tăng lên). Vì vậy trong tường hợp những số liệu trung gian cần trao đổi giữa bên trong và bên ngoài nên dùng bản ghi không tạo khuôn.
Tốc độ trao đổi trong và ngoài còn phụ thuốc vào thiết bị trao đối:
Ổ cứng: tốc độ ghi (tốc đọ quay của ổ cứng)
USB Phụ thuộc tốc độ truy cập của USB.
VIII. Toán tử khuôn FORMAT
Dạng tổng quát:
m FORMAT (.)
Trường mô tả
Trong đó:
M là nhã toán tử, xá định từ toán tử READ hoặc WRITE (tương đương với nhãn f)
Các yếu tố trường được mô tả các nhau bằng dấu phẩy hoặc dấu / (dấu / trong toán tử READ có nghĩa là đọc bỏ cách một hàng, // có nghĩa đọc bỏ cách 2 hàng). Dấu / trong toán tử WRITE thì khác có nghĩa là xuống hàng bao nhiêu gạch chéo xuống bấy nhiêu hàng (bổ trông bấy nhiêu hàng)
Các file đính kèm theo tài liệu này:
- ngon_ngu_lap_trinh_1224.doc