1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Vòng lặp while, do while, for (NHẬP môn về lập TRÌNH SLIDE)

83 50 0

Đ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 83
Dung lượng 0,94 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhập môn về lập trình C5 Slide 9Vòng lặp while Lưu đồ vận hành condition condition Statement Sai Đúng Điều kiện đi trước Kết thúc lặp... Lặp dựa trên biến đếm Kỹ thuật sử dụng m

Trang 1

Nhập môn về lập trình (C5) Slide 1

Chương 5

Vòng lặp

while / do-while / for

Presenter:

Trang 2

Learning outcomes

L.O.3.1 – Liệt kê được các kiểu điều khiển và vẽ sơ đồ mô

tả chúng

L.O.3.2 – Mô tả được được nguyên tắc kết hợp các kiểu

điều khiển để mô tả các giải thuật

L.O.3.3 – Hiện thực được các kiểu điều khiển bằng ngôn

ngữ C

L.O.3.4 – Sử dụng các cấu trúc điều khiển để giải quyết bài

toán thực tế

Trang 6

 Có thể phân loại vòng lặp theo các tiêu chuẩn sau :

• Điều kiện : đi trước hoặc đi sau.

• Số lần lặp : biết trước hoặc không biết trước.

Trang 8

Vòng lặp while

Cú pháp : while ( condition ) statement

Nghĩa là : trong khi điều kiện condition còn đúng thì làm phát biểu statement

Trang 9

Nhập môn về lập trình (C5) Slide 9

Vòng lặp while

Lưu đồ vận hành

condition condition

Statement

Sai

Đúng

Điều kiện đi trước

Kết thúc lặp

Trang 11

Nhập môn về lập trình (C5) Slide 11

Vòng lặp while

Trang 13

while biểế n đểế m nhoổ hơn hoặc bằng 10

yểu cầầ u người dùng nhập giá trị tiểế p theo đọc giá trị

cộng giá trị này vào total cộng biểế n đểế m lển 1

giá trị trung bình bằng total chia cho 10

in giá trị trung bình

Trang 14

Lặp dựa trên biến đếm

 Kỹ thuật sử dụng một biến để đếm số lần lặp

 Vòng lặp dừng khi biến đếm vượt quá một số cho trước

 Gọi là lặp dựa trên biến đếm (counter-controlled

repitition)

 Lặp hữu hạn vì biết trước số lần lặp

Trang 16

Lặp dựa trên biến đếm

Trang 17

 Khác với bài toán trước:

• Chúng ta không biết trước số lần nhập

• Làm sao biết khi nào dừng nhập điểm?

Trang 18

Lặp dựa trên biến cờ

 Dùng biến cờ (sentinel) để báo kết thúc nhập

 Giá trị biến cờ phải không lẫn lộn với giá trị nhập vào có nghĩa

• Điểm là số nguyên không âm

Trang 19

Nhập môn về lập trình (C5) Slide 19

Từ trên xuống, tinh chỉnh từng bước

 Kỹ thuật xây dựng ứng dụng có cấu trúc chặt chẽ

Trên là một câu lệnh thể hiện chức năng chung của ứng

dụng

xác định điểổ m trung bình cuổ a lớp

 Chỉ thể hiện ứng dụng, chưa đủ để viết ứng dụng C#

 Bắt đầu tinh chỉnh

Trang 20

Từ trên xuống, tinh chỉnh từng bước

Chia trên thành các tác vụ nhỏ hơn và liệt kê theo thứ tự

thực hiện

Bước tinh chỉnh đầu tiên:

khơổ i tạo biểế n nhập giá trị, tính tổổ ng lại rổầ i đểế m sổế điểổ m đã nhập tính toán và in ra điểổ m trung bình

 Mỗi lần tinh chỉnh mô tả cùng giải thuật, chỉ khác về mức

độ chi tiết

 Ba bước chung: khởi tạo, nhập và xử lý biến, tính toán

và xuất kết quả

Trang 22

Từ trên xuống, tinh chỉnh từng bước

 Cần lặp nhưng không biết số lần lặp

while người dùng chưa nhập biểế n cờ

thểm điểổ m vào total cộng biểế n đểế m lển 1 nhắế c người dùng nhập điểổ m tiểế p nhập điểổ m tiểế p (có thểổ là biểế n cờ)

Trang 23

Nhập môn về lập trình (C5) Slide 23

Từ trên xuống, tinh chỉnh từng bước

 Kiểm tra biến đếm khác 0 để phòng trường hợp ứng dụng

in "Khổng thầế y điểổ m nhập"

Trang 24

Từ trên xuống, tinh chỉnh từng bước

int grade, total, counter;

Trang 25

Nhập môn về lập trình (C5) Slide 25

Từ trên xuống, tinh chỉnh từng bước

Trang 26

Phép chia số nguyên

 Ta đã biết rằng phép chia số nguyên trả về phần nguyên, lược bỏ phần thập phân

float average;

average = total / counter;

 Dù average có kiểu float, phép chia vẫn không phải

 Chuyển đổi tạm thời các giá trị của total và counter thành kiểu float.

Trang 27

Nhập môn về lập trình (C5) Slide 27

Phép chia số nguyên

 Toán tử ép kiểu một ngôi

average = ( float ) total / counter;

 Tạo ra một bản sao total (ở bên phải toán tử) tạm có kiểu số thực dấu chấm động

 Giá trị lưu trong total vẫn là số nguyên

 Sử dụng toán tử ép kiểu gọi là chuyển đổi tường minh

Trang 28

Toán tử gán phức

 Một biểu thức

biểế n = biểế n toánTưổ biểổ uThức;

 Nếu toánTử là một trong các phép toán +, -, *, /, %

 Đều có thể viết lại dưới dạng

biểế n toánTưổ = biểổ uThức;

Toán tử gán phức

Trang 30

Toán tử tăng và giảm

 C có hai toán tử để thêm hoặc bớt 1 vào giá trị của một biến kiểu số

 Toán tử tăng ++

 Toán tử giảm

 Đặt toán tử ở trước số hạng gọi là prefix

 Đặt toán tử ở sau số hạng gọi là postfix

 Có sự khác nhau giữa prefix và postfix

Trang 31

Nhập môn về lập trình (C5) Slide 31

Toán tử tăng và giảm

// demonstrate postfix increment operator

Trang 32

Vòng lặp while

Ví du

 Tính tổng các số nguyên S = 1 + 2 + 3 + + n

 Để có thể sử dụng vòng lặp, ta cần đưa công thức tính dãy về dạng “từng bước”: S(n) = G[S(n-1)]

 Theo dạng này, muốn tính giá trị bước thứ n, phải có giá trị bước thứ (n-1)

 Xuất phát của vòng lặp là từ bước n=0

 Ta có thể viết lại tổng trên như sau:

S(n) = 1 + 2 + 3 + + (n-1) + n (1)mặt khác ta cũng có:

S(n-1) = 1 + 2 + + (n-2) + (n-1) (2)Vậy, từ (1) và (2) ta suy ra:

Trang 33

• Điều khiển vòng lặp while: i <= n (trong khi i chưa bằng n thì vẫn lặp)

Trang 34

Vòng lặp while

Ví du

Trang 35

Nhập môn về lập trình (C5) Slide 35

Vòng lặp do-while

 Tương tự như câu lệnh while

 Kiểm tra điều kiện lặp-tiếp tục sau khi thực hiện thân

while ( điềềuKiện );

Trang 36

Vòng lặp do-while

Cú pháp và vận hành

Cú pháp : do statement while ( condition ) ;

Nghĩa là : làm phát biểu statement trước 1 lần, sau đó xét điều kiện condition, nếu đúng thì lặp, sai kết thúc

thúc.

• statement có thể là phát biểu ghép { }.

Vòng lặp do-while là vòng lặp có điều kiện đi sau và số lần lặp không biết trước

Trang 37

Nhập môn về lập trình (C5) Slide 37

Vòng lặp do-while

Lưu đồ vận hành

condition condition

Statement

Sai

Đúng

Điều kiện đi sau

Kết thúc lặp

Trang 39

• Kiều kiện lặp:

(i<=n)

Trang 40

Vòng lặp do-while

Code ví du tính giai thừa

Trang 41

Nhập môn về lập trình (C5) Slide 41

Vòng lặp for

 Nhắc lại: lặp dựa trên biến đếm đòi hỏi:

• Biến điều khiển (biến đếm số lần lặp)

• Giá trị ban đầu của biến điều khiển

• Độ tăng (hoặc giảm) của biến điều khiển sau mỗi lần lặp

• Điều kiện lặp-tiếp tục xác định xem có tiếp tục lặp hay không

Trang 43

Nhập môn về lập trình (C5) Slide 43

Vòng lặp for

test the condition ?

Execute the statement (s)

false true

Initialization expression

Exit the for

statement

Enter the for statement

Execute the update statement

Trang 44

Vòng lặp for

 C cung cấp câu lệnh lặp for

 Xác định các yếu tố lặp dựa trên biến đếm chỉ trong một dòng

for ( int counter = 1; counter <= 10; counter++ )

chấm phẩy bắt buộc

Trang 45

Nhập môn về lập trình (C5) Slide 45

Vòng lặp for

Cú pháp và vận hành

Cú pháp : for (init opt ; cond opt ; loop opt ) statement

Nghĩa là : làm phát biểu statement trong khi điều kiện

condopt còn đúng

• init opt : là phát biểu khởi động vòng lặp.

• loop opt : là phát biểu điều khiển vòng lặp.

• statement : có thể là phát biểu ghép.

Vòng lặp for cho phép thực hiện vòng lặp có số lần lặp

biết trước nếu dùng các dạng sau :

for (đếm=cậndưới ; đếm<=cậntrên ; tăng đếm ) statement

for (đếm=cậntrên ; đếm>=cậndưới ; giảm đếm ) statement

Trang 46

Kết thúc lặp

Trang 49

 Với p là số tiền gốc ban đầu, r là lãi suất, n là số năm

 Hãy in ra số tiền trong 10 năm đầu

Trang 50

amount = principal*pow(1.0 + rate, year);

printf("%d\t%.3f\n", year, amount);

}

Trang 51

Nhập môn về lập trình (C5) Slide 51

Vòng lặp for

Trang 56

Các lệnh lặp lồng nhau

Trang 57

}

Trang 58

Các lệnh lặp lồng nhau

Trang 60

Các lệnh lặp lồng nhau

Trang 61

Nhập môn về lập trình (C5) Slide 61

Các lệnh lặp lồng nhau

 Có thể sử dụng các lệnh for, while, do … while lồng nhau

 Số cấp lồng nhau có thể tùy ý

 Có thể sử dụng các lệnh for, while, do … while hỗn hợp với nhau

Trang 63

Nhập môn về lập trình (C5) Slide 63

break

 Dùng break trong while, for, do while, switch

để thoát lập tức khỏi vòng lặp

 Thực hiện lệnh kế tiếp sau vòng lặp

 Chủ yếu để thoát sớm khỏi vòng lặp

Trang 64

 Dùng continue trong while, for, do while

 Bỏ các câu lệnh còn lại trong thân vòng lặp

 Thực hiện lần lặp tiếp theo

 while và do while: kiểm tra điều kiện ngay

 for: tăng biến đếm, rồi kiểm tra điều kiện

Trang 66

Vòng lặp for

Ví du sắp thứ tự dãy

Trang 67

Nhập môn về lập trình (C5) Slide 67

Vòng lặp for

Nhập trị ban đầu và xử lý dãy

 Một trong những ứng dụng phổ biến của for là dùng để xử

lý các vấn đề liên quan đến dãy (array)

Trang 71

False False false False True false True False false True True True

Trang 74

Toán tử điều kiện AND (&&)

 Đảm bảo hai điều kiện phải cùng true thì mới thực hiện một luồng thực thi

if ( gender == FEMALE && age >= 65 )

seniorFemales++;

 Khi một trong hai điều kiện là false, không tăng biến

seniorFemales

Trang 75

Nhập môn về lập trình (C5) Slide 75

Toán tử điều kiện OR (||)

 Thực thi nếu chỉ cần một trong hai điều kiện là true

if ( ( semesterAverage >= 90 ) || ( finalExam >= 90 ) )

printf( "Student grade is A" );

 Khi cả hai điều kiện đều sai thì mới không thực thi câu lệnh in ra console

 Toán tử && có độ ưu tiên cao hơn toán tử ||, đều kết hợp từ trái qua

Trang 76

Thứ tự ưu tiên

-1 ! unary - ++ từ phải sang trái

4 < <= > >= từ trái sang phải

8 = += -= *= /= từ phải sang trái

Trang 78

true

Trang 81

Trâu già 3 con ăn 1 bó,

Hỏi có bao nhiêu trâu đứng, trâu nằm, trâu già!

Trang 83

Nhập môn về lập trình (C5) Slide 83

Ví du

Ngày đăng: 29/03/2021, 13:26

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w