Bài 7: Các thủ tục vào/ra đơn giản
- Những chương trình đưa dữ liệu vào cho phép đưa dữ liệu từ bàn phím hoặc từ đĩa vào gán cho các biến và những chương trình đưa dữ liệu ra màn hình, giấy và trên đĩa được gọi là các thủ tục chuẩn vào/ra đơn giản.
- Các thủ tục chuẩn vào/ra đơn giản của Pascal để nhập dữ liệu vào từ bàn phím và đưa thông tin ra màn hình:
1. Nhập dữ liệu vào từ bàn phím
Việc nhập dữ liệu từ bàn phím được thực hiện bằng thủ tục chuẩn:
Read (< danh sách biến vào >); Hoặc Readln (< danh sách biến vào >);
Trong đó: Danh sách biến vào là một hoặc nhiều tên biến đơn. Trong trường hợp nhiều biến thì các tên biến được viết cách nhau bởi dấu phẩy.
Ví dụ 1:
- Read(n);
- Readln(a,b,c);
Chú ý 1:
- Khi gặp câu lệnh read (hoặc readln), chương trình sẽ chờ người dùng nhập giá trị cho danh sách biến và nhấn phím Enter, chi sau khi nhấn phím Enter thì việc nhập giá trị cho danh sách biến mới kết thúc và thực hiện lệnh tiếp theo.
- Khi nhập giá trị cho danh sách biến phải chú ý các giá trị được nhập có kiểu tương ứng với các biến trong sách, giữa hai giá trị liên tiếp phải gõ phím Space hoặc phím Enter.
- Việc nhập giá trị của biến từ bàn phím được kết thúc bởi việc nhấn phím Enter nên không phân biệt read và readln. Do đó, khi nhập từ bàn phím nên dùng readln.
2. Đưa dữ liệu ra màn hình
Việc đưa dữ liệu ra màn hình trong Pascal sử dụng thủ tục chuẩn:
Write(< danh sách kết quả ra>); Hoặc Writeln(< danh sách kết quả ra >);
Trong đó: Danh sách kết quả ra có thể là tên biến đơn, biểu thức hoặc hằng.
Chú ý 2:
- Các hằng xâu thường được dùng để tách các kết quả hoặc đưa ra chú thích.
- Các thành phần trong kết quả ra được viết cách nhau bởi dấu phẩy.
- Với thủ tục Write, sau khi đưa các kết quả ra màn hình, con trỏ không chuyển xuống dòng tiếp theo.
- Với thủ tục Writeln, Sau khi đưa thông tin ra màn hình, con trỏ sẽ xuống đầu dòng tiếp theo.
Ví dụ 2:
Để nhập giá trị cho biến M từ bàn phím, người ta thường dùng cặp thủ tục:
write ('Hay nhap gia tri cua M: ')
readln (M);
Để chương trình được sử dụng một cách thuận tiện, khi nhập giá trị từ bàn phím cho biến, ta nên có thêm xâu kí tự nhắc nhở việc nhập giá trị cho biến nào, kiểu dữ liệu gì,...
Chú ý 3:
- Các thủ tục readln và writeln có thể không có tham số.
- Trong thủ tục write hoặc writeln, sau mỗi kết quả ra (biến, hằng, biểu thức) có thể có quy cách ra. Quy cách ra có dạng:
+ Đối với kết quả thực: :< độ rộng >:< số chữ số phần thập phân >
+ Đối với các kết quả khác: :< độ rộng >
+ Trong đó độ rộng và chữ số phần thập phân là các hằng nguyên dương.
Ví dụ 3:
- Writeln(a:3,b:3,c:3);
- Giả sử nhập a=1, b=2, c=3 ⇒ Kết quả tương ứng: _ _1_ _2_ _3
- Write(S:6:2);
- Giả sử S=b/a ⇒ Kết quả tương ứng: _ _2.00
Bài tập 1
Xét các ví dụ sau:
Ví dụ 1:
Write(‘Lop 11A’);
Write(‘ rat ngoan’);
⇒ Kết quả tương ứng: Lop11A03 rat ngoan _
Ví dụ 2:
Writeln(‘Lop 11A’);
Writeln(‘rat ngoan’);
⇒ Kết quả tương ứng:
Lop 11A03
Rat ngoan
_
Ví dụ 3:
Write(‘Lop 11A’); writeln;
Write(‘rat ngoan’);
⇒ Kết quả tương ứng:
Lop 11A03
rat ngoan _
Em hãy quan sát và cho biết sự khác nhau giữa 2 thủ tục Write và Writeln về vị trí của con trỏ?
Gợi ý làm bài:
- Thủ tục write: sau khi đưa kết quả ra màn hình thì con trỏ không xuống dòng.
- Thủ tục writeln: sau khi đưa kết quả ra màn hình thì con trỏ xuống đầu dòng tiếp theo.
- Thủ tục writeln: không có tham số dùng để xuống dòng.
- Những chương trình đưa dữ liệu vào cho phép đưa dữ liệu từ bàn phím hoặc từ đĩa vào gán cho các biến và những chương trình đưa dữ liệu ra màn hình, giấy và trên đĩa được gọi là các thủ tục chuẩn vào/ra đơn giản.
- Các thủ tục chuẩn vào/ra đơn giản của Pascal để nhập dữ liệu vào từ bàn phím và đưa thông tin ra màn hình:
1. Nhập dữ liệu vào từ bàn phím
Việc nhập dữ liệu từ bàn phím được thực hiện bằng thủ tục chuẩn:
Read (< danh sách biến vào >); Hoặc Readln (< danh sách biến vào >);
Trong đó: Danh sách biến vào là một hoặc nhiều tên biến đơn. Trong trường hợp nhiều biến thì các tên biến được viết cách nhau bởi dấu phẩy.
Ví dụ 1:
- Read(n);
- Readln(a,b,c);
Chú ý 1:
- Khi gặp câu lệnh read (hoặc readln), chương trình sẽ chờ người dùng nhập giá trị cho danh sách biến và nhấn phím Enter, chi sau khi nhấn phím Enter thì việc nhập giá trị cho danh sách biến mới kết thúc và thực hiện lệnh tiếp theo.
- Khi nhập giá trị cho danh sách biến phải chú ý các giá trị được nhập có kiểu tương ứng với các biến trong sách, giữa hai giá trị liên tiếp phải gõ phím Space hoặc phím Enter.
- Việc nhập giá trị của biến từ bàn phím được kết thúc bởi việc nhấn phím Enter nên không phân biệt read và readln. Do đó, khi nhập từ bàn phím nên dùng readln.
2. Đưa dữ liệu ra màn hình
Việc đưa dữ liệu ra màn hình trong Pascal sử dụng thủ tục chuẩn:
Write(< danh sách kết quả ra>); Hoặc Writeln(< danh sách kết quả ra >);
Trong đó: Danh sách kết quả ra có thể là tên biến đơn, biểu thức hoặc hằng.
Chú ý 2:
- Các hằng xâu thường được dùng để tách các kết quả hoặc đưa ra chú thích.
- Các thành phần trong kết quả ra được viết cách nhau bởi dấu phẩy.
- Với thủ tục Write, sau khi đưa các kết quả ra màn hình, con trỏ không chuyển xuống dòng tiếp theo.
- Với thủ tục Writeln, Sau khi đưa thông tin ra màn hình, con trỏ sẽ xuống đầu dòng tiếp theo.
Ví dụ 2:
Để nhập giá trị cho biến M từ bàn phím, người ta thường dùng cặp thủ tục:
write ('Hay nhap gia tri cua M: ')
readln (M);
Để chương trình được sử dụng một cách thuận tiện, khi nhập giá trị từ bàn phím cho biến, ta nên có thêm xâu kí tự nhắc nhở việc nhập giá trị cho biến nào, kiểu dữ liệu gì,...
Chú ý 3:
- Các thủ tục readln và writeln có thể không có tham số.
- Trong thủ tục write hoặc writeln, sau mỗi kết quả ra (biến, hằng, biểu thức) có thể có quy cách ra. Quy cách ra có dạng:
+ Đối với kết quả thực: :< độ rộng >:< số chữ số phần thập phân >
+ Đối với các kết quả khác: :< độ rộng >
+ Trong đó độ rộng và chữ số phần thập phân là các hằng nguyên dương.
Ví dụ 3:
- Writeln(a:3,b:3,c:3);
- Giả sử nhập a=1, b=2, c=3 ⇒ Kết quả tương ứng: _ _1_ _2_ _3
- Write(S:6:2);
- Giả sử S=b/a ⇒ Kết quả tương ứng: _ _2.00
Bài tập 1
Xét các ví dụ sau:
Ví dụ 1:
Write(‘Lop 11A’);
Write(‘ rat ngoan’);
⇒ Kết quả tương ứng: Lop11A03 rat ngoan _
Ví dụ 2:
Writeln(‘Lop 11A’);
Writeln(‘rat ngoan’);
⇒ Kết quả tương ứng:
Lop 11A03
Rat ngoan
_
Ví dụ 3:
Write(‘Lop 11A’); writeln;
Write(‘rat ngoan’);
⇒ Kết quả tương ứng:
Lop 11A03
rat ngoan _
Em hãy quan sát và cho biết sự khác nhau giữa 2 thủ tục Write và Writeln về vị trí của con trỏ?
Gợi ý làm bài:
- Thủ tục write: sau khi đưa kết quả ra màn hình thì con trỏ không xuống dòng.
- Thủ tục writeln: sau khi đưa kết quả ra màn hình thì con trỏ xuống đầu dòng tiếp theo.
- Thủ tục writeln: không có tham số dùng để xuống dòng.