Chúng ta đã thấy rằng đệ quy là việc thực hiện lặp đi lặp lại các lệnh chứa trong một chương trình con. Và điều này, đến lượt nó, tương tự như công việc của chu kỳ. Có những ngôn ngữ lập trình hoàn toàn không có cấu trúc vòng lặp, chẳng hạn như Prolog.
Hãy thử mô phỏng hoạt động của vòng lặp for.
Vòng lặp for chứa một biến đếm bước. Trong chương trình con đệ quy, một biến như vậy có thể được truyền dưới dạng tham số.
//LoopImitation() thủ tục có hai tham số
// Tham số đầu tiên – bộ đếm bước, tham số thứ hai – tổng số bước
thủ tục LoopImitation(i, n: số nguyên);
bắt đầu
writeln('Xin chao N ', i); // Toán tử được lặp lại với bất kỳ giá trị nào của i
nếu tôi < n sau đó //Cho đến khi bộ đếm vòng lặp trở thành giá trị n,
LoopImitation(i + 1, n); //gọi một thể hiện mới của thủ tục, với tham số i+1 (chuyển sang giá trị tiếp theo i)
kết thúc;
Problem
Nghiên cứu chương trình dưới đây và gọi thủ tục với các tham số i=1, n=10 trong chương trình chính
//LoopImitation() thủ tục có hai tham số
// Tham số đầu tiên – bộ đếm bước, tham số thứ hai – tổng số bước
thủ tục LoopImitation(i, n: số nguyên);
bắt đầu
writeln('Xin chao N ', i); // Toán tử được lặp lại với bất kỳ giá trị nào của i
nếu tôi < n sau đó //Cho đến khi bộ đếm vòng lặp trở thành giá trị n,
LoopImitation(i + 1, n); //gọi một thể hiện mới của thủ tục, với tham số i+1 (chuyển sang giá trị tiếp theo i)
kết thúc;
bắt đầu
// ở đây cần gọi thủ tục với các tham số i=1, n=10
kết thúc.
Запрещенные операторы: for;while;until