intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

CÂU LỆNH WHILE

Chia sẻ: Lotus_0 Lotus_0 | Ngày: | Loại File: PDF | Số trang:7

254
lượt xem
30
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Cú pháp, lưu đồ, cách thức hoạt động : Cú pháp: WHILE Ðiềukiện DO LệnhP ; Ý nghĩa : Chừng nào Ðiềukiện còn đúng thì cứ làm LệnhP , cho đến khi Ðiềukiện sai thì không làm LệnhP nữa mà chuyển sang lệnh kế tiếp ở phía dưới. Cách thức hoạt động của WHILE: Bước 1: Nếu Ðiềukiện sai thì chuyển ngay sang lệnh kế tiếp sau LệnhP, ngược lại, nếu Ðiềukiện đúng thì làm LệnhP, rồi quay lại bước 1....

Chủ đề:
Lưu

Nội dung Text: CÂU LỆNH WHILE

  1. CÂU LỆNH WHILE 9.2.1. Cú pháp, lưu đồ, cách thức hoạt động : Cú pháp: WHILE Ðiềukiện DO LệnhP ; Ý nghĩa : Chừng nào Ðiềukiện còn đúng thì cứ làm LệnhP , cho đến khi Ðiềukiện sai thì không làm LệnhP nữa mà chuyển sang lệnh kế tiếp ở phía dưới. Cách thức hoạt động của WHILE: Bước 1: Nếu Ðiềukiện sai thì chuyển ngay sang lệnh kế tiếp sau LệnhP, ngược lại, nếu Ðiềukiện đúng thì làm LệnhP, rồi quay lại bước 1.
  2. Lệnh P được gọi là thân của vòng lặp WHILE. Nếu Ðiềukiện không bao giờ sai thì LệnhP sẽ phải làm hoài, lúc đó ta có vòng lặp vô hạn. Trong trường hợp này, để dừng chương trình, hãy gõ đồng thời hai phím Ctrl và Pause ( viết tắt là ^Pause). Ðể tránh các vòng lặp vô hạn, trong thân của vòng WHILE cần có ít nhất một lệnh có tác dụng làm biến đổi các đại lượng tham gia trong Ðiềukiện để đến một lúc nào đó thì Ðiềukiện sẽ sai và do đó vòng lặp sẽ kết thúc. 9.2.2. Các ví dụ về lệnh While : Ví dụ 9.10 : Nhập số tự nhiên N, dùng lệnh WHILE tính S=N!: PROGRAM VIDU910; { Tinh S=N! bằng lệnh WHILE..} V ar N, i : Integer; S : LongInt; Begin
  3. Write(‘ Nhập N > 0 : ‘ ); Readln(N); S:=1; i :=1; {9} While i
  4. Khởi đầu biến i được gán gía trị 1 (dòng {9}). Trong vòng lặp WHILE, sau mỗi lệnh S:=S*i; biến i được tăng lên 1 đơn vị bằng lệnh i:=i+1; (dòng {13}). Khi i=N+1 thì điều kiện i
  5. Ví dụ 9.11: Trở lại bài toán tính tiền gửi ngân hàng có tiền lãi hàng tháng gộp vào vốn (ví dụ 9.9). Câu hỏi bây giờ là: cần gửi tối thiểu là bao nhiêu tháng để có được số tiền S cho trước. Giả sử tiền vốn là 100, lãi suất hàng tháng là 2%, số tiền cần có là S=108. Ta tính số tiền có được sau mỗi tháng gửi: Sau 1 tháng gửi: Số tiền=100 + 100*0.02 = 102 Sau 2 tháng gửi: Số tiền=102 + 102*0.02 = 104.04 Sau 3 tháng gửi: Số tiền=104.04 + 104.04*0.02 = 106.1208 Sau 4 tháng gửi: Số tiền=106.1208 + 106.1208*0.02 = 108.2432 Vậy chỉ cần gửi N=4 tháng, số tiền sẽ có là 108.2431. Qúa trình lặp kết thúc khi tới tháng đầu tiên có Số tiền S. Chương trình như sau: PROGRAM VIDU911; { Tính số tháng gửi ngân hàng để có số tiền S } Var
  6. Tienvon, Laisuat, Sotien, S : Real; N : Byte; Begin Write(‘ Nhập tiền vốn, lãi suất và số tiền S cần có: ‘); Readln(Tienvon, Laisuat, S); Sotien:=Tienvon; N:=0; { N là số tháng gửi } While Sotien< S do begin N:=N+1; Sotien:= Tienvon + Tienvon*Laisuat ; Tienvon:=Sotien; end; Writeln(‘ Cần gửi ‘, N , ‘ tháng ‘);
  7. Writeln(‘ Số tiền sẽ có = ‘ , Sotien:6:2); Readln; End. Chạy Chép file nguồn Số lần lặp của lệnh: While Sotien < S do . . . không phải do ta ấn định từ trước mà tùy thuộc vào biểu thức Sotien < S là mau bị sai hay chậm bị sai. Số lần lặp ít hay nhiều phụ thuộc vào gía trị S nhỏ hay lớn và vào tốc độ tăng nhanh hay chậm của số tiền.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
4=>1