Trong ngôn ngữ lập trình Pascal cú pháp câu lệnh lặp với số lần biết trước mà em đã học

1.1. Các hoạt động lặp với số lần chưa biết trước

Ví dụ 1:  Một ngày chủ nhật Long gọi điện cho Trang. Không có ai nhấc máy. Long quyết định gọi lại thêm 1 lần nữa. Như vậy Long đã biết trước là mình sẽ lặp lại gọi điện thêm 2 lần. Một ngày khác, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi có người bắt máy.

Điều kiện: Có người nhấc máy thì kết thúc hoạt động lặp.

Ví dụ 2: Nếu cộng lần lượt n số tự nhiên đầu tiên [n = 1, 2, 3,...], cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?

Điều kiện: Khi tổng Tn nhỏ nhất lớn hơn  1000 thì kết thúc hoạt động lặp

Mô tả thuật toán bằng liệt kê:

  • Bước 1. S \[\leftarrow\] 0, n \[\leftarrow\] 0
  • Bước 2. Nếu S ≤ 1000, n \[\leftarrow\] n + 1; ngược lại chuyển tới Bước 4
  • Bước 3. S \[\leftarrow\] S + n và quay lại Bước 2
  • Bước 4. In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S > 1000. Kết thúc thuật toán

Mô tả thuật toán bằng sơ đồ khối:

Hình 1. Mô tả thuật toán bằng sơ đồ khối

KẾT LUẬN:

  • Việc lặp lại một nhóm hoạt động với số lần chưa xác định trước phụ thuộc vào một điều kiện cụ thể được thỏa mãn và chỉ dừng lại khi điều kiện không thỏa mãn.
  • Để chỉ dẫn máy tính thực hiện các hoạt động lặp trên, ta có thể sử dụng câu lệnh có dạng: Lặp với số lần chưa biết trước

1.​2. Ví dụ về lệnh lặp với số lần chưa biết trước

Cú pháp:

While < Điều kiện > do < Câu lệnh >;

Trong đó:

  • While, do: là các từ khóa
  • Điều kiện: thường là một phép so sánh
  • Câu lệnh: có thể là câu lệnh đơn giản hay câu lệnh ghép

Hoạt động:

  • Bước 1. Kiểm tra điều kiện
  • Bước 2. Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện câu lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại Bước 1

​Ví dụ 3: 

While a

  • While, do là các từ khóa
  • Điều kiện là a
  • Câu lệnh là a:=a+1 [câu lệnh đơn]

Ví dụ 4: 

While a>b do

Begin 

write['a>b'];

a:=a-1;

End;​

  • While, do là các từ khóa
  • Điều kiện là a>b [chứa phép so sánh]
  • Câu lệnh là Write['a>b'] và a:=a-1 [câu lệnh ghép]

Ví dụ 5:  Viết câu lệnh in ra 5 số tự nhiên liên tiếp bắt đầu bằng số 1.

Gợi ý giải:

Sử dụng lệnh lặp với số lần lặp chưa biết trước while…do

Đoạn chương trình mẫu:

n:=1

while n

  begin 

     writeln[n];

     n:=n+1;

   end;

1.3. Lặp vô hạn - Lỗi lập trình cần tránh

Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc. 

Chẳng hạn, chương trình dưới đây sẽ lặp lại vô tận:

var a:integer;

begin

a:=5;

while a

       writeln['A'];

end.

  • Trong chương trình trên, giá trị của biến a luôn luôn bằng 5, điều kiện awriteln['A']; luôn được thực hiện.
  • Do vậy, khi thực hiện vòng lặp, điều kiện trong câu lệnh phải được thay đổi để sớm hay muộn giá trị của điều kiện được chuyển từ đúng sang sai. Chỉ như thế chương trình mới không "rơi" vào những "vòng lặp vô tận".

Cấu trúc lặp là một điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi một điều kiện nào đó còn đúng.

1. Lặp

- Cấu trúc lặp là một điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi một điều kiện nào đó còn đúng.

- Quá trình lặp không thể dừng được gọi là quá trình lặp vô hạn. Điều này xảy ra khi điều kiện để dừng lặp không còn bị biến đổi giá trị sau mỗi lần lặp. Khi đó để thoát lặp vô hạn, cần có các câu lệnh cho phép thoát ngay khỏi lặp.

- Có hai loại cấu trúc lặp: lặp với số lần biết trước và lặp với số lần chưa biết trước.

2. Lặp có số lần biết trước và câu lệnh for-do

Dạng lặp với số lần biết trước dùng để thực hiện câu lệnh một số lần xác định. Dạng này dùng một biến điều khiến vòng lặp. Trong Pascal mỗi lần thực hiện câu lệnh thì biến điều khiến [giả sử là i] được tự động tăng [nhận giá trị tiếp theo là succ[i]] hoặc giảm [nhận giá trị nhỏ hơn ngay trước pred[i]]. Đến khi biến điều khiển đạt giá trị xác định thì vòng lặp kết thúc.

Câu lệnh for- do với hai dạng tiến và lùi:

- Dạng lặp tiến :

for := to do ;

- Dạng lặp lùi:

for := dowto do ;

Trong đó:

- biến đếm là biến đơn, thường có kiểu nguyên.

- giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối. Nếu giá trị đầu lớn hơn giá trị cuối thì vòng lặp không được thực hiện.

Hoạt động của lệnh for-do:

Ở dạng lặp tiến, câu lệnh viết sau từ khóa phải thực hiện tuần tự, với biến đếm lần lượt nhận giá trị từ giá trị đầu đến giá trị cuối.

Hoặc hoạt động của dạng lặp tiến có thể được diễn giải như sau:

Bước 1: Biến điều khiển nhận giá trị đầu.

Bước 2: Nếu giá trị biến điều khiển nhỏ hơn giá trị cuối thì chuyển đến bước 4. Bước 3: {giá trị biến điều khiển bằng giá trị cuối} thực hiện câu lệnh, sau đó dừng lặp, chuyển tới câu lệnh tiếp theo vòng lặp.

Bước 4: Thực hiện câu lệnh sau do và tăng biến điều khiên tới giá trị tiếp theo.

Ở dạng lặp lùi, câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận giá trị từ giá trị đầu đến giá trị cuối.

Ở dạng lặp lùi này giá trị của biến điểu khiên được tự động giảm xuống giá trị tiếp theo sau mỗi lần lặp.

Lưu ý: Trong vòng lặp không được chứa lệnh làm thay đổi giá trị của biến điều khiển vì sẽ gây ra tình trạng khó theo dõi và quản lí vòng for-do.

3. Lặp với số lần chưa biết trước và câu lệnh while-do

• Lặp với số lần chưa biết trước có hai dạng:

Dạng 1 : Trong khi còn đúng thì còn thực hiện

Dạng 2: Còn thực hiện trong khi còn đúng.

Trong dạng 1, đầu tiên kiểm tra và tính giá trị của điều kiện, nếu điều kiện nhận giá trị true thì thực hiện công việc [một lần]. Mỗi lần thực hiện công việc có thể sẽ làm thay đổi giá trị của điều kiện nên đến một lúc nào đó điều kiện lặp không còn đúng nữa và cấu trúc lặp sẽ được kết thúc. Ngược lại, nếu khi thực hiện công việc không làm thay đổi giá trị của điều kiện thì cấu trúc lặp kéo dài mãi [gọi là vòng lặp vô hạn]. Để thoát khỏi vòng lặp vô hạn, trong công việc cần có câu lệnh rẽ nhánh thoát khỏi vòng lặp vô hạn khi thỏa mãn điều kiện rẽ nhánh.

• Trong Pascal, lặp với số lần chưa biết trước là dạng while-do

Câu lệnh while-do chứa một biểu thức điều kiện để điều khiển thực hiện lặp một câu lệnh đơn hoặc kép.

Cú pháp:

while do ;

Trong đó:

Điều kiện là biểu thức quan hệ hoặc lôgic;

Câu lệnh là một câu lệnh cùa Pascal.

- Hoạt động của câu lệnh while-do:

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ị false 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ị true thì câu lệnh được thực hiện mãi, ta gọi là vòng lặp vô hạn.

* Định lí Bohn Jacopini: Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên ba cấu trúc cơ bản là cấu trúc tuần tự, cấu trúc rẽ nhánh và cấu trúc lặp.

Loigiaihay.com

Câu hỏi hot cùng chủ đề

  • hằng là gì  ? nêu cú pháp khai báo hằng

    Trả lời [16] Xem đáp án »

  • Hỏi từ APP VIETJACK

    Đâu là các từ khóa:A.Program,end,beginB.Program,end,begin,Readln,lop8aC.Program,then,mot,hai,bà

    D.lop82,uses,begin,end

LIVESTREAM 2K4 ÔN THI THPT QUỐC GIA 2022

TƯƠNG GIAO ĐỒ THỊ HÀM SỐ - 2k5 - Livestream TOÁN thầy QUANG HUY

Toán

BÀI TẬP VỀ VẬN TỐC, GIA TỐC CƠ BẢN - - 2K5 Livestream LÝ THẦY TUYÊN

Vật lý

UNIT 1 - ÔN TẬP NGỮ PHÁP TRỌNG TÂM [Buổi 2] - 2k5 Livestream TIẾNG ANH cô QUỲNH TRANG

Tiếng Anh [mới]

BÀI TOÁN TÌM m TRONG CỰC TRỊ HÀM SỐ - 2k5 - Livestream TOÁN thầy QUANG HUY

Toán

HỌC SỚM 12 - TÍNH CHẤT - ĐIỀU CHẾ ESTE - 2K5 - Livestream HÓA cô HUYỀN

Hóa học

TRẮC NGHIỆM ĐỒNG ĐẲNG - ĐỒNG PHÂN - DANH PHÁP ESTE - 2K5 - Livestream HÓA cô HUYỀN

Hóa học

Xem thêm ...

Video liên quan

Chủ Đề