Trong bài này chúng ta sẽ tìm hiểu về vòng lặp For .. Do trong Pascal, đây là vòng lặp cơ bản và được sử dụng nhiều nhất trong lập trình Pascal. Show Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Trong pascal hiện có va vòng lặp chính, thứ nhất là for, thứ hai là vòng lặp while và cuối cùng là repeat. Mỗi loại có cú pháp khác nhau và tính chất khác nhau. Sau đây ta sẽ nói đến for trước. 1. Vòng lặp For .. do trong PascalVòng lặp for .. do là một cấu trúc điều khiển cho phép bạn viết một chương trình có tính lặp đi lặp lại với số lần cụ thể. Cú pháp của nó như sau: for <variable-name> := <initial_value> to <down_to> <final_value> do S; Trong đó:
HÌnh: internet Giả sử bạn muốn in ra các số từ 1 đến 5 thì có thể viết theo cách thông thường như sau: Bài viết này được đăng tại [free tuts .net] program forLoop; begin writeln('1'); writeln('2'); writeln('3'); writeln('4'); writeln('5'); end. Nhưng nếu mình muốn in ra từ 1 đến 1000, thậm chí là 1.000.000 lần thì phải làm sao? Nếu viết thủ công như vậy thì là điều rất khó, mất khá nhiều thời gian. Áp dụng cấu trúc vòng lặp for thì mình sẽ viết lại bài này như sau: program forLoop; var a: integer; begin for a := 1 to 5 do begin writeln('Gia tri cua a la: ', a); end; end. Các bước thực hiện như sau:
Kết quả in ra màn hình các số từ 1 đến 5. Gia tri cua a la: 1 Gia tri cua a la: 2 Gia tri cua a la: 3 Gia tri cua a la: 4 Gia tri cua a la: 5 2. Vòng lặp for .. do lồng nhauTrong pascal bạn có thể đặt vòng lặp for này nằm trong vòng lặp for khác để tạo ra cấu trúc lồng nhau. Lúc này tổng số lần lặp sẽ là cấp số nhân giữa vòng lặp ngoài (cha) và vòng lặp trong (con). Ví dụ vòng lặp cha lặp từ 1 đến 5, vòng lặp con lặp từ 1 đến 10 thì tổng số lần lặp là 5 x 10 = 50. Cấu trúc cú pháp cơ bản như sau: for a := 1 to 5 do begin for b := 1 to 10 do begin ... end; end; Trong đó các số điều khiển vòng lặp có thể thay đổi theo yêu cầu của bài toán bạn cần lập trình. Ví dụ: Mình cần in ra bảng cửu chương thì có thể viết như sau: program IfThenPascal; var a: integer; b: integer; begin for a := 2 to 9 do begin for b := 1 to 9 do begin writeln(a, ' x ', b, ' = ', (a * b)); end; end; readln; end. Chạy chương trình này bạn sẽ thu được kết quả như sau: Trên là kiến thức cơ bản của vòng lặp for trong Pascal. Đây là một vòng lặp rất quan trọng không chỉ ở Pascal mà ở bất kì một ngôn ngữ khác, vì vậy bạn cần phải hiểu ý nghĩa của nó để áp dụng, cũng như sau này sẽ phân biệt với các vòng lặp while và repeat. 1.1. Mục đích, yêu cầu
1.2. Nội dunga. Ôn tập kiến thứcCú pháp: For < biến đếm >:= < giá trị đầu > to < giá trị cuối > do < câu lệnh >; Trong đó:
Ý nghĩa: Khi thực hiện, biến đếm sẽ nhận giá trị là giá trị đầu, sau mỗi vòng lặp, biến đếm sẽ tự động tăng thêm một đơn vị cho đến khi bằng giá trị cuối thì dừng lại. b. Thực hànhBài 1. Viết chương trình in ra màn hình bảng nhân của một số từ 1 đến 9, số được nhập từ bàn phím và dừng màn hình để có thể quan sát kết quả.a. Khởi động Pascal. Gõ chương trình sau và tìm hiểu ý nghĩa của từng câu lệnh trong chương trình; uses crt; var N,i:integer; begin clrscr; write('Nhap so N='); readln(N); writeln; writeln('Bang nhan ',N); writeln; for i:=1 to 10 do writeln(N,' x ', i:2,' = ',N*i:3); readln; end. b. Lưu chương trình với tên BANGNHAN.PAS; c. Dịch và chỉnh sửa các lỗi gõ, nếu có; d. Chạy chương trình với các giá trị nhập vào lần lượt bằng 1, 2, …,10. Quan sát kết quả nhận được trên màn hình. Gợi ý làm bài: Kết quả in ra màn hình: Hình 1. Kết quả in ra màn hình bảng nhân 6 Nhận xét kết quả trên:
Bài 2. Chỉnh sửa chương trình để làm đẹp kết quả trên màn hình như hình dưới đây:Hình 2. Kết quả in ra màn hình bảng nhân 7 Gợi ý làm bài: Chương trình: uses crt; var N,i:integer; begin clrscr; write('Nhap so N='); readln(N); writeln; writeln('Bang nhan ',N); writeln; for i:=1 to 10 do begin GotoXY(5,WhereY); writeln(N,' x ',i:2,' = ',N*i:3); writeln; end; readln end. Các câu lệnh được thêm vào:
Lưu ý: Chỉ sử dụng được các lệnh GotoXY(a,b), WhereX, WhereY sau khi đã khai báo thư viện crt; của Pascal. Bài 3. Cũng như câu lệnh if, có thể dùng câu lệnh for lồng trong một câu lệnh for khác khi thực hiện lặp. Sử dụng các câu lệnh for…do lồng nhau để in ra màn hình các số từ 0 đến 99 theo dạng bảng như hình sau:Hình 3. Kết quả in ra màn hình các số từ 0 đến 99 Gợi ý làm bài: Chương trình: Program Tao_bang; Uses Crt; Var i: byte; {chi so cua hang} j: byte; {chi so cua cot} Begin Clrscr; {xoa man hinh} For i:=0 to 9 do {viet theo tung hang} begin For j:=0 to 9 do {viet theo tung cot tren moi hang} write(10*i+j:4); {viet cac so ij ra man hinh} writeln; {xuong hang moi} end; {xong hang thu i} readln; {dung chuong trinh de xem ket qua} end. |