ppupil2

find and delete book_skypegroup

Mar 18th, 2020
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.25 KB | None | 0 0
  1. /* flowchart (cả 2 ảnh): https://tinyurl.com/wgk6j7q
  2. điều kiện thoát vòng lặp: có tìm thấy code trong mảng findcode() == true
  3. ~> điều kiện vòng lặp: không tìm thấy code trong mảng findcode != true hay findcode() == false
  4.     Tuy nhiên: khi bắt đầu vòng lặp thì điều kiện phải đúng, vì đây là while()
  5.         nếu muốn ko đặt điều kiện trước khi chạy ~> dùng do-while()
  6.  
  7. bởi vì findcode() là 1 function nên mình cho check = findcode() để dễ cho vào while()
  8. */
  9.  
  10. check = false;
  11. while (check == false) {
  12.     inputcode();
  13.     checkcode();
  14.     check = findcode(); // nếu findcode() trả về true thì vòng lặp while này thoát 
  15. }
  16. printtf("Toi thay code roi!\n");
  17. deletebook();
  18.  
  19. /* dùng do-while()
  20. do-while() thực thi khối lệnh xong rồi mới check điều kiện
  21.     nghĩa là làm hết đống ở trong kia, làm xong thì ta đã có
  22.     check nên không cần khởi tạo check = false;
  23. */
  24.  
  25. check = false;
  26. do {
  27.     inputcode();
  28.     checkcode();
  29.     check = findcode(); // nếu findcode() trả về true thì vòng lặp while này thoát 
  30. } while (check == false);
  31. printtf("Toi thay code roi!\n");
  32. deletebook();
  33.  
  34.  
  35. /*
  36. ở bài trên ta nhận ra mình cần có thêm nhiều hàm:
  37.     inputandcheck(), findcode() và delelebook()
  38. */
  39.  
  40. //từ  flowchart ta viết được hàm inputandcheck() cho code như sau:
  41. /*
  42. điều kiện thoát vòng lặp:
  43.     10>độ dài>0 VÀ code không bị trùng
  44. ~   (strlen(code) > 0) && (strlen(code) < 10) && (dupcheck(code) == false)
  45. ~> điều kiện vòng lặp:
  46.     độ dài<=0 HOẶC độ dài >=10 HOẶC code trùng
  47. ~   (strlen(code) <= 0) || (strlen(code) <= 10) || (dupcheck(code) == true)
  48.  
  49.     Tuy nhiên: khi bắt đầu vòng lặp thì điều kiện phải đúng, vì đây là while()
  50.         nếu muốn ko đặt điều kiện trước khi chạy ~> dùng do-while()
  51. */
  52.  
  53. while ((strlen(code) <= 0) || (strlen(code) <= 10) || (dupcheck(code) == true)) {
  54.     printf("Enter code you want to find: ");
  55.     gets(code);
  56.     if ((strlen(code) <= 0) || (strlen(code) <= 10)) {
  57.         printf("Invalid code!\n");
  58.         continue; // quay về ban đầu: nhập lại
  59.     }
  60.     else { //nếu không thoả mãn if là đi theo nhánh Đúng của 0<độ dài<10
  61.         if (dupcheck(code) == true) {
  62.             printf("Duplicate code!\n");
  63.             continue;
  64.         }
  65.     }
  66. }
  67.  
  68. /*
  69. đến đây phải nghĩ lại, vì lúc ban đầu chưa nhập code thì làm sao mà kiểm tra
  70.     được (strlen(code) <= 0) || (strlen(code) <= 10) || (dupcheck(code) == true)
  71.     để bắt đầu vòng lặp? không ổn, ta phải chạy rồi mới tính được chứ?
  72.     ~> dùng do-while()
  73. */
  74.  
  75. do {
  76.     printf("Enter code you want to find: ");
  77.     gets(code);
  78.     if ((strlen(code) <= 0) || (strlen(code) <= 10)) {
  79.         printf("Invalid code!\n");
  80.         continue; // quay về ban đầu: nhập lại
  81.     }
  82.     else { //nếu không thoả mãn if là đi theo nhánh Đúng của 0<độ dài<10
  83.         if (dupcheck(code) == true) {
  84.             printf("Duplicate code!\n");
  85.             continue;
  86.         }
  87.     }
  88. } while ((strlen(code) <= 0) || (strlen(code) <= 10) || (dupcheck(code) == true));
  89. /* xong đến đây mình lại phải viết hàm dupcheck() nữa để kiểm tra nữa
  90.  ~> cần viết dupcheck(), findcode() và delelebook() */
Add Comment
Please, Sign In to add comment