Lecture 1 - Nipissing University Word

advertisement
Lecture 1
A Review of Programming and C++
COSC1567
C++ Programming
1
The Task of Programming
• Programming a computer involves writing
instructions that enable a computer to carry out
a single task or a group of tasks
• A computer programming language requires
learning both vocabulary and syntax
• Programmers use many different programming
languages, including BASIC, Pascal, COBOL,
RPG, and C++
• The rules of any language make up its syntax
• Machine language is the language that
computers can understand; it consists of 1s
and 0s
2
The Task of Programming
• A translator (called either a compiler or an
interpreter) checks your program for syntax
errors
• A logical error occurs when you use a
statement that, although syntactically
correct, doesn’t do what you intended
• You run a program by issuing a command to
execute the program statements
• You test a program by using sample data to
determine whether the program results are
correct
3
Programming Universals
• All programming languages provide methods for
directing output to a desired object, such as a
monitor screen, printer or file
• Similarly, all programming languages provide
methods for sending input into the computer
program so that it can be manipulated
• In addition, all programming languages provide for
naming locations in computer memory
• These locations commonly are called variables (or
attributes)
4
Programming Universals
• Ideally, variables have meaningful names,
although no programming language actually
requires that they meet this standard
• A variable may have only one value at a time,
but it is the ability of memory variables to
change in value that makes computers and
programming worthwhile
• In many computer programming languages,
including C++, variables must be explicitly
declared, or given a data type as well as a
name, before they can be used
5
Programming Universals
• The type determines what kind of values may
be stored in a variable
• Most computer languages allow at least two
types: one for numbers and one for
characters
• Numeric variables hold values like 13 or -6
• Character variables hold values like ‘A’ or ‘&’
• Many languages include even more
specialized types, such as integer (for
storing whole numbers) or floating point (for
storing numbers with decimal places)
6
Procedural Programming
• Procedural programs consist of a series of steps or
procedures that take place one after the other
• The programmer determines the exact conditions
under which a procedure takes place, how often it
takes place, and when the program stops
• Programmers write procedural programs in many
programming languages, such as COBOL, BASIC,
FORTRAN, and RPG
• You can also write procedural programs in C++
7
A main( ) Function in C++
• C++ programs consist of modules called
functions
• Every statement within every C++ program is
contained in a function
• Every function consists of two parts:
– A function header is the initial line of code in a C++
which always has three parts:
• Return type of the function
• Name of the function
• Types and names of any variables enclosed in
parentheses, and which the function receives
– A function body
8
Creating a main( ) Function
• A C++ program may contain many functions,
but every C++ program contains at least one
function, and that function is called main( )
• If the main function does not pass values to
other programs or receives values from
outside the program, then main( ) receives
and returns a void type
• The body of every function in a C++ program
is contained in curly braces, also known as
curly brackets
9
Creating a main( ) Function
• Every complete C++ statement ends with a
semicolon
• Often several statements must be grouped together,
as when several statements must occur in a loop
• In such a case, the statements have their own set of
opening and closing braces within the main braces,
forming a block
10
Working with Variables
• In C++, you must name and give a type to
variables (sometimes called identifiers) before
you can use them
• Names of C++ variables can include letters,
numbers, and underscores, but must begin with
a letter or underscore
• No spaces or other special characters are
allowed within a C++ variable name
• Every programming language contains a few
vocabulary words, or keywords, that you need
in order to use the language
11
Common C++ Keywords
12
Working with Variables
• A C++ keyword cannot be used as a variable
name
• Each named variable must have a type
• C++ supports three simple types:
– Integer
— Floating point
— Character
• An integer is a whole number, either positive or
negative
• An integer value may be stored in an integer
variable declared with the keyword int
• You can also declare an integer variable using
short int and long int
13
Working with Variables
• Real or floating-point numbers are numbers
that include decimal positions, such as 98.6,
1000.00002, and -3.85
• They may be stored in variables with type float,
double, and long double
• Characters may be stored in variables declared
with the keyword char
• A character may hold any single symbol in the
ASCII character set
• Often it contains a letter of the alphabet, but it
could include a space, digit, punctuation mark,
arithmetic symbol, or other special symbol
14
Working with Variables
• In C++, a character value is always expressed in
single quotes, such as ‘A’ or ‘&’
• To declare a variable, you list its type and its
name
• In addition, a variable declaration is a C++
statement, so it must end with a semicolon
• If you write a function that contains variables of
diverse types, each variable must be declared in
a statement of its own
• If you want to declare two or more variables of
the same type, you may declare them in the same
statement
15
Working with Variables
• Explicitly stating the value of a variable is called
assignment, and is achieved with the assignment
operator =
• The variable finalScore is declared and assigned
a value at the same time
• Assigning a value to a variable upon creation is
often referred to as initializing the variable
16
The const Qualifier
• A variable that does not change in a program
should not be declared as a variable
• Instead, it should be a constant
• The statement const double MINIMUM_WAGE =
5.75; declares a constant named
MINIMUM_WAGE that can be used like a
variable, but cannot be changed during a
program
17
Creating Comments
• Comments are statements that do not affect the
compiling or running of a program
• Comments are simply explanatory remarks that
the programmer includes in a program to clarify
what is taking place
• These remarks are useful to later program
users because they might help explain the
intent of a particular statement or the purpose
of the entire program
• C++ supports both line comments and block
comments
18
Creating Comments
• A line comment begins with two slashes (//) and
continues to the end of the line on which it is
placed
• A block comment begins with a single slash and an
asterisk (/*) and ends with an asterisk and a slash
(*/); it might be contained on a single line or
continued across many lines
19
Using Libraries and
Preprocessor Directives
• Header files are files that contain predefined
values and routines, such as sqrt( )
• Their filenames usually end in .h
• In order for your C++ program to use these
predefined routines, you must include a
preprocessor directive, a statement that tells
the compiler what to do before compiling the
program
• In C++, all preprocessor directives begin with a
pound sign (#), which is also called an
octothorp
• The #include preprocessor directive tells the
compiler to include a file as part of the finished
product
20
2
C++ Binary Arithmetic Operators
• Often after data values are input, you perform
calculations with them
• C++ provides five simple arithmetic operators for
creating arithmetic expressions:
– addition (+)
– multiplication (*)
– modulus (%)
– subtraction (-)
– division (/)
• Each of these arithmetic operators is a binary
operator; each takes two operands, one on each
side of the operator, as in 12 + 9 or 16.2*1.5
• The results of an arithmetic operation can be
stored in memory
21
C++ Binary Arithmetic Operators
22
C++ Binary Arithmetic Operators
• In Figure 2-2, each operation is assigned to a result
variable of the correct type
• The expression a + b has an integer result because
both a and b are integers, not because their sum is
stored in the intResult variable
• If the program contained the statement
doubleResult = a+b; the expression a+b would
still have an integer value, but the value would be
cast, or transformed, into a double when the sum is
assigned to doubleResult
23
C++ Binary Arithmetic Operators
• The automatic cast that occurs when you assign
a value of one type to another is called an implicit
cast
• The modulus operator (%), which gives the
remainder of integer division, can be used only
with integers
• When more than one arithmetic operator is
included in an expression, then multiplication,
division, and modulus operations always occur
before addition or subtraction
• Multiplication, division, and modulus are said to
have higher precedence
24
Shortcut Arithmetic Operators
• C++ employs several shortcut operators
• When you add two variable values and store the
result in a third variable, the expression takes the
form result= firstValue + secondValue
• When you use an expression like this, both
firstValue and secondValue retain their original
values; only the result is altered
• When you want to increase a value, the expression
takes the form firstValue = firstValue +
secondValue
25
Shortcut Arithmetic Operators
• C++ provides the -= operator for subtracting
one value from another, the *= operator for
multiplying one value by another, and the /=
operator for dividing one value by another
• As with the += operator, you must not insert a
space within the subtraction, multiplication, or
division shortcut operators
• The options shown in Figure 2-4 means replace
the current value of count with the value that is
1 more than count, or simply increment count
26
Shortcut Arithmetic Operators
• As you might expect, you can use two minus
signs (--) before or after a variable to decrement
it
27
Shortcut Arithmetic Operators
• The prefix and postfix increment and decrement
operators are examples of unary operators
• Unary operators are those that require only one
operand, such as num in the expression ++num
• When an expression includes a prefix operator, the
mathematical operation takes place before the
expression is evaluated
• When an expression includes a postfix operator, the
mathematical operation takes place after the
expression is evaluated
28
Shortcut Arithmetic Operators
• The difference between the results
produced by the prefix and postfix
operators can be subtle, but the
outcome of a program can vary greatly
depending on which increment
operator you use in an expression
29
Evaluating Boolean Expressions
• A boolean expression is one that evaluates as true
or false
• All false relational expressions are evaluated as 0
• Thus, an expression such as 2>9 has the value 0
• You can prove that 2>9 is evaluated as 0 by entering
the statement code cout<<(2>9); into a C++ program
• A 0 appears on output
• All true relational expressions are evaluated as 1
• Thus, the expression 9>2 has the value 1
30
Evaluating Boolean Expressions
• The unary operator ! Means not, and essentially reverses
the true/false value of an expression
31
Selection
• Computer programs seem smart because of
their ability to use selections or make decisions
• C++ lets you perform selections in a number of
ways:
– The if statement
– The switch statement
– The if operator
– Logical AND and Logical OR
32
Some Sample Selection
Statements within a C++ Program
33
The if Statement
• If the execution of more than one statement depends on the
selection, then the statements must be blocked with curly
braces as shown in the code segment in Figure 2-8
34
The if Statement
35
Multiple Executable Statement
in an if-else
36
The if Statement
• Any C++ expression can be evaluated as part of
an if statement
37
The switch Statement
• When you want to create different outcomes depending
on specific values of a variable, you can use a series of
ifs shown in the program statement in Figure 2-14
• As an alternative to the long string of ifs shown in Figure
2-14, you can use the switch statement
• The switch can contain any number of cases in any
order
38
The if Operator (NEW! )
Ex1-2.cpp
• Another alternative to the if statement involves the if
operator (also called the conditional operator), which is
represented by a question mark (?)
• E.g.
• cout<<(driveAge<26)?”The driver is under 26”:”The
driver is at least 26”;
• The if operator provides a concise way to express two
alternatives
• The conditional operator is an example of a ternary
operator, one that takes three operands instead of just
one or two
39
Logical AND and Logical OR
• In some programming situations, two or more
conditions must be true to initiate an action
• Figure 2-16 works correctly using a nested if—
that is, one if statement within another if
statement
• If numVisits is not greater than 5, the statement
is finished—the second comparison does not
even take place
• Alternatively, a logical AND (&&) can be used,
as shown in Figure 2-17
40
Logical AND and Logical OR
41
Logical AND and Logical OR
• A logical AND is a compound boolean expression in
which two conditions must be true for the entire
expression to evaluate as true
• Table 2-3 shows how an expression using && is
evaluated
• An entire expression is true only when the expression
on each side of the && is true
42
Using the Logical OR
• In certain programming situations, only one of two
alternatives must be true for some action to take
place
• A logical OR (||) could also be used
• A logical OR is a compound boolean expression in
which either of two conditions must be true for the
entire expression to evaluate as true
• Table 2-4 shows how C++ evaluates any
expression that uses the || operator
43
Using the Logical OR
44
Using the Logical OR
• When either expression1 or expression2 is true (or
both are true), the entire expression is true
• On pages 53 and 54 of the textbook, perform the
steps so you can write a program that makes several
decisions
45
A Typical Run of the
Decisions.cpp Program
46
The while Loop
• Loops provide a mechanism with which to
perform statements repeatedly and, just as
important, to stop that performance when
warranted
while (boolean expression)
statement;
• In C++, the while statement can be used to loop
• The variable count, shown in the program in
Figure 2-21, is often called a loop-control
variable, because it is the value of count that
controls whether the loop body continues to
execute
47
The while Loop
48
The while Loop
49
The for Statement
Ex1-3.cpp
• The for statement represents an alternative to the while
statement
• It is most often used in a definite loop, or a loop that must
execute a definite number of times
• It takes the form:
for (initialize; evaluate; alter)
statement;
50
More examples
• Ex1-6.cpp
• Ex1-7.cpp
51
Summary
• C++ provides five simple binary arithmetic
operators for creating arithmetic expressions:
addition (+), subtraction (-), multiplication (*),
division (/), and modulus (%)
• When you mix data types in a binary arithmetic
expression, the result is always the same type as
the type that takes the most memory to store
• C++ employs several shortcut operators for
arithmetic, such as +=, prefix, ++, and postfix ++
• A boolean expression is one that evaluates as
true or false
52
Summary
• C++ uses the if, if-else, switch, and conditional
operator statements to make selections
• You can use the logical AND and OR to combine
boolean evaluations
• C++ uses the while statement, the do statement,
and the for loop to create loops
• Statements that depend on the boolean evaluation
in a decision or a loop are blocked by using curly
braces
• Fields contained within class objects are used in
arithmetic and boolean expressions in the same
manner as are primitive variables
53
Summary
• C++ supports line comments and block
comments
• A preprocessor directive tells the compiler to
do something, such as to include a header
file, before compiling the program
• The cout statement (along with an insertion
operator) is used to display values
• When you create a class, you create your
own C++ data type, which is a complex type
composed of simpler types
54
Download