Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Enum ?

  1. #1
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mặc định Enum ?

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #define PHU_TROI_T7 1.5
    4. #define PHU_TROI_CN 2.0
    5. //dinh nghia enum
    6. enum tuan{CHU_NHAT, THU_HAI, THU_BA, THU_TU, THU_NAM, THU_SAU, THU_BAY};
    7. typedef enum tuan ngay_tuan; //dinh nghia ngay_tuan la tuan
    8. void main(void)
    9. {
    10. int igio;
    11. float fLuongCB, fLuongNgay, fTongLuong;
    12. char cngay[][4] = {"Chu Nhat", "Thu Hai", "Thu Ba", "Thu Tu", "Thu Nam", "Thu
    13. Sau", "Thu Bay"};
    14. ngay_tuan engay;
    15. ngay_tuan ngay_mai(ngay_tuan); //khai bao prototype
    16. printf("Nhap vao luong can ban: ");
    17. scanf("%f", &fLuongCB);
    18. luong = 0.0;
    19. printf("Nhap vao so gio lam viec tu Thu hai den Chu nhat:\n");
    20. engay = CHU_NHAT;
    21. do
    22. {
    23. engay = ngay_mai(engay);
    24. printf("Nhap vao gio lam viec ngay %s :", cngay[engay]);
    25. scanf("%d", &igio);
    26. swith(engay)
    27. {
    28. case THU_HAI: case THU_BA: case THU_TU: case THU_NAM: case THU_SAU:
    29. fLuongNgay = fLuongCB;
    30. break;
    31. case THU_BAY:
    32. fLuongNgay = fLuongCB * PHU_TROI_T7;
    33. break;
    34. case CHU_NHAT:
    35. fLuongNgay = fLuongCB * PHU_TROI_CN;
    36. break;
    37. }
    38. fTongLuong += fLuongNgay * igio;
    39. } while (ngay != CHU_NHAT);
    40. printf("Tong luong tuan = %8.2f dong.\n", fTongLuong);
    41. getch();
    42. }
    43. //ham chon ngay ke tiep
    44. ngay_tuan ngay_mai(ngay_tuan en)
    45. {
    46. ngay_tuan engay_ke;
    47. switch(en)
    48. {
    49. case CHU_NHAT : engay_ke = THU_HAI; break;
    50. case THU_HAI : engay_ke = THU_BA;  break;
    51. case THU_BA : engay_ke = THU_TU;  break;
    52. case THU_TU : engay_ke = THU_NAM;  break;
    53. case THU_NAM : engay_ke = THU_SAU;  break;
    54. case THU_SAU : engay_ke = THU_BAY;  break;
    55. case THU_BAY : engay_ke = CHU_NHAT;  break;
    56. }
    57. return (engay_ke);
    58. }
    59. [B][/B]

    C Code:
    1. char cngay[][4] = {"Chu Nhat", "Thu Hai", "Thu Ba", "Thu Tu", "Thu Nam", "Thu
    2. Sau", "Thu Bay"};
    3. ngay_tuan engay;
    4. ngay_tuan ngay_mai(ngay_tuan); //khai bao prototype
    5. printf("Nhap vao luong can ban: ");
    6. scanf("%f", &fLuongCB);
    7. luong = 0.0;
    8. printf("Nhap vao so gio lam viec tu Thu hai den Chu nhat:\n");
    9. engay = CHU_NHAT;
    -->
    Mình không hiểu cái đoạn này là sao hết.Các bạn giaỉa thích giúp mình nhé
    Đã được chỉnh sửa lần cuối bởi kegiaumat055 : 22-11-2008 lúc 10:00 AM.

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    1

    Trong lập trình, Enumerated type là một loại dữ liệu tập hợp (thường là người dùng xác định) bao gồm một bộ các biến giá trị không đổi "constants" có tên gọi là enumerators. Việc tạo ra Enumerated type là định nghĩa một Enumeration. Khi khai báo một biến có kiểu enumerated type nghĩa là có một loại biến dữ liệu tập hợp đã được tạo, các biến có thể được chỉ định bất kỳ các enumerators nào như một giá trị. Ngôn ngữ lập trình cho phép tạo ra các enumerators và được cấp một tên, tên thường được chọn để gọi chung mô tả các enumerators trong thiết lập.

    Enum được tạo cần phải có một danh sách các enumerators, cũng không cần phải đặt các enumerators theo thứ tự. Tuy nhiên, một enumerator thường không lặp đi lặp lại. Hơn nữa, chỉ những enumerators có liên quan có thể xuất hiện trong các thiết lập. Ví dụ, một loại enumerated gọi là favoriteColors chỉ có thể có ba enumerators: đỏ, xanh, và màu xanh.

    Lưu ý: Trong một số ngôn ngữ, các loại boolean là một xác định trước enumerated loại với hai enumerators (đúng và sai). Ngoài ra, enumerators đôi khi cần phải đặt ở dạng chữ hoa để cho biết đó là constants.

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Enum là danh sách gồm nhiều hằng số liên tiếp nhau từ 0->n. Chú ý là enum ko phải là chuỗi. Thay vì bạn thay báo các hằng số liên tiếp nhau như :
    Code:
    CHU_NHAT = 0;
    THU_HAI = 1;
    ......
    cách này vừa mỏi tay vừa ko chính xác vì đôi khi mình quên và gán 2 giá trị giống nhau cho 2 hằng số khác nhau. enum sẽ tự động tạo ra các danh sách hằng số có giá trị liên tiếp nhau.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  4. #4
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    C Code:
    1. ngay_tuan ngay_mai(ngay_tuan);
    Dòng này sao lạ vậy.Tại sao kiểu hàm lại là:ngày_tuan mà không phải là int ,float hoặc void

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    186

    Trích dẫn Nguyên bản được gửi bởi kegiaumat055 Xem bài viết
    C Code:
    1. ngay_tuan ngay_mai(ngay_tuan);
    Dòng này sao lạ vậy.Tại sao kiểu hàm lại là:ngày_tuan mà không phải là int ,float hoặc void
    thì nó là kiểu enum mà :|
    thực chất nó là int chứ còn gì nữa mà bạn băn khoăn.
    Đọc kí lại lý thuyết enum.
    Ước mơ vươn tới Linux Developer.
    Đang trong quá trình tập luyện:
    1. C system programming
    2. GNU distribution
    3. Gtk+/Gnome Application Programming.

    Bác nào giỏi lĩnh vực này giúp Kim với nha. Kim cám ơn nhiều !!!

  6. #6
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mặc định Enum ?

    Đây là bài không dùng enum
    C Code:
    1. #include <stdio.h>
    2.  
    3. typedef struct
    4. {
    5.     float x,y;
    6. }sophuc;
    7. sophuc cong(sophuc u,sophuc v); /* ?????????????*/
    8. void p(sophuc u);             /* ???????????????????????????*/
    9.    //
    10.    sophuc cong(sophuc u,sophuc v)
    11.      {
    12.          sophuc w;
    13.          w.x=u.x+v.x;
    14.          w.y=u.y+v.y;
    15.          return w;
    16.      }
    17.    void insp(sophuc u)
    18.      {
    19.          printf("(%0.2f,%0.2f)",u.x,u.y);
    20.      }
    21.  
    22.   main()
    23.   {
    24.       sophuc u,v;
    25.       u.x=6.5;
    26.       u.y=-3.6;
    27.       v.x=2.8;
    28.       v.y=12.1;
    29.  
    30.       printf("\nSo phuc u=");
    31.       insp(u);
    32.         printf("\nSo phuc v=");
    33.       insp(v);
    34.       printf("\nTong=");
    35.       insp(cong(u,v));
    36.       getch();
    37.   }
    ---------------------------------------------
    1.
    C Code:
    1. sophuc cong(sophuc u,sophuc v);
    2.
    C Code:
    1. void p(sophuc u);
    Tại sao hàm thứ nhất dùng kiểu sophuc mà hàm thứ hai dùng kiểu void

  7. #7
    Ngày gia nhập
    04 2008
    Bài viết
    336

    vì 1 cái có return, 1 cái không
    muốn hiểu rõ hơn bạn hãy tự hỏi cái hàm có return dùng để làm gì.
    code ra gió bão

Các đề tài tương tự

  1. Biến enum
    Gửi bởi maskofzorro trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 15-06-2013, 08:59 PM
  2. Lỗi với câu lệnh enum
    Gửi bởi dula1204 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 04-08-2012, 06:29 PM
  3. Lập trình C Cho em hỏi về enum trong C
    Gửi bởi anhut trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 07-03-2012, 08:02 PM
  4. Trả lời: 5
    Bài viết cuối: 17-09-2011, 11:57 PM
  5. Lấy dữ liệu từ cơ sở dữ liệu cho vào Enum
    Gửi bởi haiht trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 02-08-2011, 11:53 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn