21CSS101J – Programming for Problem Solving Unit I
UNIT I INTRODUCTION Evolution of Programming & Languages - Problem Solving through Programming - Writing Algorithms & Pseudo code - Single line and multiline comments- Introduction to C : Structure of C the Program - Input and output statements - Variables and identifiers, Constants, Keywords –Values, Names, Scope, Binding, Storage Classes - Numeric Data types: integer, floating point – Non-Numeric Data types : char and string- L value and R value in expression, Increment and Decrement operator-Comma, Arrow and Assignment operator – Arithmetic, Relational and Logical Operators – Condition Operators, Operator Precedence – Expressions with pre/post increment operator.
1. 1 Evolution of Programming & Languages  A Computer needs to be given instructions in a programming language that it understands  Programming Language  Artificial language that controls the behavior of computer  Defined through the use of syntactic and semantic rules  Used to facilitate communication about the task of organizing and manipulating information  Used to express algorithms precisely
1. 1 Evolution of Programming & Languages Contd… Period Programming Langugaes 1950’s Creation of high-level languages 1960’s Forth. Simula I. Lisp, Cobol 1970’s Pascal, C language 1980’s ML. Smalltalk, C++ 1990’s Java, Perl, Python languages 2000 Internet Programming 2010 Concurrency and asynchronicity. JavaScript and Go language
1. 2 Problem Solving through Programming  Problem - Defined as any question, something involving doubt, uncertainty, difficulty, situation whose solution is not immediately obvious  Computer Problem Solving  Understand and apply logic  Success in solving any problem is only possible after we have made the effort to understand the problem at hand  Extract from the problem statement a set of precisely defined tasks
1. 2 Problem Solving through Programming Contd… i. Creative Thinking  Proven method for approaching a challenge or opportunity in an imaginative way  Process for innovation that helps explore and reframe the problems faced, come up with new, innovative responses and solutions and then take action  It is generative, nonjudgmental and expansive  Thinking creatively, a lists of new ideas are generated
1. 2 Problem Solving through Programming Contd… ii. Critical Thinking  Engages a diverse range of intellectual skills and activities that are concerned with evaluating information, our assumptions and our thinking processes in a disciplined way so that we can think and assess information more comprehensively  It is Analytical, Judgmental and Selective  Thinking critically allows a programmer in making choices
1. 2 Problem Solving through Programming Contd…
1. 2 Problem Solving through Programming Contd…  Program - Set of instructions that instructs the computer to do a task  Programming Process a) Defining the Problem b) Planning the Solution c) Coding the Program d) Testing the Program e) Documenting the Program
1. 2 Problem Solving through Programming Contd…
1. 2 Problem Solving through Programming Contd…  A typical programming task can be divided into two phases: i. Problem solving phase  Produce an ordered sequence of steps that describe solution of problem this sequence of steps is called an Algorithm ii. Implementation phase  Implement the program in some programming language  Steps in Problem Solving a) Produce a general algorithm (one can use pseudocode)
1. 2 Problem Solving through Programming Contd… b) Refine the algorithm successively to get step by step detailed algorithm that is very close to a computer language c) Pseudocode is an artificial and informal language that helps programmers develop algorithms  Pseudocode is very similar to everyday English
Algorithm: a step-by-step method for solving a problem or doing a task. 1. 3 Creating Algorithms  An informal definition of an algorithm is:
1. 3 Creating Algorithms Contd…  What are Algorithms for?  A way to communicate about your problem/solution with others  A possible way to solve a given problem  A "formalization" of a method, that will be proved  A mandatory first step before implementing a solution  Algorithm Definition - “A finite sequence of unambiguous, executable steps or instructions, which, if followed would ultimately terminate and give the solution of the problem”
1. 3 Creating Algorithms  Notations  Starting point  Step Numbers – Positions in Algorithm Incoming Information - Input  Control Flow – Order of evaluating Instructions  Statements  Outgoing Information - Output  Ending Point
1. 3 Creating Algorithms Contd…  Properties of an algorithm  Finite: The algorithm must eventually terminate  Complete: Always give a solution when one exists  Correct (sound): Always give a correct solution  Rules of Writing an Algorithm  Be consistent  Have well Defined input and output  Do not use any syntax of any specific programming language
 Algorithm development process consists of five major steps  Step 1: Obtain a description of the problem  Step 2: Analyze the problem  Step 3: Develop a high-level algorithm  Step 4: Refine the algorithm by adding more detail  Step 5: Review the algorithm
1. 3 Creating Algorithms Contd… Example  Problem a) Develop an algorithm for finding the largest integer among a list of positive integers b) The algorithm should find the largest integer among a list of any values c) The algorithm should be general and not depend on the number of integers
1. 3 Creating Algorithms Contd…  Solution a) To solve this problem, we need an intuitive approach b) First use a small number of integers (for example, five), then extend the solution to any number of integers c) The algorithm receives a list of five integers as input and gives the largest integer as output
1. 3 Creating Algorithms Contd… Example 2: Print 1 to 20  Step 1: Start  Step 2: Initialize X as 0,  Step 3: Increment X by 1,  Step 4: Print X,  Step 5: If X is less than 20 then go back to step 2.  Step 6: Stop
1. 3 Creating Algorithms Contd… Example 3 Convert Temperature from Fahrenheit (℉) to Celsius (℃)  Step 1: Start  Step 2: Read temperature in Fahrenheit  Step 3: Calculate temperature with formula C=5/9*(F-32)  Step 4: Print C  Step 5: Stop
1. 3 Creating Algorithms Contd… Example 4 Algorithm to Add Two Numbers Entered by User  Step 1: Start  Step2: Declare variables num1, num2 and sum.  Step 3: Read values num1 and num2.  Step 4: Add num1 and num2 and assign the result to sum. sum←num1+num2  Step 5: Display sum Step 6: Stop
1. 3 Creating Algorithms Contd…  Write an Algorithm to: 1) Find the Largest among three different numbers 2) Find the roots of a Quadratic Equation 3) Find the Factorial of a Number 4) Check whether a number entered is Prime or not 5) Find the Fibonacci Series
1. 3 Drawing Flowcharts  Diagrammatic representation  Illustrates sequence of operations to be performed  Each step represented by a different symbol  Each Symbol contains short description of the Process  Symbols linked together by arrows  Easy to understand diagrams  Clear Documentation  Helps clarify the understanding of the process
1. 3 Drawing Flowcharts Contd…
1. 3 Drawing Flowcharts Contd…  Guidelines for Preparing Flowchart  Logical order of requirements  Ensure that Flowchart has logical Start and Stop  Direction is from Top to bottom  Only one flow line is used with Terminal Symbol  Only one flow line should come out of a Process symbol Only one flow line should enter a Decision symbol but multiple lines may leave the Decision symbol
1. 3 Drawing Flowcharts Contd…  Guidelines for Preparing Flowchart Contd…  Write briefly within Symbols  Use connectors to reduce number of flow lines  Avoid intersection of flow lines  Test Flowchart through simple test data  Clear, Neat and easy to follow
1. 3 Drawing Flowcharts Contd…
1. 4 Writing Pseudocode  Pseudo – Imitation / False  Code – Instructions  Goal: To provide a high level description of the Algorithm  Benefit: Enables programmer to concentrate on Algorithm  Similar to programming code  Description of the Algorithm  No specific Programming language notations  Pseudo Code transformed into actual program code
1. 4 Writing Pseudocode Contd… a) Guidelines for Writing Pseudo Code  Write only one Statement per line  Example – Pseudo Code for calculating Salary 1. READ name, hourly rate, hours worked, deduction rate 2. Gross pay = hourly rate * hours worked 3. deduction = gross pay * deduction rate 4. net pay = gross pay – deduction 5. WRITE name, gross, deduction, net pay
1. 4 Writing Pseudocode Contd… b) Capitalize Initial Keyword  Keywords to be written in capital letters  Examples: READ, WRITE, IF, ELSE, WHILE, REPEAT, PRINT c) Indent to show Hierarchy  Indentation shows the structure boundaries  Sequence  Selection  Looping
1. 4 Writing Pseudocode Contd… d) End Multiline structures  Each structure must end properly  Example: IF statement must end with ENDIF e) Keep Statements Language independent  Resist the urge to write Pseudo Code in any programming language
1. 4 Writing Pseudocode Contd…  Advantages  Easily typed in a Word document  Easily modified  Simple to Use and understand  Implements Structured Concepts  No special symbols are used  No specific syntax is used  Easy to translate into Program
1. 4 Writing Pseudocode Contd…  Disadvantages  No accepted Standard  Cannot be compiled and executed
1. 4 Writing Pseudocode Contd…  Write an Pseudo Code to: 1) Add three numbers and Display the result 2) Calculate Sum and product of two numbers 3) Input examination marks and award grades according to the following criteria: a) > = 80 Distinction b) > = 60 First Class c) > = 50 Second Class d) < 40 Fail
1. 4 Writing Pseudocode Contd… 1. Pseudo Code to Add Three Numbers  Use Variables: sum, num1, num2, num3 of type integer  ACCEPT num1,num2,num3  Sum = num1+num2+num3  Print sum  End Program
1. 4 Writing Pseudocode Contd… 2. Calculate Sum and product of two numbers  Use Variables: sum, product, num1, num2 of type real  DISPLAY “Input two Numbers”  ACCEPT num1,num2  Sum = num1+num2  Print “The sum is”, sum  product = num1*num2  Print “The product is”, product  End Program
1. 4 Writing Pseudocode Contd… 3. Input examination marks and award grades  Use Variables: mark of type integer  If mark >=80 DISPLAY “Distinction”  If mark >=60 and mark <80 DISPLAY “First Class”  If mark >=50 and mark <60 DISPLAY “Second Class”  If mark <50 DISPLAY “Fail”  End Program
•History & Evolution of C  C – General Purpose Programming Language  Developed by Dennis Ritchie in 1972  Developed at Bell Laboratories  Principles taken from BCPL and CPL  Structured Programming Language  C Program  Collection of Functions  Supported by C library
• History & Evolution of C Cont… 1960 1967 1970 1972 1978 1989 1990 1999
 Why the Name “C” ? Many of C’s principles and ideas were derived from the earlier language B  BCPL and CPL are the earlier ancestors of B Language (CPL is • common Programming Language)  In 1967, BCPL Language ( Basic CPL ) was created as a scaled • down version of CPL As many of the features were derived from “B” Language the new language was named as “C”.
 Characteristics of ‘C’  Low Level Language Support  Structured Programming  Extensive use of Functions  Efficient use of Pointers  Compactness  Program Portability  Loose Typing
 Advantages of C  Compiler based Language  Programming – Easy & Fast  Powerful and Efficient  Portable  Supports Graphics  Supports large number of Operators  Used to Implement Data structures
 Disadvantages of C  Not a strongly typed Language  Use of Same operator for multiple purposes  Not Object Oriented
•Structure of ‘C’ Program Structure based on Set of rules defined by the Compiler Sections 1) Documentation 2) Preprocessor 3) Global Declaration 4) main( ) function 5) Local Declaration 6) Program Statements
 Rules for Writing a C Program a) All statements should be written in lower case b) All statements should end with a semicolon c) Upper case letters are used for symbolic constants d) Blank spaces can be inserted between words e) No blank space while declaring a variable, keyword, constant f) Can write one or more statement in same line separated by • comma g) Opening and closing of braces should be balanced
/* Program to Find Area of Circle */ #include <stdio.h> #include <conio.h> const float pi = 3.14; void main( ) { float area; int r; printf(“Enter the Radius of the Circle”); scanf(“%d”, &r); area = pi * r * r; printf(“The area of the Circle is %f”, area); getch( ); } Comment Local Declaration & Initialization Execution Preprocessor Directives Global Declaration main Function
1) Documentation Section  Used for providing Comments  Comment treated as a single white space by Compiler  Ignored at time of Execution: Not Executable  Comment:  Single Line Comment - //  Multi Line Comment - /*.... */ Sequence of Characters given between /* and */  Example: Program Name, Statement description /* Program to Find Area of a Circle*/
2) Preprocessor Section  Also called as Preprocessor Directive  Also called as Header Files  Not a part of Compiler  Separate step in Compilation Process  Instructs Compiler to do required Preprocessing  Begins with # symbol  Preprocessor written within < >
 Examples  #include <stdio.h>  #include <conio.h>  #include <math.h>  #include <stdlib.h>  #define PI 3.1412
Directive Description #define Substitutes a preprocessor macro. #include Inserts a particular header from another file. #undef Undefines a preprocessor macro. #ifdef Returns true if this macro is defined. #ifndef Returns true if this macro is not defined. #if Tests if a compile time condition is true. #else The alternative for #if. #elif #else and #if in one statement. #endif Ends preprocessor conditional. #error Prints error message on stderr. #pragma Issues special commands to the compiler, using a standardized method.
3) Global Declaration Section  Used to Declare Global variable (or) Public variable  Variables are declared outside all functions  Variables can be accessed by all functions in the program  Same variable used my more than one function
4) main( ) Section  main( ) written in all small letters (No Capital Letters)  Execution starts with a Opening Brace : {  Divided into two sections: Declaration & Execution  Declaration : Declare Variables  Executable: Statements within the Braces  Execution ends with a Closing Brace : }  Note: main( ) does not end with a semicolon
5) Local Declaration Section  Variables declared within the main( ) program  These variables are called Local Variables  Variables initialized with basic data types
C Token - Smallest individual unit of a C program C program broken into many C tokens Building Blocks of C program
Keywords – Conveys special meaning to Compiler  Cannot be used as variable names
Constants  Definition :Value does not change during execution  Can be a Number (or) a Letter  Types  Integer Constants  Real Constants  Character Constant  Single Character Constants  String Constants
Constants
Variables & Identifiers  Identifier  A string of alphanumeric characters that begins with an alphabetic character or an underscore character  There are 63 alphanumeric characters, i.e., 53 alphabetic characters and 10 digits (i.e., 0-9)  Used to represent various programming elements such as variables, functions, arrays, structures, unions  The underscore character is considered as a letter in identifiers (Usually used in the middle of an identifier)
Variables & Identifiers Contd….  Rules for Identifers  Combination of alphabets, digits (or) underscore  First character should be a Alphabet  No special characters other than underscore can be used  No comma / spaces allowed within variable name  A variable name cannot be a keyword  Variable names are case sensitive  Variable Definition :Value changes during execution  Identifier for a memory location where data is stored
Variables & Identifiers Contd…  Variable name length cannot be more than 31 characters  Examples: AVERAGE, height, a, b, sum, mark_1, gross_pay  Variable Declaration  A variable must be declared before it is used  Declaration consists of a data type followed by one or more variable names separated by commas.  Syntax datatype variablename;
Variables & Identifiers Contd…  Examples int a, b, c, sum; float avg; char name;  Variable Initialization  Assigning a value to the declared variable  Values assigned during declaration / after declaration
Variables & Identifiers Contd…  Examples i. int a, b, c; a=10, b=20, c=30; ii. int a=10 ,b=10, c=10;  Scope of Variables  Local Variables  Global Variables
Scope of Variables  Definition  A scope in any programming is a region of the program where a defined variable can have its existence and beyond that variable it cannot be accessed  Variable Scope is a region in a program where a variable is declared and used  The scope of a variable is the range of program statements that can access that variable  A variable is visible within its scope and invisible outside it
Scope of Variables Contd…  There are three places where variables can be declared a) Inside a function or a block which is called local variables b) Outside of all functions which is called global variables c) In the definition of function parameters which are called formal parameters
1. 12 Scope of Variables Contd… a) Local Variables  Variables that are declared inside a function or block are called local variables  They can be used only by statements that are inside that function or block of code  Local variables are created when the control reaches the block or function containing the local variables and then they get destroyed after that  Local variables are not known to functions outside their own
/* Program for Demonstrating Local Variables*/ #include <stdio.h> int main ( ) { /* local variable declaration */ int a, b; int c; / * a c t u a l
1. 12 Scope of Variables Contd… b) Global Variables  Defined outside a function, usually on top of the program  Hold their values throughout the lifetime of the program  Can be accessed inside any of the functions defined for the program  Can be accessed by any function  That is, a global variable is available for use throughout the entire program after its declaration
/* Program for Demonstrating Global Variables*/ #include <stdio.h> /* global variable declaration */ int g; int main ( ) { /* local variable declaration */ int a, b; /* actual initialization */ a = 10; b = 20; g = a + b; printf ("value of a = %d, b = %d and g = %dn", a, b, g); return 0; }
1. 12 Scope of Variables Contd…  Note: A program can have same name for local and global variables but the value of local variable inside a function will take preference
12 Datatypes  Defines a variable before use  Specifies the type of data to be stored in variables  Basic Data Types – 4 Classes a) int – Signed or unsigned number b) float – Signed or unsigned number having Decimal Point c) char – A Character in the character Set  Qualifiers
1. 12 Datatypes Contd…
Datatypes Contd…
Datatypes Contd… a) Integer Data Type  Whole numbers with a range  No fractional parts  Integer variable holds integer values only  Keyword: int  Memory: 2 Bytes (16 bits) or 4 Bytes (32 bits)  Qualifiers: Signed, unsigned, short, long  Examples: 34012, 0, -2457
Datatypes Contd… b) Floating Point Data Type  Numbers having Fractional part  Float provides precision of 6 digits  Integer variable holds integer values only  Keyword: float  Memory: 4 Bytes (32 bits)  Examples: 5.6, 0.375, 3.14756
Datatypes Contd… c) Double Data Type  Also handles floating point numbers  Double provides precision of 14 digits  Integer variable holds integer values only  Keyword: float  Memory: 8 Bytes (64 bits) or 10 Bytes (80 bits)  Qualifiers: long, short
1. 12 Datatypes Contd… d) Character Data Type  handles one character at a time  Keyword: char  Memory: 1 Byte (8 bits)
1. 13 Expressions  Expression : An Expression is a collection of operators and operands that represents a specific value  Operator : A symbol which performs tasks like arithmetic operations, logical operations and conditional operations  Operands : The values on which the operators perform the task  Expression Types in C a) Infix Expression b) Postfix Expression c) Prefix Expression
1. 13 Expressions Contd… a) Infix Expression  The operator is used between operands  General Structure : Operand1 Operator Operand2  Example : a + b b) Postfix Expression  Operator is used after operands  General Structure : Operand1 Operand2 Operator  Example : ab+
1. 13 Expressions Contd… c) Prefix Expression  Operator is used before operands  General Structure : Operator Operand1 Operand2  Example : +ab
1. 14 Input and Output Functions  Ability to Communicate with Users during execution  Input Operation  Feeding data into program  Data Transfer from Input device to Memory  Output Operation  Getting result from Program  Data Transfer from Memory to Output device  Header File : #include<stdio.h>
1. 14 Input and Output Functions Contd…  Input / Output Function Types a) Formatted Input / Output Statements b) Unformatted Input / Output Statements
1. 14 Input and Output Functions Contd… a) Formatted Input / Output Statements  Reads and writes all types of data values  Arranges data in particular format  Requires Format Specifier to identify Data type  Basic Format Specifiers  %d – Integer  %f – Float  %c – Character  %s - String
1. 14 Input and Output Functions Contd… i. The scanf ( ) Function  Reads all types of input data  Assignment of value to variable during Runtime  Syntax  Control String / Format Specifier  arg1, arg2.,,, arg n – Arguments (Variables)  & - Address scanf(“Control String/Format Specifier”, &arg1, &arg2,… &argn)
1. 14 Input and Output Functions Contd… /* Giving Direct Input in Program */ #include<stdio.h> #include<conio.h> void main( ) { int a; a=10; } /*Getting Input using scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a; scanf(“%d”, &a); }
1. 14 Input and Output Functions Contd… /* Getting Multiple Input using scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b, c; scanf(“%d%d%d”,&a,&b,&c); } /* Getting Multiple Different Inputs using scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b; float c; scanf(“% d%d %f”,&a,& b,&c); }
1. 14 Input and Output Functions Contd… /* Getting Multiple Input using scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b; float c; scanf(“%d %d”, &a, &b); scanf(“%f ”, &c); }
1. 14 Input and Output Functions Contd… ii. The printf ( ) Function  To print Instructions / Output onto the Screen  Requires Format Specifiers & Variable names to print data  Syntax  Control String / Format Specifier  arg1, arg2.,,, arg n – Arguments (Variables) printf(“Control String/Format Specifier”,arg1,arg2,… argn)
1. 14 Input and Output Functions Contd… /* Example 1 – Using printf ( ) & scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a; printf(“Enter the Value of a”); scanf(“%d”, &a); printf(“Value of a is %d”, a); getch( ); }
1. 14 Input and Output Functions Contd… /* Example 2 – Using printf ( ) & scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b, c; printf(“Enter the Value of a, b & c”); scanf(“%d %d %d”, &a, &b, &c); printf(“Value of a, b & c is %d %d %d”, a, b, c); getch ( ); }
/* Example 3 – Using printf ( ) & scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b; float c; printf(“Enter the Value of a & b”); scanf(“%d %d”, &a, &b); printf(“Enter the Value of a & b”); scanf(“%f ”, &c); printf(“Value of a, b is %d%d”, a, b); printf(“Value of c is %f”, c); getch ( ); }
1. 14 Input and Output Functions Contd…  Try it Out Yourself ! Write a C program to: 1) Add two numbers 2) To Multiply two floating point numbers 3) To compute Quotient and Remainder 4) To Swap two numbers
1. 14 Input and Output Functions Contd… b) Unformatted Input / Output Statements  Works only with Character Data type  No need of Format Specifier  Unformatted Input Statements i. getch ( ) – Reads alphanumeric characters from Keyboard ii. getchar ( ) – Reads one character at a time till enter key is pressed
1. 14 Input and Output Functions Contd… iii. gets ( ) – Accepts any string from Keyboard until Enter Key is pressed  Unformatted Output Statements i. putch ( ) – Writes alphanumeric characters to Monitor (Output Device) ii. putchar ( ) – Prints one character at a time iii. puts ( ) – Prints a String to Monitor (Output Device)
1. 14 Input and Output Functions Contd… /* Example 4 – Using printf ( ) & scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b; float c; printf(“Enter the Value of a, b & c”); scanf(“%d %d%f”, &a, &b, &c); printf(“Value of a, b & c is %d%d%f”, a, b, c); getch ( ); }
1. 15 Operators in C  C supports rich set of built in Operators  Used to manipulate Constants (Data) & Variables  Part of Mathematical (or) Logical expressions  Operators vs Operands  Operator – Definition  Symbol (or) Special character that instructs the compiler to perform mathematical (or) Logical operations
 Classification of Operators a) Arithmetic Operators b) Relational Operators c) Logical Operators d) Conditional Operators e) Increment & Decrement Operators f) Comma Operator g) Arrow Operator h) Assignment Operators
a) Arithematic Operators  Arithematic Expression : An expression containing arithematic operator in between with two operands.
/* Program for Arithematic Operations*/ #include<stdio.h> int main( ) { int a,b; printf("Enter the two Valuesn"); scanf("%d%d", &a, &b); printf(“a+b is %dn“, (a+b)); printf(“a-b is %dn“, (a-b)); printf(“a*b is %dn“, (a*b)); printf(“a/b is %dn“, (a/b)); printf(“a%b is %dn“, (a%b)); printf(“a^b is %dn“, (a^b)); return 0; }
Output 4 2 a + b is 6 a - b is 2 a * b is 8 a / b is 2 a % b is 0 a ^ b is 16
b) Relational Operators  Binary Operators (or) Boolean Operators  Produces an integer result  Condition True : Integer value is 1  Condition False : Integer value is 0  Compares  Values between two variables  Values between variables and constants
1.15 Operators in C Contd… b) Relational Operators Contd…  Relational Expression / Boolean Expression : An expression containing a relational operator
b) Relational Operators Contd…  Consider a = 10 and b =4. The relational expression returns the following integer values Relational Expression Result Return Values a < b False 0 a > b True 1 a < = b False 0 a > = b True 1 a = = b False 0 a ! = b True 1
/* Program for Relational Operations*/ #include<stdio.h> int main( ) { int a,b; printf("Enter the two Valuesn"); scanf("%d%d", &a, &b); printf(“a>b is %dn“, (a>b)); printf(“a<b is %dn“, (a<b)); printf(“a>=b is %dn“, (a>=b)); printf(“a<=b is %dn“, (a<=b)); printf(“a==b is %dn“, (a==b)); printf(“a!=b is %dn“, (a!=b)); return 0; }
Output 4 2 a > b is 1 a < b is 0 a > = b is 1 a < = b is 0 a = = b is 0 a ! = b is 1
1.15 Operators in C Contd… c) Logical Operators  Combines two or more relations  Used for testing one or more conditions
1.15 Operators in C Contd… c) Logical Operators Contd…  Logical Expression / Compound Relational Expression : An expression which combines two or more relational expression Op1 Op2 Op1 && Op2 Op1 || Op2 F (0) F (0) F (0) F (0) F (0) T (1) F (0) T (1) T (1) F (0) F (0) T (1) T (1) T (1) T (1) T (1)
1.17 Operators in C Contd… c) Logical Operators Contd…  Consider a = 10 and b =4. The Logical expression returns the following integer values Relational Expression Result Return Values a < 5 && b > 2 True 1 a < 5 && b < 2 False 0 a >5 && b < 2 False 0 a >5 || b < 2 True 1 a <5 || b < 2 False 0 a > 5 || b < 2 True 1
/* Program for Logical Operations*/ #include<stdio.h> int main( ) { int age,height; printf("Enter Age of Candidate:n"); scanf("%d", &age); printf(“Enter Height of Candidate: n“); scanf("%d", &height); if ((age>=18) && (height>=5)) printf(“The Candidate is Selected”); else printf(“Sorry, Candidate not Selected”); return 0;
Output 1 Enter Age of Candidate: 18 Enter Height of Candidate: 6 The Candidate is Selected Output 2 Enter Age of Candidate: 19 Enter Height of Candidate: 4 Sorry, Candidate not Selected
 If expression 1 is true then the value returned will be expression 2  Otherwise the value returned will be expression 3 1.15 Operators in C Contd… d) Conditional Operators  ? and are the Conditional Operators  Also called as Ternary Operators  Shorter form of if-then-else statement  Syntax Expression 1 ? Expression 2 : expression 3
#include<stdio.h> int main( ) { int x, y; scanf("%d", &x); y=(x > 5 ? 3 : 4); printf(“%d”, y); return 0; } #include<stdio.h> int main( ) { int x, y; scanf("%d", &x); if(x >5) y=3; else y=4; printf(“%d”, y); return 0; }
/* Program for Addition (or) Multiplication*/ #include<stdio.h> int main( ) { int a, b, result, choice; printf(“Enter first number n”); scanf(“%d”,&a); printf(”Enter second number n”); scanf(“%d”,&b); printf(“Enter 1 for addition or 2 for multiplicationn”); scanf(“%d”,&choice); result = (choice==1)?a+b:(choice==2)?a*b:printf(“Invalid”); if(choice==1||choice==2) printf(“The result is %dnn”,result); return 0;
Output Enter first number 10 Enter second number 3 Enter 1 for addition or 2 for multiplication 2 The result is 30
/* Program to find the maximum of 3 Numbers*/ #include <stdio.h> int main( ) { int a, b, c, max; printf("Enter three numbers: "); scanf("%d%d %d",&a, &b, &c); max = (a > b && a > c) ? a : (b > c) ? b : c;
Output Enter three numbers: 30 10 40 Maximum between a, b and c = 40
1. 15 Operators in C Contd… e) Increment and Decrement Operators  Increment and decrement operators are unary operators that add or subtract one from their operand  C languages feature two versions (pre- and post-) of each operator  Operator placed before variable (Pre)  Operator placed before variable (Post)  The increment operator is written as ++ and the decrement operator is written as --
1. 15 Operators in C Contd… a) Increment and Decrement Operators Contd…  Classification  Pre Increment Operator  Post Increment Operator  Pre Decrement Operator  Post Decrement Operator
1. 15 Operators in C Contd… a) Increment and Decrement Operators Contd…  Syntax  Examples  ++count, ++a, ++i, + +count  Count++, a++, i++, count++ (pre)++variable_name; (pre)- -variable_name; (Or) variable_name++ (post); variable_name – (Post);
1. 15 Operators in C Contd… e) Increment and Decrement Operators Contd… S. No Operator type Operator Description 1 Pre Increment ++i Value of i is incremented before assigning it to variable i. 2 Post Increment i++ Value of i is incremented after assigning it to variable i. 3 Pre Decrement -- i Value of i is decremented before assigning it to variable i. 4 Post Decrement i -- Value of i is decremented after assigning it to variable i.
/* Program for Post Increment*/ #include<stdio.h> #include<conio.h> void main( ) { int i = 1; while (i++<5) { printf(“%d”,i); } } getch( ); } Output 1 2 3 4 5
1. 15 Operators in C Contd… e) Increment and Decrement Operators Contd…  Step 1 : In this program, value of i “0” is compared with 5 in while expression.  Step 2 : Then, value of “i” is incremented from 0 to 1 using post- increment operator.  Step 3 : Then, this incremented value “1” is assigned to the variable “i”.  Above 3 steps are continued until while expression becomes false and output is displayed as “1 2 3 4 5”.
/* Program for Pre Increment*/ #include<stdio.h> #include<conio.h> void main( ) { int i = 1; while (++i<5) { printf(“%d” , i ); } } getch ( ); } Output 1 2 3 4
1. 15 Operators in C Contd… e) Increment and Decrement Operators Contd…  Step 1 : In above program, value of “i” is incremented from 0 to 1 using pre- increment operator.  Step 2 : This incremented value “1” is compared with 5 in while expression.  Step 3 : Then, this incremented value “1” is assigned to the variable “i”.  Above 3 steps are continued until while expression becomes false and output is displayed as “1 2 3 4”.
/* Program for Post Decrement*/ #include<stdio.h> #include<conio.h> void main( ) { int i = 1; while (i--<5) { printf(“%d” , i ); } } getch ( ); } Output 9 8 7 6 5
1. 15 Operators in C Contd… e) Increment and Decrement Operators Contd…  Step 1 : In this program, value of i “10” is compared with 5 in while expression.  Step 2 : Then, value of “i” is decremented from 10 to 9 using post- decrement operator.  Step 3 : Then, this decremented value “9” is assigned to the variable “i”.  Above 3 steps are continued until while expression becomes false and output is displayed as “9 8 7 6 5”.
/* Program for Pre Decrement*/ #include<stdio.h> #include<conio.h> void main( ) { int i = 1; while (--i<5) { printf(“%d” , i); } } getch ( ); } Output 9 8 7 6
1. 15 Operators in C Contd… e) Increment and Decrement Operators Contd…  Step 1 : In above program, value of “i” is decremented from 10 to 9 using pre-decrement operator.  Step 2 : This decremented value “9” is compared with 5 in while expression.  Step 3 : Then, this decremented value “9” is assigned to the variable “i”.  Above 3 steps are continued until while expression becomes false and output is displayed as “9 8 7 6”.
1. 15 Operators in C Contd… b) Comma Operator  Special operator which separates the declaration of multiple variables  Has Lowest Precedence i.e it is having lowest priority so it is evaluated at last  Returns the value of the rightmost operand when multiple comma operators are used inside an expression  Acts as Operator in an Expression and as a Separator while Declaring Variables
1. 15 Operators in C Contd… f) Comma Operator #include<stdio.h> int main( ) { int i, j; i=(j=10, j+20); printf(“i = %dn j = %d n” , i,j ); return 0;
1. 15 Operators in C Contd… g) Arrow Operator (->)  Arrow operator is used to access the structure members when we use pointer variable to access it  When pointer to a structure is used then arrow operator is used
1. 15 Operators in C Contd… h) Assignment Operators  Assigns result of expression to a variable  Performs Arithmetic and Assignment operations  Commonly used Assignment operator: =  Syntax  Examples  num = 25; age = 18; pi = 31.4; area = 3.14 * r * r; variable = expression;
1. 15 Operators in C Contd…  Shorthand Assignment Operators Simple Assignment Operator Shorthand Operator a = a + 1 a+=1 a = a – 1 a-=1 a = a * 2 a*=2 a = a / b a/=b a = a % b a%=b c = c * (a + b) c *= (a + b) b = b / (a + b) b /=(a + b)
/* Program for Assignment Operations*/ #include<stdio.h> #include<conio.h> void main( ) { int a; a = 11; a+ = 4; printf(“Value of A is %dn”,a); a = 11; a- = 4; printf(“Value of A is %dn”,a); a = 11; a* = 4; printf(“Value of A is %dn”,a); a = 11; a/ = 4;
printf(“Value of A is %dn”,a); a = 11; a% = 4; printf(“Value of A is %dn”,a); getch ( ); } Output Value of A is 15 Value of A is 7 Value of A is 44 Value of A is 2 Value of A is 3
1. 16 Single Line and Multiline Comments Contd… a) Single Line Comment  Represented by double slash #include<stdio.h> int main( ){ //printing information printf("Hello C"); return 0; }
1. 16 Single Line and Multiline Comments Contd… b) Multi-Line Comment  Represented by slash asterisk * ... * #include<stdio.h> int main( ){ /*printing information Multi Line Comment*/ printf("Hello C"); return 0; }
1. 16 Single Line and Multiline Comments  Comment – Definition  Used to provide information about lines of code  Provide clarity to the C source code  Allows others to better understand what the code was intended to  Helps in debugging the code hundreds or  Important in large projects containing thousands of lines of source code  Types – Single line and multiline comment
1. 16 Single Line and Multiline Comments Contd… Single-Line Comments Multi-Line Comment Starts with /* and ends with */ Starts with // All Words and Statements written between /* and */ are ignored Statements after the symbol // upto the end of line are ignored Comment ends when */ Occures Comment Ends whenever ENTER is Pressed and New Line Starts e.g /* Program for Factorial */ e.g // Program for Fibonacci
1.17 Operator Precedence  Operator Precedence is used to determine the order of  operators evaluated in an expression  Every operator has precedence (Priority)  Operator with higher precedence is evaluated first and the operator with least precedence is evaluated last  Associativity is used when two operators of same precedence appear in an expression  Determines the order of evaluation of those operators  Associativity can be either Left to Right or Right to Left
1.17 Operator Precedence Contd…  Operators are listed in descending order of precedence  An Expression can contain several operators with equal precedence  Evaluation proceeds according to the associativity of the operator i.e.,  From Right to Left (or)  From Left to Right  Note: Order of operations is not defined by the language
1.18 Expressions using Pre/Post Increment Operator  Increment operators increase the value of the variable by one  Decrement operators decrease the value of the variable by one  Syntax  Increment operator: ++var_name; (or) var_name++; Decrement operator: – -var_name; (or) var_name – -;  Example  Increment operator : ++ i ;i ++ ; Decrement operator :– – i ;i – – ;
/* Expresssions using Pre-Increment Operator*/ #include<stdio.h> int main( ) { int x,i; i=10; x=++i; printf("x: %d",x); printf("i: %d",i); return 0; } Output x: 11 i: 11
/* Expresssions using Pre-Decrement Operator*/ #include<stdio.h> int main( ) { int x,i; i=10; x=--i; printf("x: %d",x); printf("i: %d",i); return 0; } Output x: 9
/* Expresssions using Post-Increment Operator*/ #include<stdio.h> int main( ) { int x,i; i=10; x=i++; printf("x: %d",x); printf("i: %d",i); return 0; } Output x: 10 i: 11
/* Expresssions using Post-Decrement Operator*/ #include<stdio.h> int main( ) { int x,i; i=10; x=i--; printf("x: %d",x); printf("i: %d",i); return 0; } Output x: 10 i: 9
/* Expresssions using Increment / Decrement Operators*/ #include<stdio.h> int main( ) { int p,q,x,y; printf(“E nter the value of x n”); scanf(“% d” ,&x); printf(“Enter the value of y n”); scanf(“%d” ,&y); printf(“x=%dny=%dn”,x,y); p=x++; q=y++; printf(“x=%dty=%dn”,x,y); printf(“x=%dtq=%dn”,p,q); p=--x; q=--y;
Output Enter the value of x 10 Enter the value of y 20 x = 10 y = 20 x = 11 p = 10 x = 10 p = 10 y = 21 q = 20 y = 20 q = 20
1.19 Expressions using Conditional Operator  Any operator is used on three operands or variable is known  as Ternary Operator  It can be represented with ? : . It is also called as conditional operator
/* Program for Printing Odd or Even Number*/ #include<stdio.h> int main( ) { int num; printf("Enter the Number : "); scanf("%d",&num); (num%2==0)? printf("Evenn"):printf("Odd"); } Output Enter the Number : 10 Even
/* Program for Eligibility to Vote*/ #include<stdio.h> int main( ) { int age; printf(" Please Enter your age here: n "); scanf(" %d ", &age); (age >= 18) ? printf(" You are eligible to Vote ") : printf(" You are not e l i g i b l e
/* Program for Finding Biggest of 2 Numbers*/ #include<stdio.h> int main( ) { int a, b, max; printf("Enter a and b: "); scanf("%d%d", &a, &b); max = a > b ? a : b; printf("Largest of the two numbers = %dn", max); return 0; } Output Enter a and b: 10 20 Largest of the two numbers = 20
1.20 Expressions using Assignment Operator  Assignment Operator is used to assign value to an variable  Assignment Operator is denoted by equal to sign  Assignment Operator is binary operator which operates on two operands  Assignment Operator have Two Values – L-Value and R-Value  Operator = copies R-Value into L-Value  Assignment Operator have lower precedence than all available operators but has higher precedence than comma Operator
1.21 L-Value and R-Value of Expression a) L-Value stands for left value  L-Value of Expressions refer to a memory locations  In any assignment statement L-Value of Expression must be a container(i.e. must have ability to hold the data)  Variable is the only container in C programming thus L Value must be any Variable.  L Value cannot be a Constant, Function or any of the available data type in C
1.21 L-Value and R-Value of Expression Contd…  Diagram Showing L-Value of Expression :
1.21 L-Value and R-Value of Expression Contd… #include<stdio.h> int main( ) { int num; num = 5; return(0); } Example of L- Value Expression #include<stdio.h> int main( ) { int num; 5 = num; //Error return(0); } L-value cannot be a Constant #include<stdio.h> int main( ) { const num; num = 20; //Error return(0); } L-value cannot be a Constant Variable
1.21 L-Value and R-Value of Expression Contd… #include<stdio.h> #define MAX 20 int main( ) { MAX = 20; //Error return(0); } L-value cannot be a MACRO #include<stdio.h> enum {JAN,FEB,MARCH}; int main( ) { JAN = 20; //Error return(0); } L-value cannot be a Enum Constant
1.21 L-Value and R-Value of Expression Contd… b) R Value stands for Right value of the expression  In any Assignment statement R-Value of Expression must be anything which is capable of returning Constant Expression or Constant Value
 R value may be a Constant or Constant Expression  R value may be a MACRO  R Value may be a variable 1.21 L-Value and R-Value of Expression Contd… Examples of R-Value of Expression Variable Constant Function Macro Enum Constant Any other data type
THANK YOU

Unit 1 c programming language Tut and notes

  • 1.
    21CSS101J – Programmingfor Problem Solving Unit I
  • 2.
    UNIT I INTRODUCTION Evolutionof Programming & Languages - Problem Solving through Programming - Writing Algorithms & Pseudo code - Single line and multiline comments- Introduction to C : Structure of C the Program - Input and output statements - Variables and identifiers, Constants, Keywords –Values, Names, Scope, Binding, Storage Classes - Numeric Data types: integer, floating point – Non-Numeric Data types : char and string- L value and R value in expression, Increment and Decrement operator-Comma, Arrow and Assignment operator – Arithmetic, Relational and Logical Operators – Condition Operators, Operator Precedence – Expressions with pre/post increment operator.
  • 3.
    1. 1 Evolutionof Programming & Languages  A Computer needs to be given instructions in a programming language that it understands  Programming Language  Artificial language that controls the behavior of computer  Defined through the use of syntactic and semantic rules  Used to facilitate communication about the task of organizing and manipulating information  Used to express algorithms precisely
  • 5.
    1. 1 Evolutionof Programming & Languages Contd… Period Programming Langugaes 1950’s Creation of high-level languages 1960’s Forth. Simula I. Lisp, Cobol 1970’s Pascal, C language 1980’s ML. Smalltalk, C++ 1990’s Java, Perl, Python languages 2000 Internet Programming 2010 Concurrency and asynchronicity. JavaScript and Go language
  • 6.
    1. 2 ProblemSolving through Programming  Problem - Defined as any question, something involving doubt, uncertainty, difficulty, situation whose solution is not immediately obvious  Computer Problem Solving  Understand and apply logic  Success in solving any problem is only possible after we have made the effort to understand the problem at hand  Extract from the problem statement a set of precisely defined tasks
  • 7.
    1. 2 ProblemSolving through Programming Contd… i. Creative Thinking  Proven method for approaching a challenge or opportunity in an imaginative way  Process for innovation that helps explore and reframe the problems faced, come up with new, innovative responses and solutions and then take action  It is generative, nonjudgmental and expansive  Thinking creatively, a lists of new ideas are generated
  • 8.
    1. 2 ProblemSolving through Programming Contd… ii. Critical Thinking  Engages a diverse range of intellectual skills and activities that are concerned with evaluating information, our assumptions and our thinking processes in a disciplined way so that we can think and assess information more comprehensively  It is Analytical, Judgmental and Selective  Thinking critically allows a programmer in making choices
  • 9.
    1. 2 ProblemSolving through Programming Contd…
  • 10.
    1. 2 ProblemSolving through Programming Contd…  Program - Set of instructions that instructs the computer to do a task  Programming Process a) Defining the Problem b) Planning the Solution c) Coding the Program d) Testing the Program e) Documenting the Program
  • 11.
    1. 2 ProblemSolving through Programming Contd…
  • 12.
    1. 2 ProblemSolving through Programming Contd…  A typical programming task can be divided into two phases: i. Problem solving phase  Produce an ordered sequence of steps that describe solution of problem this sequence of steps is called an Algorithm ii. Implementation phase  Implement the program in some programming language  Steps in Problem Solving a) Produce a general algorithm (one can use pseudocode)
  • 13.
    1. 2 ProblemSolving through Programming Contd… b) Refine the algorithm successively to get step by step detailed algorithm that is very close to a computer language c) Pseudocode is an artificial and informal language that helps programmers develop algorithms  Pseudocode is very similar to everyday English
  • 14.
    Algorithm: a step-by-stepmethod for solving a problem or doing a task. 1. 3 Creating Algorithms  An informal definition of an algorithm is:
  • 15.
    1. 3 CreatingAlgorithms Contd…  What are Algorithms for?  A way to communicate about your problem/solution with others  A possible way to solve a given problem  A "formalization" of a method, that will be proved  A mandatory first step before implementing a solution  Algorithm Definition - “A finite sequence of unambiguous, executable steps or instructions, which, if followed would ultimately terminate and give the solution of the problem”
  • 16.
    1. 3 CreatingAlgorithms  Notations  Starting point  Step Numbers – Positions in Algorithm Incoming Information - Input  Control Flow – Order of evaluating Instructions  Statements  Outgoing Information - Output  Ending Point
  • 17.
    1. 3 CreatingAlgorithms Contd…  Properties of an algorithm  Finite: The algorithm must eventually terminate  Complete: Always give a solution when one exists  Correct (sound): Always give a correct solution  Rules of Writing an Algorithm  Be consistent  Have well Defined input and output  Do not use any syntax of any specific programming language
  • 18.
     Algorithm developmentprocess consists of five major steps  Step 1: Obtain a description of the problem  Step 2: Analyze the problem  Step 3: Develop a high-level algorithm  Step 4: Refine the algorithm by adding more detail  Step 5: Review the algorithm
  • 19.
    1. 3 CreatingAlgorithms Contd… Example  Problem a) Develop an algorithm for finding the largest integer among a list of positive integers b) The algorithm should find the largest integer among a list of any values c) The algorithm should be general and not depend on the number of integers
  • 20.
    1. 3 CreatingAlgorithms Contd…  Solution a) To solve this problem, we need an intuitive approach b) First use a small number of integers (for example, five), then extend the solution to any number of integers c) The algorithm receives a list of five integers as input and gives the largest integer as output
  • 25.
    1. 3 CreatingAlgorithms Contd… Example 2: Print 1 to 20  Step 1: Start  Step 2: Initialize X as 0,  Step 3: Increment X by 1,  Step 4: Print X,  Step 5: If X is less than 20 then go back to step 2.  Step 6: Stop
  • 26.
    1. 3 CreatingAlgorithms Contd… Example 3 Convert Temperature from Fahrenheit (℉) to Celsius (℃)  Step 1: Start  Step 2: Read temperature in Fahrenheit  Step 3: Calculate temperature with formula C=5/9*(F-32)  Step 4: Print C  Step 5: Stop
  • 27.
    1. 3 CreatingAlgorithms Contd… Example 4 Algorithm to Add Two Numbers Entered by User  Step 1: Start  Step2: Declare variables num1, num2 and sum.  Step 3: Read values num1 and num2.  Step 4: Add num1 and num2 and assign the result to sum. sum←num1+num2  Step 5: Display sum Step 6: Stop
  • 28.
    1. 3 CreatingAlgorithms Contd…  Write an Algorithm to: 1) Find the Largest among three different numbers 2) Find the roots of a Quadratic Equation 3) Find the Factorial of a Number 4) Check whether a number entered is Prime or not 5) Find the Fibonacci Series
  • 29.
    1. 3 DrawingFlowcharts  Diagrammatic representation  Illustrates sequence of operations to be performed  Each step represented by a different symbol  Each Symbol contains short description of the Process  Symbols linked together by arrows  Easy to understand diagrams  Clear Documentation  Helps clarify the understanding of the process
  • 31.
    1. 3 DrawingFlowcharts Contd…
  • 32.
    1. 3 DrawingFlowcharts Contd…  Guidelines for Preparing Flowchart  Logical order of requirements  Ensure that Flowchart has logical Start and Stop  Direction is from Top to bottom  Only one flow line is used with Terminal Symbol  Only one flow line should come out of a Process symbol Only one flow line should enter a Decision symbol but multiple lines may leave the Decision symbol
  • 33.
    1. 3 DrawingFlowcharts Contd…  Guidelines for Preparing Flowchart Contd…  Write briefly within Symbols  Use connectors to reduce number of flow lines  Avoid intersection of flow lines  Test Flowchart through simple test data  Clear, Neat and easy to follow
  • 34.
    1. 3 DrawingFlowcharts Contd…
  • 37.
    1. 4 WritingPseudocode  Pseudo – Imitation / False  Code – Instructions  Goal: To provide a high level description of the Algorithm  Benefit: Enables programmer to concentrate on Algorithm  Similar to programming code  Description of the Algorithm  No specific Programming language notations  Pseudo Code transformed into actual program code
  • 38.
    1. 4 WritingPseudocode Contd… a) Guidelines for Writing Pseudo Code  Write only one Statement per line  Example – Pseudo Code for calculating Salary 1. READ name, hourly rate, hours worked, deduction rate 2. Gross pay = hourly rate * hours worked 3. deduction = gross pay * deduction rate 4. net pay = gross pay – deduction 5. WRITE name, gross, deduction, net pay
  • 39.
    1. 4 WritingPseudocode Contd… b) Capitalize Initial Keyword  Keywords to be written in capital letters  Examples: READ, WRITE, IF, ELSE, WHILE, REPEAT, PRINT c) Indent to show Hierarchy  Indentation shows the structure boundaries  Sequence  Selection  Looping
  • 40.
    1. 4 WritingPseudocode Contd… d) End Multiline structures  Each structure must end properly  Example: IF statement must end with ENDIF e) Keep Statements Language independent  Resist the urge to write Pseudo Code in any programming language
  • 41.
    1. 4 WritingPseudocode Contd…  Advantages  Easily typed in a Word document  Easily modified  Simple to Use and understand  Implements Structured Concepts  No special symbols are used  No specific syntax is used  Easy to translate into Program
  • 42.
    1. 4 WritingPseudocode Contd…  Disadvantages  No accepted Standard  Cannot be compiled and executed
  • 43.
    1. 4 WritingPseudocode Contd…  Write an Pseudo Code to: 1) Add three numbers and Display the result 2) Calculate Sum and product of two numbers 3) Input examination marks and award grades according to the following criteria: a) > = 80 Distinction b) > = 60 First Class c) > = 50 Second Class d) < 40 Fail
  • 44.
    1. 4 WritingPseudocode Contd… 1. Pseudo Code to Add Three Numbers  Use Variables: sum, num1, num2, num3 of type integer  ACCEPT num1,num2,num3  Sum = num1+num2+num3  Print sum  End Program
  • 45.
    1. 4 WritingPseudocode Contd… 2. Calculate Sum and product of two numbers  Use Variables: sum, product, num1, num2 of type real  DISPLAY “Input two Numbers”  ACCEPT num1,num2  Sum = num1+num2  Print “The sum is”, sum  product = num1*num2  Print “The product is”, product  End Program
  • 46.
    1. 4 WritingPseudocode Contd… 3. Input examination marks and award grades  Use Variables: mark of type integer  If mark >=80 DISPLAY “Distinction”  If mark >=60 and mark <80 DISPLAY “First Class”  If mark >=50 and mark <60 DISPLAY “Second Class”  If mark <50 DISPLAY “Fail”  End Program
  • 47.
    •History & Evolutionof C  C – General Purpose Programming Language  Developed by Dennis Ritchie in 1972  Developed at Bell Laboratories  Principles taken from BCPL and CPL  Structured Programming Language  C Program  Collection of Functions  Supported by C library
  • 48.
    • History &Evolution of C Cont… 1960 1967 1970 1972 1978 1989 1990 1999
  • 49.
     Why theName “C” ? Many of C’s principles and ideas were derived from the earlier language B  BCPL and CPL are the earlier ancestors of B Language (CPL is • common Programming Language)  In 1967, BCPL Language ( Basic CPL ) was created as a scaled • down version of CPL As many of the features were derived from “B” Language the new language was named as “C”.
  • 50.
     Characteristics of‘C’  Low Level Language Support  Structured Programming  Extensive use of Functions  Efficient use of Pointers  Compactness  Program Portability  Loose Typing
  • 51.
     Advantages ofC  Compiler based Language  Programming – Easy & Fast  Powerful and Efficient  Portable  Supports Graphics  Supports large number of Operators  Used to Implement Data structures
  • 52.
     Disadvantages ofC  Not a strongly typed Language  Use of Same operator for multiple purposes  Not Object Oriented
  • 53.
    •Structure of ‘C’Program Structure based on Set of rules defined by the Compiler Sections 1) Documentation 2) Preprocessor 3) Global Declaration 4) main( ) function 5) Local Declaration 6) Program Statements
  • 54.
     Rules forWriting a C Program a) All statements should be written in lower case b) All statements should end with a semicolon c) Upper case letters are used for symbolic constants d) Blank spaces can be inserted between words e) No blank space while declaring a variable, keyword, constant f) Can write one or more statement in same line separated by • comma g) Opening and closing of braces should be balanced
  • 55.
    /* Program toFind Area of Circle */ #include <stdio.h> #include <conio.h> const float pi = 3.14; void main( ) { float area; int r; printf(“Enter the Radius of the Circle”); scanf(“%d”, &r); area = pi * r * r; printf(“The area of the Circle is %f”, area); getch( ); } Comment Local Declaration & Initialization Execution Preprocessor Directives Global Declaration main Function
  • 56.
    1) Documentation Section Used for providing Comments  Comment treated as a single white space by Compiler  Ignored at time of Execution: Not Executable  Comment:  Single Line Comment - //  Multi Line Comment - /*.... */ Sequence of Characters given between /* and */  Example: Program Name, Statement description /* Program to Find Area of a Circle*/
  • 57.
    2) Preprocessor Section Also called as Preprocessor Directive  Also called as Header Files  Not a part of Compiler  Separate step in Compilation Process  Instructs Compiler to do required Preprocessing  Begins with # symbol  Preprocessor written within < >
  • 58.
     Examples  #include<stdio.h>  #include <conio.h>  #include <math.h>  #include <stdlib.h>  #define PI 3.1412
  • 59.
    Directive Description #define Substitutesa preprocessor macro. #include Inserts a particular header from another file. #undef Undefines a preprocessor macro. #ifdef Returns true if this macro is defined. #ifndef Returns true if this macro is not defined. #if Tests if a compile time condition is true. #else The alternative for #if. #elif #else and #if in one statement. #endif Ends preprocessor conditional. #error Prints error message on stderr. #pragma Issues special commands to the compiler, using a standardized method.
  • 60.
    3) Global DeclarationSection  Used to Declare Global variable (or) Public variable  Variables are declared outside all functions  Variables can be accessed by all functions in the program  Same variable used my more than one function
  • 61.
    4) main( )Section  main( ) written in all small letters (No Capital Letters)  Execution starts with a Opening Brace : {  Divided into two sections: Declaration & Execution  Declaration : Declare Variables  Executable: Statements within the Braces  Execution ends with a Closing Brace : }  Note: main( ) does not end with a semicolon
  • 62.
    5) Local DeclarationSection  Variables declared within the main( ) program  These variables are called Local Variables  Variables initialized with basic data types
  • 65.
    C Token -Smallest individual unit of a C program C program broken into many C tokens Building Blocks of C program
  • 66.
    Keywords – Conveysspecial meaning to Compiler  Cannot be used as variable names
  • 67.
    Constants  Definition :Valuedoes not change during execution  Can be a Number (or) a Letter  Types  Integer Constants  Real Constants  Character Constant  Single Character Constants  String Constants
  • 68.
  • 69.
    Variables & Identifiers Identifier  A string of alphanumeric characters that begins with an alphabetic character or an underscore character  There are 63 alphanumeric characters, i.e., 53 alphabetic characters and 10 digits (i.e., 0-9)  Used to represent various programming elements such as variables, functions, arrays, structures, unions  The underscore character is considered as a letter in identifiers (Usually used in the middle of an identifier)
  • 70.
    Variables & IdentifiersContd….  Rules for Identifers  Combination of alphabets, digits (or) underscore  First character should be a Alphabet  No special characters other than underscore can be used  No comma / spaces allowed within variable name  A variable name cannot be a keyword  Variable names are case sensitive  Variable Definition :Value changes during execution  Identifier for a memory location where data is stored
  • 71.
    Variables & IdentifiersContd…  Variable name length cannot be more than 31 characters  Examples: AVERAGE, height, a, b, sum, mark_1, gross_pay  Variable Declaration  A variable must be declared before it is used  Declaration consists of a data type followed by one or more variable names separated by commas.  Syntax datatype variablename;
  • 72.
    Variables & IdentifiersContd…  Examples int a, b, c, sum; float avg; char name;  Variable Initialization  Assigning a value to the declared variable  Values assigned during declaration / after declaration
  • 73.
    Variables & IdentifiersContd…  Examples i. int a, b, c; a=10, b=20, c=30; ii. int a=10 ,b=10, c=10;  Scope of Variables  Local Variables  Global Variables
  • 74.
    Scope of Variables Definition  A scope in any programming is a region of the program where a defined variable can have its existence and beyond that variable it cannot be accessed  Variable Scope is a region in a program where a variable is declared and used  The scope of a variable is the range of program statements that can access that variable  A variable is visible within its scope and invisible outside it
  • 75.
    Scope of VariablesContd…  There are three places where variables can be declared a) Inside a function or a block which is called local variables b) Outside of all functions which is called global variables c) In the definition of function parameters which are called formal parameters
  • 76.
    1. 12 Scopeof Variables Contd… a) Local Variables  Variables that are declared inside a function or block are called local variables  They can be used only by statements that are inside that function or block of code  Local variables are created when the control reaches the block or function containing the local variables and then they get destroyed after that  Local variables are not known to functions outside their own
  • 77.
    /* Program forDemonstrating Local Variables*/ #include <stdio.h> int main ( ) { /* local variable declaration */ int a, b; int c; / * a c t u a l
  • 78.
    1. 12 Scopeof Variables Contd… b) Global Variables  Defined outside a function, usually on top of the program  Hold their values throughout the lifetime of the program  Can be accessed inside any of the functions defined for the program  Can be accessed by any function  That is, a global variable is available for use throughout the entire program after its declaration
  • 79.
    /* Program forDemonstrating Global Variables*/ #include <stdio.h> /* global variable declaration */ int g; int main ( ) { /* local variable declaration */ int a, b; /* actual initialization */ a = 10; b = 20; g = a + b; printf ("value of a = %d, b = %d and g = %dn", a, b, g); return 0; }
  • 80.
    1. 12 Scopeof Variables Contd…  Note: A program can have same name for local and global variables but the value of local variable inside a function will take preference
  • 81.
    12 Datatypes  Definesa variable before use  Specifies the type of data to be stored in variables  Basic Data Types – 4 Classes a) int – Signed or unsigned number b) float – Signed or unsigned number having Decimal Point c) char – A Character in the character Set  Qualifiers
  • 82.
  • 83.
  • 84.
    Datatypes Contd… a) IntegerData Type  Whole numbers with a range  No fractional parts  Integer variable holds integer values only  Keyword: int  Memory: 2 Bytes (16 bits) or 4 Bytes (32 bits)  Qualifiers: Signed, unsigned, short, long  Examples: 34012, 0, -2457
  • 85.
    Datatypes Contd… b) FloatingPoint Data Type  Numbers having Fractional part  Float provides precision of 6 digits  Integer variable holds integer values only  Keyword: float  Memory: 4 Bytes (32 bits)  Examples: 5.6, 0.375, 3.14756
  • 86.
    Datatypes Contd… c) DoubleData Type  Also handles floating point numbers  Double provides precision of 14 digits  Integer variable holds integer values only  Keyword: float  Memory: 8 Bytes (64 bits) or 10 Bytes (80 bits)  Qualifiers: long, short
  • 87.
    1. 12 DatatypesContd… d) Character Data Type  handles one character at a time  Keyword: char  Memory: 1 Byte (8 bits)
  • 88.
    1. 13 Expressions Expression : An Expression is a collection of operators and operands that represents a specific value  Operator : A symbol which performs tasks like arithmetic operations, logical operations and conditional operations  Operands : The values on which the operators perform the task  Expression Types in C a) Infix Expression b) Postfix Expression c) Prefix Expression
  • 89.
    1. 13 ExpressionsContd… a) Infix Expression  The operator is used between operands  General Structure : Operand1 Operator Operand2  Example : a + b b) Postfix Expression  Operator is used after operands  General Structure : Operand1 Operand2 Operator  Example : ab+
  • 90.
    1. 13 ExpressionsContd… c) Prefix Expression  Operator is used before operands  General Structure : Operator Operand1 Operand2  Example : +ab
  • 91.
    1. 14 Inputand Output Functions  Ability to Communicate with Users during execution  Input Operation  Feeding data into program  Data Transfer from Input device to Memory  Output Operation  Getting result from Program  Data Transfer from Memory to Output device  Header File : #include<stdio.h>
  • 92.
    1. 14 Inputand Output Functions Contd…  Input / Output Function Types a) Formatted Input / Output Statements b) Unformatted Input / Output Statements
  • 94.
    1. 14 Inputand Output Functions Contd… a) Formatted Input / Output Statements  Reads and writes all types of data values  Arranges data in particular format  Requires Format Specifier to identify Data type  Basic Format Specifiers  %d – Integer  %f – Float  %c – Character  %s - String
  • 95.
    1. 14 Inputand Output Functions Contd… i. The scanf ( ) Function  Reads all types of input data  Assignment of value to variable during Runtime  Syntax  Control String / Format Specifier  arg1, arg2.,,, arg n – Arguments (Variables)  & - Address scanf(“Control String/Format Specifier”, &arg1, &arg2,… &argn)
  • 96.
    1. 14 Inputand Output Functions Contd… /* Giving Direct Input in Program */ #include<stdio.h> #include<conio.h> void main( ) { int a; a=10; } /*Getting Input using scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a; scanf(“%d”, &a); }
  • 97.
    1. 14 Inputand Output Functions Contd… /* Getting Multiple Input using scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b, c; scanf(“%d%d%d”,&a,&b,&c); } /* Getting Multiple Different Inputs using scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b; float c; scanf(“% d%d %f”,&a,& b,&c); }
  • 98.
    1. 14 Inputand Output Functions Contd… /* Getting Multiple Input using scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b; float c; scanf(“%d %d”, &a, &b); scanf(“%f ”, &c); }
  • 99.
    1. 14 Inputand Output Functions Contd… ii. The printf ( ) Function  To print Instructions / Output onto the Screen  Requires Format Specifiers & Variable names to print data  Syntax  Control String / Format Specifier  arg1, arg2.,,, arg n – Arguments (Variables) printf(“Control String/Format Specifier”,arg1,arg2,… argn)
  • 100.
    1. 14 Inputand Output Functions Contd… /* Example 1 – Using printf ( ) & scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a; printf(“Enter the Value of a”); scanf(“%d”, &a); printf(“Value of a is %d”, a); getch( ); }
  • 101.
    1. 14 Inputand Output Functions Contd… /* Example 2 – Using printf ( ) & scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b, c; printf(“Enter the Value of a, b & c”); scanf(“%d %d %d”, &a, &b, &c); printf(“Value of a, b & c is %d %d %d”, a, b, c); getch ( ); }
  • 102.
    /* Example 3– Using printf ( ) & scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b; float c; printf(“Enter the Value of a & b”); scanf(“%d %d”, &a, &b); printf(“Enter the Value of a & b”); scanf(“%f ”, &c); printf(“Value of a, b is %d%d”, a, b); printf(“Value of c is %f”, c); getch ( ); }
  • 103.
    1. 14 Inputand Output Functions Contd…  Try it Out Yourself ! Write a C program to: 1) Add two numbers 2) To Multiply two floating point numbers 3) To compute Quotient and Remainder 4) To Swap two numbers
  • 104.
    1. 14 Inputand Output Functions Contd… b) Unformatted Input / Output Statements  Works only with Character Data type  No need of Format Specifier  Unformatted Input Statements i. getch ( ) – Reads alphanumeric characters from Keyboard ii. getchar ( ) – Reads one character at a time till enter key is pressed
  • 105.
    1. 14 Inputand Output Functions Contd… iii. gets ( ) – Accepts any string from Keyboard until Enter Key is pressed  Unformatted Output Statements i. putch ( ) – Writes alphanumeric characters to Monitor (Output Device) ii. putchar ( ) – Prints one character at a time iii. puts ( ) – Prints a String to Monitor (Output Device)
  • 106.
    1. 14 Inputand Output Functions Contd… /* Example 4 – Using printf ( ) & scanf ( ) function */ #include<stdio.h> #include<conio.h> void main( ) { int a, b; float c; printf(“Enter the Value of a, b & c”); scanf(“%d %d%f”, &a, &b, &c); printf(“Value of a, b & c is %d%d%f”, a, b, c); getch ( ); }
  • 107.
    1. 15 Operatorsin C  C supports rich set of built in Operators  Used to manipulate Constants (Data) & Variables  Part of Mathematical (or) Logical expressions  Operators vs Operands  Operator – Definition  Symbol (or) Special character that instructs the compiler to perform mathematical (or) Logical operations
  • 108.
     Classification ofOperators a) Arithmetic Operators b) Relational Operators c) Logical Operators d) Conditional Operators e) Increment & Decrement Operators f) Comma Operator g) Arrow Operator h) Assignment Operators
  • 109.
    a) Arithematic Operators Arithematic Expression : An expression containing arithematic operator in between with two operands.
  • 110.
    /* Program forArithematic Operations*/ #include<stdio.h> int main( ) { int a,b; printf("Enter the two Valuesn"); scanf("%d%d", &a, &b); printf(“a+b is %dn“, (a+b)); printf(“a-b is %dn“, (a-b)); printf(“a*b is %dn“, (a*b)); printf(“a/b is %dn“, (a/b)); printf(“a%b is %dn“, (a%b)); printf(“a^b is %dn“, (a^b)); return 0; }
  • 111.
    Output 4 2 a + bis 6 a - b is 2 a * b is 8 a / b is 2 a % b is 0 a ^ b is 16
  • 112.
    b) Relational Operators Binary Operators (or) Boolean Operators  Produces an integer result  Condition True : Integer value is 1  Condition False : Integer value is 0  Compares  Values between two variables  Values between variables and constants
  • 113.
    1.15 Operators inC Contd… b) Relational Operators Contd…  Relational Expression / Boolean Expression : An expression containing a relational operator
  • 114.
    b) Relational OperatorsContd…  Consider a = 10 and b =4. The relational expression returns the following integer values Relational Expression Result Return Values a < b False 0 a > b True 1 a < = b False 0 a > = b True 1 a = = b False 0 a ! = b True 1
  • 115.
    /* Program forRelational Operations*/ #include<stdio.h> int main( ) { int a,b; printf("Enter the two Valuesn"); scanf("%d%d", &a, &b); printf(“a>b is %dn“, (a>b)); printf(“a<b is %dn“, (a<b)); printf(“a>=b is %dn“, (a>=b)); printf(“a<=b is %dn“, (a<=b)); printf(“a==b is %dn“, (a==b)); printf(“a!=b is %dn“, (a!=b)); return 0; }
  • 116.
    Output 4 2 a > bis 1 a < b is 0 a > = b is 1 a < = b is 0 a = = b is 0 a ! = b is 1
  • 117.
    1.15 Operators inC Contd… c) Logical Operators  Combines two or more relations  Used for testing one or more conditions
  • 118.
    1.15 Operators inC Contd… c) Logical Operators Contd…  Logical Expression / Compound Relational Expression : An expression which combines two or more relational expression Op1 Op2 Op1 && Op2 Op1 || Op2 F (0) F (0) F (0) F (0) F (0) T (1) F (0) T (1) T (1) F (0) F (0) T (1) T (1) T (1) T (1) T (1)
  • 119.
    1.17 Operators inC Contd… c) Logical Operators Contd…  Consider a = 10 and b =4. The Logical expression returns the following integer values Relational Expression Result Return Values a < 5 && b > 2 True 1 a < 5 && b < 2 False 0 a >5 && b < 2 False 0 a >5 || b < 2 True 1 a <5 || b < 2 False 0 a > 5 || b < 2 True 1
  • 120.
    /* Program forLogical Operations*/ #include<stdio.h> int main( ) { int age,height; printf("Enter Age of Candidate:n"); scanf("%d", &age); printf(“Enter Height of Candidate: n“); scanf("%d", &height); if ((age>=18) && (height>=5)) printf(“The Candidate is Selected”); else printf(“Sorry, Candidate not Selected”); return 0;
  • 121.
    Output 1 Enter Ageof Candidate: 18 Enter Height of Candidate: 6 The Candidate is Selected Output 2 Enter Age of Candidate: 19 Enter Height of Candidate: 4 Sorry, Candidate not Selected
  • 122.
     If expression1 is true then the value returned will be expression 2  Otherwise the value returned will be expression 3 1.15 Operators in C Contd… d) Conditional Operators  ? and are the Conditional Operators  Also called as Ternary Operators  Shorter form of if-then-else statement  Syntax Expression 1 ? Expression 2 : expression 3
  • 123.
    #include<stdio.h> int main( ) { intx, y; scanf("%d", &x); y=(x > 5 ? 3 : 4); printf(“%d”, y); return 0; } #include<stdio.h> int main( ) { int x, y; scanf("%d", &x); if(x >5) y=3; else y=4; printf(“%d”, y); return 0; }
  • 124.
    /* Program forAddition (or) Multiplication*/ #include<stdio.h> int main( ) { int a, b, result, choice; printf(“Enter first number n”); scanf(“%d”,&a); printf(”Enter second number n”); scanf(“%d”,&b); printf(“Enter 1 for addition or 2 for multiplicationn”); scanf(“%d”,&choice); result = (choice==1)?a+b:(choice==2)?a*b:printf(“Invalid”); if(choice==1||choice==2) printf(“The result is %dnn”,result); return 0;
  • 125.
    Output Enter first number 10 Entersecond number 3 Enter 1 for addition or 2 for multiplication 2 The result is 30
  • 126.
    /* Program tofind the maximum of 3 Numbers*/ #include <stdio.h> int main( ) { int a, b, c, max; printf("Enter three numbers: "); scanf("%d%d %d",&a, &b, &c); max = (a > b && a > c) ? a : (b > c) ? b : c;
  • 127.
    Output Enter three numbers:30 10 40 Maximum between a, b and c = 40
  • 128.
    1. 15 Operatorsin C Contd… e) Increment and Decrement Operators  Increment and decrement operators are unary operators that add or subtract one from their operand  C languages feature two versions (pre- and post-) of each operator  Operator placed before variable (Pre)  Operator placed before variable (Post)  The increment operator is written as ++ and the decrement operator is written as --
  • 129.
    1. 15 Operatorsin C Contd… a) Increment and Decrement Operators Contd…  Classification  Pre Increment Operator  Post Increment Operator  Pre Decrement Operator  Post Decrement Operator
  • 130.
    1. 15 Operatorsin C Contd… a) Increment and Decrement Operators Contd…  Syntax  Examples  ++count, ++a, ++i, + +count  Count++, a++, i++, count++ (pre)++variable_name; (pre)- -variable_name; (Or) variable_name++ (post); variable_name – (Post);
  • 131.
    1. 15 Operatorsin C Contd… e) Increment and Decrement Operators Contd… S. No Operator type Operator Description 1 Pre Increment ++i Value of i is incremented before assigning it to variable i. 2 Post Increment i++ Value of i is incremented after assigning it to variable i. 3 Pre Decrement -- i Value of i is decremented before assigning it to variable i. 4 Post Decrement i -- Value of i is decremented after assigning it to variable i.
  • 132.
    /* Program forPost Increment*/ #include<stdio.h> #include<conio.h> void main( ) { int i = 1; while (i++<5) { printf(“%d”,i); } } getch( ); } Output 1 2 3 4 5
  • 133.
    1. 15 Operatorsin C Contd… e) Increment and Decrement Operators Contd…  Step 1 : In this program, value of i “0” is compared with 5 in while expression.  Step 2 : Then, value of “i” is incremented from 0 to 1 using post- increment operator.  Step 3 : Then, this incremented value “1” is assigned to the variable “i”.  Above 3 steps are continued until while expression becomes false and output is displayed as “1 2 3 4 5”.
  • 134.
    /* Program forPre Increment*/ #include<stdio.h> #include<conio.h> void main( ) { int i = 1; while (++i<5) { printf(“%d” , i ); } } getch ( ); } Output 1 2 3 4
  • 135.
    1. 15 Operatorsin C Contd… e) Increment and Decrement Operators Contd…  Step 1 : In above program, value of “i” is incremented from 0 to 1 using pre- increment operator.  Step 2 : This incremented value “1” is compared with 5 in while expression.  Step 3 : Then, this incremented value “1” is assigned to the variable “i”.  Above 3 steps are continued until while expression becomes false and output is displayed as “1 2 3 4”.
  • 136.
    /* Program forPost Decrement*/ #include<stdio.h> #include<conio.h> void main( ) { int i = 1; while (i--<5) { printf(“%d” , i ); } } getch ( ); } Output 9 8 7 6 5
  • 137.
    1. 15 Operatorsin C Contd… e) Increment and Decrement Operators Contd…  Step 1 : In this program, value of i “10” is compared with 5 in while expression.  Step 2 : Then, value of “i” is decremented from 10 to 9 using post- decrement operator.  Step 3 : Then, this decremented value “9” is assigned to the variable “i”.  Above 3 steps are continued until while expression becomes false and output is displayed as “9 8 7 6 5”.
  • 138.
    /* Program forPre Decrement*/ #include<stdio.h> #include<conio.h> void main( ) { int i = 1; while (--i<5) { printf(“%d” , i); } } getch ( ); } Output 9 8 7 6
  • 139.
    1. 15 Operatorsin C Contd… e) Increment and Decrement Operators Contd…  Step 1 : In above program, value of “i” is decremented from 10 to 9 using pre-decrement operator.  Step 2 : This decremented value “9” is compared with 5 in while expression.  Step 3 : Then, this decremented value “9” is assigned to the variable “i”.  Above 3 steps are continued until while expression becomes false and output is displayed as “9 8 7 6”.
  • 140.
    1. 15 Operatorsin C Contd… b) Comma Operator  Special operator which separates the declaration of multiple variables  Has Lowest Precedence i.e it is having lowest priority so it is evaluated at last  Returns the value of the rightmost operand when multiple comma operators are used inside an expression  Acts as Operator in an Expression and as a Separator while Declaring Variables
  • 141.
    1. 15 Operatorsin C Contd… f) Comma Operator #include<stdio.h> int main( ) { int i, j; i=(j=10, j+20); printf(“i = %dn j = %d n” , i,j ); return 0;
  • 142.
    1. 15 Operatorsin C Contd… g) Arrow Operator (->)  Arrow operator is used to access the structure members when we use pointer variable to access it  When pointer to a structure is used then arrow operator is used
  • 143.
    1. 15 Operatorsin C Contd… h) Assignment Operators  Assigns result of expression to a variable  Performs Arithmetic and Assignment operations  Commonly used Assignment operator: =  Syntax  Examples  num = 25; age = 18; pi = 31.4; area = 3.14 * r * r; variable = expression;
  • 144.
    1. 15 Operatorsin C Contd…  Shorthand Assignment Operators Simple Assignment Operator Shorthand Operator a = a + 1 a+=1 a = a – 1 a-=1 a = a * 2 a*=2 a = a / b a/=b a = a % b a%=b c = c * (a + b) c *= (a + b) b = b / (a + b) b /=(a + b)
  • 145.
    /* Program forAssignment Operations*/ #include<stdio.h> #include<conio.h> void main( ) { int a; a = 11; a+ = 4; printf(“Value of A is %dn”,a); a = 11; a- = 4; printf(“Value of A is %dn”,a); a = 11; a* = 4; printf(“Value of A is %dn”,a); a = 11; a/ = 4;
  • 146.
    printf(“Value of Ais %dn”,a); a = 11; a% = 4; printf(“Value of A is %dn”,a); getch ( ); } Output Value of A is 15 Value of A is 7 Value of A is 44 Value of A is 2 Value of A is 3
  • 147.
    1. 16 SingleLine and Multiline Comments Contd… a) Single Line Comment  Represented by double slash #include<stdio.h> int main( ){ //printing information printf("Hello C"); return 0; }
  • 148.
    1. 16 SingleLine and Multiline Comments Contd… b) Multi-Line Comment  Represented by slash asterisk * ... * #include<stdio.h> int main( ){ /*printing information Multi Line Comment*/ printf("Hello C"); return 0; }
  • 149.
    1. 16 SingleLine and Multiline Comments  Comment – Definition  Used to provide information about lines of code  Provide clarity to the C source code  Allows others to better understand what the code was intended to  Helps in debugging the code hundreds or  Important in large projects containing thousands of lines of source code  Types – Single line and multiline comment
  • 150.
    1. 16 SingleLine and Multiline Comments Contd… Single-Line Comments Multi-Line Comment Starts with /* and ends with */ Starts with // All Words and Statements written between /* and */ are ignored Statements after the symbol // upto the end of line are ignored Comment ends when */ Occures Comment Ends whenever ENTER is Pressed and New Line Starts e.g /* Program for Factorial */ e.g // Program for Fibonacci
  • 151.
    1.17 Operator Precedence Operator Precedence is used to determine the order of  operators evaluated in an expression  Every operator has precedence (Priority)  Operator with higher precedence is evaluated first and the operator with least precedence is evaluated last  Associativity is used when two operators of same precedence appear in an expression  Determines the order of evaluation of those operators  Associativity can be either Left to Right or Right to Left
  • 152.
    1.17 Operator PrecedenceContd…  Operators are listed in descending order of precedence  An Expression can contain several operators with equal precedence  Evaluation proceeds according to the associativity of the operator i.e.,  From Right to Left (or)  From Left to Right  Note: Order of operations is not defined by the language
  • 154.
    1.18 Expressions usingPre/Post Increment Operator  Increment operators increase the value of the variable by one  Decrement operators decrease the value of the variable by one  Syntax  Increment operator: ++var_name; (or) var_name++; Decrement operator: – -var_name; (or) var_name – -;  Example  Increment operator : ++ i ;i ++ ; Decrement operator :– – i ;i – – ;
  • 155.
    /* Expresssions usingPre-Increment Operator*/ #include<stdio.h> int main( ) { int x,i; i=10; x=++i; printf("x: %d",x); printf("i: %d",i); return 0; } Output x: 11 i: 11
  • 156.
    /* Expresssions usingPre-Decrement Operator*/ #include<stdio.h> int main( ) { int x,i; i=10; x=--i; printf("x: %d",x); printf("i: %d",i); return 0; } Output x: 9
  • 157.
    /* Expresssions usingPost-Increment Operator*/ #include<stdio.h> int main( ) { int x,i; i=10; x=i++; printf("x: %d",x); printf("i: %d",i); return 0; } Output x: 10 i: 11
  • 158.
    /* Expresssions usingPost-Decrement Operator*/ #include<stdio.h> int main( ) { int x,i; i=10; x=i--; printf("x: %d",x); printf("i: %d",i); return 0; } Output x: 10 i: 9
  • 159.
    /* Expresssions usingIncrement / Decrement Operators*/ #include<stdio.h> int main( ) { int p,q,x,y; printf(“E nter the value of x n”); scanf(“% d” ,&x); printf(“Enter the value of y n”); scanf(“%d” ,&y); printf(“x=%dny=%dn”,x,y); p=x++; q=y++; printf(“x=%dty=%dn”,x,y); printf(“x=%dtq=%dn”,p,q); p=--x; q=--y;
  • 160.
    Output Enter the valueof x 10 Enter the value of y 20 x = 10 y = 20 x = 11 p = 10 x = 10 p = 10 y = 21 q = 20 y = 20 q = 20
  • 161.
    1.19 Expressions usingConditional Operator  Any operator is used on three operands or variable is known  as Ternary Operator  It can be represented with ? : . It is also called as conditional operator
  • 162.
    /* Program forPrinting Odd or Even Number*/ #include<stdio.h> int main( ) { int num; printf("Enter the Number : "); scanf("%d",&num); (num%2==0)? printf("Evenn"):printf("Odd"); } Output Enter the Number : 10 Even
  • 163.
    /* Program forEligibility to Vote*/ #include<stdio.h> int main( ) { int age; printf(" Please Enter your age here: n "); scanf(" %d ", &age); (age >= 18) ? printf(" You are eligible to Vote ") : printf(" You are not e l i g i b l e
  • 164.
    /* Program forFinding Biggest of 2 Numbers*/ #include<stdio.h> int main( ) { int a, b, max; printf("Enter a and b: "); scanf("%d%d", &a, &b); max = a > b ? a : b; printf("Largest of the two numbers = %dn", max); return 0; } Output Enter a and b: 10 20 Largest of the two numbers = 20
  • 165.
    1.20 Expressions usingAssignment Operator  Assignment Operator is used to assign value to an variable  Assignment Operator is denoted by equal to sign  Assignment Operator is binary operator which operates on two operands  Assignment Operator have Two Values – L-Value and R-Value  Operator = copies R-Value into L-Value  Assignment Operator have lower precedence than all available operators but has higher precedence than comma Operator
  • 167.
    1.21 L-Value andR-Value of Expression a) L-Value stands for left value  L-Value of Expressions refer to a memory locations  In any assignment statement L-Value of Expression must be a container(i.e. must have ability to hold the data)  Variable is the only container in C programming thus L Value must be any Variable.  L Value cannot be a Constant, Function or any of the available data type in C
  • 168.
    1.21 L-Value andR-Value of Expression Contd…  Diagram Showing L-Value of Expression :
  • 169.
    1.21 L-Value andR-Value of Expression Contd… #include<stdio.h> int main( ) { int num; num = 5; return(0); } Example of L- Value Expression #include<stdio.h> int main( ) { int num; 5 = num; //Error return(0); } L-value cannot be a Constant #include<stdio.h> int main( ) { const num; num = 20; //Error return(0); } L-value cannot be a Constant Variable
  • 170.
    1.21 L-Value andR-Value of Expression Contd… #include<stdio.h> #define MAX 20 int main( ) { MAX = 20; //Error return(0); } L-value cannot be a MACRO #include<stdio.h> enum {JAN,FEB,MARCH}; int main( ) { JAN = 20; //Error return(0); } L-value cannot be a Enum Constant
  • 171.
    1.21 L-Value andR-Value of Expression Contd… b) R Value stands for Right value of the expression  In any Assignment statement R-Value of Expression must be anything which is capable of returning Constant Expression or Constant Value
  • 172.
     R valuemay be a Constant or Constant Expression  R value may be a MACRO  R Value may be a variable 1.21 L-Value and R-Value of Expression Contd… Examples of R-Value of Expression Variable Constant Function Macro Enum Constant Any other data type
  • 173.