Sei sulla pagina 1di 36

ME 515 Mechatronics 11/9/2006

ME 515 Mechatronics

Introduction to C++
Asanga Ratnaweera
Department of Mechanical Engineering
Faculty of Engineering
University of Peradeniya
Tel: 081239 (3627)
Email: asangar@pdn.ac.lk

Introduction to C++
Programming
„ C++
{ Improves on many of C's features
{ Has object-oriented capabilities
„ Increases software quality and reusability
{ Developed by Bjarne Stroustrup at Bell Labs in
1980
„ Called "C with classes"
„ C++ (increment operator) - enhanced version
of C
{ Superset of C
„ Can use a C++ compiler to compile C
programs
„ Gradually evolve the C programs to C++
Sem 7 Asanga Ratnaweera, Department of 2
Mechanical Engineering

1
ME 515 Mechatronics 11/9/2006

Introduction to C++
Programming
„ Output in C++
{ Included in iostream.h header file
{ cout - standard output stream (connected to screen)
{ << stream insertion operator ("put to")
{ cout << "hi";
„ Puts "hi" cout, which prints it on the screen
„ End line
{ endl;
{ Stream manipulator - prints a newline and flushes output
buffer
„ Some systems do not display output until "there is
enough text to be worthwhile"
„ endl forces text to be displayed
„ Cascading
{ Can have multiple << or >> operators in a single statement
cout << "Hello " << "there" << endl;

Sem 7 Asanga Ratnaweera, Department of 3


Mechanical Engineering

Basic components of a
simple C++ Program
// Program: Display greetings
Preprocessor
/* Author(s): A.B.C. Dissanayake
directives
Date: 1/24/2001*/ Comments
#include <iostream>

using namespace std; Provides simple access


Function
named int main() {
main() cout << "Hello world!" << endl;
indicates return 0;
start of }
program
Insertion
Function
Ends executions statement
of main() which ends
program
Sem 7 Asanga Ratnaweera, Department of 4
Mechanical Engineering

2
ME 515 Mechatronics 11/9/2006

Introduction to C++
Programming
// Program : Program01.cpp
// First program in C++.
#include <iostream.h>
// function main begins program execution
int main()
{
cout << "Welcome to C++!”;

return 0; // indicate that program ended successfully


} // end function main

Sem 7 Asanga Ratnaweera, Department of 5


Mechanical Engineering

Visual C++ Editors


„ Click new on file menu to create a new file
„ Select file tab on new dialogue box

„ Select C++ Source File


„ Click OK
„ Write the code
„ Save with the
extension cpp

Sem 7 Asanga Ratnaweera, Department of 6


Mechanical Engineering

3
ME 515 Mechatronics 11/9/2006

Visual C++ Editors


„ To compile a program
{ Press Ctrl+F7
„ To build a program
{ Press F7
„ This will straight away compile and link
a program
„ To execute a program
{ Press Ctrl+F5
„ This will straight away compile and link
and execute a program
„ To run a program
{ Press F5
„ All these commands are available in
Build Minibar

Sem 7 Asanga Ratnaweera, Department of 7


Mechanical Engineering

Introduction to C++
Programming
// Program : Program02.cpp
// Printing a line with multiple statements.
#include <iostream>
iostream>
#include <cstdio>
using namespace std;
// function main begins program execution
int main()
{
cout << "Welcome ";
cout << "to C++!\n“<<endl;
getchar(); // program waits until key board input is given
return 0; // indicate that program ended successfully
} // end function main

Sem 7 Asanga Ratnaweera, Department of 8


Mechanical Engineering

4
ME 515 Mechatronics 11/9/2006

Escape sequences
Escape Description
Sequence
\n Newline. Position the screen cursor to the
beginning of the next line.
\t Horizontal tab. Move the screen cursor to
the next tab stop.
\r Carriage return. Position the screen cursor
to the beginning of the current line; do not
advance to the next line.
\a Alert. Sound the system bell.
\\ Backslash. Used to print a backslash
character.
\" Double quote. Used to print a double quote
character.
Sem 7 Asanga Ratnaweera, Department of 9
Mechanical Engineering

A Simple Program:
Printing a Line of Text
// Program : Program03.cpp
// Printing multiple lines with a single statement
#include <iostream>
iostream>
#include <cstdio> >
using namespace std;
// function main begins program execution
int main()
{
cout <<" \t\t Welcome to C++! \n\n“ <<endl; // Tabs and new line
cout <<“ My First Programme \a“ <<endl; // Alert sound
cout <<“ \t\t\t\t\"Bye\“ "<<endl; // double quotation
getchar();
return 0; // indicate that program ended successfully

} // end function main

Sem 7 Asanga Ratnaweera, Department of 10


Mechanical Engineering

5
ME 515 Mechatronics 11/9/2006

C++ Data Types

char Characters
short
int Numbers without fractions
long (integers)

float
double Numbers with fractions
(floating-point numbers)
long double

String Non-numbers

Sem 7 Asanga Ratnaweera, Department of 11


Mechanical Engineering

Type Name Bytes Other Name Range of Values


system
int * signed integer system dependent
dependent
system
unsigned int * unsigned integer system dependent
dependent
char 1 signed character -128 to 127
unsigned char 1 unsigned character 0 to 255
short 2 signed short integer -32,768 to 32,767
unsigned short 2 unsigned short integer 0 to 65,535
-2,147,483,648 to
long 4 signed long integer
2,147,483,647
unsigned long 4 unsigned long int 0 to 4,294,967,295
float 4 none 3.4E +/- 38 (7 digits)
double 8 none 1.7E +/- 308 (15 digits)
long double 10 none 1.2E +/- 4932 (19 digits)
bool 1 bit boolean 0 to 1
* signed means the number can be positive or negative.
Sem 7 Asanga Ratnaweera, Department of 12
Mechanical Engineering

6
ME 515 Mechatronics 11/9/2006

C++ Programming
„ Variables
{ Location in memory where value can be stored
{ Common data types
„ int - integer numbers
„ char - characters
„ double - floating point numbers
{ Declare variables with name and data type before use
int integer1;
int integer2;
int sum;
{ Can declare several variables of same type in one
declaration
„ Comma-separated list
int integer1, integer2, sum;
Sem 7 Asanga Ratnaweera, Department of 13
Mechanical Engineering

C++ Programming
„ Variables
{ Variable names (identifier)
{ Series of characters (letters, digits,
underscores)
{ Cannot begin with a digit
{ Case sensitive
{ Should not be a keyword

Sem 7 Asanga Ratnaweera, Department of 14


Mechanical Engineering

7
ME 515 Mechatronics 11/9/2006

C++ Programming
„ Input
{ cin - standard input object (connected to
keyboard)
{ >> stream extraction operator ("get from")

{ cin >> myVariable;

„ Gets stream from keyboard and puts it


into myVariable

Sem 7 Asanga Ratnaweera, Department of 15


Mechanical Engineering

#include <iostream>
iostream>
#include <cstdio >
using namespace std;
// programme to add two user input variables
int main()
{
int integer1; // first number to be input by user
int integer2; // second number to be input by user
int sum; // variable in which sum will be stored
cout << "Enter first integer = "; // prompt
cin >> integer1; // read an integer

cout << "Enter second integer = "; // prompt


cin >> integer2; // read an integer

sum = integer1 + integer2; // assign result to sum

cout << "Sum is " << sum << endl; // print sum
getchar();
return 0; // indicate that program ended successfully

}
Sem 7 Asanga Ratnaweera, Department of 16
Mechanical Engineering

8
ME 515 Mechatronics 11/9/2006

#include <iostream>
iostream>
#include <cstdio> >
using namespace std;
// programme to add two user input variables
int main()
{
double value1; // first number to be input by user
double value2; // second number to be input by user
double sum; // variable in which sum will be stored
cout << "Enter first integer = "; // prompt
cin >> value1; // read an integer

cout << "Enter second integer = "; // prompt


cin >> value2; // read an integer

sum = value1 + value2; // assign result to sum

cout << "Sum is " << sum << endl; // print sum
getchar();
return 0; // indicate that program ended successfully

}
Sem 7 Asanga Ratnaweera, Department of 17
Mechanical Engineering

C++ Programming
„ Arithmetic calculations
{ Multiplication *

{ Division /

„ Integer division truncates remainder


{ 7/5 evaluates to 1
{ Modulus operator %
„ Modulus operator returns remainder
{ 7%5 evaluates to 2

Sem 7 Asanga Ratnaweera, Department of 18


Mechanical Engineering

9
ME 515 Mechatronics 11/9/2006

#include <iostream>
iostream>
#include <cstdio>>
using namespace std;

// programme to add two user input variables


int main()
{
double value1; // first number to be input by user
double value2; // second number to be input by user
double ratio; // variable in which sum will be stored
cout << "Enter first integer = "; // prompt
cin >> value1; // read an integer

cout << "Enter second integer = "; // prompt


cin >> value2; // read an integer

ratio = value1/value2; // assign result to sum

cout << “The ratio is " << ratio << endl; // print sum
getchar();
return 0; // indicate that program ended successfully

Sem 7} Asanga Ratnaweera, Department of 19


Mechanical Engineering

#include <iostream>
iostream>
#include <cstdio> >
using namespace std;
// programme to add two user input variables
int main()
{
int value1; // first number to be input by user
int value2; // second number to be input by user
int rem; // variable in which sum will be stored
cout << "Enter first integer = "; // prompt
cin >> value1; // read an integer

cout << "Enter second integer = "; // prompt


cin >> value2; // read an integer

rem = value1%value2; // assign result to sum

cout << “The remainder is " << rem << endl; // print sum
getchar();
return 0; // indicate that program ended successfully

}
Sem 7 Asanga Ratnaweera, Department of 20
Mechanical Engineering

10
ME 515 Mechatronics 11/9/2006

Equality and Relational


Operators
Standard C++ Example Meaning
operator equality
> > x>y x is greater than y
< < x<y x is less than y
≥ >= x >= y x is greater than or equal to y
≤ <= x <= y x is less than or equal to y
= = x=y x is assigned with y
= == x == y x is equal to y
≠ != x != y x is not equal to y

Sem 7 Asanga Ratnaweera, Department of 21


Mechanical Engineering

if Selection Structure
„ Selection structure
{ Choose among alternative courses of action

{ If the condition is true


„ Print statement executed, program continues to
next statement
{ If the condition is false
„ Print statement ignored, program continues
{ Indenting makes programs easier to read
„ C++ ignores whitespace characters (tabs, spaces,
etc.)

Sem 7 Asanga Ratnaweera, Department of 22


Mechanical Engineering

11
ME 515 Mechatronics 11/9/2006

#include <iostream>
iostream>
#include <cstdio> >
using namespace std;
int main()
{
int num; // first number to be read from user
cout << "Enter an integer variable : “;
cin >> num;
// num % 2 computes the remainder when num is divided by 2
if ( num % 2 == 0 )
{
cout << num << “ \t is an Even Number" <<endl;
cout << “Enter another number" <<endl;
}
else
{
cout << num << " \t is Odd Number“<< endl;
cout << “ Enter another number" <<endl;
}
getchar();
return 0;
Sem 7 Asanga Ratnaweera, Department of 23
} Mechanical Engineering

#include <iostream>
iostream>
#include <cstdio>
>
using namespace std;

// simple if statement
int main()
{
int number;
cout<<"Enter an integer number" <<endl;
cin>> number;
if (number == 1)
cout<<"You entered 1.“<<endl;
else if (number > 1)
cout<<"That number is greater than 1.“ <<endl;
else if (number < 1)
cout<< "That number is less than 1.“ <<endl;
else
cout<<"That wasn't a number.“ <<endl;
getchar()
return 0;
Sem 7 } Asanga Ratnaweera, Department of 24
Mechanical Engineering

12
ME 515 Mechatronics 11/9/2006

while Repetition Structure


„ Repetition structure
{ Action repeated while some condition remains
true
while there are more items on my shopping list
Purchase next item and cross it off my list
{ while loop repeated until condition becomes
false
„ Example
int product = 2;
while ( product <= 1000 )
product = 2 * product;
Sem 7 Asanga Ratnaweera, Department of 25
Mechanical Engineering

do/while Repetition
Structure
„ Similar to while structure
{ Makes loop continuation test at end, not
beginning
{ Loop body executes at least once
„ Format action(s)
do
{
statement(s) true
condition
}
false
while ( condition );

Sem 7 Asanga Ratnaweera, Department of 26


Mechanical Engineering

13
ME 515 Mechatronics 11/9/2006

// Using the do/while repetition structure.


#include <iostream>
iostream>
#include <cstdio>
>
using namespace std;

// function main begins program execution


int main()
{
int counter = 1; // initialize counter (essential)

do {
cout << counter << " "; // display counter
counter = counter+1; // incremental counter
} while (counter <= 10 ); // end do/while

cout <<“End of program”<< endl;


getchar();
return 0; // indicate successful termination

} // end function main


Sem 7 Asanga Ratnaweera, Department of 27
Mechanical Engineering

Ex: Average of 10 input values


// Program : Program06.cpp
// Class average program with counter-controlled
repetition.
#include <iostream>
iostream>
#include <cstdio>
>
int main()
{
int total; // sum of grades input by user
int gradeCounter; // number of grade to be entered next
int grade; // grade value
int average; // average of grades
// initialization phase
total = 0; // initialize total
gradeCounter = 1; // initialize loop counter

Sem 7 Asanga Ratnaweera, Department of 28


Mechanical Engineering

14
ME 515 Mechatronics 11/9/2006

// processing phase
while ( gradeCounter <= 10 ) { // loop 10 times
cout << "Enter grade: "; // prompt for input
cin >> grade; // read grade from user
total = total + grade; // add grade to total
gradeCounter = gradeCounter + 1; // increment
counter
}

// termination phase
average = total / 10; // integer division

// display result
cout << "Class average is " << average << endl;
getchar();
return 0; // indicate program ended successfully

} // end function main


Sem 7 Asanga Ratnaweera, Department of 29
Mechanical Engineering

// Program : Program07.cpp
// Class average program with sentinel-controlled repetition.
#include <iostream>
iostream>
#include <cstdio>
>
#include <iomanip> // parameterized stream manipulators
using namespace std;

// function main begins program execution


int main()
{
int total; // sum of grades
int gradeCounter; // number of grades entered
int grade; // grade value
double average; // number with decimal point for average
// initialization phase
total = 0; // initialize total
gradeCounter = 0; // initialize loop counter

Sem 7 Asanga Ratnaweera, Department of 30


Mechanical Engineering

15
ME 515 Mechatronics 11/9/2006

// processing phase
// get first grade from user
cout << "Enter grade, -1 to end: "; // prompt for input
cin >> grade; // read grade from user
// loop until sentinel value read from user
while ( grade != -1 ) {
total = total + grade; // add grade to total
gradeCounter = gradeCounter + 1; // increment counter

cout << "Enter grade, -1 to end: "; // prompt for input


cin >> grade; // read next grade
} // end while
// termination phase
// if user entered at least one grade ...
if ( gradeCounter != 0 ) {
// calculate average of all grades entered
average = static_cast< double >( total ) / gradeCounter;

Sem 7 Asanga Ratnaweera, Department of 31


Mechanical Engineering

// display average with one digits of precision


cout << "Class average is " << setprecision( 2 )<< average << endl;

} // end if part of if/else

else // if no grades were entered, output appropriate message


cout << "No grades were entered" << endl;
getchar();
return 0; // indicate program ended successfully

} // end function main

Note : 1. static_cast< double > will convert the integer variable to double
variable
2. setprecision( n ) set the number of decimal places to n-1, where n
is an integer

Sem 7 Asanga Ratnaweera, Department of 32


Mechanical Engineering

16
ME 515 Mechatronics 11/9/2006

Nested Control Structures


„ Refine
Print a summary of the exam results and decide
if tuition should be raised
to
Print the number of passes
Print the number of failures
If more than eight students passed
Print “Raise tuition”

„ Program next

Sem 7 Asanga Ratnaweera, Department of 33


Mechanical Engineering

// Program : Program08.cpp
// Analysis of examination results.
#include <iostream>
iostream>
#include <cstdio> >
using namespace std;
// function main begins program execution
int main()
{
// initialize variables in declarations
int passes = 0; // number of passes
int failures = 0; // number of failures
int studentCounter = 1; // student counter
int result; // one exam result

// process 10 students using counter-controlled loop


while ( studentCounter <= 10 )
{
// prompt user for input and obtain value from user
cout << "Enter result (1 = pass, 2 = fail): ";
cin >> result;

Sem 7 Asanga Ratnaweera, Department of 34


Mechanical Engineering

17
ME 515 Mechatronics 11/9/2006

// if result 1, increment passes; if/else nested in while


if ( result == 1 ) // if/else nested in while
passes = passes + 1;

else // if result not 1, increment failures


failures = failures + 1;
// increment studentCounter so loop eventually terminates
studentCounter = studentCounter + 1;
} // end while

// termination phase; display number of passes and failures


cout << "Passed " << passes << endl;
cout << "Failed " << failures << endl;

// if more than eight students passed, print "raise tuition"


if ( passes > 8 )
cout << "Raise tuition " << endl;
getchar();
return 0; // successful termination

} // end function main

Sem 7 Asanga Ratnaweera, Department of 35


Mechanical Engineering

Assignment Operators
„ Assignment expression abbreviations
{ Addition assignment operator
c = c + 3; abbreviated to
c += 3;
„ Statements of the form
variable = variable operator expression;
can be rewritten as
variable operator= expression;
„ Other assignment operators
d -= 4 (d = d - 4)
e *= 5 (e = e * 5)
f /= 3 (f = f / 3)
g %= 9 (g = g % 9)
Sem 7 Asanga Ratnaweera, Department of 36
Mechanical Engineering

18
ME 515 Mechatronics 11/9/2006

Increment and Decrement


Operators
„ Increment operator (++)
{ Increment variable by one
{ c++
„ Same as c += 1 (C=C+1)

„ Decrement operator (--) similar


{ Decrement variable by one
{ c--
„ Same as c -= 1 (C=C-1)

Sem 7 Asanga Ratnaweera, Department of 37


Mechanical Engineering

Increment and Decrement


Operators
„ Pre-increment
{ Variable changed before used in expression
„ Operator before variable (++c or --c)
„ Post-increment
{ Incremented changed after expression
„ Operator after variable (c++, c--)

Sem 7 Asanga Ratnaweera, Department of 38


Mechanical Engineering

19
ME 515 Mechatronics 11/9/2006

Increment and Decrement


Operators
„ If c = 5, then

cout << ++c;


„ c is changed to 6, then printed out

cout << c++;


„ Prints out 5 (cout is executed before the
increment.)
„ c then becomes 6

Sem 7 Asanga Ratnaweera, Department of 39


Mechanical Engineering

Increment and Decrement


Operators
„ When variable not in expression
{ Pre-incrementing and post-incrementing
have same effect
++c;
cout << c;
and
c++;
cout << c;

are the same

Sem 7 Asanga Ratnaweera, Department of 40


Mechanical Engineering

20
ME 515 Mechatronics 11/9/2006

// Program : Program09.cpp
// Preincrementing and postincrementing.
#include <iostream>
iostream>
#include <cstdio> >
using namespace std;
// function main begins program execution
int main()
{
int c; // declare variable
// demonstrate postincrement
c = 5; // assign 5 to c
cout <<“C is ”<<c << endl; // print 5
cout <<“C++ is ”<< c++ << endl; // print 5 then post-increment
cout <<“New C is”<< c << endl ; // print 6
// demonstrate preincrement
c = 5; // assign 5 to c
cout <<“C is ”<<c << endl; // print 5
cout <<“++C is ”<< ++c << endl; // pre-increment and print 6
cout <<“New C is”<< c << endl ; // print 6
getchar();
return 0; // indicate successful termination
}
Sem 7 Asanga Ratnaweera, Department of 41
Mechanical Engineering

#include <iostream>
iostream>
#include <cstdio> >
using namespace std;
// function main begins program execution
int main()
{
int counter = 1; // initialization

while ( counter <= 10 ) // repetition condition


{
cout << counter << endl; // display counter
++counter; // increment

} // end while
getchar();
return 0; // indicate successful termination

} // end function main


Sem 7 Asanga Ratnaweera, Department of 42
Mechanical Engineering

21
ME 515 Mechatronics 11/9/2006

for Repetition Structure


„ General format when using for loops
for ( initialization; LoopContinuationTest;
increment )
statement
„ Example
int counter;
for( counter = 1; counter <= 10; counter++ )
cout << counter << endl;
Where the counter variable is ONLY used within the No
semicolon
for block,
{ thePrints integers
variable fromwithin
can be declared one tothe ten
for
after last
structure. For example, these two statements can be statement
replaced by:

Sem 7for ( int counter = 1; counter <=


Asanga 10; counter++
Ratnaweera, ) of
Department 43
Mechanical Engineering

for Repetition Structure


#include <iostream>
iostream>
#include <cstdlib>
cstdlib>
using namespace std;

// function main begins program execution


int main()
{
// Initialization, repetition condition and incrementing
// are all included in the for structure header.
for ( int counter = 1; counter <= 10; counter++ )
cout << “counter” << endl;
getchar();
return 0; // indicate successful termination
} // end function main

Sem 7 Asanga Ratnaweera, Department of 44


Mechanical Engineering

22
ME 515 Mechatronics 11/9/2006

Break Command
int main()
{
int x; // x declared here so it can be used after the loop

// loop 10 times
for ( x = 1; x <= 10; x++ )
{
// if x is 5, terminate loop
if ( x == 5 )
break; // break loop only if x is 5

cout << x << " "; // display value of x

} // end for
cout << "\nBroke out of loop when x became " << x << endl;
getchar();
return 0;
Sem}7 Asanga Ratnaweera, Department of 45
Mechanical Engineering

Continue Command
int main()
{
// loop 10 times
for ( int x = 1; x <= 10; x++ )
{
// if x is 5, continue with next iteration of loop
if ( x == 5 )
continue; // skip remaining code in loop body

cout << x << " "; // display value of x

} // end for structure


return 0; // indicate successful termination
}

Sem 7 Asanga Ratnaweera, Department of 46


Mechanical Engineering

23
ME 515 Mechatronics 11/9/2006

switch Multiple-Selection
Structure
true
case a case a action(s) break

false

true
case b case b action(s) break
false

.
.
.

true
case z case z action(s) break
false

default action(s)

Sem 7 Asanga Ratnaweera, Department of 47


Mechanical Engineering

switch Multiple-Selection
Structure
„ switch
{ Test variable for multiple values
{ Series of case labels and optional statement (s)case
Thisdefault
executed if variable is
switch ( variable ) equal to value1
{
case value1: This statement (s)
statements executed if variable is
break; // necessary totoexit
equal value2switch
or to
value3
case value2:
case value3:
statements This statement (s)
break; executed if variable is
NOT equal to any of the
default: previous case values
statements
break; above.
Sem 7 } Asanga Ratnaweera, Department of 48
Mechanical Engineering

24
ME 515 Mechatronics 11/9/2006

// Program : Program14.cp
// please add the required header files
// function main begins program execution
int main()
{
char value;
cout << "Enter + for Clockwise motion or - for Anticlockwise motion: ";
cin >> value; // read value from use
switch ( value)
{
case '+': // + is entered
cout<<“\n\n\t Forward motion is executed\n\n"<<endl;
break;
case '-': // - is entered
cout <<“\n\n\t Backward motion is executed\n\n"<<endl;
break;
default: // catch all other characters
cout << "Incorrect entry.“ << " Enter a new direction." << endl;
break; // optional; will exit switch anyway
}
getchar();
return 0;
Sem 7 } Asanga Ratnaweera, Department of 49
Mechanical Engineering

int main()
{
int value;
cout << "Enter 1 for Clockwise motion or 2 for Anticlockwise motion: ";
cin >> value; // read value from use
switch ( value)
{
case 1: { // 1 is entered
cout<<“Forward motion is executed"<<endl;
cout<<“The motor is rotating in clockwise direction"<<endl;
}
break;
case 2: { // 2is entered
cout<<"Backward motion is executed"<<endl;
cout<<“The motor is rotating in anticlockwise direction"<<endl;
}
break;
default: // catch all other characters
cout << "Incorrect entry.“ << " Enter a new direction." << endl;
break; // optional; will exit switch anyway
}
getchar();
return 0;
Sem 7 } Asanga Ratnaweera, Department of 50
Mechanical Engineering

25
ME 515 Mechatronics 11/9/2006

Logical Operators
„ Used as conditions in loops, if
statements
„ && (logical AND)
{ true if both conditions are true
if ( gender == 1 && age >= 65 )
++seniorFemales;
„ || (logical OR)
{ true if either of condition is true
if ( semesterAverage >= 90 || finalExam >=
90 )
cout << "Student grade is A" << endl;
Sem 7 Asanga Ratnaweera, Department of 51
Mechanical Engineering

#include <iostream>
iostream>
#include <cstdio> >
using namespace std;
int main()
{
int value1; // variable 1
int value2; // variable 2
cout << "Enter 1 if the signal is high or 0 if low :";
cin >> value1; // read value for input signal
cout << "Enter 1 if the signal is high or 0 if low :";
cin >> value2; // read value for input signal
if (value1 == 1 && value2 == 1 ) // AND operation
cout <<“\nAND output is high"<<endl;
if (value1 == 1 || value2 ==1 ) // OR operation
cout <<“\nOR output is high"<<endl;
if (value1 == 0 || value2 ==0 ) // OR operation
cout <<“\nAND output is low"<<endl;
if (value1 == 0 && value2 ==0 )
cout <<" \nOR output is low"<<endl;
if (value1 > 1 && value2 > 1 )
cout<<“\nWrong Signal"<<endl;
getchar();
Sem 7 return 0; Asanga Ratnaweera, Department of 52
} Mechanical Engineering

26
ME 515 Mechatronics 11/9/2006

Arrays
„ Consecutive memory locations all referring to same data
type with common name

a[0] a[1] a[2] a[3] a[4] a[5] a[6] locations


31 0 -9 17 3 -6 44 values

„ Size of a[7] declare as int a[7] (single dimension)

„ C++ representation
{ a[7] ={31, 0,-9,17,3,-6,44 };

„ Multidimensional arrays (ex: two dimensional)


{ A[3][5]

Sem 7 Asanga Ratnaweera, Department of 53


Mechanical Engineering

Arrays
#include <iostream>
iostream>
#include <cstdio>
>
using namespace std;

// function main begins program execution


int main()
{
int input_data[] ={1,2,3,4,5}; // Initialization of an integer array
// displaying values
cout << “The 1st element of the array \t =”<< input_data[0]<< endl;
cout << “The last element of the array\t=”<< input_data[4]<< endl;
getchar();
return 0; // indicate successful termination
} // end function main

Sem 7 Asanga Ratnaweera, Department of 54


Mechanical Engineering

27
ME 515 Mechatronics 11/9/2006

Arrays
#include <iostream>
iostream>
#include <cstdio> >
using namespace std;
int main()
{
float input_data[] ={1,2,3,4,5}; // Initialization of an integer array
float output_data[10];
// Conversion of miles to kilometers
// Multiply each element by 8 and divide by 5
for(int i=0; i<=4;i++)
{
output_data[i]= input_data[i]*8/5 ;
// display the output values
cout << “The element ”<<i<< “ of the output array \t =”<<
output_data[i]<< endl;
}

getchar();
return 0; // indicate successful termination
Sem 7 Asanga Ratnaweera, Department of 55
} // end function main
Mechanical Engineering

File handling
„ Keyboard I/P is limited and large files are
normally read/written from disk
„ C++ data files are just streams of bytes
„ For keyboard / screen we have used,
{ #include <iostream> - (cin & cout)
„ For disc we use,
{ #include <fstream> and define our data by
either ifstream(i/p) or ofstream (o/p)

Sem 7 Asanga Ratnaweera, Department of 56


Mechanical Engineering

28
ME 515 Mechatronics 11/9/2006

File handling
#include <iostream>
iostream>
#include <cstdio>
>
#include <fstream>
using namespace std;

int main()
{
int i;
float Data_Array[10]={1,2,3,4,5,6,7,8,9,10};
//writing data to a file data_out.txt
ofstream file_out("E:/C_data/data_out.txt", ios::out);
for (i=0; i<10; i++)
file_out <<Data_Array[i]<<endl;
cout<<"Data writing is completed"<<endl;
getchar();
return 0;
}
Note:
Sem 7
the data will be Asanga
written to a file data_out.txt at E:/C_data57/
Ratnaweera, Department of
Mechanical Engineering

File handling
#include <iostream>
iostream>
#include <cstdio>>
#include <fstream>
using namespace std;

int main()
{
int i;
float Data_Array[10];
// initialize the array
for(i=0; i<10; i++)
Data_Array[i]=0;
/*Read values from the input file data.txt */
ifstream Data_in(“E:/C_data/data_out.txt", ios::in);
for(i=0; i<10; i++ )
Data_in>>Data_Array[i];
for(i=0; i<10; i++ )
cout << Data_Array[i]<<endl;
getch();
return 0;
}
Note: data.txt file should be in your working directory
Sem 7 Asanga Ratnaweera, Department of 58
Mechanical Engineering

29
ME 515 Mechatronics 11/9/2006

In-built Maths Functions


Function Prototype Purpose
abs(x) int abs(int x); returns the absolute value of an integer.
fabs(x) double fabs(double x); returns the absolute value of a floating
point number
ceil(x) double ceil(double x); rounds up to a whole number
cout<<ceil(11.2);
(prints 12)
floor(x) double floor(double x); rounds down to a whole number
cout<<floor(11.5);
(prints 11)

Sem 7 Asanga Ratnaweera, Department of 59


Mechanical Engineering

In-built Maths Functions


Function Prototype Purpose
pow(x,y) double pow(double x, calculates x to the power of y. If x is
double y); negative, y must be an integer. If x
is zero, y must be a positive integer.
sqrt(x) double sqrt(double x); calculates the positive square root of x.
(x is >=0)
fmod(x,y) double fmod(double x, returns floating point remainder of x/y
double y); with same sign as x. Y cannot be
zero. Because the modulus
operator(%) works only with
integers, this function is used to find
the remainder of floating point
number division.

Sem 7 Asanga Ratnaweera, Department of 60


Mechanical Engineering

30
ME 515 Mechatronics 11/9/2006

In-built Maths Functions


#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h> // header file for maths command
int main()
{
int integer;
float value;
float abs_value;
float round_up;
cout << "Enter an integer ";
cin >> integer;
cout <<"The absolute value \t= "<<abs(integer) <<endl; //absolute value of integer
cout <<"\nPress any key to continue "<<endl;
getch(); //programme pauses
cout << "\nEnter a floating point number ";
cin >> value;
abs_value = fabs(value); //absolute value of floating point variable
cout <<"The absolute value \t= "<<abs_value<<endl;
Sem 7 Asanga Ratnaweera, Department of 61
Mechanical Engineering

cout <<"\nPress any key to continue "<<endl;


getch();
round_up = ceil(abs_value); //rounding up
cout <<"Round up value \t= "<<round_up<<endl;
cout <<"\nPress any key to continue "<<endl;
getch();
cout <<"Round down value \t= "<<floor(abs_value) <<endl; //rounding down
cout <<"\nPress any key to continue "<<endl;
getch();
cout <<round_up<<" to power "<<abs(integer) <<" is
"<<pow(round_up,abs(integer))<<endl; // variable round_up to power
absolute value of variable integer
cout <<"\nPress any key to continue "<<endl;
getch();
cout <<" Square root of 100 is "<<sqrt(100) <<endl; //square root of 100
cout <<"\nPress any key to continue "<<endl;
getch();
cout <<"The remainder of 4.343/2.342 is "<<fmod(4.343, 2.342) <<endl;
//remainder of the floating point division
getch();
return 0; // indicate that program ended successfully
}
Sem 7 Asanga Ratnaweera, Department of 62
Mechanical Engineering

31
ME 515 Mechatronics 11/9/2006

In-built Maths Functions

cos(x) cosine of x cosh(x) hyperbolic cosine of x

sin(x) sine of x sinh(x) hyperbolic sine of x


tan(x) tangent of x tanh(x) hyperbolic tangent of x
acos(x) arc cosine x exp(x) exponential function
asin(x) arc sine of x log(x) natural logarithm
atan(x) arc tangent x log10(x) base 10 logarithm

The trigonometric functions work with angles in radians rather than


degrees.
All of the trigonometric functions take double arguments and have
double return types.
Sem 7 Asanga Ratnaweera, Department of 63
Mechanical Engineering

Trigonometric functions
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h> // header file for maths command

# define PI 3.14159265358 // definition of a universal constant

int main()
{
float angle;
float sine;
cout << “ Enter the angle in degrees : ";
cin >>angle;
sine = sin(angle*PI/180); // converts the degrees to radians and calculates sine
cout << “ \n\n\t Sine "<< angle<< “ is ”<<sine<<endl;
getch();
return 0; // indicate that program ended successfully
}
Sem 7 Asanga Ratnaweera, Department of 64
Mechanical Engineering

32
ME 515 Mechatronics 11/9/2006

Time delay
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h> // header file for Sleep () command

int main()
{
int count=1;
while ( count <= 10) // loop 10 times
{
cout << "counter value = "<<count<<endl;
count = count + 1;
Sleep(10); // Delay time in ms is given inside the bracket
}
getch();
return 0; // indicate that program ended successfully
}

Sem 7 Asanga Ratnaweera, Department of 65


Mechanical Engineering

Hardware addressing
Command : _outp(address, value) or _inp(address,value)

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h> // header file for Sleep () command
int main()
{
_outp(0x378,1); // writes 1 to address 0x378 (parallel port)
sleep(10); // Delay time in ms is given inside the bracket
_outp(0x378,0); // writes 0 to address 0x378 (parallel port)
getch();
return 0; // indicate that program ended successfully
}
Sem 7 Asanga Ratnaweera, Department of 66
Mechanical Engineering

33
ME 515 Mechatronics 11/9/2006

User defined functions


„ Syntax
{ type Funtion_name (type variable, type variable, …)

Return data type Data inputs

{ Ex:
„ int my_function(int x, float y )
„ float my_function(float x, float y )

Sem 7 Asanga Ratnaweera, Department of 67


Mechanical Engineering

User defined functions


#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h> // header file for Sleep () command
int delayed_counter (int);
int main()
{
int delay_time;
int last;
cout<<“Enter the delay time in seconds \t:”;
cin>> delay_time;
last =delayed_counter (delay_time*1000); // function call
cout<<“ Last function value \t:”<<last<<endl;

getchar();
return 0; // indicate that program ended successfully
}
Sem 7 Asanga Ratnaweera, Department of 68
Mechanical Engineering

34
ME 515 Mechatronics 11/9/2006

User defined functions


int delayed_counter (int a)
{
int count=1;
while ( count <= 10) { // loop 10 times
cout << "counter value = "<<count<<endl; // prompt for input
count = count + 1; // add grade to total
Sleep(a); // Delay time in ms
}
return count;
}

Sem 7 Asanga Ratnaweera, Department of 69


Mechanical Engineering

User defined functions


#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

float add (float,float);


int main()
{
float x,y;
float addition;
cout<<“Enter the first variable \t:”;
cin>> x;
cout<<“Enter the second variable \t:”;
cin>> y;
addition=add (x,y); // calling the function
cout<<“The addition is \t:”<<addition<<endl;
getch();
return 0; // indicate that program ended successfully
}
Sem 7 Asanga Ratnaweera, Department of 70
Mechanical Engineering

35
ME 515 Mechatronics 11/9/2006

User defined functions


float add (float a, float b)
{
float sum;
sum =a+b;
cout<<“the sum is \t =“ <<sum<<endl;
return sum; // the function returns the value sum
}

Sem 7 Asanga Ratnaweera, Department of 71


Mechanical Engineering

Debugging a program
„ Break points
{ Place the cursor at the line where a break point is to be
place and press F9
„ Stepping into a function
{ Press F11
„ Stepping out of a function
{ Press Shift+F11
„ Stepping over
{ Press F10
„ Run to the next cursor position
{ Press Ctrl+F10

Sem 7 Asanga Ratnaweera, Department of 72


Mechanical Engineering

36

Potrebbero piacerti anche