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

Đề tài: hỏi về hàm

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

    Mặc định hỏi về hàm

    cho em hỏi hàm sau
    void doit (float,char,float&,char&)
    may' cai' dau' && phia' sau float va char la gi thế các bác, đọc sách nhưng chưa clear lắm.
    thanks

    Code:
    #include <iostream>
    using namespace std;
    //function used
    float computeSum(int) ; // In - number of data items
    
    //Computes average of data
    float computeAve(int,float);
    void printSumAve( int,float,float );
    int main()
    {
        int numItems;
        float sum;
        float average;
        //Read the number of items to process
        cout << " Enter the number of items to process : " ;
        cin >> numItems;
        //compute the sum of the data
        sum = computeSum(numItems);
        average = computeAve( numItems,sum);
        printSumAve(numItems,sum,average);
        return 0 ;
    }
    // insert definitions for functions compute sum, comute ave
    // and printsumAve here
    float computeSum(int numItems)
    {
          //local data ...
          float item;
          float sum;
          
          // read each data item and accumulate it in sum
          sum = 0.0;
          for (int count = 0;count <  numItems ; count ++ )
          {
              cout << "Enter a number to be added : ";
              cin >> item;
              sum= sum + item;
              }
              //end for
              return sum;
              }//end computeSum
    float computeAve
    (int numItems,float sum)
    {
         //compute the average of the data
         if (numItems< 1)
         {
                       cout << "Invialid value for numItems = " << numItems<< endl;
                       cout << endl;
                       cout << "Aveage not computed. " << endl;
                       return 0.0; // return for invalid input 
                       }//end if
                       return sum/ numItems;
                       }
                       
     void printSumave
                       (int numItems,float sum,float average)
                       {
                            if (numItems > 0)
                            {
                                         cout << " The number of items is" << numItems << endl;
                                         cout << " The sum of the data is " << sum << endl;
                                         cout << " The average of the data is " << average << endl;
                                         }
                                         else
                                         {
                                             cout << " Invalid number of items = " << numItems<< endl;
                                             cout << " Sum and average are not defined . " << endl;
                                             cout << " No printing done. Execution terminated " << endl;
                                             }
                                             }
    them cái program này luôn, nó báo lỗi linking với hàm display
    Đã được chỉnh sửa lần cuối bởi Se7Olutionyg : 23-10-2008 lúc 08:47 AM.

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Cái đó là truyền tham chiếu, nếu muốn chỉnh sữa giá trị của biến truyền vào thì có 2 cách :
    - truyền tham chiếu
    - truyền con trỏ
    Code trên cơ bản cho nên tui đưa ví dụ, cậu coi đó mà sữa vì cậu mới học nên tui sữa cho cậu cũng bằng 0 :
    C++ Code:
    1. #include <iostream>
    2.  
    3. using namespace std;
    4.  
    5. void passByPointer( int* N ) {
    6.     *N = 11;
    7. }
    8.  
    9. void passByReference( int& N ) {
    10.     N = 10;
    11. }
    12.  
    13. void passByValue( int N ) {
    14.     N = 10;
    15. }
    16.  
    17. int main()
    18. {
    19.     int N;
    20.  
    21.     passByValue( N );
    22.     cout << N << endl;
    23.  
    24.     passByReference( N );
    25.     cout << N << endl;
    26.  
    27.     passByPointer( &N );
    28.     cout << N << endl;
    29.  
    30.     return 0;
    31. }
    - Chú ý khi ở vị trí tham số truyền vào và khi nó nằm bên trái 1 vế tức là
    C++ Code:
    1. void passByReference( int& N ) {
    Dấu & hiểu là tham chiếu đến N.
    Hoặc :
    C++ Code:
    1. int& ref_toN = N;
    Nhưng khi nó ở vế phải :
    C++ Code:
    1. int* pointer = &N;
    thì & hiểu là địa chỉ của N.

  3. #3
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Code:
    #include <iostream>
    using namespace std;
    //function used
    float computeSum(int a) ; // In - number of data items
    
    //Computes average of data
    float computeAve(int a,float b);
    void intong(int numItems,float sum,float average)
    {
             if (numItems > 0)
             {
                                         cout << " The number of items is" << numItems << endl;
                                         cout << " The sum of the data is " << sum << endl;
                                         cout << " The average of the data is " << average << endl;
             }
             else
             {
                                             cout << " Invalid number of items = " << numItems<< endl;
                                             cout << " Sum and average are not defined . " << endl;
                                             cout << " No printing done. Execution terminated " << endl;
             }
    }
    int main()
    {
        int numItems;
        float sum;
        float average;
        //Read the number of items to process
        cout << " Enter the number of items to process : " ;
        cin >> numItems;
        //compute the sum of the data
        sum = computeSum(numItems);
        average = computeAve( numItems,sum);
        intong(numItems,sum,average);
        return 0 ;
    }
    // insert definitions for functions compute sum, comute ave
    // and printsumAve here
    float computeSum(int numItems)
    {
          //local data ...
          float item;
          float sum;
    
          // read each data item and accumulate it in sum
          sum = 0;
          for (int count = 0;count <  numItems ; count ++ )
          {
              cout << "Enter a number to be added : ";
              cin >> item;
              sum= sum + item;
          }
              //end for
          return sum;
    }//end computeSum
    float computeAve(int numItems,float sum)
    {
         //compute the average of the data
         if (numItems< 1)
         {
                       cout << "Invialid value for numItems = " << numItems<< endl;
                       cout << endl;
                       cout << "Aveage not computed. " << endl;
                       return 0; // return for invalid input
         }//end if
         return sum/numItems;
    }
    hic,cậu chọn đâu chọn tài thế,chọn ngay tên của hàm có sẵn để đặt tên
    với cả cậu khai báo biến cho hàm cũng linh tinh quá,vì thế loạn lên

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    hic,cậu chọn đâu chọn tài thế,chọn ngay tên của hàm có sẵn để đặt tên
    với cả cậu khai báo biến cho hàm cũng linh tinh quá,vì thế loạn lên
    Hàm nào có sẵn vậy em ?

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

    Trích dẫn Nguyên bản được gửi bởi Se7Olutionyg Xem bài viết
    cho em hỏi hàm sau
    void doit (float,char,float&,char&)
    may' cai' dau' && phia' sau float va char la gi thế các bác, đọc sách nhưng chưa clear lắm.
    thanks

    Code:
    #include <iostream>
    using namespace std;
    //function used
    float computeSum(int) ; // In - number of data items
    
    //Computes average of data
    float computeAve(int,float);
    void printSumAve( int,float,float );
    int main()
    {
        int numItems;
        float sum;
        float average;
        //Read the number of items to process
        cout << " Enter the number of items to process : " ;
        cin >> numItems;
        //compute the sum of the data
        sum = computeSum(numItems);
        average = computeAve( numItems,sum);
        printSumAve(numItems,sum,average);
        return 0 ;
    }
    // insert definitions for functions compute sum, comute ave
    // and printsumAve here
    float computeSum(int numItems)
    {
          //local data ...
          float item;
          float sum;
          
          // read each data item and accumulate it in sum
          sum = 0.0;
          for (int count = 0;count <  numItems ; count ++ )
          {
              cout << "Enter a number to be added : ";
              cin >> item;
              sum= sum + item;
              }
              //end for
              return sum;
              }//end computeSum
    float computeAve
    (int numItems,float sum)
    {
         //compute the average of the data
         if (numItems< 1)
         {
                       cout << "Invialid value for numItems = " << numItems<< endl;
                       cout << endl;
                       cout << "Aveage not computed. " << endl;
                       return 0.0; // return for invalid input 
                       }//end if
                       return sum/ numItems;
                       }
                       
     void printSumave
                       (int numItems,float sum,float average)
                       {
                            if (numItems > 0)
                            {
                                         cout << " The number of items is" << numItems << endl;
                                         cout << " The sum of the data is " << sum << endl;
                                         cout << " The average of the data is " << average << endl;
                                         }
                                         else
                                         {
                                             cout << " Invalid number of items = " << numItems<< endl;
                                             cout << " Sum and average are not defined . " << endl;
                                             cout << " No printing done. Execution terminated " << endl;
                                             }
                                             }
    them cái program này luôn, nó báo lỗi linking với hàm display
    Bài này của cậu khai báo hàm "printSumave" sai chính tả rồi. Cậu phải sửa lại là "printSumAve" thì nó sẽ chạy ngon lành.

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