1. Trang chủ
  2. » Giáo án - Bài giảng

câu lệnh while do

18 1K 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 418,5 KB

Nội dung

* Trả lời: + Cấu trúc của câu lệnh rẽ nhánh: - Dạng khuyết: IF THEN ; - Dạng đủ: IF THEN ELSE ; + Câu lệnh rẽ nhánh được thực hiện khi: -Khi một công việc chỉ được thực hiện trong

Trang 1

Nhãm sinh viªn thùc hiÖn

TrÇn ThÞ LÖ An

Lª NguyÔn Thóy H»ng NguyÔn Nh­ Hång Chu ThÞ Quúnh Nga

§oµn ThÞ DiÔm Thi

Trang 2

Các ví dụ áp dụng

Trang 3

* Câu hỏi:

-Nêu cú pháp của câu lệnh rẽ nhánh dạng khuyết và dạng đầy đủ ?

-Câu lệnh rẽ nhánh được vận dụng trong trường hợp nào ?

* Trả lời:

+ Cấu trúc của câu lệnh rẽ nhánh:

- Dạng khuyết: IF <điều kiện> THEN <câu lệnh>;

- Dạng đủ:

IF <Điều kiện> THEN <câu lệnh1> ELSE <câu lệnh 2>;

+ Câu lệnh rẽ nhánh được thực hiện khi:

-Khi một công việc chỉ được thực hiện trong một điều kiện cụ thể

nào đó thì cần sử dụng tổ chức rẽ nhánh

Trang 4

1 Lặp:

*Bài toán 1: Tính và đưa ra kết quả màn hình tổng:

Cho đến khi

Em hãy cho biết dữ liệu vào và dữ liệu ra của bài toán ? Với điều kiện nào thì việc tính tổng sẽ dừng lại ?

1

2

1 1

1 1

+ +

+

+ +

+ +

+

=

n a a

a a S

0001

0

1 <

+ n a

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 5

*Ý tưởng:

- Input: a

- Output: S

- Xuất phát: S:=1/a

- Sau đó: S:=S+ 1/(a+n)

Việc tính tổng S này được thực hiện lặp lại một số lần chưa biết trước

Kết thúc lặp khi thoả mãn điều kiện: 1/(a+n)<0.0001

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 6

Mô hình minh hoạ:

1/a+1/(a+1)

1

S:=S+1/a+1 S:=S+1/(a+2)

S:=S+1/(a+2)+…+…

n

1/a+1/(a+1)+1/(a+2)

2

1/a+1/(a+1)+…+1/(a+n)+…

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 7

Đối với bài toán này nếu sử dụng CL: If…then để giải thì sẽ được tổ chức như thế nào ?

Ngoài ra chúng ta còn có các câu lệnh để thực hiện thuật toán lặp như vậy Vậy ta phải sử dụng câu lệnh lặp While-Do

2 Lặp với số lần chưa biết trước và câu lệnh While-Do

*Cú pháp: WHILE <Điều kiện> DO <Câu lệnh>;

*Trong đó:

Từ khoá: While, Do Điều kiện: là biểu thức quan hệ hoặc logic.

Câu lệnh: Là một câu lệnh của TP

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 8

*Cách thực hiện:

+Nếu <Điều kiện> có giá trị đúng (T) thì thực hiện <Câu lệnh> ngay

sau Do rồi quay lại kiểm tra <Điều kiện> và quá trình tiếp tục.

+Nếu <Điều kiện> có giá trị sai (F) thì kết thúc câu lệnh này, tiếp tục

chương trình

*Lưu ý: Điều kiện sau Do nếu cần thực hiện một lệnh ghép thì các

câu lệnh sau Do đó thì phải đặt chúng giữa Begin…end;

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 9

*Sơ đồ giải thuật:

Điều kiện

Câu lệnh

T

F

Không thực hiện câu lệnh sau Do

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 10

*Giải thích sơ đồ:

Câu lệnh WHILE – DO là câu lệnh chưa biết trước số lần lặp, nó chứa một biểu thức điều kiện để điều khiển thực hiện một câu lệnh đơn hoặc ghép

<Câu lệnh> viết sau từ khoá DO được thực hiện khi biểu thức <điều kiệ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 - 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.

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 11

Qua sơ đồ giải thuật này em hãy cho biết sự khác nhau giữa sơ đồ giải thuật giữa câu lệnh rẽ nhánh If - Then và câu lệnh While-Do ?

+CL rẽ nhánh chỉ thực hiện kiểm tra Điều kiện một lần

+CL While-Do thực hiện kiểm tra Điều kiện, nếu Điều kiện sai thì không thực hiện câu lệnh sau Do, nếu điều kiện đúng thì thực hiện câu lệnh sau Do và quay lại kiểm tra Điều kiện

Sự khác nhau đó là:

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 12

+Lệnh sau Do có thể không thực hiện lần nào cả.

+Câu lệnh While có thể bị lặp vô hạn Khi thực hiện chương trình bị lặp

vô hạn thì nhấn tổ hợp phím Ctrl+ Break để thoát và sửa chương trình

+Lệnh sau Do cần có câu lệnh làm thay đổi giá trị của biến trong <điều kiện > để <điều kiện> có giá trị sai sau một số lần lặp hữu hạn

+Tránh lặp vô hạn ta có thể dùng CL rẽ nhánh: If <điều kiện> then break; để thoát lặp vô hạn

*Chú ý:

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 13

Ví dụ 1:

Bài toán 1:Ta sẽ dùng những biến:

S: để lưu tổng cần tính

a: để lưu giá trị được nhập vào (a cố định)

A là số nguyên lớn hơn 2

n: chứa số tự nhiên cần cộng vào

3 Các ví dụ áp dụng:

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 14

Nhập a;

S:=1/a;

N:=0;

1/

(a+n)>=0.0001

n:=n+1;

S:=S+1/(a+n)

F

T

*Sơ đồ giải thuật:

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 15

Chương trình

Program TTong;

Uses crt;

Var S: Real;

a, n:integer;

Begin

Write(‘hay nhap gia tri a vao:’);

Readln(a);

S:=1/a;

n:=0;

While 1/(a+n)>=0.0001 do

{While not (1/(a+n)<0.0001) do}

Begin

n := n + 1;

Writeln(‘ tong S la:’,S);

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Trang 16

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

+ Nếu a nhập vào đã lớn, với n=0 thì câu lệnh sau Do có được thực hiện hay không? Vì sao?

+ Nếu giữa Begin …end; trong lệnh While ta bỏ dòng lệnh n:=n+1 thì việc thực hiện câu lệnh While sẽ như thế nào ?

+ Để CL sau While dừng lại sau một số lần lặp hữu hạn thì ta cần làm gì ?

Trang 17

Ví dụ 2: Tìm UCLN của hai số nguyên dương m và n.

Sau đây là một giải thuật:

B1: Nếu m=n thì UCLN(m,n):=m; kết thúc

B2: Nếu m>n thì m:=m-n rồi quay lại B1, ngược lại n:=n-m rồi quay lại B1

Chương trình:

Program UCLN;

Var m, n: integer;

Clrscr;

Write(‘ m, n:’); Readln(m,n);

While m<>n do

If m>n then m:=m-n else n:=n-m;

Writeln(‘UCLN:’,m);

End.

Lặp

Lặp với số lần

chưa biết trước

Các ví dụ áp dụng

Ngày đăng: 19/09/2013, 03:10

HÌNH ẢNH LIÊN QUAN

Mô hình minh hoạ: - câu lệnh while do
h ình minh hoạ: (Trang 6)

TỪ KHÓA LIÊN QUAN

w