4.2 Thuật toán• Thủ tục – Các hành động của một chương trình sẽ được thực thi – Thứ tự của các hành động sẽ được thực thi – Còn gọi là thuật toán • Điều khiển chương trình – Thứ tự các t
Trang 1Chương 4 – Cấu trúc điều khiển Phần 1
4.8 Bài tập điều kiện 1
4.9 Bài tập điều kiện 2
4.10 Bài tập điều kiện 3
4.11 Phép gán
4.12 Phép tăng, giảm
4.13 Giới thiệu chương trình window
Trang 24.1 Giới thiệu
• Trước khi viết chương trình
– Hiểu vấn đề
– Nghĩ về một hướng tiếp cận vấn đề
– Hiểu về xây dựng các khối
– Chứng minh tính đúng của chương trình
Trang 34.2 Thuật toán
• Thủ tục
– Các hành động của một chương trình sẽ được thực thi
– Thứ tự của các hành động sẽ được thực thi
– Còn gọi là thuật toán
• Điều khiển chương trình
– Thứ tự các tác vụ đúng của các thủ tục máy tính
Trang 44.3 Giả mã
• Giả mã
– Là ngôn ngữ của con người không theo quy định
– Giúp người lập trình đưa ra thuật toán
– Dạng tiếng Anh thông dụng
– Không phải là ngôn ngữ lập trình chính thống
– Chuyển sang mã C# dễ dàng
Trang 54.4 Các cấu trúc điều khiển
• Điều khiển chương trình
– Chương trình thực thi một lệnh sau đó thực hiện lệnh kế tiếp
• Thực hiện tuần tự
– Một số cấu trúc khác
• Cấu trúc rẽ nhánh
– Câu lệnh if và if/else – Câu lệnh goto
Trang 64.4 Các cấu trúc điều khiển
Trang 74.4 Các cấu trúc điều khiển
thêm grade vào total
thêm 1 vào counter
total = total + grade;
counter = counter + 1;
Hình 4.1 Sơ đồ khối cho lệnh tuần tự.
Trang 84.4 Các cấu trúc điều khiển
C# Keywords
class const continue decimal default
event explicit extern false finally
out override params private protected
ulong unchecked unsafe ushort using
Fig 4.2 C# keywords
Trang 94.5 Cấu trúc lựa chọn if
• Câu lệnh if
– Dùng khi chương trình muốn chọn câu lệnh thực hiện
– Chọn dựa theo điều kiện
• Mọi biểu thức điều kiện đều có kiểu bool
• True: thực hiện lệnh
• False: bỏ qua lệnh
– Một điểm vào một điểm ra
Trang 114.6 Cấu trúc lựa chọn if /else
• Câu lệnh if/else
– Có hai chọn lựa
– Nếu lồng ghép có thể thử nhiều trường hợp
– Nếu có nhiều dòng lệnh thì sử dụng ngoặc ({)
Trang 124.6 Cấu trúc lựa chọn if /else
Hình 4.4 Sơ đồ khối cho lệnh if/else.
Grade >= 60
print “Passed”
print “Failed”
Trang 13Phép toán điều kiện (?:)
• Phép toán điều kiện (?:)
– Giống lệnh if/else
– Cấu trúc:
• (giá trị bool ? nếu đúng : nếu sai)
Trang 144.7 Câu lệnh lặp while
• Cấu trúc lặp
– Hành động được lặp
• Thực hiện lệnh khi điều kiện đúng
• Kết thúc thực hiện lệnh khi sai
– Chứa một hoặc nhiều lệnh
• Phải chú ý điều khiện tránh lặp vô hạn
Trang 164.8 Bài tập điều kiện 1
• Nhập 10 số nguyên sau đó tính trung bình cộng
của 10 số đó
Trang 174.8 Bài tập điều kiện 1
Hình 4.6 Thuật toán giã mã cho bài tính trung bình cộng 10 số nguyên.
Đặt tổng bằng 0 Đặt số thứ tự bằng 1
Trong khi số thứ tự nhỏ hơn hoặc bằng 10
Nhập số tiếp theo Thêm số vừa nhập vào tổng thêm 1 vào số thứ tự
Đặt trung bình bằng tổng chia 10
In trung bình
Trang 1810 int total, // sum of grades
11 gradeCounter, // number of grades entered
12 gradeValue, // grade value
13 average; // average of all grades
14
15 // initialization phase
16 total = 0; // clear total
17 gradeCounter = 1; // prepare to loop
18
19 // processing phase
20 while ( gradeCounter <= 10 ) // loop 10 times
21 {
22 // prompt for input and read grade from user
23 Console.Write( "Enter integer grade: " );
24
25 // read input and convert to integer
26 gradeValue = Int32.Parse( Console.ReadLine() );
27
28 // add gradeValue to total
29 total = total + gradeValue;
30
31 // add 1 to gradeCounter
Lặp đến 10 Khởi động bộ đếm bằng 1
Cộng dồn 10 số Tăng 1 cho biến đếm
Khởi động total bằng 0
Nhắt người dùng nhập dữ liệu
Trang 19Program Output
36 average = total / 10; // integer division
37
38 // display average of exam grades
39 Console.WriteLine( "\nClass average is {0}" , average );
40
41 } // end Main
42
43 } // end class Average1
Enter integer grade: 100
Enter integer grade: 88
Enter integer grade: 93
Enter integer grade: 55
Enter integer grade: 68
Enter integer grade: 77
Enter integer grade: 83
Enter integer grade: 95
Enter integer grade: 73
Enter integer grade: 62
Class average is 79
Tính trung bình Hiện kết quả
Trang 204.9 Bài tập điều kiện 2
• Tính tổng trung bình các số nguyên nhập từ bàn
phím đến khi nhận số -1
Trang 214.9 Bài tập điều kiện 2
Hình 4.8 Thuật toán giả mã cho bài tính trung bình cộng với số lượng số nhập chưa biết
Khởi tạo tổng bằng 0 Khởi tạo số đếm bằng 1
Nhập số đầu tiên Trong khi người dùng chưa muốn kết thúc nhập
Thêm số vừa nhập vào tổng Thêm 1 vào số đếm
nhập số kế tiếp
Nếu số đếm khác 0
tính trung bình bằng tổng chia cho số đếm
In số trung bình Ngược lại
In không có số nào được nhập
Trang 2210 int total, // sum of grades
11 gradeCounter, // number of grades entered
12 gradeValue; // grade value
13
14 double average; // average of all grades
15
16 // initialization phase
17 total = 0; // clear total
18 gradeCounter = 0; // prepare to loop
19
20 // processing phase
21 // prompt for input and convert to integer
22 Console.Write( "Enter Integer Grade, -1 to Quit: " );
23 gradeValue = Int32.Parse( Console.ReadLine() );
24
Trang 2327 {
28 // add gradeValue to total
29 total = total + gradeValue;
30
31 // add 1 to gradeCounter
32 gradeCounter = gradeCounter + 1;
33
34 // prompt for input and read grade from user
35 // convert grade from string to integer
36 Console.Write( "Enter Integer Grade, -1 to Quit: " );
37 gradeValue = Int32.Parse( Console.ReadLine() );
46 // display average of exam grades
47 Console.WriteLine( "\nClass average is {0}" , average );
Trang 24Average2.cs Program Output
Enter Integer Grade, -1 to Quit: 72
Enter Integer Grade, -1 to Quit: -1
Class average is 85.6666666666667
Trang 254.10 Bài tập điều kiện 3
• Nhập kết quả 10 sinh viên từ bàn phím sau đó đếm
xem có bao nhiêu người đậu bao nhiêu người rớt
Nếu có hơn 8 người đậu thì thông báo người học
Trang 264.10 Bài tập điều kiện 3
Hình 4.10 giả mã cho bài toán kết quả học tập.
Initialize passes to zero Initialize failures to zero Initialize student to one
While student counter is less than or equal to ten
Input the next exam result
If the student passed
Add one to passes Else
Add one to failures Add one to student counter
Print the number of passes Print the number of failures
If more than eight students passed
Print “Raise tuition”
Trang 2710 int passes = 0, // number of passes
11 failures = 0, // number of failures
12 student = 1, // student counter
13 result; // one exam result
14
15 // process 10 students; counter-controlled loop
16 while ( student <= 10 )
17 {
18 Console.Write( "Enter result (1=pass, 2=fail): " );
19 result = Int32.Parse( Console.ReadLine() );
Trang 28Program Output
32 Console.WriteLine( "Passed: " + passes );
33 Console.WriteLine( "Failed: " + failures );
40 } // end of class Analysis
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 2
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Passed: 9
Trang 29Analysis.cs Program Output
Enter result (1=pass, 2=fail): 2
Enter result (1=pass, 2=fail): 2
Enter result (1=pass, 2=fail): 2
Enter result (1=pass, 2=fail): 2
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Enter result (1=pass, 2=fail): 1
Passed: 5
Failed: 5
Trang 334.12 Phép tăng và giảm
mới tính toán trong biểu thức
biểu thức, sau đó tăng a một đơn vị
mới tính toán trong biểu thức
biểu thức, sau đó giảm a đi một đơn vị Hình 4.13 Các phép toán tăng giảm
Trang 35parentheses unary postfix
book
Trang 364.13 Giới thiệu lập trình ứng dụng Window
– Các lớp kế thừa phần cơ bản của một lớp
• Thuộc tính - Attributes (data)
• Các ứng xử - Behaviors (methods)
– Tránh viết lại mã
Trang 374.13 Giới thiệu lập trình ứng dụng Window
Hình 4.16 Mã của Hình 2.15
Đóng chú
thích
Đóng mã
Trang 384.13 Giới thiệu lập trình ứng dụng Window
Hình 4.17 Bộ sinh mã sinh mẫu chương trình.
Mở rộng mã
Trang 394.13 Giới thiệu lập trình ứng dụng Window
Hình 4.18 Mã sinh do IDE cho ô nhãn welcomeLabel
Trang 404.13 Giới thiệu lập trình ứng dụng Window
Hình 4.19 Sử dụng cửa sổ thuộc tính (Properties)
Thuộc tính Text
Trang 414.13 Giới thiệu lập trình ứng dụng Window
Hình 4.20 Bộ sinh mã Windows Form sinh các giá trị
Trang 424.13 Giới thiệu lập trình ứng dụng Window
Hình 4.21 Đổi giá trị thuộc tính trong chế độ mã
Thuộc tính Text
Trang 434.13 Giới thiệu lập trình ứng dụng Window
Hình 4.22 Giá trị mới của thuộc tính Text
Thuộc tính Text
Trang 444.13 Giới thiệu lập trình ứng dụng Window
Hình 4.23 Method ASimpleProgram_Load.
Phương thức Form1_Load
Trang 454.13 Giới thiệu lập trình ứng dụng Window
Hình 4.24 Thay đổi thuộc tính khi chạy chương trình