Chapter 2: Overview of C++

Similar documents
C++ Programming: From Problem Analysis to Program Design, Third Edition

Review: Exam 1. Your First C++ Program. Declaration Statements. Tells the compiler. Examples of declaration statements

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program

Chapter 2: Basic Elements of C++

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction

LECTURE 02 INTRODUCTION TO C++

C++ Basic Elements of COMPUTER PROGRAMMING. Special symbols include: Word symbols. Objectives. Programming. Symbols. Symbols.

Chapter 2: Introduction to C++

Chapter 2: Special Characters. Parts of a C++ Program. Introduction to C++ Displays output on the computer screen

CSCE 110 PROGRAMMING FUNDAMENTALS

2.1. Chapter 2: Parts of a C++ Program. Parts of a C++ Program. Introduction to C++ Parts of a C++ Program

Chapter 1 Introduction to Computers and C++ Programming

1. C++ Overview. C++ Program Structure. Data Types. Assignment Statements. Input/Output Operations. Arithmetic Expressions.

Introduction to Programming EC-105. Lecture 2

Fundamentals of Programming CS-110. Lecture 2

Objectives. In this chapter, you will:

The C++ Language. Arizona State University 1

BITG 1233: Introduction to C++

Introduction to Programming

! A program is a set of instructions that the. ! It must be translated. ! Variable: portion of memory that stores a value. char

A First Program - Greeting.cpp

Overview of C++ Chapter Objectives

6.096 Introduction to C++ January (IAP) 2009

Lecture 3 Tao Wang 1

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York

Your First C++ Program. September 1, 2010

Computer Programming : C++

CHAPTER 3 BASIC INSTRUCTION OF C++

PART I. Part II Answer to all the questions 1. What is meant by a token? Name the token available in C++.

Data and Variables. Data Types Expressions. String Concatenation Variables Declaration Assignment Shorthand operators. Operators Precedence

Chapter 2. C++ Basics. Copyright 2014 Pearson Addison-Wesley. All rights reserved.

CS101: Fundamentals of Computer Programming. Dr. Tejada www-bcf.usc.edu/~stejada Week 1 Basic Elements of C++

Chapter 2. C++ Basics. Copyright 2014 Pearson Addison-Wesley. All rights reserved.

Chapter 2. C++ Basics

4. Inputting data or messages to a function is called passing data to the function.

9/10/10. Arithmetic Operators. Today. Assigning floats to ints. Arithmetic Operators & Expressions. What do you think is the output?

By the end of this section you should: Understand what the variables are and why they are used. Use C++ built in data types to create program

2 nd Week Lecture Notes

Introduction to C++ Programming Pearson Education, Inc. All rights reserved.

Chapter 2 Basic Elements of C++

Overview. - General Data Types - Categories of Words. - Define Before Use. - The Three S s. - End of Statement - My First Program

UNIT- 3 Introduction to C++

REVIEW. The C++ Programming Language. CS 151 Review #2

Lab # 02. Basic Elements of C++ _ Part1

Full file at

Arithmetic Operators. Binary Arithmetic Operators. Arithmetic Operators. A Closer Look at the / Operator. A Closer Look at the % Operator

BASIC ELEMENTS OF A COMPUTER PROGRAM

Chapter 2 C++ Fundamentals

Unit 3. Constants and Expressions

7/8/10 KEY CONCEPTS. Problem COMP 10 EXPLORING COMPUTER SCIENCE. Algorithm. Lecture 2 Variables, Types, and Programs. Program PROBLEM SOLVING

Intro to Programming & C Why Program? 1.2 Computer Systems: Hardware and Software. Why Learn to Program?

Creating a C++ Program

Unit 3, Lesson 2 Data Types, Arithmetic,Variables, Input, Constants, & Library Functions. Mr. Dave Clausen La Cañada High School

Basics of Java Programming

Chapter Overview. C++ Basics. Variables and Assignments. Variables and Assignments. Keywords. Identifiers. 2.1 Variables and Assignments

CS242 COMPUTER PROGRAMMING

C++ Basics. Lecture 2 COP 3014 Spring January 8, 2018

Chapter 2. Outline. Simple C++ Programs

C++ PROGRAMMING. For Industrial And Electrical Engineering Instructor: Ruba A. Salamh

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

VARIABLES & ASSIGNMENTS

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

Chapter 1 INTRODUCTION

On a 64-bit CPU. Size/Range vary by CPU model and Word size.

! A literal represents a constant value used in a. ! Numbers: 0, 34, , -1.8e12, etc. ! Characters: 'A', 'z', '!', '5', etc.

Programming - 1. Computer Science Department 011COMP-3 لغة البرمجة 1 لطالب كلية الحاسب اآللي ونظم المعلومات 011 عال- 3

ADARSH VIDYA KENDRA NAGERCOIL COMPUTER SCIENCE. Grade: IX C++ PROGRAMMING. Department of Computer Science 1

Introduction to Programming using C++

CSCI 123 Introduction to Programming Concepts in C++

Another Simple Program: Adding Two Integers

Engineering Problem Solving with C++, 3e Chapter 2 Test Bank

Introduction to the C++ Programming Language

Programming in C++ 5. Integral data types

c) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance.

1. Match each of the following data types with literal constants of that data type. A data type can be used more than once. A.

Programming. C++ Basics

Full file at C How to Program, 6/e Multiple Choice Test Bank

CSI33 Data Structures

C++ Basics. Data Processing Course, I. Hrivnacova, IPN Orsay

C++ character set Letters:- A-Z, a-z Digits:- 0 to 9 Special Symbols:- space + - / ( ) [ ] =! = < >, $ # ; :? & White Spaces:- Blank Space, Horizontal

Reserved Words and Identifiers

THE INTEGER DATA TYPES. Laura Marik Spring 2012 C++ Course Notes (Provided by Jason Minski)

download instant at Introduction to C++

Maciej Sobieraj. Lecture 1

Features of C. Portable Procedural / Modular Structured Language Statically typed Middle level language

Intro to Computer Programming (ICP) Rab Nawaz Jadoon

Introduction of C++ OOP forces us to think in terms of object and the interaction between objects.

1. In C++, reserved words are the same as predefined identifiers. a. True

Week 2: Console I/O and Operators Arithmetic Operators. Integer Division. Arithmetic Operators. Gaddis: Chapter 3 (2.14,3.1-6,3.9-10,5.

IT 374 C# and Applications/ IT695 C# Data Structures

Introduction to C# Applications

Lecture 2 Tao Wang 1

CSCI 1061U Programming Workshop 2. C++ Basics

Java Notes. 10th ICSE. Saravanan Ganesh

Character Set. The character set of C represents alphabet, digit or any symbol used to represent information. Digits 0, 1, 2, 3, 9

Computational Physics Operating systems

CHAPTER-6 GETTING STARTED WITH C++

c++ keywords: ( all lowercase ) Note: cin and cout are NOT keywords.

Getting started with C++ (Part 2)

Operations. Making Things Happen

Transcription:

Chapter 2: Overview of C++ Problem Solving, Abstraction, and Design using C++ 6e by Frank L. Friedman and Elliot B. Koffman

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 2

2.1 C++ Language Elements Comments Compiler directives Function main Declaration statements Executable statements 3

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 4

Listing 2.1 Converting miles to kilometers 5

#include <filename> Compiler directive Includes previously written code from a library into your program E.g. #include <iostream> has operators for performing input and output within the program Libraries allow for code reuse 6

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 7

Function main int main ( ) { // function body } 8

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 9

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; 10

2.2 Reserved Words (Keywords) Have special meaning in C++ Cannot be used for other purposes 11

Table 2.1 Reserved words in Listing 2.1 12

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 13

Identifiers Identifier Use cin C++ name for standard input stream cout C++ name for standard output stream km Data element for storing distance in kilometers KM_PER_MILE Conversion constant miles Data element for storing distance in miles std C++ name for the standard namespace 14

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, 343222 short, int, long represented internally in binary predefined constants INT_MIN and INT_MAX 15

Data Types (con t) Floating point (real) number has two parts, integral and fractional e.g. 2.5, 3.66666666, -.000034, 5.0 float, double, long double stored internally in binary as mantissa and exponent 10.0 and 10 are stored differently in memory 16

Data Types (con t) Boolean named for George Boole represent conditional values values: true and false 17

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 \ 18

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 <string> for using string identifiers, but not needed for literals 19

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

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 21

Listing 2.2 Printing a welcoming message 22

2.4 Executable Statements Assignment statements Input statements Program output The return statement 23

Figure 2.2 Memory (a) before and (b) after execution of a program 24

Assignment Statements variable = expression; E.g.: kms = KM_PER_MILE * miles; 25

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; 26

In Listing 2.2: cin >> letter1 >> letter2 >> lastname; has the effect: 27

Figure 2.6 Effect of cin >> letter1 >> letter2 >> lastname; 28

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; 29

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 30

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 31

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 32

Listing 2.3 General Form of a C++ Program 33

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 34

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

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 36

Modulus for Integers Used only with integers Yields remainder - the result is integer Examples: 7 % 2 = 1 299 % 100 = 99 49 % 5 = 4 15 % 0 undefined 15 % -7 system dependent 37

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 38

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 39

Mixed-type Assignment Examples float a, b, x; int m, n; a=10; b = 3.5; m=5; n = 10; x = m / n; m = b * 3; // result is 10.0 stored in a // result is 0 assigned to x // result is 10 assigned to m 40

Order of Operator Precedence Highest Lowest ( ) nested expressions evaluated inside out unary +, - *, /, % binary +, - Associativity Warning: watch out for the types of operands and the type of the result from evaluating each operand! 41

Step-by-Step Expression Evaluation 1-42 42

Figure 2.10 Evaluation for z - (a +b / 2) + w * -y; 43

Figure 2.11 Evaluation tree for m = x + k / 2: 44

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); 45

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 46

Case Study: Data Requirements Problem input string name integer nickels integer pennies Problem output integer dollars integer change Additional program variables integer totalcents 47

Case Study: Formulas One dollar equals 100 pennies One nickel equals 5 pennies 48

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

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 100 4.2 change is integer remainer of totalcents and 100 5. Display the value in dollars and loose change. 50

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 51

Case Study: Testing Test results using various input combinations Verify results by hand or with calculator 52

Listing 2.4 Value of a coin collection // File: coins.cpp // Determines the value of a coin collection #include <iostream> #include <string> 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 53

Listing 2.4 Value of a coin collection (continued) // 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; 54

Listing 2.4 Value of a coin collection (continued) // 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; } 55

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

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 57

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 58

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 < mydata > myoutput 59

Batch version of miles-to-kms conversion program // File: milesbatch.cpp // Converts distance in miles to kilometers. #include <iostream> using namespace std; int main() { const float KM_PER_MILE = 1.609; // 1.609 km in a mile float miles, // input: distance in miles kms; // output: distance in kilometers // Get the distance in miles. cin >> miles; cout << "The distance in miles is " << miles << endl; // Convert the distance to kilometers. kms = KM_PER_MILE * miles; // Display the distance in kilometers. cout << "The distance in kilometers is " << kms << endl; } return 0; 60

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 61

Miles-to-kms program with syntax error missing // Miles.cpp // Converts distance in miles to kilometers. #include <iostream> using namespace std; // class for stream input/output // use the standard namespace int main() // start of main function { const float km_per_mile = 1.609; // 1.609 km in a mile float miles, // input: distance in miles kms; // output: distance in kilometers // Get the distance in miles. cout << "Enter the distance in miles: ; // missing quote cin >> miles; // Convert the distance to kilometers. kms = km_per_mile * miles; // Display the distance in kilometers. cout << "The distance in kilometers is " << kms << endl; } return 0; 62

Syntax Error display [C++ Error] miles.cpp(12): E2141 Declaration syntax error. [C++ Error] miles.cpp(15): E2380 Unterminated string or character constant. [C++ Error] miles.cpp(16): E2379 Statement missing ;. [C++ Error] miles.cpp(19): E2451 Undefined symbol 'kms'. [C++ Warning] miles.cpp(25): W8080 'miles' is declared but never used. [C++ Warning] miles.cpp(25): W8004 'KM_PER_MILE' is assigned a value that is never used. 63

Common Programming Errors Run-time errors detected and displayed during execution of a program usually fatal - halts execution of code 64

Common Programming Errors Undetected errors program runs to completion, but results are incorrect often the result of input of the wrong type being entered 65

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 66