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

Đề tài: so sánh giá trị return của 2 hàm

  1. #1
    Ngày gia nhập
    02 2012
    Bài viết
    0

    Mặc định so sánh giá trị return của 2 hàm

    Code:
     
    các bác cho em hỏi về giá trị return với (em biết return là kết quả trả về ) nhưng so với mỗi bài thì em chưa hiểu lắm , bác nào chỉ cho em với 2 đưa ra ví dụ này:
    vd1: kiểm tra nguyên tố
    
    int NT ( int a)
    {
        int i = 0;
        for(i = 2; i <= (int)sqrt (a); i++)
        {
            if( a % i == 0)
            {
                return 0;
            }
        }
        return 1;
    }
    ở bài này return có ý nghĩ gì ...?
    còn bài này 
    vd2: viết hàm giai thừa có sử dụng đệ quy
    long giaithua (long a)
    {
      if (a > 1)
       return (a * giaithua (a-1));
      else
       return (1);//sao chỗ này ko nhận return 0 mà phải nhân return 1
    }
     
    return ở đây có ý nghĩ gì..?
    return 1 và return 0 là sao hả mấy bác 
    do em mới học c nên chưa rành lắm , không có người dạy toàn tự cày nên không hiểu lắm 
    ,bác nào biết thì giúp đỡ em với

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

    Để vào tag code C/C++ cho có màu dễ nhìn nha bạn

    vd1: thì hàm trả về 0 if a ko là số nguyên tố, 1 if là số nguyên tó
    vd2: trả về giai thừa của a

    cái return là giá trị hàm nhận được khi kết thúc xử lý (giá trị trả về), trả về cái j thì tùy bạn thôi
    khi gặp lệnh return thì nó sẻ trả về giá trị phía sau và ko thực hiện tiếp các lệnh phía sau nữa.

  3. #3
    Ngày gia nhập
    12 2011
    Bài viết
    3

    Return 1 or 0 là do mình quy định thôi bạn ah, ở vd1 của bạn thì bạn có thể đổi return 1 thanh 0 hay 0 thành 1. Nhưng thông thường giá trị đúng là 1. Còn ở vd2 thì return trả về 1 vì cái hàm đó bằng 1.

  4. #4
    Ngày gia nhập
    03 2012
    Nơi ở
    Bình Thuận(đang học ở HCM)
    Bài viết
    2

    Code:
     
    vd1: kiểm tra nguyên tố
    
    int NT ( int a)
    {
        int i = 0;
        for(i = 2; i <= (int)sqrt (a); i++)
        {
            if( a % i == 0)
            {
                return 0;
            }
        }
        return 1;
    }
    ở bài này return có ý nghĩ gì ...? Xét sự đúng sai của hàm NT: nếu đúng thì return 1,sai thì return 0;
    còn bài này 
    vd2: viết hàm giai thừa có sử dụng đệ quy
    long giaithua (long a)
    {
      if (a > 1)
       return (a * giaithua (a-1));
      else
       return (1);//sao chỗ này ko nhận return 0 mà phải nhân return 1
    }
     
    return ở đây có ý nghĩ gì..?
    Trước tiên muốn hỏi bạn là bạn học ĐỆ QUY chưa? Nếu rồi thì giải thích, còn chưa thì...
    Mình gà có người gà hơn mình! Nhưng ĐỪNG lấy đó mà TỰ CAO!
    Mình pro có người pro hơn mình! Nhưng ĐỪNG lấy đó mà TỰ TI!

  5. #5
    Ngày gia nhập
    04 2011
    Bài viết
    10

    Trích dẫn Nguyên bản được gửi bởi hauyen Xem bài viết
    Code:
     
    các bác cho em hỏi về giá trị return với (em biết return là kết quả trả về ) nhưng so với mỗi bài thì em chưa hiểu lắm , bác nào chỉ cho em với 2 đưa ra ví dụ này:
    vd1: kiểm tra nguyên tố
    
    int NT ( int a)
    {
        int i = 0;
        for(i = 2; i <= (int)sqrt (a); i++)
        {
            if( a % i == 0)
            {
                return 0;
            }
        }
        return 1;
    }
    ở bài này return có ý nghĩ gì ...?
    còn bài này 
    vd2: viết hàm giai thừa có sử dụng đệ quy
    long giaithua (long a)
    {
      if (a > 1)
       return (a * giaithua (a-1));
      else
       return (1);//sao chỗ này ko nhận return 0 mà phải nhân return 1
    }
     
    return ở đây có ý nghĩ gì..?
    return 1 và return 0 là sao hả mấy bác 
    do em mới học c nên chưa rành lắm , không có người dạy toàn tự cày nên không hiểu lắm 
    ,bác nào biết thì giúp đỡ em với
    Vd 1 : Return ở đây là để mình biết là số đó có phải là số nguyên tố hay ko(hoặc áp dụng vào các thuật toán kiểm tra), return 0 hay 1 theo mình qui đinh thôi, thường là đúng thì return 1 , sai return 0, ví dụ áp dụng vào đếm tổng số pt là số nguyên tố trong mảng a có n pt : for(int i=0;i<n;i++)
    {
    if ( NT(a[i])==1) ) // kt lần lượt các pt trong mảng a, nếu đúng (==1) thì đếm ++;
    dem++;
    }
    Còn ở ví dụ 2: return 1 là vì đó là điều kiện dừng của hàm đệ quy, bất kì hàm đệ quy nào cũng phải có đk dừng, ở đây ta có thể hiểu là số a > 1 thì tính giai thừa còn các trường hợp khác tức là a <=1 trả về 1, ví dụ : a=1 thì return 1 vì 1!=1, or các trường hợp khác cũng vậy...
    ****Quyết định cuối cùng là quyết định đúng đắn nhất****
    http://me.zing.vn/njnhlanjna/profile

  6. #6
    Ngày gia nhập
    03 2012
    Nơi ở
    Bình Thuận(đang học ở HCM)
    Bài viết
    2

    Mặc định so sánh giá trị return của 2 hàm

    Trích dẫn Nguyên bản được gửi bởi njkbh Xem bài viết
    if ( NT(a[i])==1) )
    dư dấu ) bạn ơi!
    Code:
     if ( NT(a[i])==1))
    chỗ này không cần ghi như vậy đâu! chỉ cần if(NT(a[i])) là hàm if đã xét dk rồi!
    nếu NT trả về 1 thì đúng, 0 là sai!
    Mình gà có người gà hơn mình! Nhưng ĐỪNG lấy đó mà TỰ CAO!
    Mình pro có người pro hơn mình! Nhưng ĐỪNG lấy đó mà TỰ TI!

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

    Trích dẫn Nguyên bản được gửi bởi thientrang1203 Xem bài viết
    dư dấu ) bạn ơi!
    Code:
     if ( NT(a[i])==1))
    chỗ này không cần ghi như vậy đâu! chỉ cần if(NT(a[i])) là hàm if đã xét dk rồi!
    nếu NT trả về 1 thì đúng, 0 là sai!
    uh, dư cái dấu, tại mình ghi zị cho nó rõ ràng ý mà..hì
    ****Quyết định cuối cùng là quyết định đúng đắn nhất****
    http://me.zing.vn/njnhlanjna/profile

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

  1. Lập trình C++ Return * this là gì?
    Gửi bởi luongvancong trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 29-09-2011, 03:45 PM
  2. hàm bắt buộc nhập số, nếu là số thì return 1, còn ký tự thì return 0;
    Gửi bởi khacphuctran trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 11-03-2011, 04:39 PM
  3. Khi nào cần return 0, return 1 trong int main()
    Gửi bởi jojocolumbus trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 22-06-2010, 10:23 AM
  4. Điểm khác biệt giữa get và return
    Gửi bởi EnnerIT trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 17-04-2009, 08:18 PM
  5. cách sử dụng lệnh return?????
    Gửi bởi kiensctn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 20
    Bài viết cuối: 23-03-2009, 11:06 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