# ELEC 206 Computer Applications for Electrical Engineers Dr. Ron Hayne

## Presentation on theme: "ELEC 206 Computer Applications for Electrical Engineers Dr. Ron Hayne"— Presentation transcript:

ELEC 206 Computer Applications for Electrical Engineers Dr. Ron Hayne
Simple C++ Programs ELEC 206 Computer Applications for Electrical Engineers Dr. Ron Hayne ELEC 330

Program Structure Object-Based Programming Program Structure Dev-C++

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

C++ Program /*-----------------------------------------------*/
/* Program chapter1_ */ /* */ /* This program computes the distance between */ /* two points */ #include <iostream> #include <cmath> using namespace std; 206_C2

C++ Program int main() { // Declare and initialize objects
double x1(1), y1(3), x2(4), y2(7), side1, side2, distance; // Compute sides of right triangle side1 = x2 - x1; side2 = y2 - y1; distance = sqrt(side1 * side1 + side2 * side2); 206_C2

C++ Program // Print distance
cout << "The distance between the two points is " << distance << endl; // Windows friendly exit system("PAUSE"); return 0; } /* */ 206_C2

Program Structure Comments Preprocessor Directives Using Directive
/* */ /* Program chapter1_ */ // Declare and initialize objects Preprocessor Directives #include <iostream> #include <cmath> Using Directive using namespace std; 206_C2

Program Structure Main Function Declarations object types
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

Program Structure Statements Return // Compute sides of right triangle
side1 = x2 - x1; side2 = y2 - y1; distance = sqrt(side1 * side1 + side2 * side2); // Print distance cout << "The distance between the two points is " << distance << endl; Return return 0; 206_C2

General Program Structure
preprocessing directives int main() { declarations; statements; } 206_C2

Dev-C++ Bloodshed Software http://www.bloodshed.net/dev/devcpp.html
Dev-C beta 9.2 ( ) (9.0 MB) with Mingw/GCC 3.4.2 Download from: SourceForge 206_C2

Dev-C++ New Source File Compile Run 206_C2

Windows Friendly Exit // Windows friendly exit system("PAUSE");
return 0; 206_C2

Summary Object-Based Programming Program Structure Dev-C++ 206_C2

Simple C++ Constants and Variables C++ Operators
Standard Input and Output 206_C2

Constants and Variables
Objects Constants Specific values Variables 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

Scientific Notation Floating-Point Scientific Notation
2.5, , 15.0 Scientific Notation 25.6 = 2.56 x 101 = -4.0 x 10-3 Exponential Notation 25.6 = 2.56e1 = -4.0e-3 Mantissa Precision Example Exponent Range 206_C2

Numeric Data Types Integers Floating-Point short int long float double
long double 206_C2

Boolean Data Type Example Program Output
bool error(false), status(true); cout << error << endl << status; Program Output 1 206_C2

Character Data Type ASCII Character Constant Appendix B 7-bit binary
Single quotes 'A', 'b', '3' Can be interpreted as character or integer '3' != 3 206_C2

String Data String Constant String Objects Sequence of characters
Double quotes "Fred", "C17" String Objects string class 206_C2

String Class /*-----------------------------------------------*/
/* This program prints a greeting */ /* using the string class */ #include <iostream> #include <string> // Required for string class using namespace std; 206_C2

String Class Hello Jane Doe! 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

Symbolic Constants Const Declared and initialized
Cannot be changed within the program const double PI = acos(-1.0); const double LightSpeed = e08; 206_C2

C++ Opeartors Assignment Operator Expression identifier = 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

Assignment Operator Multiple Assignments Type Conversion
x = y = z = 0; Type Conversion long double double float long integer integer short integer info lost no loss 206_C2

Arithmetic Operators Unary Operators Binary Operators Positive +
Negative - Binary Operators Multiplication * Division / Modulus % Addition + Subtraction - Precedence 2 3 4 206_C2

Mixed Operations Operation between values of different types
Value of lower type promoted Cast Operator (type) Examples 206_C2

Expressions Distance = x0 + v0t + at2 Tension = ?
double distance, x0, v0, a, t; distance = x0 + v0*t + a*t*t; Tension = ? 206_C2

Increment and Decrement
Unary Operators Increment ++ Decrement -- Prefix ++count Postfix count-- Examples 206_C2

Abbreviated Assignment
Abbreviated Assignment Operators x = x + 3; x +=3; y = y * 2; y *=2; Lowest Precedence (evaluate last) a = (b += (c + d)); a = (b = b + (c + d)); b = b + (c + d); a = b; 206_C2

Standard Output Standard Output Stream Manipulators
#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

Standard Output /*-----------------------------------------------*/
/* Program chapter2_ */ /* */ /* This program computes area of a circle. */ #include <iostream> #include <iomanip> #include <cmath> using namespace std; 206_C2

Standard Output const double PI=acos(-1.0); int main() {

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

Standard Input Standard Input Whitespace used as delimiters
#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

Summary Constants and Variables C++ Operators
Standard Input and Output 206_C2

Problem Solving Basic Functions Numerical Technique
Linear Interpolation Problem Solving Applied Wind-Tunnel Data Analysis 206_C2

Basic Functions Basic Math Functions Elementary 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

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

Practice velocity = sqrt(pow(v0,2) + 2*a*(x - x0)); 206_C2

Other Functions Hyperbolic Functions Character 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

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 206_C2

Example Data Set Estimate the temp at 2.6s Time, s Temp, deg F 0.0 1.0
20.0 2.0 60.0 3.0 68.0 4.0 77.0 5.0 110.0 206_C2

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

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 Angle (degrees) Coefficient of Lift 6 0.479 8 0.654 10 0.792 12 0.924 14 1.035 206_C2

Problem Solving Applied
/* */ /* Program chapter2_ */ /* */ /* 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

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

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

Problem Solving Applied
Testing 206_C2

Summary Basic Functions Numerical Technique Problem Solving Applied
Linear Interpolation Problem Solving Applied Wind-Tunnel Data Analysis End of Chapter Summary C++ Statements Style Notes Debugging Notes 206_C2

Similar presentations