Chương 8: Lặp FOR, WHILE và REPEAT
8.3 Lệnh nhảy vô điều kiện GOTO
Lệnh Goto cho phép chương trình nhảy vô điều kiện tới một vị trí trong ch ương
trình thông qua tên nhãn. Các nhãn là các số nguyên hoặc tên được khai báo
trong phần Label của phần khai báo ở đầu ch ương trình, đặt cách nhau qua dấu
phẩy. Trong chương trình, nhãn được đặt vào vị trí thích hợp theo sau là dấu hai
chấm.
Ví dụ:
Program TinhTong; Label 3;
Tong, I: Integer; Begin Tong:=0; i:=10; 3: Tong:= Tong+i; i:=i+1;
if i<=100 Then Goto 3
Writeln('Tong =', Tong); End.
Sự có mặt của Goto trong ch ương trình làm mất tính cấu trúc. Vì vậy nếu có thể được nên tránh dùng Goto. Một điều nữa là không được dùng Goto để nhảy vào
Bài tập:
1. Dùng vòng lặp For để in ra các ký tự có mã từ 65 đến 120
2. Dùng vòng lặp For lập trình để tính giai thừa n! (với n nhập từ bàn phím). 3. Tính S =1/1+1/2+1/2+...+1/n
4. Hãy lập trình giải bài toán:
Trăm trâu trăm cỏ Trâu đứng ăn 5
Trâu nằm ăn 3
Lụ khụ trâu già Ba con một bó
Hỏi mỗi loại có bao nhiêu con?
Gợi ý: gọi x là số trâu đứng, y là trâu nằm, z là trâu già, ta có hệ phương trình vô
định sau:
X + Y+ Z=100
5X+3Y+1/3Z=100 hay X+Y+Z=100
15X+9Y+Z=300
Ta dùng 3 lệnh FOR như sau:
For x:=1 to 100 Do For y:=1 To 100 Do
For z:=1 to 100 Do
IF ((X+Y+X)=100) AND ((15*X+9*Y+Z)=300)) then Begin
Writeln('Trâu đứng là:',X); Writeln('Trâu nằm là:',Y); Writeln('Trâu già là:',Z); End;
Bạn hãy lập trình chi tiết và chạy thử
5. Tìm chữ số x và y trong phép nhân sau: x9y.7x=xy90y Gợi ý: Ta thử bằng lênh For:
For x:=0 to 9 Do For y:=0 To 9 Do
IF ((x*100+90+y) * (70+x))=(x*10000+y*1000+90+y) Them Writeln(x,y); Hãy lập trình chi tiết và chạy thử.