Nêu sự khác nhau giữa câu lệnh lặp và câu lệnh đếm. và viết cấu trúc của hai câu lệnh trên
Câu lệnh lặp được thực hiện như thế nào? Nêu cấu trúc và viết các bước thực hiện câu lệnh lặp?
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Trong Scratch:
1. Đúng. Có ba khối lệnh khác nhau để thể hiện cấu trúc lặp trong thuật toán là: "Lặp lại vô hạn", "Lặp lại" và "Lặp từ ... đến ...". Các khối lệnh này được sử dụng để lặp lại một đoạn mã trong chương trình một số lần hoặc vô hạn.
2. Sai. Cấu trúc lặp có thể được sử dụng để lặp lại một đoạn mã trong chương trình một số lần nhất định, hoặc lặp lại vô hạn lần. Ngoài ra, cũng có thể sử dụng biến để điều khiển số lần lặp.
3. Sai. Cấu trúc lặp trong Scratch không chỉ sử dụng để lặp lại một lệnh mà còn để lặp lại một đoạn mã bao gồm nhiều lệnh.
4. Đúng. Điều kiện dừng lặp phải là một biểu thức logic để xác định khi nào cần dừng vòng lặp. Ví dụ, điều kiện có thể là một biến đếm số lần lặp, một biểu thức so sánh hoặc một biểu thức logic phức tạp hơn.
a: 125 mod 5<>0
b:
uses crt;
var i,t:integer;
begin
clrscr;
t:=0;
for i:=1 to 50 do t:=t+i;
write(t);
readln;
end.
c: for <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
d:
Dạng thiếu: if <điều kiện> do <câu lệnh>;
Dạng đủ: if <điều kiện> do <câu lệnh 1> else <câu lệnh 2>;
Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thỏa mãn.
Cú pháp: While <điều kiện> do <câu lệnh>
Hoạt động: Câu lệnh viết sau từ khóa do được thực hiện khi biểu thức điều kiện còn nhận giá trị true. Biểu thức điểu kiện được tính giá trị trước khi câu lệnh được thực hiện, nhưng nếu biểu thức điểu kiện đã nhận giá trị sai ngay từ đầu thì câu lệnh không được thực hiện lần nào. Nếu biểu thức điều kiện luôn nhận giá trị ĐÚNG thì câu lệnh được thực hiện mãi, ta gọi là vòng lặp vô hạn.
Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thỏa mãn. Mọi ngôn ngữ lập trình đều có các câu lệnh lặp để thể hiện cấu trúc lặp.
"For..to..do.." hay "For..downto..do.." được hiểu như là cấu trúc lặp với số lần lặp được báo trước và thường sẽ có kết thúc (hay còn gọi là "thoát" khỏi vòng lặp).
Tuy nhiên, cấu trúc "While..do.." hay "Repeat..Until.." nói chung được hiểu như cấu trúc lặp với số lần lặp không biết trước (hoặc chưa biết trước) và có một số trường hợp sẽ "treo" máy vì cấu trúc lặp vô tận xãy ra do lỗi cài đặt hoặc xử lý câu lệnh của người viết chương trình
Câu lệnh lặp với số lần biết trước
a. Dạng 1:
– Bước 1: Kiểm tra giá trị đầu có <= (nhỏ hơn hoặc bằng) giá trị cuối hay không. Nếu đúng thì gán giá trị đầu cho biến và thực thi công việc.
– Bước 2: Kiểm tra giá trị biến <> (khác) giá trị cuối hay không. Nếu đúng thì tăng thêm biến một đơn vị (bien:=SUCC(bien)) rồi thực hiện công việc.
– Lập lại bước 2, cho đến khi giá trị biến bằng giá trị cuối thì kết thúc câu lệnh.
Lưu ý:Biến sau từ khoá for phải là biến đếm được và giá trị đầu phải <= giá trị cuối.
b. Dạng 2:
– Bước 1: Kiểm tra giá trị đầu có >= (nhỏ hơn hoặc bằng) giá trị cuối hay không. Nếu đúng thì gán giá trị đầu cho biến và thực thi công việc.
– Bước 2: Kiểm tra giá trị biến <> (khác) giá trị cuối hay không. Nếu đúng thì giảm biến xuống một đơn vị(bien:=PRED(bien)) rồi thực hiện công việc.
– Lập lại bước 2, cho đến khi giá trị biến bằng giá trị cuối thì kết thúc câu lệnh.
Lưu ý:Biến sau từ khoá for phải là biến đếm được và giá trị đầu phải >= giá trị cuối.
Lưu ý: Không giống với các ngôn ngữ khác, Pascal không kiểm tra (biến>cuối) trong câu lệnh FOR … TO … DO để kết thúc vòng lặp mà là kiểm tra (biến=cuối) để thực hiện lần lặp cuối cùng. Vì lẽ đó việc can thiệp vào biến đếm có thể gây ra sự cố “vòng lặp vô tận”. Ngay cả khi bien đã duyệt qua hết phạm vi của kiểu dữ liệu (tức giá trị 255) thì bien quay lai giá trị 0 … và mọi thứ lại tiếp tục …trừ khi gõ Ctrl – Break.
4. Câu lệnh lặp với số lần chưa biết trước
a. Vòng lặp WHILE
Cú pháp:
Khi gặp vòng lặp chương trình sẽ kiểm tra điều kiện, nếu điều kiện đúng thì thực thi công việc, sau đó quay lại kiểm tra điều kiện. Cứ tiếp tục như thế cho tới khi nào điều kiện sai thì kết thúc.
{Trong khi điều kiện đúng thì làm công việc}.
b. Vòng lặp REPEAT
Cú pháp:
Khi gặp vòng lặp chương trình sẽ thực thi công việc, sau đó kiểm tra điều kiện, nếu điều kiện sai thì tiếp tục thực hiện công việc sau đó kiểm tra điều kiện. Cứ tiếp tục như thế cho tới khi nào điều kiện đúng thì kết thúc. {Làm công việc cho đến khi điều kiện đúng}.
Lưu ý:
+ Không giống với vòng lặp for Cả hai vòng lặp While và Repeat đều là vòng lặp không xác định trước số lần lặp. Cần phải có câu lệnh thay đổi giá trị biến điều khiển vòng lặp để có thể thoát ra khỏi vòng lặp.
+ Trong vòng lệnh while thì điều kiện sẽ được kiểm tra trước, nếu điều kiện đúng thì thực hiện công việc. Còn trong lệnh repeat thì ngược lại, công việc được làm trước rồi mới kiểm tra điều kiện, nếu điều kiện đúng thì vòng lặp kết thúc. Như vậy đối với vòng lặp repeat bao giờ thân vòng lặp cũng được thực hiện ít nhất một lần, trong khi thân vòng lặp while có thể không được thực hiện lần nào.
+ Nếu dùng 2 lệnh này để giải cùng một bài toán, cùng một giải thuật như nhau thì điều kiện sau while và điều kiện sau until là phủ định nhau.
+ Các câu lệnh trong vòng lặp repeat không cần phải đặt trong cặp từ khóa BEGIN và END;