Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy Walters, and Godfrey Muganda Modified for CMPS 1043 Computer Science I at MSU.

Slides:



Advertisements
Similar presentations
Chapter 3: Expressions and Interactivity. Outline cin object Mathematical expressions Type Conversion and Some coding styles.
Advertisements

Copyright 2004 Scott/Jones Publishing Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 3 Expressions.
CS1 Lesson 3 Expressions and Interactivity CS1 -- John Cole1.
1 9/13/06CS150 Introduction to Computer Science 1 Type Casting.
Copyright © 2012 Pearson Education, Inc. Chapter 3: Expressions and Interactivity.
Chapter 5: Loops and Files.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 3 Expressions.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 3- 1.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. WAB rev 2 Starting Out with C++ Early Objects Sixth Edition by Tony Gaddis,
1 Chapter 3 Expressions and Interactivity. 2 Topics 3.1 The cin Object 3.2 Mathematical Expressions 3.3 When You Mix Apples and Oranges: Type Conversion.
Chapter 3: Input/Output
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 3: Expressions and Interactivity.
CS 1 Lesson 5 Loops and Files CS 1 -- John Cole.
Chapter 3: Input/Output
Basic Elements of C++ Chapter 2.
Chapter 3 Interactivity and Expressions CSC 125 Introduction to C++ programming.
Expressions and Interactivity Chapter 3. 2 The cin Object Standard input object Like cout, requires iostream file Used to read input from keyboard Often.
Chapter 3 Expressions and Interactivity Department of Computer Science Missouri State Univeristy.
Chapter 3 Processing and Interactive Input. 2 Assignment  The general syntax for an assignment statement is variable = operand; The operand to the right.
CNG 140 C Programming Lecture Notes 2 Processing and Interactive Input Spring 2007.
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 3 Expressions and Interactivity.
Copyright © 2012 Pearson Education, Inc. Chapter 3: Expressions and Interactivity.
Chapter 2: Using Data.
Chapter 3 Assignment, Formatting, and Interactive Input C++ for Engineers and Scientists Third Edition.
Copyright 2004 Scott/Jones Publishing Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 3 Formatting Output.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 1-5.
Chapter 3: Assignment, Formatting, and Interactive Input.
C++ for Engineers and Scientists Second Edition Chapter 3 Assignment, Formatting, and Interactive Input.
C++ Programming, Namiq Sultan1 Chapter 3 Expressions and Interactivity Namiq Sultan University of Duhok Department of Electrical and Computer Engineerin.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 3 Expressions and Interactivity.
Copyright © 2014, 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Eighth Edition by Tony Gaddis,
Expressions and Interactivity. 3.1 The cin Object.
Loops and Files. 5.1 The Increment and Decrement Operators.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Formatting Output.
Programming Fundamentals with C++1 Chapter 3 COMPLETING THE BASICS.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 3-1 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
+ Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy Walters, and Godfrey Muganda Chapter 3: Expressions and Interactivity.
CMPSC 121- Spring 2015 Lecture 6 January 23, 2015.
Chapter 3 Assignment, Formatting, and Interactive Input C++ for Engineers and Scientists Third Edition.
Chapter 3: Input/Output. Objectives In this chapter, you will: – Learn what a stream is and examine input and output streams – Explore how to read data.
Lecture 5: Expressions and Interactivity Professor: Dr. Miguel Alonso Jr. Fall 2008 CGS2423/COP1220.
Copyright © 2014, 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Eighth Edition by Tony Gaddis,
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 3: Expressions and Interactivity.
Chapter Expressions and Interactivity 3. The cin Object 3.1.
Chapter 4: Introduction To C++ (Part 3). The cin Object Standard input object Like cout, requires iostream file Used to read input from keyboard Information.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 3: Expressions and Interactivity.
SCP1103 Basic C Programming SEM1 2010/2011 Arithmetic Expressions Week 5.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
Chapter 3: Input/Output. Objectives In this chapter, you will: – Learn what a stream is and examine input and output streams – Explore how to read data.
Lecture 3 Expressions, Type Conversion, Math and String
Arithmetic Expressions
Introduction to C++ (Extensions to C)
Chapter Topics The Basics of a C++ Program Data Types
Chapter 2: Introduction to C++
Chapter 3: Expressions and Interactivity
Basic Elements of C++.
Chapter 3: Expressions and Interactivity.
Chapter 3: Expressions and Interactivity
Basic Elements of C++ Chapter 2.
Chapter 5: Looping Starting Out with C++ Early Objects Eighth Edition
Expressions and Interactivity
Expressions and Interactivity
Chapter 3 Input output.
Chapter 3: Expressions and Interactivity
Formatted Input, Output & File Input, Output
Standard Version of Starting Out with C++, 4th Edition
C++ for Engineers and Scientists Second Edition
Lecture 3 Expressions, Type Conversion, and string
Presentation transcript:

Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy Walters, and Godfrey Muganda Modified for CMPS 1043 Computer Science I at MSU Chapter 3: Expressions and Interactivity

3.1 The cin Object 3.2 Mathematical Expressions 3.3 Implicit Type Conversion 3.4 Explicit Type Conversion 3.5 Overflow and Underflow 3.6 Named Constants 3-2

3.7 Multiple & Combined Assignment 3.8 Formatting Output 3.9 Working with Characters &String Objects 3.10 Using C-Strings 3.11 More Mathematical Library Functions 3.12 Introduction to Files 3-3

 Standard input object  Like cout, requires file  Used to read input from keyboard  Often used with cout to display a user prompt first  Data is retrieved from cin with >>  Input data is stored in one or more variables 3-4

 User input goes from keyboard to the input buffer, where it is stored as characters int height; cout << "How tall is the room? "; cin >> height; The value entered will be stored in the memory location “height.” 3-5

 Can be used to input multiple values cin >> height >> width;  Multiple values from keyboard ◦ Must be separated by spaces or [Enter] ◦ Must press [Enter] after typing last value ◦ Multiple values need not be of same type ◦ Order is important; first value entered is stored in first variable, etc. 3-6

 Expression ◦ constant ◦ variable ◦ combination of constants, variables, operators ◦ parentheses as necessary  Examples of mathematical expressions: 2 height a + b / c (time * )/x 3-7

 Assignment statements,  With cout,  Other types of statements Examples: area = 2 * PI * radius; cout << "border is: " << (2*(l+w)); while (x + 2 < 100) 3-8

 Order is same as in mathematics ◦ - (unary negation) in order, left to right ◦ * / % in order, left to right ◦ + - in order, left to right What is the order? 6 – * 2 / -2 %

 Parentheses ( ) can be used to override the order of operations * 2 – 2 = 4 (2 + 2) * 2 – 2 = * (2 – 2) = 2 (2 + 2) * (2 – 2) =

 Multiplication requires an operator Area = lw is written as Area = l * w;  There is no exponentiation operator Area = s 2 is written as Area = s * s; or Area = pow(s, 2); (note: pow requires the header file)  Parentheses may be needed to maintain order of operations is written as m = (y2 - y1)/(x2 - x1); 3-11

 Operations are performed between operands (values) of the same type ◦ i.e. integer, double, float  If not, C++ automatically converts one to be type of other  This often impacts the results of calculations 3-12

 Highest  Lowest  Ranked by largest number they can hold 3-13 long double double float unsigned long long unsigned int int unsigned short short char

 Coercion: automatic conversion of an operand to another data type  Promotion: converts to a higher type  Demotion: converts to a lower type 3-14

1) char, short, unsigned short are automatically promoted to int 2) When operating on values of different data types, the lower one is promoted to the type of the higher one. 3) When using the = operator, the type of expression on right will be converted to the type of variable on left 3-15

 Also called type casting  Used for manual data type conversion  Not often used, but occasionally  Use Sparingly & only when necessary 3-16

What is the result of each? double X; int Y=5, Z=2; X = Y/2; X = Y/2.0; X = Y/Z; X = (double)(Y/Z); X = (double)Y/Z; X = Y/(double) Z; X = (double)Y/(double)Z; 3-17

 Occurs when assigning a value that is too large (overflow) or too small (underflow) to be held in a variable ◦ I.E. Not enough space allocated in memory ◦ E.G. Allocate 1 byte but 2 are necessary  The variable contains a value that is not the correct value or may be zero (for very small values) 3-18

Different systems handle the problem differently. They may ◦ display a warning / error message ◦ display a dialog box and ask what to do ◦ stop the program ◦ continue execution with the incorrect value 3-19

 Also called constant variables  Variables whose content cannot be changed during program execution  Used for representing constant values with descriptive names const double TAX_RATE = ; const int NUM_STATES = 50;  Often named in uppercase letters 3-20

#define ◦ C-style of naming constants (older) #define NUM_STATES 50 ◦ Interpreted by pre-processor, not compiler ◦ Does not occupy a memory location like a constant variable defined with const ◦ Instead, causes text substitution to occur. Every occurrence of NUM_STATES will be replaced by

 The assignment operator ( = ) can be used more than 1 time in an expression x = y = z = 5;  Associates right to left x = (y = (z = 5)); 3-22 Done Done Done 3 rd 2 nd 1 st

 Applies an arithmetic operation to a variable & assigns result as new value of variable  Operators: += -= *= /= %=  Example: sum += amt; short for sum = sum + amt; 3-23

x += 5; means x = x + 5; x -= 5; means x = x – 5; x *= 5; means x = x * 5; x /= 5; means x = x / 5; x %= 5; means x = x % 5; The right hand side is evaluated before assignment operation x *= a + b; means x = x *(a + b); 3-24

 To control appearance of output ◦ size ◦ position ◦ number of digits ◦ number of decimal places  Requires header file 3-25

 Used to control features of an output field  Some affect just the next value displayed ◦ setw(x) : Print in a field at least x spaces wide. Use more spaces if specified field width is not big enough. 3-26

 Some affect values until changed again ◦ fixed : Use decimal notation (not E-notation) for floating-point values. ◦ setprecision(x) :  When used with fixed, print floating-point value using x digits after the decimal.  Without fixed, print floating-point value using x significant digits. ◦ showpoint : Always print decimal for floating- point values. ◦ left, right : left-, right justification of value 3-27

^ means a blank space const float e = 2.718; float price = 18.0; Displays cout << setw(8) << e << endl; ^^^2.718 cout << left << setw(8) << e << endl; 2.718^^^ cout << setprecision(2); cout << e << endl; 2.7 cout << fixed << e << endl; 2.72 cout << setw(6) << price; ^

 char : holds a single character ◦ Automatically included  string : holds a sequence of characters ◦ Requires header file  Both used in assignment statements  Both displayed with cout & << 3-29

Reading in a string object string str; // Reads in string containing no blanks cin >> str; // Reads in string that may contain blanks getline(cin, str); 3-30

Reading in a character char ch; cin >> ch; // Reads in any non-blank char cin.get(ch); // Reads in any char cin.ignore(); // Skips over next char in // the input buffer 3-31

= Assigns a value to a string string words; words = "Tasty "; + Joins two strings together string s1 = "hot", s2 = "dog"; string food = s1 + s2; // food = "hotdog" += Concatenates a string onto the end of another one words += food; // words now = "Tasty hotdog" 3-32

 Continue with Section

 C-string is stored as an array of characters  Programmer must indicate maximum number of characters at definition const int SIZE = 5; char temp[SIZE] = "Hot";  NULL character ( \0 ) is placed after final character to mark the end of the string  Programmer must make sure array is big enough for desired use; temp can hold up to 4 characters plus the \ H o t \0

 Reading in a C-string const int SIZE = 10; char Cstr[SIZE]; cin >> Cstr; // Reads in a C-string with no // blanks. Will write past the // end of the array if input string // is too long. cin.getline(Cstr, 10); // Reads in a C-string that may // contain blanks. Ensures that <= 9 // chars are read in.  Can also use setw() and width() to control input field widths 3-35

 A C-string can be initialized at the time of its creation, just like a string object const int SIZE = 10; char month[SIZE] = "April";  However, a C-string cannot later be assigned a value using the = operator; you must use the strcpy() function char month[SIZE]; month = "August" // wrong! strcpy(month, "August"); //correct 3-36

 These require header file  Take double arguments and return a double  Commonly used functions 3-37 abs Absolute value sin Sine cos Cosine tan Tangent sqrt Square root log Natural (e) log

 These require header file  rand ◦ Returns a random number between 0 & largest int the computer holds ◦ Produces same sequence of numbers each time program runs  srand(x) ◦ Initializes random number generator with unsigned int x ◦ Should be called at most once in a program 3-38

 Can use a file instead of keyboard for program input  Can use a file instead of monitor screen for program output  Files are stored on secondary storage media, such as disk, flash drive  Files allow data to be retained between program executions 3-39

1. Include the header file 2. Define a file stream object ifstream for input from a file ifstream inFile; ofstream for output to a file ofstream outFile; These are “commands” you will use for file input & output. User defined. 3-40

3. Open the file  Use the open member function inFile.open("inventory.dat"); outFile.open("report.txt");  Filename may include drive, path info.  Output file will be created if necessary; existing output file will be erased first  Input file must exist for open to work 3-41

4. Use the file  Use output file object and << to send data to file outFile << "Inventory report";  Use input file object and >> to read data from file to variables inFile >> partNum; inFile >> qtyInStock >> qtyOnOrder; 3-42

5. Close the file  Use the close member function inFile.close(); outFile.close();  Don’t allow operating system to close files for you at program end ◦ May be limit on number of open files ◦ Buffered output data waiting to be sent to a file that could be lost 3-43

 P ◦ 1 – 39  Try some of the Programming P Challenges - 1 – 25 ◦ Do problem solving steps then write the code 3-44