901131 Examples

209
www.aabu.edu.jo/~wael

description

fhfhfhfh

Transcript of 901131 Examples

Page 1: 901131 Examples

www.aabu.edu.jo/~wael

Page 2: 901131 Examples

C++ ProgramA sequence of structured statements written by programmer using C++ language to solve a problem.

Using Visual C++ to write your program

1- Start Programs Microsoft Visual Studio 6 Microsoft Visual C++ 62- File New Files C++ Source file oK3- Write your program using C++ statements4- Compilation: Ctrl + F7 to see if the program has error's5- Execution: to display the program’s result

Page 3: 901131 Examples

General form of C++ Program#include <iostream.h>void main() {

.

.C++ statements ..

}

Remark: C++ language is case sensitive

Page 4: 901131 Examples

Problem : Compute and print the summation of two numbers.

Program#include <iostream.h>void main() {

int a, b, s;cout<<"Please Enter two numbers:";cin>>a>>b;s = a + b;cout<<"s="<<s<<endl;

}

Page 5: 901131 Examples

Remarks:- iostream.h: C++ library that contains all input/output statements and other constrols.- main(): the main function of the program which represents the program’s life time.- a, b, and s are three variables of type integer. Their values can be any integer and can be changed.- cin>>: C++ statement to take value(s) from the user.- cout<<: C++ statements to display value(s) to the output screen.- “ ”: must be around any character constants.- \n or endl: to start new line at output screen.

Page 6: 901131 Examples

Variables• Variables:

- Variable is one memory location. -The name of the location is the variable name. -The location content is the value of the variable - You can change the content of the variable at any time in the statements of the algorithm.e.g. Name of the location Inside Memory location employee_name “Ali Ahmed” age 35 hourly_rate 3.25

Page 7: 901131 Examples

Predefined Data Types:• int : values (e.g. 5 , -321 , 12) operations (e.g. + , - , * , / , % , >, <, = =, !=, > =, <= )• float (double) : values (e.g. 3.2 , 1.23E+5 , 0.34E-2) operations (e.g. +, -, *, /, , >, <, = =, !=, > =, <= )• bool : values (true , false) operations (e.g. AND, OR, NOT)• char : values (e.g. ‘A’ , ‘t’ , ‘(‘ , ‘5’ , ‘;’ ) operations (e.g. <, > , ≤, etc.)

Data Types

Variable declarationType Variable_name

Page 8: 901131 Examples

Constant Values: can be numerical (3, 100, -5, 3.14) or string (‘A’, ‘$’, ‘Ahmad’, Amman).

Constant identifier: one memory location take a value at a first time, which can not be changed.

const float pi = 3.14

Page 9: 901131 Examples

Variable names

• int X,x,Number, IF,If,iF,a7,Total_sum;• float _abc;

Page 10: 901131 Examples

Problem : Compute and print the average of three numbers.

Program

#include <iostream.h>void main() {

int n1, n2, n3;float s, average;cout<<"Please Enter three integers: ";cin>>n1>>n2>>n3;s = n1 + n2 + n3;average = s / 3;cout<<"\n Average = \t"<<average<<endl;

}

Remark: \t to leave tab spaces

Page 11: 901131 Examples

Problem : Compute the area of the circle. Where area = π x R2

Program#include <iostream.h>void main() {

const double Pi = 3.14;int r;cout<<"\n Please enter r";cin>>r;double a;a = Pi * r * r;cout<<"\n Circle's Area = "<<a<<endl;

}

Page 12: 901131 Examples

Examples on integer division#include <iostream.h>void main( ){int x;x=1/3*3; // 1/3=0cout<<x<<endl;x=1.0/3*3; cout<<x<<endl;}

Page 13: 901131 Examples

Boolean variables and relational operations

#include <iostream.h>void main( ){bool x,y;x= 5 > 7;cout<<x<<endl;y= 5 < 7;cout<<y<<endl;x=true;cout<<x<<endl;y=false;cout<<y<<endl;x=5;cout<<x;}

Page 14: 901131 Examples

Misleading examplesX= 7 > 5 > 3;This expression gives false because its evaluated

as followsX=(7>5) >3; = 1 > 3; // False;The relational operations are executed from left to

right < ,<= ,> , >= have the same priority== , != have lower priority than the above.X = 1 == 1>3;X = 3>4 == 4>3;

Page 15: 901131 Examples

Priority

• * , / , % have the same priority ( High )• + , - have the same priority (Low)

Page 16: 901131 Examples

Examples on arithmetic operationsX= 5 + 2 * 3 – 7;The order of execution is as follows: * , then + , then -

X= 5 + 2 * 3 – 7 / 3 Execution order : * , + , / , -

X= 5+2*3/4%1-7/3……………………..

Page 17: 901131 Examples

If Statement in C++

One way ifif ( Condition )

statement;

if ( Condition ) {statements; }

Page 18: 901131 Examples

Problem : Read any number from the user, then print positive if it is positive.

Program

#include <iostream.h>void main() {

int Num;cout<<"\n Please Enter an integer number:";cin>>Num;if (Num > 0)

cout<<" Positive\n";}

Page 19: 901131 Examples

Another Version

#include <iostream.h>void main() {int Num;bool w;cout<<"\n Please Enter an integer number:";cin>>Num;w=Num>0;if (w)cout<<" Positive\n";}

Page 20: 901131 Examples

If Statement in C++Two way if

if ( Condition )statement;

elsestatement;

if ( Condition ) {statements; }

else {statements;}

Page 21: 901131 Examples

Write a program that reads a mark, if mark is 60 or greater, the program prints PASS, else it will print FAIL#include <iostream.h>

void main() {int mark;cout<<"\n Please Enter your mark: ";cin>>mark;if (mark>=60)cout<<" PASS\n";else cout<<"FAIL\n";

}

Page 22: 901131 Examples

More than one statement in the if#include <iostream.h>

void main() {int mark;cout<<"\n Please Enter your mark: ";cin>>mark;if (mark>=60){cout<<" PASS\n";cout<<“ you can take Object course now\n”;}else {cout<<"FAIL";cout<<“You must take this course again\n”;}

}

Page 23: 901131 Examples

Write a program that prints the fraction a/b in the form c d/bExample: 7/3 = 2 1/3

#include <iostream.h>void main ( ) {int a,b,c,d;cout<<“To convert the fraction from the format a/b

to c d/b, Enter a,b”;cin>>a>>b;c=a/b;d=a%b;cout<<a<<“/”<<b<<“=“<<c<<“ “<<d<<“/”<<b<<endl;}

Page 24: 901131 Examples

Enhancement on the previous example#include <iostream.h>void main ( ) {int a,b,c,d;cout<<“To convert the fraction from the format a/b to c d/b,

Enter a,b”;cin>>a>>b;c=a/b;d=a%b;cout<<a<<“/”<<b<<“=“;if ( c != 0) cout<<c;if (d!=0) cout<<“ “<<d<<“/”<<b;cout<<endl;}

Page 25: 901131 Examples

ConditionCondition: An expression that is evaluated to produce only true or false values.

Arithmetic Expressions - It is composed of operands and arithmetic operations ( + , - , *, /, %). - Its result is a numeric value (e.g. 3 + 4 gives 7) - Operands may be numbers and/or identifiers that have

numeric values.

Page 26: 901131 Examples

Relational Expressions - It is composed from operands and operators. - Operands may be numbers and/or identifiers that have numeric values - Its result is a logical value (true or false). - Operators are relational operators: < , > , <= , >= , = =, != e.g. (a < b) gives true, if value of a is less than value of b false, if value of a is not less than value of b

(x != y) also gives true or false according to the values of x and y

Page 27: 901131 Examples

Logical Expressions - It is called also Boolean expression. - It is composed from operands and operators. - Operands are identifiers that have logical values - Its result is a logical value (true or false) (see later). - Operators are logical: &&(AND) , ||(OR), !(NOT)

e.g. X && Y a && b || c

Page 28: 901131 Examples

Evaluating Logical Expressions

• The truth table(1) AND table

&& True False True True False False False False

Page 29: 901131 Examples

(2) OR table || True False True True True False True False

(3) NOT table ! True False False True

Page 30: 901131 Examples

Arithmetic Relational Logical

• NOTES1) A relational expression may contain arithmetic sub

expressions, e.g. ( 3 + 7 ) < (12 * 4 )

3 + 7 < 12 * 42) A logical expression may contain relational and

arithmetic subexpressions, e.g.1- x && y && ( a > b )2- (2 + t ) < (6 * w ) && ( p = =q )

Page 31: 901131 Examples

Operator PrecedenceOperator Description Precedence

( ) parentheses Highest +, – , ! unary plus, unary minus,

Not *, /, % + , - Binary plus, binary minus

<, <=, >, >= == , != Equal, not equal && || = Assignment Lowest

Page 32: 901131 Examples

Examples• Find the value of the following expression:(1) 5 + 8 * 2 / 4 16

4

9 (This is the final result)

Page 33: 901131 Examples

Find the value of the following expression

( 9 + 3 ) - 6 / 3 + 5

12 2 10`

15 (this is the final result)

Page 34: 901131 Examples

Find the value of the following Expression

If x = True, y = False, z = False, find the value of the expression x && y || z

x && y || z

False

False (the final result)

Page 35: 901131 Examples

Another example

• X=true, Y=false, Z= true

X || Y && Z true

• X=true, Y=false, Z= falseX || Y && Z

true

Page 36: 901131 Examples

If a = 3, b = 5, x = true, y = false, find the value of the expression: ( a < b ) AND y OR x

( a < b ) && y || x

True

False

True (the final result)

Find the value of the following Expression

Page 37: 901131 Examples

What is the output of the following code:

Program

#include <iostream.h>void main() {int a=10, b=3;cout<<"\n a+b= \t"<<a+b;cout<<"\n a+b*2= \t"<<a+b*2;cout<<"\n (a+b)*2 \t"<<(a+b)*2<<endl;cout<<a<<“<“<<b<<" is\t"<<(a<b);cout<<"\n a+b != a+3 is \t"<<(a+b != a+3);cout<<"\n a+b >= b*2 || a>b+9 is \t"<<(a+b >= b*2 || a>b+9); cout<<endl;}

Page 38: 901131 Examples

Problem : Read any number from the user, then print positive if it is positive and print negative otherwise.

Program

#include <iostream.h>void main() {

int Num;cout<<"\nPlease Enter Number:";cin>>Num;if (Num < 0)

cout<<"\nNegative\n";else

cout<<"\nPositive\n";}

Page 39: 901131 Examples

Problem : Read Two numbers from the user, then print the greatest one.

Program#include <iostream.h>void main() {

int x,y;cout<<"\nPlease Enter two numbers:";cin>>x>>y;cout<<"Max = ";if (x > y)

cout<<x<<endl;else

cout<<y<<endl;}

Page 40: 901131 Examples

Problem : Read three numbers to print the smallest one.

Program#include <iostream.h>void main() {

int a, b, c;cout<<"\nPlease Enter three numbers:";cin>>a>>b>>c;cout<<"\nMin= ";if ((a < b) && (a < c))

cout<<a;if ((b < a) && (b < c))

cout<<b;if ((c < a) && (c < b))

cout<<c;cout<<endl;

}

Page 41: 901131 Examples

Program2 (Nested if)#include <iostream.h>void main() {

int a, b, c;cout<<"\nPlease Enter three numbers:";cin>>a>>b>>c;cout<<"\nMin= ";if (a < b)

if (a < c)cout<<a;

elsecout<<c;

elseif (b < c)

cout<<b;else

cout<<c;cout<<endl;

}

Page 42: 901131 Examples

Problem : Read number, if it is positive, Add number 10 to it and print the Number “is positive”, but otherwise, subtract number 10 from it and print the Number “is negative”.

Program#include <iostream.h>void main() {

int Number;cout<<"\nPlease enter Number:";cin>>Number;if (Number>0) {

Number = Number + 10;cout<<Number<<" is Positive\n";}

else {Number = Number - 10;cout<<Number<<" is Negative\n";}

}

Page 43: 901131 Examples

Example on dangling else

if ( x>y) if ( x<z) cout<<“ Hello”;

else cout<<“Hi”;

Page 44: 901131 Examples

Another idea

if ( x>y) {if ( x<z) cout<<“ Hello”;}else cout<<“Hi”;

Page 45: 901131 Examples

Assignment StatementSimple Assignment:

Max = 5 ;Max = A ;F = A+B*2;

Compound Assignment:A += 10 ; A = A + 10;A -= C ; A = A – C;I *= 4 ; I = I * 4;r /= 2; r = r / 2;S %= 3 ; S = S % 3 ;B &= true; B = B && true;B |= true; B = B || true;

Page 46: 901131 Examples

Increment and DecrementPostfixC++; use the value of C, then increment (C = C+1) it.C--; use the value of C, then decrement (C = C-1) it.

Prefix++C; increment the value of C (C = C+1), then use it .--C; Decrement the value of C (C = C-1), then use it .

Page 47: 901131 Examples

What is the output of the following C++ Source Code

Program#include <iostream.h>void main( ) {

int A=10, B=4, R;cout<<"A="<<A<<"\tB="<<B;A += B;B *= 2;cout<<"\nA="<<A<<"\tB="<<B;R = ++A % B--;cout<<"\nR="<<R;R = A++ + --B ;cout<<"\nA="<<A<<"\tB="<<B<<"\tR="<<R;bool a=true, b=false;a &= b;if (a == 0)

cout<<"\n a = false\n";else

cout<<"\n a = true\n";}

Page 48: 901131 Examples

Examples

X=5;Y=7;Z=X++ + Y; // Z=X+Y; X=X+1;cout<<X<<“ “<<Y<<“ “<<Z<<endl;Z=++X +Y; // X=X+1; Z=X+Y;cout<<X<<“ “<<Y<<“ “<<Z<<endl;Z=X++ + Y++; // Z=X+Y; X++;Y++;cout<<X<<“ “<<Y<<“ “<<Z<<endl;

Page 49: 901131 Examples

Loop (iteration statements)used to repeat subcode number of times

there three loop techniques:1- for Loop.2- while Loop.3- do … while Loop

Page 50: 901131 Examples

For Loop TechniqueGeneral Form:for (counter_var=initial_val; condition; increasing or decreasing counter_var)

{.Statement(s); .

}

Statements will be executed repeatedly while condition is true. When the condition become false, the loop will be terminated and the execution sequence will go the first statement after for loop.

If the loop body contains only one statement, there is no need to begin{ and end } the loop body.

Page 51: 901131 Examples

Problem : Print the word “Amman” five times. Program#include <iostream.h>void main( ) {

for (int i=1; i<=5; i++) cout<<"Amman\n";

}

Another Program#include <iostream.h>void main() {

for (int i=5; i>=1; i--) cout<<"Amman\n";

}

Page 52: 901131 Examples

Problem : Print the following numbers.1 3 5 7 9 11

Program#include <iostream.h>void main( ) {

for (int k=1; k<=11; k+=2) cout<<k<<“\t”;

cout<<endl;}

Page 53: 901131 Examples

Problem : Print the following numbers.20 17 14 11 8 5 2

Program

#include <iostream.h>void main() {

for (int m=20; m>=2; m-=3) cout<<m<<“\t”;

cout<<endl;}

Page 54: 901131 Examples

Another Version of the previous example

#include <iostream.h>void main( ) {

int m;for (m=20; m>=2; m-=3)

cout<<m<<“\t”;cout<<endl;

}

Page 55: 901131 Examples

Problem : Print the following numbers.1 2 3 4 … n(entered by user)

Program

#include <iostream.h>void main() {

int n;cout<<"\nPlease enter the upper limit:";cin>>n;for (int i=1; i<=n; i++)

cout<<i<<“\t”;cout<<endl;

}

Page 56: 901131 Examples

Problem : Print the following numbers.L (entered By user) (L+1) (L+2) … U (entered By user)

Program#include <iostream.h>void main() {

int L,U;cout<<"\nPlease enter the Lower limit:";cin>>L;cout<<"\nPlease enter the Upper limit:";cin>>U;for (int i=L; i<=U; i++)

cout<<i<<“\t”;cout<<endl;

}

Page 57: 901131 Examples

Problem : Read five numbers from the user and print the positive numbers only.

Program#include <iostream.h>void main() {

int num;for (int i=1; i<=5; i++)

{ cout<<"\nPlease Enter No"<<i<<':'; cin>>num; if (num > 0)

cout<<num; }

}

Page 58: 901131 Examples

Problem : Read five numbers from the user and print the positive numbers only.

Program#include <iostream.h>void main() {

int num;for (int i=1; i<=5; i++) {

cout<<"\nPlease enter the next number:";cin>>num;if (num<0)

continue;cout<<num; }

}

Page 59: 901131 Examples

Problem : Compute and print S, Where S = 1+ 2+ 3+ 4+ 5

Program

#include <iostream.h>void main() {

int S=0;for (int i=1; i<=5; i++)

S+=i;cout<<"\nS="<<S<<endl;

}

Page 60: 901131 Examples

Problem : Compute and print S, Where Sum = 1+ 3+ 5+ 7+ … + n

Program#include <iostream.h>void main() {

int Sum=0, n;cout<<"\nPlease Enter n";cin>>n;for (int i=1; i<=n; i+=2)

Sum+=i;cout<<"\nSum="<<Sum<<endl;

}

Page 61: 901131 Examples

Problem : Compute and print the summation of any 10 numbers entered by the user.

Program

#include <iostream.h>void main() {

int S=0, N;for (int i=10; i>=1; i--) {

cout<<"\nPlease Enter the next number:";cin>>N;S+=N;}

cout<<"\nS="<<S<<endl;}

Page 62: 901131 Examples

Problem : Compute and Print the factorial of the number 5. (Fact = 5 * 4 * 3 * 2 * 1)

Program

#include <iostream.h>void main( ) {

int Fact=1;for (int j=5; j>=1; j--)

Fact *= j;cout<<"5!= "<<Fact<<endl;

}

Page 63: 901131 Examples

A program to find n!

#include <iostream.h>void main( ) {

int Fact=1,n;cout<<“Enter an integer to find its factorial”;cin>>n;for (int j=n; j>=1; j--)

Fact *= j;cout<<n<<"!= "<<Fact<<endl;

} Try it on n = 17 ???

Page 64: 901131 Examples

Problem : Compute and Print the value of M where M = 2 * 4 * 6 * … * n

Program

#include <iostream.h>void main( ) {

long M=1;int n;cout<<"please enter the upper Limit:";cin>>n;for (int i=2; i<=n; i+=2)

M *= i;cout<<"M= "<<M<<endl;

}

Page 65: 901131 Examples

Problem : Compute and Print Mn

Program#include <iostream.h>void main() {

long Result=1;int M, n;cout<<"please enter the Base number:";cin>>M;cout<<"\nplease enter the exponent:";cin>>n;for (int i=1; i<=n; i++)

Result *= M;cout<<"\nResult= "<<Result<<endl;

}

Page 66: 901131 Examples

Write a program that finds Mn for positive & negative n

• H.W.

Page 67: 901131 Examples

Print the following shape*************************cin>>n;for(int i=1;i<=n;i++) { for (int j=1;j<=n;j++) cout<<“*”; cout<<endl; }

Nested for

Page 68: 901131 Examples

Problem : Draw the following shape***************

#include <iostream.h>void main( ) {

for (int raw=1; raw<=5; raw++) {for (int C=1; C<=raw; C++)

cout<<'*';cout<<endl; }

}

Nested for

Page 69: 901131 Examples

Problem : Draw the following shape***************

#include <iostream.h>void main() {

for (int i=1; i<=5; i++) {for (int j=i; j<=5; j++)

cout<<'*';cout<<endl; }

}

Page 70: 901131 Examples

What is the output for the following program

for(int i=1;i<=5;i++){ for (int j=1;j<=5;j++) if (i==j) cout<<“*”; else if (i+j==6) cout<<“*“; else cout<<“ “;Cout<<endl;}

Page 71: 901131 Examples

Problem : display the multiplication table for the number 3.

#include <iostream.h>void main() {

for (int i=1; i<=10; i++)cout<<"3 x "<<i<<" = "<<3*i<<endl;

}

Page 72: 901131 Examples

Problem : display the multiplication table for the numbers from 1 to 5.

1 2 3 4 52 4 6 8 103 6 9 12 154 8 12 16 205 10 15 20 25

Page 73: 901131 Examples

for (int i=1;i<=5;i++) {

for(int j=1;j<=5;j++) cout<<i*j<<“\t”; cout<<endl;

}

Page 74: 901131 Examples

Problem : Read any number from the user and print Prime if it is a prime number, or Not prime otherwise.

#include <iostream.h>void main() {

bool Prime = true;int i, num;cout<<"Please enter the number:";cin>>num;for ( i=2; i<num; i++)

if (num%i==0) {Prime = false;break; }

if (Prime)cout<<num<<" is a Prime number\n";

elsecout<<num<<" is not a Prime number\n";

}

Page 75: 901131 Examples

S=m0 + m1 + … +mn

#include <iostream.h>void main(){int s=0,n,m;int t=1;cout<<"Enter m please ";cin>>m;

cout<<"Enter n please ";cin>>n;for (int i=0;i<=n;i++){ t=1; for (int j=1;j<=i;j++) t=t*m;s=s+t;}cout<<s<<endl;

}

Page 76: 901131 Examples

#include <iostream.h>void main(){int s=0,n,m;int t=1;cout<<"Enter m please ";cin>>m;

cout<<"Enter n please ";cin>>n;for (int i=0;i<=n;i++){s=s+t;t=t*m;}cout<<s<<endl;

}

Page 77: 901131 Examples

While Technique

General Form:while (Condition) {.Statement(s); .

}

Statements will be executed repeatedly while condition is true. When the condition become false, the loop will be terminated and the execution sequence will go to the first statement after While loop.

If the loop body contains only one statement, there is no need to begin{ and end } the loop body.

Page 78: 901131 Examples

Problem : Print the word “Amman” five times. Program

#include <iostream.h>void main() {

int i=1;while (i<=5)

{cout<<"Amman\n";i++;}

}

Page 79: 901131 Examples

#include <iostream.h>void main() {

int i=1;while (i++<=5)

{cout<<"Amman\n";}

cout<<i<<endl;}

Page 80: 901131 Examples

Problem : Print the following numbers.1 3 5 7 9 11

Program#include <iostream.h>void main() {

int i=1;while (i <= 11) {

cout<<i<<'\t';i+=2; }

}

Remark:Write ((i+=2) <= 11 ) condition instead of the above one. What changes you have to do to produce the same output.

Page 81: 901131 Examples

Problem : Print the following numbers.20 17 14 … n

Program#include <iostream.h>void main() {

int n, k=20;cout<<"Enter the lower limit:";cin>>n;while ( k >= n) {

cout<<k<<'\t';k -= 3; }

}

Remark:Write k-=3 instead of k in the above condition. What you have to do to produce the same output.

Page 82: 901131 Examples

Problem : Read five numbers from the user and print the positive numbers only.

Program

#include <iostream.h>void main() {

int num, j=0;while ( j++ < 5 ) {

cout<<"Enter the next num:";cin>>num;if (num > 0)

cout<<num<<endl; }}

Remark:Solve the above problem by using continue statement.

Page 83: 901131 Examples

#include <iostream.h>void main() {

int sum=0,i,x,y;cout<<"Enter x,y please: ";cin>>x>>y;i=x;while ( i <=y) {

sum=sum+i;i=i+1;

}cout<<"The Sum for the numbers from "<<x<<" to "<<y<<" = "<<sum<<endl;

}

Page 84: 901131 Examples

Problem : Compute and print S, Where Sum = 1+ 3+ 5+ 7+ … + n

Program#include <iostream.h>void main() {

int n, Sum=0, i=1;cout<<"Enter the upper limit:";cin>>n;while ( i <= n ) {

Sum += i;i += 2; }

cout<<"\nSum="<<Sum;}

Page 85: 901131 Examples

Problem : Read 10 numbers by the user and compute and print the summation of numbers, which are divisible by 3.

Program#include <iostream.h>void main() {

int Num, Sum=0, i=1;while ( i <= 10 ) {

cout<<"Enter a number:";cin>>Num;if (Num % 3 == 0)

Sum += Num;i++; }

cout<<"\nSum="<<Sum;}

Page 86: 901131 Examples

Problem : Compute and Print the value of M where M = 2 * 4 * 6 * … * n

Program

#include <iostream.h>void main() {

int N, M=1, i=2;cout<<"Enter the upper limit:";cin>>N;while ( i <= N ) {

M *= i;i += 2; }

cout<<"\nM="<<M;}

Page 87: 901131 Examples

#include <iostream.h>void main() {

int N, M=1, i=2;cout<<"Enter the upper limit:";cin>>N;cout<<"\nM=1";while ( i <= N ) {

M *= i;cout<<"x "<<i;i += 2; }

cout<<"="<<M<<endl;}

Page 88: 901131 Examples

Nested Loops#include <iostream.h>void main() {

int i,j=1;while(j<=4){

i=1;while(i<=4){cout<<i<<"\t";i++;

}j++;

cout<<endl;}

}

1 2 3 41 2 3 41 2 3 41 2 3 4

Page 89: 901131 Examples

Problem : Draw the following shape***************

#include <iostream.h>void main() {

int i=1;while (i<=5) {

int j=1;while (j<=i)

{cout<<'*';j++;}

cout<<endl;i++; }

}

Page 90: 901131 Examples

Do .. While Technique

General Form:do {.Statement(s); .

} while (Condition) ;

Statements will be executed repeatedly while condition is true. When the condition become false, the loop will be terminated and the execution sequence will go to the first statement after the loop.

The loop body will be executed at least one.

Page 91: 901131 Examples

Problem : Print the word “Amman” five times. Program

#include <iostream.h>void main() {

int i = 1;do {

cout<<"Amman\n";i++;

} while (i <= 5);}

Page 92: 901131 Examples

Execute the following program#include <iostream.h>void main() {

int Choice, Num;do {

cout<<"\n Enter the New Number";cin>>Num;if (Num % 2 == 0)

cout<<Num<<" is Even\n";else

cout<<Num<<" is Odd\n";cout<<"Select your choice.\n";cout<<"1- Exit. (Terminate the Run)\n";cout<<"2- Enter New Number to Check.\n";cin>>Choice;

} while (Choice != 1);}

Page 93: 901131 Examples

#include <iostream.h>void main() {

int Num; char Choice;do {

cout<<"\n Enter the New Number";cin>>Num;if (Num % 2 == 0)

cout<<Num<<" is Even\n";else

cout<<Num<<" is Odd\n";cout<<“Enter Y to continue, any other character to

exit \n”;cin>>Choice;

} while (Choice == ‘Y’);}

Page 94: 901131 Examples

#include <iostream.h>void main() {

int Num; char Choice;do {cout<<"\n Enter the New Number";cin>>Num;if (Num % 2 == 0)cout<<Num<<" is Even\n";elsecout<<Num<<" is Odd\n";cout<<"Enter Y to continue, any other character to exit \n";cin>>Choice;} while ((Choice == 'Y') || (Choice=='y'));

}

Page 95: 901131 Examples

Homework

Resolve all problems in the presentation 5 and 6 by using the three loop techniques: For, While, and Do … while Loops.

Page 96: 901131 Examples

11 21 2 41 2 4 8

for (int i=1;i<=4;i++){int x=1; for(int j=1;j<=i;j++)

{cout<<x<<“ “; x=x*2;} cout<<endl;}

Page 97: 901131 Examples

for (int i=1;i<=4;i++){for(int j=0;j<i;j++)

{int x=1;for( int k=1;k<=j;k++)

x=2*x;cout<<x<<“ “;}

cout<<endl;}

Page 98: 901131 Examples

Functions

Chapter 3

Page 99: 901131 Examples

Topics to be covered• C++ pre defined functions:

– Math library functions– Random function – Examples on rand with switch statments

• User Functions:– Function proto type– Function definition:

• Square, Cube examples• Examples on the four forms of functions, And their

meaning ( when to use each form):– void F(void)– void F(int)– int F(void)– int F(int)

Page 100: 901131 Examples

• Call by value & call By reference• Functions on arrays• Scope of variables &Global variables• Recursion :

– Factorial– Febonacci,– Sum of numbers from x to y

Page 101: 901131 Examples

• Math library functions:– ceil(x),floor(x)– fabs(x), fmod(x,y), pow(x,y),sqrt(x)– sin(x), cos(x), tan(x)

• These functions are of type double, and take also double arguments

• They belong to the library – #include <cmath>

Page 102: 901131 Examples

Examplescout<<ceil(5.2);ceil(0.1);ceil(-0.1);ceil(-1.1);floor(5.2);floor(0.1);floor(-0.1);floor(-1.1);ceil(5.2/3);floor(ceil(5.2/3));fabs(-17.231);fmod(5,3) ≡ 5%3fmod(4.2,2);fmod(5.1,2.5)fmod(7.7,2.5)

double Y;

Y=pow( 5,4);

Y=pow(5,-4);

Y=pow(5.2,3);

Y=pow(16,0.25);

Y=pow(0.01,0.5);

Y=pow(-4,0.5); runtime error

Y=pow(x*3/7,y-1);

Y=pow(floor(x/3),ceil(x/4));

Y=sqrt(9);

Y=sqrt(10);

Y=sqrt(0.09);

Y=sqrt(-16); runtime error

Page 103: 901131 Examples

#include <iostream.h>#include <cmath>

void main(){

double A,B,C,X,Y;cout<<"Enter a number :";cin>>X;Y=X/180*3.141592;A=sin(Y);B=cos(Y);C=tan(Y);cout<<“sin("<<X<<") = "<<A<<endl;cout<<"cos("<<X<<") = "<<B<<endl;cout<<"tan("<<X<<") = "<<C<<endl;

}

Page 104: 901131 Examples

Problem : Read any number from the user and print it is prime if it is, or not prime otherwise.

#include <iostream.h>#include <cmath>void main() {

bool Prime = true;int i, num;cout<<"Please enter the number:";cin>>num;for ( i=2; i<=sqrt(num); i++)

if (num%i==0) {Prime = false;break; }

if (Prime)cout<<num<<" is a Prime number\n";

elsecout<<num<<" is not a Prime number\n";

}

Page 105: 901131 Examples

Random number generator

• #include <cstdlib>• X=rand(); // gives a random number

// between 0.. 32767

Page 106: 901131 Examples

#include <iostream.h>#include <cstdlib>void main(){

int x;for( int i=1;i<=100;i++){x=rand();cout<<x<<endl;}

}

Page 107: 901131 Examples

Generate 20 random numbers between 0 - 9

#include <iostream.h>#include <cstdlib>void main(){

int x;for( int i=1;i<=20;i++){x=rand()%10;cout<<x<<endl;}

}

Page 108: 901131 Examples

20 numbers between 1 - 10#include <iostream.h>#include <cstdlib>void main(){

int x;for( int i=1;i<=20;i++){x=rand()%10+1;cout<<x<<endl;}

}

Page 109: 901131 Examples

Generate 10 integer random numbers between 5 - 7

Page 110: 901131 Examples

Using srand function#include <cstdlib>void main(){

int x,seed;cout<<"Enter the seed for the random generater ";cin>>seed;srand(seed);for( int i=1;i<=10;i++){x=rand();cout<<x<<endl;}

}

Page 111: 901131 Examples

Q: Write a program that generates 1200 random numbers between 1-6, and also counts the occurrence of each number?

Its expected that the occurrence of each number will be about 200 times.

But remember we are talking about random number. No exact values.

Page 112: 901131 Examples

#include <iostream.h>#include <cstdlib>void main(){ int x,count1=0, count2=0, count3=0, count4=0, count5=0, count6=0;

for( int i=1;i<=1200;i++){x=rand()%6 +1;if (x==1) count1++;if (x==2) count2++;if (x==3) count3++;if (x==4) count4++;if (x==5) count5++;if (x==6) count6++;cout<<x<<endl;}

cout<<1<<" : "<<count1<<endl;cout<<2<<" : "<<count2<<endl;cout<<3<<" : "<<count3<<endl;cout<<4<<" : "<<count4<<endl;cout<<5<<" : "<<count5<<endl; cout<<6<<" : "<<count6<<endl;}

Page 113: 901131 Examples

#include <iostream.h>#include <cstdlib>void main(){ int x,count[7]={0};

for( int i=1;i<=1200;i++){x=rand()%6 +1;if (x==1) count[1]++;if (x==2) count[2]++;if (x==3) count[3]++;if (x==4) count[4]++;if (x==5) count[5]++;if (x==6) count[6]++;cout<<x<<endl;}

for(i=1;i<=6;i++) cout<<i<<" : "<<count[i]<<endl;

}

A program to count the occurrence of each random number

Page 114: 901131 Examples

The same example using Switch statement

#include <iostream.h>#include <cstdlib>void main(){ int x,count[7]={0};

for( int i=1;i<=1200;i++){x=rand()%6 +1;switch(x) {case 1: count[1]++;

break;case 2: count[2]++; break;case 3: count[3]++; break;case 4: count[4]++; break;case 5: count[5]++;

break;case 6: count[6]++; }}for(i=1;i<=6;i++) cout<<i<<" : "<<count[i]<<endl;

}

Page 115: 901131 Examples

• Do the same prev. example, • Count the number of even numbers, and

the number of odd numbers.

Page 116: 901131 Examples

#include <iostream.h>#include <cstdlib>void main(){ int x,even=0,odd=0;

for( int i=1;i<=1200;i++){x=rand()%6 +1;switch(x) {case 1:case 3:case 5: odd++;

break;case 2:case 4:case 6: even++;}}cout<<"Even count is "<<even<<endl;cout<<"Odd count is "<<odd<<endl;

}

Page 117: 901131 Examples

#include <iostream.h>#include <cstdlib>void main(){

int x,count[7]={0};for( int i=1;i<=1200;i++){x=rand()%6 +1;count[x]++;

cout<<x<<endl;}

for(i=1;i<=6;i++) cout<<i<<" : "<<count[i]<<endl;

}

Page 118: 901131 Examples

User Defined Functions

• Write a function that calculates and returns the square value of a double number:

Page 119: 901131 Examples

#include <iostream.h>double square(double); // function prototype

void main( ){double x,y;cout<<“Enter a number :”;cin>>x;y=square(x);cout<<x<<“ squared = “<<y<<endl;}double square(double a){ double b;b=a*a;return b;}

Page 120: 901131 Examples

Another user defined function

• Write a program to calculate and print a rectangle area, the program should use a function to calculate and returns the area of a rectangle to the main program?

• This function should take the length and the width , and should return the area

Page 121: 901131 Examples

#include <iostream.h>double area(double,double); // function prototype

void main( ){double L,W,A;cout<<“Enter the length:”;cin>>L;cout<<“Enter the width:”;cin>>W;A=area(L,W);cout<<“The area of the recangle is “<<A;}

double area(double X,double Y){ double Z;Z=X*Y;return Z;}

Page 122: 901131 Examples

• Write a program that finds and prints the maximum of three integer numbers, The program should use a function to find the maximum value.

Page 123: 901131 Examples

#include <iostream.h>int max(int,int,int);

void main(){int x,y,z;cout<<"Enter 3 numbers please :";cin>>x>>y>>z;cout<<"The Maximum is "<<max(x,y,z)<<endl;

}

int max(int a,int b,int c){int m;m=a;if (m<b) m=b;if (m<c) m=c;return m;}

Page 124: 901131 Examples

#include <iostream.h>#include <cmath>bool prime(int);

void main(){int x;cout<<"Enter a number please :";cin>>x;if (prime(x))

cout<<x<<" is a prime number\n";else

cout<<x<<" is not a prime number\n";}

bool prime(int a){bool p=true;for(int i=2;i<=sqrt(a);i++) if (a%i==0) { p=false;

break;}

return p;}

Page 125: 901131 Examples

Build your own fabs function#include <iostream.h>double fabs(double);void main(void){

double x,y;cout<<"Enter a number ";cin>>x;y=fabs(x);cout<<"The absolute value of "<<x<<" is "<<y<<endl;

}double fabs(double m){

if (m>=0) return m;

elsereturn -m;

}

Page 126: 901131 Examples

Forms of functions• Functions that take inputs and returns output:

– double square(double), int max(int a, int b, int c) ….• Functions that take inputs but don’t return output

– void Printsum(int x,int y)• Functions that don’t take any inputs but returns an

output:• int Read_number(void);• Functions that don’t take and inputs and don’t

return any input• void Print_hello(void);

Page 127: 901131 Examples

Write a program that uses a function to calculate and print the sum of two numbers.#include <iostream.h>void print_sum(int,int);void main(){int x,y;cout<<“Enter two numbers please :”;cin>>x>>y;print_sum(x,y);}

void print_sum(int x,int y){int s;s=x+y;cout<<x<<“+”<<y<<“ = “<<s<<endl;}

Page 128: 901131 Examples

Write a program that reads two numbers and prints the sum of them,

This program should use a function to read the numbers and use another function to

calculate and print the sum of two numbers

Page 129: 901131 Examples

#include <iostream.h>void print_sum(int,int);int read_number(void);void main(){int x,y;x=read_number();y=read_number();print_sum(x,y);}

void print_sum(int x,int y){int s;s=x+y;cout<<x<<“+”<<y<<“ = “<<s<<endl;}

int read_number(void){int A;cout<<“Enter a number please “;cin>>A;return A;}

Page 130: 901131 Examples

Write a progam that uses a function to print a welcome message

#include <iostream.h>void print_welcome(void);void main(){print_welcome();}

void print_welcome(void){cout<<“Hello, Welcome in C++ functions\n”;}

Page 131: 901131 Examples

• Modify the previous example, make the main calls the print function 10 times

• Also, make the print_welcome function print a random message from 3 different messages

Page 132: 901131 Examples

#include <iostream.h>#include<cstdlib>void print_welcome(void);void main(){for(int i=1;i<=10;i++)

print_welcome();}

void print_welcome(void){int x=rand()%3;switch(x)

{case 0: cout<<“Hello \n”; break;case 1: cout<<“Welcome \n”;break;case 2: cout<<“Hi, how are u \n”;}

}

Page 133: 901131 Examples

Inputs for any function

• The inputs for a function could be:– constants: x=sqrt( 9);– Variables x=sqrt(y);– Expression x=sqrt(y+3*z);– Or even another function x=sqrt(ceil(y/3));

• This is valid for library functions , and user defined functions also

Page 134: 901131 Examples

Scope of variables with functions#include <iostream.h>int x=10; // global variablesint f1(int);void f2(int);int f3(void); // int f3();

void main(void){cout<<x<<endl;int x=15;cout<<x<<endl;cout<<::x<<endl;for (int i=1;i<3;i++){ int x=5; int y=x+::x; cout<<y<<" "<<x<<" "<<::x<<endl;}cout<<x<<endl;cout<<f1(x)<<endl;cout<<::x<<endl;}

Page 135: 901131 Examples

int f1(int a){

cout<<x<<endl;int x=13;cout<<x<<endl;f2(x);cout<<::x<<endl;return x+a;

}

void f2(int b){cout<<x<<endl;x=x-b;cout<<x<<endl;}

Page 136: 901131 Examples

Aliasing#include<iostream.h>int main(){

int x;int &y=x;x=5;int &z=y;cout<<x<<"\t"<<y<<"\t"<<z<<endl;y=7;cout<<x<<"\t"<<y<<"\t"<<z<<endl;y=x+z-3;cout<<x<<"\t"<<y<<"\t"<<z<<endl;return 0;

}

Page 137: 901131 Examples

Call By value & call By reference#include <iostream.h>int square(int);

void main(){

int x,y;cout<<"Enter a number ";cin>>x;y=square(x);cout<<x<<" squared is "<<y<<endl;

} int square(int a) // call by value { a=a*a; return a; }

Page 138: 901131 Examples

#include <iostream.h>void square(int &);

void main(){

int x;cout<<"Enter a number ";cin>>x;cout<<x<<" squared is “;

square(x);cout<<x<<endl;

} void square(int & a) // call by reference { a=a*a; }

Page 139: 901131 Examples

#include<iostream.h>void read_two_numbers(int &,int &);

void main(){int x,y;read_two_numbers (x,y);cout<<x<<" "<<y<<endl;}

void read_two_numbers (int & a,int &b){

cout<<“Enter two numbers please “ cin>>a>>b;}

Page 140: 901131 Examples

Static variables and default arguments

#include <iostream.h>void f(int x=10 );void main(){f();f(5);f(7);}

void f(int x){static int abc=17;abc++;cout<<abc<<"\t"<<x<<endl;}

Page 141: 901131 Examples

Recursive functions

• Factorial• Febonacci series• Sum between X, Y

Page 142: 901131 Examples

#include <iostream.h>int fact(int);void main(){

int x;cout<<"Enter a number to calculate its factorial ";cin>>x;cout<<x<<"! = "<<fact(x)<<endl;

}

int fact(int n){

if (n==1) return 1;

else return n*fact(n-1);

}

Recursive fact

Page 143: 901131 Examples

Recursive fact#include <iostream.h>int fact(int);void main(){

int x;cout<<"Enter a number to calculate its factorial ";cin>>x;cout<<x<<"! = "<<fact(x)<<endl;

}

int fact(int n){

if (n==1) {cout<<"Now returning fact 1\n";

return 1;}else{cout<<"Now calling fact "<<n-1<<endl; return n*fact(n-1);}

}

Page 144: 901131 Examples

#include <iostream.h>int fact(int);void main(){

int x;cout<<"Enter a number to calculate its factorial ";cin>>x;cout<<x<<"! = "<<fact(x)<<endl;

}

int fact(int n){

if (n==1) {cout<<"Now returning fact 1\n";

return 1;}else{cout<<"Now calling fact "<<n-1<<endl;int m= n*fact(n-1);cout<<"Returning "<<n<<"!="<<m<<endl;return m;}

}

Page 145: 901131 Examples

• Feb(0)=0• Feb(1)=1• Feb(n)=feb(n-1)+feb(n-2)

Page 146: 901131 Examples

#include <iostream.h>int feb(int);void main(){

int x;cout<<"Enter a number to calculate its febonacci ";cin>>x;cout<<"Feb("<<x<<") = "<<feb(x)<<endl;

}

int feb(int n){

if (n==0) return 0;elseif (n==1) return 1;elsereturn feb(n-1)+feb(n-2);}

Page 147: 901131 Examples

#include <iostream.h>int feb(int);void main(){

int x;cout<<"Enter a number to calculate its febonacci ";cin>>x;cout<<feb(x)<<endl;

}

int feb(int n){if (n==0) return 0;elseif (n==1) return 1;else return feb(n-1)+feb(n-2);}

Page 148: 901131 Examples

Febonacci using for#include <iostream.h>int feb(int);void main(){

int x;cout<<"Enter a number to calculate its febonacci ";cin>>x;cout<<feb(x)<<endl;

}

int feb(int n){int fn_2=0;int fn_1=1;int fn;for(int i=2;i<=n;i++) {fn=fn_2+fn_1; fn_2=fn_1; fn_1=fn; }return fn;}

Page 149: 901131 Examples

Sum of numbers from 1 to n#include <iostream.h>int sum(int);void main(){

int x;cout<<"Enter a number to calculate the sum ";cin>>x;cout<<“Sum of the series “<<sum(x)<<endl;

}

int sum(int n){

if (n==1) return 1;

else return n+sum(n-1);

}

Page 150: 901131 Examples

• Write a function that returns the sum of numbers from X to Y. The function should calculate the sum recursively

• ∑ i = y+ ∑ i i=x

y

i=x

y-1

Page 151: 901131 Examples

Sum of numbers from X to Y

#include <iostream.h>int sum(int,int);void main(){

int x,y;cout<<"Enter two numbers to calculate the sum ";cin>>x>>y;cout<<“Sum of the series “<<sum(x,y)<<endl;

}

int sum (int a, int b){

if (a==b) return b;

else return b+sum(a,b-1);

}

Page 152: 901131 Examples

ArrayArrayArray is a set of adjacent memory locations of the same data type. All of them have one name, which is the array name. each location has subscript number started by zero.

One Dimensional arrayOne Dimensional arrayData_Type array_name[How many elements] ;

Two Dimensional arrayTwo Dimensional arrayData_Type array_name[#Rows][#Columns] ;

Page 153: 901131 Examples

One Dimensional arrayOne Dimensional arrayint List[5];

100 30 10 -20 5

List[0] List[1] list[2] list[3] list[4]

Read ElementsList[0] = 100;List[1] = 30;List[2] = 10;List[3] = -20;List[4] = 5;

Print Elementsfor(i=0; i<5; i++)

cout<<List[i];

Page 154: 901131 Examples

Definitions and initial values

int X[4]={4,2,3,1}; int A[10]={0};int B[100]={1};int C[7]={1,2,6};int d[5];int E[ ]={4,6,2};

Page 155: 901131 Examples

Not accepted Statements

int A[4]={4,2,4,5,2};int E[ ];int n=5; int X[n];

Corrected by:const int n=5;int X[n];

Page 156: 901131 Examples

#include <iostream.h>void main() {

int A[5] = {10,20,15,100,30};

for (int i=0; i<5; i++)cout<<A[i]<<'\t';

for (i=0; i<5; i++) {cout<<"\nPlease Enter A["<<i<<"]:";cin>>A[i]; }

for (i=0; i<5; i++)cout<<A[i]<<'\t';

cout<<endl;}

Page 157: 901131 Examples

#include <iostream.h>void main() {

int A[5] = {10,20,15,100,30};

for (int i=0; i<5; i++)cout<<A[i]<<'\t';

for (i=0; i<5; i++) {cout<<"\nPlease Enter A["<<i<<"]:";cin>>A[i]; }

for (i=0; i<5; i++)cout<<A[i]<<'\t';

cout<<endl;}

Page 158: 901131 Examples

#include <iostream.h>void main() { const int Size = 10; char KeyBSym[Size]={ ')', '!', '@', '#', '$', '%', '^', '&', '*', '(' }; for (int i=0; i<Size; i++) cout<<"Shift + number "<<i<<" Give Symbol "<<KeyBSym[i]<<endl;}

Page 159: 901131 Examples

#include <iostream.h>const int S = 10;void main() {

int A[S];for(int i=0; i<S; i++) {

cout<<"\nEnter A["<<i<<"]:";cin>>A[i]; }

int PositiveSum = 0, EvenSum = 0,Gthan10_Count = 0;

for (i=0; i<S; i++) {if (A[i]>0)

PositiveSum += A[i];if (A[i]%2 == 0)

EvenSum += A[i];if (A[i]>10)

Gthan10_Count++;}cout<<"\nSummation of positive Elements: "<<PositiveSum;cout<<"\nSummation of Even Elements: "<<EvenSum;cout<<"\n# Element, which are greater than 10: "<<Gthan10_Count;cout<<endl;

}

Page 160: 901131 Examples

#include <iostream.h>const int S = 10;void main() {

int A[S];for(int i=0; i<S; i++) {

cout<<"\nEnter A["<<i<<"]:";cin>>A[i]; }

long Even_Position_Mul = 1, Odd_Position_Mul = 1;for (i=0; i<S; i++)

if(i%2==0)Even_Position_Mul *= A[i];

elseOdd_Position_Mul *=A[i];

cout<<"\nMultiplication of elements at Even position: "<<Even_Position_Mul; cout<<"\nMultiplication of elements at Odd position: "<<Odd_Position_Mul; cout<<endl;}

Page 161: 901131 Examples

Find the Maximum elementFind the Maximum element#include <iostream.h>const int Size = 10;void main() {

int Vector[Size];for(int i=0; i<Size; i++)

cin>>Vector[i];

for(i=0; i<Size; i++)cout<<Vector[i]<<'\t';

cout<<endl;

int Max = Vector[0];for(i=1; i<Size; i++)

if (Max<Vector[i])Max=Vector[i];

cout<<"\nMax= "<<Max<<endl;}

Page 162: 901131 Examples

SearchSearch#include <iostream.h>const int Size = 10;void main() {

int Vector[Size];for(int i=0; i<Size; i++)

cin>>Vector[i];cout<<endl;

int Element;cout<<"What is the element that you looking for";cin>>Element;

bool Found = false;for(i=0; i<Size; i++)

if(Element = = Vector[i]){Found = true;break; }

cout<<endl;if (Found)

cout<<Element<<" Found at position "<<i<<endl;else

cout<<Element<<" is not in the array \n";}

Page 163: 901131 Examples

Another version of search exampleAnother version of search example#include <iostream.h>const int Size = 10;void main() {

int Vector[Size];for(int i=0; i<Size; i++)cin>>Vector[i];cout<<endl;

int Element;cout<<"What is the element that you are looking for: ";cin>>Element;bool Found = false;for(i=0; i<Size; i++)if(Element == Vector[i]){cout<<Element<<" is found at position "<<i<<endl;Found=true; }

if (!Found)cout<<Element<<" is not in the array \n";

}

Page 164: 901131 Examples

Sort the elements:Sort the elements:#include <iostream.h>const int Size = 5;void main() {

int Vector[Size];for(int i=0; i<Size; i++)

cin>>Vector[i];

for(i=0; i<Size; i++)cout<<Vector[i]<<'\t';

cout<<endl;

for(i=0; i<Size - 1; i++)for(int j=i+1; j<Size; j++)

if (Vector[i]>Vector[j]) {int Temp = Vector[i];Vector[i] = Vector[j];Vector[j] = Temp;}

for(i=0; i<Size; i++)cout<<Vector[i]<<'\t';

cout<<endl; }

Page 165: 901131 Examples

build a swap function function

void swap(int & x,int & y){

int temp;temp=x;x=y;y=temp;

}

Page 166: 901131 Examples

Bubble sort using the swap function

#include <iostream.h>void swap(int &,int &);const int Size = 5;

void main() {int Vector[Size];for(int i=0; i<Size; i++)cin>>Vector[i];

for(i=0; i<Size - 1; i++)for(int j=i+1; j<Size; j++)if (Vector[i]>Vector[j]) swap(Vector[i],Vector[j]);

for(i=0; i<Size; i++)cout<<Vector[i]<<'\t';cout<<endl; }

void swap(int & x,int & y){

int temp;temp=x;x=y;y=temp;

}

Page 167: 901131 Examples

Arrays and Call by reference

• We can’t return the array using return statement.

• We need to use the call by reference technique.

• BUT when passing an array to a function, it is sent as call by reference.

• No need to declare it as int &[ ]

Page 168: 901131 Examples

Write a function that return the sum of an array#include <iostream.h>

int Arr_Sum(int [ ],int);void main( ){

int A[5]={2,3,4,5,6};int B[4]={5,3,1,7};cout<<"The sum of A is "<<Arr_Sum(A,5)<<endl;cout<<"The sum of B is "<<Arr_Sum(B,4)<<endl;

}int Arr_Sum(int x[ ],int size){int S=0;for(int i=0;i<size;i++) S=S+x[ i ];return S;}

Page 169: 901131 Examples

Functions to Read and print arrays

#include <iostream.h>void Arr_read(int [ ],int);void Arr_print(int[ ],int);void main(){

int A[5];int B[4];Arr_read(A,5);Arr_read(B,4);Arr_print(A,5);Arr_print(B,4);}

void Arr_read(int x[ ],int size){ for(int i=0;i<size;i++) {cout<<"Enter a number please "; cin>>x[i];}}

void Arr_print(int x[ ],int size){for(int i=0;i<size;i++) cout<<x[i]<<" ";cout<<endl;}

Page 170: 901131 Examples

Function to calculate the sum of two arrays#include <iostream.h>

void sum(int [ ],int [ ],int[ ],int);void main(){int a[4]={4,3,2,1};int b[4]={2,2,4,4};int c[4];sum(a,b,c,4);Arr_print(c,4);}

void sum(int x[ ],int y[ ],int z[ ],int s) {for (int i=0;i<s;i++) z[i]=x[i]+y[i];}

Page 171: 901131 Examples

cout statement with setw( )#include <iostream.h>#include <iomanip.h>void main(){for(int i=1; i<= 5;i++) // without using setw( ) cout<<i<<" "<<i*i<<" "<<i*i*i<<endl;

cout<<endl;

for(i=1; i<= 5;i++) // with using setw( ) cout<<setw(4)<<i<<setw(4)<<i*i<<setw(4)<<i*i*i<<endl;}

Page 172: 901131 Examples

Strings#include <iostream.h>void main(){

char n[10];char a[10]={'A','h','m','e','d'};for(int i=0; a[i]!=0 ; i++)

cout<<a[i]<<endl;cout<<endl;

}

Page 173: 901131 Examples

Q1 in the exam#include <iostream.h>void main(){

int a[4][3];for(int i=0;i<4;i++)

for(int j=0;j<3;j++){ cout<<"Enter a number "; cin>>a[i][j];}

for(int k=0;k<3;k++){

int s=0;for(int m=0;m<4;m++)

s=s+a[m][k];cout<<s<<endl;

}}

Page 174: 901131 Examples

Two Dimensional arrayTwo Dimensional arrayint Matrix[3][4];

30

Assign values to ElementsMatrix[0][1] = 30;Matrix[1][0] = 100;Matrix[1][2] = 10;Matrix[2][3] = -20;Matrix[2][0]=Matrix[1][2];

Print Elementsfor(i=0; i<3; i++){ for(j=0; j<4; j++) cout<<Matrix[i][j]<<“\t”; cout<<endl; }

100 10

10 -20

0 1 2 3

0

1

2

Page 175: 901131 Examples

int A[2][3] = { {1 ,2 , 3 },{10,20,30}};

int Matrix[3][4]= {{0,30 },{100,0,10},{0,0,0,-20}};

Page 176: 901131 Examples

#include <iostream.h>void main() {

int A[2][3] = {{1,2,3},{10,20,30}};int B[2][3] = {100,200,300,40,50,60};int C[2][3] = {{15,25},{105,205}};for( int i=0; i<2; i++){

for( int j=0; j<3; j++)cout<<A[i][j]<<'\t';

cout<<endl; }cout<<endl;for( i=0; i<2; i++){

for( int j=0; j<3; j++)cout<<B[i][j]<<'\t';

cout<<endl; }cout<<endl;for( i=0; i<2; i++){

for( int j=0; j<3; j++)cout<<C[i][j]<<'\t';

cout<<endl; }}

Page 177: 901131 Examples

#include <iostream.h>const int Rows = 3, Columns = 4;void main() {

int A[Rows][Columns];for (int i=0; i<Rows; i++)

for (int j=0; j<Columns; j++) {cout<<"\nEnter A["<<i<<"]["<<j<<"]:";cin>>A[i][j]; }

for (i=0; i<Rows; i++){for(int j=0; j<Columns; j++)

cout<<A[i][j]<<'\t';cout<<endl; }

}

Page 178: 901131 Examples

#include <iostream.h>int A_sum(int [ ][2],int);void main(){

int x[3][2]={6,5,4,3,2,1};int y[4][2]={5,4,3,2,3,4,1};cout<<"The sum of the array x is “ <<A_sum(x,3)<<endl;cout<<"The sum of the array y is “ <<A_sum(y,4)<<endl;

}int A_sum(int a[ ][2],int r){

int s=0;for(int i=0;i<r;i++)

for(int j=0;j<2;j++)s=s+a[i][j];

return s;}

Find The sum of 2-D arrays using functions`

Page 179: 901131 Examples

Diagonal SummationDiagonal Summation#include <iostream.h>const int Rows = 4, Columns = 4;void main() {

int A[Rows][Columns];for (int i=0; i<Rows; i++)

for (int j=0; j<Columns; j++) {cout<<"\nEnter A["<<i<<"]["<<j<<"]:";cin>>A[i][j]; }

int DSum = 0;

for (i=0; i<Rows; i++)DSum += A[i][i];

cout<<"Diagonal Sum = "<<DSum<<endl;}

Page 180: 901131 Examples

Inverse Diagonal SummationInverse Diagonal Summation#include <iostream.h>const int Rows = 4, Columns = 4;void main() {

int A[Rows][Columns];for (int i=0; i<Rows; i++)

for (int j=0; j<Columns; j++) {cout<<"\nEnter A["<<i<<"]["<<j<<"]:";cin>>A[i][j]; }

int DSum = 0;for (i=0; i<Rows; i++)

for (int j=0; j<Columns; j++)if ( i+j= = 3)

DSum += A[i][j];cout<<"Diagonal Sum = "<<DSum<<endl;}

Page 181: 901131 Examples

Lower Triangular MultiplicationLower Triangular Multiplication#include <iostream.h>const int Rows = 4, Columns = 4;void main() {

int A[Rows][Columns];for (int i=0; i<Rows; i++)

for (int j=0; j<Columns; j++) {cout<<"\nEnter A["<<i<<"]["<<j<<"]:";cin>>A[i][j]; }

long LTmul = 1;

for (i=1; i<Rows; i++)for(int j=0; j<i; j++)

LTmul *= A[i][j];

cout<<"Lower Traingular Mul = "<<LTmul<<endl;}

Page 182: 901131 Examples

Lower Triangular MultiplicationLower Triangular Multiplication#include <iostream.h>const int Rows = 4, Columns = 4;void main() {

int A[Rows][Columns];for (int i=0; i<Rows; i++)

for (int j=0; j<Columns; j++) {cout<<"\nEnter A["<<i<<"]["<<j<<"]:";cin>>A[i][j]; }

long LTmul = 1;

for (i=0; i<Rows; i++)for(int j=0; j<Columns,; j++)

if (i>j) LTmul *= A[i][j];

cout<<"Lower Traingular Mul = "<<LTmul<<endl;}

Page 183: 901131 Examples

Write a Program that copies an array to another

#include <iostream.h>const int R = 4, C= 3;void main() {

int A[R][C];int B[R][C];

for (int i=0; i<R; i++)for (int j=0; j<C; j++) {

cout<<"\nEnter A["<<i<<"]["<<j<<"]:";cin>>A[i][j]; }

for (i=0 ;i<R;i++) for(int j=0;i<C;j++) B[i][j]=A[i][j];

for (i=0; i<R; i++){for(int j=0; j<C; j++)

cout<<B[i][j]<<'\t';cout<<endl; }

}

Page 184: 901131 Examples

Write a function that copies a 2-D array to another

void copyA(int x[ ][3],int y[ ][3],int r){for(int i=0;i<r;i++) for(int j=0;j<3;j++) y[i][j]=x[i][j];}

Page 185: 901131 Examples

Write a Program that copies an array to another

#include <iostream.h>const int R = 4, C= 3;void main() {

int A[R][C];int B[R][C];

for (int i=0; i<R; i++)for (int j=0; j<C; j++) {

cout<<"\nEnter A["<<i<<"]["<<j<<"]:";cin>>A[i][j]; }

copyA(A,B,4);

for (i=0; i<R; i++){for(int j=0; j<C; j++)

cout<<B[i][j]<<'\t';cout<<endl; }

}

Page 186: 901131 Examples

Store the following symbols in the Store the following symbols in the array Symbol.array Symbol. * $ $ $

# * $ $

# # * $

# # # * #include <iostream.h>const int Rows = 4, Columns = 4;void main() {

char Symbol[Rows][Columns];for (int i=0; i<Rows; i++)

for (int j=0; j<Columns; j++)if (i == j)

Symbol[i][j] = '*';else if (i > j)

Symbol[i][j] = '#';else

Symbol[i][j] = '$';for (i=0; i<Rows; i++){

for(int j=0; j<Columns; j++)cout<<Symbol[i][j];

cout<<endl; } }

Page 187: 901131 Examples

Matrix Matrix SummationMatrix Matrix Summation#include <iostream.h>const int Rows = 4, Columns = 4;void main() {

int A[Rows][Columns], B[Rows][Columns], C[Rows][Columns];cout<<"\nEnter Matrix A elements:\n";for (int i=0; i<Rows; i++)

for( int j=0; j<Columns; j++)cin>>A[i][j];

cout<<"\nEnter Matrix B elements:\n";for (i=0; i<Rows; i++)

for( int j=0; j<Columns; j++)cin>>B[i][j];

for(i=0; i<Rows; i++)for(int j=0; j< Columns; j++)

C[i][j] = A[i][j] + B[i][j];for(i=0; i<Rows; i++){

for(int j=0; j<Columns; j++)cout<<C[i][j]<<'\t';

cout<<endl; }}

Page 188: 901131 Examples

Write a function to add two Arrays

void add(int x[ ][4],int y[ ][4],int z[ ][4],int r){

}

Page 189: 901131 Examples

Compute the average for 5 marks for 10 students

int marks [10][5];for(int i=0;i<10;i++) for(int j=0;j<5;j++){ cout<<“Enter mark”<<j+1<<“ for student”<<i+1;

cin>>marks[i][j];}float av[10];for(i=0;i<10;i++){ float sum=0;for(int j=0;j<5;j++) sum=sum+marks[i][j];av[i]=sum/5;} printing……

Page 190: 901131 Examples

int A[3][4], B[4][3];for(int i=0;i<3;i++) for(int j=0;j<4;j++) cin>>A[i][j];for(i=0;i<3;i++) for(int j=0;j<4;j++) B[ j][i]=A[i][j]Printing B ……..

Page 191: 901131 Examples

Function to calculate the Transpose of an array 3x4

void trans34(int x[3][4],int y[4][3]){for(int r=0;r<3;r++) for(int c=0;c<4;c++) y[c][r]=x[r][c];}

Page 192: 901131 Examples

HomeworkHomework

1- Write program to compute and print the result of Matrix A[n][n] multiplied by Matrix B[n][n] and store the result within Matrix C[n][n].

2- Write program to Compute and print the result of Matrix A[n][n] multiplied by Vector V[n] and store the result within Vector C[n].

Page 193: 901131 Examples

Calculate an accurate value for Pi

double Pi=0;for(int i=0;i<=1000;i++) if( i%2==0)

Pi=Pi+4.0/(2*i+1);else

Pi=Pi-4.0/(2*i+1);

Page 194: 901131 Examples

double pi;int t=1;for(int i=1;i<=1000;i=i+2)

{ pi=pi+t*4.0/i;t=t*-1;

}

Page 195: 901131 Examples

Strings

#include <iostream.h>void main(){

char n[10];char a[10]={'A','h','m','e','d'};for(int i=0; i<5 ; i++)

cout<<a[i]<<endl;}

Page 196: 901131 Examples

#include <iostream.h>void main(){char a[10]={'I','b','r','a','h','e','e','m‘};for(int i=0; a[i]!=0 ; i++)

cout<<a[i]<<endl;}

Page 197: 901131 Examples

#include <iostream.h>void main(){char a[10]={'A','h','m','e','d'};for(int i=0; a[i]!=0 ; i++){for(int j=0;j<i;j++)

cout<<" "; cout<<a[i]<<endl;}}

Page 198: 901131 Examples

#include <iostream.h>void main(){char a[10]=“Ahmed“;for(int i=0; a[i]!=0 ; i++){for(int j=0;j<i;j++)

cout<<" "; cout<<a[i]<<endl;}}

Page 199: 901131 Examples

#include <iostream.h>void main(){char a[10];cout<<"Enter a name : ";cin>>a;cout<<a<<endl;for(int i=0; a[i]!=0 ; i++){for(int j=0;j<i;j++)

cout<<' '; cout<<a[i]<<endl;}}

Page 200: 901131 Examples

#include <iostream.h>void main(){char a[10];char b[10];cout<<"Enter ur first name : ";cin>>a;cout<<"Enter ur second name : ";cin>>b;cout<<"Hello "<<a<<" "<<b<<endl;for(int i=0; a[i]!=0 ; i++){for(int j=0;j<i;j++)

cout<<' '; cout<<a<<endl;}}

Page 201: 901131 Examples

#include <iostream.h>void main(){char a[10];cout<<"Enter a name : ";cin>>a;cout<<a<<endl;for(int i=0; a[i]!=0 ; i++){for(int j=0;j<i;j++)

cout<<' '; cout<<a<<endl;}cout<<i<<endl;}

Page 202: 901131 Examples

Final exam question

• Write a function that returns the length of a string or array of characters.

• The function prototype is• int length(char[ ]);

Page 203: 901131 Examples

int length(char name[ ]){for(int i=0;name[i]!=0;i++);return i;}

Page 204: 901131 Examples

#include <iostream.h>void main(){char name[10];

cout<<"Enter ur name : ";cin>>name;

for(int i=0; name[i]!=‘\0’ ; i++);

for(int j=i-1;j>=0;j--) cout<<name[j];

cout<<endl;

}

Page 205: 901131 Examples

Write a program that prints the name inversed( from the last char to the first character

• See the prev. slide

Page 206: 901131 Examples

Pointers

#include <iostream.h>void main(){int x=5;int* y; // pointer to an integery=&x;cout<<x<<endl<<&x<<endl;cout<<y<<endl<<*y<<endl;}

Page 207: 901131 Examples

#include <iostream.h>void main(){char a[10]="Ahmad"; // prints Ahmedcout<<a<<endl;int b[10]={1,2,3,4,5};cout<<b<<endl; // prints the address of

//the first element in the array}

Page 208: 901131 Examples

#include <iostream.h>void main(){char a[10]="Ahmad"; // prints Ahmedcout<<a<<endl;int b[10]={1,2,3,4,5};cout<<b<<endl; // prints the address of

//the first element in the arrayint x=5;int* y; // pointer to an integery=&x;cout<<x<<endl<<&x<<endl;cout<<y<<endl<<*y<<endl;}

Page 209: 901131 Examples

1- do-while statement.2- nested for loop3- nested while statement4- math library functions.5- functions prototype and definitions.6- rand () and srand() functions7- scope rules (local, global and static variables)8- Recursion9- call by value and reference10- Inline function11- :: scope resolution operator.12- one dim array only ( definition and passing one dim array

to a function).