Apa itu Function ? - Functions CSC128 | Aimanayie

Pages

05 March 2012

Apa itu Function ? - Functions CSC128

BAB 5 CSC128 - Functions










1- Apa itu functions ?
2- Mencipta functions
3- Style 1 - void functionName(void)
4- Style 2 - void functionName(argument(s))
5- Style 3 - non-void functionName(void)
6- Style 4 - non-void functionName(argument(s))

1. Apa itu functions ?

Function ialah subprogram yang bertindak balas terhadap data dan seringkali akan mengembalikan nilai (return). Kamu mesti sudah biasa dengan satu function yang melakukan semua proses c++ bukan : void main()

Setiap function mempunyai nama tersendiri. Apabila nama function tersebut dipanggil di dalam sesuatu program, pelaksanaan program akan ke badan function tersebut. Apabila tamat badan function tersebut, pelaksanaan akan kembali ke bahagian function di panggil, dan pelaksanaan diteruskan untuk garisan code yang seterusnya.




2. Mencipta Function

1- Declare sesuatu function. Declaration sesuatu function dipanggil function prototype, memberitahu komputer nama function, return type dan parameter function tersebut. Ia selalunya diletakkan selepas library header #include<iostream.h> atau sebelum int main() / void main().




2. Define sesuatu function. Function definition memberitahu komputer apa yang akan dilakukan di dalam sesuatu function. Function definition tidak dapat dipanggil jika ia tidak dideclare terlebih dahulu.
Function definition dan function prototype mestilah mempunyai nama , return type dan parameter yang sama. Perbezaan antara duanya ialah hanya semicolon. *lihat diagram di bawah

Function definition mempunyai header dan body yang tersendiri. Header sama seperti function prototype kecuali ia tidak mempunyai semicolon.





3- Style 1 - void functionName(void)

Style yang pertama ialah function yang akan melakukan task individu. Ia tidak akan menghantar atau menerima parameter dan tidak akan return apa-apa nilai. Perkataan void dijadikan sebagai return type dan parameter.

#include<iostream.h>

void astericks(void);   //function prototype

void main(void)
{
     cout<<"Heads up, function!\n";
     astericks( );     //function call
     cout<<"Again, function!\n";
     astericks( );    //function call
     cout<<"Job well done!\n"; //main( ) is over - ALL STOP!!
}

//function definition
void astericks(void)
{
     int count;   // declaring LOCAL variable
     for(count = 1; count<=10; count++)
          cout<<"*";

     cout<<endl;
     return;  //return value is VOID, no return
}


Resultnya ialah

Heads up, function!
**********
Again, function!
**********
Job well done!


4- Style 2 - void functionName(argument(s))

Style kedua, function akan mempunyai arguments (parameters) tetapi tidak akan mengembalikan apa-apa nilai (no return value). Argument yang disenaraikan di dalam kurungan function header menunjukkan type dan bilangan arguments yang dipassed kepada function

void sum(int x, int y, int z); //function prototype

Menggunakan nama variable di dalam function prototype sebenarnya tidak termasuk mencipta variable tersebut, ia hanya menyatakan type variable yang akan digunakan.

Di dalam program, function caller akan menghantar nilai kepada function untuk diproses di dalam function.

sum(75, 95, 83); //function call

#include<iostream.h>

void greeting(int x);   //function prototype

void main(void)
{
     greeting(5);  //function call- argument 5     
     int number;
     do
     {
          cout<<"Please enter value(1-10):\n ";
          cin>>number;
     }
     while ((number < 1) || (number > 10));
     greeting(number); //argument is a variable
     return 0;
}

//function definition
void greeting(int x)   // formal argument is x
{
     int i;   // declaring LOCAL variable
     for(i = 0; i < x; i++)
     {
          cout<<"Hi ";
     }
     cout<<endl;
     return;  //return value is VOID, no return
}

Resultnya ialah

Hi Hi Hi Hi Hi

Please enter value(1-10):
4
Hi Hi Hi Hi


5- Style 3 - non-void functionName(void)

Style yang ketiga, function tidak akan mempunyai apa-apa arguments, tetapi mempunyai return value. Sekarang, kita akan mengembalikan maklumat daripada function dengan menggunakan function return type. Return value boleh menjadi constant, satu variable, atau pun satu expression. Apa yang diperlukan ialah terdapat return type di function prototype.

return_type functionName(void) //function header
{
statements;
return (value); //value is of type return_type
}


Function caller yang mengembalikan nilai perlu mempunyai satu tempat di dalam function main untuk nilai yang direturn akan disimpan, dipaparkan atau digunakan. Fikirkan function seperti satu tangan yang sedang menghantar nilai ke function main. Function main, mesti mempunyai satu tempat untuk nilai tersebut diletakkan (variable, cout<<, proses).

contoh

x = Avg( i, j);
Function Avg takes i and j and returns a value stored in x.

cout<< num(1,3,5); 
Function num takes 1, 3 and 5 and its return value is printed

ans=add(a,b) + add(c,d); 
Function add is called twice. The return values from 2 calls are added and stored in ans.

#include<iostream.h>

void greeting(int x);   //prototype-no return
int getNumber(void);  //prototype-return integer

void main(void)
{
     greeting(5);  //function call   
     int response;
     response=getNumber( ); //call and store value
     greeting(response); //function call
     
}

//function definition - creates a line of "Hi"s
void greeting(int x)
{
     int i;    
     for(i = 0; i < x; i++)
     {
          cout<<"Hi ";
     }
     cout<<endl;  
}

//function definition - get the user's # and return it
int getNumber(void)
{
     int number;
     do
     {
          cout<<"Please enter number (1-10)\n";
          cin>>number;
     }
     while((number < 1)||(number > 10));
     return (number);
}

Resultnya ialah

Hi Hi Hi Hi Hi
Please enter number (1-10)
3
Hi Hi Hi

6- Style 4 - non-void functionName(argument(s))

Style yang keempat, function akan mempunyai arguments dan juga akan mengembalikan nilai - return value.

#include<iostream.h>

int min(int x, int y);   //function prototype

void main(void)     // driver program
{
     int test1 = 12, test2 = 10;  //arbitrary test values   
     cout<<"The minimum of "<< test1 << " and " << test2
           << " is " << min(test1, test2) << ".\n";
}

//function definition  
int min(int x, int y)
{
     int minimum;    
     if (x < y)
          minimum = x;
     else
          minimum = y;
     return (minimum);
} 

Resultnya ialah

The minimum of 12 and 10 is 10.


ps : untuk menulis program c++ yang memerlukan function, bab condition, bab looping dan sebahagian asas expression yang lain perlu diketahui. Tidak semua task sesimple yang ditunjuk di atas. Goodluck!

2 comments:

  1. bertuah kawan kawan ko kalau ambik ko jadi tutor..

    ReplyDelete
  2. YA ALLAH chapter ni payah gile :'(

    ReplyDelete

You can always make a post as a comment to my post,
but don't forget to leave the post's link at here :)