Cho tui hỏi đoạn code này chút

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi chimcanhcuthuydiet, 20/11/09.

  1. chimcanhcuthuydiet

    chimcanhcuthuydiet Dragon Quest

    Tham gia ngày:
    23/7/03
    Bài viết:
    1,450
    Nơi ở:
    Tui ở nhà
    Mã:
    [COLOR="Blue"]public static double[/COLOR] cal([COLOR="blue"]int[/COLOR] hours,[COLOR="blue"]double[/COLOR] money)
            {
                [COLOR="blue"]int[/COLOR] over= 0;
                [COLOR="blue"]if [/COLOR](hours > 40)
                    over = hours - 40;
                [COLOR="blue"]int[/COLOR] regular = hours - over;
                [COLOR="blue"]return[/COLOR] (regular + over * 1.5) * money;
    
            }

    Cho tui hỏi đoạn mã trên có gì trục trặc vậy ?

    Đây là đoạn code viết theo yêu cầu tình số tiền làm theo giờ khi biết số tiền của 1 giờ và tổng thời gian làm việc. Nếu như tổng thời gian làm việc mà quá 40 tiếng, thì số tiền cho 1 giờ làm quá sẽ được tính lên gấp 1.5 lần bình thường.
    Tui viết đoạn code như trên mà thằng Manager nó cứ bảo sai là sao nhỉ? Cho nên tui mới vác lên đây nhờ các cao thủ xem dùm

    Cám ơn
     
  2. Bối Bối

    Bối Bối C O N T R A

    Tham gia ngày:
    20/2/06
    Bài viết:
    1,859
    Nơi ở:
    Ha Noi, Vietnam,
    hour*money+over*money*0,5 .
    ủa mà mình thấy cũng đúng mà :D. tính ra vẫn vậy :'>
     
  3. chimcanhcuthuydiet

    chimcanhcuthuydiet Dragon Quest

    Tham gia ngày:
    23/7/03
    Bài viết:
    1,450
    Nơi ở:
    Tui ở nhà
    Times 1.5 đó, 0.5 hồi nào.
    Như vậy cái tui viết bình thường vá tính đúng cho tất cả trường hợp giờ >0 mà đúng không ? Thế mà nó nói với tui là over trong đoạn mã tui viết sẽ không thể lớn hơn 40 được.Tui thấy được quá đi chứ nhỉ? Các cậu có ý kiến gì không?
     
  4. Alien7

    Alien7 Guest

    Tham gia ngày:
    3/4/08
    Bài viết:
    158
    Đúng hay ko chạy thử là biết, cha manager này dở hơi à :)).
     
  5. Bối Bối

    Bối Bối C O N T R A

    Tham gia ngày:
    20/2/06
    Bài viết:
    1,859
    Nơi ở:
    Ha Noi, Vietnam,
    đọc ko hiểu à [-X
    cách tính như vậy cũng giống như của ông thôi
    mà ông còn viết thừa cái regular, time lớn hơn 40 thì regular của ông là 40 rồi làm gì phải tính :)
     
  6. chimcanhcuthuydiet

    chimcanhcuthuydiet Dragon Quest

    Tham gia ngày:
    23/7/03
    Bài viết:
    1,450
    Nơi ở:
    Tui ở nhà
    Tại hạ có mắt như mù [​IMG] , thất lễ với tiền bối.
    Cách của cậu optimize hay lắm. Sau này có gì xin giúp đỡ
     
  7. CTKhuyen

    CTKhuyen

    Tham gia ngày:
    11/11/05
    Bài viết:
    2,542
    Nơi ở:
    Giang Hồ
    sao bác ko cho chạy thử,thấy cũng đâu có gì...sai :(
    bác chimcanhcut cho xin Y!M luôn,sẵn tiện xin chỉ giáo vài chiêu
     
  8. chimcanhcuthuydiet

    chimcanhcuthuydiet Dragon Quest

    Tham gia ngày:
    23/7/03
    Bài viết:
    1,450
    Nơi ở:
    Tui ở nhà
    Cho chạy thử rồi thấy hông có gì sai cả
    Cách của thằng Manager nó làm thế này
    if(hours<=40)
    return 40*money;
    else
    {
    over = hours - 40;
    return (40 + over*1.5)*money;
    }

    tui thấy cũng giống tui thui , thế mà nó cứ bắt bẻ. Thôi thì cứ code mẹ theo cách nó cho xong
    Nếu làm theo cách nghĩ của bạn Bối bối
    thì code còn ngắn và đẹp nữa

    public static double cal(int hours,double money)
    {
    int over= 0;
    if (hours > 40)
    over = hours - 40; [
    return (hours + over * 0.5) * money;

    }
    Y!M là chimcanhcuthuydiet@yahoo.com. Tui sẽ cố giúp trong khả năng của mình
     
  9. Bối Bối

    Bối Bối C O N T R A

    Tham gia ngày:
    20/2/06
    Bài viết:
    1,859
    Nơi ở:
    Ha Noi, Vietnam,
    thằng manager của cậu cũng rỗi hơi wa' :D
     
  10. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    453
    Manager của bạn thông minh nhỉ :D


    Bạn này cũng thông minh lun :D




    Giỡn chút đừng la em :'>

    Mình thấy làm như thế này là hay nhất
    Mã:
    {
        [COLOR="RoyalBlue"]if[/COLOR] (hours<=40)
            [COLOR="RoyalBlue"]return[/COLOR] hours*money;
        [COLOR="Blue"]return[/COLOR] (hours+(hours-40)*1.5)*money;
    } 
    
     
  11. Bối Bối

    Bối Bối C O N T R A

    Tham gia ngày:
    20/2/06
    Bài viết:
    1,859
    Nơi ở:
    Ha Noi, Vietnam,
    đoạn của chimcanhcut chuẩn rồi.

    cậu sai rồi :-"

    chỗ bold thành

    (40+(hours-40)*1.5)*money;// hoặc: (hours+(hours-40)*0.5)*money;

    thì đúng :-*
     
  12. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    453
    hihi,type nhanh nhằm chỗ đó :D

    Ý mình chỉ là bớt khai 1 biến và chương trình nhanh hơn thôi.

    Nhằm như cái chỗ #8 ấy mà :'>
     

Chia sẻ trang này