Toán tử read và readln trong Pascal. Sử dụng Var, Số nguyên, Readln. Lệnh readLn là gì?

Ngôn ngữ lập trình Pascal sử dụng các lệnh như read và readLn. Họ là ai?

Tuyên bố đã đọc là gì?

Hướng dẫn này nhằm cung cấp đầu vào của các giá trị biến khác nhau từ bàn phím PC khi sử dụng ngôn ngữ Pascal. Sơ đồ sử dụng lệnh được đề cập có vẻ đơn giản: như đọc (“giá trị biến”).

Trong thực tế, lệnh đọc được sử dụng để đảm bảo rằng một số dữ liệu nhất định được đọc từ một tệp và việc gán các giá trị được trích xuất từ ​​dữ liệu tương ứng sau đó cho các biến được chỉ định khi gọi thủ tục.

Nếu người dùng mắc lỗi khi nhập dữ liệu, dữ liệu không tương ứng với bất kỳ loại biến nào được phản ánh trong hướng dẫn, chương trình sẽ dừng thực thi lệnh. Đồng thời, trên màn hình PC xuất hiện một thông báo cho biết đã xảy ra lỗi trong ứng dụng.

Nếu lập trình viên sử dụng một số lệnh đọc thì dữ liệu bằng cách nào đó sẽ được nhập trên một dòng. Việc chuyển sang dòng tiếp theo chỉ có thể thực hiện được nếu dòng hiện tại kết thúc. Tuy nhiên, bạn có thể đọc thông tin nằm ở dòng khác bằng lệnh readLn. Chúng ta hãy xem xét kỹ hơn các tính năng của nó.

Lệnh readLn là gì?

Bản chất của lệnh readLn là đặt một điều kiện trong chương trình theo đó:

  • bất kỳ số nào được nhập vào dòng sẽ được gán cho biến cuối cùng theo hướng dẫn;
  • vùng còn lại của dòng không được chương trình xử lý, trong khi lệnh tiếp theo sẽ yêu cầu đầu vào mới.

Vì vậy, bạn có thể nhập hướng dẫn:

readLn(C,D); đọc(E);

Và nếu sau đó bạn nhập chuỗi 1 2 3 từ bàn phím thì biến C sẽ nhận giá trị 1, D - 2. Nhưng chương trình sẽ không gán một giá trị cụ thể cho biến E cho đến khi người dùng nhập một số mới.

Giống như lệnh đọc, nếu người dùng nhập loại dữ liệu không chính xác bằng lệnh readLn, chương trình sẽ thoát và hiển thị thông báo cho biết đã xảy ra lỗi.

So sánh

Sự khác biệt chính giữa readLn và read là quy trình đầu tiên liên quan đến việc chương trình di chuyển đến dòng của tệp theo dòng hướng dẫn được viết. Quy trình thứ hai cho phép chương trình đọc dữ liệu ở dòng tiếp theo chỉ khi có sự cho phép của người dùng - nếu anh ta nhấn Enter.

Trong thực tế, lệnh readLn thường được sử dụng nhiều nhất để cung cấp độ trễ giữa kết quả thực thi ứng dụng và quá trình chuyển đổi sang lệnh tiếp theo. Độ trễ tương ứng kéo dài cho đến khi người dùng nhấn Enter.

Sau khi xác định được sự khác biệt giữa readLn và read trong ngôn ngữ Pascal, chúng tôi ghi lại kết luận vào bảng.

Tác giả Alexanderđã hỏi một câu hỏi trong phần Các ngôn ngữ và công nghệ khác

Tại sao Pascal lại có read và readln, nếu read cũng dịch được một dòng, mặc dù trên lý thuyết thì không phải vậy? và nhận được câu trả lời hay nhất

Trả lời từ Skipy _[đạo sư]
readln - lấy một giá trị từ bộ đệm đầu vào vào một tham số và xóa toàn bộ bộ đệm đầu vào bàn phím
và đọc - lấy giá trị từ bộ đệm đầu vào vào tham số và không xóa nó vào bộ đệm mà để lại giá trị!! !
Tự động nạp dòng khi gõ - ở mọi nơi
tức là readln là đầu vào an toàn
đọc - đầu vào không an toàn
ví dụ:
var
a,b: số nguyên;
bắt đầu
đọc một); (người dùng đã nhập: 4, 5 a = 4)
(trong bộ đệm đầu vào số là 5!!}
đọc(b); (ở đây anh nhập số: 6 nhưng b = 5)
(số 6 vẫn còn trong bộ đệm đầu vào!!}
---
readln(a);(người dùng nhập: 4, 5; a = 4)
(bộ đệm đầu vào đã rõ ràng!!}
readln(a);(người dùng nhập số 6 và b = 6)
(bộ đệm đầu vào đã rõ ràng!!}
đọcln(b);
kết thúc.
Ngược lại, không có sự xác định tự động về loại giá trị đầu vào; mọi thứ được xác định bởi các quy ước trong bộ xác định định dạng.

Câu trả lời từ Yoali-Mali[đạo sư]
Nó có thể được giải thích đơn giản hơn, không có quá nhiều nhầm lẫn:
Khi thủ tục đọc được thực thi, giá trị của dữ liệu tiếp theo được đọc từ cùng một dòng và khi thủ tục readln được thực thi, giá trị của dữ liệu tiếp theo được đọc từ một dòng mới.
Do đó, toán tử Readln(b1,b2,...bn); cung cấp mục nhập dữ liệu vào COLUMN.
Sau khi nhập từng biến b1, b2, ..bn, con trỏ di chuyển về đầu dòng mới.
Toán tử Đọc(b1,b2,...bn); cung cấp mục nhập dữ liệu vào LINE


Câu trả lời từ VT-107 PHÙ HỢP[đạo sư]
Ở đây Dmitry đã nhầm lẫn về điều gì đó, nhưng nó không đúng. Và về một bộ đệm hoàn toàn tinh khiết và không tinh khiết và về sự an toàn. Sali cũng trả lời sai. Không có cột và hàng, quy tắc hoàn toàn khác nhau.
Thứ nhất, các quy trình này không chỉ hoạt động với đầu vào bảng điều khiển, do đó cần có hai chức năng.
thủ tục Read(F, V1 [, V2,...Vn ]);
đọc tất cả V1..Vn từ luồng (chính xác là n tham số), tất cả dữ liệu đã đọc sẽ bị xóa. Mọi thứ xuất hiện sau dữ liệu này sẽ không thay đổi.
Khi đọc một dòng, mọi thứ cho đến dòng mới hoặc cuối tập tin sẽ được đọc. Các cuộc gọi tiếp theo để đọc sẽ trả về một chuỗi trống. Và ký tự dòng mới sẽ không bị xóa khỏi luồng.
Nếu bạn đọc char thì tùy thuộc vào cài đặt, ký tự dòng mới có thể được đọc là char(26)
Khi đọc số, tất cả dấu cách, tab và ngắt dòng đều bị bỏ qua. Và lần đọc tiếp theo sẽ bắt đầu bằng ký hiệu đứng sau số đã đọc. Một lần nữa, những ký tự không cần thiết có thể bị bỏ qua.
thủ tục ReadLn([ var F: Text; ] V1 [, V2, ..Vn ]);
đọc từ luồng V1, Vn (nghĩa là nó hoạt động giống như đọc) rồi bỏ qua tất cả các ký tự cho đến và bao gồm cả dòng mới. Tất cả các ký tự sau khi ngắt dòng sẽ không thay đổi.
Việc chuyển sang dòng mới xảy ra do bạn nhấn Enter trong bảng điều khiển.
Đó là điều xa vời về sự an toàn. Đây là những chức năng với các mục đích khác nhau. Việc sử dụng không đúng sẽ không an toàn, việc sử dụng đúng sẽ tương ứng an toàn.

Cũng giống như các toán tử xuất thông tin, các toán tử đọc và đọc lại là các toán tử để truy cập các toán tử tích hợp sẵn. thủ tục nhập thông tin.

Các toán tử read (đọc) và readln, xuất phát từ hai từ tiếng Anh read (đọc) và line (dòng), được sử dụng trong các chương trình để nhập thông tin vào bộ nhớ máy tính và " đọc" giá trị thành một biến.

Hãy xem xét công việc của những người vận hành này và các thủ tục nhập thông tin.

Chương trình của chúng ta có một thủ tục readln(a). Khi thực thi một chương trình, gặp câu lệnh readln, máy tính sẽ tạm dừng trong khi chờ nhập liệu. Sau khi chúng ta nhập giá trị của biến a - 16 từ bàn phím, máy tính sẽ gán giá trị này cho biến a, tức là. sẽ gửi nó đến một vị trí bộ nhớ có tên a và tiếp tục thực hiện chương trình. Chúng tôi gọi quá trình này là " đọc" giá trị thành một biến.

Vì vậy, thủ tục read và readln “đọc” các giá trị của biến và gán chúng cho các biến được ghi cho chúng.

Có thể có một số biến như vậy, sau đó chúng được viết bằng các toán tử này, phân tách bằng dấu phẩy, ví dụ:

read(a, b, c, n, g, j, i), readln(e, f, k, p, d), v.v.

Sự khác biệt giữa công việc của thủ tục đọc và readln là gì?

Quy trình đọc sẽ yêu cầu nhập hoặc xuất thông tin trên một dòng sau chính nó và quy trình readln cho phép bạn nhập và xuất thông tin sau chính nó từ đầu một dòng mới.

Ví dụ:

Trong chương trình: write("Nhập giá trị của a và b"); đọc(a,b);

write("Nhập thông tin trên một dòng");

Khi phần này của chương trình được thực thi, mọi thứ được ghi trong câu lệnh ghi đầu tiên sẽ được hiển thị trên màn hình, khi đó con trỏ sẽ nằm trên cùng một dòng và máy tính sẽ đợi nhập giá trị a và b . Hãy nhập giá trị của chúng - 2 và 3, ngăn cách chúng bằng dấu cách hay nói cách khác là cách nhau bằng dấu cách. Sau đó, dòng tương tự sẽ hiển thị thông tin được ghi trong câu lệnh ghi tiếp theo.

Trên màn hình:

Nhập giá trị của a và b 2 3 Nhập thông tin trên một dòng

Trong một chương trình:

writeln("Nhập các giá trị của a, b và c); readln(a, b, c);

writeln("Thông tin vào và ra từ đầu dòng");

Trên màn hình:

Nhập các giá trị của a, b và c

Nhập và xuất thông tin từ đầu dòng

Các phép toán với số nguyên. Các biến kiểu số nguyên. Loại thực

Ngôn ngữ Pascal sử dụng số nguyên, bao gồm tất cả các số tự nhiên được hình thành trong quá trình đếm các đối tượng: 1, 2, 3, 4, 5, 6, ...; các số âm: ..., -6, -5, -4, -3, -2, -1 và số 0: 0. Các số nguyên tạo thành dãy sau:

6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, ...

Pascal cho phép phạm vi số nguyên từ -32768 đến 32767.

Biến, lấy giá trị số nguyên, được viết trong phần mô tả cho biết loại số nguyên (số nguyên).

Ví dụ: var a, b, c, a1, b34, nomb: số nguyên;

Giá trị thuộc loại khác cho các biến này trong cùng một chương trình không thể được chỉ định.

Các phép tính số học với số nguyên và biến số nguyên trong Pascal

Dấu "_" có nghĩa là khoảng trắng. Cần có khoảng trắng giữa tên biến và tên thao tác (div). (Bắt nguồn từ phép chia - Division trong tiếng Anh).

Số dư khi a chia cho b. a_mod_b

Chủ thể:Đầu ra đầu vào. Toán tử Đọc (Readln), Viết (Writeln). Các chương trình tuyến tính đơn giản nhất

Hãy giải quyết vấn đề bằng cách nhận xét từng hành động của chúng ta trong dấu ngoặc nhọn. Hãy để chúng tôi nhắc bạn rằng máy tính không nhận ra nhận xét, nhưng chúng tôi cần nó để hiểu rõ hơn cách hoạt động của chương trình.

Nhiệm vụ . Viết chương trình xóa màn hình và tính tích của hai số mà người dùng nhập vào.

Chương trìnhProizv2;
Công dụng
Crt; (Kết nối module Crt)
Var
number1, (biến sẽ chứa số đầu tiên)
number2, (biến sẽ chứa số thứ hai)
kết quả (biến sẽ chứa kết quả)
: số nguyên;
Bắt đầu
ClrScr;(Chúng tôi sử dụng quy trình xóa màn hình từ mô-đun Crt)
Write("Nhập số đầu tiên");
Readln(số 1);
(Số người dùng nhập vào sẽ được đọc vào biến number1)
Write("Nhập số thứ hai");
(Chúng tôi hiển thị các ký tự được viết giữa các dấu nháy đơn)
Readln(số 2);
(Số người dùng nhập vào sẽ được đọc vào biến number2)
kết quả:= số1 * số2;
(Chúng ta tìm tích của các số đã nhập và gán cho biến kết quả)
Write("Tích các số ", number1," và ", number2," bằng ", result);
(Chúng ta hiển thị một dòng chứa đáp án của bài toán)
Readln;(Quy trình trì hoãn màn hình)
Kết thúc.

Để hiểu rõ hơn về hoạt động của chương trình, hãy gõ nó vào máy tính của bạn và kiểm tra hoạt động của nó. Trả lời các câu hỏi:

  • tại sao chương trình được gọi là Proizv2?
  • Tại sao mô-đun Crt lại được đặt trong phần Sử dụng?
  • mục đích của các biến số 1, số 2, kết quả là gì?
  • những biến này là loại gì? nó có nghĩa là gì?
  • Nếu bạn gán cho biến number1 và number2 giá trị 5 và 7 tương ứng thì máy tính sẽ ra dòng nào khi thực hiện thủ tục Write cuối cùng? Hãy viết nó vào sổ tay của bạn.
  • Người dùng được yêu cầu nhập giá trị biến ở dòng nào?
  • Phép nhân các số xảy ra ở dòng nào?
  • toán tử gán làm gì trong chương trình này?

Bài tập . Sửa đổi chương trình để nhắc người dùng nhập một biến khác và in ra kết quả của tích ba số.

Toán tử Write và WriteLn

Chúng ta đã sử dụng các toán tử Write và WriteLn nhưng chúng ta cần xem xét kỹ hơn các quy tắc sử dụng các toán tử này.

Write (tiếng Anh: write) - toán tử dùng để hiển thị thông tin trên màn hình. Toán tử WriteLn thực hiện hành động tương tự, nhưng vì nó cũng có kết thúc Ln (dòng - dòng tiếng Anh, dòng), nên sau khi hiển thị thông báo mong muốn trên màn hình, nó cũng di chuyển con trỏ sang dòng tiếp theo.

Hình thức chung:
Viết (danh sách các biểu thức)
WriteLn (danh sách các biểu thức)

Thủ tục Write và WriteLn không chỉ được sử dụng để xuất kết quả mà còn xuất ra các thông báo hoặc truy vấn khác nhau. Điều này cho phép bạn tiến hành đối thoại với người dùng, thông báo cho anh ta khi anh ta cần nhập giá trị, khi anh ta nhận được kết quả, khi anh ta mắc lỗi, v.v.

Ví dụ: khi thực hiện thủ tục WriteLn('Found number ',a), dòng được bao trong dấu nháy đơn sẽ được in và sau đó giá trị của biến a sẽ được in.

Toán tử WriteLn cũng có thể được sử dụng mà không cần tham số. Trong trường hợp này, một dòng có khoảng trắng sẽ được in và con trỏ sẽ được di chuyển sang dòng khác. Đôi khi chúng ta cần điều này để nhận thức tốt hơn về dữ liệu đầu vào.

Toán tử đọc và đọcLn

Chúng ta hãy nhớ rằng mục đích chính của máy tính là tiết kiệm sức lao động của con người. Vì vậy, cần đảm bảo rằng, khi một chương trình đã được viết, nó có thể được sử dụng nhiều lần, mỗi lần nhập dữ liệu khác nhau. Tính linh hoạt trong ngôn ngữ này được cung cấp bởi các toán tử Read và ReadLn. Các toán tử này nhập thông tin từ bàn phím.

Hình thức chung:
Đọc(biến, biến...)
ReadLn(biến, biến...)

Khi thủ tục Đọc được thực thi, các giá trị được liệt kê trong dấu ngoặc đơn dự kiến ​​sẽ được nhập vào. Dữ liệu nhập vào phải cách nhau bằng dấu cách. Việc gán các giá trị lần lượt được tiến hành.

Ví dụ: nếu nhập giá trị 53 và X thì khi thực thi toán tử Read(a,b), biến a sẽ được gán số 53 và biến X sẽ được gán chữ X. Hơn nữa, chúng ta lưu ý để tránh trường hợp khẩn cấp cần xác định chính xác kiểu dữ liệu trong phần Var; trong trường hợp của chúng tôi là a:integer và b:char.

Không có sự khác biệt cụ thể nào khi đọc và viết trong việc sử dụng toán tử Read và ReadLn. Thông thường, quy trình ReadLn không có tham số được sử dụng ở cuối chương trình để trì hoãn: cho đến khi nhấn phím kết quả thực hiện chương trình vẫn còn trên màn hình. Điều này rất hữu ích để phân tích kết quả.

Ghi chú . Khi bạn đặt độ trễ màn hình, hãy chú ý đến đầu vào trước đó. Nếu dữ liệu được yêu cầu bởi thủ tục Đọc, sẽ không có sự chậm trễ.

Hãy để chúng tôi giải quyết một vấn đề trong đó chúng tôi xem xét tất cả các cách sử dụng có thể có của các thủ tục này.

Nhiệm vụ . Tìm trung bình cộng của ba số.

Ghi chú . Để tìm trung bình cộng của một số số, bạn cần cộng các số này và chia tổng cho số của các số này.

Đánh văn bản của vấn đề và xem xét cẩn thận từng dòng. Tên chương trình Srednee phản ánh nội dung của nhiệm vụ. Nhân tiện, chúng ta hãy đồng ý rằng tên của chương trình và tên của tệp chứa chương trình này trùng khớp. Tiếp đến là kết nối module Crt. Phần Var mô tả First, Second, Third là các biến kiểu số nguyên và Sum là kiểu thực. Phần vận hành bắt đầu bằng quy trình ClrScr (Clear Screen) tiêu chuẩn, nằm trong mô-đun Crt. Tiếp theo, bằng cách sử dụng toán tử Viết, chúng tôi hiển thị thông báo 'Nhập số đầu tiên', khi nhận được số này người dùng phải nhập số.

Bây giờ máy tính phải đọc các ký tự đã nhập và lưu chúng vào biến First, điều này sẽ xảy ra khi thực thi câu lệnh ReadLn(First) tiếp theo. Sau đó, bằng cách sử dụng toán tử Write, chúng ta yêu cầu giá trị của hai số nữa và đọc chúng thành biến Thứ hai và Thứ ba. Sau đó, chúng ta tính tổng của chúng và gán số kết quả cho biến Sum. Để tìm số trung bình, bây giờ bạn cần chia số kết quả cho 3 và lưu kết quả vào một biến nào đó.

Không cần thiết phải mô tả một biến khác để lưu kết quả. Bạn có thể, như trong chương trình của chúng tôi, chia giá trị của biến Sum cho 3 và gán lại kết quả cho cùng một biến Sum. Bây giờ bạn có thể hiển thị kết quả tính toán trên màn hình bằng quy trình Ghi. Và cuối cùng, quy trình ReadLn cuối cùng sẽ trì hoãn đầu ra của chúng tôi trên màn hình cho đến khi nhấn một phím.

Nhấn các phím +. Nhập giá trị của các biến 5, 7 và 12, trên màn hình sẽ thấy như sau:

Điểm trung bình của 5, 7 và 12 là 8,00

Hãy xem kỹ dòng này và so sánh nó với dòng kết quả đầu ra trong chương trình của chúng ta. Kiểm tra chương trình thêm vài lần nữa để tìm các giá trị biến khác nhau.

Với giáo viên của bạn, hãy chọn các vấn đề cần giải quyết từ danh sách sau:

  1. Nhập hai số a và b. Sử dụng toán tử gán để trao đổi giá trị của chúng:
    a) sử dụng biến trung gian (x:=a; a:=b; b:=x);
    b) không sử dụng biến trung gian (a:=a-b; b:=a+b; a:=b-a).
  2. Viết chương trình yêu cầu người dùng nhập một số nguyên, một số thực, một ký tự tùy ý và một chuỗi, sau đó in mọi thứ trên một dòng.
  3. Hiển thị họ, tên và họ của bạn và sau hai dòng - ngày sinh của bạn.
  4. Viết chương trình in ra một trong các hình có ngôi sao:
    a) Cây thông Noel (một số cây thông Noel);
    b) bông tuyết (một vài bông tuyết);
    c) một ngôi nhà. Ví dụ,

    *
    * *
    * *
    ***********
    * *
    * *
    * *
    * *
    ***********

  5. Tạo danh thiếp của riêng bạn.


    * Ivanov Serge *
    * Vô sản 74 mét vuông. 55*
    * Điện thoại 45-72-88 *
    *******************************

  6. Soạn một đoạn hội thoại giữa người dùng và máy tính về một chủ đề tùy ý.
    Ví dụ: máy sẽ hỏi hai câu hỏi: “Tên bạn là gì?” Bạn bao nhiêu tuổi?"; sau khi nhập tên (Anton) và số (15), nó hiển thị "Có... 50 năm nữa ông sẽ 65 tuổi và tên của ông sẽ không phải là Anton mà là ông nội Anton"
  7. Hỏi người dùng hai số và hiển thị kết quả của tổng, hiệu, tích và thương của các số này dưới dạng câu trả lời hoàn chỉnh.
  8. Nhắc người dùng nhập hai số và hiển thị kết quả của phép chia số nguyên và phần dư của phép chia số nguyên dưới dạng bảng. Ví dụ: khi nhập số 5 và 3, màn hình sẽ xuất hiện bảng sau:

    **************************
    *X*Y*div*mod*
    **************************
    * 5 * 3 * 1 * 2 *
    **************************

  9. Viết chương trình hỏi tên một con vật và một số rồi hiển thị cụm từ như “Một con sóc sẽ ăn 10 cây nấm” (khi nhập từ “sóc” và số 10).
  10. Tổ chức đối thoại giữa người bán (máy tính) và người mua (người dùng) khi mua bất kỳ sản phẩm nào theo sơ đồ sau: chào bán sản phẩm ở một mức giá nhất định, yêu cầu số lượng sản phẩm được mua, xác định và hiển thị số tiền đã mua. người mua phải trả tiền mua hàng.
ĐọcĐọcLnđọc thông tin từ thiết bị đầu vào tiêu chuẩn. Ví dụ, trong các ứng dụng bảng điều khiển, thiết bị này có thể là bàn phím (chính xác hơn là dữ liệu được nhập từ bàn phím); trong các ứng dụng đồ họa, nó có thể là một tệp trên đĩa.

Nghĩa là, các quy trình này là "đối kháng" - chúng thực hiện các hành động ngược lại với chúng.

Thủ tục Read và ReadLn thực hiện các hành động tương tự. Sự khác biệt chính giữa chúng là như sau: thủ tục ReadLn, sau khi hoàn thành việc nhập dữ liệu, sẽ thực hiện nạp dòng (và trong trường hợp là tệp, sẽ đọc từng dòng của tệp). Và quy trình Đọc sẽ đọc dữ liệu liên tiếp - không cần nguồn cấp dữ liệu.

GHI CHÚ:

Tôi không nhớ điều này trong Turbo Pascal (có thể tôi vừa quên), nhưng việc nhập bằng bàn phím chỉ có thể được thực hiện bằng quy trình ReadLn và vì lý do nào đó, quy trình Đọc không hoạt động.

Cú pháp cho đầu ra của bàn điều khiển:

thủ tục Read(Args: Đối số);

Cú pháp xuất ra file:

thủ tụcĐọc( var F:Văn bản; Args: Lập luận);

Tranh luận ( Tranh luận) có thể khác. Nếu sử dụng nhiều biến, chúng sẽ được liệt kê cách nhau bằng dấu phẩy. Ví dụ:

Var x, y: số nguyên; z:thật; str:chuỗi; bắt đầu WriteLn("Nhập ba số nguyên cách nhau bằng dấu cách:"); ReadLn(x, y, z); WriteLn("Bạn đã nhập: ", x, ", ", y, ", ", z:0:2); ĐọcLn(str); WriteLn(str + str); ĐọcLn; kết thúc.

Như đã đề cập, khi được nhập từ bảng điều khiển, các biến này có thể thuộc nhiều loại khác nhau. Tuy nhiên, không giống như thủ tục Write/WriteLn, nó không được phép sử dụng (và điều này là hợp lý))).

QUAN TRỌNG!
Khi nhập dữ liệu, hãy lưu ý rằng nếu giá trị do người dùng nhập thuộc loại khác với loại biến mà giá trị này được nhập vào thì sẽ xảy ra lỗi thời gian chạy. Ví dụ: nếu trong ví dụ trên, người dùng nhập một giá trị thực (chẳng hạn như 3,14) làm số đầu tiên, chương trình sẽ gặp sự cố vì biến x có kiểu số nguyên.

Khi đọc từ một tập tin, bạn có thể làm việc với cả tập tin đánh máy và tập tin văn bản.

Nếu như F(xem cú pháp) là một tệp được đánh máy, sau đó các biến được truyền dưới dạng tham số (Args) phải có cùng loại như được chỉ định cho tệp F. Các tập tin chưa được gõ không được phép. Nếu tham số F không được chỉ định, giả định rằng việc đọc được thực hiện từ thiết bị đầu vào tiêu chuẩn.

Nếu tập tin F có loại Chữ, thì các biến phải thuộc loại , hoặc .

Nếu khi đọc một tệp, không có dữ liệu để đọc thì một giá trị trống sẽ được trả về biến F (0 cho , một chuỗi trống cho các chuỗi).

Khi sử dụng thủ tục ReadLn, tức là khi đọc dữ liệu theo từng dòng, cuối dòng được biểu thị bằng một chuỗi ký tự nhất định (các ký tự này phụ thuộc chính xác vào hệ điều hành, đối với DOS/Windows thì đây là hai ký tự - #10 và #13).

Điểm đánh dấu cuối dòng không phải là một phần của dòng được đọc và bị bỏ qua.

Nếu xảy ra lỗi trong quy trình Đọc/ReadLn thì lỗi thời gian chạy sẽ được tạo ra. Hành vi này không phải lúc nào cũng được chấp nhận (ví dụ: trong khi đọc tệp). Vì vậy, trong một số trường hợp, việc tạo lỗi bị vô hiệu hóa. Điều này có thể được thực hiện bằng cách sử dụng .

GHI CHÚ:

Trong các chương trình đào tạo và gỡ lỗi khác nhau, quy trình ReadLn thường được sử dụng để ngăn ứng dụng bảng điều khiển tự động đóng sau khi thực thi. Để làm điều này, ở cuối chương trình chỉ cần viết (như trong ví dụ trên):

Tức là chỉ có tên của thủ tục không có tham số. Trong trường hợp này, chương trình sẽ đợi nhấn phím ENTER. Do đó, chương trình sẽ không kết thúc cho đến khi nhấn phím ENTER, cho phép bạn xem kết quả của chương trình. Tất nhiên, trong hệ điều hành