1 / 51

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++. Object-Based Programming. Object-Oriented Programming Identify the data requirements of the problem

shae
Télécharger la présentation

Simple C++ Programs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Program Structure • Object-Based Programming • Program Structure • Dev-C++ 206_C2

  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_1 */ /* */ /* 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 /*-----------------------------------------------*/ /* Program chapter1_1 */ // Declare and initialize objects • Preprocessor Directives #include <iostream> #include <cmath> • Using Directive using namespace std; 206_C2

  8. 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

  9. Program Structure • Statements // 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++ 5.0 beta 9.2 (4.9.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. Floating-Point 2.5, -0.004, 15.0 Scientific Notation 25.6 = 2.56 x 101 -0.004 = -4.0 x 10-3 Exponential Notation 25.6 = 2.56e1 -0.004 = -4.0e-3 Mantissa Precision Example Exponent Range Scientific Notation 206_C2

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

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

  20. 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

  21. String Data • String Constant • 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 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 = 2.99792e08; 206_C2

  25. 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

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

  27. Precedence 2 3 4 Arithmetic Operators • Unary Operators • Positive + • Negative - • Binary Operators • Multiplication * • Division / • Modulus % • Addition + • Subtraction - 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 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 • #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_4 */ /* */ /* 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 • #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 • #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 • 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. Data Set Estimate the tempat 2.6s Example 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 206_C2

  47. 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

  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

More Related