Difference between revisions of "C-and-C++/C2/First-C-Program/English-timed"
From Script | Spoken-Tutorial
(15 intermediate revisions by 6 users not shown) | |||
Line 2: | Line 2: | ||
|'''Time''' | |'''Time''' | ||
− | |||
|'''Narration''' | |'''Narration''' | ||
− | |||
|- | |- | ||
− | | 00 | + | | 00:01 |
− | | | + | | Welcome to the spoken tutorial on '''First C program'''. |
|- | |- | ||
− | | 00 | + | | 00:05 |
| In this tutorial, we will learn | | In this tutorial, we will learn | ||
|- | |- | ||
− | | 00 | + | | 00:08 |
| How to write a simple C program | | How to write a simple C program | ||
|- | |- | ||
− | | 00 | + | | 00:11 |
| How to compile it | | How to compile it | ||
|- | |- | ||
− | | 00 | + | | 00:13 |
− | | How to execute it | + | | How to execute it We will also explain some common errors and their solutions. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
− | |00 | + | |00:18 |
− | + | | To record this tutorial, I am using | |
|- | |- | ||
− | | 00 | + | | 00:21 |
− | |Ubuntu operating system version 11.10 and gcc Compiler version 4.6.1 on Ubuntu | + | |Ubuntu operating system version 11.10 and gcc Compiler version 4.6.1 on Ubuntu. |
|- | |- | ||
− | | 00 | + | | 00:31 |
| To practice this tutorial, | | To practice this tutorial, | ||
|- | |- | ||
− | | 00 | + | | 00:33 |
− | |You should be familiar with Ubuntu Operating System and an Editor | + | |You should be familiar with Ubuntu Operating System and an Editor. |
|- | |- | ||
− | | 00 | + | | 00:38 |
− | |Some editors are vim and gedit | + | |Some editors are '''vim''' and '''gedit'''. |
|- | |- | ||
− | | 00 | + | | 00:42 |
− | |I will use gedit in this tutorial | + | |I will use 'gedit' in this tutorial. |
|- | |- | ||
− | | 00 | + | | 00:45 |
− | |For relevant tutorials please visit our website | + | |For relevant tutorials please visit our website which is as shown. http://spoken-tutorial.org |
|- | |- | ||
− | |00 | + | |00:51 |
− | | Let me tell you how to write a C program through an example | + | | Let me tell you how to write a C program through an example. |
|- | |- | ||
− | | 00 | + | | 00:55 |
|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. | ||
|- | |- | ||
− | | 01 | + | | 01:07 |
| Now let's open the text editor. So, at the prompt, type | | Now let's open the text editor. So, at the prompt, type | ||
|- | |- | ||
− | | 01 | + | | 01:12 |
− | |'''“gedit”''' space '''“talk”''' dot '''“c”''' space “&”''' | + | |'''“gedit”''' space '''“talk”''' dot '''“c”''' space “&”''' sign. |
|- | |- | ||
− | | 01 | + | | 01:20 |
− | |'''We use ampersand (&) to free up the prompt ''' | + | |'''We use ampersand (&) to free up the prompt. ''' |
|- | |- | ||
− | | 01 | + | | 01:24 |
− | | Please note that all the '''C''' files will have extension | + | | Please note that all the '''C''' files will have extension '''“.c”'''(dot C). |
|- | |- | ||
− | |01 | + | |01:30 |
− | | Now Press '''Enter''' | + | | Now Press '''Enter''', |
|- | |- | ||
− | | 01 | + | | 01:32 |
− | | the text editor has opened | + | | the text editor has opened. |
|- | |- | ||
− | | 01 | + | | 01:36 |
− | | Let us start to write a program | + | | Let us start to write a program. |
|- | |- | ||
− | | 01 | + | | 01:39 |
| Type double slash '''“//”''' space | | Type double slash '''“//”''' space | ||
|- | |- | ||
− | | 01 | + | | 01:42 |
|'''“My first C program”.''' | |'''“My first C program”.''' | ||
|- | |- | ||
− | |01 | + | |01:48 |
− | | Here, double slash is used to comment the line | + | | Here, double slash is used to comment the line. |
|- | |- | ||
− | | 01 | + | | 01:52 |
− | |Comments are used to understand the flow of program | + | |Comments are used to understand the flow of program. |
|- | |- | ||
− | | 01 | + | | 01:56 |
− | |It is useful for documentation | + | |It is useful for documentation. |
|- | |- | ||
− | | 01 | + | | 01:58 |
− | |It gives us information about the program | + | |It gives us information about the program. |
|- | |- | ||
− | | 02 | + | | 02:01 |
|The double slash is called as single line comment. | |The double slash is called as single line comment. | ||
|- | |- | ||
− | | 02 | + | | 02:07 |
− | | Now press '''Enter''' | + | | Now press '''Enter'''. |
|- | |- | ||
− | |02 | + | |02:09 |
− | |Type hash '''“#include”''' space opening bracket , closing bracket | + | |Type (hash) '''“#include”''' space opening bracket , closing bracket. |
|- | |- | ||
− | | 02 | + | | 02:17 |
− | | It is always a good practice to complete the brackets first, and then start writing inside it | + | | It is always a good practice to complete the brackets first, and then start writing inside it. |
|- | |- | ||
− | | 02 | + | | 02:24 |
− | | Now Inside the bracket, type'''“stdio”''' | + | | Now Inside the bracket, type'''“stdio”''' “(dot).” “'''h” '''. |
|- | |- | ||
− | | 02 | + | | 02:30 |
− | | '''stdio.h''' is a '''header file''' | + | | '''stdio.h''' is a '''header file'''. |
|- | |- | ||
− | | 02 | + | | 02:33 |
− | |A '''program''' must contain this header file when it uses standard '''input/output functions'''. | + | |A '''program''' must contain this header file when it uses standard '''input/output functions'''. |
|- | |- | ||
− | | 02 | + | | 02:41 |
− | | | + | |Now press Enter. |
− | + | ||
|- | |- | ||
− | | 02.50 | + | | 02:43 |
− | | | | + | | type '''“int” '''space''' “main” '''opening bracket, closing bracket. |
+ | |||
+ | |- | ||
+ | | 02:50 | ||
+ | | | '''main''' is a special '''function'''. | ||
|- | |- | ||
− | | 02 | + | | 02:52 |
− | |It denotes that the execution of the program begins from this line | + | |It denotes that the execution of the program begins from this line. |
|- | |- | ||
− | | 02 | + | | 02:58 |
− | |The opening bracket and | + | |The opening bracket and closing bracket is called as parenthesis. |
|- | |- | ||
− | | 03 | + | | 03:04 |
− | | Parenthesis followed by '''main''' is to tell the user that '''main''' is a '''function''' | + | | Parenthesis followed by '''main''' is to tell the user that '''main''' is a '''function'''. |
|- | |- | ||
− | | 03 | + | | 03:11 |
− | | Here the '''int''' '''main function''' takes no '''arguments''' | + | | Here the '''int''' '''main function''' takes no '''arguments'''. |
|- | |- | ||
− | | 03 | + | | 03:15 |
|It returns a value of type '''integer'''. | |It returns a value of type '''integer'''. | ||
|- | |- | ||
− | | 03 | + | | 03:18 |
| We will learn about '''data types''' in another tutorial. | | We will learn about '''data types''' in another tutorial. | ||
|- | |- | ||
− | | 03 | + | | 03:23 |
− | | Now Let us switch to the slides to know more about '''main | + | | Now Let us switch to the slides to know more about '''main''' function. Let us go to the next slide. |
|- | |- | ||
− | | 03 | + | | 03:29 |
− | | Every '''program'''should have | + | | Every '''program''' should have one main() function. |
|- | |- | ||
− | | 03 | + | | 03:33 |
− | |There should NOT be more than one main function | + | |There should NOT be more than one main function. |
|- | |- | ||
− | | 03 | + | | 03:36 |
− | |Otherwise the compiler cannot locate the beginning of the program | + | |Otherwise the compiler cannot locate the beginning of the program. |
|- | |- | ||
− | | 03 | + | | 03:41 |
− | |The empty pair of parentheses indicates that main has no '''arguments''' | + | |The empty pair of parentheses indicates that main has no '''arguments'''. |
|- | |- | ||
− | | 03 | + | | 03:46 |
|The concept of arguments will be discussed in detail in the upcoming tutorials. | |The concept of arguments will be discussed in detail in the upcoming tutorials. | ||
|- | |- | ||
− | | 03 | + | | 03:52 |
− | | Now let us come back to our program | + | | Now let us come back to our program. |
|- | |- | ||
− | | 03 | + | | 03:55 |
− | | | + | | Press '''Enter.''' |
|- | |- | ||
− | | | + | | 03:58 |
+ | | Type opening curly bracket '''“{”'''. | ||
+ | |||
+ | |- | ||
+ | | 04:00 | ||
|The opening curly bracket marks the beginning of the '''function''' '''main'''. | |The opening curly bracket marks the beginning of the '''function''' '''main'''. | ||
|- | |- | ||
− | | 04 | + | | 04:04 |
− | |Then Type closing curly bracket '''“}”''' | + | |Then Type closing curly bracket '''“}”'''. |
|- | |- | ||
− | | 04 | + | | 04:08 |
|The closing curly bracket indicates the end of the '''function''' '''main'''. | |The closing curly bracket indicates the end of the '''function''' '''main'''. | ||
|- | |- | ||
− | | 04 | + | | 04:13 |
− | | Now Inside the bracket | + | | Now Inside the bracket press '''Enter''' twice, |
|- | |- | ||
− | | 04 | + | | 04:16 |
− | | | + | |move the cursor one line up. |
|- | |- | ||
− | | 04 | + | | 04:20 |
− | | Indentation makes the code easier to read | + | | Indentation makes the code easier to read. |
|- | |- | ||
− | | 04 | + | | 04:23 |
− | |It also helps to locate errors faster | + | |It also helps to locate errors faster. |
|- | |- | ||
− | | 04 | + | | 04:25 |
|So let us give three space here | |So let us give three space here | ||
|- | |- | ||
− | | 04 | + | | 04:29 |
− | | And Type''' “printf” ''' opening bracket closing bracket '''“()” ''' | + | | And Type''' “printf” ''' opening bracket closing bracket '''“()” '''. |
|- | |- | ||
− | | 04 | + | | 04:34 |
− | |'''printf '''is a standard C function to print the output on the terminal | + | |'''printf '''is a standard C function to print the output on the terminal. |
|- | |- | ||
− | | 04 | + | | 04:39 |
− | | Here inside the brackets, within double quotes | + | | Here, inside the brackets, within the double quotes. |
|- | |- | ||
− | | 04 | + | | 04:43 |
− | |Anything within the double quotes in the printf statement will be printed on the terminal. | + | |Anything within the double quotes, in the printf statement, will be printed on the terminal. |
|- | |- | ||
− | | 04 | + | | 04:50 |
− | |Type'''“Talk To a Teacher '''backslash '''n”''' | + | |Type'''“Talk To a Teacher '''backslash '''n”'''. |
|- | |- | ||
− | | | + | | 04:59 |
− | |Backslash n '''“\n” '''signifies newline | + | |Backslash n '''“\n” '''signifies newline. |
|- | |- | ||
− | | 05 | + | | 05:03 |
− | |As a result, after execution of the '''printf '''function, the cursor moves to the new line | + | |As a result, after execution of the '''printf '''function, the cursor moves to the new line. |
|- | |- | ||
− | | 05 | + | | 05:10 |
− | | Every '''C''' statement must end with a '''semicolon “;”''' | + | | Every '''C''' statement must end with a '''semicolon “;”'''. |
|- | |- | ||
− | | 05 | + | | 05:15 |
|Hence, type it at the end of this line. | |Hence, type it at the end of this line. | ||
|- | |- | ||
− | | 05 | + | | 05:19 |
|'''Semicolon''' acts as a statement terminator. | |'''Semicolon''' acts as a statement terminator. | ||
|- | |- | ||
− | |05 | + | |05:24 |
− | |Now press '''Enter''' give three space here | + | |Now press '''Enter''' give three space here. |
|- | |- | ||
− | |05 | + | |05:27 |
− | | And type '''“return”''' space''' “0”''' and a '''semicolon''' | + | | And type '''“return”''' space''' “0”''' and a '''semicolon'''. |
|- | |- | ||
− | | 05 | + | | 05:34 |
− | | This statement returns the integer zero | + | | This statement returns the integer zero. |
|- | |- | ||
− | | 05 | + | | 05:38 |
− | |An integer has to be returned for this function because the function type is '''int''' | + | |An integer has to be returned for this function because the function type is '''int'''. |
|- | |- | ||
− | | 05 | + | | 05:45 |
− | |The '''return''' statement marks the end of executable statements | + | |The '''return''' statement marks the end of executable statements. |
|- | |- | ||
− | | 05 | + | | 05:51 |
|We will learn more about the returned values in another tutorial. | |We will learn more about the returned values in another tutorial. | ||
|- | |- | ||
− | | 05 | + | | 05:55 |
− | | Now click on"'''Save'''" button to save the file | + | | Now click on"'''Save'''" button to save the file. |
|- | |- | ||
− | | 06 | + | | 06:00 |
− | |It is a good habit to save files frequently | + | |It is a good habit to save files frequently. |
|- | |- | ||
− | | 06 | + | | 06:03 |
− | |This will protect you from sudden power failures | + | |This will protect you from sudden power failures. |
|- | |- | ||
− | | 06 | + | | 06:05 |
|It will also be useful in case the applications were to crash. | |It will also be useful in case the applications were to crash. | ||
|- | |- | ||
− | | 06 | + | | 06:10 |
− | | Let us now compile the program come back to a terminal. | + | | Let us now compile the program, come back to a terminal. |
|- | |- | ||
− | | 06 | + | | 06:15 |
− | |Type '''“gcc”''' space '''“talk.c”''' space hyphen “-'''o”''' space '''“myoutput”''' | + | |Type '''“gcc”''' space '''“talk.c”''' space hyphen “-'''o”''' space '''“myoutput”''', |
|- | |- | ||
− | | 06 | + | | 06:24 |
− | | '''gcc''' is the compiler | + | | '''gcc''' is the compiler, |
|- | |- | ||
− | | 06 | + | | 06:27 |
|'''talk.c''' is our filename . | |'''talk.c''' is our filename . | ||
|- | |- | ||
− | | 06 | + | | 06:30 |
− | |'''-o''' '''myoutput''' says that the executable should go to the file '''myoutput''' | + | |'''-o''' '''myoutput''' says that the executable should go to the file '''myoutput'''. |
|- | |- | ||
− | | 06 | + | | 06:37 |
− | | Now Press''' Enter | + | | Now Press''' Enter'''. |
|- | |- | ||
− | | 06 | + | | 06:39 |
− | |We see that the program is compiled | + | |We see that the program is compiled. |
|- | |- | ||
− | | 06 | + | | 06:42 |
− | |By typing '''ls -lrt''', we can see that '''myoutput''' is the last file to be created | + | |By typing '''ls space (hypen) -lrt''', we can see that '''myoutput''' is the last file to be created. |
|- | |- | ||
− | | 06 | + | | 06:54 |
− | |To execute the program, type dot slash '''“./myoutput” ''' press '''Enter.''' | + | |To execute the program, type (dot slash)'''“./myoutput” ''', press '''Enter.''' |
|- | |- | ||
− | |07 | + | |07:01 |
| Here the output is displayed as '''“Talk To a Teacher”.''' | | Here the output is displayed as '''“Talk To a Teacher”.''' | ||
|- | |- | ||
− | | 07 | + | | 07:06 |
− | | As I said before, return is the last statement to be executed | + | | As I said before, return is the last statement to be executed. |
|- | |- | ||
− | | 07 | + | | 07:10 |
− | |Thus after the return statement nothing will be executed. Let us try it out. | + | |Thus, after the return statement nothing will be executed. Let us try it out. |
|- | |- | ||
− | |07 | + | |07:15 |
| come back to our program. | | come back to our program. | ||
|- | |- | ||
− | | 07 | + | | 07:17 |
− | | After the '''return''' statement, let us include one more printf statement | + | | After the '''return''' statement, let us include one more '''printf''' statement, |
|- | |- | ||
− | | 07.35 | + | | 07:22 |
+ | | give space here, type printf opening bracket, closing bracket. | ||
+ | |||
+ | |- | ||
+ | | 07:27 | ||
+ | | Inside the bracket within the double quotes type Welcome backslash n , at the end type a semicolon. | ||
+ | |- | ||
+ | | 07:35 | ||
| Now click on save. | | Now click on save. | ||
|- | |- | ||
− | | 07 | + | | 07:37 |
|Let us compile and execute come back to our terminal. | |Let us compile and execute come back to our terminal. | ||
|- | |- | ||
− | |07 | + | |07:41 |
| you can recall the previously entered commands by using '''up arrow'''key. | | you can recall the previously entered commands by using '''up arrow'''key. | ||
|- | |- | ||
− | | 07 | + | | 07:46 |
− | |That is what I did now | + | |That is what I did now. |
|- | |- | ||
− | | 07 | + | | 07:51 |
− | |We see that the second | + | |We see that the second statement '''welcome''' is not executed. |
|- | |- | ||
− | | 07 | + | | 07:58 |
− | | Now come back to our program | + | | Now come back to our program. |
|- | |- | ||
− | | 08 | + | | 08:00 |
− | |Let us write the 'Welcome' statement above the return statement | + | |Let us write the 'Welcome' statement above the return statement. |
|- | |- | ||
− | | 08 | + | | 08:06 |
− | | Click on | + | | Click on ''' Save.''' |
|- | |- | ||
− | | 08 | + | | 08:09 |
− | |Let us compile and execute | + | |Let us compile and execute. |
|- | |- | ||
− | | 08 | + | | 08:15 |
− | |We see that the second '''printf''' statement ''welcome'' has also | + | |We see that the second '''printf''' statement ''welcome'' has also been executed. |
|- | |- | ||
− | | 08 | + | | 08:23 |
| Now let us see the common errors which we can come across. Come back to our program. | | Now let us see the common errors which we can come across. Come back to our program. | ||
− | |||
|- | |- | ||
− | | 08 | + | | 08:29 |
− | | Suppose here I will | + | | Suppose here I will miss the dot in '''“stdio.h”''', click on '''Save.''' |
− | + | ||
|- | |- | ||
− | | 08 | + | | 08:36 |
| Let us compile and execute . | | Let us compile and execute . | ||
|- | |- | ||
− | | 08 | + | | 08:41 |
− | |We see that | + | |We see that there is a fatal error at line no.2 in our '''talk.c''' file. |
|- | |- | ||
− | | 08 | + | | 08:48 |
− | | | + | |The compiler cannot find a '''header file''' with the name '''“stdioh”'''. Hence it is giving an error "no such file or directory". |
|- | |- | ||
− | | 08 | + | | 08:59 |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|And the compilation is terminated. | |And the compilation is terminated. | ||
|- | |- | ||
− | | 09 | + | | 09:03 |
− | |Let us now fix the error come back to a | + | |Let us now fix the error come back to a program. Reinsert the dot '''“.”''', click on Save. |
− | + | ||
|- | |- | ||
− | | 09 | + | | 09:11 |
− | | Let us compile and execute | + | | Let us compile and execute. Yes, it is working. |
|- | |- | ||
− | | 09 | + | | 09:19 |
− | | I will show you another common error | + | | I will show you another common error. |
|- | |- | ||
− | |09 | + | |09:22 |
|Let us switch back to the program. | |Let us switch back to the program. | ||
− | |||
|- | |- | ||
− | | 09 | + | | 09:25 |
− | | Now, suppose here | + | | Now, suppose here I will miss the '''semicolon''' at the end of the line. |
|- | |- | ||
− | | 09 | + | | 09:31 |
− | | Click on '''Save'''.Let us compile and execute | + | | Click on '''Save'''. Let us compile and execute. |
|- | |- | ||
− | | 09 | + | | 09:41 |
− | | We see that there is an error at line no.6 in our talk.c file. | + | | We see that there is an error at line no.6 in our talk.c file. that "expected ';' (semicolon) before 'printf'". |
|- | |- | ||
− | | 09 | + | | 09:51 |
− | |Come back to our program. | + | |Come back to our program. |
+ | |- | ||
+ | | 09:54 | ||
+ | |As I said before, semicolon acts as a statement terminator. | ||
|- | |- | ||
− | | 09 | + | | 09:58 |
|So it will search for it at the end of the line.5 and at the beginning of the line.6. | |So it will search for it at the end of the line.5 and at the beginning of the line.6. | ||
|- | |- | ||
− | | 10 | + | | 10:06 |
− | | This is line 6 | + | | This is line 6. |
|- | |- | ||
− | | 10 | + | | 10:09 |
− | | This is the last place where you can put the '''semicolon''' | + | | This is the last place where you can put the '''semicolon'''. |
|- | |- | ||
− | | 10 | + | | 10:12 |
− | |Recall that the compiler also | + | |Recall that the compiler also gives the error message on line 6. |
|- | |- | ||
− | | 10 | + | | 10:18 |
| Let us try what happens if we put the semicolon here. | | Let us try what happens if we put the semicolon here. | ||
|- | |- | ||
− | | 10 | + | | 10:23 |
| Click on '''Save''' . | | Click on '''Save''' . | ||
|- | |- | ||
− | | 10 | + | | 10:26 |
− | |Let us | + | |Let us Compile and execute. |
|- | |- | ||
− | | 10 | + | | 10:30 |
− | | | + | |Yes, it is working. |
− | + | ||
− | + | ||
+ | |- | ||
+ | | 10:32 | ||
+ | |Now come back to our program. Let us type the ''semicolon'' here at the end of this line | ||
|- | |- | ||
− | | 10 | + | | 10:40 |
− | | | + | | as it is a conventional practice to type the ''semicolon'' at the end of the line. |
+ | |- | ||
+ | | 10:46 | ||
+ | | Now click on '''Save.''' | ||
|- | |- | ||
− | | 10 | + | | 10:49 |
− | | | + | | Let us Compile and execute. Yes it is working. |
− | + | ||
|- | |- | ||
− | | 10 | + | | 10:54 |
− | | | + | |Now let us go back to our slides. |
|- | |- | ||
− | |10 | + | |10:57 |
| As an Assignment | | As an Assignment | ||
|- | |- | ||
− | | 10 | + | | 10:59 |
|Write a program to print "Welcome to the World of C" | |Write a program to print "Welcome to the World of C" | ||
|- | |- | ||
− | | 11 | + | | 11:02 |
|See what happens if '''“\n”''' is not included in the '''printf''' statement. | |See what happens if '''“\n”''' is not included in the '''printf''' statement. | ||
|- | |- | ||
− | | 11 | + | | 11:08 |
− | | This brings us to the end of this tutorial | + | | This brings us to the end of this tutorial. |
|- | |- | ||
− | | 11 | + | | 11:12 |
− | | Watch the video available at the link shown | + | | Watch the video available at the link shown below, |
|- | |- | ||
− | | 11 | + | | 11:15 |
− | |It summarises the Spoken Tutorial project | + | |It summarises the Spoken Tutorial project. |
|- | |- | ||
− | | 11 | + | | 11:18 |
|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. | ||
|- | |- | ||
− | | 11 | + | | 11:22 |
| The Spoken Tutorial Project Team | | The Spoken Tutorial Project Team | ||
|- | |- | ||
− | | 11 | + | | 11:24 |
− | |Conducts workshops using spoken tutorials | + | |Conducts workshops using spoken tutorials. |
|- | |- | ||
− | | 11 | + | | 11:28 |
− | |Gives certificates to those who pass an online test | + | |Gives certificates to those who pass an online test. |
|- | |- | ||
− | | 11 | + | | 11:31 |
|For more details, please write to contact [at] spoken hyphen tutorial dot org | |For more details, please write to contact [at] spoken hyphen tutorial dot org | ||
|- | |- | ||
− | |11 | + | |11:38 |
− | | 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. |
|- | |- | ||
− | | 11 | + | | 11:42 |
− | |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. |
|- | |- | ||
− | | 11 | + | | 11:47 |
− | |More information on this Mission is available at: | + | |More information on this Mission is available at the link shown below: |
|- | |- | ||
− | | 11 | + | | 11:51 |
− | | This is Ashwini Patil from IIT Bombay. Thank you for | + | | This is Ashwini Patil from IIT Bombay signing off. Thank you for watching. |
|} | |} |
Latest revision as of 16:32, 7 March 2017
Time | Narration |
00:01 | Welcome to the spoken tutorial on First C program. |
00:05 | In this tutorial, we will learn |
00:08 | How to write a simple C program |
00:11 | How to compile it |
00:13 | How to execute it We will also explain some common errors and their solutions. |
00:18 | To record this tutorial, I am using |
00:21 | Ubuntu operating system version 11.10 and gcc Compiler version 4.6.1 on Ubuntu. |
00:31 | To practice this tutorial, |
00:33 | You should be familiar with Ubuntu Operating System and an Editor. |
00:38 | Some editors are vim and gedit. |
00:42 | I will use 'gedit' in this tutorial. |
00:45 | For relevant tutorials please visit our website which is as shown. http://spoken-tutorial.org |
00:51 | Let me tell you how to write a C program through an example. |
00:55 | Open the terminal window by pressing Ctrl, Alt and T keys simultaneously on your keyboard. |
01:07 | Now let's open the text editor. So, at the prompt, type |
01:12 | “gedit” space “talk” dot “c” space “&” sign. |
01:20 | We use ampersand (&) to free up the prompt. |
01:24 | Please note that all the C files will have extension “.c”(dot C). |
01:30 | Now Press Enter, |
01:32 | the text editor has opened. |
01:36 | Let us start to write a program. |
01:39 | Type double slash “//” space |
01:42 | “My first C program”. |
01:48 | Here, double slash is used to comment the line. |
01:52 | Comments are used to understand the flow of program. |
01:56 | It is useful for documentation. |
01:58 | It gives us information about the program. |
02:01 | The double slash is called as single line comment. |
02:07 | Now press Enter. |
02:09 | Type (hash) “#include” space opening bracket , closing bracket. |
02:17 | It is always a good practice to complete the brackets first, and then start writing inside it. |
02:24 | Now Inside the bracket, type“stdio” “(dot).” “h” . |
02:30 | stdio.h is a header file. |
02:33 | A program must contain this header file when it uses standard input/output functions. |
02:41 | Now press Enter. |
02:43 | type “int” space “main” opening bracket, closing bracket. |
02:50 | main is a special function. |
02:52 | It denotes that the execution of the program begins from this line. |
02:58 | The opening bracket and closing bracket is called as parenthesis. |
03:04 | Parenthesis followed by main is to tell the user that main is a function. |
03:11 | Here the int main function takes no arguments. |
03:15 | It returns a value of type integer. |
03:18 | We will learn about data types in another tutorial. |
03:23 | Now Let us switch to the slides to know more about main function. Let us go to the next slide. |
03:29 | Every program should have one main() function. |
03:33 | There should NOT be more than one main function. |
03:36 | Otherwise the compiler cannot locate the beginning of the program. |
03:41 | The empty pair of parentheses indicates that main has no arguments. |
03:46 | The concept of arguments will be discussed in detail in the upcoming tutorials. |
03:52 | Now let us come back to our program. |
03:55 | Press Enter. |
03:58 | Type opening curly bracket “{”. |
04:00 | The opening curly bracket marks the beginning of the function main. |
04:04 | Then Type closing curly bracket “}”. |
04:08 | The closing curly bracket indicates the end of the function main. |
04:13 | Now Inside the bracket press Enter twice, |
04:16 | move the cursor one line up. |
04:20 | Indentation makes the code easier to read. |
04:23 | It also helps to locate errors faster. |
04:25 | So let us give three space here |
04:29 | And Type “printf” opening bracket closing bracket “()” . |
04:34 | printf is a standard C function to print the output on the terminal. |
04:39 | Here, inside the brackets, within the double quotes. |
04:43 | Anything within the double quotes, in the printf statement, will be printed on the terminal. |
04:50 | Type“Talk To a Teacher backslash n”. |
04:59 | Backslash n “\n” signifies newline. |
05:03 | As a result, after execution of the printf function, the cursor moves to the new line. |
05:10 | Every C statement must end with a semicolon “;”. |
05:15 | Hence, type it at the end of this line. |
05:19 | Semicolon acts as a statement terminator. |
05:24 | Now press Enter give three space here. |
05:27 | And type “return” space “0” and a semicolon. |
05:34 | This statement returns the integer zero. |
05:38 | An integer has to be returned for this function because the function type is int. |
05:45 | The return statement marks the end of executable statements. |
05:51 | We will learn more about the returned values in another tutorial. |
05:55 | Now click on"Save" button to save the file. |
06:00 | It is a good habit to save files frequently. |
06:03 | This will protect you from sudden power failures. |
06:05 | It will also be useful in case the applications were to crash. |
06:10 | Let us now compile the program, come back to a terminal. |
06:15 | Type “gcc” space “talk.c” space hyphen “-o” space “myoutput”, |
06:24 | gcc is the compiler, |
06:27 | talk.c is our filename . |
06:30 | -o myoutput says that the executable should go to the file myoutput. |
06:37 | Now Press Enter. |
06:39 | We see that the program is compiled. |
06:42 | By typing ls space (hypen) -lrt, we can see that myoutput is the last file to be created. |
06:54 | To execute the program, type (dot slash)“./myoutput” , press Enter. |
07:01 | Here the output is displayed as “Talk To a Teacher”. |
07:06 | As I said before, return is the last statement to be executed. |
07:10 | Thus, after the return statement nothing will be executed. Let us try it out. |
07:15 | come back to our program. |
07:17 | After the return statement, let us include one more printf statement, |
07:22 | give space here, type printf opening bracket, closing bracket. |
07:27 | Inside the bracket within the double quotes type Welcome backslash n , at the end type a semicolon. |
07:35 | Now click on save. |
07:37 | Let us compile and execute come back to our terminal. |
07:41 | you can recall the previously entered commands by using up arrowkey. |
07:46 | That is what I did now. |
07:51 | We see that the second statement welcome is not executed. |
07:58 | Now come back to our program. |
08:00 | Let us write the 'Welcome' statement above the return statement. |
08:06 | Click on Save. |
08:09 | Let us compile and execute. |
08:15 | We see that the second printf statement welcome has also been executed. |
08:23 | Now let us see the common errors which we can come across. Come back to our program. |
08:29 | Suppose here I will miss the dot in “stdio.h”, click on Save. |
08:36 | Let us compile and execute . |
08:41 | We see that there is a fatal error at line no.2 in our talk.c file. |
08:48 | The compiler cannot find a header file with the name “stdioh”. Hence it is giving an error "no such file or directory". |
08:59 | And the compilation is terminated. |
09:03 | Let us now fix the error come back to a program. Reinsert the dot “.”, click on Save. |
09:11 | Let us compile and execute. Yes, it is working. |
09:19 | I will show you another common error. |
09:22 | Let us switch back to the program. |
09:25 | Now, suppose here I will miss the semicolon at the end of the line. |
09:31 | Click on Save. Let us compile and execute. |
09:41 | We see that there is an error at line no.6 in our talk.c file. that "expected ';' (semicolon) before 'printf'". |
09:51 | Come back to our program. |
09:54 | As I said before, semicolon acts as a statement terminator. |
09:58 | So it will search for it at the end of the line.5 and at the beginning of the line.6. |
10:06 | This is line 6. |
10:09 | This is the last place where you can put the semicolon. |
10:12 | Recall that the compiler also gives the error message on line 6. |
10:18 | Let us try what happens if we put the semicolon here. |
10:23 | Click on Save . |
10:26 | Let us Compile and execute. |
10:30 | Yes, it is working. |
10:32 | Now come back to our program. Let us type the semicolon here at the end of this line |
10:40 | as it is a conventional practice to type the semicolon at the end of the line. |
10:46 | Now click on Save. |
10:49 | Let us Compile and execute. Yes it is working. |
10:54 | Now let us go back to our slides. |
10:57 | As an Assignment |
10:59 | Write a program to print "Welcome to the World of C" |
11:02 | See what happens if “\n” is not included in the printf statement. |
11:08 | This brings us to the end of this tutorial. |
11:12 | Watch the video available at the link shown below, |
11:15 | It summarises the Spoken Tutorial project. |
11:18 | If you do not have good bandwidth, you can download and watch it. |
11:22 | The Spoken Tutorial Project Team |
11:24 | Conducts workshops using spoken tutorials. |
11:28 | Gives certificates to those who pass an online test. |
11:31 | For more details, please write to contact [at] spoken hyphen tutorial dot org |
11:38 | Spoken Tutorial Project is a part of the Talk to a Teacher project. |
11:42 | It is supported by the National Mission on Education through ICT, MHRD, Government of India. |
11:47 | More information on this Mission is available at the link shown below: |
11:51 | This is Ashwini Patil from IIT Bombay signing off. Thank you for watching. |
Contributors and Content Editors
Ashwini, Devraj, Krupali, PoojaMoolya, Pratik kamble, Sakinashaikh, Sandhya.np14, Sanmugam, Sneha