Presentation is loading. Please wait.

Presentation is loading. Please wait.

ELEC 206 Computer Applications for Electrical Engineers Dr. Ron Hayne

Similar presentations


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

1 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

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

3 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

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

5 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

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

7 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

8 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

9 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

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

11 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

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

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

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

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

16 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

17 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

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

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

20 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

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

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

23 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

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

25 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

26 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

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

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

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

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

31 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

32 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

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

34 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

35 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

36 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

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

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

39 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

40 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

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

42 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

43 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

44 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

45 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

46 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

47 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

48 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

49 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

50 Problem Solving Applied
Testing 206_C2

51 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


Download ppt "ELEC 206 Computer Applications for Electrical Engineers Dr. Ron Hayne"

Similar presentations


Ads by Google