Simple C++ Programs
Download
Report
Transcript Simple C++ Programs
Simple C++ Programs
ELEC 206
Computer Applications for
Electrical Engineers
Dr. Ron Hayne
Program Structure
Object-Based Programming
Program Structure
Dev-C++
206_C2
2
Object-Based Programming
Object-Oriented Programming
Identify the data requirements of the problem
How the data will be used in the program
Abstract Data Types
Class
Inheritance
206_C2
3
C++ Program
/*-----------------------------------------------*/
/* Program chapter1_1
*/
/*
*/
/* This program computes the distance between
*/
/* two points
*/
#include <iostream>
#include <cmath>
using namespace std;
206_C2
4
C++ Program
int main()
{
// Declare and initialize objects
double x1(1), y1(3), x2(4), y2(7),
side1, side2, distance;
// Compute
side1 = x2
side2 = y2
distance =
sides of right triangle
- x1;
- y1;
sqrt(side1 * side1 + side2 * side2);
206_C2
5
C++ Program
// Print distance
cout << "The distance between the two points is "
<< distance << endl;
// Windows friendly exit
system("PAUSE");
return 0;
}
/*----------------------------------------------*/
206_C2
6
Program Structure
Comments
/*-----------------------------------------------*/
/* Program chapter1_1
*/
//
Declare and initialize objects
Preprocessor Directives
#include <iostream>
#include <cmath>
Using Directive
using namespace std;
206_C2
7
Program Structure
Main Function
int main()
{
}
Declarations
object types
initial values
// Declare and initialize objects
double x1(1), y1(3), x2(4), y2(7),
side1, side2, distance;
206_C2
8
Program Structure
Statements
// Compute
side1 = x2
side2 = y2
distance =
sides of right triangle
- x1;
- y1;
sqrt(side1 * side1 + side2 * side2);
// Print distance
cout << "The distance between the two points is "
<< distance << endl;
Return
return 0;
206_C2
9
General Program Structure
preprocessing directives
int main()
{
declarations;
statements;
}
206_C2
10
Dev-C++
Bloodshed Software
http://www.bloodshed.net/dev/devcpp.html
Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB)
with Mingw/GCC 3.4.2
Download from:
SourceForge
206_C2
11
Dev-C++
New Source File
Compile
Run
206_C2
12
Windows Friendly Exit
// Windows friendly exit
system("PAUSE");
return 0;
206_C2
13
Summary
Object-Based Programming
Program Structure
Dev-C++
206_C2
14
Simple C++
Constants and Variables
C++ Operators
Standard Input and Output
206_C2
15
Constants and Variables
Objects
Constants
Variables
Specific values
Memory locations
Identifiers
Begin with alphabetic character
Lowercase or uppercase letters (case sensitive)
Can contain digits (not first character)
Cannot be a keyword
206_C2
16
Scientific Notation
Floating-Point
Mantissa
2.5, -0.004, 15.0
Scientific Notation
Precision
Example
Exponent
25.6 = 2.56 x 101
-0.004 = -4.0 x 10-3
Range
Exponential Notation
25.6 = 2.56e1
-0.004 = -4.0e-3
206_C2
17
Numeric Data Types
Integers
short
int
long
Floating-Point
float
double
long double
206_C2
18
Boolean Data Type
Example
bool error(false), status(true);
cout << error << endl << status;
Program Output
0
1
206_C2
19
Character Data Type
ASCII
Appendix B
7-bit binary
Character Constant
Single quotes
'A', 'b', '3'
Can be interpreted as character or integer
'3' != 3
206_C2
20
String Data
String Constant
Sequence of characters
Double quotes
"Fred", "C17"
String Objects
string class
206_C2
21
String Class
/*-----------------------------------------------*/
/*
This program prints a greeting
*/
/*
using the string class.
*/
#include <iostream>
#include <string>
// Required for string class
using namespace std;
206_C2
22
String Class
int main()
{
// Declare and initialize two string objects.
string salutation("Hello"), name("Jane Doe");
// Output greeting.
cout << salutation << ' '
<< name << '!' << endl;
// Exit program.
return 0;
}
Hello Jane Doe!
206_C2
23
Symbolic Constants
Const
Declared and initialized
Cannot be changed within the program
const double PI = acos(-1.0);
const double LightSpeed = 2.99792e08;
206_C2
24
C++ Opeartors
Assignment Operator
identifier = expression;
Expression
Constant, Object, Result of an Operation
double sum(10.5);
int x1(3);
char ch('a');
double sum;
int x1;
char ch;
sum = 10.5;
x1 = 3;
ch = 'a';
206_C2
25
Assignment Operator
Multiple Assignments
x = y = z = 0;
Type Conversion
long double
double
float
long integer
integer
short integer
info lost
206_C2
no loss
26
Arithmetic Operators
Unary Operators
Positive
Negative
Precedence
+
-
2
Binary Operators
Multiplication
Division
Modulus
Addition
Subtraction
*
/
%
+
206_C2
3
4
27
Mixed Operations
Operation between values of different types
Value of lower type promoted
Cast Operator
(type)
Examples
206_C2
28
Expressions
Distance = x0 + v0t + at2
double distance, x0, v0, a, t;
distance = x0 + v0*t + a*t*t;
Tension = ?
206_C2
29
Increment and Decrement
Unary Operators
Increment
Decrement
Prefix
Postfix
++
--
++count
count--
Examples
206_C2
30
Abbreviated Assignment
Abbreviated Assignment Operators
x = x + 3;
y = y * 2;
x +=3;
y *=2;
Lowest Precedence (evaluate last)
a = (b += (c + d));
a = (b = b + (c + d));
b = b + (c + d);
a = b;
206_C2
31
Standard Output
Standard Output
#include <iostream>
cout << "Hello " << name;
Stream Manipulators
#include <iomanip>
setprecision(n), fixed, scientific
setw(n), left, right, setfill(ch)
dec, oct, hex
endl
206_C2
32
Standard Output
/*-----------------------------------------------*/
/*
Program chapter2_4
*/
/*
*/
/*
This program computes area of a circle.
*/
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
206_C2
33
Standard Output
const double PI=acos(-1.0);
int main()
{
// Declare and initialize objects.
double radius(4.6777), area;
// Compute area
area = PI*radius*radius;
206_C2
34
Standard Output
// Output results
cout << setprecision(4)
<< "The radius of the circle is: "
<< setw(10) << radius << " centimeters"
<< endl;
cout << scientific
<< "The area of the circle is: " << setw(12)
<< area << " square centimeters" << endl;
206_C2
35
Standard Input
Standard Input
#include <iostream>
cin >> var1 >> var2 >> var3;
Whitespace used as delimiters
blanks, tabs, newlines
Values must be compatible with data type of objects
Stream Manipulators
#include <iomanip>
skipws, noskipws
206_C2
36
Summary
Constants and Variables
C++ Operators
Standard Input and Output
206_C2
37
Problem Solving
Basic Functions
Numerical Technique
Linear Interpolation
Problem Solving Applied
Wind-Tunnel Data Analysis
206_C2
38
Basic Functions
Basic Math Functions
#include <cmath>
Arguments are type double
Elementary Math Functions
fabs(x), abs(n)
sqrt(x), pow(x,y)
ceil(x), floor(x)
exp(x), log(x), log10(x)
206_C2
39
Basic Functions
Trigonometric Functions
Angles in radians
(180 degrees = π radians)
sin(x), cos(x), tan(x)
asin(x), acos(x), atan(x), atan2(y,x)
const double PI = acos(-1.0);
double angle_deg, angle_rad;
angle_deg = angle_rad*(180/PI);
angle_rad = angle_deg*(PI/180);
206_C2
40
Practice
Velocity v02 2a( x x0 )
velocity = sqrt(pow(v0,2) + 2*a*(x - x0));
206_C2
41
Other Functions
Hyperbolic Functions
sinh(x), cosh(x), tanh(x)
Character Functions
#include <cctype>
toupper(ch), tolower(ch)
isdigit(ch), isupper(ch), islower(ch)
isspace(ch), ispunct(ch)
206_C2
42
Interpolation
Use data points to determine estimates of a
function f(x) for values of x that were not part
of the original set of data
Cubic-spline Interpolation
Third-degree polynomial
Linear Interpolation
Straight line
a<b<c
ba
f
(
b
)
f
(
a
)
[ f (c) f (a )]
ca
206_C2
43
Example
Data Set
Estimate the temp
at 2.6s
Time, s Temp, deg F
0.0
0.0
1.0
20.0
2.0
3.0
4.0
5.0
60.0
68.0
77.0
110.0
206_C2
44
Problem Solving Applied
Wind-Tunnel Data Analysis
Problem Statement
Use linear interpolation to compute a new coefficient
of lift for a specified flight-path angle
Input/Output Description
Data Point (a, f(a))
Data Point (c, f(c))
New Coefficient f(b)
New Angle (b)
206_C2
45
Problem Solving Applied
Hand Example
Estimate coefficient of lift
at 8.7 degrees
Algorithm Development
Read coordinates of
adjacent points
Read new angle
Compute new coefficient
Print new coefficient
206_C2
Angle Coefficient
(degrees)
of Lift
6
0.479
8
0.654
10
0.792
12
0.924
14
1.035
46
Problem Solving Applied
/*-----------------------------------------------*/
/* Program chapter2_5
*/
/*
*/
/* This program uses linear interpolation to
*/
/* compute the coefficient of lift for an angle.*/
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
206_C2
47
Problem Solving Applied
// Declare objects
double a, f_a, b, f_b, c, f_c;
// Get user input from the keyboard.
cout << "Use degrees for all angle measurements. \n";
cout << "Enter first angle and lift coefficient: \n";
cin >> a >> f_a;
cout << "Enter second angle and lift coefficient: \n";
cin >> c >> f_c;
cout << "Enter new angle: \n";
cin >> b;
206_C2
48
Problem Solving Applied
// Use linear interpolation to compute new lift.
f_b = f_a + (b-a)/(c-a)*(f_c - f_a);
// Print new lift value.
cout << fixed << setprecision(3);
cout << "New lift coefficient: " << f_b << endl;
// Windows friendly exit
system("PAUSE");
return 0;
}
206_C2
49
Problem Solving Applied
Testing
206_C2
50
Summary
Basic Functions
Numerical Technique
Linear Interpolation
Problem Solving Applied
Wind-Tunnel Data Analysis
End of Chapter Summary
C++ Statements
Style Notes
Debugging Notes
206_C2
51