In các số thực theo cách trên rất khó đọc. Vì thế các số thực thường
được in có định dạng, giống như cách viết số thông thường, bằng lệnh:
Writeln( biểuthức : n : k );
Ở đây n và k là các số tự nhiên, ấn định dùng n cột để in gía trị của
biểu thức, trong đó có k cột dành cho phần thập phân. Nếu số cần in có ít
hơn n chữ số thì nó sẽ được in dồn về bên phải và thêm các ký tự trắng ở bên
trái cho đủ n cột.
9 trang |
Chia sẻ: maiphuongdc | Lượt xem: 17863 | Lượt tải: 5
Bạn đang xem nội dung tài liệu Pascal - Xuất dữ liệu, thủ tục Write và Writeln, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Xuất dữ liệu, thủ tục Write và Writeln
Các dữ liệu được in lên màn hình nhờ các lệnh sau:
Writeln( bt1, bt2 , ... , btk );
Write( bt1, bt2 , ... , btk );
ở đây, bt1, bt2, ..., btk là các biểu thức cầ? phải in gía trị lên màn hình.
Trong trường hợp đơn giản, mỗi biểu thức này có thể là một biến, một hằng,
hay một hàm.
Việc in được thực hiện như sau: tại vị trí hiện thời của con trỏ trên màn
hình, in ra gía trị của biểu thức bt1, in tiếp gía trị của biểu thức bt2, ..., in
tiếp gía trị của biểu thức btk. Các gía trị này được in trên một dòng, nếu dài
qúa khổ màn hình thì sẽ được in tiếp ở dòng dưới.
Ví dụ, lệnh Writeln(3*2+9); sẽ in lên màn hình số 15.
Nếu i, j là các biến nguyên thì khi thực hiện các lệnh sau:
i :=10 ;
j:=15*2 ;
Writeln(i, j+1, 678);
trên màn hình sẽ hiện: 1031678.
Sự khác nhau giữa lệnh Writeln và Write là ở chỗ: sau khi in xong giá
trị của các biểu thức, lệnh Writeln sẽ đưa con trỏ xuống đầu dòng dưới, còn
lệnh Write thì không. Ðiều này chỉ ảnh hưởng đến lệnh in tiếp theo mà thôi.
Ví dụ, khi thực hiện hai lệnh sau :
Writeln(‘Thao chuong bang ‘);
Writeln(‘ngon ngu pascal’);
kết qủa trên màn hình sẽ hiện hai dòng :
Thao chuong bang
ngon ngu pascal
Nếu thay lệnh đầu bằng Write như dưới đây:
Write(‘Thao chuong bang ‘);
Writeln(‘ngon ngu pascal’);
thì kết qủa trên màn hình sẽ hiện ra chỉ một dòng:
Thao chuong bang ngon ngu pascal
7.3.2.1. In không định dạng:
Ðối với các biểu thức kiểu nguyên, kiểu ký tự, kiểu lô gíc hay kiểu
chuỗi, thì lệnh :
Writeln( biểuthức ) ;
sẽ in nguyên văn gía trị của biểu thức. Ví dụ :
Lệnh Writen(‘ket qủa x=‘ , 4+15); sẽ in ra: ket qua x=19
Lệnh Writeln(‘A’ , ‘=‘ , 2*3<5); sẽ in ra: A=FALSE vì biểu thức 2*3<
5 có kết qủa là FALSE.
Nếu gán: Ho_ten:=‘ Tran Van Thanh’; thì lệnh
Writeln(‘Ho va ten: ‘, Ho_ten);
sẽ in lên màn hình dòng chữ :
Ho va ten: Tran Van Thanh
Cần phân biệt hai đại lượng ‘Ho va ten: ‘ và Ho_ten. Chúng khác nhau
hoàn toàn: ‘Ho va ten: ‘ là một gía trị chuỗi, tức là một hằng chuỗi nên sẽ
được in nguyên văn lên màn hình, còn Ho_ten là một biến kiểu chuỗi nên sẽ
in gía trị mà biến này đang chứa.
Ðối với các biểu thức kiểu số thực thì lệnh:
Writeln( biểuthức );
sẽ in gía trị của biểu thức ra dưới dạng dấu chấm thập phân di động có cả
thảy 17 ký số, trong đó có 10 ký số trong phần định trị, như sau:
Ở đây ta dùng ký hiệu để chỉ một ký tự trắng, còn X đại diện một ký
số .
Ví dụ, cho x, y là hai biến thực và gán x:=100/4; y:=-9/300; thì hai lệnh
sau :
Writeln(‘ x= ‘, x);
Writeln(‘ y= ‘, y);
sẽ in lên màn hình :
x = 2.5000000000E+01
y = -3.0000000000E-02
7.3.2.2. In có định dạng:
a). In số thực có định dạng:
In các số thực theo cách trên rất khó đọc. Vì thế các số thực thường
được in có định dạng, giống như cách viết số thông thường, bằng lệnh:
Writeln( biểuthức : n : k );
Ở đây n và k là các số tự nhiên, ấn định dùng n cột để in gía trị của
biểu thức, trong đó có k cột dành cho phần thập phân. Nếu số cần in có ít
hơn n chữ số thì nó sẽ được in dồn về bên phải và thêm các ký tự trắng ở bên
trái cho đủ n cột.
Ví dụ, cho x, y là các biến kiểu thực và: x:=100/4; y:=-123.4824;
Hai lệnh sau :
Writeln(‘ x=‘, x:6:2);
Writeln(‘ y=‘, y:10:3);
sẽ in lên màn hình:
x= 25.00 ( trước số 2 có 1 ký tự trắng)
y= -123.482 (trước dấu - có 2 ký tự trắng)
Nếu n nhỏ hơn chiều dài của số cần in thì số sẽ được in ra với đầy đủ
các chữ số trong phần nguyên. Ví dụ, khi thực hiện các lệnh sau :
x:=12345.675;
Writeln(‘x= ‘, x:0:2);
trên màn hình sẽ hiện :
x=12345.68
Ở đây máy đã làm tròn số khi bỏ số lẻ cuối cùng.
b). In kiểu nguyên, ký tự, chuỗi và lôgic có định dạng :
Dùng lệnh :
Writeln(biểuthức : n);
trong đó n là số nguyên ấn định số cột dùng để in gía trị của biểu thức. Nếu
n lớn hơn độ dài của gía trị cần in thì gía trị sẽ được in dồn về bên phải, và
thêm các khoảng trắng ở bên trái cho đủ n cột. Nếu n nhỏ hơn độ dài của gía
trị cần in thì gía trị sẽ được in nguyên văn. Ví dụ:
Lệnh Write(5+40:4); in ra: 45 (có 2 ký tự trắng trước số 45)
Lệnh Write(5+40:1); in ra:45 (in nguyên văn gía trị 45)
Lệnh Write(‘Pascal’ :9); in ra: Pascal (có 3 ký tự trắng trước chữ
Pascal)
Lệnh Write(‘Pascal’ :2); in ra:Pascal (in nguyên văn)
Lệnh Write(‘*’:3); in ra: * (có 2 ký tự trắng trước dấu *)
Các chú ý:
Nhóm ba lệnh: Write(x); Write(y); Write(j); chỉ có tác dụng như một
lệnh: Write(x, y, j);
Nhóm ba lệnh: Write(x); Write(y); Writeln(j); chỉ có tác dụng như
một lệnh: Writeln(x, y, j);
Lệnh: Writeln; không in gì cả, chỉ đơn giản là đưa con trỏ xuống
dòng dưới.
Ví dụ 7.1:
Dưới đây là chương trình cho phép nhập họ tên, mã số của một sinh
viên, rồi in họ tên, mã số của sinh viên đó trong một cái khung được vẽ bằng
các dấu sao *, như hình dưới chẳng hạn :
**********************
* Nguyen Van Tuan *
* Ma so: 1972508 *
**********************
Chương trình cụ thể như sau:
PROGRAM VIDU71;
Uses CRT;
Var
Ten : String[18];
Maso : String[11];
Begin
CLRSCR;
Write(‘ Nhap ho va ten: ‘); Readln(Ten);
Write(‘ Nhap ma so sv : ‘); Readln(Maso);
Writeln;
Writeln(‘ ********************** ’); { in 22 dấu * }
Writeln(‘*’, Ten:19, ‘*’:2); { in 1 dấu *, in Ten chiếm 19
cột, in tiếp dấu * chiếm 2 cột }
Writeln(‘* Ma so:’ , Maso:12, ‘*’:2); { in * Ma so, in
Maso chiếm 12 cột, in tiếp dấu * chiếm 2 cột }
Writeln(‘**********************’); { in 22 dấu * }
Readln;
End.
Chạy
Chép tập tin nguồn
Các file đính kèm theo tài liệu này:
- xuat_du_lieu_1584.pdf