COS120 Software Development Using C++ AUBG Fall semester 2010 Ref book: Problem Solving, Abstraction and Design Using C++ Authors: Frank Friedman, Elliot.

Slides:



Advertisements
Similar presentations
Lecture 2 Introduction to C Programming
Advertisements

Introduction to C Programming
 2005 Pearson Education, Inc. All rights reserved Introduction.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 2 - Introduction to C Programming Outline 2.1Introduction 2.2A Simple C Program: Printing a Line.
Introduction to C Programming
C Programming Language 4 Developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories 4 Used to rewrite the UNIX operating system 4 Widely used on UNIX.
Three types of computer languages
© 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5/e Starting Out with C++: Early Objects 5 th Edition Chapter 2 Introduction.
 2007 Pearson Education, Inc. All rights reserved Introduction to C Programming.
 2003 Prentice Hall, Inc. All rights reserved. 1 Machine Languages, Assembly Languages, and High-level Languages Three types of computer languages 1.Machine.
Overview of C++ Chapter 2 in both books programs from books keycode for lab: get Program 1 from web test files.
Chapter 2: Introduction to C++.
Introduction to C Programming
Chapter 2: Basic Elements of C++
Basic Elements of C++ Chapter 2.
Copyright 2003 Scott/Jones Publishing Brief Version of Starting Out with C++, 4th Edition Chapter 1 Introduction to Computers and Programming.
COMPUTER SCIENCE I C++ INTRODUCTION
By Dr. Awad Khalil Computer Science & Engineering Department
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to C++ Programming Outline Introduction to C++ Programming A Simple Program: Printing a.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2: Introduction to C++ Starting Out with C++ Early Objects Seventh.
COS120 Software Development Using C++ AUBG Fall semester 2010 Ref book: Problem Solving, Abstraction and Design Using C++ Authors: Frank Friedman, Elliot.
Chapter 2 Overview of C++ Lecture Notes Prepared By: Blaise W. Liffick, PhD Department of Computer Science Millersville University Millersville, PA
Lecture 4: Computer Languages. A Tutorial Introduction to C++ COS120 Software Development Using C++ AUBG, COS dept.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2: Overview of C++ Problem Solving, Abstraction, and Design using.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 2 Input, Processing, and Output.
Chapter 2 Overview of C Part I J. H. Wang ( 王正豪 ), Ph. D. Assistant Professor Dept. Computer Science and Information Engineering National Taipei University.
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.
Chapter 2 Overview of C++. A Sample Program // This is my first program. It calculates and outputs // how many fingers I have. #include using namespace.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-1 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Overview of C++ Chapter C++ Language Elements t Comments make a program easier to understand t // Used to signify a comment on a single line.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 2 Chapter 2 - Introduction to C Programming.
Week 1 Algorithmization and Programming Languages.
Overview of C++ Chapter C++ Language Elements t Comments make a program easier to understand t // Used to signify a comment on a single line.
C++ Programming: Basic Elements of C++.
1 INTRODUCTION TO PROBLEM SOLVING AND PROGRAMMING.
Copyright © 2012 Pearson Education, Inc. Chapter 2: Introduction to C++
Introduction to C++ Basic Elements of C++. C++ Programming: From Problem Analysis to Program Design, Fourth Edition2 The Basics of a C++ Program Function:
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 2 Input, Processing, and Output.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 2: Introduction to C++
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2: Introduction to C++ Starting Out with C++ Early Objects Sixth.
Introducing C++ Programming Lecture 3 Dr. Hebbat Allah A. Elwishy Computer & IS Assistant Professor
Arithmetic Expressions in C++. CSCE 1062 Outline Data declaration {section 2.3} Arithmetic operators in C++ {section 2.6} Mixed data type arithmetic in.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 2 - Introduction to C Programming Outline.
CISC105 – General Computer Science Class 2 – 6/7/2006.
CHAPTER 2 PROBLEM SOLVING USING C++ 1 C++ Programming PEG200/Saidatul Rahah.
C++ for Engineers and Scientists Second Edition
12/14/2016CS150 Introduction to Computer Science 1 Announcements  Website is up!   All lecture slides, assignments,
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Introduction to C++
 2003 Prentice Hall, Inc. All rights reserved Basics of a Typical C++ Environment C++ systems –Program-development environment –Language –C++
1 Types of Programming Language (1) Three types of programming languages 1.Machine languages Strings of numbers giving machine specific instructions Example:
1 Lecture 2 - Introduction to C Programming Outline 2.1Introduction 2.2A Simple C Program: Printing a Line of Text 2.3Another Simple C Program: Adding.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2-1 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
2.1 The Part of a C++ Program. The Parts of a C++ Program // sample C++ program #include using namespace std; int main() { cout
Bill Tucker Austin Community College COSC 1315
Chapter 2: Basic Elements of C++
Chapter Topics The Basics of a C++ Program Data Types
Chapter 1: Introduction to computers and C++ Programming
Chapter 2 Introduction to C++ Programming
Basic Elements of C++.
Introduction to C++ Introduced by Bjarne Stroustrup of AT&T’s Bell Laboratories in mid-1980’s Based on C C++ extended C to support object-oriented programming.
Basic Elements of C++ Chapter 2.
2.1 Parts of a C++ Program.
Introduction to C++ Programming
CS150 Introduction to Computer Science 1
Introduction to C++ Introduced by Bjarne Stroustrup of AT&T’s Bell Laboratories in mid-1980’s Based on C C++ extended C to support object-oriented programming.
CS150 Introduction to Computer Science 1
Chapter 2: Introduction to C++.
Chapter 2: Overview of C++
Introduction to C Programming
Presentation transcript:

COS120 Software Development Using C++ AUBG Fall semester 2010 Ref book: Problem Solving, Abstraction and Design Using C++ Authors: Frank Friedman, Elliot Koffman, Course lecturer: Assoc. Prof. Stoyan Bonev, PhD

Lecture 4: Computer Languages. A Tutorial Introduction to C++

3 Lecture Contents: t Programming languages (Computer languages); t Processing a HLL program; –(Editing, Compiling, Linking, Loading, Running) t The C++ Programming Language –A tutorial introduction.

4 Programming Languages t Machine Language –“Native tongue” of the computer –Binary 0s and 1s that specify what to do t High - Level Languages –Resemble human language (C++, C, Pascal) cost = price + tax;

5 Programming Languages t Language Standard description –Lexical level –Syntax (grammatical form) (rules) –Semantics t Source Program t Object Program t Executable Program

6 Processing a High-Level Language Program t Set of programs used to develop software encapsulated within a software package, IDE t Text editor t Compiler t Linker t Loader t Examples: g++, Borland C++ ® IDE, Microsoft Visual C++ ® (version.NET 2005, 2008) IDE

7 Processing a Program t Editor used to enter the source program –Output saved as a source file ( prog.c or prog.cpp ) t Compiler translates the source program –Displays syntax errors (not descriptive) –Generates an object program ( prog.obj ) t Linker combines object file with other object files –Generates an executable program ( prog.exe ) t Loader loads executable program into RAM t Program execution starts t Program execution terminates

8 Processing a Program t Major activities –Editing –Compiling –Linking with pre-compiled files Object files Library modules –Loading and executing –Viewing the behavior of the program

9 Process Cycle

10 Ways to perform all activities t Using separate OS commands t Using batch files (batch processing) t Using IDE (the project concept, solution concept) t Using MAKE utility

11 Tutorial Introduction to C++ t Logical Structure of a program – a C++ program consists of functions and global variables. t Functions are separate program units and contain statements that specify computing operations to be done. t Variables store values used during computation. t Variables are named by the developer.  Functions are named by the developer (except one that is always present and named main ).

12 Tutorial Introduction to C++  Program as Top-Down hierarchy of syntax categories (OOP ‘Has-a’ relationship demonstrated): –Program// Program has function(s) –Function(s)// Function has statement(s) –Statement(s)// Statement has expression(s) –Expression(s)// Expression has operator(s) and operand(s) –Operator(s) –Operand(s) –Data

13 Tutorial Introduction to C++  Program as Bottom-Up hierarchy of syntax categories (OOP ‘Part-of’ relationship demonstrated): –Program –Function(s)// Function(s) are part of a program –Statement(s)// Statement(s) are part of a function –Expression(s)// Expression(s) are part of a statement –Operator(s)// Operator(s) are part of an expression –Operand(s) // Operand(s) are part of an expression –Data

14 Typical structure of an elementary program void main() { } Have a look at handout: the “Hello, World!” program

15 Tutorial Introduction to C++ t Names –strings of characters of any length –case sensitive –key words are reserved t Names, also called identifiers: –reserved words –standard identifiers –user defined identifiers –examples

16 Tutorial Introduction to C++ t Examples t Names, also called identifiers: –reserved words ( if, else, for, while, … ) –standard identifiers ( cin, cout, … ) –user defined identifiers ( Price, Pom12a, FileSize, Counter, Ion12bcd, … )

17 Tutorial Introduction to C++ t Data: Literal Values and Variables

18 Tutorial Introduction to C++ t Data – classification by type: –Boolean (keyword bool ) –Character (keyword char ) –Integer (keywords int, unsigned, short, long ) –Real (keywords float, double, long double )

19 Tutorial Introduction to C++ t Operators: Survey on arithmetic, relational, logical and assignment operators. –Arithmetic*/% –+- –Relational >= –Equality==!= –Logical AND (conjunction) && –Logical OR (disjunction)|| –Assignment=

20 Tutorial Introduction to C++ t Expressions - are composed of operands and operators; A – 3 * 5.6 A = B + C A = B = A = (B = C / (D*E)) + F; Attention: expression terminated by ; is a statement Attention: A program is a sequence of statements

21 Tutorial Introduction to C++ t Executable statements: assignment = ; x = 5; How to read?“x becomes 5”or “x gets 5”or “x takes the value of 5”but never x equals 5 (NO!)

22 Tutorial Introduction to C++ t Executable statements: selection/decision if ( ) if ( ) else switch statement

23 Tutorial Introduction to C++ t Example: fragment of linear equation solution if ( ) if ( b != 0 ) x = -c/b; if ( b != 0 ) { x = -c/b; cout << “\n Solution is =“ << x; }

24 Tutorial Introduction to C++ t Example: fragment of triangle area problem if ( ) else if ( a+b>c && b+c>a && a+c>b) { p = (a+b+c)/2; s = sqrt( p*(p-a)*(p-b)*(p-c) ); cout << “\n Area is = “ << s; } else cout << “\nYou entered invalid data“;

25 Tutorial Introduction to C++ t Example: Fragment of menu choice program switch statement int choice; cin >> choice; switch (choice) { case 1:Rectangle();break; case 2:Square();break; case 3:Triangle();break; case 4:Circle();break; default:cout << “\n Invalid input”; };

26 Tutorial Introduction to C++ t Executable statements: iteration/repetition –for ( ; ; ) –while ( ) –do while( ) ;

27 Tutorial Introduction to C++ t Example: sum of first five integers s= –for ( ; ; ) int I, s=0; for ( I=1; I<=5; I++ ) { s = s + I; // display intermediate results cout << ‘\n’ << s; } // display final result cout << “\n\n\nFinal sum is = ” << s;

28 Tutorial Introduction to C++ t Example: sum of first five integers s=  while ( ) int I = 1, s; s=0; while ( I<=5 ) { s = s + I; // display intermediate results cout << ‘\n’ << s; I = I + 1; } // display final result cout << “\n\n\nFinal sum is = ” << s;

29 Tutorial Introduction to C++ t Example: sum of first five integers s=  do while( ) ; int I = 1; int s = 0; do { s = s + I; // display intermediate results cout << ‘\n’ << s; I = I + 1; } while (I<5); // display final result cout << “\n\n\nFinal sum is = ” << s;

30 Tutorial Introduction to C++ Elementary standard input/output: t I/O - C notation based on library functions getchar(), putchar() - Read/Write a character gets(), puts() - Read/Write a string of chars scanf(), printf() - formatted Read/Write t I/O - C++ notation based on OO streams cin - standard input stream cout - standard output stream

31 The “Hello, World!” program C notation #include void main( ) { printf(“\nHello, World!”); }

32 The “Hello, World!” program C++ notation #include void main( ) { cout << “\nHello, World!”; }

33 The “Hello, World!” program C++ notation #include using namespace std; void main( ) { cout << “\nHello, World!”; }

34 The “Hello, World!” program #include In C++, a stream is a sequence of characters associated with an input device, or an output device, or a disk file. Class iostream defines object cin as the stream associated with input device (keyboard). Class iostream defines object cout as the stream associated with output device (screen). Class iostream also defines: –input operator >> ( extract from input stream); –output operator << ( insert to output stream).

35 The “Hello, World!” program Concrete form: using namespace std; Abstract form: using namespace ; This line indicates that the program uses objects defined in the namespace specified by. This line should always follow the #include-s.

36 Before lecture end Lecture: A Tutorial Introduction to C++ More to read: Friedman/Koffman, Chapter 02 Or Coming approx. 60 slides

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2: Overview of C++ Problem Solving, Abstraction, and Design using C++ 5e by Frank L. Friedman and Elliot B. Koffman

38 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C++ Background Introduced by Bjarne Stroustrup of AT&T’s Bell Laboratories in mid-1980’s Based on C Supports object-oriented programming 1998 Standard

39 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2.1 C++ Language Elements Comments Compiler directives Function main Declaration statements Executable statements

40 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Comments // symbols indicate a line comment - apply to just the rest of the line Block comments start with /* and end with */ - apply to as many lines as you like Used to describe the code in English or provide non-code information E.g. to include the name of the program or the author’s name

41 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Listing 2.1 Converting miles to kilometers

42 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley #include Compiler directive Includes previously written code from a library into your program E.g. #include has operators for performing input and output within the program Libraries allow for code reuse

43 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley using namespace std; Indicates to compiler that this program uses objects defined by a standard namespace called std. Ends with a semicolon Follows #include directives in the code Must appear in all programs

44 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Function main int main ( ) { // function body }

45 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Function main Exactly one main function per program A function is a collection of related statements that perform a specific operation int indicates the return type of the function ( ) indicates no special information passed to the function by the operating system

46 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Types of Statements Declaration statements - describe the data the function needs: const float KM_PER_MILE = 1.609; float miles, kms; Executable statements - specify the actions the program will take: cout << “Enter the distance in miles: “; cin >> miles;

47 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2.2 Reserved Words (Keywords) Have special meaning in C++ Cannot be used for other purposes

48 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Table 2.1 Reserved words in Listing 2.1

49 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Identifiers Names for data and objects to be manipulated by the program Must begin with a letter or underscore (not recommended) Consist only of letters, digits, and underscores Cannot be reserved word Upper and lower case significant

50 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Identifiers Identifier Use cin C++ name for standard input stream cout C++ name for standard output stream km Data element for storing distance in kms KM_PER_MILE Conversion constant miles Data element for storing distance in miles std C++ name for the standard namespace

51 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2.3 Data Types Defines a set of values and operations that can be performed on those values integers –positive and negative whole numbers, e.g. 5, -52, –short, int, long –represented internally in binary –predefined constants INT_MIN and INT_MAX

52 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Data Types (con’t) Floating point (real) –number has two parts, integral and fractional –e.g. 2.5, , , 5.0 –float, double, long double –stored internally in binary as mantissa and exponent –10.0 and 10 are stored differently in memory

53 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Data Types (con’t) Boolean –named for George Boole –represent conditional values –values: true and false

54 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Data Types (con’t) Characters –represent individual character values E.g. ’A’ ’a’ ’2’ ’*’ ’”’ ’ ’ –stored in 1 byte of memory –special characters: escape sequences E.g. ’\n’ ’\b’ ’\r’ ’\t’ ‘\’’

55 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley string Class Strings not built-in, but come from library Classes extend C++ string literal enclosed in double quotes E.g.: “Enter speed: “ “ABC” “B” “true” “1234” #include –for using string identifiers, but not needed for literals

56 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Variable Declarations Set aside memory with a specific name for the data and define its values and operations The value can change during execution type identifier-list; E.g.:float x, y; int me, you; float week = 40.0; string flower = “rose”;

57 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Constant Declarations Memory cells whose values cannot change once set const type constant-identifier = value; E.g.: const float KM_PER_MILE = 1.609; Often identified by using all upper case name

58 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Listing 2.2 Printing a welcoming message

59 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2.4 Executable Statements Assignment statements Input statements Program output The return statement

60 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 2.2 Memory (a) before and (b) after execution of a program

61 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Assignment Statements variable = expression; E.g.: kms = KM_PER_MILE * miles;

62 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Input Statements Obtain data for program to use - different each time program executes Standard stream library iostream cin - name of stream associated with standard input device (keyboard by default) Extraction operator (>>) E.g.: cin >> miles; cin >> age >> firstInitial;

63 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley In Listing 2.2: cin >> letter1 >> letter2 >> lastname; has the effect:

64 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 2.6 Effect of cin >> letter1 >> letter2 >> lastname;

65 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Program Output Used to display results of program Also standard stream library iostream cout - name of stream associated with standard output device (monitor by default) Insertion operator (<<) for each element cout << data-element;

66 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Program Output cout statement can be broken across lines Strings cannot be broken across lines Prompt messages used to inform program user to enter data Screen cursor is a moving marker indicating the position of where the next character will be displayed endl (or ‘\n’) causes a new line in output

67 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Output Example cout << “The distance in kilometers is “ << kms << endl; If variable kms has value 16.09, the output is: The distance in kilometers is 16.09

68 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The return Statement Last line of main function is typically return 0; This transfers control from the program to the operating system, indicating that no error has occurred

69 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Listing 2.3 General Form of a C++ Program

70 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Program Style Use of spacing –one statement per line –blanks after comma, around operators –in between some lines of code for readability Use of comments –header section –document algorithm steps –describe difficult code

71 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Program Style Naming conventions for identifiers –Variables in all lower case, with initial capital letter for additional words. No underscore. –Constants in all upper case, with underscores between words.

72 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2.6 Arithmetic Expressions int data type + - * / % Integer division examples - result is integer 15 / 3 = 5 15 / 2 = 7 0 / 15 = 0 15 / 0 undefined

73 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Modulus for Integers Used only with integers Yields remainder - the result is integer Examples: 7 % 2 = % 100 = % 5 = 4 15 % 0 undefined 15 % -7 system dependent

74 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Mixed-type Expressions E.g.: 4.6 / 2 evaluates to 2.3 Rule: when an integer and a floating point operand are combined by an operator, the integer gets converted to the floating point type Caveat: this rule is dependent on operator precedence rules

75 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Mixed-type Assignments If the variable on left side of assignment is of different type than the type of the evaluated expression on the right side of =, the result of the expression must be converted to the appropriate type

76 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Mixed-type Assignment Examples float a, b, x; int m, n; a=10;// result is 10.0 stored in a b = 3.5; m=5; n = 10; x = m / n;// result is 0 assigned to x m = b * 3;// result is 10 assigned to m

77 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Order of Operator Precedence ( )nested expressions evaluated inside out unary +, - *, /, % binary +, - Highest Lowest Associativity Warning: watch out for the types of operands and the type of the result from evaluating each operand!

78 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 2.10 Evaluation for z - (a +b / 2) + w * -y

79 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Figure 2.11 Evaluation tree for m = x + k / 2;

80 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Mathematical Formulas in C++ a = bc not valid C++ syntax Must use * operator a = b * c; m = y - b x - a Must use ( ) and / m = (y - b) / (x - a);

81 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Case Study: Coin Collection Problem statement Saving nickels and pennies and want to exchange these coins at the bank so need to know the value of coins in dollars and cents. Analysis –Need to count of nickels and pennies separately –Determine total value in cents –Use integer division by 100 to calculate dollars –Use modulus (%) to get remaining cents

82 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Case Study: Data Requirements Problem input –string name –integer nickels –integer pennies Problem output –integer dollars –integer change Additional program variables –integer totalCents

83 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Case Study: Formulas One dollar equals 100 pennies One nickel equals 5 pennies

84 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Case Study: Design - Algorithm 1. Read in your niece’s first name 2. Read in the count of nickels and pennies 3. Compute the total value in cents 4. Find the value in dollars and loose change. 5. Display the value in dollars and loose change.

85 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Case Study: Design - Algorithm 1. Read in your niece’s first name 2. Read in the count of nickels and pennies 3. Compute the total value in cents 3.1 totalCents is 5 times nickels plus pennies 4. Find the value in dollars and loose change. 4.1 dollars is integer quotient of totalCents and change is integer remainer of totalCents and Display the value in dollars and loose change.

86 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Case Study: Implementation / used to implement step 4.1 % used to implement step 4.2 Verify that correct data types are used Verify mixed-type operations and promotions

87 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Case Study: Testing Test results using various input combinations Verify results by hand or with calculator

88 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Listing 2.4 Value of a coin collection // File: coins.cpp // Determines the value of a coin collection #include using namespace std; int main() { string name;// input: niece’s first name int pennies;// input: count of pennies int nickels; // input: count of nickels int dollars;// output: value of coins in dollars int change;// output: value of coins in cents int totalCents;// total cents represented

89 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley // Read in your niece’s first name. cout << "Enter your first name: "; cin >> name; // Read in the count of nickels and pennies. cout << "Enter the number of nickels: "; cin >> nickels; cout << "Enter the number of pennies: "; cin >> pennies; Listing 2.4 Value of a coin collection (continued)

90 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley // Compute the total value in cents. totalCents = 5 * nickels + pennies; // Find the value in dollars and change. dollars = totalCents / 100;// integer division change = totalCents % 100; // Display the value in dollars and change. cout << "Good work " << name << '!' << endl; cout << "Your collection is worth " << dollars << " dollars and " << change << " cents." << endl; return 0; } Listing 2.4 Value of a coin collection (continued)

91 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley coins.cpp Sample Execution Enter your first name: Sally Enter the number of nickels: 30 Enter the number of pennies: 77 Good work Sally! Your collection is worth 2 dollars and 27 cents.

92 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2.7 Interactive Mode, Batch Mode, and Data Files Interactive mode - input from user via keyboard Batch mode - input via a file, no user interaction Input/output redirection can be used for batch mode

93 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Input Redirection Requires a file already containing all input data before the program is executed At the time the program is executed, the input file is specified E.g. in UNIX metric < mydata Executes the program metric using the file mydata for input Echo printing often used with batch input

94 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Output Redirection Sends ALL output to a file instead of to the display monitor Not typically used with interactive input mode, since even prompt messages will be sent to the output file E.g. in UNIX (not typical) metric > myoutput Both input AND output redirection metric myoutput

95 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2.8 Common Programming Errors Syntax –a grammatical error in the formation of a program statement –detected by the compiler –prevents translation of source code into object code, so no execution possible –messages are compiler dependent, so you must learn how your compiler identifiers errors

96 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Common Programming Errors Run-time errors –detected and displayed during execution of a program –usually fatal - halts execution of code

97 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Common Programming Errors Undetected errors –program runs to completion, but results are incorrect –often the result of input of the wrong type being entered

98 Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Common Programming Errors Logic errors –caused by a faulty algorithm –often difficult to locate –can result in either a run-time or undetected error –system cannot identify - up to programmer to locate –vital to verify program output to ensure correct results

99 Thank You For Your Attention!