c programming session 01
TRANSCRIPT
![Page 1: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/1.jpg)
Slide 1 of 53Ver. 1.0
Programming in C
In this session, you will learn to:Identify the benefits and features of C language
Use the data types available in C language
Identify the structure of C functions
Use input-output functions
Use constructs
Objectives
![Page 2: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/2.jpg)
Slide 2 of 53Ver. 1.0
Programming in C
Identifying the Benefits and Features of C Language
Ken Thompson developed a new language called B.
B language was interpreter-based, hence it was slow.
Dennis Ritchie modified B language and made it a compiler-based language.
The modified compiler-based B language is named as C.
![Page 3: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/3.jpg)
Slide 3 of 53Ver. 1.0
Programming in C
C language:Possesses powerful low-level features of second generation languages.
Provides loops and constructs available in third generation languages.
Is very powerful and flexible.
C as a Second and Third Generation Language
![Page 4: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/4.jpg)
Slide 4 of 53Ver. 1.0
Programming in C
C language:Offers all essentials of structured programming.
Has functions that work along with other user-developed functions and can be used as building blocks for advanced functions.
Offers only a handful of functions, which form the core of the language.
Has rest of the functions available in libraries. These functions are developed using the core functions.
Block Structured Language - An Advantage for Modular Programming
![Page 5: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/5.jpg)
Slide 5 of 53Ver. 1.0
Programming in C
Features of the C Language
The features that make C a widely-used language are:Pointers: Allows reference to a memory location by a name.
Memory Allocation: Allows static as well as dynamic memory allocation.
Recursion: Is a process in which a functions calls itself.
Bit Manipulation: Allows manipulation of data in its lowest form of storage.
![Page 6: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/6.jpg)
Slide 6 of 53Ver. 1.0
Programming in C
Using the Data Types Available in C language
The types of data structures provided by C can be classified under the following categories:
Fundamental data types
Derived data types
![Page 7: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/7.jpg)
Slide 7 of 53Ver. 1.0
Programming in C
Fundamental Data Types
Fundamental Data Types:Are the data types at the lowest level.
Are used for actual data representation in the memory.
Are the base for other data types.
Have machine dependent storage requirement.
Are of the following three types:
char
int
float
![Page 8: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/8.jpg)
Slide 8 of 53Ver. 1.0
Programming in C
The storage requirement for fundamental data types can be represented with the help of the following table.
Data Number of bytes on a 32-byte machine
Minimum Maximum
char 1 -128 127
int 4 -2^31 (2^31) - 1
float 4 6 digits of precision
6 digits of precision
Fundamental Data Types (Contd.)
![Page 9: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/9.jpg)
Slide 9 of 53Ver. 1.0
Programming in C
Derived Data Types
Derived Data Types:Are represented in memory as fundamental data type.
Some derived data types are:short int
long int
double float
![Page 10: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/10.jpg)
Slide 10 of 53Ver. 1.0
Programming in C
The storage requirement for derived data types can be represented with the help of the following table.
Data Number of bytes on a 32-byte
machine
Minimum Maximum
short int 2 -2^15 (2^15) - 1
long int 4 -2^31 (2^31) - 1
double float 8 12 digits of precision
6 digits of precision
Derived Data Types (Contd.)
![Page 11: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/11.jpg)
Slide 11 of 53Ver. 1.0
Programming in C
Defining Data
The syntax for defining data is:
[data type] [variable name],...;Declaration is done in the beginning of a function.
Definition for various data types is shown in the following table.
Data definition Data type Memory defined Size (bytes) Value assigned
char a, c; char ac
11
--
char a = 'Z'; char a 1 Z
int count; int count 4 -
int a, count =10; int acount
44
-10
float fnum; float fnum 4 -
float fnum1, fnum2 = 93.63;
float fnum1fnum2
44
-93.63
![Page 12: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/12.jpg)
Slide 12 of 53Ver. 1.0
Programming in C
Practice: 1.1
Write the appropriate definitions for defining the following variables:1. num to store integers.
2. chr to store a character and assign the character Z to it.
3. num to store a number and assign the value 8.93 to it.
4. i, j to store integers and assign the value 0 to j.
![Page 13: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/13.jpg)
Slide 13 of 53Ver. 1.0
Programming in C
Practice: 1.1 (Contd.)
Solution:1. int num;
2. char chr=’Z’;
3. float num = 8.93;
4. int i, j=0;
![Page 14: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/14.jpg)
Slide 14 of 53Ver. 1.0
Programming in C
Defining Strings:Syntax:
char (variable) [(number of bytes)];
Here number of bytes is one more than the number of characters to store.
To define a memory location of 10 bytes or to store 9 valid characters, the string will be defined as follows:
char string [10];
Defining Data (Contd.)
![Page 15: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/15.jpg)
Slide 15 of 53Ver. 1.0
Programming in C
Practice: 1.2
Write the appropriate definitions for defining the following strings:1. addrs to store 30 characters.
2. head to store 14 characters.
![Page 16: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/16.jpg)
Slide 16 of 53Ver. 1.0
Programming in C
Practice: 1.2 (Contd.)
Solution:1. char addrs[31];
2. char head[15];
![Page 17: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/17.jpg)
Slide 17 of 53Ver. 1.0
Programming in C
Identifying the Structure of C Functions
In C language, the functions can be categorized in the following categories:
Single-level functions
Multiple-level functions
![Page 18: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/18.jpg)
Slide 18 of 53Ver. 1.0
Programming in C
Single Level Functions
Single Level Functions:Consider the following single-level function:
main()
{
/*print a message*/
printf("Welcome to C");
}
In the preceding function:main(): Is the first function to be executed.
(): Are used for passing parameters to a function.
{}: Are used to mark the beginning and end of a function. These are mandatory in all functions.
/* */: Is used for documenting various parts of a function.
![Page 19: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/19.jpg)
Slide 19 of 53Ver. 1.0
Programming in C
Semicolon (;): Is used for marking the end of an executable line.
printf(): Is a C function for printing (displaying) constant or variable data.
Single Level Functions (Contd.)
![Page 20: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/20.jpg)
Slide 20 of 53Ver. 1.0
Programming in C
Practice: 1.3
Identify any erroneous or missing component(s) in the following functions:1. man()
{
printf("This function seems to be okay")
}
2. man()
{
/*print a line*/
printf("This function is perfect“;
}
![Page 21: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/21.jpg)
Slide 21 of 53Ver. 1.0
Programming in C
Practice: 1.3 (Contd.)
3. main()
}
printf("This has got to be right");
{
4. main()
{
This is a perfect comment line
printf("Is it okay?");
}
![Page 22: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/22.jpg)
Slide 22 of 53Ver. 1.0
Programming in C
Solution:1. man instead of main() and semi-colon missing at the end of
the printf() function.
2. mam instead of main() and ‘)’ missing at the end of the printf() function.
3. ‘}’ instead of ‘{‘ for marking the beginning of the function and ‘{’ instead of ‘}‘ for marking the end of the function.
4. Comment line should be enclose between /* and */.
Practice: 1.3 (Contd.)
![Page 23: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/23.jpg)
Slide 23 of 53Ver. 1.0
Programming in C
Multiple Level Functions
The following example shows functions at multiple levels - one being called by another:main ()
{
/* print a message */
printf ("Welcome to C.");
disp_msg ();
printf ("for good learning");
}
disp_msg ()
{
/* print another message */
printf ("All the best");
}
![Page 24: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/24.jpg)
Slide 24 of 53Ver. 1.0
Programming in C
The output of the preceding program is:Welcome to C. All the best for good learning.
In the preceding program:main(): Is the first function to be executed.
disp_msg(): Is a programmer-defined function that can be independently called by any other function.
(): Are used for passing values to functions, depending on whether the receiving function is expecting any parameter.
Semicolon (;): Is used to terminate executable lines.
Multiple Level Functions (Contd.)
![Page 25: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/25.jpg)
Slide 25 of 53Ver. 1.0
Programming in C
Practice: 1.4
Identify any erroneous or missing component(s) in the following functions:a. print_msg()
{ main();
printf(“bye”);
}
main()
{ printf(“This is the main function”);}
b. main()
{ /*call another function*/
dis_error();
}
disp_err();
{ printf(“Error in function”);}
![Page 26: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/26.jpg)
Slide 26 of 53Ver. 1.0
Programming in C
Solution:a. main() is always the first function to be executed. Further
execution of the program depends on functions invoked from main(). Here, after executing printf(), the program terminates as no other function is invoked. The function print_msg is not invoked, hence it is not executed.
b. The two functions, dis_error() and disp_error, are not the same because the function names are different.
Practice: 1.4 (Contd.)
![Page 27: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/27.jpg)
Slide 27 of 53Ver. 1.0
Programming in C
Using the Input-Output Functions
The C environment and the input and output operations are shown in the following figure.
C Environment
Standard Error Device (stderr)
Standard Input Device (stdin) Standard Output Device (stdout)
![Page 28: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/28.jpg)
Slide 28 of 53Ver. 1.0
Programming in C
Using the Input-Output Functions (Contd.)
These are assumed to be always linked to the C environment:
stdin - refers to keyboard
stdin - refers to keyboard
stdout - refers to VDU
stderr - refers to VDU
Input and output takes place as a stream of characters.
Each device is linked to a buffer through which the flow of characters takes place.
After an input operation from the standard input device, care must be taken to clear input buffer.
![Page 29: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/29.jpg)
Slide 29 of 53Ver. 1.0
Programming in C
Character-Based Input-Output Functions
Character-Based Input-Output Functions are:getc()
putc()
getchar()
putchar()
The following example uses the getc() and putc() functions:# include < stdio.h>
/* function to accept and display a character*/
main ()
{char alph;
alph = getc (stdin); /* accept a character */
fflush (stdin); /* clear the stdin buffer*/
putc (alph, stdout); /* display a character*/
}
![Page 30: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/30.jpg)
Slide 30 of 53Ver. 1.0
Programming in C
The following example uses the getchar() and putchar() functions:# include < stdio.h >
/* function to input and display a character using the function getchar() */
main () {
char c;
c = getchar ();
fflush (stdin); /* clear the buffer */
putchar (c);
}
Character-Based Input-Output Functions (Contd.)
![Page 31: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/31.jpg)
Slide 31 of 53Ver. 1.0
Programming in C
Practice: 1.5
1. Write a function to input a character and display the character input twice.
![Page 32: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/32.jpg)
Slide 32 of 53Ver. 1.0
Programming in C
Practice: 1.5 (Contd.)
Solution:
Microsoft Word Document
![Page 33: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/33.jpg)
Slide 33 of 53Ver. 1.0
Programming in C
Practice: 1.6
1. Write a function to accept and store two characters in different memory locations, and to display them one after the other using the functions getchar() and putchar().
![Page 34: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/34.jpg)
Slide 34 of 53Ver. 1.0
Programming in C
Practice: 1.6 (Contd.)
Solution: /* function to accept and display two characters*/
#include<stdio.h>
main()
{
char a, b;
a=getchar();
fflush(stdin);
b=getchar();
fflush(stdin);
putchar(a);
putchar(b);
}
![Page 35: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/35.jpg)
Slide 35 of 53Ver. 1.0
Programming in C
String-Based Input-Output Functions
String-based input-output functions are:gets()
puts()
The following example uses the gets() and puts() functions:
# include < stdio.h >
/* function to accept and displaying */
main (){ char in_str {21};/* display prompt */
puts ("Enter a String of max 20 characters");
gets (in_str); /* accept string */
fflush (stdin); /* clear the buffer */
puts (in_str); /* display input string */
}
![Page 36: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/36.jpg)
Slide 36 of 53Ver. 1.0
Programming in C
Practice: 1.7
1. Write a function that prompts for and accepts a name with a maximum of 25 characters, and displays the following message.Hello. How are you?
(name)
2. Write a function that prompts for a name (up to 20 characters) and address (up to 30 characters) and accepts them one at a time. Finally, the name and address are displayed in the following way.Your name is:
(name)
Your address is:
(address)
![Page 37: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/37.jpg)
Slide 37 of 53Ver. 1.0
Programming in C
Solution:
Practice: 1.7 (Contd.)
Microsoft Word Document
![Page 38: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/38.jpg)
Slide 38 of 53Ver. 1.0
Programming in C
Using Constructs
There are two types of constructs in C language:Conditional constructs
Loop constructs
![Page 39: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/39.jpg)
Slide 39 of 53Ver. 1.0
Programming in C
Conditional Constructs
Conditional Constructs:Requires relation operators as in other programming language with a slight change in symbols used for relational operators.
The two types of conditional constructs in C are:if..else construct
switch…case construct
![Page 40: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/40.jpg)
Slide 40 of 53Ver. 1.0
Programming in C
The Syntax of the if..else construct is as follows:if (condition)
{
statement 1 ;
statement 2 ;
:
}
else
{
statement 1 ;
statement 2 ;
:
}
Conditional Constructs (Contd.)
![Page 41: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/41.jpg)
Slide 41 of 53Ver. 1.0
Programming in C
Practice: 1.8
1. Write a function that accepts one-character grade code, and depending on what grade is input, display the HRA percentage according to the following table.
Grade HRA %
A 45%
B 40%
C 30%
D 25%
![Page 42: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/42.jpg)
Slide 42 of 53Ver. 1.0
Programming in C
Practice: 1.8 (Contd.)
Identify errors, if any, in the following function:#include<stdio.h>
/*function to check if y or n is input*/
main()
{
char yn;
puts("Enter y or n for yes/no");
yn = getchar();
fflush(stdin);
if(yn=’y’)
puts("You entered y");
else if(yn=‘n')
puts("You entered n");
else
puts("Invalid input");
}
![Page 43: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/43.jpg)
Slide 43 of 53Ver. 1.0
Programming in C
Solution:
Practice: 1.8 (Contd.)
Microsoft Word Document
![Page 44: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/44.jpg)
Slide 44 of 53Ver. 1.0
Programming in C
Syntax of switch…case construct:switch (variable)
{
case 1 :
statement1 ;
break ;
case 2 :
statement 2 ;
:
:
break;
default :
statement
}
Conditional Constructs (Contd.)
![Page 45: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/45.jpg)
Slide 45 of 53Ver. 1.0
Programming in C
Practice: 1.9
Write a function to display the following menu and accept a choice number. If an invalid choice is entered then an appropriate error message must be displayed, else the choice number entered must be displayed.
Menu
1. Create a directory
2. Delete a directory
3. Show a directory
4. Exit
Your choice:
![Page 46: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/46.jpg)
Slide 46 of 53Ver. 1.0
Programming in C
Solution:
Practice: 1.9 (Contd.)
Microsoft Word Document
![Page 47: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/47.jpg)
Slide 47 of 53Ver. 1.0
Programming in C
Loop Constructs
The two types of conditional constructs in C are:while loop construct.
do..while construct.
The while loop construct has the following syntax:while (condition in true)
{
statement 1 ; loop
statement 2 ; body
}
Used to iterate a set of instructions (the loop body) as long as the specified condition is true.
![Page 48: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/48.jpg)
Slide 48 of 53Ver. 1.0
Programming in C
The do..while loop construct:The do..while loop is similar to the while loop, except that the condition is checked after execution of the body.
The do..while loop is executed at least once.
The following figure shows the difference between the while loop and the do...while loop.
Loop Constructs (Contd.)
while
EvaluateCondition
ExecuteBody of
Loop
True
False
do while
EvaluateCondition
ExecuteBody of
Loop
True
False
![Page 49: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/49.jpg)
Slide 49 of 53Ver. 1.0
Programming in C
Practice: 1.10
1. Write a function to accept characters from the keyboard until the character ‘!’ is input, and to display whether the total number of non-vowel characters entered is more than, less than, or equal to the total number of vowels entered.
![Page 50: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/50.jpg)
Slide 50 of 53Ver. 1.0
Programming in C
Practice: 1.10 (Contd.)
Solution:
Microsoft Word Document
![Page 51: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/51.jpg)
Slide 51 of 53Ver. 1.0
Programming in C
Summary
In this session, you learned that:C language was developed by Ken Thompson and Dennis Ritchie.
C language combines the features of second and third generation languages.
C language is a block structured language.
C language has various features that make it a widely-used language. Some of the important features are:
Pointers
Memory Allocation
Recursion
Bit-manipulation
![Page 52: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/52.jpg)
Slide 52 of 53Ver. 1.0
Programming in C
Summary (Contd.)
The types of data structures provided by C can be classified under the following categories:
Fundamental data types: Include the data types, which are used for actual data representation in the memory.
Derived data types: Are based on fundamental data types.
Fundamental data types:char, int, and float
Some of the derived data types are:short int, long int, and double float
Definition of memory for any data, both fundamental and derived data types, is done in the following format:[data type] [variable name],...;
![Page 53: C programming session 01](https://reader035.vdocuments.site/reader035/viewer/2022062312/555a61f0d8b42a47748b5432/html5/thumbnails/53.jpg)
Slide 53 of 53Ver. 1.0
Programming in C
Summary (Contd.)
In C language, the functions can be categorized in the following categories:
Single-level functions
Multiple-level functions
For standard input-output operations, the C environment uses stdin, stdout, and stderr as references for accessing the devices.
There are two types of constructs in C language:Conditional constructs
Loop constructs