The Fundamentals of C++

Similar documents
C++ Language Tutorial

Pemrograman Dasar. Basic Elements Of Java

Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)

Topics. Parts of a Java Program. Topics (2) CS 146. Introduction To Computers And Java Chapter Objectives To understand:

JAVA - QUICK GUIDE. Java SE is freely available from the link Download Java. So you download a version based on your operating system.

C++ INTERVIEW QUESTIONS

Number Representation

The programming language C. sws1 1

Chapter One Introduction to Programming

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

About The Tutorial. Audience. Prerequisites. Copyright & Disclaimer

How to: Use Basic C++, Syntax and Operators

Sources: On the Web: Slides will be available on:

Objective-C Tutorial

MSP430 C/C++ CODE GENERATION TOOLS Compiler Version 3.2.X Parser Error/Warning/Remark List

CS 106 Introduction to Computer Science I

Appendix K Introduction to Microsoft Visual C++ 6.0

Computer Organization

Introduction to Visual C++.NET Programming. Using.NET Environment

PROGRAMMING IN C PROGRAMMING IN C CONTENT AT A GLANCE

Introduction to Java Applications Pearson Education, Inc. All rights reserved.

Variables, Constants, and Data Types

C++ Essentials. Sharam Hekmat PragSoft Corporation

First Java Programs. V. Paúl Pauca. CSC 111D Fall, Department of Computer Science Wake Forest University. Introduction to Computer Science

UIL Computer Science for Dummies by Jake Warren and works from Mr. Fleming

The University of Alabama in Huntsville Electrical and Computer Engineering CPE Test #4 November 20, True or False (2 points each)

JavaScript: Introduction to Scripting Pearson Education, Inc. All rights reserved.

Numeral Systems. The number twenty-five can be represented in many ways: Decimal system (base 10): 25 Roman numerals:

2 ASCII TABLE (DOS) 3 ASCII TABLE (Window)

Chapter 2: Elements of Java

An Incomplete C++ Primer. University of Wyoming MA 5310

C Programming. for Embedded Microcontrollers. Warwick A. Smith. Postbus 11. Elektor International Media BV. 6114ZG Susteren The Netherlands

A brief introduction to C++ and Interfacing with Excel

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Oct: 50 8 = 6 (r = 2) 6 8 = 0 (r = 6) Writing the remainders in reverse order we get: (50) 10 = (62) 8

Moving from CS 61A Scheme to CS 61B Java

Keywords are identifiers having predefined meanings in C programming language. The list of keywords used in standard C are : unsigned void

JavaScript: Control Statements I

VB.NET Programming Fundamentals

CSI 333 Lecture 1 Number Systems

Chapter 2 Introduction to Java programming

CSE 1223: Introduction to Computer Programming in Java Chapter 2 Java Fundamentals

MISRA-C:2012 Standards Model Summary for C / C++

IBM Emulation Mode Printer Commands

Introduction to Java

So far we have considered only numeric processing, i.e. processing of numeric data represented

Numbering Systems. InThisAppendix...

What is a Loop? Pretest Loops in C++ Types of Loop Testing. Count-controlled loops. Loops can be...

Java Basics: Data Types, Variables, and Loops

Programming Microcontrollers in C

Useful Number Systems

Chapter 3. Input and output. 3.1 The System class

C++ Programming Language

2010/9/19. Binary number system. Binary numbers. Outline. Binary to decimal

Ecma/TC39/2013/NN. 4 th Draft ECMA-XXX. 1 st Edition / July The JSON Data Interchange Format. Reference number ECMA-123:2009

Memory is implemented as an array of electronic switches

Introduction to Python

Informatica e Sistemi in Tempo Reale

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

Systems I: Computer Organization and Architecture

Computer Science 281 Binary and Hexadecimal Review

Object Oriented Software Design

Secrets of printf. 1 Background. 2 Simple Printing. Professor Don Colton. Brigham Young University Hawaii. 2.1 Naturally Special Characters

Object Oriented Software Design

C++ Input/Output: Streams

Comp151. Definitions & Declarations

Chapter 2 Elementary Programming

Comparative Study of C, C++, C# and Java Programming Languages

- Hour 1 - Introducing Visual C++ 5

Symbols in subject lines. An in-depth look at symbols

Introduction to Python

Basics of I/O Streams and File I/O

Lecture 3. Arrays. Name of array. c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] c[8] c[9] c[10] c[11] Position number of the element within array c

Lecture 5: Java Fundamentals III

Programming languages C

Passing 1D arrays to functions.

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

The C Programming Language course syllabus associate level

C++FA 3.1 OPTIMIZING C++

Programming Languages CIS 443

Computer Programming Tutorial

Stacks. Linear data structures

Base Conversion written by Cathy Saxton

ASCII Code. Numerous codes were invented, including Émile Baudot's code (known as Baudot

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas

Curriculum Map. Discipline: Computer Science Course: C++

Answers to Review Questions Chapter 7

CS106A, Stanford Handout #38. Strings and Chars

.NET Standard DateTime Format Strings

Levent EREN A-306 Office Phone: INTRODUCTION TO DIGITAL LOGIC

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

1 Abstract Data Types Information Hiding

Chapter 1 Java Program Design and Development

Java Programming Fundamentals

Visual Logic Instructions and Assignments

Transcription:

J. P. Cohoon and J. W. Davidson 1999 McGraw-Hill, Inc. The Fundamentals of C++ Basic programming elements and concepts

Ch 2 / Foil 2 Program Organization Program statement Definition Declaration Action Executable unit Named set of program statements Different languages refer to executable units by different names Subroutine: Fortran and Basic Procedure: Pascal Function : C++

Ch 2 / Foil 3 Program Organization C++ program Collection of definitions, declarations and functions Collection can span multiple files Advantages Structured into small understandable units Complexity is reduced Overall program size decreases

Ch 2 / Foil 4 Object Object is a representation of some information ❶ Name ❶ Values or properties Data members ❶ Ability to react to requests (messages)!! Member functions When an object receives a message, one of two actions are performed ❶ Object is directed to perform an action ❶ Object changes one of its properties

Ch 2 / Foil 5 A First Program - Greeting.cpp Preprocessor directives Function named main() indicates start of program // Program: Display greetings // Author(s): Ima Programmer // Date: 1/25/1999 Comments #include <iostream> #include <string> Provides simple access using namespace std; int main() { cout << "Hello world!" << endl; return 0; } Ends executions of main() which ends program Insertion statement Function

Ch 2 / Foil 6 Greeting Output

#include <iostream> #include <string> using namespace std; int main() { // Extract length and width cout << "Rectangle dimensions: "; float Length; float Width; cin >> Length >> Width; } Area.cpp Definitions Extraction // Compute and insert the area Definition with float Area = Length * Width; initialization cout << "Area = " << Area << " = Length " << Length << " * Width " << Width << endl; return 0;

Ch 2 / Foil 8 Area.cpp Output

Ch 2 / Foil 9 Comments Allow prose or commentary to be included in program Importance Programs are read far more often than they are written Programs need to be understood so that they can be maintained C++ has two conventions for comments // single line comment (preferred) /* long comment */ (save for debugging) Typical uses Identify program and who wrote it Record when program was written Add descriptions of modifications

Ch 2 / Foil 10 Fundamental C++ Objects C++ has a large number of fundamental or built-in object types The fundamental object types fall into one of three categories Integers objects Floating-point objects Character objects Z 5 1.28345 1 P 3.14

Ch 2 / Foil 11 Integer Object Types The basic integer object type is int Thesizeofanint depends on the machine and the compiler On PCs it is normally 16 or 32 bits Other integers object types short: typically uses less bits long: typically uses more bits Different types allow programmers to use resources more efficiently Standard arithmetic and relational operations are available for these types

Ch 2 / Foil 12 Integer Constants Integer constants are positive or negative whole numbers Integer constant forms Decimal Octal (base 8) Digits0,1,2,3,4,5,6,7 Hexadecimal (base 16) Digits0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f Consider 31 oct and 25 dec

Ch 2 / Foil 13 Specifying Syntax Need A notation for exactly expressing a programming language element Notation is describing the programming language Notation is not part of the programming language Notation must be able to describe Elements that have several forms Elements that are Required Optional Repeated

Ch 2 / Foil 14 Notation Conventions Parentheses () Anything surrounded by parentheses must be used Braces [] Anything surrounded by brackets is optional Vertical line Elements on either side of the line are acceptable Ellipsis... The pattern established before the ellipsis continues Specifier Name of a language element

Ch 2 / Foil 15 Notation Examples NonZeroDigit 1 2...9 Digit 0 NonZeroDigit OctalDigit 0 1...7 HexDigit 0 1... 9 A B... F a b... f Digits NonZeroDigit [ Digit... Digit ]

Ch 2 / Foil 16 Decimal Constants Examples 97 40000L 50000 23a (illegal) The type of the constant depends on its size, unless the type specifier is used Sequence of one or more digits digits Digits [ L l ] Optional Lorl

Ch 2 / Foil 17 Octal Constants Examples 017 0577777L 01267333l 01267335 0482 (illegal) The type of the constant depends on its size, unless the type specifier is used Sequence of one or more octal digits. First digit must be 0 OctalDigits [ L l ] Optional L or l

Ch 2 / Foil 18 Hexadecimal Constants Letters represent the hex digits a or A - 10 d or D - 13 b or B - 11 e or E - 14 c or C - 12 f or F - 15 Examples 0x2C 0XAC12EL The type of the constant depends on its size, unless the type specifier is used

Ch 2 / Foil 19 Character Object Types Character type char is related to the integer types Characters are encoded using a scheme where an integer represents a particular character ASCII is the dominant encoding scheme Examples ' ' encoded as 32 '+' encoded as 43 'A' encoded as 65 'Z' encoded as 90 'a' encoded as 97 'z' encoded as 122

Ch 2 / Foil 20 Character Operations Arithmetic and relational operations are defined for characters types 'a' < 'b' is true '4' > '3' is true 'b' + 2 produces the number that represents 'd' '8' - '3' produces 5 Arithmetic with characters needs to be done with care '9' + 3 produces the number that represents '<'

Ch 2 / Foil 21 Character Constants Explicit characters within single quotes 'a' 'D' '*' Special characters - delineated by a backslash \ Two character sequences (sometimes called escape codes) within single quotes Important special characters '\t' denotes a tab '\n' denotes a new line '\\' denotes a backslash

Ch 2 / Foil 22 Escape Codes Character ASCII Name Sequence newline NL \n horizontal tab HT \t backspace BS \b form feed FF \f alert or bell BEL \a carriage return CR \r vertical tab VT \v backslash \ \\ single quote ' \' double quote " \" question mark? \?

Ch 2 / Foil 23 Literal String Constants A literal string constant is a sequence of zero or more characters enclosed in double quotes "Are you aware?\n" Individual characters of string are stored in consecutive memory locations The null character ('\0') is appended to strings so that the compiler knows where in memory strings ends 010040 010041 010042 Memory... 010054 010055 A r e y o u a w a r e? \n \0

Ch 2 / Foil 24 Floating-Point Object Types Floating-point object types represent real numbers Integer part Fractional part The number 108.1517 breaks down into the following parts 108 - integer part 1517 - fractional part C++ provides three floating-point object types float double long double

Ch 2 / Foil 25 Floating-Point Constants Standard decimal notation Digits. Digits [ f F l L] 134.123 0.15F Standard scientific notation Digits. Digits Exponent [ f F l L] Where Exponent is (e E) [ + -] Digits 1.45E6 0.979e-3L When not specified, floating-point constants are of type double

Ch 2 / Foil 26 Names Used to denote program values or components A valid name is a sequence of Letters (upper and lowercase) Digits A name cannot start with a digit Underscores A name should not normally start with an underscore Names are case sensitive MyObject is a different name than MYOBJECT There are two kinds of names Keywords Identifiers

Ch 2 / Foil 27 Keywords Keywords are words reserved as part of the language int, return, float, double They cannot be used by the programmer to name things They consist of lowercase letters only They have special meaning to the compiler

Ch 2 / Foil 28 Keywords asm do if return typedef auto double inline short typeid bool dynamic_cast int signed typename break delete long sizeof union case else mutable static unsigned catch enum namespace static_cast using char explicit new struct virtual class extern operator switch void const false private template volatile const_cast float protected this wchar_t continue for public throw while default friend register true union delete goto reinterpret_cast try unsigned

Ch 2 / Foil 29 Identifiers Identifiers should be Short enough to be reasonable to type (single word is norm) Standard abbreviations are fine (but only standard abbreviations) Long enough to be understandable When using multiple word identifiers capitalize the first letter of each word Examples Min Temperature CameraAngle CurrentNbrPoints

Ch 2 / Foil 30 Definitions All objects that are used in a program must be defined An object definition specifies Type Name A common definition form Known type List of one or more identifiers Type Id, Id,..., Id; Our convention is one definition per statement!

Ch 2 / Foil 31 Examples char Response; int MinElement; float Score; float Temperature; int i; int n; char c; float x; Objects are uninitialized with this definition form (Value of a object is whatever is in its assigned memory location)

Ch 2 / Foil 32 Arithmetic Operators Common Note Addition + Subtraction - Multiplication * Division / Mod % No exponentiation operator Single division operator Write m*x + b not mx + b Operators are overloaded to work with more than one type of object

Ch 2 / Foil 33 Integer Division Integer division produces an integer result Truncates the result Examples 3 / 2 evaluates to 1 4 / 6 evaluates to 0 10 / 3 evaluates to 3

Ch 2 / Foil 34 Mod Produces the remainder of the division Examples 5 % 2 evaluates to 1 12 % 4 evaluates to 0 4 % 5 evaluates to 4

Ch 2 / Foil 35 Operators and Precedence Consider mx + b Consider m*x + b which of the following is it equivalent to (m * x) + b m * (x + b) Operator precedence tells how to evaluate expressions Standard precedence order () * / % + - Evaluate first, if nested innermost done first Evaluate second. If there are several, then evaluate from left-to-right Evaluate third. If there are several, then evaluate from left-to-right

Ch 2 / Foil 36 Operator Precedence Examples 1 + 2 * 3 / 4-5 2 * 4 / 5 + 3 * 5 % 4 3.0 * 3 / 4 (1 + 3) * ((2 + 4 * 6) * 3) / 2 + 2

Ch 2 / Foil 37 Defining and Initializing When an object is defined using the basic form, the memory allotted to it contains random information Good idea to specify its desired value at the same time Exception is when the next statement is an extraction for the object Known type Identifiers Expressions are used to initialize corresponding objects Type Id = Exp, Id = Exp..., Id = Exp; Our convention is one definition per statement!

Ch 2 / Foil 38 Examples int FahrenheitFreezing = 32; char LetterGrade = 'A'; cout << "Slope of line: "; float m; cin >> m; cout << "Intercept: "; float b; cin >> b; cout << "X value of interest: "; float x; cin >> x; float y = (m * x) + b;

// Program 2.11: Compute velocity of car #include <iostream> #include <string> using namespace std; int main() { cout << "All inputs are integers!\n"; cout << "Start milepost? "; int StartMilePost; cin >> StartMilePost; cout << "Elapsed time (hours minutes seconds)? ; int EndHour; int EndMinute; int EndSecond; cin >> EndHour >> EndMinute >> EndSecond; cout << "End milepost? ";

int EndMilePost; cin >> EndMilePost; float ElapsedTime = EndHour + (EndMinute / 60.0) + (EndSecond / 3600.0); int Distance = EndMilePost - StartMilePost; float Velocity = Distance / ElapsedTime; cout << "\ncar traveled " << Distance << " miles in "; cout << EndHour << " hrs " << EndMinute << " min " << EndSecond << " sec\n"; cout << "Average velocity was " << Velocity << " mph " << endl; } return 0;