Trường Đại học Điện lực Tập đoàn Điện lực Việt Nam


Câu lệnh lặp xác định FOR 6.3.1. Ý nghĩa



tải về 1.67 Mb.
trang29/48
Chuyển đổi dữ liệu18.07.2016
Kích1.67 Mb.
#1821
1   ...   25   26   27   28   29   30   31   32   ...   48

6.3. Câu lệnh lặp xác định FOR

6.3.1. Ý nghĩa:


Câu lệnh lặp là câu lệnh mà cho phép thực hiện lặp đi lặp lại nhiều lần một số công việc. Câu lệnh FOR là câu lệnh cho phép lặp với số lần lặp biết trước.

6.3.2 Câu lệnh FOR tiến (Dạng 1)


6.3.2.1 Cú pháp

For Biến_điều_khiển:= to do ;

Trong đó:



  • Biến_điều_khiển, , phải là dữ liệu kiểu vô hướng đếm được như kiểu số nguyên, kiểu ký tự, kiểu logic...

  • có thể là một lệnh hoặc một khối lệnh.


6.3.1.2 Sự hoạt động
Bước 1: Biến_điều_khiển được khởi tạo là

Bước 2: Kiểm tra điều kiện Biến_điều_khiển có nhỏ hơn hay bằng (<=) Giá_trị_cuối hay không,

Nếu đúng thực hiện bước 3, nếu sai thực hiện bước 4.



Bước 3:

Bước 3.1: Thực hiện

Bước 3.2: Gán giá trị ngay sau cho Biến_điều_khiển bằng succ(của biến điều khiển ở bước trước)

Bước 3.3: Quay lại bước 2.



Bước 4: Ra khỏi vòng lặp For
Chú ý: Giá trị đầu thường là <= giá trị cuối, tuy nhiên nếu giá trị đầu > giá trị cuối thì vòng lặp sẽ dừng ngay khi kiểm tra điều kiện đầu tiên.

6.3.2.3 Lưu đồ thể hiện sự hoạt động



Hình 6.4. Lưu đồ hoạt động của

vòng lặp xác định FOR tiến

6.3.2.4. Ví dụ

Ví dụ_6.6: Tính tổng S=1+1/2+1/3+...+1/n . Biết rằng n là một số nguyên dương được đọc vào từ bàn phím.

Program VIDU_6_6; { Chuong trinh su dung FOR tien }

Uses Crt;

Var i, n: Integer;

s: Real;

BEGIN


ClrScr;

Write('Nhap n= '); ReadLn(n);

s:=0;

For i:=1 to n do



s:=s+1/i;

WriteLn('Tong S= ',s:8:3);

ReadLn;

END.

6.3.3 Câu lệnh FOR lùi (Dạng 2)


6.3.3.1 Cú pháp

For Biến_điều_khiển:= to do ;

Trong đó:



  • Biến_điều_khiển, , phải là dữ liệu kiểu vô hướng đếm được như kiểu số nguyên, kiểu ký tự, kiểu logic...

  • có thể là một lệnh hoặc một khối lệnh. Nếu là một khối lệnh thì phải được đặt trong Begin ... End;

  • Thường thì giá_trị_đầu >= giá_trị_cuối.

6.3.3.2 Sự hoạt động

Bước 1: Biến_điều_khiển được khởi tạo bằng

Bước 2: Kiểm tra điều kiện Biến_điều_khiển lớn hơn hay bằng (>=)

Nếu đúng thực hiện bước 3, nếu sai thực hiện bước 4.



Bước 3:

Bước 3.1: Thực hiện

Bước 3.2: Gán giá trị cho Biến_điều_khiển bởi pred (biến điều khiển ở bước trước)

Bước 3.3: Quay lại bước 2.



Bước 4: Ra khỏi vòng lặp For

6.3.3.3 Lưu đồ thể hiện sự hoạt động

Hình 6.5. Lưu đồ hoạt động

của vòng lặp xác định FOR lùi

Ví dụ 6.7: Xét ví dụ 6.6 nhưng sử dụng câu lệnh FOR lùi

Program VIDU_6_7;

Uses Crt;

Var i, n: Integer;

s: Real;

BEGIN


ClrScr;

Write('Nhap n= '); ReadLn(n);

s:=0;

For i:=n downto 1 do s:=s+1/i;



WriteLn('Tong S= ',s:8:3);

ReadLn;


END.
Ví dụ 6.8: Minh hoạ cho việc sử dụng biến điều khiển có kiểu CHAR: Viết chương trình in ra màn hình 2 dòng: dòng thứ nhất in các chữ thường a z, dòng thứ hai in các chữ IN HOA từ Z A.
Program vidu_6_8;

Uses Crt;

Var ch: Char;

BEGIN


ClrScr;

WriteLn('In cac ky tu viet thuong tu a ==> z');

For ch:='a' to 'z' do Write(ch:3);

WriteLn;


WriteLn;

WriteLn('In cac ky tu viet IN HOA tu Z ==> A');

For ch:='Z' downto 'A' do Write(ch:3);

WriteLn;


ReadLn;

END.

6.4. Câu lệnh lặp không xác định WHILE và REPEAT

6.4.1 Ý nghĩa


Rất nhiều trường hợp bài toán cần phải lặp đi lặp lại một hoặc một số công việc song lại không thể xác định được là phải lặp bao nhiêu lần, do vậy không thể dùng lệnh FOR được. Pascal cung cấp 2 lệnh là REPEAT và WHILE để lặp cho những trường hợp không biết trước số lần lặp.

6.4.2 Câu lệnh lặp không xác định kiểm tra điều kiện sau REPEAT


Câu lệnh REPEAT là câu lệnh lặp thực hiện công việc trước, kiểm tra điều kiện sau. Câu lệnh này thường được sử dụng trong những bài toán mà ta chỉ biết một điều kiện kiểm tra, cần lặp đi lặp lại công việc cho đến khi điều kiện này được thỏa mãn. Những trường hợp như tính toán thỏa mãn sai số cho trước, chạy thử một chương trình nhiều lần để kiểm tra mà chỉ cần ấn Ctrl+F9 một lần, chương trình chỉ dừng khi ta chọn K hoặc k cho câu hỏi “Co tiep tuc nua khong? (C/K)” hay nhấn phím ESC cho câu hỏi “Co tiep tuc nua khong? (nhan ESC de dung),… Thực hiện câu lệnh REPEAT - UNTIL như sau:

6.4.2.1 Cú pháp

Repeat

;

Until <Điều kiện>;

Trong đó:



  • <Điều kiện> là một biểu thức logic, trả về giá trị TRUE hoặc FALSE

  • Có thể là một lệnh hoặc một khối lệnh

6.4.2.2 Sự hoạt động

i) Thực hiện công việc Công_việc

ii) Tính giá trị của biểu thức logic điều_kiện,

iii) Nếu sai, quay về bước i),

iv) Nếu đúng, dừng và kết thúc vòng lặp.

6.4.2.3 Lưu đồ thể hiện sự hoạt động

Hình 6.6. Lưu đồ hoạt động của

câu lệnh Repeat

6.4.2.4 Chú ý


  • đặt giữa 2 từ khoá Repeat và Until có thể là một lệnh hoặc một khối lệnh song không cần phải đặt trong Begin...End;

  • Trong khi thực hiện phải có một lệnh làm thay đổi giá trị của một biến thuộc biểu thức logic <Điều kiện> để làm cho biểu thức logic tiến đến TRUE nhằm kết thúc vòng lặp.

  • được thực hiện trước, <Điều kiện> được kiểm tra sau nên ít nhất cũng được thực hiện một lần, ngay cả khi <Điều kiện> đã có giá trị TRUE.

  • Câu lệnh lặp Repeat ... Until cũng dùng được trong trường hợp đã biết trước số lần lặp.

6.4.2.5 Ví dụ

Ví dụ 6.9: Tính tổng S=1+1/2+1/3+...+1/n . Biết rằng n là một số nguyên dương được đọc vào từ bàn phím.

Program VIDU_6_9;

Uses Crt;

Var i, n: Integer;

s: Real;

BEGIN


ClrScr;

Write('Nhap n= '); ReadLn(n);

s:=0; i:=1;

Repeat


s:=s+1/i;

i:=i+1;


Until i>n;

WriteLn('Tong S= ',s:8:3);

ReadLn;

END.


6.4.2.6 Ứng dụng của câu lệnh lặp Repeat ... Until

a) Mẫu 1: dùng để lặp lại việc nhập dữ liệu cho đến khi dữ liệu nhập là hợp lý.

.....


{ Nhập dữ liệu }

Repeat


ClrScr;

Write('Nhap diem thi mon Tin hoc dai cuong DIEM= ');

ReadLn(DIEM);

If (DIEM<0) or (DIEM>10) then

Begin

WriteLn(#7,'Du lieu sai, moi nhap lai');



ReadLn;

End;


Until (DIEM>=0) or (DIEM<=10);

....
b) Mẫu 2: dùng để quay vòng một đoạn hoặc cả một chương trình theo ý muốn.

...

Var


...

TL: Char;

BEGIN

Repeat


ClrScr;

{ Nhập dữ liệu }

....

{ Xử lý }



...

{ In kết quả }

Write('Co thuc hien chuong trinh lan nua khong (C/K)? ');

ReadLn(TL);

Until (TL='k') or (TL='K');

END.


Ví dụ 6.10: Viết chương trình giải phương trình bậc nhất ax+b=0 với các hệ số a, b nhập từ bàn phím có quay vòng.

Program VIDU_6_10;

Uses Crt;

Var a, b, x: Real;

TL: Char;

BEGIN


Repeat

ClrScr;


Write('Nhap he so a= '); ReadLn(a);

Write('Nhap he so b= '); ReadLn(b);


If a<>0 then

Begin


x:=-b/a;

WriteLn('Phuong trinh co nghiem x= ',x:8:3);

End

Else


If b=0 then WriteLn('Phuong trinh co vo so nghiem')

Else WriteLn('Phuong trinh vo nghiem ');

{hoi de lap lai chuong trinh}

Write(’Co thuc hien chuong trinh lan nua khong (C/K)? ’);

ReadLn(TL);

Until (TL=’k’) or (TL=’K’);

END.
c) Mẫu 3: Để xây dựng chương trình điều khiển bảng chọn

Ví dụ 6.11: viết chương trình nhập vào ba số a, b, c cho đến khi chúng thỏa mãn là độ dài của ba cạnh trong một tam giác. Xây dựng menu chọn công việc thực hiên

Công việc 1: tính chu vi tam giác

Công việc 2: tính diện tích tam giác
Program vidu_6_11;

Var a, b, c, S, CV: real;

ch:char;

Begin


Repeat

Write(‘ Nhap ba so a, b, c : ‘);readln(a,b,c);

Until (a+b>c)and(a+c>b)and(b+c>a)and(a>0)and(b>0)and(c>0);

Repeat


Writeln(‘ Cac lua chon: ‘);

Writeln(‘ 0: Thoat khoi chuong trinh!’);

Writeln(‘ 1: Tinh chu vi tam giac, ’);

Writeln(‘ 2: Tinh dien tich tam giac,’);

Write(‘ Lua chon cua ban la : ’);readln(ch);

Case ch of

‘0’: readln;

‘1’: begin

CV:=a+b+c;

Writeln(‘ Chu vi tam giac la CV = ‘,CV:8:2);

end;

‘2’: begin



p:=(a+b+c)/2;

S:=sqrt(p*(p-a)*(p-b)*(p-c));

Writeln(‘ dien tich tam giac la S =’, S:8:2);

end;


Until (ch:=’0’);

End.


Каталог: images
images -> Hướng dẫn sử dụng Dropbox Để sử dụng được Dropbox
images -> BÀi thuyết trình cách xáC ĐỊnh và chế ĐỘ pháp lý CỦa các vùng biển theo công ưỚc của liên hiệp quốc về luật biển năM 19821
images -> Céng hßa x· héi chñ nghÜa viÖt nam Độc lập tự do hạnh phúc
images -> Lúa gạo Việt Nam Giới thiệu
images -> Trung Tâm kt tc-đl-cl
images -> Số: 105/2008/QĐ-ttg CỘng hòa xã HỘi chủ nghĩa việt nam độc lập Tự do Hạnh phúc
images -> ChuyêN ĐỀ ĐẠi số TỔ HỢP, XÁc suất kiến thức cơ bản Đại số tổ hợp
images -> BỘ giáo dục và ĐÀo tạo trưỜng đẠi học luật tp. HỒ chí minh dưƠng kim thế nguyên thủ TỤc phá SẢn các tổ chức tín dụng theo pháp luật việt nam
images -> Review of Condor, Sun Grid Engine and pbs

tải về 1.67 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   25   26   27   28   29   30   31   32   ...   48




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương