Introduction to Computer Programming (CSCI 112)
Chapter 2
Introduction to C++ Programming, Input,
Output, and Operators
Dr. Ali Alnoman
Spring 2023
Reference: C++ How to Program, 10th edition, P. Deitel and H. Deitel
2
Objectives
• To write simple computer programs using C++
• To write simple input and output statements
• To use fundamental variable types
• Basic computer memory concepts
• To use arithmetic operators
• The precedence of arithmetic operators
• To write simple decision-making statements
3
First Program in C++: Printing a Line of Text
• Simple program that prints a line of text
4
First Program in C++: Printing a Line of Text
• The symbol // indicates that the remainder of each line is a comment
▫ You insert comments to document your programs and to help other people read
and understand them
▫ Comments are ignored by the C++ compiler and do not cause any machine-language
object code to be generated
• A comment beginning with // is called a single-line comment because it
terminates at the end of the current line
• You also may use comments containing one or more lines enclosed in /*
and */
5
First Program in C++: Printing a Line of Text
• A preprocessing directive is a message to the C++ preprocessor
• Lines that begin with # are processed by the preprocessor before the
program is compiled
• #include <iostream> notifies the preprocessor to include in the
program the contents of the input/output stream header file <iostream>
▫ This header is a file containing information used by the compiler when compiling
any program that outputs data to the screen or inputs data from the keyboard
using C++ stream input/output
6
7
First Program in C++: Printing a Line of Text
• You use blank lines, indentation (space characters) and tab characters
(i.e., “tabs”) to make programs easier to read
▫ Together, these characters are known as white space
▫ White-space characters are normally ignored by the compiler
8
First Program in C++: Printing a Line of Text
• main is a part of every C++ program
• The parentheses after main indicate that main is a function
• C++ programs typically consist of one or more functions
• Exactly one function in every program must be named main
• C++ programs begin executing at function main, even if main is not the first function
defined in the program
• The keyword int to the left of main indicates that main “returns” an integer (whole
number) value
▫ A keyword is a word in code that is reserved by C++ for a specific use
▫ For now, simply include the keyword int to the left of main in each of your programs
9
First Program in C++: Printing a Line of Text
• A left brace, {, must begin the body of every function
• A corresponding right brace, }, must end each function’s body
• A statement instructs the computer to perform an action
• Together, the quotation marks and the characters between them are called a
string
• We refer to characters between double quotation marks simply as strings
▫ White-space characters in strings are not ignored by the compiler
• Most C++ statements end with a semicolon (;), also known as the statement
terminator
▫ Preprocessing directives (i.e., #include) do not end with a semicolon
10
11
12
First Program in C++: Printing a Line of Text
• Typically, output and input in C++ are accomplished with streams of characters
• When a cout statement executes, it sends a stream of characters to the standard
output stream object—std::cout—which is normally “connected” to the screen
• The std:: before cout is required when we use names that we’ve brought into
the program by the preprocessing directive #include<iostream>
▫ The notation std::cout specifies that we are using a name, in this case cout,
that belongs to “namespace” std
▫ The names cin (the standard input stream) and cerr (the standard error stream)
also belong to namespace std
13
First Program in C++: Printing a Line of Text
• In the context of an output statement, the << operator is referred to as the
stream insertion operator
• The characters \n are not printed on the screen
• The backslash (\) is called an escape character
▫ It indicates that a “special” character is to be output
• When a backslash is encountered in a string of characters, the next character
is combined with the backslash to form an escape sequence
• The escape sequence \n means newline which causes the cursor to move to
the beginning of the next line on the screen
14
15
First Program in C++: Printing a Line of Text
• When the return statement is used at the end of main the value 0
indicates that the program has terminated successfully
• According to the C++ standard, if program execution reaches the end of
main without encountering a return statement, it’s assumed that the
program terminated successfully—exactly as when the last statement in
main is a return statement with the value 0. In other words, the program
will run successfully even if we chose not to write “Return 0”
16
Modifying Our First C++ Program
• Welcome to C++! can be printed several ways:
17
Modifying Our First C++ Program
• A single statement can print multiple lines by using newline characters
• Each time the \n (newline) escape sequence is encountered in the
output stream, the screen cursor is positioned to the beginning of the
next line
• To get a blank line in your output, place two newline characters back to
back
18
19
Another C++ Program: Adding Integers
• The next program obtains two integers typed by a user at the keyboard,
computes the sum of these values and outputs the result using
std::cout.
20
21
Another C++ Program: Adding Integers
• Declarations introduce identifiers into programs
• The identifiers number1, number2 and sum are the names of variables
• A variable is a location in the computer’s memory where a value can be stored for
use by a program
• Variables number1, number2 and sum are data of type int, meaning that these
variables will hold integer values, i.e., whole numbers such as 7, –11, 0 and 31914
• All variables must be declared with a name and a data type before they can be
used in a program
• If more than one name is declared in a declaration (as shown here), the names
are separated by commas (,); this is referred to as a comma-separated list
22
Another C++ Program: Adding Integers
• Data type double is for specifying real numbers, and data type char for
specifying character data
• Real numbers are numbers with decimal points, such as 3.4, 0.0 and –11.19
• A char variable may hold only a single lowercase letter, a single uppercase letter,
a single digit or a single special character (e.g., $ or *)
• Types such as int, double and char are called fundamental types
• Fundamental-type names are keywords and therefore must appear in all
lowercase letters
23
24
Another C++ Program: Adding Integers
• A variable name is any valid identifier that is not a keyword
• An identifier is a series of characters consisting of letters, digits and
underscores ( _ ) that does not begin with a numeric digit
• C++ is case sensitive—uppercase and lowercase letters are different, so
a1 and A1 are different identifiers
25
26
27
Another C++ Program: Adding Integers
• Declarations of variables can be placed almost anywhere in a program,
but they must appear before their corresponding variables are used in
the program
28
Another C++ Program: Adding Integers
• A prompt message directs the user to take a specific action
• A cin statement uses the input stream object cin (of namespace std)
and the stream extraction operator, >>, to obtain a value from the
keyboard
• Using the stream extraction operator with std::cin takes character
input from the standard input stream, which is usually the keyboard
29
Another C++ Program: Adding Integers
• When the computer executes an input statement that places a value in
an int variable, it waits for the user to enter a value for variable
number1
• The user responds by typing the number (as characters) then pressing
the Enter key (sometimes called the Return key) to send the characters
to the computer
• The computer converts the character representation of the number to
an integer and assigns (i.e., copies) this number (or value) to the variable
number1
• Any subsequent references to number1 in this program will use this
same value
30
Another C++ Program: Adding Integers
• In this program, an assignment statement adds the values of variables
number1 and number2 and assigns the result to variable sum using the
assignment operator =
▫ Most calculations are performed in assignment statements
31
Another C++ Program: Adding Integers
• The name endl is an abbreviation for “end line” and belongs to
namespace std
• The std::endl stream manipulator outputs a newline, then “flushes
the output buffer.”
• std::endl forces any accumulated outputs to be displayed at that
moment
32
Another C++ Program: Adding Integers
• Using multiple stream insertion operators (<<) in a single statement is
referred to as concatenating, chaining or cascading stream insertion
operations
• Calculations can also be performed in output statements
33
Memory Concepts
• Variable names such as number1, number2 and sum actually
correspond to locations in the computer’s memory
• Every variable has a name, a type, a size and a value
• When a value is placed in a memory location, the value overwrites the
previous value in that location; thus, placing a new value into a memory
location is said to be destructive
34
35
Arithmetic
• Most programs perform arithmetic calculations
• The asterisk (*) indicates multiplication
• The percent sign (%) is the modulus operator:
▫ C++ provides the modulus operator, %, that yields the remainder after integer division
▫ The modulus operator can be used only with integer operands
• Integer division (i.e., where both the numerator and the denominator are
integers) yields an integer quotient
▫ Any fractional part in integer division is discarded (i.e., truncated)—no rounding occurs
36
37
Arithmetic
• Arithmetic expressions in C++ must be entered into the computer in
straight-line form
• Expressions such as “a divided by b” must be written as a/b, so that all
constants, variables and operators appear in a straight line
• Parentheses are used in C++ expressions in the same manner as in
algebraic expressions
• For example, to multiply a times the quantity b + c we write a*(b+c)
38
Arithmetic
• C++ applies the operators in arithmetic expressions in a precise
sequence determined by the following rules of operator precedence,
which are generally the same as those followed in algebra:
39
40
Arithmetic
• There is no arithmetic operator for exponentiation in C++, so x2 is
represented as x*x
• The following example illustrates the order in which the operators in a
second-degree polynomial are applied
• As in algebra, it’s acceptable to place unnecessary parentheses in an
expression to make the expression clearer
41
42
Decision Making: Equality and Relational Operators
• The IF statement allows a program to take alternative action based on whether a
condition is true or false
• If the condition is true, the statement in the body of the if statement is executed
• If the condition is false, the body statement is not executed
• Conditions in IF statements can be formed by using the equality operators and
relational operators summarized in the table below
• The relational operators all have the same level of precedence and associate left
to right
• The equality operators both have the same level of precedence, which is lower
than that of the relational operators, and associate left to right
43
44
45
46
Decision Making: Equality and Relational Operators
• The following example uses six IF statements to compare two numbers
input by the user
• If the condition in any of these if statements is satisfied, the output
statement associated with that if statement is executed
• The example below shows the program and the input/output dialogs of
three sample executions
47
48
49
50
Decision Making: Equality and Relational Operators
• using declarations that eliminate the need to repeat the std:: prefix as we did
in earlier programs
• Once we insert these using declarations, we can write cout instead of
std::cout, cin instead of std::cin and endl instead of std::endl,
respectively, in the remainder of the program
• Many programmers prefer to use the declaration
using namespace std;
which enables a program to use all the names in any standard C++ header file
(such as <iostream>) that a program might include
• From this point forward, we’ll use the preceding declaration in our programs
51
Decision Making: Equality and Relational Operators
• Each if statement in the previous example has a single statement in
its body and each body statement is indented
• In Chapter 4, it will be shown how to specify if statements with
multiple-statement bodies (by enclosing the body statements in a pair
of braces, { }, creating what’s called a compound statement or a block)
52
53
Decision Making: Equality and Relational Operators
• The table below shows the precedence and associativity of the operators
introduced
• The operators are shown top to bottom in decreasing order of precedence
• All these operators, with the exception of the assignment operator =,
associate from left to right
54
55
Exercise: Multiplying numbers