2 Cau Truc Dieu Khien

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    2 Cau Truc Dieu Khien - Presentation Transcript

    1. Cấu trúc điều khiển
    2. Cấu trúc điều khiển
      • Lệnh rẽ nhánh: if – else
      • Lệnh rẽ nhiều nhánh: switch
      • Vòng lặp: while , do while , for
      • Các từ khóa: break và continue
    3. Lệnh rẽ nhánh if
      • Cú pháp :
      • if ( điều kiện )
      • S ;
      • Điều kiện : biểu thức cho kết quả SỐ ; phải được đặt giữa cặp ngoặc đơn ()
      • S phải là 1 câu lệnh, nếu nhiều hơn 1 lệnh, các lệnh phải được đặt giữa cặp ngoặc nhọn {} – khối lệnh .
      scanf("%i %i", &a, &b); max = a; if(b > max) max = b; printf(“So lon la: %i “, max); điều kiện S 0  0
    4. Lưu ý
      • Nếu đặt dấu chấm phẩy (;) ở ngay sau biểu thức điều kiện thì lệnh S của if xem như “ KHÔNG LÀM GÌ ”
      printf(“Nhap mot so nguyen: "); scanf("%i", &j); if(j > 0) ; printf(“%i la so duong“, j); Nhap mot so nguyen: -6 -6 là so duong
    5. Lệnh rẽ nhánh if-else
      • Cú pháp :
      • if ( điều kiện )
      • S ;
      • else S e ;
      • Phần lệnh else có thể thêm vào trong câu lệnh if để chỉ thị các lệnh thực hiện khi điều kiện bằng 0 (FALSE).
      scanf("%i %i", &a, &b); if(a > b) max = a; else max = b; printf(“So lon la: %i “, max); điều kiện S 0  0 S e
    6. Nhiều lệnh if lồng nhau
      • else kết nối với lệnh if gần nhất
      int i = 100; if(i > 0) if(i > 1000) printf("i qua lon "); else printf("i chap nhan duoc "); i chap nhan duoc int i = -20; if(i > 0) { if(i > 1000) printf("i qua lon "); } else printf("i la so am "); i la so am
    7. Cấu trúc nhiều chọn lựa – switch
      • Cú pháp :
      • switch ( biểu thức )
      • {
      • case gt 1 : S 1 ; [ break ;]
      • case gt 2 : S 2 ; [ break ;]
      • ...
      • case gt n : S n ; [ break ;]
      • default : S e ;
      • }
      • Biểu thức : cho kết quả SỐ NGUYÊN ; phải được đặt giữa cặp ngoặc đơn ()
      • S i : dãy các lệnh.
    8. Ví dụ lệnh switch switch (c) { case 'a': case 'A': printf(“Dien tich = %.2f ", r * r * pi); break ; case 'c': case 'C': printf(“Chu vi = %.2f ", 2 * r * pi); break ; case 'q': printf(“Thoat "); break ; default : printf(“Chon khong hop le "); }
    9. Một số lưu ý – switch
      • Nếu không có giá trị nào khớp, các lệnh trong phần default sẽ được thực thi; và nếu không có default cũng không xảy ra lỗi.
      • Lệnh break rất quan trọng.
      float f; switch(f) { case 2: .... switch(i) { case 2 * j: .... i = 3; switch(i) { case 3: printf("i = 3 "); case 2: printf("i = 2 "); case 1: printf("i = 1 "); } i = 3 i = 2 i = 1
    10. Cấu trúc nhiều chọn lựa – switch biểu thức S 1 ; break; gt 1 … S 2 ; break; S e ; gt 2 default
    11. Ví dụ khác – switch //Doan chuong trinh doc so 0..9 switch (so) { case 0: printf(“khong "); case 1: printf(“mot "); case 2: printf(“hai "); case 3: printf(“ba"); case 4: printf(“bon"); case 5: printf(“nam"); case 6: printf(“sau"); case 7: printf(“bay"); case 8: printf(“tam"); case 9: printf(“chin"); }
    12. Lệnh lặp while
      • Cú pháp : while ( điều kiện )
      • S ;
      • Điều kiện : biểu thức cho kết quả SỐ ; phải được đặt giữa cặp ngoặc đơn ()
      • S phải là 1 câu lệnh, nếu nhiều hơn 1 lệnh, các lệnh phải được đặt giữa cặp ngoặc nhọn {} – khối lệnh .
      int j = 5; while(j > 0) printf("j = %i ", j--); j = 5 j = 4 j = 3 j = 2 j = 1 while(j > 0) { printf("j = %i ", j); j--; }
      • while thực hiện lệnh S ít nhất 0 lần
      điều kiện S 0  0
    13. Lưu ý dấu chấm phẩy ;
      • Dấu ‘;’ đặt ngay sau biểu thức điều kiện đồng nghĩa với lệnh S là rỗng.
      int j = 5; while(j > 0); printf("j = %i ", j--); Chưong trình bị lặp không thoát được
      • Đôi khi người lập trình cố ý sử dụng lệnh rỗng
      int c, j; while(scanf("%i", &j) != 1) while((c = getch()) != 27) ; Đặt dấu ‘;’ để kết thúc while không có S
    14. Lệnh lặp do while
      • Cú pháp :
      • do
      • S ;
      • while ( điều kiện );
      • Điều kiện : biểu thức cho kết quả SỐ ; phải được đặt giữa cặp ngoặc đơn ()
      • S phải là 1 câu lệnh, nếu nhiều hơn 1 lệnh, các lệnh phải được đặt giữa cặp ngoặc nhọn {} – khối lệnh .
      điều kiện S 0  0
    15. Ví dụ do while int j = 5; printf("start "); do printf("j = %i ", j--); while(j > 0); printf("stop "); start j = 5 j = 4 j = 3 j = 2 j = 1 stop
    16. Ví dụ do while
      • do while thực hiện lệnh S ít nhất 1 lần
      int j = -10; printf("start "); do { printf("j = %i ", j); j--; } while(j > 0); printf("stop "); start j = -10 stop
    17. Lệnh lặp for
      • Lệnh lặp for dồn hết các thành phần của vòng lặp vào trong một câu lệnh.
      • Cú pháp :
      • for ( khởi động ; điều kiện lặp ; điều khiển )
      • S ;
      điều kiện 0  0 khởi động S điều khiển
    18. Lệnh lặp for – Ví dụ int j; for(j = 5; j > 0; j--) printf("j = %i ", j); j = 5 j = 4 j = 3 j = 2 j = 1 for(j = 5; j > 0; j--) { printf("j = %i ", j); printf("%s ", ((j%2)==0)?“chan":“le"); } j = 5 le j = 4 chan j = 3 le j = 2 chan j = 1 le
    19. Bước lặp trong for
      • C không giới hạn độ lớn của bước lặp trong for.
      #include <math.h> int main(void) { double angle; for(angle = 0.0; angle < 3.14159; angle += 0.2 ) printf(&quot;sine of %.1lf is %.2lf &quot;, angle, sin(angle)); return 0; }
    20. Nói thêm về for
      • Phần lệnh khởi động và lệnh điều khiển có thể gồm nhiều lệnh đơn giản, các lệnh này cách nhau bởi dấu phẩy (,)
      int i, j, k; for(i = 0, j = 5, k = -1; i < 10; i++, j++, k--)
      • Các phần: khởi động, điều kiện lặp, điều khiển có thể không có lệnh nào.
      for(; i < 10; i++, j++, k--) for(;i < 10;) for(;;) Dùng while sẽ hợp lý hơn Vòng lặp không kết thúc
    21. break
      • Từ khóa break chỉ thị việc thoát ngay lập tức khỏi cấu trúc điều khiển.
      • Cẩn thận khi sử dụng!
      for(;;) { printf(“nhap một so nguyen: &quot;); if(scanf(&quot;%i&quot;, &j) == 1) break ; printf(“khong hop le, nhap lai “ } printf(“j = %i &quot;, j); nhap mot so nguyen : int khong hop le, nhap lai nhap mot so nguyen: 16 j = 16 Nếu scanf trả về 1, chương trình thoát khỏi vòng lặp for
    22. continue
      • Từ khóa continue chỉ thị bước nhanh đến bước lặp kế, bất kể phía sau đó còn nhiều lệnh cần lặp.
      • Hạn chế sử dụng!
      for(j = 1; j <= 10; j++) { if(j % 3 == 0) continue; printf(&quot;j = %i &quot;, j); } j = 1 j = 2 j = 4 j = 5 j = 7 j = 8 j = 10 Nếu j chia hết cho 3 thì bỏ qua lệnh in j
    23. Tóm lược
      • if else : rẽ nhánh
      • switch rẽ nhiều nhánh với điều kiện là giá trị của biểu thức nguyên
      • while , do while , for – 3 loại vòng lặp của C
      • break
      • continue
    SlideShare Zeitgeist 2009

    + CuongCuong Nominate

    custom

    281 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 281
      • 281 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 9
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories