Lecture 3. Introduction To Programming Using C++
Lecture 3. Introduction To Programming Using C++
Department
Lecture 3
Introduction to Programming
using C++
Prepared by: Addisu D. August, 2017
1
Computer programming
2
High-Level Languages
There are many languages for writing programs.
C++ is a highlevel language, as are most of the other
programming languages you are likely to have heard of,
such as C, Java, Pascal, Visual Basic, FORTRAN.
High-level languages resemble human languages in many
ways. They are designed to be easy for human beings to
write programs in and to be easy for human beings to read.
A high-level language, such as C++, contains instructions
that are much more complicated than the simple
instructions a computer’s processor (CPU) is capable of
following.
3
Low-Level Languages
The kind of language a computer can understand is called a
low-level language.
A typical low-level instruction might be the following:
ADD X Y Z
This instruction might mean “Add the number in the
memory location called X to the number in the memory
location called Y, and place the result in the memory
location called Z.”
The above sample instruction is written in what is called
assembly language. Although assembly language is almost
the same as the language understood by the computer, it
must undergo one simple translation before the computer
can understand it.
4
Low-Level Languages
In order to get a computer to follow an assembly language
instruction, the words need to be translated into strings of
zeros and ones.
For example, the word ADD might translate to 0110, the X
might translate to 1001, the Y to 1010, and the Z to 1011.
The version of the above instruction that the computer
ultimately follows would then be:
0110 1001 1010 1011
Assembly language instructions and their translation into
zeros and ones differ from machine to machine.
Programs written in the form of zeros and ones are said to be
written in machine language, because that is the version of
the program that the computer (the machine) actually reads
5 and follows.
Compilers
Any high-level language program must be translated into
machine language before the computer can understand and
follow the program.
A program that translates a high-level language like C++ to
a machine language is called a compiler.
A compiler is thus a somewhat peculiar sort of program, in
that its input or data is some other program, and its output
is yet another program.
The input program is usually called the source program or
source code, and the translated version produced by the
compiler is called the object program or object code.
6
Linker
Any C++ program you write will use some operations (such as
input and output routines) that have already been programmed
for you.
These items that are already programmed for you (like input
and output routines) are already compiled and have their
object code waiting to be combined with your program’s
object code to produce a complete machine-language program
that can be run on the computer
Another program, called a linker, combines the object code
for these program pieces with the object code that the compiler
produced from your C++ program.
7
Compilers and Linker
Compiler
A compiler is a program that translates a high-level language
program, such as a C++ program, into a machine-language
program that the computer can directly understand and
execute.
Linking
The object code for your C++ program must be combined
with the object code for routines (such as input and output
routines) that your program uses. This process of combining
object code is called linking and is done by a program called
a linker. For simple programs, linking may be done for you
automatically.
8
9
10
Algorithms
An algorithm is a sequence of precise instructions that
leads to a solution.
Example. Algorithm that determines how many times a
name occurs in a list of names:
1. Get the list of names.
2. Get the name being checked.
3. Set a counter to zero.
4. Do the following for each name on the list: Compare
the name on the list to the name being checked, and if
the names are the same, then add one to the counter.
5. Announce that the answer is the number indicated by
the counter.
11
Program Design
Designing a program is often a difficult task. There is no
complete set of rules, no algorithm to tell you how to write
programs. Program design is a creative process. Still, there
is the outline of a plan to follow.
Program design process can be divided into two phases, the
problem-solving phase and the implementation phase.
The result of the problem-solving phase is an algorithm,
expressed in English, for solving the problem.
To produce a program in a programming language such as
C++, the algorithm is translated into the programming
language. Producing the final program from the algorithm
is called the implementation phase.
12
13
Program Design
Testing takes place in both phases. Before the program is
written, the algorithm is tested, and if the algorithm is
found to be deficient, then the algorithm is redesigned.
Desktop testing is performed by mentally going through the
algorithm and executing the steps yourself. On large
algorithms this will require a pencil and paper.
The C++ program is tested by compiling it and running it
on some sample input data.
14
Method of Problem Solving
15
Using computer as problem solving tool
16
Algorithms, Flow charts, Pseudo code
An algorithm is a sequence of steps used to complete a task.
Algorithms may be presented...
in words,
as a flowchart ,
in structured code
Flowchart is graphical representation of the sequence of
operations in a program. Program flowcharts show the
sequence of instructions in a single program or subroutine.
Pseudo code is a compact and informal high‐level
description of a computer programming algorithm that uses
the structural conventions of a programming language, but is
intended for human reading rather than machine reading
17
Flowchart Symbols
18
Flowchart Example
19
Origins of the C++ Language
The first thing that people notice about the C++ language is its
unusual name. Is there a C programming language, you might
ask? Is there a C– or a C– – language? Are there programming
languages named A and B? The answer to most of these
questions is no.
There is a B programming language; it was not derived from a
language called A, but from a language called BCPL.
The C language was derived from the B language, and C++
was derived from the C language.
The C programming language was developed by Dennis
Ritchie of AT&T Bell Laboratories in the 1970s. It was first
used for writing and maintaining the UNIX operating system.
20
Origins of the C++ Language
C is a general-purpose language that can be used for writing
any sort of program, but its success and popularity are closely
tied to the UNIX operating system.
The C language is peculiar because it is a high-level language
with many of the features of a low-level language.
C is somewhere in between the two extremes of a very high-
level language and a low-level language, and therein lies both
its strengths and its weaknesses.
C is not as easy to understand as other languages; also, it does
not have as many automatic checks as some other high-level
languages.
21
Origins of the C++ Language
To overcome these and other shortcomings of C, Bjarne
Stroustrup of AT&T Bell Laboratories developed C++ in
the early 1980s.
Stroustrup designed C++ to be a better C. Most of C is a
subset of C++, and so most C programs are also C++
programs.
The reverse is not true; many C++ programs are definitely
not C programs.
22
A Sample C++ Program
In the next lecture we will explain in detail all the C++
features you need to write programs , but to give you a feel
for how a C++ program works, we will now give a brief
description of how a sample C++ program works.
23
24
A Sample C++ Program
The program begins with the following lines:
27
A Sample C++ Program
28
A Sample C++ Program
The \n at the end of the quoted string tells the computer to
start a new line after writing out the text.
The next program line starts with the word cin, so it is an
input statement.
Let’s look at that line:
cin >> number_of_pods;
This line may be read, ‘get number_of_pods from cin’ or
simply ‘input number_of_pods’.
If you think of the word cin as standing for the keyboard
(the input device), then the arrows say that input should be
sent from the keyboard to the variable number_of_pods.
29
A Sample C++ Program
Consider the next two program lines:
cout << "Enter the number of peas in a pod:\n";
cin >> peas_per_pod;
The line first sends a message to the screen asking for a
number.
When you type in a number at the keyboard and press the
Return key, that number becomes the value of the variable
peas_per_pod.
The next nonblank program line, shown below, does all the
computation that is done in this simple program:
total_peas = number_of_pods * peas_per_pod;
The asterisk symbol, *, is used for multiplication in C++. So
this statement says to multiply number_of_pods and
30 peas_per_pod.
A Sample C++ Program
The sample dialogue of the above program is shown below
31
PROGRAMMING TIP: Input and Output Syntax
If you think of cin as a name for the keyboard or input device
and think of cout as a name for the screen or the output
device, then it is easy to remember the direction of the arrows
>> and <<.
They point in the direction that data moves. For example,
consider the statement:
cin >> number_of_pods;
In the above statement, data moves from the keyboard to the
variable number_of_pods, and so the arrow points from cin to
the variable. On the other hand, consider the output statement:
cout << number_of_pods;
In this statement the data moves from the variable
number_of_pods to the screen, so the arrow points from the
variable number_of_pods to cout.
32
Layout of a Simple C++ Program
The general form of a simple C++ program is shown below
33
Layout of a Simple C++ Program
#include <iostream>
is called an include directive. It tells the compiler where to find
information about certain items that are used in your program.
In this case iostream is the name of a library that contains the
definitions of the routines that handle input from the keyboard
and output to the screen; iostream is a file that contains some
basic information about this library.
The linker program that we discussed earlier in this chapter
combines the object code for the library iostream and the object
code for the program you write.
Directives always begin with the symbol #.
Be certain that you do not have any extra space between the <
and the iostream file name or between the end of the file name
and the closing >.
34
Layout of a Simple C++ Program
Some compilers require that directives have no spaces
around the #; so it is always safest to place the # at the very
start of the line and not include any space between the #
and the word include.
using namespace std;
This line says that the names defined in iostream are to be
interpreted in the “standard way” (std is an abbreviation of
standard).
int main( )
{
These two lines simply say that the main function of the
program starts here
35
Layout of a Simple C++ Program
return 0;
This line is called a return statement and is considered to be
an executable statement because it tells the computer to do
something; specifically, it tells the computer to end the
program.
The number 0 has no intuitive significance to us yet, but must
be there; its meaning will become clear as you learn more
about C++.
Note that even though the return statement says to end the
program, you still must add a closing brace } at the end of the
main part of your program.
36
Compiling and Running a C++ Program
You write a C++ program using a text editor in the same way
that you write any other document such as a term paper, a
shopping list, or whatever.
The program is kept in a file just like any other document you
prepare using a text editor.
When you give the command to compile your program, this will
produce a machine-language translation of your C++ program.
This translated version of your program is called the object code
for your program.
The object code for your program must be linked (that is,
combined) with the object code for routines (such as input and
output routines) that are already written for you. It is likely that
this linking will be done automatically, so you do not need to
37
worry about linking.
SELF-TEST EXERCISES
1. If the following statement were used in a C++ program,
what would it cause to be written on the screen?
cout << "C++ is easy to understand.";
2. What is the meaning of \n as used in the following
statement?
cout << "Enter the number of peas in a pod:\n";
3. What is the meaning of this directive?
#include <iostream>
4. What, if anything, is wrong with the following #include
directives?
a) #include <iostream >
b) #include < iostream>
c) #include <iostream>
38
TESTING AND DEBUGGING
A mistake in a program is usually called a bug, and the process
of eliminating bugs is called debugging.
Kinds of Program Errors
Syntax errors: are due to violation of the syntax (that is, the
grammar rules) of the programming language, such as omitting
a semicolon.
Run-time errors. Many run-time errors have to do with
numeric calculations. For example, if the computer attempts to
divide a number by zero, that is normally a run-time error.
Logic errors. Mistakes in the underlying algorithm or in
translating the algorithm into the C++ language. For example, if
you were to mistakenly use the addition sign + instead of the
multiplication sign * The program would compile and run
normally, but would give the wrong answer.
39
TESTING AND DEBUGGING
The computer will usually tell you about errors in the first
two categories. You must discover logic errors yourself.
40
Exercises
41
End of Lecture 3
Next Lecture
Lecture 4
Basics of C++ and Flow Control
42