Upload
vernon-owen
View
225
Download
0
Tags:
Embed Size (px)
Citation preview
Introduction to C++
2.12.1The Parts of a C++ Program
–Anatomy of a simple C++ program
The Parts of a C++ The Parts of a C++ ProgramProgram
// sample C++ program
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, there!";
return 0;
}
preprocessor directive
comment
which namespace to use
beginning of function named main
beginning of block for mainoutput statement
end of block for main
string literalsend 0 to operating system
Hello, there!
A different exampleA different example
// sample C++ program
#include <iostream>
using namespace std;
int main ()
{
int a, b = 1;
a = b + b++;
printf ("%d\n", a);
return 0;
}
preprocessor directive
comment
which namespace to use
beginning of function named main
beginning of block for main
output statement
end of block for main
send 0 to operating system
variable declaration
Increment and Addition operations
2
Special CharactersSpecial CharactersCharacter Name Meaning
// Double slash Beginning of a comment
# Pound sign Beginning of preprocessor directive
< > Open/close brackets Enclose filename in #include
( ) Open/close parentheses
Used when naming a function
{ } Open/close brace Encloses a group of statements
" " Open/close quotation marks
Encloses string of characters
; Semicolon End of a programming statement
/* */ Slash * Comment
2.22.2The cout Object
The The coutcout Object ObjectDisplays output on the computer
screen
You use the stream insertion operator << to send output to cout:
cout << "Programming is fun!";Programming is fun!
The The coutcout Object ObjectCan be used to send more than
one item to cout:
cout << "Hello " << "there!";Or:
cout << "Hello ";cout << "there!";
Hello there!
The The coutcout Object ObjectThis produces one line of output:
cout << "Programming is ";cout << "fun!";
Programming is fun!
The The endlendl Manipulator ManipulatorYou can use the endl manipulator to
start a new line of output. This will produce two lines of output:
cout << "Programming is" << endl;cout << "fun!";
Programming isfun!
The The endlendl Manipulator Manipulator
cout << "Programming is" << endl;cout << "fun!";
Programming isfun!
The The endlendl Manipulator ManipulatorYou do NOT put quotation marks
around endl
The last character in endl is a lowercase L, not the number 1.
endl This is a lowercase L
The The \n \n Escape SequenceEscape SequenceYou can also use the \n escape
sequence to start a new line of output. This will produce two lines of output:
cout << "Programming is\n";cout << "fun!";
Notice that the \n is INSIDE
the string.
The The \n \n Escape SequenceEscape Sequence
cout << "Programming is\n";cout << "fun!";
Programming isfun!
Escape Sequence for use Escape Sequence for use with output (cout)with output (cout)
Escape Sequence
Name Meaning
\n Newline Cursor to go to next line for printing
\t Horizontal tab Cursor to go to next tab stop
\a Alarm Computer to beep
\b Backspace Cursor to back up or left one position
\r Return Cursor to start of current line
\\ Backslash Print backsplash
\’ Single quote Print quotation mark
\” Double quote Print double quotation
cout with variablescout with variables
int number;
number = 10;
cout << “The number is “ << number << endl;
The number is 10
Only pass variable name, no quotes around it
2.32.3The #include Directive
The The #include#include Directive DirectiveInserts the contents of another file
into the programThis is a preprocessor directive, not
part of C++ language#include lines not seen by compiler#include lines ARE seen by
preprocessorDo not place a semicolon at end of #include line (this is syntax you just have to remember)
Recall the Preprocessor ….Recall the Preprocessor ….a) Create file containing the program
with a text editor.b) Run preprocessor to convert source
file directives to source code program statements.
c) Run compiler to convert source program into machine instructions.
d) Run linker to connect hardware-specific code to machine instructions, producing an executable file.
Steps b–d are often performed by a single command or button click.
Errors detected at any step will prevent execution of following steps.
Compiled Languages
Example #includeExample #includeHere we include iostream which has
the cout object in it This is the input-output stream library. iostream is a header file
// sample C++ program
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, there!";
return 0;
}
preprocessor directive
The preprocessor will insert ATthis point in the code the entire contents of iostream header file atthis point of the program. Its contents include the definition of cout object
Where is this file iostream???---answer the <> around it tells the preprocessor it is in a standard location. This is typically downloaded and installed for you when you install C++ (typically there will be an /include directory somewhere in install)
#include <filename> versus #include <filename> versus #include “/path/filename.h”#include “/path/filename.h”#include <filename>
◦ Looks in the IDE C++ devloper tools standard include directories that were created at install time for the file.
#include “/path/filename.h”◦ Looks for the filename.h file in the /path/ directory
path.◦ Used when you are creating your own files (we will
learn later how to do) OR when you have downloaded some 3rd party non-standard C++ header files.
We will see more about thislater in the course
2.42.4Variables and Literals
Variables and LiteralsVariables and LiteralsVariable: a storage location in
memory
◦Has a name and a type of data it can hold
◦Must be defined before it can be used:
int item;
int = type and stands for integeritem = variable name
Variable Definition in Variable Definition in Program 2-7Program 2-7
Variable Definition
Variables can change Variables can change valuevalue
int item; item = 2; item = 99;
CHANGING the value of item from2 to 99
What can variables be What can variables be used for?used for?Store Information a User might type inStore information from a fileStore information from a database your program
needs to operateStore information representing system information
(i.e. ask the date, time, o.s. info, call system functions and get results)
Store information from calculations (from data above or generated—i.e. a timer)
Store information given to it from another programStore information from other machines/services
across network/internet/webMore….
LiteralsLiteralsLiteral: a value that is written
into a program’s code.
"hello, there" (string literal)12 (integer literal)
99.33 (floating point literal)
Integer Literal in Program Integer Literal in Program 2-92-9
20 is an integer literal
String Literals in Program String Literals in Program 2-92-9
These are string literals
QuestionQuestionWhat kind of literal is “5” ?
Answer = a string (NOT a number)
2.52.5Identifiers
IdentifiersIdentifiersAn identifier is a programmer-
defined name for some part of a program: variables, functions, etc.
C++ Key WordsC++ Key Words
You cannot use any of the C++ key words as an identifier. These words have reserved meaning.
This means (in general) you should not use these as variable names
Variable NamesVariable NamesA variable name should represent the
purpose of the variable. For example:
itemsOrdered
The purpose of this variable is to hold the number of items ordered.
But it could also have the meaning of holding a list of the items that were ordered. Is there a better variable name? How about numItemsOrdered?
Notice the conventionstart with lower case letter and then as chaintogether words for meaning start of each wordis capitalizede.g. dogListor currentTime
Identifier RulesIdentifier RulesThe first character of an identifier
must be an alphabetic character or and underscore ( _ ),
After the first character you may use ONLY alphabetic characters, numbers, or underscore characters.
Upper- and lowercase characters are distinct (this means U is different than u) This is called case sensitive.
Valid and Invalid Valid and Invalid IdentifiersIdentifiers
IDENTIFIER VALID? REASON IF INVALID
totalSales Yes
total_Sales Yes
total.Sales No Cannot contain .
4thQtrSales No Cannot begin with digit
totalSale$ No Cannot contain $
2.62.6Integer Data Types
Integer Data TypesInteger Data Types
• Integer variables can hold whole numbers such as 12, 7, and -99.
Wait a minute???Wait a minute???int and long look the same?
◦4 bytes with same range
Well, this can be implementation dependent. ◦i.e. on 32 bit window machines it long is 4
bytes but, on some Unix machines it can be 8 bytes.
So –what we really know is sizeof(long) >= sizeof(int) >= 4 bytes
Why did this happen?Original int was intended tobe the “natural” word size ofa processor…but, nowmany modern processors have changed and can holddifferent word sizes
Defining VariablesDefining VariablesVariables of the same type can be defined
- On separate lines:int length;int width;unsigned int area;
- On the same line:int length, width;unsigned int area;
Variables of different types must be in different definitions
Integer Types in Program Integer Types in Program 2-102-10
This program has three variables: checking, miles, and days
Integer LiteralsInteger LiteralsAn integer literal is an integer
value that is typed into a program’s code. For example:
itemsOrdered = 15;
In this code, 15 is an integer literal.
Integer Literals in Program Integer Literals in Program 2-102-10
Integer Literals
Here we are initializing the variables to literal values
Integer LiteralsInteger LiteralsInteger literals are stored in
memory as ints by defaultTo store an integer constant in a
long memory location, put ‘L’ at the end of the number: 1234L
Constants that begin with ‘0’ (zero) are base 8: 075
Constants that begin with ‘0x’ are base 16: 0x75A
2.72.7The char Data Type
The The charchar Data Type Data TypeUsed to hold characters or very
small integer values i.e. greyscale images have each pixel
represented by 8 bits of information
Usually 1 byte of memoryNumeric value of character from
the character set is stored in memory:CODE:
char letter;letter = 'C';
MEMORY:letter
67
Character LiteralsCharacter LiteralsCharacter literals must be
enclosed in single quote marks. Example:
'A'
Character Literals in Program Character Literals in Program 2-132-13
Character StringsCharacter StringsA series of characters in consecutive
memory locations:"Hello"
Stored with the null terminator, \0, at the end:
Comprised of the characters between the " "
H e l l o \0
2.82.8The C++ string Class
The C++ The C++ stringstring Class ClassSpecial data type supports working
with strings #include <string>Can define string variables in
programs:string firstName, lastName;
Can receive values with assignment operator:firstName = "George";lastName = "Washington";
Can be displayed via coutcout << firstName << " " << lastName;
Remember this means thereis a string header file in a standard/include directory that was installed
The The stringstring class in Program class in Program 2-152-15
2.92.9Floating-Point Data Types
Floating-Point Data TypesFloating-Point Data TypesThe floating-point data types are:floatdoublelong double
They can hold real numbers such as:12.45 -3.8
Stored in a form similar to scientific notation
All floating-point numbers are signed
Floating-Point Data TypesFloating-Point Data Types
Remember our discussion about the size of long and int ---- this applies here for double and long double
Floating-Point LiteralsFloating-Point LiteralsCan be represented in
◦Fixed point (decimal) notation:31.4159 0.0000625
◦E notation:3.14159E1 6.25e-5
Are double by defaultCan be forced to be float
(3.14159f) or long double (0.0000625L)
Floating-Point Data Types in Floating-Point Data Types in Program 2-16Program 2-16
2.102.10The bool Data Type
The The boolbool Data Type Data TypeRepresents values that are true
or false
bool variables are stored as small integers
false is represented by 0, true by 1:
bool allDone = true;
bool finished = false;
allDone finished
1 0
true andfalse are C++keywords
Boolean Variables in Program Boolean Variables in Program 2-172-17
2.112.11Determining the Size of a Data Type
Determining the Size of a Determining the Size of a Data TypeData Type
The sizeof operator gives the size of any data type or variable:double amount;
cout << "A double is stored in "
<< sizeof(double) << "bytes\n";
cout << "Variable amount is stored in "
<< sizeof(amount)
<< "bytes\n";sizeof is afunction in C++
2.122.12Variable Assignments and Initialization
Variable Assignments and Variable Assignments and InitializationInitializationAn assignment statement uses
the = operator to store a value in a variable.
item = 12;
This statement assigns the value 12 to the item variable.
AssignmentAssignmentThe variable receiving the value
must appear on the left side of the = operator.
This will NOT work:
// ERROR! 12 = item;
Variable InitializationVariable InitializationTo initialize a variable means to
assign it a value when it is defined:
int length = 12;
Can initialize some or all variables:int length = 12, width = 5, area;
Variable Initialization in Variable Initialization in Program 2-19Program 2-19
Declaring Variables With the Declaring Variables With the autoauto Key Key WordWord
C++ 11 introduces an alternative way to define variables, using the auto key word and an initialization value. Here is an example:
auto amount = 100;The auto key word tells the compiler to
determine the variable’s data type from the initialization value.
auto interestRate= 12.0;
auto stockCode = 'D';
auto customerNum = 459L;
int
double
char
long
2.132.13Scope
ScopeScopeThe scope of a variable: the part
of the program in which the variable can be accessed
A variable cannot be used before it is defined
Variable Out of Scope in Variable Out of Scope in Program 2-20Program 2-20
Can’t use a variablebefore it is declared
2.142.14Arithmetic Operators
Arithmetic OperatorsArithmetic OperatorsUsed for performing numeric
calculationsC++ has unary, binary, and
ternary operators:◦unary (1 operand) -5
◦binary (2 operands) 13 - 7
◦ternary (3 operands) exp1 ? exp2 : exp3
operand = arguments or items that the operating is operating on.-5 here the operand is 513 – 7 here the operands are 13 and 7Exp1 ? Exp2 : exp3 here the operands are exp1,exp2 and exp3
Binary Arithmetic Binary Arithmetic OperatorsOperators
SYMBOL OPERATION EXAMPLE VALUE OF ans
+ addition ans = 7 + 3; 10
- subtraction ans = 7 - 3; 4
* multiplication ans = 7 * 3; 21
/ division ans = 7 / 3; 2
% modulus ans = 7 % 3; 1
remember binary here means 2 operands
Arithmetic Operators in Arithmetic Operators in Program 2-21Program 2-21 here we are using the *, multiplication operator
and +, the addition operator
A Closer Look at the A Closer Look at the // OperatorOperator
/ (division) operator performs integer division if both operands are integerscout << 13 / 5; // displays 2cout << 91 / 7; // displays 13
If either operand is floating point, the result is floating pointcout << 13 / 5.0; // displays 2.6cout << 91.0 / 7; // displays 13.0
A Closer Look at the A Closer Look at the %% OperatorOperator% (modulus) operator computes
the remainder resulting from integer division
cout << 13 % 5; // displays 3
% requires integers for both operands
cout << 13 % 5.0; // error
2.152.15Comments
CommentsCommentsUsed to document parts of the
programIntended for persons reading the
source code of the program:◦Indicate the purpose of the program◦Describe the use of variables◦Explain complex sections of code
Are ignored by the compiler
Single-Line CommentsSingle-Line Comments
Begin with // through to the end of line:int length = 12; // length in inchesint width = 15; // width in inchesint area; // calculated area
// calculate rectangle areaarea = length * width;
Multi-Line CommentsMulti-Line CommentsBegin with /*, end with */Can span multiple lines:/* this is a multi-line comment*/
Can begin and end on the same line:int area; /* calculated area */
Comment Guidelines – how Comment Guidelines – how muchmuchFor you, a beginning
programmer, I suggest MORE is better
Explain algorithms, formulas, variables that you are using
Explain with enough detail that someone who did NOT write the code and is a beginning programmer could understand it
Comment Guidelines --Comment Guidelines --wherewhereTowards the top of your programBefore every function you createBefore loops and test conditionsNext to declared variables.
2.162.16Named Constants
Named ConstantsNamed ConstantsNamed constant (constant
variable): variable whose content cannot be changed during program execution
Used for representing constant values with descriptive names:const double TAX_RATE = 0.0675;const int NUM_STATES = 50;
Often named in uppercase letters
Named Constants in Program Named Constants in Program 2-282-28
2.172.17Programming Style
Programming StyleProgramming StyleThe visual organization of the
source codeIncludes the use of spaces, tabs,
and blank linesDoes not affect the syntax of the
programAffects the readability of the
source code
Programming StyleProgramming StyleCommon elements to improve
readability:Braces { } aligned verticallyIndentation of statements within
a set of bracesBlank lines between declaration
and other statementsLong statements wrapped over
multiple lines with aligned operators
2.182.18Standard and Prestandard C++
Standard and Prestandard Standard and Prestandard C++C++Older-style C++ programs:
◦Use .h at end of header files:◦ #include <iostream.h>◦Use #define preprocessor directive
instead of const definitions◦Do not use using namespace
convention◦May not compile with a standard C+
+ compiler
#define#define directive in Program directive in Program 2-312-31