Ngôn ngữ lập trình Pascal - Chương 8: Vòng lặp xác định For và không xác định Repeat và While

Vòng chờ từ bàn phím VAR TraLoi : Char; BEGIN REPEAT . (* Thay đổi điều kiện thử *) Write(' Có tiep tuc nua không ?(C/K) '); Readln(TraLoi); UNTIL (TraLoi = 'K') OR (TraLoi = 'k'); END.

pdf16 trang | Chia sẻ: dntpro1256 | Lượt xem: 751 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Ngôn ngữ lập trình Pascal - Chương 8: Vòng lặp xác định For và không xác định Repeat và While, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
8.1 I. Vòng lặp có số bước lặp xác định FOR ... II. Vòng lặp có số bước lặp không xác định REPEAT và WHILE III. Lệnh nhẩy vô điều kiện GOTO Chương 8 Vòng lặp xác định FOR và không xác định Repeat và While 8.2 Thí dụ:Yêu cầu viết ra màn hình nên có thể viết writeln(0); writeln(1);..... writeln(24); Với I là biến nguyên FOR I:=0 TO 24 DO Writeln(I); 0 1 2 . . 23 24 8.3FOR BiếnĐiềuKhiển:=GiáTrịĐầu TO GiáTrịCuối DO Begin End Biến điều khiển := Giá trị đầu Biến điều khiển > Giá trị cuối DO Biến điều khiển := Succ(Biến điều khiển) 8.4 Thí dụ 8.2 Tính tổng các số nguyên từ 50 đến 500 VAR SUM, I: integer; BEGIN SUM :=0; FOR I:= 50 TO 500 DO SUM:=SUM+I; (* hoặc FOR I:=500 DOWNTO 50 DO SUM:=SUM+I *); Writeln(' TONG = ',SUM); END. ? Tràn và biện pháp giải quyết 8.5 USES CRT; VAR CH :CHAR; BEGIN ClrScr; FOR CH:='A' TO 'Z' DO Write(CH:2); Writeln; FOR CH:='a' TO 'z' DO Write(CH:2); Writeln; Writeln; FOR CH:='Z' DOWNTO 'A' DO Write(CH:2); Writeln; FOR CH:='z' DOWNTO 'a' DO Write(CH:2); END. A B C D ... X Y Z a b c d ... x y z Z Y X W ... C B A z y x w ... c b a 8.6 Các vòng FOR lồng nhau FOR I:=1 TO 5 DO FOR J:=I TO 8 DO Begin K:= I+J; Writeln(K); End;  Yêu cầu: hãy in ra kết quả. ? FOR I:=1 TO N DO FOR I:=1 TO 10 DO write(I); 8.7 Repeat until Biểu_thức_Boolean; Begin End Công việc Biểu thức Boolean TRUE FALSE 8.8 While Biểu_thức_Boolean DO Begin End Công việc Biểu thức Boolean TRUE FALSE 8.9 Begin End Công việc Biểu thức Boolean TRUE FALSE Begin End Công việc Biểu thức Boolean TRUE FALSE REPEAT ... UNTIL... WHILE ... DO... So sánh hai vòng lặp 8.10 Tính tổng sau: A = 1 + 1/2 + 1/3 + ... + 1/N; PROGRAM TINH_TONG; VAR I, N: integer; A: Real; BEGIN Write(' N = '); Readln(N); A := 0; I:=1; REPEAT A := A + 1/I; I := I+1; (* thay đổi giá trị biểu thức Boolean *) UNTIL I > N; Writeln(' TONG = ', A :10:8); END. 8.11 Hoặc viết cách khác dưới dạng "đếm lùi": VAR N: integer; A: Real; BEGIN Write(' N = '); Readln(N); A := 0; REPEAT A := A + 1/N; N := N-1; (* thay đổi giá trị biểu thức Boolean *) UNTIL N=0; Writeln(' TONG = ', A :10:8); END. 8.12 Dùng vòng While VAR N, I: integer; A: Real; BEGIN Write(' N = '); Readln(N); A := 0; I:=1; WHILE I <= N DO BEGIN A := A + 1/I; I := I+1;(*thay đổi giá trị biểu thức Boolean*) END; Writeln(' TONG = ', A :10:8); End. 8.13 PROGRAM E_MU_X; VAR E_MU, EPSILON, X, T: Real; N : integer; BEGIN Write(' X = '); Readln(X); Write(' EPSILON = '); Readln(EPSILON); E_MU :=1; N := 1; T := X; REPEAT E_MU := E_MU + T; N :=N + 1; T := T*X/N; UNTIL T < EPSILON; Writeln('E MU', X:10:5,' = ', E_MU:14:12); END. ! ..... !3!2!1 1 32 n xxxx e n x  8.14 Vòng chờ từ bàn phím VAR TraLoi : Char; BEGIN REPEAT ...... (* Thay đổi điều kiện thử *) Write(' Có tiep tuc nua không ?(C/K) '); Readln(TraLoi); UNTIL (TraLoi = 'K') OR (TraLoi = 'k'); END. 8.15 Lệnh nhẩy vô điều kiện GOTO PROGRAM VIDU_NHAN; LABEL 1, 2 ; VAR X, Y, I: Real; BEGIN .... 1: X:=X+1; .... IF X > 5 then GOTO 2; .... 2: I:=X+Y; IF I < 3 THEN GOTO 1; .... END. Tr¸nh kh«ng nªn dïng GOTO 8.16 Bài tập tại lớp 1. Dùng vòng FOR để viết các số từ 0 đến 99: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...... 90 91 92 93 94 95 96 97 98 99 2. Viết ra màn hình 3 trường hợp sau (3 bài nhỏ) * $$$$$$ * ** $$$$$ *** *** $$$$ ***** **** $$$ ******* ***** $$ ********* ****** $ ***********

Các file đính kèm theo tài liệu này:

  • pdfngon_ngu_lap_trinh_pascalchuong8_3146_1810345.pdf