C
C
C
iq
st
LECTURE 1
1. Introduction:
hardware components
Computer is a device capable of performing computations and making
logical decisions at speeds millions and even billions of times faster than human beings. Computers process data under the control of sets of instructions called
computer programs. Programming is the process of writing instructions for a computer in a certain
order to solve a problem. The computer programs that run on a computer are referred to as software (SW). While the hard component of it is called hardware (HW).
Developing new software requires written lists of instructions for a computer to execute. Programmers rarely write in the langauage directly understood by a computer.
2. Short History:
The following is a short history, just for given a general view of how languages are arrived:
1954: Fortran. 1957: Cobol. 1958: Algol (Base for Simula). 1958: Lisp. 1961: B1000. 1962: Sketchpad. 1964: Basic. 1967: Simula67. 1968: FLEX. 1970: Pascal (From Algol).
1971: C (From a language called B).
1972: Smalltalk72 (Based on Simula67 and Lisp). 1976: Smalltalk76. 1979: ADA (From Pascal).
1980: C with classes (experimental version).
1983: C++ (by Bjarne Stroustrup). 1986: Objective-C (from C and Smalltalk). 1986: Eiffel (from Simula). 1991: Sather (From Eiffel). 1991: Java. 2000: C#.
Bjarne Stroustrup
at: AT&T Labs
LECTURE 2
1. Algorithm:
As stated earlier an algorithm can be defined as a finite sequence of effect statements to solve a problem. An effective statement is a clear, unambiguous instruction that can be carried out .Thus an algorithm should special the action to be executed and the order in which these actions are to be executed.
Algorithm properties:
Finiteness: the algorithm must terminate a finite number of steps. Non-ambiguity: each step must be precisely defined. At the
completion of each step, the nest step should be uniquely determined. Effectiveness: the algorithm should solve the problem in a reasonable amount of time. Example 1: Develop an algorithm that inputs a series of number and output their average . A computer algorithm can only carry out simple instruction like: "Read a number". "Add a number to anther number". "Output a number".
Thus an algorithm is: 1. Carry out initialization required. 2. Read first number. 3. While the number of numbers is not complete do 4. begin 5. Add the number to the accumulated sum. 6. increment the count of numbers entered.
Example 2: Devolve an algorithm that allows the user to enter the count of numbers in a list followed by these numbers. The algorithm should find and output the minimum and the maximum numbers in the list. An algorithm for this might be: Initialize. Get count of numbers. Enter numbers and find maximum and minimum . Output result.
The user might enter zero for the count. To deal with this case the above general case can be extended as follows to be an algorithm: 1. Initialize the require variables. 2. Get count of numbers. 3. If count is zero then exit. 4. Otherwise begin. 5. Enter numbers. 6. Find max and min. 7. Output result. 8. End.
2. Flowcharts
A flowchart is a graphical representation of an algorithm or of a portion of an algorithm .Flowcharts are drawn using symbols. The main symbols used to draw a flowchart are shown in following figure.
Start
Stop
Read
X=Y * Z
Condition
1A 2A
Connector symbols
Example 1: Draw a flowchart to read 3 numbers: x , y and z and print the largest number of them.
Start
Read x
Max=x
Read y
Yes No
y>max ?
Max=y
Read z
Yes No
z>max ?
Max=z Max=z
Print max
End
Example 2: Draw the flowchart required to find the sum of negative numbers among 50 numbers entered by the user.
Start
Counter=0 Sum=0
Read number
Counter=counter+1
Yes
NO
Is number< 0
Sum=sum + number
Is counter > 50
Yes
NO
Print sum
End
Lecture 3
1 Character set:
C++ has the letters and digits, as show below: Uppercase: Lowercase: Digits:
A, B, C, . . ., Z a, b, c, . . ., z 0, 1, 2, . . .,9
Special Characters: All characters other than listed treated as special characters for example: + ( )
(Double Conations)
[ < .
(Dot)
* { = :
(Colon)
/ } > ;
(Semicolon)
^ ] ,
(Comma)
(Blank Space)
In C++ language, upper case and lower case letters are distinct and hence there are 52 letters in all. For example bag is different from Bag which is different from BAG.
2 Identifiers:
An identifier is a name given to some program entity, such as variable, constant, array, function, structure, or class. An identifier is a sequence of alphanumeric (alphabetic and numeric) characters, the first of which must be a letter, and cant contain spaces. The length of an identifier is machine dependent. C++ allows identifiers of up to 127 characters. A variable should not begin with a digit. C++ does not set a maximum length for an identifier. Some examples of valid identifiers are as follows:
My_name i B
3 Keywords:
The keywords are also identifiers but cannot be user defined, since they are reserved words. All the keywords should be in lower case letters. Reserved words cannot be used as variable names or constant. The following words are reserved for use as keywords: Some of C++ Language Reserved Words:
break delete float long sizeof case double for main switch char else goto private true cin enum if public union cout false int short void
4 Constants:
There are three types of constants: string constants, numeric constants, and character constants.
1. String Constants: A string constants are a sequence of alphanumeric characters enclosed in double quotation marks whose maximum length is 255 characters. In the following are examples of valid string constants: (The result=, RS 2000.00, This is test program). The invalid string constants are like: (Race, My name, this). 2. Numeric Constants: Numeric constants are positive or negative numbers. There are four types of numeric constants: integer, floating point,
Integer
Float
Hexa
Unsigned Octal
Integer Short integer (short) Long integer (long) Single precision (float) Double precision (double) Long double Short hexadecimal Long hexadecimal Unsigned char Unsigned integer Unsigned short integer Unsigned long integer Short octal Long octal
(a) Integer constants: Do not contain decimal points: int x,y; shortint x,y; longint x,y; Integer data: size (16 or 32) fill in -215 to 215-1 for 16 bit and -231 to 231-1 for 32 bit. Short integer: fill in -215 to 215-1. Long integer: fill in -231 to 231-1. Unsigned: fill in (0 to 65635) for 16 bit and (0 to 4,294, 967, 295) for 32 bit. (b) Floating point constants: Positive or negative numbers are represented in exponential form. The floating point constant consists of an optionally (signed) integer or fixed point number (the mantissa) followed by the letter E and e and an optionally signed integer (the exponent). Ex. (9010e10, 77.11E-11). Float 4 bytes. Double 8 bytes. Long double 12 or 16. (c) Hexadecimal constants: Hexadecimal numbers are integer numbers of base 16 and their digits are 0 to 9 and A to F.
(d) Octal constants: Octal numbers are numbers of base 8 and their digits are 0 to 7. 3. Character Constants: A character represented within single quotes denotes a character constant, for example A, a, :, ?, etc Its maximum size is 8 bit long, signed, and unsigned char are three distinct types. Char x; char x,y,z;
The backslash (\) is used to denote non graphic characters and other special characters for a specific operations such as:
\b
\\
New line. Position the screen cursor to the beginning of the next line. Horizontal TAB (six spaces). Move the screen cursor to the next tab stop. Carriage return. Position the cursor to the beginning of the current line, do not advance to the next line. Alert. Produces the sound of the system bell. Back space Backslash. Prints a backslash character. Form feed Vertical tab Double quote. Prints a () character. Null character question mark Octal value Hexadecimal value
\f \v
\
\o \? \ooo \xhhh
5. C++ operators:
Arithmetic operators Assignment operators
C++ operators
Comparison operators
and
logical Relational,equality,logical
Bit wise logical operators Special operators Unary, ternary, comma Scope, new&delete, other
1. Arithmetic operators: These operators require two variables to be evaluated: + addition / division - subtraction * multiplication
The division result are: Integer / integer = integer Integer / float float / integer float / float = float = float = float 39/7=5 39/7.0 =5.57 39.0/7 =5.57 39.0/7.0=5.57
while 39%5=7, since 39=7*5+4 Arithmetic operators as per precedence: ( ) for grouping the variables. - Unary for negative number. * / multiplication & division. + - addition and subtraction.
Example:
5 + (6*5)-8
(5+30)-8 35-8 27
2. Assignment Operators: The operatonal assignment operator has the form: Variable = variable operator expression; Ex: x=x+5; y=y*10;
The operational assignment operator can be written in the following form: Variable operator = expression Ex: x+=5; y*=10;
It is used to assign back to a variable, a modified value of the present holding: = += -= *= /= %= >>= <<= &= |= ~=
Assign right hand side (RHS) value to the left hand side (LHS). Value of LHS var. will be added to the value of RHS and assign it back to the var. in LHS. Value of RHS var. will be subtracted to the value of LHS and assign it back to the var. in LHS. Value of LHS var. will be multiplied to the value of RHS and assign it back to the var. in LHS. Value of LHS var. will be divided to the value of RHS and assign it back to the var. in LHS. The remainder will be stored back to the LHS after integer division is carried out between the LHS var. and the RHS var. Right shift and assign to the LHS. Left shift and assign to the LHS. Bitwise AND operation and assign to LHS Bitwise OR operation and assign to LHS Bitwise complement operation and assign to LHS
Exercise: Rewrite the equivalent statements for the following examples, and find it results. Assume: X=2 , Y=3 , Z=4 , V=12 , C=8. Example X += 5 Y -= 8 Z *= 5 V /= 4 C %= 3 Equivalent Statement X=X+5 Y=Y-8 Z=Z*5 Result X7 Y -5 Z V C
3. Comparision and logical operators: It has three types relational operators, equality operators, and logical operators. (a) Relational operators: < less than, > greater than, <= less than or equal, >= greater than or equal, an expression that use relational operators return the value of one if the relational is TRUE ZERO otherwise. Ex: 3 > 4 false, 6 <=2 false, 10>-32 true, (23*7)>=(-67+89) true (b) Equality operators: == equal to , != not equal to Ex: a=4, b=6, c=8. A==bfalse, (a*b)!=ctrue,s==y false.
(c) Logical operators: The logical expression is constructed from relational expressions by the use of the logical operators not(!), and(&&), or(||). AND (&&) Table:
A B A && B
T T F F
T F T F
T F F F
1 1 0 0
1 0 1 0
1 0 0 0
OR (||) Table:
A B A || B
OR (||) Table:
A B A || B
T T F F
T F T F
T T T F
1 1 0 0
1 0 1 0
1 1 1 0
T F
F T
1 0
0 1
Examples:
Example 1: a=4, b=5, c=6
(a<b)&&(b<c) T && T T (a<b)||(b>c) T || T T !(a<b)||(c>b) !(T) F || T || T T (a<b)||(b>c)&&(a>b)||(a>c) T T T || F || F || T F && || F F || F
Example 2: Assume: X=0, Y=1, Z=1. Find the following expression: M = ++X || ++Y && ++Z M = ++X || ++Y && ++Z
= 1 || (2 && 2)
= T || (T && T) = T || T =T
=1
(d) Bitwise logical operator: & bitwise AND, ^ bitwise exclusive OR(XOR), | bitwise inclusive OR, >> bitwise left shift, << bitwise right shift, ~ bitwise complement. Ex: x=23 (0001 0111) X=33 (0010 0001) ~x=132 (1110 1000)
X << 3 0 01000010 0 10000100 1 00001000 the resultant bit pattern will be X=5, y=2 (0000 1000)
(e) special operators: 1. Unary operator: * & ! ~ ++ -Type Size of Contents of the storage field to which a pointer is pointing. Address of a variable. Negative value (minus sign). Negative (0, if value 0, 1 if value =0). Bitwise complement. Increment. Decrement. Forced type of conversion Size of the subsequent data type or type in byte.
2. Ternary operator: It is called conditional operator, it is like if else construction: Expression 1 ? expression 2 : expression 3 If (v%2 == 0) e = true Else e=false 3. Comma operator: (,) Int a,b,c; or it is used in control statements E=(v%2 ==0)? True : false
4. Scope operator: (::) It is used in a class member function definition. 5. New and delete operators: it is a method for carrying out memory allocations and deallocations.
6. Type Conversion:
Some variables are declared as integers but sometimes it may be required to bet the result as floating point numbers. It is carried out in two ways: (A) Converting by assignment: int x; float y; x=y; (B) Cast operator: Result =(int) (19.2/4); or Result = int (19.2/4);
Lecture 4
1 Statements:
A statement in a computer carries out some action. There are three types of statements used in C++; they are expression statement, compound statement and control statement. Expression statement x=y; sum=x+y; Compound statement { a=b+c; x=x*x; y=a+x; } Control statement If (a>b) { a=I; k=a+1; }
Example 1
#include<iostream.h> void main( ) { // A program to print welcome cout << Welcome; }
#include<iostream.h> this line is for pre-processor directive. Any begins with # is processed before the program is compiled. C++ programs must be start with #include. Every group of related functions is stored in a separate library called (header file).To use the cin and cout, must include the header file iostream. main( ), is the name of C++ function. Every C++ program must have a function called main. void, is the return type of the main function. When the return type of a function is void, this function will not passes back any value to the calling function. Some programmers use int as a return type for the main function, in this case a return(0) statement must be written as a last statement of the main function-body. {, introducing the statements that define the function. }, indicates the end of the statements in the function. //, text after these symbols is a comment. It does not affect the program code, and compilers normally ignore it. cout, the input stream object. It passes the characters quotes () to the terminal screen.
cin, the input stream object. It reads the input values from the keyboard.
<<, the stream insertion operator (or send operator). >>, the stream extraction operator (or get from operator). ; , semicolon, the terminator of every C++ statement.
The endl is used in c++ to represent a new line, as shown in the following example: Example 2
#include<iostream.h> void main( ) { cout << hallow << endl; cout << students; }
The \n is a special escape code, also used in C++ to represent a new line, as shown in the following example: Example 3
#include<iostream.h> void main( ) { cout << hallow \n; cout << students; }
3 Variables Declaration:
A declaration is a process of naming the variables and their statements datatypes in C++. C++ allows declaration of the variables before and after executable statements. A variable ia an object that may be take on values of the specified type. Also ,a variable is a location in the computers memory where a value can be stored for later use by the program. Variables are like buckets that hold data. These data buckets are really locations in the computers memory.
The variable must be declared by specifying the datatype and the identifier. datatype id.1, id2, ,idn; A variable defined by stating its type, followed by one or more spaces, followed by the one or more variable names separated by commas, then followed by semicolon. For example: unsigned short Int X; float Y; char A, a, c;
Note: C++ does distinguish between above
A and a variables
(C++ is case-sensitive).
Example 4
The following program reads three different inputs and outputs it.
#include<iostream.h> void main( ) { int num=3; cout << number=<<num<<\n; char ch=a; cout << character=<<ch<<\n; float fa=-34.45; cout<<real number=<<fa<<\n; }
Example 5
The following program reads three different inputs and outputs it.
#include<iostream.h> void main( ) { int n; float f; char c; cout << input integer number:; cin>>n; cout<<endl; cout << input decimal number:; cin>>f; cout<<endl; cout << input character:; cin>>c; }
4 Constants:
Like variables, constants are data storage locations. Unlike variables, and as the name implies, constants dont change. const int myage=23; const double pi=3.14; const float salary=20.5;
Example 6
Write a program that reads the radius of a circle, then computes and outputs its area.
#include<iostream.h> void main( ) { const float pi = 3.14; int r; float c; cout << enter the radius of circle:; cin>>r; cout<<endl; c = r * r * pi; cout << the area of circle: << c; }
Example 7
#include<iostream.h> void main( ) { int a,b,sum,sub,mul,div; cout << enter any two numbers<<endl; cin>> a>>b; sum=a+b; sub=a-b; mul=a*b; div=a/b; cout<<a=<<a<<b=<<b<<sum=<<sum<<endl; cout<<sub=<<sub<<endl; cout<<mul=<<mul<<endl; cout<<div=<<div<<endl; }
Output: Enter any two numbers 10 20 A=10 b=20 sum=30 Sub=-10 Mul=200 Div=0
Example 8
#include<iostream.h> void main( ) { int x, y, z, r ; x= 7 / 2; cout << "x=" << x <<endl; y=17/(-3); cout << "y="<< y <<endl; z=-17/3; cout << "z="<< z <<endl; r=-17/(-3); cout << "r="<< r <<endl; }
The modulus operator % is used with integer operands (int, short, long, unsigned). It cant be used with float or double operands. Example 9
#include<iostream.h> void main( ) { int y1, y2; y1 = 8 % 3; y2 = -17 % 3; cout << "y1="<< y1 <<endl; cout << "y2="<< y2 <<endl; }
Lecture 5
1 Examples of order evaluation:
Example 1: Write the following equation as a C++ expression:
Solution:
f = (a + b + c + d + e) / 10; Note: the parentheses here are required because division has higher precedence than addition. Example 2: State the order of evaluation for the following expression: Z = P * R % Q + W / X Y;
Solution:
1. 2. 3. 4. 5. * % / + -
Example 1
#include<iostream.h> void main( ) { int Z, P, R, Q, W, X, Y; cout << "enter P:"; cin >> P; cout << "enter R:"; cin >> R; cout << "enter Q:"; cin >> Q; cout << "enter W:"; cin >> W; cout << "enter X:"; cin >> X; cout << "enter Y:"; cin >> Y; Z= P * R % Q + W / X - Y; cout << "the result="<< Z;
Example: Write the following equation as a C++ expression and state the order of evaluation of the binary operators:
Exercise: Write the following equation as a C++ expression and state the order of evaluation of the binary operators:
Solution:
The ++ and - - operators can be written either before the variable (prefix notation) or after the variable (postfix notation) as in the following: Prefix notation: Postfix notation: ++ X X ++ X is incremented before its value is taken or returned to current statement. X is incremented after its value is taken or returned to current statement.
The difference between the Prefix and Postfix notations: Prefix notation int y; int x = 7; cout<< ++x <<endl; y=x; cout<<y; Output: 8 8 Postfix notation int y; int x = 7; cout<< x++ <<endl; y=x; cout<<y; Output: 7 8
3 Manipulator Functions:
They are special stream functions that change certain characteristics of the input and output. (a) Endl: Generate a carriage return or line feed character. Cout << a << endl; (b) Setbase: It is used to convert the base of one numeric value into a nother base Dec(base 10), hex(base 16), oct(base 8) Example 2
#include<iostream.h> Enter number void main( ) 10 Decimal base=10 { Hexadecimal base=a int value; Octal base=12 cout << "enter number:"; cin >> value; cout << "Decimal base=<<dec<<value<<endl; cout << "Hexadecimal base=<<hex<<value<<endl; cout << "Octa base=<<oct<<value<<endl; }
(c) Setw: It is used to specify the minimum number of character positions on the O/P field a variable will consume: Example 3 setw(int w)
#include<iostream.h> #include<iomanip.h> void main( void) { int a,b; a=200; b=300; cout<<a<<\t<<b<<endl; }
200
300
Example 4
#include<iostream.h> #include<iomanip.h> 200 300 void main( void) 200 300 { int a,b; a=200; b=300; cout<<setw(5)<<a<<setw(5)<<b<<endl; cout<<setw(6)<<a<<setw(6)<<b<<endl; }
(d) Setfill: It is used to specify a different character to fill the unused field width of the value. Setfill(char f)
Example 5
#include<iostream.h> **200**300 #include<iomanip.h> ***200***300 void main( void) { int a,b; a=200; b=300; setfill(*); cout<<setw(5)<<a<<setw(5)<<b<<endl; cout<<setw(6)<<a<<setw(6)<<b<<endl; }
(e) Setfill: It is used to control the number of digits of an output stream display of a floating point value. Setprecision (int p) Example 6
#include<iostream.h> #include<iomanip.h> void main( void) { float a,b,c; a=5; b=3; c=a/b; setfill(*); cout<<setprecision(1)<<c<< endl; cout<<setprecision(5)<<c<< endl; }
B= ! (( i > 0 ) && ( i >= j )); Q15: Write C++ program to read x and compute sin, cos, and tan of x.
Q16: Rewrite the equivalent statements for the following examples, and find it results. Assume: X=2 , Y=3 , Z=4 , V=12 , C=8. (X+=5 , Y-=8, Z*=5 , V/=4 , C %=3)
Q17: Given that A and B are real variables with values 1.5, and 2.5 respectively, and C is integer variable with value 3, evaluate the following: NOT (A < 0) AND (B/C <= 0).
Q19: Write a program to read a set of (5) real no.s and find out the sum and average of them.
LECTURE 6
1. Selection Statements:
Conditional expressions are mainly used for decision making. C++ provides multiple selection structures: if, if/else, else if, nested if and switch.
condition
statement1
Example 1:
if ( avrg >= 3.5 ) cout << good; if ( x > 0.0 ) sum += x; cin >> num; if ( num == 0 ) zcount = zcount + 1;
Example 2:
Example 3:
Example 1
Write a C++ program to read any two numbers and print the largest value of it:
#include<iostream.h> void main( ) { Float x,y; Cout<<Enter any two numbers\n; Cin>>x>>y; If (x>y) Cout << largest value is<<x<<endl; }
Example 2
Write a C++ program to read a number and check if its positive, if its so print it, add it to a total, and decrement it by 2:
#include<iostream.h> void main( ) { int num, total=0; cin >> num; if ( num >= 0 ) { cout << num << is a positive; total += num; num = num 2; } }
Statement1
true
condition
false
Statement2
In this case, either of the two statements are executed depending upon the value of the expression. Note that there is a semicolon after each of the statement but not after the IF expression. Note that the else statement without braces leads to confusion so: If (i>j) { If (a>b) temp=a; } Else temp=b; Example 1: cin >> value; if ( value >= 0 ) cout << positive; else cout << negative;
Example 2:
cin >> num1 >> num2; if ( num1 > num2 ) cout << num1; else cout << num2;
Example 3
Write a C++ program to read a student degree, and check if its degree greater than or equal to 50, then print pass, otherwise print fail:
#include<iostream.h> void main( ) { int degree; cin >> degree; if (degree >= 50 ) cout << pass; else cout << fail; }
Example 4
Write a C++ program to read a number, and check if its even or odd:
#include<iostream.h> void main( ) { int num; cin >> num; if ( num % 2 == 0 ) cout << even; else cout << odd; }
5. Else if Statements:
General Form of else if statement:
if ( expression or condition 1 ) statement1 ; else if ( expression or condition 2 ) statement2 ; else if ( expression or condition 3 ) statement3 ; : else if ( expression or condition n ) statement-n ; else statement-e ;
Example 1: if ( value == 0 ) cout << grade is A; else if ( value == 1 ) cout << grade is B; else if ( value == 2 ) cout << grade is C; else cout << grade is X; Example 5
Write a C++ program to read a number, and print the day of the week:
#include<iostream.h> void main( ) { int day; cin >> day; if ( day == 1 ) cout << Sunday; else if (day == 2 ) cout << Monday; else if (day == 3 ) cout << Tuesday; else if (day == 4 ) cout << Wednesday; else if (day == 5 ) cout << Thursday; else if (day == 6 ) cout << Friday; else if (day == 7 ) cout << Saturday; else cout << Invalid day number; }
Example 6
Write C++ program to compute the value of Z according to the following equations: Z=
#include<iostream.h> void main( ) { int Z, x; cout << "Enter X value \n"; cin >> x; if ( x < 0 ) Z= x + 5; else if ( x == 0 ) Z= cos(x) + 4; else Z= sqrt(x); cout << "Z is " << Z; }
6. Nested If Statements:
Some of the samples of NESTED if-else constructions are shown below:
If (exp.) { Statements } Else { Statements} If (exp.) { If (exp.) {Statements} Else { Statements} Else {Statements} If (exp.) { If (exp.) {Statements} Else { Statements} } Else {If (exp) {Statements} Else {Statement} }
Example 7
#include<iostream.h> void main( ) { #include<iostream.h> void main( ) { Float x,y,z; Cout<<Enter any two numbers\n; Cin>>x>>y,z; If (x>y) { If (x>z) Cout << largest value is<<x<<endl; Else Cout << largest value is<<z<<endl; } Else If (y>z) Cout << largest value is<<y<<endl; Else Cout << largest value is<<z<<endl; }
LECTURE 7
1. The Switch Selection Statement (Selector):
The switch statement is a special multi way decision maker that tests whether an expression matches one of the number of constant values, and braces accordingly.
switch ( selector ) { case label1 : statement1 ; break; case label2 : statement2 ; break; case label3 : statement3 ; break; : case label-n : statement-n ; break; default : statement-e ; break; }
Example 1:
switch (value) { case 0: cout << grade is A; break; case 1: coucout << grade is B; break; case 2: coucout << grade is C; break; default: cout << grade is X; break; }
Example 1
Write C++ program to read integer number, and print the name of the day in a week:
#include<iostream.h> void main( ) { int day; cout << Enter the number of the day \n; cin >> day; switch (day) { case 1: cout << Sunday; break; case 2: cout << Monday; break; case 3: cout << Tuesday; break; case 4: cout << Wednesday; break; case 5: cout << Thursday; break; case 6: cout << Friday; break; case 7: cout << Saturday; break; default: cout << Invalid day number; break; } }
Example 2
Write C++ program to read two integer numbers, and read the operation to perform on these numbers:
#include<iostream.h> void main( ) { int a, b; char x; cout << Enter two numbers \n; cin >> a >> b; cout << + for addition \n; cout << - for subtraction \n; cout << * for multiplication \n; cout << / for division \n; cout << enter your choice \n; cin >> x; switch ( x ) { case +: cout << a + b; break;
case -: cout << a - b; break; case *: cout << a * b; break; case /: cout << a / b; break; default: break; } }
switch ( selector1 ) { case label1 : statement1 ; break; case label2 : statement2 ; break; case label3 : switch ( selector2 ) { case label1 : statement1 ; break; case label2 : statement2 ; break; : } case label-n : statement-n ; break; default : statement-e ; break; }
Example 3
Write C++ program to read integer number, and print the name of the computerized department:
#include<iostream.h> void main( ) { int i,j; cout << Enter the number for the department name \n; cin >> i>>j; switch (i) {
cout << Software Engineering Department; break; cout << Control and computers Department; break; cout << Computer Sciences Department; cout<<Enter the no. of branch; switch(j) cout << Software; break; cout << Information system; break; cout << Security; cout << AI; break;
{ case 1: case 2: case 3: case 4: } default: cout << Invalid day number; } }
3. Conditional Statement:
General Form of Conditional statement:
Example 2:
Example 4
Write C++ program to read integer number, and print if its even or odd:
#include<iostream.h> void main( ) { int value; cout << Enter the number \n; cin >> value; cout<<(value%2==0?even:odd); }
Q3: Write C++ program to read a score of student and print the estimation to refer it.
e.g:
100 89 79 69 59 49 90 Exultant 80 Very good 70 Good 60 Middle 50 Accept 0 Fail
Q4: Write C++ program to represent a simple nested case (selector). Q5: Write C++ program to compute the area of circle if the radius r=2.5.
Note: area of circle is r * r * pi ,
pi is 3.14
Q6: Write C++ program to read an integer number and check if it is positive or negative, even or odd, and write a suitable messages in each case. Q7: Write a program to read 3 numbers, and write the largest and smallest numbers. Q8: Write C++ program to read an integer from 1 to 12, and print out the value of the corresponding month of the year. Q9: Write C++ program to reads a character and print if it is digit (0..9), capital letter (A,B, ,Z), small letter (a, b, ,z), special character ( +, !, @, #, , {, >, ).
Q11: Write C++ program to read 5 numbers and determine if the numbers sorted ascending or not. Q12: Write C++ program to read two integer numbers, and read the operation to perform on these numbers. Q13: Write a program to read X and print Sin X if X>0, square root X f X<0 and absolute X if X/2 is integer.
LECTURE 8
1. Loop Statements:
The loop statements are essential to construct systematic block styled programming. C++ provides three iteration structures: while, do/while, and for.
condition
Statement s
F The condition represents the value of a variable, unary or binary expression, and a value returned by a function. Example 1: i = 0; while ( i < 10 ) { cout << i; i ++; }
Output:
01 2 3 4 5 6 7 8 9 i=10
Example 2:
Output:
02 4 6 8 i=10
Example 3:
Output:
13 5 7 9 i=11
Example 1
Write C++ program to find the summation of the following series: sum = 1 + 3 + 5 + 7 + + 99
Iin other words: find the summation of the odd numbers, between 0 and 100)
#include<iostream.h> void main( ) { int count = 1; int sum = 0; while ( count <= 99 ) { sum = sum + count; count = count + 2; } cout << sum is: << sum << endl; }
Example 2
#include<iostream.h> void main( ) { int num, cubenum; cout << Enter positive number \n; cin >> num; while ( num > 0 ) { cubenum = num * num * num; cout << cube number is : << cubenum << endl;
Example 3
#include<iostream.h> void main( ) { int i = 1, n ,sum = 0; cout << enter positive number; cin >> n; while ( i <= n ) { sum += i * i ; i++; } cout << sum is: << sum << endl; }
Example 4
Write C++ program to find the summation of students marks, and its average, assume the student have 8 marks:
#include<iostream.h> void main( ) { int mark, i, sum = 0; float av = 0; i = 1; while ( i <= 8 ) { cout << enter mark: ; cin >> mark; sum = sum + mark; i++; } cout << sum is: << sum << endl; av = sum / 8; cout << average is: << av; }
Example 5
* * * * * * * * * * * *
#include<iostream.h> void main( ) { int row = 8, column; while ( row-- > 0 ) { column = 8; if ( row % 2 == 0 ) cout << ; while ( column-- > 0 ) cout << *; cout << \n; } }
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * *
Example 6
Write C++ program to check for a line feed and tab of a given character:
#include<iostream.h> void main( ) { Char ch; Cout<<enter a line \n; Ch=cin.get(); While (ch!=\n && ch!=\t) { cout.put(ch); Ch=cin.get(); } }
3. Do / While Statement:
General Form of Do / While statement:
do
statement1 ; while (condition );
do {
statement1 ; statement2 ;
:
statement-n ;
} while (condition );
Statement s
condition
Output:
01 2 3 4 5 6 7 8 9 i=10
Example 2:
02 4 6 8 i=10
Example 7
Write C++ program to valid input checking, that accept the numbers between 50 ... 70 only:
#include<iostream.h> void main( ) { int accept = 1; int x, low = 50, high = 70; do { cout << enter number: ; cin >> x; if ( x >= low && x <= high ) accept =1; else accept = 0; } while ( ! accept ); }
Example 8
Write C++ program to find the summation of students marks, and its average, assume the student have 8 marks:
#include<iostream.h> void main( ) { int mark, i, sum = 0; float av = 0; i = 1; do { cout << enter mark: ; cin >> mark; sum = sum + mark; i++; } while ( i <= 8 ) cout << sum is: << sum << endl; av = sum / 8; cout << average is: << av; }
Example 9
#include<iostream.h> void main( ) { int n, f = 1; cout << enter positive number: ; cin >> n; do { f = f * n; n --; } while ( n > 1 ); cout << factorial is: << f; }
Example 10
#include<iostream.h> void main( ) { int max,sum,digit; digit=2; cout << enter a number: ; cin >> max; sum=0; do { Sum=sum+digit; Digit+=2; } while ( digit<=max ); cout << 2+4+=<<max<<sum=<<sum<<endl; }
LECTURE 9
1. For Statement:
General Form of For statement:
for ( initialization ; continuation condition ; update ) statement1 ; for ( initialization ; continuation condition ; update ) { statement1 ; statement2 ; : }
Example 1:
for ( i = 0; i < 10; i ++ ) cout << i; for ( i = 0; i < 10; i += 2 ) cout << i; for ( i = 1; i < 10; i += 2 ) cout << i;
Output:
0 1 2 3 4 5 6 7 8 9
Output:
even numbers only
Example 2:
0 2 4 6 8
Output:
odd numbers only
Example 3:
1 3 5 7 9
Example 1
#include<iostream.h> void main( ) { int sum = 0; for ( int i = 1; i <= 100; i ++ ) sum = sum + i; cout << sum is: << sum; }
Example 2
Write C++ program to find the factorial of n (using for statement): n! = n * n-1 * n-2 * n-3 * * 2 * 1
#include<iostream.h> void main( ) { int n, f = 1; cout << enter positive number: ; cin >> n; for ( int i = 2; i <= n; i ++ ) f = f * i; cout << factorial is: << f; }
Example 3
#include<iostream.h> void main( ) { int sum = 0; for ( int i = 1; i <= 20; i ++ ) sum = sum + ( i * i ); cout << The sum is: << sum; }
Example 4
Write C++ program to read 10 integer numbers, and find the sum of positive number only:
#include<iostream.h> void main( ) { int num, sum = 0; for ( int i = 1; i <= 10; i ++ ) { cout << enter your number: ; cin >> num; if ( num > 0 ) sum = sum + num; } cout << The sum is: << sum; }
Example 5
#include<iostream.h> void main( ) { int x; for ( x = 1; x < 65; x *= 2 ) cout << x << ; }
Example 6
#include<iostream.h> void main( ) { int x; for ( x = 1; x < 7; ++ x ) cout << x <<\t << 11 x << endl; }
Example 7
#include<iostream.h> void main( ) { Char ch; cout << Enter a line\n; for (;(ch=cin.get())!=\n;) { cout<<Your character is:<<endl; cout.put(ch); } }
3. Nested Loops:
We can put loops one inside another to solve a certain programming problems. Loops may be nested as follows:
Example 8
#include<iostream.h> void main( ) { int i, j, sum = 0; for ( i = 1; i <= 5; i ++ ) for ( j = 1; j <= 10; j ++ ) sum = sum + ( i + 2 * j ); cout << sum is: << sum; }
Example 9
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + + + + + +
#include<iostream.h> void main( ) { int i, j; for ( i = 1; i <= 10; i ++ ) { for ( j = 1; j <= i; j ++ ) cout << + ; cout << \n; } }
Example 10
#include<iostream.h> void main( ) { cout << Explaining the nested for loop\n; for (int i=0;i<=2;i++) { cout<<i; for (int k=0;k<=2;k++) { cout<<computer sciences department \n; } } }
LECTURE 10
1. Breaking Control Statements:
For effective handling of the loop statements, C== allows the use of the following types of control break statements:
Output:
1 2 3 4 5 6 7 8 9 10
Example 2:
Example 3:
Example 1
#include<iostream.h> void main( ) { int value,i; i=0; while (i<=10) { cout<<enter a number \n; cin>>value; if (value<=0) { cout<<Zero or negative value found \n; brek; } i++ } }
(b)
The continue is used to repeat the same operations once again even it it checks the error. Its general syntax is: (continue;) It is used for the inverse operation of the break statement. The following program segment will process only the positive integers. Whenever a zero or negative value is encountered, the computer will display the message zero or negative value found as an error and it continues the same loop as long as the given condition is satisfied.
Cin>>value; While (value <=100) { If (value <=0) Cout<<zero or negative value found\n; Continue; } } Example 1: do { cin >> x; cin >> n; if ( n < 1 ) cout << x; Example 2: n = 1; for ( i = 1; i < 5; ++i ) { cin >> x; n = 5 * x++ * (-1) / n;
continue;
-- n; } while ( n < 1 );
Example 2
2. Conditional Goto: Itis used to transfer the control of the execution from one part of the program to the other in certian conditional cases. Example 2
#include<iostream.h> void main( ) { Int value,i=0; While i<=10) { Cout<<enter a number \n; Cin>>value; Cout<<zero or negative value found \n; Goto error; }
Error: Cout<<input data error \n; } Using For Statement for( i=1 ; i<=100 ; i++ ) s = s + i; Using While Statement i = 1; while ( i <= 100) { s = s + i; i++; } Using Do/While Statement i = 1; do { s = s + i; i++; } while ( i <= 100 );
-----------------------------------------------------------------------------------------------------------Q2: Find the factorial of n. cin >> n; for( i=2 ; i<=n ; i++ ) f = f * i; cin >> n; i = 2; while ( i <= n) { f = f * i; i++; } cin >> n; i = 2; do { f = f * i; i++; } while ( i <= n);
------------------------------------------------------------------------------------------------------------
.
i = 1; do { s = s + (i *i); i++; } while ( i <= 20);
-----------------------------------------------------------------------------------------------------------Q4: Read 10 numbers, and find the sum of the positive numbers only. for( i=1 ; i<=10 ; i++ ) { cin >> x; if ( x>0 ) s = s + x; } i = 1; while ( i <= 10) { cin >> x; if ( x>0 ) s = s + x; i++; } i = 1; do { cin >> x; if ( x>0 ) s = s + x; i++; } while ( i <= 10);
-----------------------------------------------------------------------------------------------------------Q6: Find the sum of the following s = 1 + 3 + 5 + 7 + + 99. for( i=1 ; i<=99 ; i+=2 ) s = s + i; i = 1; while ( i<=99) { s = s + i; i+=2; } i = 1; do { s = s + i; i+=2; } while ( i<=99);
-----------------------------------------------------------------------------------------------------------Q7: Find the sum and average of the 8 degrees of the student. for( i=1 ; i<=8 ; i++ ) i = 1; i = 1; { while ( i<=8) do cin >> d; { { s = s + d; cin >> d; cin >> d; } s = s + d; s = s + d; av = s / 8; i++; i++; } } av = s / 8; while ( i<=8); av = s / 8; -----------------------------------------------------------------------------------------------------------Q8: Find the cub of n numbers, while the entered number is a positive. cin >> x; while ( x > 0 ) { c = x * x * x; cin >> x; } do { cin >> x; c = x * x * x; } while ( x > 0 );
Using Do/While Statement: Q5: What are the output of the following segment of C++ code: int i; i = 12; do { cout << i << endl; i --; } while ( i > 0 ); Q6: What are the output of the following segment of C++ code: int count = 1; do { cout << ( count % 2 ? **** : +++++) << endl; ++ count; } while ( count <= 10 ); Q7: Write C++ program that utilize looping and the escape sequence \t to print the following table of value: N 10 * N 100 * N 1000 * N
Using For Statement: Q8: Write C++ program to read 7 marks, if pass in all marks (>=50) print pass otherwise print fail. Q11: Write C++ program to add the numbers between 1 and 100 and find its average. Q12: Write C++ program to print the following figures:
5 7 7 9 9 9 7 7 5 3 5 7 9 7 5 3 1 3 5 7 9 7 5 3 1 + + + + + + 3 5 7 9 7 5 3 5 7 7 9 9 9 7 7 5
+ + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + +
Q13: Write C++ program to find e from the following series: e = 1 + (1/1!) + (1/2!) + (1/3!) + + (1/n!) Q14: Write C++ program to find e from the following series: e = 1 + x + (x / 2!) + (x / 3!) + (x / a!) Q15: Write C++ program to read 10 marks, suppose the student pass if all marks greater than or equal 50, and the average greater than or equal 50. If student fails in some lessons then print the number of these lessons, if student fails in average then print fail in average. Q16: What is the output of the following C++ segment of code: for ( ; ; ) { cout << enter your number: ;
cin >> x; if ( x % 2 == 0 ) continue; if ( x % 3 == 0 ) break; cout << Bottom of loop << endl; } Q17: What is the output of the following C++ segment of code: for ( I = 0; I < 8; I ++ ) { if ( I % 2 == 0 ) cout << I + 1 << endl; else if ( I % 3 == 0 ) continue; else if ( I % 5 == 0 ) break; cout << end program \n; } cout << end ; Q18: Write C++ program to print the following figure: 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1
Q19: Write C++ program to print the following searies: 1. Sum=1+22+42++n2 2. Sum=1-3x+5x-+nx 3. Sum=1+1/1!+2/2!+3/3!++n/n!
where n!=1*2*3**n
LECTURE 11
1. Functions:
A function is a set of statements designed to accomplish a particular task. Experience has shown that the best way to develop and maintain a large program is to construct it from smaller pieces or (modules). Modules in C++ are called functions. Functions are very useful to read, write, debug and modify complex programs. They can also be easily incorporated in the main program. In C++, the main() itself is a function that means the main function is invoking the other functions to perform various tasks. The main advantages of using a function are: Easy to write a correct small function. Easy to read, write, and debug a function. Easier to maintain or modify such a function. Small functions tend to be self documenting and highly readable. It can be called any number of times in any place with different parameters.
2. Defining a Function
A function definition has a name, parentheses pair containing zero or more parameters and a body. For each parameter, there should be a corresponding declaration that occurs before the body. Any parameter not declared is taken to be an integer by default. The general format of the function definition is :
{
(body of function) statement1 ; statement2 ;
:
statement-n ;
(return something)
}
The type of the function may be int, float, char, etc. It may be declared as type (void), which informs the compiler not to the calling program. For example: Void function_name (---) Int function_name (---) Any variable declared in the body of a function is said to be local to that function. Other variables which are not declared either as arguments or in the function body are considered global to the function and must be defined externally. For example Void square (int a, int b) Float output (void) Example 1: void printmessage ( ) { cout << University of Technology; } void main ( ) { printmessage( ); } a,b are the formal arguments. function without formal arguments Example 2: int max (int a, int b) { int c; if (a > b) c = a; else c = b; return (c); } void main ( ) { cout << max (5, 6); }
3. Return Statement:
The keyword return is used to terminate function and return a value to its caller. The return statement may also be used to exit a function without returning a value. The return statement may or may not include an expression. Its general syntax is: Return; Return (expression); The return statements terminate the execution of the function and pass the control back to the calling environment.
Example 1
Write C++ program to calculate the squared value of a number passed from main function. Use this function in a program to calculate the squares of numbers from 1 to 10:
#include<iostream.h> int square ( int y ) { int z; z = y * y; return ( z ); } void main( ) { int x; for ( x=1; x <= 10; x++ ) cout << square ( x ) << endl; }
Example 2
Write C++ program using function to calculate the average of two numbers entered by the user in the main program:
#include<iostream.h> float aver (int x1, int x2) { float z; z = ( x1 + x2) / 2.0; return ( z); } void main( ) { float x; int num1,num2; cout << "Enter 2 positive number \n"; cin >> num1 >> num2; x = aver (num1, num2); cout << x; }
Example 3
Write C++ program, using function, to find the summation of the following series:
#include<iostream.h> int summation ( int x) { int i = 1, sum = 0; while ( i <= x ) { sum += i * i ; i++; } return (sum); } void main ( )
{ int n ,s; cout << "enter positive number"; cin >> n; s = summation ( n ); cout << "sum is: " << s << endl; }
Example 4
Write a function to find the largest integer among three integers entered by the user in the main function.
#include <iostream.h> int max(int y1, int y2, int y3) { int big; big=y1; if (y2>big) big=y2; if (y3>big) big=y3; return (big); } void main( ) { int largest,x1,x2,x3; cout<<"Enter 3 integer numbers:"; cin>>x1>>x2>>x3; largest=max(x1,x2,x3); cout<<largest; }
Example 5
Write program in C++, using function, presentation for logic gates (AND, OR ,NAND, X-OR,NOT) by in A,B enter from user.
#include<iostream.h> void ANDF(int,int); void ORF(int,int); void XORF(int,int); void NOTF(int); void main() { char s;int a,b; cout<<"Enter the value A,B :"; cin>>a>>b;
cout<<"Enter the select value \n"; cout<<"\ta--(AND gate)\n\to--(OR gate)\n\tx--(X-OR)\n\tn--(NOT gate)\n\te--(<<EXIT>> :"; cin>>s; switch(s) { case 'a':ANDF(a,b);break; case 'o':ORF(a,b);break; case 'x':XORF(a,b);break; case 'n':NOTF(a);cout<<" ";NOTF(b);break; case 'e':break; deafult:cout<<":bad choose"; } } void ANDF(int a,int b) { cout<<(a&&b); } void ORF(int a,int b) { cout<<(a||b); } void XORF(int a,int b) { cout<<(a^b); } void NOTF(int a) { cout<<(!a); }
4. Passing Parameters:
There are two main methods for passing parameters to a program: 1) passing by value, and 2) passing by reference.
A- Passing by Value:
When parameters are passed by value, a copy of the parameters value is taken from the calling function and passed to the called function. The original variables inside the calling function, regardless of changes made by
the function to it are parameters will not change. All the pervious examples used this method.
B- Passing by Reference:
When parameters are passed by reference their addresses are copied to the corresponding arguments in the called function, instead of copying their values. Thus pointers are usually used in function arguments list to receive passed references. This method is more efficient and provides higher execution speed than the call by value method, but call by value is more direct and easy to use. Example 6:
LECTURE 12
1. Types of Functions:
The user defined functions may be classified in the following three ways based on the formal arguments passed and the usage of the return statement, and based on that, there are three of user defined functions: 1. A function is invoked without passing any formal argument from the calling portion of a program and also the function does not return back any value to the called function. 2. A function is invoked with formal arguments from the calling portion of a program but the function does not return back any value to the calling portion. 3. A function is invoked with formal arguments from the calling portion of a program which return back a value to the calling environment. Here are two programs that find the square of the number using and not using a return statement. Example 1:
# include <iostream.h> Void main() { Void square (int); Int max; Cout<<Enter a value for n ?\n; Cin>>max; For (int i=0;i<=max-1;++i) Square (i) } Void square(int n) { Float value; Value=n*n; Cout<<i=<<n<<square=<<value<<endl; } # include <iostream.h> Void main() { float square (float); float I,max,value; max=1.5; i=-1.5; while (i<=max) { value=square(i); Cout<<i=<<i<<square=<<value<<endl; I=i+0.5; } } Float square(float n) { Float value; Value=n*n; Return (value); }
Example 2:
write C++ program, using function to find the sumation of the given
series: Sum=x-(x3)/3!+(x5)/5!- (xn)/n!
#include <iostream.h> Void main(void) { Long int fact (int); Float power(float,int); Float sum,temp,x,pow; Int sign,I,n; Longint factorial; Cout<<Enter a value for n?<<endl; Cin>>n; Cout<<Enter a value for x ?<<endl; Cin>>x; I=3; sum=x; sign=1; While (i<=n) { Factval=fact(i); Pow=power(x,i); Sign=(-1)*sign; Temp=sign*pow/factval; Sum=sum+temp; I=i+2; } Cout<<sum of series =<<sum; }
Long int fact (int max) { Long intvalue; Value=1; For(int i=1;i<=max;++i) Value=value*I; Return (value); } Float power (float x, int n) { Float value2; Value2=1; For(int j=1;j<=n;++j) Value2=value2*x; Return(value2); }
as the local parameters or variables. Local variables are defined inside a function block or a compound statement. For example,
Void func (int I, int j) { Int k,m; // local variables // bodyofthe function }
Local variables are referred only the particular part of a block or a function. Same variable name may be given to different parts of a function or a block and each variable will be treated as a different entity. (b) Global variables: these are variables defined outside the main function block. These variables are referred by the same data type and by the same name through out the program in both the calling portion of the program and in the function block.
Example 3:
A program to find the sum of the given two numbers using the global
variables. #include <iostream.h> Int x; Int y=5; void main( ) { X=10; Void sum(void); Sum(); } Void sum(void) { Int sum; Sum=x+y; Cout<<x=<<x<<endl; Cout<<y=<<y<<endl; Cout<<sum=<<sum<<endl; }
4. Recursive Functions:
A function which calls itself directly or indirectly again and again is known as the recursive function. Recursive functions are very useful while constructing the data structures like linked lists, double linked lists, and trees. There is a distinct difference between normal and recursive functions. A normal function will be invoked by the main function whenever the function name is used, where as the recursive function will be invoked by itself directly or indirectly as long as the given condition is satisfied. Forexample,
# include <iostrem.h> Void main(void) { Void func1(); //function declaration _____ _____ Func1(); //function calling } Void func1() //function definition { ____ ____ Func1(); //function calls recursively }
Example 4:
A program to find the sum of the given non negative integer numbers
using a recursive function sum=1+2+3+4++n #include <iostream.h> Void main(void) { Int sum(int); Int n,temp; Cout<<Enter any integer number<<endl; Cin>>n; Temp=sum(n); Cout<<value=<<n<<and its sum=<<temp; } Int sum(int n) //recursive function { Int sum(int); //local function declaration
The output of the above program: Enter any integer number Value = 11 and its sum=66 The following illustrations will be helpful to understand the recursive function
For value 1 =1+sum(1-1) =1+0 =1 For value 2 =2+sum(2-1) =2+1+sum(1-1) =3 For value 3 =3+sum(3-1) =3+sum(2-1) =3+2+1+sum(1-1) =6
Example 5:
A program to find the factorial (n!) of the given number using the recursive function.Its the product of all integers from 1 to n (n is non negative) (so n!=1 if n=0 and n!=n(n-1) if n>0) #include <iostream.h> Void main(void) { Long int fact (long int); Int x,n; Cout<<Enter any integer number<<endl; Cin>>n; X=fact(n); Cout<<value=<<n<<and its factorial=; Cout<<x<<endl; } Long int fact (long int n) //recursive function { Long int fact(long int); //local function declaration Int value =1; If (n==1) Return(value) Else {value=n*fact(n-1); Return(value); } }
The output of the above program: Enter any integer number Value = 5 and its factorial=120 The following illustrations will be helpful to understand the recursive function
For value 1 =1*fact(1-1) =1 For value 2 =2*fact(2-1) =2*1 =2 For value 3 =3*fact(3-1) =3*2*fact(2-1) 3*2*1 =6
Q10: Write a C++ program, using function, to test the year if its a leap or not.
Note: use y % 4 == 0 && y % 100 != 0 :: y % 400 ==0
Q12: Write C++ program, using function, to inverse an integer number: For example: 765432 234567 Q13: Write C++ program, using function, to find the summation of students marks, and its average, assume the student have 8 marks. Write C++ program, using function, to convert any char. From capital to small or from small to capital. Write C++ program using recursive function to find the power of n numbers.
Q14: Q15:
LECTURE 13
1. Arrays:
An array is a consecutive group of homogeneous memory locations. Each element (location) can be referred to using the array name along with an integer that denotes the relative position of that element within the array. The data items grouped in an array can be simple types like int or float, or can be user-defined types like structures and objects.
Examples:
The item in an array are called elements (in contrast to the items in a structure which are called members). The elements in an array are of the same type only the values vary.
- Accessing the first element of array num to variable x: x = num [0]; - Accessing the last element of array num to variable y: y = num [9]; - cout << num [0] + num [9]; - num [0] = num [1] + num[2]; - num [7] = num [7] + 3;
num [7] += 3;
Example 1
Write C++ program to display 2nd and 5th elements of array distance:
#include<iostream.h> void main( ) { double distance[ ] = { 23.14, 70.52, 104.08, 468.78, 6.28}; cout << 2nd element is: << distance[1] << endl; cout << 5th element is: << distance[4]; }
Example 2
#include<iostream.h> void main( ) { int a [5]; cout << "Enter 5 numbers \n"; for ( int i =0; i <5; i++ ) { cout << i << : ; cin >> a [ i ]; cout << \n; } cout << The reverse order is: \n; for ( i =4; i >=0; i-- ) cout << i << : << a [ i ] << endl; }
Example 3
#include<iostream.h> void main ( ) { int const L = 10; int a [L]; int sum = 0; cout << "enter 10 numbers \n"; for ( int i =0; i <L; i++ ) { cout << enter value << i << : ; cin >> a [ i ];
sum += a [ i ]; } cout << "sum is: " << sum << endl; }
Example 4
Example 5 Write C++ program, to give the number of days in each month:
#include<iostream.h> void main ( ) { Int month, day, total_days; Int days_per_month[12]={31,28,31,30,31,30,31,31,30,31,30,31} Cout<<\n Enter month(1 to 12):; Cin>>month; Cout<<enter day(1 to 31):; Cin>>day; Total_days=day; For (int j=0;j<month-1;j++) Total_day+=day_per_month[j]; Cout<<Total days from start of year is:<<total_days; }
Example 6
Write C++ program, using function, to find (search) X value in array, and return the index of its location:
#include<iostream.h> int search( int a[ ], int y) { int i= 0; while ( a [ i ] != y ) i++;
return ( i ); } void main ( ) { int X, f; int a [ 10 ] = { 18, 25, 36, 44, 12, 60, 75, 89, 10, 50 }; cout << enter value to find it: ; cin >> X; f= search (a, X); cout << the value << X << is found in location << f; }
Example 7
Write C++ program, to split the odd numbers and even numbers of one array into two arrays:
a = [ 1, 2, 3, 4, 5, 6, 7, 8, , 20 ] aodd = [ 1, 3, 5, 7, , 19 ] aeven = [ 2, 4, 6, 8, , 20 ]
#include<iostream.h> void main ( ) { int a [ 20 ]= { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; int aodd[20], aeven [20]; int i ,o=0, e=0; for ( i=0 ; i<20; i++ ) if (a[i] % 2 !=0) { aodd[o]=a[i]; o=o+1; } else { aeven[e]=a[i]; e=e+1; } for ( i=0 ; i<o; i++ ) cout<<aodd[i]<<" "; cout<<endl; for ( i=0 ; i<e; i++ ) cout<<aeven[i]<<" "; }
LECTURE 14
1. Array of Two Dimension:
Arrays can have higher dimension. There can be arrays of two dimension which is array of arrays. It is accessed with two index. Also there can be arrays of dimension higher than two. General Form of 2D-Array:
data-type Array-name [ Row-size ] [ Col-size ];
Examples:
int int
Write C++ program, to read 15 numbers, 5 numbers per row, the print them:
#include<iostream.h> void main ( ) { int a [ 3 ] [ 5 ]; int i , j; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 5; j++ ) cin >> a [ i ] [ j ]; for ( i = 0 ; i < 3; i++ ) { for ( j = 0 ; j < 5; j++ ) cout << a [ i ] [ j ]; cout << endl; } }
Example 2
Write C++ program, to read 4*4 2D-array, then find the summation of the array elements, finally print these elements:
#include<iostream.h> void main ( ) { int a [ 4 ] [ 4 ]; int i , j, sum = 0; for ( i = 0 ; i < 4; i++ ) for ( j = 0 ; j < 4; j++ ) cin >> a [ i ] [ j ]; for ( i = 0 ; i < 4; i++ ) for ( j = 0 ; j < 4; j++ ) sum += a [ i ] [ j ]; cout << summation is: << sum << endl; for ( i = 0 ; i < 4; i++ ) { for ( j = 0 ; j < 4; j++ ) cout << a [ i ] [ j ]; cout << endl; } }
Example 3
Write C++ program, to read 3*4 2D-array, then find the summation of each row:
#include<iostream.h> void main ( ) { int a [ 3 ] [ 4 ]; int i , j, sum = 0; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 4; j++ ) cin >> a [ i ] [ j ]; for ( i = 0 ; i < 3; i++ ) { sum = 0; for ( j = 0 ; j < 4; j++ ) sum += a [ i ] [ j ]; cout << summation of row << i << is: << sum << endl; } }
Example 4
Write C++ program, to read 3*4 2D-array, then replace each value equal 5 with 0:
#include<iostream.h> void main ( ) { int a [ 3 ] [ 4 ]; int i , j; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 4; j++ ) cin >> a [ i ] [ j ]; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 4; j++ ) if ( a [ i ] [ j ] == 5 ) a [ i ] [ j ] = 0; for ( i = 0 ; i < 3; i++ ) { for ( j = 0 ; j < 4; j++ ) cout << a [ i ] [ j ]; cout << endl; } }
Example 5
#include<iostream.h> void main ( ) { int a [ 3 ] [ 4 ], b [ 3 ] [ 4 ], c [ 3 ] [ 4 ]; int i , j; cout << "enter element of array A: \n"; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 4; j++ ) cin >> a [ i ] [ j ]; cout << "enter element of array B: \n"; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 4; j++ ) cin >> b [ i ] [ j ]; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 4; j++ ) c [ i ] [ j ] = a [ i ] [ j ] + b [ i ] [ j ]; for ( i = 0 ; i < 3; i++ ) { for ( j = 0 ; j < 4; j++ ) cout << c [ i ] [ j ]; cout << endl; } }
Example 6
#include<iostream.h> void main ( ) { int a [ 3 ] [ 4 ]; int b [ 12 ]; int i , j, k = 0; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 4; j++ ) cin >> a [ i ] [ j ]; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 4; j++ ) { b [ k ] = a [ i ] [ j ];
Example 7
Write C++ program, to replace each element in the main diameter (diagonal) with zero:
#include<iostream.h> void main ( ) { int a [ 3 ] [ 3 ]; int i , j; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 3; j++ ) cin >> a [ i ] [ j ]; for ( i = 0 ; i < 3; i++ ) for ( j = 0 ; j < 3; j++ ) if ( i == j ) a [ i ] [ j ] = 0; for ( i = 0 ; i < 3; i++ ) { for ( j = 0 ; j < 3; j++ ) cout << a [ i ] [ j ]; cout << endl; } }
Example 8
#include<iostream.h> void main ( ) { int a [ 3 ] [ 3 ] , b [ 3 ] [ 3 ]; int i , j; for ( i = 0 ; i < 3; i++ ) { for ( j = 0 ; j < 3; j++ ) { b[ i ][ j ]= sqrt(a[ i ][ j ]); cout << b [ i ] [ j ]; } } }
Example 9
Write C++ program, to read 3*3 2D-array, then find the summation of the main diagonal and its secondary diagonal of the array elements, finally print these elements:
#include<iostream.h> void main ( ) { int a [ 3 ] [ 3 ]; int i , j, x , y; for ( i = 0 ; i < 3; i++ ) { for ( j = 0 ; j < 3; j++ ) cin >> a [ i ] [ j ]; if ( i == j ) x=x+a[ i ][ j ]; if ( i + j =4) y=y+a[ i ][ j ]; } } cout << summation of diagonal is: << x << endl; cout << summation of inverse diagonal is: << y << endl; }
Q14: Write C++ program, to read A[ n, n ] of numbers, then put 10 instead each even positive number. Q15: Write C++ program, to read A[ n, n ] of numbers, then put 10 instead each even positive number in the first diagonal. Q16: Write C++ program, to read A[ n, n ] of numbers, then find the minimum number in array. Q17: Write C++ program, to exchange row1 and row3 in 4*3 array. Q18: Write C++ program, to exchange row0 with col3 in 4*4 array. Q19: Write C++ program, to find the greatest number in the second diagonal, in 3*3 array. Q20: Write C++ program, to read X[ n ], and rotate the elements to the left by one position. i.e:
Q21: Write C++ program, to read A[ n ] and a location Z then delete the number at location Z from the array, and print the new array after deletion. Q22: Write C++ program to order the array in ascending and descending order. Q23: Write C++ program to read (n) no.s and find the average of the even no. on it. Q24: Create the array (b) from (a). 1 2 3 4 5 6 7 8 9 Q25: Create the arrays bellow. 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 6 10 10
LECTURE 15 1. String:
In C++ strings of characters are implemented as an array of characters. In addition a special null character, represented by \0, is appended to the end of string to indicate the end of the string.
Examples:
str [0] : A str [1] : B str [2] : C str [3] : D str [4] : \0
null
Example 2
Write C++ program to convert each lower case letter to upper case letter:
#include<iostream.h> #include<ctype.h> void main( ) { char s [ ] = abcd; cout << s << endl; for ( int i =0; i < 4; i++ ) s [i] = char(toupper (s[i] )); cout << s; }
Note: There are several ways to read and write (there are several input/output function) like: cin.getline ( str, 10 ); cin.get ( ch ); cin.ignor ( 80, \n ); cin.putback ( ch ); cout.put ( ch );
Apply it
Functionality
Return the length of the string
Example
a [ ] = "abcd"; cout << strlen ( a ); char a[ ]= "abcd" , b[ ]=" strcpy ( b , a ); cout << a << b; ";
Copy the content of the 1nd string into the 2st string
Append the content of the 2nd string into the end of the 1st string Return 0 if the 1st string is equal to the 2nd string. if the 1st string is greater than the 2nd string. Return a Negative number if the 1st string is smaller than the 2nd string.
char a[ ]= "abcd" , b[ ]="abcd"; Return a Positive number cout << strcmp ( a , b ); strcmp ( string1, string2 ) 0 + if a == b if a > b if a < b
4. stdlib Library:
The stdlib library has many member functions of string like: Member Function
A atoi ( a )
Functionality
Converts string to int type.
Example
int i; char a [ ] = 1234; i = atoi (a); float f; char a [ ] = 12.34; f = atof (a); int i = 1234; char a [ ] = ; cout << itoa ( i , a , 10);
A atof ( a )
itoa ( i , a , 10);
Q2: Write C++ program to check each character in the string to convert it to lower case letter if its an upper case letter and convert it to upper case letter if its a lower once. Q3: Write C++ program to read a sentence and print its words separately. Q4: Write C++ program to apply the following instructions: cin.getline ( str, 10 ); cin.get ( ch ); cin.ignor ( 80, \n ); cin.putback ( ch ); cout.put ( ch ); Q5: Write C++ program to apply the following instructions: strlen ( string ) strcpy ( string2, string1 ) strcat ( string1, string2 ) strcmp ( string1, string2 ) Q5: Write C++ program to apply the following instructions: i atoi ( a ) f atof ( a ) itoa ( i , a , 10);
LECTURE 16
1. Structures:
Structures are typically used to group several data items together to form a single entity. It is a collection of variables used to group variables into a single record. Thus a structure (the keyword struct is used in C++) is used. Keyword struct is a data-type, like the following C++ data-types ( int, float, char, etc... ). This is unlike the array, which all the variables must be the same type. The data items in a structure are called the members of the structure. General Form of Structure: struct struct-name { variables };
B.
struct data {
C.
typedef struct { char *name; int age; } student;
The above three ways are called structure specifier (tells how the structure is organized) or it is called structure declaration. To access elements in a structure, use a record selector ( . ).
student . name="ahmed"; student . age=20; : }
Note: we can assign more than one name as a structure-name, to the one structure. For example:
typedef struct { char *name; int age; } student , lecturer;
Example 1:
#include<iostream.h> Struct part // { Int model_no; Int part_no; Float cost; } specify a structure
The above program has three main aspects: specifying the structure, defining a structure variable, and accessing the members of the structure.
3. A measurement example:
Lets see how a structure can be used to group a different kind of information. If you have ever looked at an architectural drawing, you know that distances are measured in feet and inches. The length of a living room, for example, might be given as 12-8, meaning 12 feet 8 inches. The hyphen is not a negative sign; it merely separates the feet from the inches. This is part of the English of measurement. The following program will show how two measurements of type distance can be added together.
Example 2:
#include<iostream.h> struct distance { int feet; float inches; } Void main () { distance d1,d3; distance d2={11,6.25}; cout<<\n Enter feet:; cin>>d1.feet; cout<<\n Enter inches:; cin>>d1.inches; d3.inches=d1.inches+d2.inches; d3.feet=0; If (d3.inches >=12.0) {
d3.inches -=12.0; d3.feet ++; } d3.feet +=d1.feet + d2.feet; cout<<d1.feet<<\-<<d1.inches<<\+; cout<<d2.feet<<\-<<d2.inches<<\=; cout<<d3.feet<<\-<<d1.inches<<\\n; }
Example 3:
Write C++ program to find the area of the room in English system.
#include<iostream.h> struct distance { int feet; float inches; } struct room { distance length; distance width; }; Void main () { room dining; dining.length.feet=13; dining.length.inches=6.5; dining.width.feet=10; dining.width.inches=0.0; float L=dining.length.feet+dining.length.inches/12;
5. Array of Structures:
The struct is a data-type. So we can define an array as an array of struct, like define an array as an array of int, or of any other C++ data-types.
However, the following simple example shown how can create and use an array of struct.
Example 4:
This simple example to show how can create and use an array of structure.
#include<iostream.h> typedef struct { char *name; int age; } student; void main ( ) { student array [10]; array [1] . name = "ahmed"; array [1] . age = 20; cout << array[1] . name << endl; cout << array[1] . age; }
cin >> array [1] . name ; cin >> array [1] . age ;
Example 5:
Write a C++ Program, using structure type, to read name and age for ten students.
#include<iostream.h> typedef struct { char *name; int age; } student;
//Or name[10]
void main ( ) { student array [10]; for ( i = 0 ; i < 10 ; i++ ) { cin >> array [i] . name; cin >> array [i] . age; } for ( i = 0 ; i < 10 ; i++ ) { cout << array[i] . name << endl; cout << array[i] . age; } }
# include <iostream.h> Struct sample { Int x; Float y; }; Sample first ; Void main (void) { Void display (struct sample one); // function declaration - ---Display (one); // function calling ----} Void display (struct sample out) // function definition { ----Out.x=10; Out.y=-20.20; ----}
Example 6:
Write C++ program to display the contents of a structure using function definition.
#include<iostream.h> struct date { int day; Output int month; Todats date is = 10/3/2011 int year; } ; Void main(void) { date today; void display (struct date one); // function declaration today.day=10; today.month=3; today.year=2011; display (today); } Void display (struct date one) { cout<<Todays date is = << one.day << /; cout<< one.month; cout<</ << one.year << endl; }
called
By using your declaration, write a C++ program that reads and stores data, then print only employees whose ID number less than 100.
General Form of EDT: enum user_defined_name { member_1; member_2; member_n; }; Where enum is a keyword for defining the enumeration data type and the braces are essential. The members of the enumeration data type are the indivisual identifiers. Once the enumeration data type is defined, it can be declared in the following ways: Storage_class enum user_defined_name where the storage class is optional. For example: var.1, var.2, var.n
1) Enum sample { Mon, tue, wed, thu, fri, sat, sun }; Enum sample day1, day2, day3; 2) Enum drinks { Cola, tea, koffi,rani } Enum drinks d1, d2, d3; 3) Enum games {
The enumeration constants can be assigned to the variable like day1=mon;. The enumeration constants are automatically assigned to integers starting from 0, 1, 2 etc. up to the last number in the enumeration.
Example 1: Write C++ program to declare the EDT and to display the integer values on the screen.
#include <iostream.h> Void main(void) { enum sample { Mon, tue, wed, thu, fri, sat, sun } day1, day2, day3, day4, day5, day6, day7; day1=mon; Output: day2=tue; Monday =0 day3=wed; Tuesday =1 day4=thu; Wednesday = 2 day5=fri; Thursday =3 day6=sat; Friday =4 day7=sun; Saturday =5 cout<<Monday = <<day1 <<endl; Sunday =6 cout<<Tuesday = <<day2 <<endl; cout<<Wednesday = <<day3 <<endl; cout<<Thursday = <<day4 <<endl; cout<<Friday = <<day5 <<endl;
cout<<Saturday cout<<Sunday }
These integers are normally chosen automatically but they can also be specified by the programmer with negative or positive numbers, for example
Enum sample {mon, tue, wed=10, thu, fri, sat=-5, sun} day1, day2, day3, day4, day5, day6, day7;
Example 2: Write C++ program to declare the EDT and to display the difference between days.
#include <iostream.h> Enum days_of_week { Mon, tue, wed, thu, fri, sat, sun } Void main(void) { days_of_week day1, day2; day1=mon; day2=thu; int diff=day2-day1; // can do integer arithmatic cout<<Days between=<<diff<<endl; if (day1 < day2) // can do comparision cout<<dau1 comes before day2 \n; }
Example 3: Write C++ program to count the places in a sentence where a string of nonspaces character changes to spaces.
#include <iostream.h> #include <conio.h> enum boolean {false,true}; // false=0 , true=1 Void main() { boolean isword=false; // true when word, false when whitespace char ch=a; // character read from keyboard int wordcount=0; // numbers of words reads do { ch=getche(); // get character if (ch== || ch==\r) // if white space or enter key { if (isword) { wordcount++; // count the word isword=false; // reset flag } } else // otherwise its normal char. if (! isword) // if start of word isword=true; // set flag } while (ch!=\r); // quit on enter key cout <<\n --- word count is<<wordcount<<---\n; }
(EDT)
LECTURE 18
1. Pointers:
The pointer is a powerful technique to access the data by indirect reference as it holds the address of that variable where it has been stored in the memory.
2. Pointer Declaration:
A pointer is a variable which holds the memory address of another variable. The pointer has the following advantages: 1. It allows passing variables, arrays, functions, strings and structures as function arguments. 2. A pointer allows returning structured variables from functions. 3. It provides functions which can modify their calling arguments. 4. It supports dynamic allocation and deallocation of memory segments. 5. With the help of a pointer, variables can be swapped without physically moving them. 6. It allow to establish links between data elements or objects for some complex data structures such as linked lists, stacks, queues, binary trees, tries and graphs. 7. A pointer improves the efficiency of certain routines. In C++ pointers are distinct such as integer, float, character, etc. A pointer variable consists of two parts, namely, (i) the pointer operator and (ii) the address operator.
Pointer Operator:
A pointer operator can be represented by a combination of (*) with a variable, for example int *ptr; where ptr is a pointer variable which holds the address of an integer data type. General Form of Pointer: Data_type *pointer_variable;
Example:
int x, y;
Address Operator:
An address operator can be represented by a combination of & with a pointer variable. For example, if a pointer variable is an integer type and also declared (&) with the pointer variable, then it means that the variable is of type address of. For example m=&ptr;. Note that the pointer operator & is
Note:
Notice the difference between the reference and dereference operators:
& is the reference operator and can be read as "address of" * is the dereference operator and can be read as "value pointed by"
Thus, they have complementary (or opposite) meanings. A variable referenced with & can be dereferences with *. Examples: (1) Ptr1 = &x; The memory address of variable x is assigned to the pointer variable ptr1. (2) Y=*prt1; The contents of the pointer variable ptr1 is assigned to the variable y, not the memory address. (3) Ptr1=&x; The address of the ptr1 is assigned to the pointer variable ptr2. The contents Ptr2=ptr1; of both ptr1 and ptr2 will be the same as these two pointer variables hold the same address.
Right after these two statements, all of the following expressions would give true as result:
Examples of invalid pointer declaration: (1) int x; int x_pointer; x_pointer=&x; Error: pointer declaration must have the prefix of *. (2) float y; float *y_pointer; y_pointer=y; Error: While assigning variable to the pointer variable the address operator (&) must used along with the variable y. (3) int x; char *c_pointer; c_pointer = &x; Error: Mixed data type is not permitted.
Example 1:
This simple example to show how can create and use pointer of char.
#include <iostream.h> int main() { char c='a'; char *p_c = &c; cout<< *p_c; }
Example 2:
This simple example to show how can create and pointer of integer.
#include <iostream.h> main() { int myval=10; int *p_myval; p_myval = &myval; cout<<*p_myval; }
Example 3:
#include <iostream.h> main() { int myval = 7; int *p_myval = &myval; *p_myval = 6; cout<<*p_myval<<"\n"; cout<<myval; }
Example 4:
#include <iostream.h> main() { int myval=5; int myval2 = 7; int *p_primate; p_primate = &myval;
Example 5:
#include <iostream.h> Void main(void) { Float value; Float *ptr; Value = 120.00; Ptr = &value; Cout<< Memory address =<<ptr<<endl; Ptr --; Cout<<Memory address after decrementer =; Cout<<ptr<<endl; }
Call by value:
Whenever a portion of the program invokes a function with formal arguments, control will be transferred from the main to the calling function and the value of the actual argument is copied to the function. Within the function, the actual value copied from the calling portion of the program may be altered or changed. When the control is transferred back from the function to the calling portion of the program, the altered values are not
transferred back. This type of passing formal arguments to a function is technically known as call by value.
Example 6: A program to exchange the contents of two variables using a call by value.
#include <iostream.h> Void main(void) { Int x,y; void swap (int,int); x=100; y=20; cout<<values before swap<<endl; cout<<x=<<x<<and y=<<y<<endl; swap(x,y); //call by value cout<<values after swap<<endl; cout<<x=<<x<<and y=<<y<<endl; } int func (int x, int y) { int temp; temp=x; x=y; y=temp; }
O/P:
values before swap x=100 and y=20 values after swap x=100 and y=20
Call by reference:
When a function is called by a portion of a program, the address of the actual arguments is copied onto the formal arguments, though they may be referred by different variable names. The content of the variables that are altered within the function block are returned to the calling portion of a program in the altered form itself, as the formal and the actual arguments are referencing the same memory location or address. This is technically known as call by reference or call by address or call by location.
Example 7: A program to exchange the contents of two variables using a call by reference
#include <iostream.h> Void main(void) { Int x,y; void swap (int *x, int *y); x=100; y=20; cout<<values before swap<<endl; cout<<x=<<x<<and y=<<y<<endl; swap(&x, &y); //call by reference cout<<values after swap<<endl; cout<<x=<<x<<and y=<<y<<endl; } int func (int *x, int *y) { int temp; temp=*x; *x = *y; *y=temp; }
O/P:
values before swap x=100 and y=20 values after swap x=100 and y=100
Valid : int value[20]; int *ptr; ptr=&value[0]; //the address of the zeroth element is assigned to a pointer variable ptr. ptr++ == value[1]; ptr+6 == &value[6]; *ptr == &value[0] *ptr == &value[ ] *(ptr+6) == value[6] ptr ++ == &value[1]
Example: int s[200]; int *sptr; sptr=s; a[i] sptr = &s[0]; *(&(a)[0] + (i))
*((a) + (i))
2. Arrays of Pointers:
The pointers may be arrayed like any other data type. The declaration for an integer pointer array of size 10 is int *ptr[10]; makes ptr[0], ptr[1], ptr[2], , ptr[10]; Where ptr is an array of pointers that can be used to point the first elements of the arrays a, b, c. The following are valid assignment statements in C++: Ptr[0] = &a[0]; Ptr[10] = &b[0]; Ptr[20] = &c[0]; Example 2: A program to display the content of pointers using an array of pointers
#include <iostream.h> contents of pointer 1 = Ahmed void main(void) contents of pointer 2 = Reem { contents of pointer 3 = Ali Char *ptr[3]; Ptr[0]=Ahmed; Ptr[1]=Reem; Ptr[2]=Ali; Cout<<contents of pointer 1 =<<ptr[0]<<endl; Cout<<contents of pointer 2 =<<ptr[1]<<endl; Cout<<contents of pointer 3 =<<ptr[2]<<endl; }
3. Pointers to Pointers:
An array of pointers is the same as pointers to pointers. As an array of pointers is easy to index because the indices themselves convey the meaning of a class of pointers. However, pointers to pointers can be confusing. The pointer to a pointer is a form of multiple of indirections or a class of pointers. In the case of a pointer to a pointer, the first pointer contains the address of the second pointer, which points to the variable that contain the values desired. Multiple indirections can be carried on to whatever extent desired, but there are a few cases where more pointer to a pointer is needed or written. Int **ptr2; Where ptr2 is a pointer which holds the address of the another pointer.
pointer
variable
pointer
pointer
variable
Example 3: A program to declare the pointer to pointer variable and to display the contents of thesepointers
#include <iostream.h> void main(void) { Value = 120 int value; Pointer 1 = 120 int *ptr1; Pointer 2 =120 int **ptr2; value = 120; cout<< value =<<value<<endl; ptr1=&value; ptr2=&ptr1; cout<<pointer 1=<<*ptr1<<endl; cout<<pointer 2=<<**ptr2<<endl; }