Trong khi điều kiện lặp còn đúng thì vòng lặp sẽ được lặp lại.. Vòng lặp while Vòng lặp while dùng để thực thi các lệnh mã giả trong khi điều kiện lặp còn đúng.. Nếu điều kiện lặp sai,
Trang 2Cấu trúc lặp
Cấu trúc lặp là cấu trúc cho phép thực thi một đoạn mã trong chương
trình nhiều lần.
Quá trình lặp của đoạn mã này được điều khiển bằng một điều kiện
gọi là điều kiện lặp Trong khi điều kiện lặp còn đúng thì vòng lặp sẽ được lặp lại Khi điều kiện lặp là sai thì vòng lặp sẽ kết thúc và lệnh ngay phía sau vòng lặp sẽ được thực thi.
Các câu lệnh chứa bên trong vòng lặp gọi là thân của vòng lặp.
Ví dụ: vẽ lưu đồ giải thuật nhập vào 10 số và tính tổng 10 số đó
Trang 5Vòng lặp while
Vòng lặp while dùng để thực thi các lệnh mã giả trong khi điều kiện
lặp còn đúng Nếu điều kiện lặp sai, vòng lặp while sẽ kết thúc và câu lệnh ngay phía sau vòng lặp được thực hiện.
Vòng lặp while có cú pháp như sau
while(điều kiện lặp) begin
//các câu lệnh trong thân vòng lặp end
Nếu ngay từ đầu điều kiện lặp không đúng thì các câu lệnh bên trong
vòng lặp while sẽ không được thực hiện.
Trang 6Vòng lặp while - Ví dụ minh họa:
Jane là giáo viên tại trường Scholar, cô Jane cần tính điểm trung bình cho lớp học của cô phụ trách lớp học của cô Jane có 30 học viên Vẽ lưu đồ giải thuật và mã giả cho bài tóan trên.
Lưu đồ giải thuật:
Trang 8Mã giả
begin numeric nMarks, nTotal, nCounter, nAvg nMarks = 0
nTotal = 0 nCounter = 0 nAvg = 0 while (nCounter < 30) //while the condition is true begin
display “Enter the total marks of a student”
accept nMarks nTotal = nTotal + nMarks nCounter = nCounter + 1 //increments the counter by one end
nAvg = nTotal / nCounter //calculates the average display “The average marks of the class is”
display nAvg //displays the average end
Trang 9// các câu lệnh bên trong vòng lặp end
until (điều kiện lặp)
Trang 10Vòng lặp repeat … until (tiếp theo)
Khác với vòng lặp while, vòng lặp repeat … until sẽ thực hiện trước
các lệnh bên trong thân vòng lặp trước, sau đó mới xét đến điều kiện lặp Do đó vòng lệnh repeat … until sẽ được thực hiện ít nhất 1 lần.
Nếu điều kiện lặp là sai thì vòng lặp repeat … until sẽ quay lại thực
hiện tiếp, nếu điều kiện lặp là đúng thì vòng lặp repeat … until sẽ kết thúc.
Trang 11Vòng lặp repeat … until – ví dụ minh họa
Vẽ lưu đồ giải thuật và viết mã giả cho chương trình nhập vào hai số
sau đó tính tổng của hai số đó Sau đó chương trình có chức năng hỏi người dùng là có muốn tiếp tục không? Nếu người dùng trả lời là
“Yes” thì chương trình được tiếp tục thực hiện, nếu người dùng trả lời
“No” thì kết thúc chương trình.
Lưu đồ giải thuật:
Trang 13Mã giả
begin numeric nNum1, nNum2, nSum character cChoice
repeat begin display “Enter the first number”
accept nNum1 display “Enter the second number”
accept nNum2 nSum = nNum1 + nNum2
display nSum display “Do you wish to calculate the sum of more numbers?” accept cChoice
end until(cChoice = “No”) //until the choice entered is “No”
Trang 14Vòng lặp for
Vòng lặp for được dùng trong trường hợp ta biết trước số lần lặp
trước khi vòng lặp được thực hiện Vòng lặp for được cấu thành từ 3 thành phần cơ bản được phân cách bằng dấu chẩm phảy (;) như sau:
Biểu thức khởi động: biến điều khiển vòng lặp được gán cho giá trị
ban đầu.
Điều kiện lặp: điều kiện lặp được kiểm tra ở đầu vòng lặp, nếu điều
kiện lặp đúng thì vòng lặp được thực hiện, nếu điều kiện lặp sai, vòng lặp for sẽ kết thúc.
Trang 15Vòng lặp for (tiếp theo)
Biểu thức tăng/giảm biến điều khiển vòng lặp: giá trị của biến điều
khiển vòng lặp được tăng hoặc giảm.
Cú pháp của vòng lặp for như sau:
for(biểu thức khởi động; điều kiện lặp; biểu thức tăng/giảm biến điều kiển)
begin
//các câu lệnh bên trong vòng lặp for end
Trang 16Vòng lặp for - ví dụ minh họa
Vẽ lưu đồ giải thuật và viết mã giả chương trình hiển thị tất cả các số
chẳng bé hơn hoặc bằng 100
Lưu đồ giải thuật
Trang 17begin
numeric nCounter for(nCounter=2;nCounter<=100;
nCounter=nCounter+2) begin
end end
Trang 18Câu lệnh nhảy goto
Câu lệnh nhảy goto được dùng trong tình huống là sự thực thi của
giải thuật không tuân theo một thứ tự tuần tự.
Trong chương trình bạn có thể nhảy đến vị trí bất kỳ bằng câu lệnh
goto Để đánh dấu vị trí mà chương trình có thể nhảy đến bạn cần phải gán nhãn cho nó.
Cú pháp lệnh nhãy goto như sau:
nhãn 1:
// các câu lệnh goto nhãn 1;
Trang 19Câu lệnh nhảy goto (tiếp theo)
Lệnh nhảy goto cung cấp sự linh động trong việc điều khiển dòng
chảy của chương trình trong giải thuật Tuy nhiên lệnh nhảy goto có một số điểm không thuận lợi như sau:
• Nó phá vở dòng chảy của chương trình vì lệnh nhảy goto cho phép
nhảy đến một nhãn bất kỳ.
• Nhiều câu lệnh goto được dùng sẽ làm tăng độ phức tạp của chương
trình.
• Lệnh nhảy goto làm cho chương trình không có tính cấu trúc do đó rất
khó để bắt lỗi và sửa lỗi
Trang 20Câu lệnh goto – ví dụ minh họa
Viết mã giả cho chương trình hiển thị các số chẵng nhỏ hơn 100.
begin
numeric nCounter nCounter=2
Label1:
nCounter=nCounter+2 display nCounter //displays all the even numbers if(nCounter<=100)
goto Label1 //transfers the control to Label1 end
Trang 21Tóm tắt
Cấu trúc lặp là cấu trúc cho phép thực thi một đoạn mã trong chương
trình nhiều lần.
Quá trình lặp của đoạn mã này được điều khiển bằng một điều kiện
gọi là điều kiện lặp Trong khi điều kiện lặp còn đúng thì vòng lặp sẽ được lặp lại Khi điều kiện lặp là sai thì vòng lặp sẽ kết thúc và lệnh ngay phía sau vòng lặp sẽ được thực thi.
Có 4 loại vòng lặp
• Vòng lặp while
• Vòng lặp repeat – until
• Vòng lặp for