Xem mẫu

  1. Chương 3 .Cấu trúc điều khiển Outline 3.1 Mở đầu 3.2 Khái niệm Giải thuật - “Algorithm” 3.3 Khái niệm giả mã – “Pseudocode” và sơ đồ khối “Flowchart” 3.4 Các kiểu cấu trúc điều khiển 3.4.1. Cấu trúc tuần tự 3.4.2. Cấu trúc chọn 3.4.3. Cấu trúc lặp 3.5 Cấu trúc chọn if 3.6 Cấu trúc chọn if/else 3.7. Cấu trúc đa lựa chọn switch 3.8. Cấu trúc lặp while 3.9. Cấu trúc lặp for 3.10. Cấu trúc lặp do/while 3.11. Lệnh break và continue 3.12. Toán tử trong C# 3.12.1.Toán tử Logic và Toán tử điều kiện 3.12.2.Toán tử gán (Assignment Operators) 3.12.3.Toán tử tăng và giảm (Increment and Decrement Operators) 3.13.Giới thiệu lập trình ứng dụng Windows Application 3.14.Tổng kết về các cấu trúc điều khiển
  2. 3.1 Mở đầu  Trước khi viết một chương trình  Tìm hiểu vấn đề  Nghĩ hướng tiếp cận vấn đề  Thiết kế các khối công việc cần làm  Ghép các phần đã có theo quy tắc của lập trình cấu trúc
  3. 3.2 Giải thuật - “Algorithm”  Một thủ tục  Những hành động mà chương trình thực hiện  Thứ tự của những hành động này  Cũng được gọi là một giải thuật  Chương trình điều khiển  Đảm bảo cho các thủ tục được thực hiện đúng theo thứ tự của nó.
  4. 3.3 Giả mã – “Pseudocode” và sơ đồ khối “Flowchart”  Giả mã  Ngôn ngữ nhân tạo và không chính quy  Giúp lập trình viên mô tả giải thuật  Tương tự như tiếng Anh hàng ngày  Không phải là ngôn ngữ lập trình thật sự  Dễ dàng chuyển đổi thay thế các từ với mã lệnh trong C#
  5. 3.3 Giả mã – “Pseudocode” và sơ đồ khối “Flowchart”  Sơ đồ khối - "Flow charts"  Dùng để lược đồ hoá chương trình  Minh hoạ trật tự đi vào của các sự kiện  Hình chữ nhật chỉ hành động  Hình oval là điểm bắt đầu  Các vòng tròn là các bộ nối  Hình thoi chỉ quyết định  Sự kết hợp các cấu trúc điều khiển  Kiểu ngăn xếp  Đặt cấu trúc này sau cấu trúc kia  Lồng  Lồng cấu trúc này vào trong cấu trúc khác
  6. 3.3 Giả mã – “Pseudocode” và sơ đồ khối “Flowchart” add grade to total total = total + grade; add 1 to counter counter = counter + 1; Ví dụ sơ đồ khối tuần tự trong C#
  7. 3.4 Các kiểu cấu trúc điều khiển  3.4.1. Cấu trúc tuần tự  3.4.2.Cấu trúc chọn :gồm 3 loại ▪ Cấu trúc lựa chọn đơn : if ▪ Cấu trúc lựa chọn kép : if/else ▪ Cấu trúc đa lựa chọn : switch  3.4.3.Cấu trúc lặp :gồm 4 loại ▪ while ▪ do/while ▪ for ▪ foreach
  8. 3.5 Cấu trúc chọn if  Cấu trúc if  Buộc chương trình lựa chọn  Chọn lựa dựa theo các điều kiện  Bất kỳ biểu thức nào được định giá trị kiểu bool  Đúng : thực hiện một hành động  Sai : Bỏ qua hành động đó  Có duy nhất một điểm vào/ra  Trong cú pháp không yêu cầu dấu chấm phảy
  9. 3.5 Cấu trúc chọn if đúng Grade >= 60 in ra “Passed” sai Sơ đồ khối cấu trúc lựa chọn đơn if
  10. 3.6 Cấu trúc chọn if/else  Cấu trúc if/else  Một hướng kế tiếp có thể được thực hiện khi điều kiện là sai  Đúng hơn là một hành động có hai lựa chọn  Các cấu trúc lồng nhau có thể kiểm tra nhiều trường hợp  Cấu trúc với nhiều dòng lệnh cần các dấu ngoặc({)  Có thể gây lỗi  Lỗi logic nghiêm trọng (Fatal logic error)  Lỗi logic không nghiêm trọng (Nonfatal logic error)
  11. 3.6 Cấu trúc chọn if/else false true Grade >= 60 print “Failed” print “Passed” Sơ đồ khối minh hoạ cấu trúc chọn kép if/else
  12. 3.7. Cấu trúc đa lựa chọn switch  Lệnh switch  Biểu thức không đổi  Xâu  Số nguyên  Các trường hợp  Case ‘x’ :  Dùng các trường hợp nhất định của biến  Trường hợp rỗng  Trường hợp mặc định  Lệnh break  Thoát khỏi lệnh switch
  13. 1 // SwitchTest.cs 2 // Counting letter grades. 3 4 using System; 5 6 class SwitchTest 7 { 8 static void Main( string[] args ) 9 { 10 11 Vòng lặp for=bắ////one u từof đến 1,lặp 10 char grade; int aCount 0, number t đầ gradei As Mỗi biến này có chức năng như 12 lấn vàbCountlần tăng i lên 1 mỗi = 0, // number of Bs 13 cCount = 0, // number of Cs một biến đếm nên chúng được 14 dCount = 0, // number of Ds ởi ạo từ 0 khNhtắc người dùng nhập grade 15 fCount = 0; // number of Fs 16 và lưu nó vào trong biến grade 17 for ( int i = 1; i
  14. 34 case 'C': // grade is uppercase C 35 case 'c': // or lowercase c 36 ++cCount; Cả hai trường hợp đều cộng 1 vào cCount 37 break; 38 39 case 'D': // grade is uppercase D 40 case 'd': // or lowercase d 41 ++dCount; 42 break; Nếu grade bằng D 43 hay d thêm 1 vào 44 case 'F': // grade is uppercase F 45 case 'f': // or lowercase f dCount 46 ++fCount; 47 break; thêm 1 vào fCount Nếu grade bằng F hay f 48 49 default: // processes all other characters 50 Console.WriteLine( 51 "Incorrect letter grade entered." + Nếu không có trường hợp nào bằng 52 "\nGrade not added to totals." ); giá trị của grade thì chạy trường 53 break; 54 hợp default 55 } // end switch 56 Hiển thị kết quả 57 } // end for 58 59 Console.WriteLine( 60 "\nTotals for each letter grade are:\nA: {0}" + 61 "\nB: {1}\nC: {2}\nD: {3}\nF: {4}", aCount, bCount, 62 cCount, dCount, fCount ); 63 64 } // end method Main 65 66 } // end class SwitchTest
  15. Enter a letter grade: a Enter a letter grade: A Enter a letter grade: c Enter a letter grade: F Enter a letter grade: z Incorrect letter grade entered. Grade not added to totals. Enter a letter grade: D Enter a letter grade: d Enter a letter grade: B Enter a letter grade: a Enter a letter grade: C Totals for each letter grade are: A: 3 B: 1 C: 2 D: 2 F: 1 Kết quả chạy chương trình SwitchTest.cs
  16. Sơ đồ khối minh hoạ cấu trúc đa lựa chọn switch true case :  a case  a action(s) break; false true case :  b case  b action(s) break; false . . . true case : z case  z action(s) break; false default  action(s) break;
  17. 3.8. Cấu trúc lặp while  Cấu trúc lặp  Lặp đi lặp lại một hành động  Còn tiếp tục lặp khi câu lệnh điều kiện là đúng  Kết thúc khi câu lệnh điều kiện sai  Chứa một dòng hoặc một khối các dòng lệnh  Điều kiện phải biến đổi  Vòng lặp vô hạn
  18. 3.8. Cấu trúc lặp while true Product
  19. ví dụ tổng hợp cấu trúc lặp if,if/else và while Khởi tạo số người đỗ ( passes) bằng 0 Khởi tạo số người trượt ( failures) bằng 0 Khởi tạo student là 1 Khi số sinh viên nhỏ hơn hoặc bằng 10 Nhập kết quả bài kiểm tra tiếp If sinh viên đỗ Thêm 1 vào passes Else Thêm 1 vào failures Thêm 1 vào biến đếm student In số sinh viên đỗ passes In số sinh viên trượt failures Giả mã cho bài toán kết  Nếu hơn 8 sinh viên đỗ quả kiểm tra In “Tăng học phí”
  20. 1 // Analysis.cs Analysis.cs 2 // Analysis of Examination Results. 3 4 using System; 5 6 class Analysis 7 { 8 static void Main( string[] args ) 9 { 10 int passes = 0, // number of passes Khởi tạo passes và failures bằng 0. 11 failures = 0, // number of failures 12 student = 1, // student counter Thiết lập biến đếm student 1 13 result; // one exam result 14 Vòng lặp while lặp 10 lần 15 // process 10 students; counter-controlled loop 16 while ( student
nguon tai.lieu . vn