Auburn University http://www.eng.auburn.edu/~xqin COMP 3000 Object-Oriented Programming for Engineers and Scientists Programmer-Defined Functions Dr.

Slides:



Advertisements
Similar presentations
Copyright © 2002 Pearson Education, Inc. Slide 1.
Advertisements

Chapter 1 C++ Basics. Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 1-2 Learning Objectives Introduction to C++ Origins, Object-Oriented.
Chapter 3 Function Basics Copyright © 2008 Pearson Addison-Wesley. All rights reserved.
CSC 200 Lecture 4 Matt Kayala 1/30/06. Learning Objectives Boolean Expressions –Building, Evaluating & Precedence Rules Branching Mechanisms –if-else.
CSC 200 Lecture 2 Matt Kayala 1/25/06. Lecture Objectives More detailed intro to C++ Variables, Expressions, and Assignment Statements Console Input/Output.
CSC 200 Lecture 04 2/8/06 Matt Kayala. Learning Objectives  Predefined Functions  Those that return a value and those that don’t  Programmer-defined.
Basic Elements of C++ Chapter 2.
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to C++ Programming Outline Introduction to C++ Programming A Simple Program: Printing a.
© Janice Regan, CMPT 128, Jan CMPT 128: Introduction to Computing Science for Engineering Students Data representation and Data Types Variables.
Program A computer program (also software, or just a program) is a sequence of instructions written in a sequence to perform a specified task with a computer.
CPS120: Introduction to Computer Science
Data & Data Types & Simple Math Operation 1 Data and Data Type Standard I/O Simple Math operation.
C++ Programming: Basic Elements of C++.
Chapter 1 C++ Basics Copyright © 2012 Pearson Addison-Wesley. All rights reserved.
Fundamental Programming: Fundamental Programming Introduction to C++
Slide 1 Chapter 3 Function Basics. Slide 2 Learning Objectives  Predefined Functions  Those that return a value and those that don’t  Programmer-defined.
Chapter 7 Additional Control Structures. Chapter 7 Topics l Switch Statement for Multi-Way Branching l Do-While Statement for Looping l For Statement.
Chapter 2 Flow of Control. Learning Objectives Boolean Expressions – Building, Evaluating & Precedence Rules Branching Mechanisms – if-else – switch –
COMPUTER PROGRAMMING. variable What is variable? a portion of memory to store a determined value. Each variable needs an identifier that distinguishes.
Chapter 7 Selection Dept of Computer Engineering Khon Kaen University.
Computer Engineering 1 st Semester Dr. Rabie A. Ramadan 3.
Slide 1. Slide 2 Chapter 1 C++ Basics Slide 3 Learning Objectives  Introduction to C++  Origins, Object-Oriented Programming, Terms  Variables, Expressions,
Chapter 1 C++ Basics Copyright © 2016 Pearson, Inc. All rights reserved.
C++ Basics Programming. COMP104 Lecture 5 / Slide 2 Introduction to C++ l C is a programming language developed in the 1970s with the UNIX operating system.
CSIS 113A Lecture 5 Functions. Introduction to Functions  Building Blocks of Programs  Other terminology in other languages:  Procedures, subprograms,
C++ Primer I CMSC 202. Topics Covered Our first “Hello world” program Basic program structure main() Variables, identifiers, types Expressions, statements.
COMP 2710 Software Construction C++ Basics 2 and Exercises Dr. Xiao Qin Auburn University These slides.
COMP 2710 Software Construction Flow of Control – switch and loops Programming Exercises Dr. Xiao Qin Auburn University
Copyright © 2014 Pearson Addison-Wesley. All rights reserved. 4 Simple Flow of Control.
Bill Tucker Austin Community College COSC 1315
Chapter # 2 Part 2 Programs And data
FAQ: Exit Vi Using :q Can NOT exit with “:q” if you have not use “:w” to write changes.
Variables, Identifiers, Assignments, Input/Output
Chapter 1 C++ Basics Copyright © 2016 Pearson, Inc. All rights reserved.
Chapter 1.2 Introduction to C++ Programming
Chapter 2: Basic Elements of C++
Review 1.
Chapter Topics The Basics of a C++ Program Data Types
Chapter 1.2 Introduction to C++ Programming
Chapter 3 Control Statements
Data Types and Expressions
Data Types and Expressions
Chapter 1.2 Introduction to C++ Programming
Basics (Variables, Assignments, I/O)
Chapter 1.2 Introduction to C++ Programming
COMP 2710 Software Construction Midterm Exam 1 - Review
BASIC ELEMENTS OF A COMPUTER PROGRAM
Auburn University COMP 3000 Object-Oriented Programming for Engineers and Scientists Function Basics TBC=15 Dr. Xiao Qin.
Basic Elements of C++.
Chapter 4 Procedural Abstraction and Functions That Return a Value 1
Revision Lecture
CSC113: Computer Programming (Theory = 03, Lab = 01)
Basics (Variables, Assignments, I/O)
Lecture 2-3 C++ Basic Constructs
Java Programming: From Problem Analysis to Program Design, 4e
Basic Elements of C++ Chapter 2.
Operators and Expressions
Variables In programming, we often need to have places to store data. These receptacles are called variables. They are called that because they can change.
Basics (Variables, Assignments, I/O)
Character Set The character set of C represents alphabet, digit or any symbol used to represent information. Types Character Set Uppercase Alphabets A,
Chapter 7 Additional Control Structures
Chapter 2 Variables.
Variables, Identifiers, Assignments, Input/Output
Variables T.Najah Al_Subaie Kingdom of Saudi Arabia
elementary programming
Engineering Problem Solving with C++ An Object Based Approach
Engineering Problem Solving with C++ An Object Based Approach
C++ Programming Basics
Unit 3: Variables in Java
Presentation transcript:

Auburn University http://www.eng.auburn.edu/~xqin COMP 3000 Object-Oriented Programming for Engineers and Scientists Programmer-Defined Functions Dr. Xiao Qin Auburn University http://www.eng.auburn.edu/~xqin xqin@auburn.edu

Chapters Ch 1, Ch 2, Ch 3.1 and 3.2 Please read Ch 1.1 on page 3 1-2 2

C++ Variables C++ Identifiers Variables Keywords/reserved words vs. Identifiers Must start with a letter or the underscore symbol The rest must be letters, digits, or the underscore symbol Case-sensitivity and validity of identifiers Meaningful names! (see also Page 13) Variables A memory location to store data for a program Must declare all data before use in program 1-3 3

Keywords Reserved Words Predefined meaning in C++ Example: short, long, char, true, false, if, else, for, while, class, private, public, typedef, static, sizeof, new, delete, See Appendix 1 for a complete list of keywords. Yes. C++ is case-sensitive 1-4 4

Declare a Variable A variable must be declared before it is used! Tell the compiler what kind of data (i.e., data type) will be stored in the variable See what will happen when you compile a C++ program where a variable is not declared. Give an example. 1-5 5

Data Types: Display 1.2 Simple Types (1 of 2) Page 9: Short -32767 to 32767 = 65534 = 2^16 -> 16 bits for 2 Bytes -> 8 Bits per Byte double: commonly used floating-pint number Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 1-6 6

Data Types: Display 1.2 Simple Types (2 of 2) Char may be treated as an integer type to save space. Unsigned Version: unsigned int, unsigned long Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 1-7 7

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Assigning Data Initializing data in declaration statement Results "undefined" if you don’t! int myValue = 0; int count = 0, distance = 15, factor = 1; Assigning data during execution Lvalues (left-side) & Rvalues (right-side) Lvalues must be variables Rvalues can be any expression Example: distance = rate * time; Lvalue: "distance" Rvalue: "rate * time" Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 1-8 8

Display 1.3 Some Escape Sequences (1 of 2) Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 1-9 9

Constants Naming your constants Use named constants instead Literal constants are "OK", but provide little meaning e.g., seeing 24 in a pgm, tells nothing about what it represents Use named constants instead Meaningful name to represent data const int NUMBER_OF_STUDENTS = 24; const int BRANCH_COUNT = 10, WINDOW_COUNT = 10; //not recommended, a separate line is clearer. Called a "declared constant" or "named constant" Now use it’s name wherever needed in program Added benefit: changes to value result in one fix 1-10 10

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Type Casting Two types Implicit—also called "Automatic" Done FOR you, automatically 17 / 5.5 This expression causes an "implicit type cast" to take place, casting the 17  17.0 Explicit type conversion Programmer specifies conversion with cast operator (double)17 / 5.5 Same expression as above, using explicit cast (double)myInt / myDouble More typical use; cast operator on variable Precision of Calculations VERY important consideration! Expressions in C++ might not evaluate as you’d "expect"! "Highest-order operand" determines type of arithmetic "precision" performed Common pitfall! Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 1-11 11

Shorthand Operators: Two Options Post-Increment intVar++ Uses current value of variable, THEN increments it Pre-Increment ++intVar Increments variable first, THEN uses new value "Use" is defined as whatever "context" variable is currently in No difference if "alone" in statement: intVar++; and ++intVar;  identical result Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 1-12 12

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Console Input/Output I/O objects cin, cout, cerr Defined in the C++ library called <iostream> Must have these lines (called pre- processor directives) near start of file: #include <iostream> using namespace std; Tells C++ to use appropriate library so we can use the I/O objects cin, cout, cerr Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 1-13 13

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Formatting Numbers "Magic Formula" to force decimal sizes: cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); These stmts force all future cout’ed values: To have exactly two digits after the decimal place Example: cout << "The price is $" << price << endl; Now results in the following: The price is $78.50 Can modify precision "as you go" as well! Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 1-14 14

Boolean Expressions: Display 2.1 Comparison Operators Logical Operators Logical AND (&&) Logical OR (||) Equality and Relational Operators Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 2-15 15

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Branching Mechanisms if-else statements Choice of two alternate statements based on condition expression Example: if (hrs > 40) grossPay = rate*40 + 1.5*rate*(hrs-40); else grossPay = rate*hrs; Like if-else statements in Java Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 2-16 16

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. The switch Statement A new stmt for controlling multiple branches Uses controlling expression which returns bool data type (true or false) Syntax: Display page 62 next slide Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 2-17 17

The break and continue Statements Flow of Control Recall how loops provide "graceful" and clear flow of control in and out In RARE instances, can alter natural flow break; Forces loop to exit immediately. continue; Skips rest of loop body These statements violate natural flow Only used when absolutely necessary! Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 2-18 18

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Loops 3 Types of loops in C++ while Most flexible No "restrictions" do-while Least flexible Always executes loop body at least once for Natural "counting" loop Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 2-19 19

Introduction to Functions Building Blocks of Programs Other terminology in other languages: Procedures, subprograms, methods In C++: functions I-P-O Input – Process – Output Basic subparts to any program Use functions for these "pieces" Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 3-20 20

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Predefined Functions Libraries full of functions for our use! Two types: Those that return a value Those that do not (void) Must "#include" appropriate library e.g., <cmath>, <cstdlib> (Original "C" libraries) <iostream> (for cout, cin) Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 3-21 21

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Even More Math Functions: Display 3.2 Some Predefined Functions (1 of 2) Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 3-22 22

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Even More Math Functions: Display 3.2 Some Predefined Functions (2 of 2) Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 3-23 23

Random Number Generator Return "randomly chosen" number Used for simulations, games rand() Takes no arguments Returns value between 0 & RAND_MAX Scaling Squeezes random number into smaller range rand() % 6 Returns random value between 0 & 5 Shifting rand() % 6 + 1 Shifts range between 1 & 6 (e.g., die roll) See Example: rand.cpp Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 3-24 24

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Random Number Seed Pseudorandom numbers Calls to rand() produce given "sequence" of random numbers Use "seed" to alter sequence srand(seed_value); void function Receives one argument, the "seed" Can use any seed value, including system time: srand(time(0)); time() returns system time as numeric value Library <time> contains time() functions Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 3-25 25

Components of Function Use 3 Pieces to using functions: Function Declaration/prototype Information for compiler To properly interpret calls Function Definition Actual implementation/code for what function does Function Call Transfer control to function Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 3-26 26

Copyright © 2008 Pearson Addison-Wesley. All rights reserved. main(): "Special" Recall: main() IS a function "Special" in that: One and only one function called main() will exist in a program Who calls main()? Operating system Tradition holds it should have return statement Value returned to "caller"  Here: operating system Should return "int" or "void" Copyright © 2008 Pearson Addison-Wesley. All rights reserved. 3-27 27

Programming Exercise 1 Write a C++ function that display the calculator menu. The program will prompt the user to choose the operation choice (from 1 to 5). Then it asks the user to input two integer vales for the calculation. See the sample below. Write a main function to call this menu function: MENU 1. Add 2. Subtract 3. Multiply 4. Divide 5. Modulus Enter your choice: 1 3-28 28

Programming Exercise 1 int displaymenu(){ int choice; cout<<" MENU ” << "\n"; cout<<" 1.Add"<<"\n"; cout<<" 2.Subtract"<<"\n"; cout<<" 3.Multiply"<<"\n"; cout<<" 4.Divide"<<"\n"; cout<<" 5.Modulus"<<"\n"; cin >> choice return choice; } 3-29 29

Programming Exercise 2 Write a C++ function that computer the standard deviation of four scores. Write a main function to call this menu function: 3-30 30