unit 4 foc

Post on 13-Sep-2014

3.915 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

INTRODUCTION TO C

TRANSCRIPT

INTRODUCTION TO C

INTRODUCTION TO C• C was developed by Dennis Ritchie at Bell

laboratory in 1972 • It is an upgrade version of languages B and

BCPL.

Features of C

• It is a structured programming language.• It is highly portable.• It is a middle level language.• It is a case sensitive language.• It uses Top-Down approach.• It is a Free form language.etc,.

Steps in learning C

CharacterSet ProgramsInstructionsTokens

C Character Set

C Character Set

Execution Character Set

Source Character Set

SpecialCharacters

DigitsAlphabets EscapeSequence

WhiteSpaces

C Character Set (Cont)

• Source Character Set– It is used to construct the statements in the

program.• Executable Character Set

– These characters are employed at the time of execution i.e. they have effects only when the program is being executed.

Source Character Set

Letters a to z ,A to Z

Digits 0 to 9

Special Characters ! @ # $ % ^ & * ( ) _ - + = \ | { } [ ] etc,.

White Spaces Blank Space ,Horizontal tab, New line, Vertical tab etc,.

Special characters• Comma , • Period or dot .• Semicolon ;• Colon :• Apostrophe ‘• Quotation mark “• Exclamation mark !• Vertical bar | • Back Slash \• Tilde ~• Underscore -• Dollar $• Question mark ?

• Ampersand &• Caret ^• Asterisk *• Minus -• Addition +• Lesser than <• Greater than >• Parenthesis ()• Bracket []• Braces {}• Percentage %• Hash #• Equal to =• At the rate @

Executable Character Set

Characters Escape SequenceBack Space \bHorizontal Space \t

Vertical Space \v

Newline \n

C Tokens

• The smallest element in the C language is the token.

• It may be a single character or a sequence of characters.

C Tokens (Cont)

C Tokens

Identifiers

Eg:main,avg

Keywords

Eg: int,for

operators

Eg: + -

Strings

Eg: “ab”

spIsymbol

Eg: #$ %

Constants

Eg:17,15.5

Executing a C Program

Creating the Program

Compilation

Linking

Execution

Executing a C Program (Cont)

• Enter the program in a C editor.• Save the program (File Save) or F2.

Use the extension .c for saving the file. Eg: sample.c• Compile the program(Compile Compile)

or Alt+F9.• Run the program(Run Run) or Ctrl+F9.

Executing C program using UNIX

• Enter the program in vi editor.• Save the file using :wq Use the extension .c for saving the file. Eg: sample.c• Compile the program. Eg: cc sample.c (or) gcc sample.c• Run the program using a.out.

Structure of C programDOCUMENTATION SECTION

PREPROCESSOR SECTION

DEFINITION SECTION

GLOBAL DECLARATION SECTION

main() {

Declaration part;Executable Part;

} sub program section {

Body of the subprogram; }

• Documentation Section– It contains the comment lines.

• Preprocessor Section– It is used to link library files.

• Global Declaration Section– The Global declaration section comes at the

beginning of the program and they are visible to all parts of the program.

• Declaration Section– It describes the data to be used within the

function.• Executable Part

– It contains the valid statements.

C Programs C program may have many functions. One and only one of the functions MUST BE

named main. main is the starting point for the program. main and other functions in a program are

divided into two sections, declaration section and statement section.

Preprocessor Directives

• Special instructions to the preprocessor that tells how to prepare the program for compilation

• E.g: include : tells the processor to include information from selected libraries known as header files e.g. <stdio.h>

Comments (Program documentation)

The compiler simply ignores comments when it translates the program into executable code.

To identify a comments, C uses opening /* and closing */ comment tokens.

Comments (Cont) Comments can appear anywhere in a

program. Comments are also found wherever it is

necessary to explain a point about a code. Comments cannot be nested in C i.e. you

cannot have comments inside comments.

C program/* Example program in C*/ Comments# include <stdio.h> Preprocessor Section

Global Declaration

void main () { Local declaration

printf (“Hello World! \n”); Statements

}Output :Hello World

C Tokens

• Identifiers• Keywords• Constants• Operators• Special symbols

Identifiers

• Identifiers are names given to various program elements such as variables, functions and arrays etc,.

• Eg: #define N 10#define a 15 Here N and a are user defined identifiers.

Rules for naming identifier• First character must be alphabetic or underscore.

• Must consist only of alphabetic characters, digits, or underscores.

• Only the first 31 characters of an identifier are significant and are recognized by the compiler.

• Cannot use a keywords or reserved word (e.g. main, include, printf & scanf etc.).

• No space are allowed between the identifiers etc,.

• C is case sensitive, e.g. My_name my_name.

Examples of Valid and Invalid Names

Valid Names Invalid Names

a a1 $sum /* $ is illegal */

student_name stdntNm 2names /* Starts with 2 */

_aSystemName _anthrSysNm stdnt Nmbr /* no spaces */

TRUE FALSE int /* reserved word */

Variables

• Variable is an identifier that is used to represent some specified type of information.

• Eg: x=3• Here x is variable.

Keywords

• It is a reserved words.• Cannot be used for anything else.• Examples:

– int– while– for etc,.

KeywordsAuto register ContinueDouble typedef ForInt Char signedStruct extern void Break return Default Else union GotoLong Const sizeof Switch Float doCase short IfEnum unsignedStatic While

Constants

• It is an entity whose value does not changes during the execution.

• Eg: x=3• Here 3 is a constant.

Types

• Numeric constants• Character constant

Constants

Constants

Character Constants Numeric Constants

RealConstant

IntegerConstant

String Constant

SingleCharacter Constant

Numeric constantsInteger constants• It is formed using a sequence of digits.

Decimal - 0 to 9 .Octal - 0 to 7.Hexa - 0 to 9 ,A to F

Eg: 10,75 etc.

Rules for defining Integer Constant

• It must have atleast one digit.• Decimal point are not allowed.• No blank space or commas are allowed.• It can be either positive or negative. Etc,.

Numeric constants

Real constants• It is formed using a sequence of digits but

it contain decimal point.• length, height, price distance measured in

real number Eg: 2.5, 5.11, etc.

Character constants

Single character constant– A character constant is a single character

they also represented with single digit or a single special symbol which is enclosed in single quotes.

– Eg: ‘a’, ‘8’,’_’etc.

Character constants

String constants• String constant are sequence of characters

enclosed with in double quote.• Eg: “Hello” ,”444”,”a” etc,.

Operators

• An operator is a symbol that specifies an operation to be performed on the operands.

• Eg: a + b+ is an operator.a,b are operands.

Data Types

A Data type is the type of data that are going to access within the program.

Standard Data Types

These Standard type can be used to build more complex data types called Derived Types (e.g. pointers, array, union etc.).

Data typesData type Size(bytes) Range Format string

Char 1 -128 to 127 %c

int 2 -32,768 to 32,767 %d

Float 4 3.4 e-38 to 3.4 e+38 %f

Double 8 1.7 e-308 to 1.7 e+308 %lf

integer A number without a fraction part : integral

number. C supports three different sizes of the

integer data type :short intintlong int

Floating Point A floating-point type is a number with a

fractional part, e.g. 56.78 Floating point numbers are stored using 4 Byte. Types

Float Double long double

character

• Character are generally stored using 8 bits(1 Byte) of the internal storage.

Character ASCII code value

a 97(decimal) or 01100001(binary)

x 120(decimal) or 01111000(binary)

void The void type has no values and no

operations. Both the set of values and the set of

operations are empty.

Variable’s Declaration

To create a variable, you must specify the type and then its identifier :

float price;int a,b;char code;

Entire Data types in c:Data type Size(bytes) Range Format string

Char 1 128 to 127 %c

Unsigned char 1 0 to 255 %c

Short or int 2 -32,768 to 32,767 %i or %d

Unsigned int 2 0 to 65535 %u

Long 4 -2147483648 to 2147483647 %ld

Unsigned long 4 0 to 4294967295 %lu

Float 4 3.4 e-38 to 3.4 e+38 %f or %g

Double 8 1.7 e-308 to 1.7 e+308 %lf

Long Double 10 3.4 e-4932 to 1.1 e+4932 %lf

Types of Operator

• Arithmetic operator• Relational operator• Logical operator• Assignment operator• Increment or decrement operator(unary)• Bitwise operator• Conditional operator

Arithmetic operator

• It is used to carry out arithmetic operations like addition, subtraction etc,

Eg: + , - , * , / etc,

Sample program

#include<stdio.h> // Header File#include <conio.h>int b=10; //Global Declarationvoid main ( ) /* main is the starting of every c program */{int a,c; //Local Declarationclrscr( );scanf(“%d”,&a);printf(“ \n The sum of the two values:”);c = a+b;printf(“%d”,c);getch( );}

Division operator on Different Data Type

Operation Result Exampleint/int int 5/2 = 2int/real real 5/2.0 = 2.5real/int real 5.0/2 = 2.5real/real real 5.0/2.0 = 2.5

Sample program

#include<stdio.h>#include <conio.h>void main ( ){int a=10,b=4,c;float d=3,e;clrscr( );c = a/b;printf(" \n value a/b is:%d",c);e = a/d;printf("\n value a/d is:%f",e);getch( );}

Output

value a/b is:2value a/d is:3.333333

Relational operator

• It is used to compare two or more operands.

• Eg :< , > , <= , >=, != etc,.• 5 < 9 which will return 1

Logical operator

• It is used to combine the result of two or more condition.

• AND(&&)• OR (||)• NOT (!) are Logical operators.• Eg: (i>10)&&(j>5).

(i>10)||(j>5) etc,.

Sample program#include<stdio.h>#include <conio.h>void main ( ){int a=10,b=3,c=5,e;clrscr( );

if(a>b) // relational operator{

printf(" \n a is bigger than b");}if((a>b)&&(a>c)) //Logical operator{

printf(" \n a is biggest");}

getch( );}

Output

a is bigger than ba is biggest

Assignment operator

• It is used to assign a value or expression etc to a variable.

• Eg: a =10. a = b a = b + c etc,.

Assignment operator(Cont)

• Compound operatorIt is also used to assign a value to a

variable.Eg: x + = y means x = x + y

• Nested operatorIt is used for multiple assignment.

Eg: i = j = k = 0;

Sample program#include<stdio.h> #include <conio.h>int b=10;void main ( ){int a=3,b=5;clrscr( );a+=b; // a= a+bprintf(" \n The sum of the two values:%d",a);getch( );}

Output

The sum of the two values:8

Increment or decrement operator(Unary)

• It is used to Increment or decrement an operand.

• Eg: ++x (Pre Increment), x++ (Post Increment), --x (Pre Decrement),

x-- (Post Decrement).

Sample Program#include<stdio.h> #include <conio.h>void main ( ){int a=5; clrscr( );printf(" \n Post increment Value:%d",a++);printf(" \n Pre increment Value:%d",++a);printf(" \n Pre decrement Value:%d",--a);printf(" \n Post decrement Value:%d",a--);getch( );}

Output

Post increment Value:5Pre increment Value:7Pre decrement Value:6Post decrement Value:6

Bitwise operator

• It is used to manipulate data at bit level.• Eg: a=5 i.e 0000 0101

b=4 i.e 0000 0100Then a & b = 0000 0100

a | b = 0000 0101 etc,.

Sample program

#include<stdio.h>#include <conio.h>void main ( ){int a=5,b=4,c;//char a=5,b=4,c;clrscr( );c = a&b;printf(" \n value a&b is:%d",c);getch( );}

Output

value a&b is:4

Conditional Operator (or) Ternary Operator

• It is used to checks the condition and execute the statement depending on the condition.

• Eg: C = a > b ? a:b

Sample Program#include<stdio.h> #include <conio.h>void main ( ){int a=5,b=8,c; clrscr( );c = a>b?a:b; //Conditional operatorprintf(" \n The Larger Value is%d",c);getch( );}

Output

The Larger Value is 8

Special Operator

• comma operator ( , )• sizeof operator• pointer operator (& , *) etc,.

#include<stdio.h>#include <conio.h>void main ( ){int c;clrscr( );printf(" \n size of int is:%d",sizeof c);getch( );}

Output

size of int is: 2

Expression• An expression represent data item such as

variable, constant are interconnected using operators.

• Eg:

Expression C Expression

a + b + c a + b + c

a2+b2 a*a + b*b

Operator Precedence & Associativity

• The arithmetic expressions evaluation are carried out based on the precedence and associativity.

• The evaluation are carried in two phases.– First Phase: High Priority operators are

evaluated.– Second Phase: Low Priority operators are

evaluated.

Precedence Operator

High * , / , %

Low + , -

Example

• 5 - 20/4 + 3*3 – 1 = 5 - 5 + 9 – 1 = 0 + 9 – 1 = 9 – 1 = 8

Example

• 5 – (20/4) + 3*(3 – 1) = 5 - 5 + 3*2 = 5 - 5 + 6 = 6

Type Conversion

• Converting the type of an expression from one type to another type.

Eg: x = (int)10.45

Sample Program#include<stdio.h>#include <conio.h>void main ( ){int c;clrscr( );c=(int)10.45;printf("\nOutput is:%d",c);getch( );}OUTPUTOutput is:10

Input/Output FunctionInput/Output

Function

Unformatted Formatted

Output

printf()fprintf()

Input

scanf()fscanf()

Input

getc()gets()

getchar()

Output

putc()puts()

putchar()

Formatted Input/Output C uses two functions for formatted

input and output.

Formatted input : reads formatted data from the keyboard.

Formatted output : writes formatted data to the monitor.

Formatted Input and Output

Standard Output

The standard output file is the monitor.

Like the keyboard, it is a text file.

When you need to display data that is not text, it must be converted into to the text before it is written to the screen.

Format of printf Statement

Formatted Input (scanf)

• The standard formatted input function in C is scanf (scan formatted).

• scanf consists of : a format string . an address list that identifies where data

are to be placed in memory. scanf ( format string, address list );

(“%c….%d…..%f…..”, &a,….&i,…..,&x…..)

Format of scanf Statement

Character Test Function

• It is used to test the character taken from the input.

• isalpha(ch)• isdigit(ch)• islower(ch)• isupper(ch)• tolower(ch)• toupper(ch) etc,.

Decision Making

• It is used to change the order of the program based on condition.

• Categories:– Sequential structure– Selection structure– Iteration structure– Encapsulation structure

Decision Making (cont)• Sequential structure

– In which instructions are executed in sequence.

• Selection structure– In which instruction are executed based on the

result of some condition.• Iteration structure

– In which instruction are executed repeatedly.• Encapsulation structure

– In which some compound structure are used.

SELECTION STRUCTURE• It allows the program to make a choice

from alternative paths. • C provide the following selection

structures– IF statement– IF … ELSE statement– Nested IF … ELSE statement– IF … ELSE ladder

IF Statement

SyntaxIF (condition is true)

{

Statements;

}

If condition

False

True

Statements

Example#include<stdio.h>#include <conio.h>void main ( ){int a;clrscr( );printf("\nEnter the number:");scanf("%d",&a);

if(a>10){printf(" \n a is greater than 10");}

getch( );}

Output

Enter the number: 12a is greater than 10

IF…ELSE StatementSyntaxIF (condition) {

True statements;}ELSE{

False statements;}

If Condition

True False

True statements

False statements

#include<stdio.h>#include <conio.h>void main ( ){int a;clrscr( );printf("\nEnter the number:");scanf("%d",&a);

if(a>10){printf(" \n a is greater than 10");}

else{printf(" \n a is less than 10");}

getch( );}

NESTED IF… ELSE

If Condition

2

True False

True statements

False statements

IfCondition

1False

StatementsTrue

NESTED IF… ELSESyntaxIF (condition1) {

IF (condition2) {

True statements;}ELSE{

False statements;}

}ELSE{

False statements;}

IF…ELSE LADDER

Condition1

StatementsCondition

2

StatementsCondition

3

Statements Statements

TRUE

TRUE

TRUE FALSE

FALSE

FALSE

IF…ELSE LADDERSyntaxIF (condition1) {statements;}

else if (condition2) {statements;}else if (condition3){statements;}else{statements;}

Example#include<stdio.h>#include<conio.h>void main(){ int m1,m2,m3; float avg; printf("\nEnter the marks:"); scanf("%d%d%d",&m1,&m2,&m3); avg=(m1+m2+m3)/3; printf("\n The average is:%f",avg); printf("\n The Grade is:"); if(avg>=60) {

printf("First class"); }

else if(avg>=50) {

printf("Second class"); } else if(avg>=35) {

printf("Thrid class"); } else {

printf("Fail"); }

getch();}

Output

Enter the marks:657570The average is:70.000000The Grade is: First class

Looping structure

• It is used to execute some instructions several time based on some condition.– WHILE – Do…WHILE – For

WHILE Loop

Syntax.

WHILE (condition){

.Body of the loop;

. } Body of The loop

condition False

True

Example#include<stdio.h>#include<conio.h>void main(){ int i=1,fact=1,n; printf("\nEnter the Number:"); scanf("%d",&n); while(i<=n) {

fact =fact *i; i++; // i=i+1

} printf("\n The value of %d! is:%d",n,fact); getch();}

Output

Enter the Number:3The value of 3! is: 6

DO…WHILE Loop

Syntaxdo

{

Body of the loop

}while (condition);

Body of The loop

condition

False

True

for loop

Syntaxfor (initialization; test condition; Increment/Decrement)

{

Body of the loop

}

for loop

Initialization

condition False

Body of the loop

Inc / Decrement

Example#include<stdio.h>#include<conio.h>void main(){ int i,fact=1,n; printf("\nEnter the Number:"); scanf("%d",&n); for(i=1;i<=n;i++) {

fact =fact *i; } printf("\n The value of %d! is:%d",n,fact); getch();}

Output

Enter the Number:3The value of 3! is: 6

Nested for loop

Syntaxfor (initi; cond; Inc/Dec)

{

for (initi; cond; Inc/Dec){

Body of the loop

}

}

CASE structure

Case 1

Case 2

Defaultcase

Switch

CASE structureSyntaxswitch (expression){case constant 1:

block1;break;

case constant 2:block2;break;..

default :default block;break;

}

Example#include<stdio.h>#include<conio.h>void main(){ int i,n; printf("\nEnter the Number:"); scanf("%d",&n);

switch(n) {

case 1:{printf("\n Its in case 1");break;}

case 2:{printf("\n Its in case 2");break;}

default:{printf("\n Its in default");break;}

} getch();}

Output

Enter the Number:2Its in case 2

break Statement

• It is used to terminate the loop• When a break statement is encountered

inside a loop, then the loop is terminated.

Loops with break Statement

while(cond){

…………if(cond)break;…………

}

do{

…………if(cond)break;…………

} while(cond);

for (initi; condt; Inc/Dec){…………if(cond)break;…………

}

Continue Statement

• When a continue statement is encountered inside a loop, the control is transferred to the beginning.

Loops with continue Statement

while(cond){

…………if(cond)continue;…………

}

do{

…………if(cond)continue;…………

} while(cond);

for (initi; condt; Inc/Dec){…………if(cond)continue;…………

}

goto Statement

• When a goto statement is encountered inside a loop, the control is transferred to the beginning.

Syntax for goto Statement

label:………………………………goto label;…………

goto label; ……………………………… label:…………

getchar() Example

#include<stdio.h>#include<conio.h>#include<ctype.h>void main(){char x;printf("enter the character:");x=getchar();

if(islower(x))putchar(toupper(x));elseputchar(tolower(x));

getch();}

Output:enter the character:ABCa

getche() Example

#include <stdio.h>#include <conio.h>void main(){

char c ;clrscr();printf("\nInput a string:");c = getche();

printf("\nstring is:");putch(c);getch();

}

Output:Input a string:kstring is:k

Getch() Example

#include <stdio.h>#include <conio.h>void main(){

char c;clrscr();printf("\nInput a string:");c = getch();

printf("\nstring is:");putch(c);getch();

}Output:Input a string:string is:h

getc Example

#include<stdio.h>#include<conio.h>#include<ctype.h>void main(){char x;printf("enter the character:");x=getc(stdin);

if(islower(x))putc(toupper(x),stdout);elseputc(tolower(x),stdout);

getch();}

Output:enter the character:abcA

gets() Example

#include <stdio.h>#include<conio.h>void main(){

char c[80];clrscr();printf("Input a string:");gets(c);

printf("The string is:");puts(c);getch();

}

Output:Input a string:qwertyThe string is:qwerty

Example #include<stdio.h> #include<conio.h> void main() {

int a,b,c,n;clrscr();printf("\nEnter the value of a,b:");scanf("%d%d",&a,&b);printf("\nMENU");printf("\n1.ADD\n2.SUB\n3.MULTIPLY\n0.EXIT");printf("\nEnter the choice:");scanf("%d",&n);

switch(n){ case 1:

c=a+b;printf("\nThe result of Addition is:%d",c);break;

case 2:c=a-b;printf("\nThe result of Subtraction is:

%d",c);break;

case 3:c=a*b;printf("\nThe result of Multiplication is:%d",c);break; case 0:exit(0);break;}getch();

}

OutputEnter the value of a,b:56MENU1.ADD2.SUB3.MULTIPLY0.EXITEnter the choice:1The result of Addition is:11

Finding Armstrong No#include<stdio.h>#include<conio.h>void main(){ int r=0,sum=0,n,a; printf("\nEnter the number:"); scanf("%d",&n); a=n;

while(n>0){r=n%10;sum=sum+r*r*r;n=n/10;}

if(a==sum){ printf("\nIt is an armstrong number");}else{ printf("\nIt is not an armstrong number");}

getch();}

Output

Enter the number:153It is an armstrong number

Sum of the Digits#include<stdio.h>#include<conio.h>void main(){ int r=0,sum=0,n; printf("\nEnter the no:"); scanf("%d",&n); while(n>0) { r=n%10;

sum=sum+r; n=n/10; } printf("sum of the digits is:%d",sum);}

Output

Enter the no:156sum of the digits is:12

Reverse of a number#include<stdio.h>#include<conio.h>void main(){ int r=0,sum=0,n; printf("\nEnter the no:"); scanf("%d",&n); while(n>0)

{ r=n%10; sum=sum*10+r; n=n/10;

} printf("Reverse of the number is:%d",sum); getch();}

Output

Enter the no:567Reverse of the number is:765

Fibonacci Series

#include<stdio.h>#include<conio.h>void main(){int f=0,f1=-1,f2=1,n,i;printf("\nEnter the number:");scanf("%d",&n);

while(f<n){ f=f1+f2;

f1=f2; f2=f;

printf("\t%d",f);}

getch();}

Output

Enter the number:5 0 1 1 2 3 5

Swapping #include<stdio.h>#include <conio.h>void main ( ){int a,b,c;clrscr( );printf(" \nEnter the value of a:");scanf("%d",&a);printf(" \nEnter the value of b:");scanf("%d",&b);c=a;a=b;b=c;

printf(" \nThe value of a is:%d",a);printf(" \nThe value of b is:%d",b);getch( );}

Output:Enter the value of a:5Enter the value of b:4

The value of a is:4The value of b is:5

Swapping without using third variable

#include<stdio.h>#include <conio.h>void main ( ){int a,b;clrscr( );printf(" \nEnter the value of a:");scanf("%d",&a);printf(" \nEnter the value of b:");scanf("%d",&b);

a=a+b;b=a-b;a=a-b;printf(" \nThe value of a is:%d",a);printf(" \nThe value of b is:%d",b);getch( );}

Output:Enter the value of a:5Enter the value of b:6

The value of a is:6The value of b is:5

Quadratic Equation#include<stdio.h>#include <conio.h>#include<math.h>void main ( ){int a,b,c,d,r1,r2;clrscr( );printf(" \nEnter the value of a:");scanf("%d",&a);printf(" \nEnter the value of b:");scanf("%d",&b);printf(" \nEnter the value of c:");scanf("%d",&c);d=b*b-4*a*c;

if(d>=0){

r1=(-b+sqrt(d))/(2*a);r2=(-b-sqrt(d))/(2*a);

printf(" \nThe roots are %d,%d",r1,r2);}else{ printf(" \nThe roots are imaginary");}getch( );}

Output

Enter the value of a:4

Enter the value of b:5

Enter the value of c:6

The roots are imaginary

top related