c++ Article

Document Sample
c++ Article Powered By Docstoc
					Chapter 3
      Input / output statements




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

   Using Visual C++ to write your program

1- Start  Programms  Microsoft Visual Studio 6  Microsoft Visual C++ 6
2- File  New  Files  C++ Source file  oK
3- Write your program using C++ statements
4- Compilation: Ctrl + F7 to see if the program has error's
5- Execution: to display the program’s result




                                                                      2
General form of C++ Program

#include <iostream.h>
void main() {
      .
      .
      C++ statements
      .
      .
}


    Remark: C++ language is case sensitive
                                             3
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;
}



                                                   4
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.
                                                           5
                        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
                                                          6
                         Data Types
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.)

                  Variable declaration
                   Type Variable_name
                                                                      7
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




                                                   8
Problem : Compute and print the average of three
numbers.

#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     9
 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;
       }

                                                          10
Examples on integer division

#include <iostream.h>
void main( )
{
int x;
x=1/3*3;        //    1/3=0
cout<<x<<endl;
x=1.0/3*3;
cout<<x<<endl;
}
                               11
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;
      }
                                              12
 Misleading examples

X= 7 > 5 > 3;
This expression gives false because its evaluated
  as follows
X=(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;
                                                  13
Priority

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




                                                   14
Examples on arithmetic operations

X= 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
……………………..
                                        15
Chapter 4
            Control structure




                                16
If Statement in C++

One way if
             if ( Condition )
                    statement;

             if ( Condition ) {
                    statements; }




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



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




                                                        18
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";
  }
                                                    19
If Statement in C++
Two way if
             if ( Condition )
                    statement;
             else
                    statement;



             if ( Condition ) {
                    statements; }
             else {
                    statements;}
                                    20
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";
 }
                                                  21
 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”;
       }
  }
                                                            22
Write a program that prints the fraction a/b in the
form c d/b
Example: 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;
}



                                                                      23
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;
}

                                                                    24
Condition
Condition: An expression that 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.



                                                          25
                  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


                                                                    26
                 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


                                                                27
       Evaluating Logical Expressions

• The truth table
(1) AND table

   &&       True      False
   True     True       False
   False    False     False




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


(3) NOT table
    !       True      False
             False    True

                               29
      Arithmetic  Relational  Logical

•   NOTES
1) A relational expression may contain arithmetic sub
     expressions,
 e.g. ( 3 + 7 ) < (12 * 4 )
       3 + 7 < 12 * 4
2) A logical expression may contain relational and
     arithmetic subexpressions,
e.g.
1-      x && y && ( a > b )
2-      (2 + t ) < (6 * w ) && ( p = =q )
                                                        30
                Operator Precedence
     Operator            Description           Precedence
()              parentheses                     Highest
+, – , !        unary plus, unary minus, Not
*, /, %
+, -            Binary plus, binary minus
<, <=, >, >=
== , !=         Equal, not equal
&&
||
=               Assignment                       Lowest


                                                            31
                         Examples

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


                16

                     4


            9        (This is the final result)
                                                  32
Find the value of the following expression

(9 + 3) - 6 / 3       + 5

 12

             2

       10`

                 15   (this is the final result)
                                                   33
      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)


                                                           34
Another examples

   X=true, Y=false, Z= true

X || Y && Z
  true

 X=true, Y=false, Z= false
X || Y && Z
  true
                               35
      Find the value of the following Expression

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)

                                                              36
    What is the output of the following code:


#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)<<endl;
  }




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


      #include <iostream.h>
      void main() {
             int Num;
             cout<<"\nPlease Enter Number:";
             cin>>Num;
             if (Num < 0)
                      cout<<"\nNegative\n";
             else
                      cout<<"\nPositive\n";
      }




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


#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;
}



                                                           39
Problem : Read three numbers to print the smallest one.

  #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;
  }


                                                          40
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;
                   else
                              cout<<c;
        else
                   if (b < c)
                              cout<<b;
                   else
                              cout<<c;
        cout<<endl;
}
                                                 41
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”.



  #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";}
  }


                                                                     42
Example on dangling else

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




                           43
Another idea

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




                           44
Assignment Statement

Simple 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;
                                                45
Increment and Decrement

Postfix
C++;      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 .




                                                              46
What is the output of the following C++ Source
Code
   #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";                 47
         }
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;
                                  48
Loop (iteration statements)
used to repeat sub code number of times


There are three loop techniques:
1- For Loop.
2- While Loop.
3- Do … While Loop


                                          49
For Loop Technique

General 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.                                                      50
Problem : Print the word “Amman” five times.


#include <iostream.h>
void main( ) {
         for (int i=1; i<=5; i++)
                    cout<<"\nAmman";
}


Another Program
#include <iostream.h>
void main() {
         for (int i=5; i>=1; i--)
                    cout<<"\nAmman";
}

                                               51
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;
}




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



 #include <iostream.h>
 void main() {
       for (int m=20; m>=2; m-=3)
              cout<<m<<“\t”;
       cout<<endl;
 }



                                             53
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;
  }


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


#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;
}




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

   #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;
   }


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

   #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;
                    }
   }

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


#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; }
}

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



     #include <iostream.h>
     void main() {
            int S=0;
            for (int i=1; i<=5; i++)
                     S+=i;
            cout<<"\nS="<<S<<endl;
     }



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


      #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;
      }



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

  #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;
  }



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



         #include <iostream.h>
         void main( ) {
                int Fact=1;
                for (int j=5; j>=1; j--)
                         Fact *= j;
                cout<<"5!= "<<Fact<<endl;
         }



                                                   62
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 ???


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

   #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;
   }
                                                   64
Problem : Compute and Print Mn
   #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;
      }                                           65
   Homework


    Write a program that finds Mn for
    positive & negative n




                                        66
Nested for

Print the following shape
*****
*****
*****
*****
*****
cin>>n;
for(int i=1;i<=n;i++)
 { for (int j=1;j<=n;j++)
    cout<<“*”;
   cout<<endl;
  }
                            67
                   Nested for
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;
                  }
      }                                        68
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; }
   }
                                           69
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;}
                                               70
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;
  }




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

     1     2     3     4      5
     2     4     6     8      10
     3     6     9     12     15
     4     8     12    16     20
     5     10    15    20     25




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




                               73
Problem : Read any number from the user and print it
is prime if it is, 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";
       else
                cout<<num<<" is not a Prime number\n";
}
                                                         74
 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;
}
                              75
#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;
}


                              76
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.                                     77
Problem : Print the word “Amman” five times.
Program


 #include <iostream.h>
 void main() {
        int i=1;
        while (i<=5)
                {
                cout<<"Amman\n";
                i++;
                }
 }

                                               78
#include <iostream.h>
void main() {
   int i=1;
   while (i++<=5)
        {
        cout<<"Amman\n";
        }
  cout<<i<<endl;
}
                           79
Problem : Print the following numbers.
          1     3     5    7   9   11

#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.
                                                            80
Problem : Print the following numbers.
      20 17 14 … n

#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
                                                           81
have to do to produce the same output.
Problem : Read five numbers from the user and print
the positive numbers only.

#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.
                                                       82
Problem : Compute and print S, Where
          Sum = 1+ 3+ 5+ 7+ … + n

 #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;
 }

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

 #include <iostream.h>
 void main() {
        int Num, Sum=0, i=1;
        while ( i <= 10 ) {
                cout<<"Enter the next one:";
                cin>>Num;
                if (Num % 3 == 0)
                       Sum += Num;
                i++;
                 }
        cout<<"\nSum="<<Sum;
    }
                                                    84
Problem : Compute and Print the value of M where
M=2*4*6*…*n


#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;
}

                                                   85
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++; }
}                                    86
  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.
                                                                                 87
Problem : Print the word “Amman” five times.


    #include <iostream.h>
    void main() {
           int i = 1;
           do {
                   cout<<"Amman\n";
                   i++;
           } while (i <= 5);
    }



                                               88
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);
                                                         89
}
#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’);
}

                                                              90
#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') || (Choice=='y'));
}

                                                                       91
1
12
124
1248

for (int i=1;i<=4;i++)
  {int x=1;
  for(int j=1;j<=i;j++)
       {cout<<x<<“ “;
        x=x*2;}
 cout<<endl;}
                          92
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;}

                                93
Chapter 5
  Functions




              94
Topics to be covered
   C++ pre defined functions:
     Math library functions
     Random function
     Examples on rand with switch statements
   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)

                                                         95
   Call by value & call By reference
   Functions on arrays
   Scope of variables &Global variables
   Recursion :
       Factorial
       Febonacci,
       Sum of numbers from x to y

       Mohd Halabi
       0788895916




                                           96
   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>

                                                   97
                             double y;
cout<<ceil(5.2);
ceil(0.1);                   Y=pow( 5,4);
ceil(-0.1);
                             Y=pow(5,-4);
ceil(-1.1);       Examples
floor(5.2);                  Y=pow(5.2,3);
floor(0.1);
                             Y=pow(16,0.25);
floor(-0.1);
floor(-1.1);                 Y=pow(0.01,0.5);
ceil(5.2/3);
                             Y=pow(-4,0.5);     runtime error
floor(ceil(5.2/3));
fabs(-17.231);               Y=pow(x*3/7,y-1);
fmod(5,3) ≡ 5%3
                             Y=pow(floor(x/3),ceil(x/4));
fmod(4.2,2);
fmod(5.1,2.5)                Y=sqrt(9);
fmod(7.7,2.5)
                             Y=sqrt(10);
                             Y=sqrt(0.09);
                                                            98
                             Y=sqrt(-16); runtime error
#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;
}                                     99
  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";
       else
                cout<<num<<" is not a Prime number\n";
}
                                                         100
Write a program to generate the
following output.



             1
             12
             124
             1248




                                  101
Random number generator

   #include <cstdlib>
   X=rand();      // gives a random number
             // between 0.. 32767




                                              102
   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;}
}

                                103
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;}
}
                            104
Homework


  Generate 10 integer random
    numbers between 5 - 7




                               105
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;}
}

                                                       106
           Homework

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.

                                         107
#include <iostream.h>
#include <cstdlib>             A program to count
void main()
{ int x,count[7]={0};
                               the occurrence of
   for( int i=1;i<=1200;i++)   each random number
   {
   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;                108
}
#include <iostream.h>
#include <cstdlib>
void main()
{ int x,count[7]={0};
   for( int i=1;i<=1200;i++) The same example using
   {
   x=rand()%6 +1;            Switch statement
   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;
}                                                     109
   Do the same prev. example, and Count the
    number of even numbers, and the number of
    odd numbers.




                                            110
#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;
}
                                         111
#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;
}
                                       112
User Defined Functions

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




                                                   113
#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;
}




                                               114
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


                                                   115
#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;
}
                                                    116
   Write a program that finds and prints the
    maximum of three integer numbers, The
    program should use a function to find the
    maximum value.




                                                117
#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;}
                                               118
#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;}                                       119
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;
   else
         return -m;
 }
                                                          120
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);

                                                               121
  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;
}
                                              122
Question

 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




                                             123
#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;
}                                  124
 Write a program 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”;
}                                            125
   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




                                               126
#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”;
   }
}
                                       127
    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


                                                      128
Scope of variables with functions
 #include <iostream.h>
 int x=10; // global variables
 int 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;
 }                                   129
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;
}                     130
  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;
}

                                      131
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; }
                                        132
#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;
 }                                            133
#include<iostream.h>
void read_n(int &,int &);

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

void read_n(int & a,int &b)
{
  cout<<“Enter two numbers please “
  cin>>a>>b;
}
                                      134
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;
 }                                                   135
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 &[ ]


                                                 136
#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);             Read and print arrays
   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;
}                                                     137
Recursive functions
   Factorial
   Fibonacci series
   Sum between X, Y




                       138
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)
         return 1;
   else
       return n*fact(n-1);
}
                                                         139
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);
    }
                                                          140
}
#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;
    }
}
                                                          141
   Feb(0)=0
   Feb(1)=1
   Feb(n)=feb(n-1)+feb(n-2)




                               142
#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;
else
if (n==1) return 1;
else
return feb(n-1)+feb(n-2);
}


                                                          143
Fibonacci 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;                                                144

}
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);
}
                                                    145
   Write a function that returns the sum of
    numbers from X to Y. The function should
    calculate the sum recursively
    y        y-1
   ∑ i = y+ ∑ i
    i=x      i=x




                                               146
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);
}                                                     147
 Arrays

Chapter 6



            148
Array
Array 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 array
Data_Type array_name[How many elements] ;


Two Dimensional array
Data_Type array_name[#Rows][#Columns] ;




                                                                                          149
One Dimensional array
int List[5];

                      100       30        10        -20        5
                     List[0]    List[1]   list[2]   list[3]   list[4]




               Read Elements                   Print Elements
               List[0] = 100;                  for(i=0; i<5; i++)
               List[1] = 30;                             cout<<List[i];
               List[2] = 10;
               List[3] = -20;
               List[4] = 5;




                                                                          150
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};



                                 151
Not accepted Statements
int A[4]={4,2,4,5,2};

int n=5;
int X[n];

Corrected by:
const int n=5;
int X[n];
                          152
#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;
}
                                                    153
#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;
}
                                                    154
#include <iostream.h>
const int Size = 10;
void main() {
  char KeyBSym[Size]={ ')', '!', '@', '#', '$', '%', '^', '&', '*', '(‘ };
  for (int i=0; i<Size; i++)
      cout<<"Shift + number "<<i<<" Give Symbol "<<KeyBSym[i]<<endl;
}




                                                                             155
#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;                                                   156

}
#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];
                   else
                            Odd_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;
}
                                                                         157
Find 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;
}
                                           158
Sort the elements: not for the exam
#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';                      159
        cout<<endl; }
Search
#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";}       160
Another 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";
}                                                                     161
  Two Dimensional array
  int Matrix[3][4];

                             0       1        2        3

                      0             30
                      1     100              10
                      2     10                        -20




Assign values to Elements
Matrix[0][1] = 30;                Print Elements
Matrix[1][0] = 100;               for(i=0; i<3; i++){
Matrix[1][2] = 10;                    for(j=0; j<4; j++)
Matrix[2][3] = -20;                         cout<<Matrix[i][j]<<“\t”;
Matrix[2][0]=Matrix[1][2]             cout<<endl; }

                                                                        162
#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; }                   163

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

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




                                      164
#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; }
}

                                                               165
    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++)
               DSum += A[i][i];

       cout<<"Diagonal Sum = "<<DSum<<endl;                166
}
Lower 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;       167

}
Store the following symbols in the 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; } }                                    168
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; }                                  169

}
 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……                                       170
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 ……..

                        171
Homework


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

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




                                                  172
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);



                                     173
double pi;
int t=1;
for(int i=1;i<=1000;i=i+2)
  { pi=pi+t*4.0/i;
  t=t*-1;
  }



                             174
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];
}
                                             175
#include <iostream.h> Find The sum of 2-D
int A_sum(int [ ][2],int);
                          arrays using functions`
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;                                        176
}
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;
}
                                      177
#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;
}

                                                178
#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;
}
}

                                    179
#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;
}

                              180
#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;
                              181
}
Chapter 7
   Pointers




              182
Reference Variable
Reference Variable is alternative name to the variable and it must be
initialized.



  #include <iostream.h>
  void main() {
         int a=10, &b=a;
         cout<<"a="<<a<<"b="<<b<<endl;
         ++a;
         cout<<"a="<<b<<endl;
         b += 10;
         cout<<"a="<<a<<endl;
  }

                                                                        183
Pointer
Pointer is a memory location, which contains a memory address of another
memory location, which belong to a variable. We say that the pointer points to
the variable.

 #include <iostream.h>
 void main() {
        int a = 10;                                  ----------
        int *ptr = &a;                  12FF7C       10           a
        cout<<ptr<<endl;                             ----------
        cout<<&a<<endl;
                                                     ----------
        cout<<*ptr<<endl;               12FB8D       12FF7C       ptr
        cout<<a<<endl;                               ----------
 }

                                                                             184
 Example 1
#include <iostream.h>
void main() {
       int a = 10, b = 20;
       int *ptr_a, *ptr_b;
       ptr_a = &a;
       ptr_b = &b;
       cout<<"a="<<*ptr_a<<"b="<<*ptr_b<<endl;
       a += 10;
       b += 20;
       cout<<"a="<<*ptr_a<<"b="<<*ptr_b<<endl;
       ++*ptr_a;
       ++*ptr_b;
       cout<<"a="<<a<<"b="<<b<<endl;
       ptr_a = ptr_b;
       cout<<"b="<<*ptr_a<<endl;                 185
}
Example 2 (String)
                                            St_name
                                    -----
                                     A
                                    -----
#include <iostream.h>                H
                                    -----
void main() {                        m
       char *St_name;               -----
       St_name = "Ahmad Ali";         a
       cout<<endl<<St_name<<endl;   -----
}                                     d
                                    -----

                                    -----
                                     A
                                    -----
                                     L
                                    -----
                                              186
                                      i
 Example 3 (String)
                                           -----
                                            A      St_name[0]
                                           -----
                                            H      St_name[1]
#include <iostream.h>
                                           -----
void main() {                               m      St_name[2]
       char St_name[20];                   -----
       cout<<"Please enter your name: ";     a     St_name[3]
       cin.getline(St_name,20,'\n');       -----
                                             d     St_name[4]
       cout<<endl<<St_name<<endl;
                                           -----
}                                                  St_name[5]
                                           -----
                                            A      St_name[6]
                                           -----
                                            L      St_name[7]
                                           -----
                                                         187
                                             i     St_name[8]
   Example 4 (array name is a static pointer)
                                                           -----
                                                      B1    F1      Vector
#include <iostream.h>                                      -----
void main() {                                         B2    F1        ptr
       float Vector[5] = {1.2, 2.2, 3.2, 4.2, 5.2};        -----
       float *ptr;
                                                           -----
       ptr = Vector;
       for (int i=0; i<5; i++)                             -----
                      {                               F1    1.2    Vactor[0]
               cout<<"\n"<<*ptr;                           -----
                                                      F2    2.2    Vactor[1]
               ++ptr; }
                                                           -----
}                                                                  Vactor[2]
                                                      F3    3.2
                                                           -----
                                                      F4    4.2    Vactor[3]
                                                           -----
                                                                        188
                                                      F5    5.2    Vactor[4]
Pointers and Functions
 #include <iostream.h>
 void exchange(int *px, int *py);
 void main()
 { int a=10, b=20;
   cout<<a<<“ “<<b<<endl;
   exchange(&a, &b);
   cout<<a<<“ “<<b<<endl; }
   void exchange(int *px, int *py)
  { int temp;
    temp=*px;
    *px= *py;
    *py=temp
   }

                                     189
 Pointers and Functions
#include <iostream.h>
void find_max(int *px, int a[]);
void main( )
{ int a[10]={-1, 3, 20, 4, 5, 3, 1, -2, 70, 8};
  int max;
  find_max(&max, a);
  cout<<“The maximum number in the array=“<<max<<endl;
 }
 void find_max(int *px, int a[])
 {
 int i;
 *px=a[0];
 for (i=1; i<10; i++)
 if (*px<a[i]) *px=a[i];
 }



                                                         190
Arrays and Pointers
 #include<iostream.h>
 void main( )
 {
 int a[10]={1,5, 7, 4, 3, 2, 8, 9, 11, 12};
 int *p;
 p = a;
 for (int i=0; i<10; i++)
 cout<<a[i]<<endl;
 cout<<endl;
 for (i=0; i<10; i++)
 { cout<<*p<<endl;
   p++; }
 }

                                              191
Example 2: write a program to compare two arrays if they are
equivalent or not.

  #include <iostream.h>
  void main( )
  {
    int a[5]={1, 3, 5, 7, 9};
    int b[5]={1, 3, 5, 8, 9};
    bool flag=true;
    for (int i=0; i<5; i++)
    {
    if (*(a+i)!=*(b+i)
   { flag = false; break; }
   }
              if (flag) cout<<“Tow arrays are equivalent “; else
              cout<<“Tow arrays are not equivalent”;
    }


                                                                   192
Array of Pointers
 #include<iostream.h>
  void main( )
 {
   int *p1[10];
   int a=10, b=20; c=30;
   p1[0]=&a;
   p1[1]=&b;
   p1[2]=&c;
   for (int i=0;i<3;i++)
   cout<<*p1[i]<<endl;
  }


                           193

				
DOCUMENT INFO
Shared By:
Tags:
Stats:
views:10
posted:7/14/2012
language:English
pages:193