Để nhập dữ liệu từ bàn phím ta dụng thủ tục

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

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 (); Hoặc Readln (); 

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: 

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.

1.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(); Hoặc Writeln(); 

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: ::
    • Đối với các kết quả khác: :
    • 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: 
    Để nhập dữ liệu từ bàn phím ta dụng thủ tục
  • Write(S:6:2);
  • Giả sử S=b/a => Kết quả tương ứng: 
    Để nhập dữ liệu từ bàn phím ta dụng thủ tục

2. Bài tập minh họa

Câu 1: Xét các ví dụ sau:

Ví dụ 1:

Write(‘Lop 11A’);

Write(‘ rat ngoan’);

=> Kết quả tương ứng: 

Để nhập dữ liệu từ bàn phím ta dụng thủ tục

Ví dụ 2:

Writeln(‘Lop 11A’);

Writeln(‘rat ngoan’);

=> Kết quả tương ứng: 

Để nhập dữ liệu từ bàn phím ta dụng thủ tục

Ví dụ 3:

Write(‘Lop 11A’); writeln;

Write(‘rat ngoan’);

=> Kết quả tương ứng: 

Để nhập dữ liệu từ bàn phím ta dụng thủ tục

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ỏ?

Hướng dẫn giả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.

3.1. Bài tập tự luận

Câu 1: Viết đoạn chương trình hiển thị kết quả: ‘Toi la hoc sinh gioi Tin hoc’.

Câu 2: Nêu thủ tục nhập thông tin từ bàn phím và đưa thông tin ra màn hình.

3.2. Bài tập trắc nghiệm

Câu 1: Để nhập giá trị cho 2 biến a và b ta dùng lệnh:

A. Write(a,b);

B. Real(a,b);

C. Readln(a,b);

D. Read(‘a,b’);

Câu 2: Cú pháp của thủ tục nhập dữ liệu vào từ bàn phím:

A. Write( , ,…, );

B. Readln , ,…, ;

C. Readln ( , ,…,);

D. Readln ( , ,…,);

Câu 3: Câu lệnh nào sau đây dùng để nhập một số từ bàn phím vào biến x?

A. Writeln(‘Nhap x = ’);

B. Writeln(x);

C. Readln(x);

D. Read(‘X’);

Câu 4: Cho x là biến thực đã được gán giá trị 12.41235. Để thực hiện lên màn hình nội dung “x=12.41” cần chọn câu lệnh nào sau đây?

A. Writeln(x);

B. Writeln(x:5);

C. Writeln(x:5:2);

D. Writeln(‘x=’ ,x:5:2);

Câu 5: Trong ngôn ngữ lập trình Pascal, với câu lệnh như sau (a là một biến kiểu số thực):

a :=2345 ; Writeln(‘a = ‘, a:8:3);

Sẽ ghi ra màn hình?

A. a = 2.345

B. a = 2.345E+01

C. Không đưa ra gì cả

D. a = 2345.000

4. Kết luận

Sau khi học xong Bài 7: Các thủ tục vào/ra đơn giản các em cần ghi nhớ các nội dung:

  • Thủ tục nhập thông tin từ bàn phím: Read (); Hoặc Readln (); 
  • Thủ tục đưa thông tin ra màn hình: Write(); Hoặc Writeln(); 

5.3.2 Lệnh nhập dữ liệu từ bàn phím


5.3.2.1 Ý nghĩa
Để đưa 1 giá trị vào 1 biến, ngoài phép gán rất thuận tiện và dễ sử dụng nhưng phải gán sẵn trong chương trình, ta còn có thể dùng các thủ tục READ và READLN để nhập dữ liệu từ các thiết bị nhập của máy tính. Trong phạm vi chương này, chúng ta chỉ xét việc dùng các lệnh nêu trên để nhập dữ liệu từ bàn phím - thiết bị nhập chuẩn.
5.3.2.2 Cú pháp

READ(biến1, biến2, ..., biếnn); (1)

READLN(biến1, biến2, ..., biếnn); (2)

READLN; (3)
5.3.2.3 Sự thực hiện

Dạng (1): Khi thực hiện chương trình, gặp lệnh này máy tính dừng lại chờ người sử dụng gõ dữ liệu (từ bàn phím) lần lượt cho các biến theo thứ tự đã liệt kê trong câu lệnh. Kết thúc việc nhập, người sử dụng gõ phím ENTER. Với dạng (1) nếu số lượng dữ liệu nhập vào nhiều hơn số lượng biến được chỉ ra trong câu lệnh thì những dữ liệu dư ra vẫn được lưu lại trong vùng đệm và sẽ tự động chuyển vào các biến trong các lệnh READ hoặc READLN tiếp theo trong chương trình.

Dạng (2): Khi thực hiện chương trình, gặp lệnh này máy tính dừng lại chờ người sử dụng gõ dữ liệu (từ bàn phím) lần lượt cho các biến theo thứ tự đã liệt kê trong câu lệnh. Kết thúc việc nhập, người sử dụng gõ phím ENTER. Dạng (2) khác với dạng (1) ở chỗ: nếu số lượng dữ liệu nhập vào nhiều hơn số lượng biến được chỉ ra trong câu lệnh thì những dữ liệu dư ra sẽ bị loại bỏ mà không được lưu lại trong vùng đệm, nên không gây ảnh hưởng gì tới các lệnh READ hoặc READLN tiếp theo trong chương trình.

Dạng (3): Tạm dừng chương trình, chờ người sử dụng gõ phím ENTER để tiếp tục thực hiện các lệnh tiếp theo trong chương trình.
5.3.2.4 Chú ý

  • Các tham số của các lệnh nhập dữ liệu đặt trong dấu ngoặc () chỉ cho phép là các biến mà thôi;

  • Khi nhập dữ liệu từ bàn phím lưu ý dùng ít nhất một dấu cách (khoảng trống) để phân cách các giá trị cần nhập cho các biến khác nhau, không hạn chế số dấu cách.

  • Trong qúa trình nhập dữ liệu, các lệnh nhập đã nêu sẽ tự kiểm tra tính tương thích giữa dữ liệu nhập vào với kiểu của biến đã được khai báo. Nếu không phù hợp về kiểu, máy tính sẽ thông báo lỗi và ngay lập tức cho dừng việc nhập dữ liệu.

  • Biến kiểu Boolean không nhập được bằng hình thức này.

  • Để nhập dữ liệu từ bàn phím người ta thường dùng dạng (2) để tránh việc dữ liệu còn lưu ở vùng đệm tự động chuyển vào biến khi người sử dụng không kiểm soát được.


Ví dụ 5.18:

VAR a, b, c: INTEGER;

x: REAL;

Nếu dùng dạng (1) ta viết các câu lệnh:

READ(a, b);

READ(x);


và nhập các số từ bàn phím như sau:

164 188 2 ()

5.5 ()

ta thu được dữ liệu trong các biến là:



a = 164

b = 188


x = 2

Vì dữ liệu nhập thừa từ lệnh nhập phía trên đã tự động chuyển vào lệnh nhập ngay tiếp sau, do đó đôi khi ta nhận được dữ liệu không hoàn toàn theo ý muốn.


Trái lại, nếu dùng dạng (2) ta viết các câu lệnh:

READLN(a, b);

READLN(x);

và nhập các số từ bàn phím như sau:

164 188 2 ()

5.5 ()


ta thu được dữ liệu trong các biến là:

a=164


b=188

x=5.5


Vì các dữ liệu nhập thừa từ lệnh nhập trên không còn tác dụng khi lệnh đó kết thúc.
5.3.2.5 Ví dụ

Ví dụ 5.19: Lập chương trình nhập từ bàn phím kích thước 2 cạnh của một hình chữ nhật. Tính chu vi, diện tích của hình chữ nhật đó. In kết quả ra màn hình.
PROGRAM vidu_5_19;

USES Crt;

VAR a,b,cv,dt:Real;

{a: cạnh dai, b: canh ngan, cv: chu vi, dt: dien tich}

BEGIN

CLRSCR;


READLN(a,b);

cv:=2*(a+b);

dt:=a*b;

WRITELN(‘Chu vi hinh chu nhat = ‘,cv:8:3);

WRITELN(‘Dien tich hinh chu nhat = ‘,dt:8:3):

READLN;


END.

5.3.3 Kết hợp WRITE và READLN khi nhập dữ liệu


5.3.3.1 Ý nghĩa

Trong chương trình nếu chỉ dùng lệnh READLN để nhập dữ liệu từ bàn phím vào biến sẽ có nhược điểm là không có sự chỉ dẫn cho người sử dụng biết cần nhập loại dữ liệu gì, cho biến nào. Để khắc phục nhược điểm trên, ta có thể kết hợp 2 thủ tục WRITE - in ra lời chỉ dẫn và READLN để nhập dữ liệu từ bàn phím vào biến, như vậy sẽ làm cho chương trình trở nên dễ sử dụng và đẹp mắt hơn.


5.3.3.2 Cú pháp

WRITE( Lời chỉ dẫn.......);

READLN(biến1, biến2,..., biếnn);
5.3.3.3 Chú ý

Không nên dùng WRITELN để in ra lời chỉ dẫn nhập dữ liệu vì sau khi in xong lời chỉ dẫn con trỏ màn hình sẽ bị dời xuống đầu dòng tiếp theo.


5.3.3.4 Ví dụ

Ví dụ 5.20: Xét đoạn chương trình 1:

WRITE(‘ Chieu dai cua hinh chu nhat a= ‘);

READLN(a);

WRITE(‘ Chieu rong cua hinh chu nhat b= ‘);

READLN(b);

.....


  • Kết quả khi chạy chương trình:

Chieu dai cua hinh chu nhat a=  {Chờ NSD nhập dữ liệu cho biến a}

Chieu rong cua hinh chu nhat b= _ {Chờ NSD nhập dữ liệu cho biến b}




  • Xét đoạn chương trình 2:

WRITELN(‘ Chieu dai cua hinh chu nhat a= ‘);

READLN(a);

WRITELN(‘ Chieu rong cua hinh chu nhat b= ‘);

READLN(b);

......


  • Kết quả khi chạy chương trình:

Chieu dai cua hinh chu nhat a=

_ {Chờ NSD nhập dữ liệu cho biến a}

Chieu rong cua hinh chu nhat b=

_ {Chờ NSD nhập dữ liệu cho biến b}




  • Nhận xét:

Cả 2 cách thực hiện đều đúng nhưng nên viết theo đoạn chương trình 1 sẽ hợp lý hơn.







BÀI TẬP CHƯƠNG 5



Bài 5.1. Trong một chương trình có các khai báo sau:

Const max = 100;

Var x, y: real;

m, n,: integer;

a: char;

b: boolean;

Cho biết câu lệnh nào sau đây là sai? Vì sao?


x := max * n;

y := -0.1;

max := m+n;

m+n := max;

m := n;

m := x;


x := n;

m := m mod x;

m := max + n;


b := m > n;

b := a +m >n;

a := a + 1;

m := m +1;

inc(m);

inc(x);


readln(x);

readln(a);

readln(m,n,x,y);


readln(m+n,x,y);

readln(a);

read(b);

readln(max,x,y,m,n);

writeln(b);

writeln(m+n);

writeln(x+m>y+n);

writeln(a:8:2);

write(x:8:2,m+n:8);



Bài 5.2. In ra màn hình các dòng sau:

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

* Truong: DAI HOC DIEN LUC *

* Khoa : Cong nghe thong tin *

* Ho ten: Nguyen Thanh Lam *

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


Bài 5.3. Lập trình in họ tên, ngày tháng năm sinh của một sinh viên bất kỳ và hiển thị các thông tin đo lên màn hình theo mẫu:

Sinh vien: ......

Sinh ngay: ...... thang ...... nam ......
Bài 5.4. Giả xử a là biến thực nhận giá trị 21.0547 và b là biến thực nhận giá trị là -16.05308. Cho biết các câu lệnh in có định dang sau sẽ in ra a và b như thế nào.

Writeln(a:8:2);

Writeln(a:5)

Writeln(b:10:3);

Writeln(a:7:0)
Bài 5.5. Nhập từ bàn phím 2 số thực bất kỳ, tính tổng, hiệu, tích của chúng và hiển thị kết quả lên màn hình theo mẫu:

So thu nhat: .....

So thu hai: .....

Tong cua chung la: .....

Hieu cua chung la: .....

Tich cua chung la: .....


Bài 5.6. Nhập x từ bàn phím. Tính và hiển thị lên màn hình giá trị biểu thức sau:

Y= (a3+2a)/ln(b2+21)

Trong đó: a = ex +1

b = |x|+1


Bài 5.7. Nhập vào từ bàn phím 2 biến X,Y. Hãy hoán vị X,Y và in kết quả trước và sau khi hoán vị.
Bài 5.8. Một quả bóng được ném theo phương ngang với vận tốc ban đầu là V. Thời gian kể từ khi ném tới khi bóng chạm đất là T.

Lập trình nhập V (m/s) và T (s) từ bàn phím. Tính tầm xa S(m) và độ cao H(m) mà bóng đạt được. Chạy thử với V=25; T=3;



Gợi ý: S=V.T; H=gt2/2.
Bài 5.9. Lãi xuất tiết kiệm hàng tháng của ngân hàng A là k = 1.25%. Tính số tiền có được sau t tháng gửi nếu biết số tiền ban đầu là x.
Bài 5.10. Cho ba điểm A(xa,ya), B(xb,yb), C(xc,yc) tạo thành một tam giác. Tính chu vi và diện tích tam giác ABC.

Chương 6

CÁC CÂU LỆNH CÓ CẤU TRÚC

6.1. Câu lệnh ghép (khối lệnh)


Khối lệnh là một nhóm các lệnh bắt đầu bởi từ khóa BEGIN và kết thúc bởi từ khóa END; nhằm thực hiện một công việc chung nào đó.

Cú pháp: BEGIN

Câu lệnh 1;

Câu lệnh 2;

... ...


Câu lệnh n;

END;


Thực hiện: Các câu lệnh bên trong vẫn thực hiện tuần tự như thông thường. Tuy nhiên câu lệnh ghép có tác dụng nhóm nhiều lệnh lại thành một khối lệnh (được coi như một câu lệnh duy nhất) để phù hợp với các cú pháp của các cấu trúc điều khiển sau này.

6.2. Các câu lệnh rẽ nhánh và lựa chọn

6.2.1. Lệnh rẽ nhánh IF


6.2.1.1 Ý nghĩa

Lệnh rẽ nhánh IF được dùng để giải quyết tình huống các công việc có được thực hiện hay không là tuỳ thuộc vào kết quả của biểu thức logic (biểu thức điều kiện).



6.1.1.2 Cú pháp

Turbo Pascal cung cấp 2 mẫu câu lệnh rẽ nhánh sau:




Dạng khuyết




Dạng đủ

If <điều kiện> then

;




If <điềukiện> then

Else


;

Trong đó:

- <Điều kiện> là biểu thức logic

- có thể là 1 lệnh đơn giản hoặc 1 khối lệnh. Nếu 1 khối lệnh phải được đặt trong Begin..End;


6.2.1.3 Sự hoạt động

Dạng khuyết




Dạng đủ

Nếu <Điều kiện> có giá trị TRUE thì thực hiện ;

Nếu <Điều kiện> có giá trị FALSE thì ra khỏi lệnh IF mà không làm gì.






Nếu <Điều kiện> có giá trị TRUE thì thực hiện ;

Nếu <Điều kiện> có giá trị FALSE thì thực hiện ;



6.2.1.4 Lưu đồ minh họa câu lệnh

Dạng khuyết

Dạng đủ

Để nhập dữ liệu từ bàn phím ta dụng thủ tục


6.2.1.5 Ví dụ:

Ví dụ 6.1: Viết chương trình giải phương trình bậc nhất ax+b=0 với các hệ số a, b nhập từ bàn phím.

Program giai_phuong_trinh_bac_nhat;

Uses Crt;

Var a, b, x: Real;

BEGIN

ClrScr;


Write('Nhap he so a= '); ReadLn(a);

Write('Nhap he so b= '); ReadLn(b);

If a<>0 then

Begin


x:=-b/a;

WriteLn('Phuong trinh co nghiem x= ',x:8:3);

End

Else {a = 0}



If b=0 then

WriteLn('Phuong trinh co vo so nghiem')

Else {a = 0, b <> 0}

WriteLn('Phuong trinh vo nghiem ');

ReadLn;

END.


6.2.1.6 Chú ý

- Câu lệnh ngay trước từ khoá ELSE của lệnh IF không có dấu ;

- Trong trường hợp dùng các lệnh IF lồng nhau, nên viết IF ... THEN ... ELSE thành khối để tiện kiểm tra khi có lỗi logic.

Chẳng hạn ta có thể viết một lệnh IF lồng nhau theo cấu trúc sau:

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

ELSE


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

ELSE ;


- Cần nắm được qui ước sau đây để hiểu ELSE đi với IF nào “ELSE gắn với IF gần nhất với nó ngoài cặp BEGIN .. END sát nó.

- Nên trình bày chương trình khoa học, các lệnh tương ứng ngang hàng nhau, lệnh nào nằm trong điều kiện thì nên lui vào một chút so với câu điều kiện của nó, bạn sẽ dễ đọc chương trình và chỉnh sửa lỗi.



Каталог: file -> downloadfile9
file -> CỘng hòa xã HỘi chủ nghĩa việt nam độc lập Tự do Hạnh phúc
file -> TIÊu chuẩn quốc gia tcvn 7790-5 : 2008 iso 2859-5 : 2005
file -> Qcvn 81: 2014/bgtvt
file -> UỶ ban nhân dân cộng hòa xã HỘi chủ nghĩa việt nam
file -> VIỆn chăn nuôi trịnh hồng sơn khả NĂng sản xuất và giá trị giống của dòng lợN ĐỰc vcn03 luậN Án tiến sĩ NÔng nghiệp hà NỘI 2014
downloadfile9 -> Môn: Sinh học lớp 11 Câu 1
downloadfile9 -> Đề cương ôn thi Olympic 30/4 môn Sinh Biên soạn: Nguyễn Hoàng Thiên Tân
downloadfile9 -> Họ và tên: Lớp: ĐỀ thi số 5 MÔN: dinh dưỠng học ngàNH: bqcbns
downloadfile9 -> Đề tài Tìm hiểu về lợi ích của alexa
downloadfile9 -> Em xin chân thành cảm ơn! Hải Dương, ngày 31tháng 5 năm 2012 Sinh viên Vũ Tiến Duy MỤc lụC


tải về 4.67 Mb.


Chia sẻ với bạn bè của bạn:

Để nhập dữ liệu từ bàn phím ta dụng thủ tục
Để nhập dữ liệu từ bàn phím ta dụng thủ tục
Để nhập dữ liệu từ bàn phím ta dụng thủ tục
Để nhập dữ liệu từ bàn phím ta dụng thủ tục
Để nhập dữ liệu từ bàn phím ta dụng thủ tục
Để nhập dữ liệu từ bàn phím ta dụng thủ tục
Để nhập dữ liệu từ bàn phím ta dụng thủ tục
Để nhập dữ liệu từ bàn phím ta dụng thủ tục