Difference between revisions of "C-and-C++/C4/Function-Call/English-timed"
From Script | Spoken-Tutorial
PoojaMoolya (Talk | contribs) |
PoojaMoolya (Talk | contribs) |
||
Line 1: | Line 1: | ||
{| border = 1 | {| border = 1 | ||
− | | | + | |Time |
− | | | + | |Narration |
|- | |- | ||
− | | 00 | + | | 00:01 |
|Welcome to the spoken tutorial on '''Function calls in C and C++''' | |Welcome to the spoken tutorial on '''Function calls in C and C++''' | ||
|- | |- | ||
− | | 00 | + | | 00:07 |
|In this tutorial we will learn about type of function calls namely | |In this tutorial we will learn about type of function calls namely | ||
|- | |- | ||
− | | 00 | + | | 00:13 |
|call by value. | |call by value. | ||
|- | |- | ||
− | | 00 | + | | 00:14 |
|call by reference. | |call by reference. | ||
|- | |- | ||
− | | 00 | + | | 00:16 |
|We will do this through an example. | |We will do this through an example. | ||
|- | |- | ||
− | | 00 | + | | 00:19 |
|To record this tutorial, I am using '''Ubuntu Operating system '''version 11.10 | |To record this tutorial, I am using '''Ubuntu Operating system '''version 11.10 | ||
|- | |- | ||
− | | 00 | + | | 00:26 |
|'''gcc''' and '''g++''' Compiler version 4.6.1 | |'''gcc''' and '''g++''' Compiler version 4.6.1 | ||
|- | |- | ||
− | | 00 | + | | 00:31 |
| Let us start with the introduction to '''functions call by value''' | | Let us start with the introduction to '''functions call by value''' | ||
|- | |- | ||
− | | 00 | + | | 00:35 |
|It is a method of passing '''arguments''' to the function. | |It is a method of passing '''arguments''' to the function. | ||
|- | |- | ||
− | | 00 | + | | 00:40 |
| When we pass a variable by value it makes a copy of the variable. | | When we pass a variable by value it makes a copy of the variable. | ||
|- | |- | ||
− | | 00 | + | | 00:45 |
|Before passing to the function. | |Before passing to the function. | ||
|- | |- | ||
− | |00 | + | |00:48 |
|Changes made to the arguments inside the function will remain in the function. | |Changes made to the arguments inside the function will remain in the function. | ||
|- | |- | ||
− | |00 | + | |00:54 |
|It will not be affected outside the function. | |It will not be affected outside the function. | ||
|- | |- | ||
− | |00 | + | |00:58 |
|Let us see a program on function call by value. | |Let us see a program on function call by value. | ||
|- | |- | ||
− | | 01 | + | | 01:02 |
|I have already typed the program on the editor. I will just open it. | |I have already typed the program on the editor. I will just open it. | ||
|- | |- | ||
− | | 01 | + | | 01:08 |
| Please note our filename is '''callbyval.c. ''' | | Please note our filename is '''callbyval.c. ''' | ||
|- | |- | ||
− | | 01 | + | | 01:13 |
|In this program we will calculate the cube of a number. Let me explain the code now. | |In this program we will calculate the cube of a number. Let me explain the code now. | ||
|- | |- | ||
− | | 01 | + | | 01:19 |
|This is our '''header file''' | |This is our '''header file''' | ||
|- | |- | ||
− | | 01 | + | | 01:21 |
|Here we have function '''cube''' having an '''argument''' as '''int x. ''' | |Here we have function '''cube''' having an '''argument''' as '''int x. ''' | ||
|- | |- | ||
− | | 01 | + | | 01:27 |
|In this function we calculate the cube of '''x''' and return the value of '''x. ''' | |In this function we calculate the cube of '''x''' and return the value of '''x. ''' | ||
|- | |- | ||
− | | 01 | + | | 01:33 |
|This is our '''main function.''' | |This is our '''main function.''' | ||
|- | |- | ||
− | |01 | + | |01:36 |
|Here we give the value of '''n''' as '''8. n''' is an integer variable | |Here we give the value of '''n''' as '''8. n''' is an integer variable | ||
|- | |- | ||
− | | 01 | + | | 01:43 |
|Then we call the function '''cube.''' | |Then we call the function '''cube.''' | ||
|- | |- | ||
− | | 01 | + | | 01:45 |
|And print the value of '''n '''and the cube of n. | |And print the value of '''n '''and the cube of n. | ||
|- | |- | ||
− | | 01 | + | | 01:49 |
|And this is our return statement. | |And this is our return statement. | ||
|- | |- | ||
− | | 01 | + | | 01:52 |
|Now let us execute the program. | |Now let us execute the program. | ||
|- | |- | ||
− | |01 | + | |01:54 |
|open the terminal window by pressing ''' Ctrl, Alt and T''' keys simultaneously on your keyboard. | |open the terminal window by pressing ''' Ctrl, Alt and T''' keys simultaneously on your keyboard. | ||
|- | |- | ||
− | |02 | + | |02:02 |
|To compile , type '''gcc space callbyval.c space hyphen o space val. Press Enter''' | |To compile , type '''gcc space callbyval.c space hyphen o space val. Press Enter''' | ||
|- | |- | ||
− | |02 | + | |02:12 |
|Now type '''./val '''(dot slash val).Press '''Enter''' | |Now type '''./val '''(dot slash val).Press '''Enter''' | ||
|- | |- | ||
− | |02 | + | |02:16 |
|The output is displayed as '''Cube of 8 is 512.''' | |The output is displayed as '''Cube of 8 is 512.''' | ||
|- | |- | ||
− | |02 | + | |02:23 |
|Now we will see function call by reference. | |Now we will see function call by reference. | ||
|- | |- | ||
− | |02 | + | |02:26 |
|Let us go back to our slides. | |Let us go back to our slides. | ||
|- | |- | ||
− | | 02 | + | | 02:29 |
|It is another method of passing '''arguments''' to the function. | |It is another method of passing '''arguments''' to the function. | ||
|- | |- | ||
− | | 02 | + | | 02:33 |
| This method copies the address of the argument instead of the value. | | This method copies the address of the argument instead of the value. | ||
|- | |- | ||
− | | 02 | + | | 02:39 |
|Changes made to the arguments inside a function can affect them outside. | |Changes made to the arguments inside a function can affect them outside. | ||
|- | |- | ||
− | |02 | + | |02:45 |
|In this we need to declare the arguments as pointer type. | |In this we need to declare the arguments as pointer type. | ||
|- | |- | ||
− | | 02 | + | | 02:50 |
| Let us see an example on function call by reference. | | Let us see an example on function call by reference. | ||
|- | |- | ||
− | | 02 | + | | 02:54 |
|Note that our filename is '''callbyref.c''' | |Note that our filename is '''callbyref.c''' | ||
|- | |- | ||
− | | 02 | + | | 02:59 |
|This is our header file as '''stdio.h''' | |This is our header file as '''stdio.h''' | ||
|- | |- | ||
− | | 03 | + | | 03:03 |
|Then we have function '''swap''' | |Then we have function '''swap''' | ||
|- | |- | ||
− | | 03 | + | | 03:06 |
|This function will exchange the values of the variables. | |This function will exchange the values of the variables. | ||
|- | |- | ||
− | | 03 | + | | 03:10 |
|Value of a will be stored in value of b and vice-versa. | |Value of a will be stored in value of b and vice-versa. | ||
|- | |- | ||
− | | 03 | + | | 03:15 |
|You can see that the '''arguments''' passed in the function are '''pointer type.''' | |You can see that the '''arguments''' passed in the function are '''pointer type.''' | ||
|- | |- | ||
− | | 03 | + | | 03:21 |
|Here we have declared an '''integer''' variable '''t.''' | |Here we have declared an '''integer''' variable '''t.''' | ||
|- | |- | ||
− | | 03 | + | | 03:25 |
|First value of a is stored in t. | |First value of a is stored in t. | ||
|- | |- | ||
− | | 03 | + | | 03:28 |
|Then value of b is stored in a. | |Then value of b is stored in a. | ||
|- | |- | ||
− | | 03 | + | | 03:32 |
| And then value of t is stored in b | | And then value of t is stored in b | ||
|- | |- | ||
− | | 03 | + | | 03:37 |
| Like this the values are exchanged. | | Like this the values are exchanged. | ||
|- | |- | ||
− | | 03 | + | | 03:40 |
|This is our '''main''' function. | |This is our '''main''' function. | ||
|- | |- | ||
− | | 03 | + | | 03:42 |
|Here we have declared two integer variables as i and j . | |Here we have declared two integer variables as i and j . | ||
|- | |- | ||
− | | 03 | + | | 03:49 |
|Then we take the values of i and j as user inputs. | |Then we take the values of i and j as user inputs. | ||
|- | |- | ||
− | | 03 | + | | 03:53 |
|Ampersand i and Ampersand j will give the memory address of i and j. | |Ampersand i and Ampersand j will give the memory address of i and j. | ||
|- | |- | ||
− | | 03 | + | | 03:59 |
|First we print the values before swapping. | |First we print the values before swapping. | ||
|- | |- | ||
− | | 04 | + | | 04:04 |
|Then we call the function '''swap''' | |Then we call the function '''swap''' | ||
|- | |- | ||
− | | 04 | + | | 04:06 |
|And then we print the values after swapping. | |And then we print the values after swapping. | ||
|- | |- | ||
− | | 04 | + | | 04:10 |
|And this is our return statement. | |And this is our return statement. | ||
|- | |- | ||
− | | 04 | + | | 04:13 |
| Now let us execute the program | | Now let us execute the program | ||
|- | |- | ||
− | | 04 | + | | 04:16 |
| Switch back to our terminal | | Switch back to our terminal | ||
|- | |- | ||
− | | 04 | + | | 04:19 |
|To compile type '''gcc space callbyref dot c space hyphen o space ref'''. Press Enter | |To compile type '''gcc space callbyref dot c space hyphen o space ref'''. Press Enter | ||
|- | |- | ||
− | | 04 | + | | 04:29 |
|Now type '''dot slash ref'''. Press Enter | |Now type '''dot slash ref'''. Press Enter | ||
|- | |- | ||
− | | 04 | + | | 04:33 |
|We see, enter the values I will enter as 6 and 4 | |We see, enter the values I will enter as 6 and 4 | ||
|- | |- | ||
− | | 04 | + | | 04:40 |
|The output is displayed as,before swapping 6 and 4 | |The output is displayed as,before swapping 6 and 4 | ||
|- | |- | ||
− | | 04 | + | | 04:44 |
|After swapping 4 and 6 | |After swapping 4 and 6 | ||
|- | |- | ||
− | | 04 | + | | 04:48 |
|Now let us see how to execute the same program in C++ | |Now let us see how to execute the same program in C++ | ||
|- | |- | ||
− | | 04 | + | | 04:53 |
|I have the code, lets go through it. | |I have the code, lets go through it. | ||
|- | |- | ||
− | | 04 | + | | 04:57 |
|This is the second program function callbyreference . | |This is the second program function callbyreference . | ||
|- | |- | ||
− | | 05 | + | | 05:01 |
|Note that our filename is '''callbyref.cpp''' | |Note that our filename is '''callbyref.cpp''' | ||
|- | |- | ||
− | | 05 | + | | 05:06 |
|Let us go through the code | |Let us go through the code | ||
|- | |- | ||
− | | 05 | + | | 05:08 |
|This is our header file as '''iostream ''' | |This is our header file as '''iostream ''' | ||
|- | |- | ||
− | | 05 | + | | 05:12 |
|Here we are using the '''std namespace''' | |Here we are using the '''std namespace''' | ||
|- | |- | ||
− | | 05 | + | | 05:16 |
|The function declaration is same in C++. | |The function declaration is same in C++. | ||
|- | |- | ||
− | | 05 | + | | 05:19 |
|In this we pass the arguments as ampersand x and ampersand y. | |In this we pass the arguments as ampersand x and ampersand y. | ||
|- | |- | ||
− | | 05 | + | | 05:25 |
| This will give the memory address of x and y. | | This will give the memory address of x and y. | ||
|- | |- | ||
− | | 05 | + | | 05:29 |
|Then we swap the values. | |Then we swap the values. | ||
|- | |- | ||
− | | 05 | + | | 05:32 |
|Rest of the code is similar to our C code. | |Rest of the code is similar to our C code. | ||
|- | |- | ||
− | | 05 | + | | 05:36 |
|The '''printf''' statement is replaced by cout and the scanf statement is replaced by cin | |The '''printf''' statement is replaced by cout and the scanf statement is replaced by cin | ||
|- | |- | ||
− | | 05 | + | | 05:44 |
|Now let us execute the program. Come back to our terminal | |Now let us execute the program. Come back to our terminal | ||
|- | |- | ||
− | | 05 | + | | 05:48 |
|To compile type; '''g++ space callbyref.cpp space hyphen o space ref1''', press Enter | |To compile type; '''g++ space callbyref.cpp space hyphen o space ref1''', press Enter | ||
|- | |- | ||
− | | 06 | + | | 06:00 |
|Now Type '''dot slash ref1,''' Press Enter | |Now Type '''dot slash ref1,''' Press Enter | ||
|- | |- | ||
− | | 06 | + | | 06:05 |
|Here it is displayed as: | |Here it is displayed as: | ||
|- | |- | ||
− | | 06 | + | | 06:07 |
|Enter values of a and b | |Enter values of a and b | ||
|- | |- | ||
− | | 06 | + | | 06:10 |
|I will enter as 4 and 3 | |I will enter as 4 and 3 | ||
|- | |- | ||
− | | 06 | + | | 06:13 |
|The output is displayed | |The output is displayed | ||
|- | |- | ||
− | | 06 | + | | 06:15 |
|'''Before swapping a and b 4 and 3''' | |'''Before swapping a and b 4 and 3''' | ||
|- | |- | ||
− | | 06 | + | | 06:19 |
|'''After swapping a and b 3 and 4''' | |'''After swapping a and b 3 and 4''' | ||
|- | |- | ||
− | | 06 | + | | 06:23 |
|This brings us to the end of this tutorial. | |This brings us to the end of this tutorial. | ||
|- | |- | ||
− | | 06 | + | | 06:26 |
|Let us go back to our slides. | |Let us go back to our slides. | ||
|- | |- | ||
− | | 06 | + | | 06:30 |
|Let us summarize, In this tutorial we learn't: | |Let us summarize, In this tutorial we learn't: | ||
|- | |- | ||
− | | 06 | + | | 06:32 |
|Function call by value. | |Function call by value. | ||
|- | |- | ||
− | | 06 | + | | 06:34 |
|And Function call by reference. | |And Function call by reference. | ||
|- | |- | ||
− | | 06 | + | | 06:37 |
|As an assignment | |As an assignment | ||
|- | |- | ||
− | | 06 | + | | 06:38 |
|Write a similar program to calculate the cube of a number. | |Write a similar program to calculate the cube of a number. | ||
|- | |- | ||
− | | 06 | + | | 06:42 |
|Using call by value in C++. | |Using call by value in C++. | ||
|- | |- | ||
− | | 06 | + | | 06:46 |
|Watch the video available at the link shown below | |Watch the video available at the link shown below | ||
|- | |- | ||
− | | 06 | + | | 06:49 |
|It summarizes the Spoken Tutorial project | |It summarizes the Spoken Tutorial project | ||
|- | |- | ||
− | | 06 | + | | 06:52 |
|If you do not have good bandwidth, you can download and watch it | |If you do not have good bandwidth, you can download and watch it | ||
|- | |- | ||
− | | 06 | + | | 06:56 |
|The Spoken Tutorial Project Team | |The Spoken Tutorial Project Team | ||
|- | |- | ||
− | | 06 | + | | 06:58 |
|Conducts workshops using spoken tutorials | |Conducts workshops using spoken tutorials | ||
|- | |- | ||
− | |07 | + | |07:01 |
|Gives certificates to those who pass an online test | |Gives certificates to those who pass an online test | ||
|- | |- | ||
− | | 07 | + | | 07:05 |
|For more details, please write to, contact@spoken-tutorial.org | |For more details, please write to, contact@spoken-tutorial.org | ||
|- | |- | ||
− | | 07 | + | | 07:11 |
|Spoken Tutorial Project is a part of the Talk to a Teacher project | |Spoken Tutorial Project is a part of the Talk to a Teacher project | ||
|- | |- | ||
− | | 07 | + | | 07:15 |
|It is supported by the National Mission on Education through ICT, MHRD, Government of India | |It is supported by the National Mission on Education through ICT, MHRD, Government of India | ||
|- | |- | ||
− | | 07 | + | | 07:23 |
|More information on this Mission is available at the link shown below | |More information on this Mission is available at the link shown below | ||
|- | |- | ||
− | | 07 | + | | 07:27 |
| This is Ashwini Patil from IIT Bombay signing off | | This is Ashwini Patil from IIT Bombay signing off | ||
|- | |- | ||
− | | 07 | + | | 07:31 |
|Thank You for joining. | |Thank You for joining. |
Revision as of 15:49, 23 June 2014
Time | Narration |
00:01 | Welcome to the spoken tutorial on Function calls in C and C++ |
00:07 | In this tutorial we will learn about type of function calls namely |
00:13 | call by value. |
00:14 | call by reference. |
00:16 | We will do this through an example. |
00:19 | To record this tutorial, I am using Ubuntu Operating system version 11.10 |
00:26 | gcc and g++ Compiler version 4.6.1 |
00:31 | Let us start with the introduction to functions call by value |
00:35 | It is a method of passing arguments to the function. |
00:40 | When we pass a variable by value it makes a copy of the variable. |
00:45 | Before passing to the function. |
00:48 | Changes made to the arguments inside the function will remain in the function. |
00:54 | It will not be affected outside the function. |
00:58 | Let us see a program on function call by value. |
01:02 | I have already typed the program on the editor. I will just open it. |
01:08 | Please note our filename is callbyval.c. |
01:13 | In this program we will calculate the cube of a number. Let me explain the code now. |
01:19 | This is our header file |
01:21 | Here we have function cube having an argument as int x. |
01:27 | In this function we calculate the cube of x and return the value of x. |
01:33 | This is our main function. |
01:36 | Here we give the value of n as 8. n is an integer variable |
01:43 | Then we call the function cube. |
01:45 | And print the value of n and the cube of n. |
01:49 | And this is our return statement. |
01:52 | Now let us execute the program. |
01:54 | open the terminal window by pressing Ctrl, Alt and T keys simultaneously on your keyboard. |
02:02 | To compile , type gcc space callbyval.c space hyphen o space val. Press Enter |
02:12 | Now type ./val (dot slash val).Press Enter |
02:16 | The output is displayed as Cube of 8 is 512. |
02:23 | Now we will see function call by reference. |
02:26 | Let us go back to our slides. |
02:29 | It is another method of passing arguments to the function. |
02:33 | This method copies the address of the argument instead of the value. |
02:39 | Changes made to the arguments inside a function can affect them outside. |
02:45 | In this we need to declare the arguments as pointer type. |
02:50 | Let us see an example on function call by reference. |
02:54 | Note that our filename is callbyref.c |
02:59 | This is our header file as stdio.h |
03:03 | Then we have function swap |
03:06 | This function will exchange the values of the variables. |
03:10 | Value of a will be stored in value of b and vice-versa. |
03:15 | You can see that the arguments passed in the function are pointer type. |
03:21 | Here we have declared an integer variable t. |
03:25 | First value of a is stored in t. |
03:28 | Then value of b is stored in a. |
03:32 | And then value of t is stored in b |
03:37 | Like this the values are exchanged. |
03:40 | This is our main function. |
03:42 | Here we have declared two integer variables as i and j . |
03:49 | Then we take the values of i and j as user inputs. |
03:53 | Ampersand i and Ampersand j will give the memory address of i and j. |
03:59 | First we print the values before swapping. |
04:04 | Then we call the function swap |
04:06 | And then we print the values after swapping. |
04:10 | And this is our return statement. |
04:13 | Now let us execute the program |
04:16 | Switch back to our terminal |
04:19 | To compile type gcc space callbyref dot c space hyphen o space ref. Press Enter |
04:29 | Now type dot slash ref. Press Enter |
04:33 | We see, enter the values I will enter as 6 and 4 |
04:40 | The output is displayed as,before swapping 6 and 4 |
04:44 | After swapping 4 and 6 |
04:48 | Now let us see how to execute the same program in C++ |
04:53 | I have the code, lets go through it. |
04:57 | This is the second program function callbyreference . |
05:01 | Note that our filename is callbyref.cpp |
05:06 | Let us go through the code |
05:08 | This is our header file as iostream |
05:12 | Here we are using the std namespace |
05:16 | The function declaration is same in C++. |
05:19 | In this we pass the arguments as ampersand x and ampersand y. |
05:25 | This will give the memory address of x and y. |
05:29 | Then we swap the values. |
05:32 | Rest of the code is similar to our C code. |
05:36 | The printf statement is replaced by cout and the scanf statement is replaced by cin |
05:44 | Now let us execute the program. Come back to our terminal |
05:48 | To compile type; g++ space callbyref.cpp space hyphen o space ref1, press Enter |
06:00 | Now Type dot slash ref1, Press Enter |
06:05 | Here it is displayed as: |
06:07 | Enter values of a and b |
06:10 | I will enter as 4 and 3 |
06:13 | The output is displayed |
06:15 | Before swapping a and b 4 and 3 |
06:19 | After swapping a and b 3 and 4 |
06:23 | This brings us to the end of this tutorial. |
06:26 | Let us go back to our slides. |
06:30 | Let us summarize, In this tutorial we learn't: |
06:32 | Function call by value. |
06:34 | And Function call by reference. |
06:37 | As an assignment |
06:38 | Write a similar program to calculate the cube of a number. |
06:42 | Using call by value in C++. |
06:46 | Watch the video available at the link shown below |
06:49 | It summarizes the Spoken Tutorial project |
06:52 | If you do not have good bandwidth, you can download and watch it |
06:56 | The Spoken Tutorial Project Team |
06:58 | Conducts workshops using spoken tutorials |
07:01 | Gives certificates to those who pass an online test |
07:05 | For more details, please write to, contact@spoken-tutorial.org |
07:11 | Spoken Tutorial Project is a part of the Talk to a Teacher project |
07:15 | It is supported by the National Mission on Education through ICT, MHRD, Government of India |
07:23 | More information on this Mission is available at the link shown below |
07:27 | This is Ashwini Patil from IIT Bombay signing off |
07:31 | Thank You for joining. |
Contributors and Content Editors
Kavita salve, Krupali, PoojaMoolya, Pratik kamble, Sandhya.np14, Sneha