Chương 3

Các cấu trúc điều khiển Cấu trúc tuần tự

Cấu trúc điều khiển rẽ nhánh Cấu trúc điều khiển lặp Một số thuật toán cơ bản Thuật toán lặp tổng quát Thuật toán tìm phần tử lớn nhất, phần tử nhỏ nhất

Thuật toán tìm ước số chung lớn nhất Thuật toán kiểm tra số nguyên tố 1

Cấu trúc tuần tự Tuần tự thực thi tiến trình, mỗi lệnh được thực thi theo một chuỗi từ trên xuống, xong lệnh này rồi chuyển xuống lệnh kế tiếp.

Lệnh 1 Lệnh 2 Lệnh 3

2

Ví dụ: Nhập vào 2 số a,b. Tính tổng và hiệu Begin

a, b

Tong = a+b Hieu = a -b Tong Hieu End

3

Cấu trúc điều khiển rẽ nhánh  Cấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện một dãy lệnh nào đó dựa vào kết quả của một điều kiện (biểu thức quan hệ hay biểu thức so sánh) Gồm 2 dạng:  Chỉ xét trường hợp đúng if (biểu thức điều kiện) { ; } Nếu biểu thức điều kiện cho kết quả true thì thực hiện khối lệnh bên trong if 4

Ví dụ VÝ dô: T×m sè lín nhÊt trong hai sè nhËp tõ bµn phÝm. ThuËt to¸n: Khai b¸o biÕn a, b, max kiÓu nguyªn NhËp gi¸ trÞ cho hai biÕn a vµ b G¸n max =a // gi¶ sö a lµ sè lín nhÊt NÕu b > max th× max =b In kÕt qu¶ max. 5

Chương trình:

6

Cấu trúc điều khiển rẽ nhánh Xét cả hai trường hợp đúng và sai: if (biểu thức điều kiện) { ; } else { ; } Nếu biểu thức điều kiện cho kết quả true thì thực hiện khối lệnh 1, ngược lại thì cho thực hiện khối lệnh thứ 2 7

Điều kiện khi dùng if Các phép toán logic >, >= , < , <= == So sánh bằng != So sánh khác. ! phép phủ định Ví dụ: if (a > b) if(a!=b) 8

Ví dụ: Nhập vào số nguyên a và b, nếu a là bội số của b thì in thông báo “a là la boi so cua b”, ngược lại in “a khong la boi so cua b” printf(“Nhap vao a:”); scanf(“%d”,&a); printf(“ Nhap vao b:”); scanf(“%d”,&b); if(a%b==0)

else { printf(“a khong la boi so cua b”); }

9

{ printf(“a la boi so cua b”); }

9

Cài đặt:

10

Khi có nhiều hơn 1 điều kiện  Phép toán Và (&&) Là ĐÚNG khi tất cả điều kiện đưa vào là đúng. A

B

KQ

1

1

1

1

0

0

0

1

0

0

0

0 11

Khi có nhiều hơn 1 điều kiện  Phép toán Hoặc (||) Là SAI khi tất cả điều kiện đưa vào là SAI. A

B

KQ

1

1

1

1

0

1

0

1

1

0

0

0 12

Ví dụ Nhập vào điểm Toán, Lý, Hoá. Tính ĐTB, sau đó xét ĐTB Nếu DTB>=8 thì xếp loại giỏi Nếu 8 > ĐTB >=5 thì xếp loại khá còn lại là trung bình DTB = (T+L+H)/3; if (DTB>=8) printf(“Gioi”); else if (DTB>=5) && (DTB<8) printf(“Kha”); else printf(“TB”);

13

Nhầm lẫn khi dùng if #include void main() { clrscr(); int number; printf(“Nhap vao mot so nguyen duong:”); scanf(“%d”,&number); if (number % 2=0) printf(“%d la so chan\n”,number); else printf(“%d la so le\n”,number); }

• Chương trình trên sai ở đâu?

14

Chú ý khi dùng if-else  Câu lệnh if-else lồng nhau  else sẽ kết hợp với if gần nhất chứa có else  Trong trường if bên trong không có else thì phải viết nó trong cặp dấu {} để tránh sự kết hợp else if sai.  Ví dụ: giả sử biến so1 =3, so2=5, so3=10, a = 1 if (so1>0) if (so2 > so3) a = so2; else a = so3;

Kết quả?????

if (so1>0) { if (so2 > so3) a = so2; } else a = so3;

15

Cấu trúc lựa chọn (switch…case) switch (biểu thức)





case n1 : các câu lệnh ; break ; case n2: các câu lệnh ; break ; ……… case nk : ; break ; [default: các câu lệnh]

Trường hợp giá trị biểu thức bằng n1 Trường hợp giá trị biểu thức bằng n2

Trường hợp giá trị biểu thức bằng nk Các trường hợp còn lại (ko bắt buộc) 16

Với:  ni: các hằng số nguyên hoặc ký tự.  Nếu giá trị của biểu thức = ni  thực hiện câu lệnh sau case ni.  Nếu giá trị biểu thức khác tất cả các giá trị ni  thực hiện câu lệnh sau default nếu có hoặc thoát khỏi switch.

 Khi chương trình đã thực hiện xong câu lệnh của case ni nào đó thì nó sẽ thực hiện luôn các lệnh thuộc case bên dưới nó mà không xét lại điều kiện (do các ni được xem như các nhãn)  Vì vậy, để chương trình thoát khỏi lệnh switch sau khi thực hiện xong một trường hợp, ta dùng lệnh break.

17

Ví dụ In ra màn hình học lực của học sinh theo thang điểm như sau: Từ 0 -> 3: Kém, 4: Yếu, 5-> 6: Trung bình, 7 -> 8: Khá, 9 -> 10: Giỏi. switch(diem) { case 0: case 1: case 2: case 3: printf(“Kem\n”); break; case 4: printf(“Yeu\n”); break; case 5: case 6: printf(“Trung binh\n”); break; case 7: case 8: printf(“Kha\n”); break; case 9: case 10: printf(“Gioi\n”); break; default: printf(“Nhap diem sai\n”); } // Kết thúc switch 18

Cấu trúc lặp  Cho phép lặp lại thực hiện 1 công việc nhiều lần.  Có 2 loại:  Lặp với số lần xác định • for  Lặp với số lần không xác định • while • do-while Điều kiện Yes lặp No Lệnh / Khối lệnh 19

Vòng lặp for for ( ; <điều kiện lặp> ; ) { ; } Khởi gán: Dùng để khởi gán giá trị ban đầu cho vòng lặp Điều kiện lặp: Dùng để kiểm tra điều kiện trước khi thực hiện vòng lặp Cập nhật: Dùng để cập nhật vòng lặp (tăng hoặc giảm chỉ số lặp) Bất kỳ biểu thức nào trong 3 biểu thức nói trên đều có thể vắng nhưng phải giữ dấu chấm phẩy (;) 20

Hoạt động Khởi gán

No

Điều kiện lặp

Yes

Lệnh / Khối lệnh Cập nhật vòng lặp

 Bước 1: Khởi gán  Bước 2: Kiểm tra điều kiện - Nếu điều kiện bằng true thì cho thực hiện các lệnh của vòng lặp, thực hiện cập nhật vòng lặp. Quay trở lại bước 2. - Ngược lại thoát khỏi lặp. 21

Ví dụ  Nhập vào một số nguyên dương.Xuất ra số từ 1->n.

22

Ví dụ  Nhập vào một số nguyên dương.Tìm các ước số của nó.

23

Vòng lặp while while ( <điều kiện lặp>)

 lệnh/ khối lệnh;

 Ý nghĩa: Nếu giá trị của điều kiện lặp còn khác 0 (còn đúng) thì còn thực hiện lệnh/ khối lệnh.

Vào thân vòng lặp ít nhất 0 lần. Lưu ý: Cách hoạt động của while giống for 24

Ví dụ  Nhập số nguyên n. In ra dãy số số nguyên từ 1..n

25

Vòng lặp do … while < Khởi gán> do { ; ;

Khởi gán

Lệnh / Khối lệnh

} while (điều kiện); Cập nhật vòng lặp

No

Điều kiện lặp

Ý nghĩa: Yes

Thực hiện cho đến khi giá trị của điều kiện bằng 0 (sai) thì dừng. Vào thân vòng lặp ít nhất 1 26 lần

Ví dụ Nhập số nguyên n. Tính tổng cho tới khi n = 0 thì dừng

27

So sánh các vòng lặp Vòng lặp for/while:  Kiểm tra điều kiện trước thực hiện công việc sau.  Công việc có thể không được thực hiện lần nào.  Vòng lặp kết thúc khi nào điều kiện sai.

Vòng lặp do-while  Thực hiện công việc trước kiểm tra điều kiện sau.  Công việc được thực hiện ít nhất 1 lần.  Vòng lặp kết thúc khi nào điều kiện sai. 28

Câu lệnh đặc biệt  Lệnh return  Khi gặp lệnh return máy sẽ kết thúc hàm chứa nó.  Lệnh break  Dùng để thoát khỏi vòng lặp for, while, do…while hoặc switch-case.  Tiếp tục thực hiện lệnh bên ngoài sau vòng lặp hoặc switch-case nếu có Cần phân biệt với lệnh return là lệnh trả về từ hàm, nghĩa là thoát khỏi hàm đang thi hành, nên cũng giúp thoát luôn khỏi tất cả các vòng lặp. 29

Câu lệnh đặc biệt  Lệnh continue  Trong vòng lặp, khi gặp lệnh continue, chương trình sẽ bỏ qua các câu lệnh sau continue • for: quay lên tính trị cho biểu thức, rồi kiểm tra điều kiện coi có lặp tiếp không. • while/do-while: kiểm tra điều kiện coi có lặp tiếp không.

 Lệnh goto  Cú pháp khai báo goto nhãn;  Khi gặp lệnh goto máy sẽ nhảy tới thực hiện câu lệnh viết sau nhãn.

30

Ví dụ In ra màn hình giá trị từ 10 đến 20 trừ đi số 13 và số 17. #include #include void main() { for (int k = 10; k <= 20; k++) { if (k == 13 || k == 17) continue; //tiếp tục thực hiện for ko thực hiện câu lệnh bên dưới printf("%d\t",k); } getch(); //dừng màn hình xem kết quả } 31

Một số thuật toán lặp Thuật toán lặp tổng quát: Thuật toán lặp tổng quát có dạng:  Lặp i = 1, 2,…, n làm • Gọi một thủ tục xử lý cho lần lặp thứ i  Cuối lặp

32

Thuật toán tìm ước số chung lớn nhất Vấn đề :Viết chương trình nhập từ bàn phím hai số a, b. In ra màn hình ước số chúng lớn nhất. Xác định bài toán

Input: 2 số a và b nguyên dương Output: USCLN(a, b)

33

Thuật toán tìm ước số chung lớn nhất Thuật toán

Bằng mã giả: Bước 1: Kiểm tra a và b Nếu a khác b thì Nếu a > b thì a = a - b, quay lại bước 1 Nếu a
Ngược lại (a=b) chuyển về bước 2 Bước 2: In kết quả và kết thúc 34

Thuật toán tìm ước số chung lớn nhất

Lưu đồ giải thuật

35

Tìm ước số chung của 2 số nguyên dương a, b

36

Thuật toán kiểm tra số nguyên tố Định nghĩa: Số nguyên tố là số tự nhiên chỉ chia hết cho 1 và chính nó. Ví dụ: 2, 3, 5, 7… Vấn đề : Cho một số nguyên dương n. Kiểm tra n có phải là số nguyên tố hay không? Xác định bài toán:  Input: n nguyên dương  Output: kết luận về tính nguyên tố n

Thuật toán: 37

Thuật toán kiểm tra số nguyên tố 1.

2. 3.

4.

Nếu n <= 1 thì { Kết luận: n không nguyên tố Dừng thuật toán } flag = 1; //gán cho cờ flag giá trị đúng = 1 TRUE Lặp i = 2, 3, 4,…., n-1 Nếu (i là ước số của n) thì { flag = 0; //gán cho cờ flag giá trị sai = 0 FALSE Thoát khỏi vòng lặp } Nếu flag = 1 thì Kết luận: n là số nguyên tố Ngược lại Kết luận: n không là số nguyên tố

38

Kiểm tra n có phải là số nguyên tố ?

39

Thuật toán kiểm tra số nguyên tố Nếu số nguyên n >1 không phải là một số nguyên tố thì n có một ước số nguyên tố (dương) <= n Cải tiến thuật toán : Cho lặp i = 2,3,… n Tức là: for (int i=2; i<= sqrt(n); i++)

40

Nhập một số nguyên dương n. Xuất ra số ngược lại. Ví dụ: Nhập 1706  Xuất 6071

41

Bài tập

42

Bài tập

43

Bài tập

44

1. Chuong 3 Cac cau truc dieu khien.pdf

Chuong 3 Cac cau truc dieu khien.pdf. 1. Chuong 3 Cac cau truc dieu khien.pdf. Open. Extract. Open with. Sign In. Main menu.

1MB Sizes 2 Downloads 263 Views

Recommend Documents

1.-de-theo-cau-truc-moi-nam-2017-de-1-co-loi-giai.pdf
Question 17: If you put your money in a bank now, you may get 12%___________annually. ... Question 19: Such problems as haste and inexperience are a universal ... says, occurred in a letter written by a Florentine merchant on May 4, 1536.

Chuong IX.pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Chuong IX.pdf.

2.-de-theo-cau-truc-moi-nam-2017-de-2-co-loi-giai.pdf
C. Getting plenty of sodium nitrate D. Using Vitamin B in addition to a good diet. Question 26: According to the article the Feingold diet is NOT. A. verified by ...

DIEU-TH_VinhThanhB_ChoLach.pdf
Sign in. Loading… Page 1. Whoops! There was a problem loading more pages. Retrying... DIEU-TH_VinhThanhB_ChoLach.pdf.

CAC - Playbooks
Dec 11, 2016 - “Assume a cost “per click of 50 cents, and the resulting website visitors converting to a trial at ... If 10% of leads turn into a sale, CAC is at least $1,000 since there will be .... The time you spend on Social Media outreach. T

truc bao 10-2016.pdf
so, #j /TB-KTCTTL Binh Dinh, ngdylgthdnglOndm 2016. THONGBAo .i t

CAC Records.pdf
R Severson. 56.25. 3/2014. R. Severson. 50.53. 4/2016. R Blackstone. 50.03. 3/2016. 100 Free. A Williams. 54.44. 11/2008. I Powers. 52.44. 3/2016. I Powers.

TCVN 8818-1 Yeu cau ky thuat.pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. TCVN 8818-1 ...

CAC 40
terminal wave. ... R2. 0.725. 0.063. 4.95. 21450. 21.40. R1. 0.685. 0.059. 4.56. 21250. 21.00 ..... 20 February 2012 .... Financial Services Commission and Financial Supervisory ... Kong: This report is issued and distributed in Hong Kong by CIMB Sec

Phan cong truc bao.pdf
han sido considerados, en sede judicial, fraudulentos en perjuicio del estado. nacional, es decir de todos sus habitantes, en tanto han sido ejecutados, si. seguimos los criterios aplicados en el precedente judicial al que ... There was a problem loa

Pronunciamiento CAU II.pdf
Page 1 of 50. UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS. International General Certificate of Secondary Education. MARK SCHEME for the May/June 2011 question paper. for the guidance of teachers. 0620 CHEMISTRY. 0620/12 Paper 1 (Multiple Choi

+3, -1 -
Q.76 Eccentricity of the hyperbola conjugate to the hyperbola ... Q.82 The magnitude of the gradient of the tangent at an extremity of latera recta of the hyperbola.

3; 5% $1
Sep 19, 2000 - 23, 1999, now abandoned. (30). Foreign Application Priority Data ..... as a roo?ng ?ux, a cold patch material or an asphalt extender. Where ...

3; 5% $1
Sep 19, 2000 - evaporator comprising a void evaporation chamber (4) into. Which feedstock is .... Each year, about 20 million tons (150 million barrels) of used lubricating oils, such as automotive lubricating oils, gear oils, turbine oils and .... d

CAC - Application Checklist.pdf
Exceptions are made for foreign nationals not physically present in the United States and for non- immigrants in the United States on student visas who do not ...

16 . . . , , , , . , , , , . . " " . , , . . ' . , 1. 2. 3.
Last Updated ( Wednesday, 10 June 2009 15:07 ). 2010-01-12. 16 http://www.dahamsayura.org/index.php… 3/3.

Chuong trinhAUS&NZL_2017_v3.pdf
Tòa Thị Chính, Tòa nhà Queen Victoria. Page 3 of 4. Chuong trinhAUS&NZL_2017_v3.pdf. Chuong trinhAUS&NZL_2017_v3.pdf. Open. Extract. Open with.

3-333-CAU-TRAC-NGHIEM-LUONG-GIAC-10-GIAI-CHI-TIET.pdf
Generally speaking, are you optimistic or pessimistic about the next three years with. Donald Trump as President?* Asked before SOTU ... There was a problem loading this page. Retrying... 3-333-CAU-TRAC-NGHIEM-LUONG-GIAC-10-GIAI-CHI-TIET.pdf. 3-333-C

Xuctu.com-Tong hop 3 de on tap hk1 Khoi 11 Trac nghiem 100 50 cau ...
B. Có một và chỉ một mặt phẳng đi qua 2 đường thẳng cắt nhau. C. Có một và chỉ một mặt phẳng đi qua 1 đường thẳng và 1 điểm nằm ngoài đường. thẳng đó. Page 3 of 18. Xuctu.com-Tong hop 3 de on tap

5 3 5 5 5 5 5 1 1 1 7 3 3 35 1 1 1 2 6 5 6 5 5 1 23 4 ... -
Then. Faith. 54351 1. 5 5321. 1 1671 all on truth hearts is our o'er all with the strength ev - girt love vic - be. 'ry a - a - to -. 1 1653 gainst faith, vat - on - is the they tion's ward the foe like hel - from glor- in a met the ious. 3 3 32 3. 5

!"(&*$ 0 3&0% 1 !. 0& 1* 0&
Enter the data you collected into two lists of a graphing calculator. " ! Display the data in a scatter plot. Notice that the points. Use the model for the data. ! & $ " ".

CAC - Reactivate Inactive Certification.pdf
and all supporting documentation will be purged if you do not submit required documents and complete your application. process in one year. You will need to ...

Doc thu - le cau hon.pdf
Chúng tôi có hÆ¡n hai mÆ°Æ¡i người, xuất phát từ New. York đi về hướng bắc: Raven, Tack, Julian và tôi, và có cả. Dani, Gordo và Pike cộng thêm chừng mười lăm ...

!"(&*$ 0 3&0% 1 !. 0& 1* 0&
shown at the right. Also, record the number of pennies that would fit in a circle with a diameter of 0 inch. ! ! Enter the data you collected into two lists of a graphing.