Nêu sự khác nhau giữa câu lệnh lặp và câu lệnh đếm?
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?
Câu trả lời (1)
-
"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ìnhCâu lệnh lặp với số lần biết trước
a. Dạng 1:
1 2 for <bien>:=<gia_tri_dau> to <gia_tri_cuoi> do <cong_viec>; – 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:
1 2 for <bien>:=<gia_tri_dau> downto <gia_tri_cuoi> do <cong_viec>; – 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:1 2 while <dieu_kien> do <cong_viec>; 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:
1 2 3 4 repeat writeln('i =',i); i:=i+1; until i>10; 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;bởi nguyen taan 17/10/2018Like (0) Báo cáo sai phạm
Nếu bạn hỏi, bạn chỉ thu về một câu trả lời.
Nhưng khi bạn suy nghĩ trả lời, bạn sẽ thu về gấp bội!
Lưu ý: Các trường hợp cố tình spam câu trả lời hoặc bị báo xấu trên 5 lần sẽ bị khóa tài khoản
Các câu hỏi mới
-
+ Các ước của n
+ Số lượng các ước của n
+ Tổng các ước của n
+ Xét tổng đó có phải là số hoàn hảo?
29/11/2022 | 0 Trả lời
-
Viết chương trình nhập vào chiều, chiều rông hình chữ nhật và nhập vào cạnh của hình vuông. Thông báo ra màn hình diện tích hình nào lớn hơn.
30/11/2022 | 0 Trả lời
-
vViết chương trình nhập 3 số a,b,h hãy biết só lớn nhất trong 3 số đó
07/12/2022 | 0 Trả lời
-
VIDEOYOMEDIA
viết chương trình nhập vào hai số a,b .kiểm tra xem a ,b là số âm hay dương,chẳn hay lẻ.kiểm tra xem a có chia hết cho b hay không.kiểm tra xem a,b có chia hết cho 3 hay không
07/12/2022 | 0 Trả lời
-
Tìm input, output và mô tả thuật toán bài sau: xác định một số tự nhiên x bất kì để chứng minh là số chẵn không?
09/12/2022 | 0 Trả lời
-
+ Tính n!
+ Nhập số x từ bàn phím.Tính nx
14/12/2022 | 0 Trả lời
-
viết chương trình giải phương trình bậc nhất ax=b.Với a,b nhập bằng bàn phím Tin
17/12/2022 | 0 Trả lời
-
Cho x và y là 2 độ dài 2 cạnh của một hình chữ nhật. Viết chương trình so sánh 2 giá trị x, y và thông báo nó là hình vuông hay hình chữ nhật thường
18/12/2022 | 0 Trả lời
-
tại sao nguười ta không viết chương trình bằng ngôn ngữ máy?
19/12/2022 | 0 Trả lời
-
cú pháp khai báo biến cho ví dụ khai báo bến trong pascal
20/12/2022 | 0 Trả lời
-
tính quãng đường tào hỏa đi được trong thời gian t vận tốc v
21/12/2022 | 0 Trả lời
-
Em hãy xác định INPUT, OUTPUT và mô tả thuật toán của bài toán nhập vào 2 số nguyên dương a, b và in ra kết quả số a nếu a lớn hơn b và ngược lại in kết quả b. (Ví dụ : nhập 20, 9 in ra 20 ngược lại nhập 9,20 in ra 20).
25/12/2022 | 0 Trả lời
-
Viết chương trình hoàn chỉnh sử dụng câu lệnh điều kiện thực hiện nhập từ bàn phím giá trị của biến nguyên a và kiểm tra nếu a là số lẻ thì tính và in ra màn hình diện tích hình vuông với độ dài cạnh là 2a không thì đi tính chu vi hình vuông với độ dài cạnh là 2a?
Mô tả lại thuật toán giải bài toán trên
28/12/2022 | 0 Trả lời
-
Viết chương trình nhập vào một số nguyên a bất kỳ. Kiểm tra xem số a là số chẵn hay số lẻ. Nếu là số chẵn, tăng giá trị của a thêm 10 đơn vị; Nếu là số lẻ, giảm giá trị của a 10 đơn vị.
30/12/2022 | 0 Trả lời
-
viết công thức tính C=2/3*3/4*4/5....*n/n+1 (n>0)
31/01/2023 | 0 Trả lời
-
Viết chương trình tính tổng: S=1+3+5+...+999
09/02/2023 | 0 Trả lời
-
S=1+1/2^2+1/3^2+...+1/n^2. Trong đó N là một số nguyên được nhập vào từ bàn phím. S là tổng các phân số từ 1 đến n, sau khi tính toán tổng S được xuất ra màn hình.
09/02/2023 | 0 Trả lời
-
Sử dụng câu lệnh lặp để viết chương trình tính tổng 1x2+2x3+3x4+...+n(n+1)
24/02/2023 | 0 Trả lời
-
Viết chương trình tính tổng S=1+2+3+.... đến khi S lớn hơn 250 thì dừng. In ra màn hình giá trị tổng S vừa tính và cho biết giá trị cuối cùng được cộng là bao nhiêu?
05/03/2023 | 0 Trả lời
-
Viết chương trình nhập vào 4 số tự nhiên và sắp xếp sau đó in ra màn hình kết quả.
09/03/2023 | 0 Trả lời
-
cho dãy n số nguyên tính tổng các phần tử của dãy và cho biết phần tử nào lớn nhất trong dãy. Hãy viết chương trình bằng pascal?
28/03/2023 | 0 Trả lời
-
Viết chương trình nhập vào 4 số sau đó sắp xếp theo thứ tự từ bé đến lớn?
05/04/2023 | 0 Trả lời
-
S:=1; For i:=1 to 5 do S:=S*i;
Giá trị của biến S bằng bao nhiêu?
A. 120
B. 55
C. 121
D. 151
12/04/2023 | 0 Trả lời
-
Viết chương trình pascal nhập hai số a;b (a>0 ; b>0) xuất ra màn hình các số chính phương từ a-b.
12/04/2023 | 0 Trả lời
-
viết chương trình sử dụng biến mảng để nhập từ bàn phím các phần tử của một dãy số nguyên . độ dài của dãy cũng đc nhập từ bàn phím .in ra màn hình tổng các giá trị là số lẻ
14/04/2023 | 0 Trả lời