Monday, 27 June 2016
On 02:15 by Unknown in C Programing No comments
Introduction
Terms such as ‘‘the Internet,’’ which were unfamiliar just 20 years ago are now common. Students in elementary school regularly ‘‘surf ’’ the Internet and use computers to design their
classroom projects. Many people use the Internet to look for information and to communicate with others. This is all made possible
by the availability of different software,
also known as computer programs. Without software,
a computer is useless.
Software is developed by using programming languages. The programming language C++ is especially well suited for developing software to accomplish specific tasks.
Our main objective is to help
you learn how to write programs in the C++ programming language. Before you begin programming, it is useful to understand some of the basic terminology and different components of a computer. We begin with an overview of the history of computers.
A Brief Overview of the History of Computers
The first device known
to carry out calculations was the abacus. The abacus was invented
in Asia but was used in ancient Babylon, China, and throughout Europe until the late middle
ages. The abacus
uses a system
of sliding beads in a rack
for addition and subtraction. In 1642, the
French philosopher and mathematician Blaise Pascal invented the calculating device called the Pascaline. It had eight movable dials on wheels and could calculate sums up to eight figures long. Both the abacus and Pascaline could perform only addition
and subtraction operations. Later in the 17th century,
Gottfried von Leibniz
invented a device
that was able to add, subtract, multiply, and divide. In 1819, Joseph Jacquard, a French weaver, discovered that the weaving instructions for his looms could be stored on cards with holes
punched in them. While the cards moved through
the loom in sequence, needles passed
through the holes and picked up
threads of the correct color and texture. A
weaver could rearrange the cards and
change the pattern
being woven. In essence,
the cards programmed a loom
to produce patterns in cloth. The weaving industry may
seem to have
little in common with the computer industry. However, the idea
of storing information by punching holes
on a card proved
to be of great importance in the later development of computers.
In the early and
mid-1800s, Charles Babbage, an English mathematician and physical scientist,
designed two calculating machines—the difference engine and the analytical
engine. The difference engine could perform complex operations such as squaring
numbers automatically. Babbage
built a prototype of the difference engine,
but the actual device was never produced. The analytical engine’s
design included input device, data
storage, a control unit that allowed processing instructions in any sequence,
and output devices. However, the designs remained in blueprint stage. Most of
Babbage’s work is known through
the writings of his colleague
Ada Augusta, Countess
of Lovelace. Augusta is considered the first computer programmer.
At the end of the 19th century, U.S. Census officials needed help in accurately tabulating the census data. Herman
Hollerith invented a calculating machine that ran on electricity and used
punched cards to store data. Hollerith’s machine was immensely successful.
Hollerith founded the Tabulating Machine Company, which later became the
computer and technology corporation known as
IBM.
The first computer-like machine was the Mark I. It was built,
in 1944, jointly
by IBM and Harvard University under
the leadership of Howard
Aiken. Punched cards
were used to feed
data into the machine. The Mark I was 52 feet long,
weighed 50 tons,
and had 750,000
parts. In 1946, the ENIAC (Electronic Numerical Integrator and
Calculator) was built at the University of Pennsylvania. It contained 18,000
vacuum tubes and weighed some 30 tons.
The computers that we know
today use the design rules given by John von Neumann in the late 1940s. His design included
components such as an arithmetic logic unit, a control
unit, memory, and input/output devices. These components are described in the
next section. Von Neumann’s computer design makes it possible to store the
programming instructions and the data in the same memory space. In 1951, the
UNIVAC (Universal Automatic Computer) was built and sold to the U.S. Census Bureau.
In 1956, the invention of transistors resulted in smaller, faster, more reliable, and more energy-efficient computers. This era also saw the emergence of
the software development industry,
with the introduction of FORTRAN and
COBOL, two early programming languages. In the next major technological advancement, transistors were
replaced by tiny integrated circuits, or ‘‘chips.’’ Chips are smaller and
cheaper than transistors and can contain
thousands of circuits on a single chip.
They give computers tremendous processing speed.
In 1970, the
microprocessor, an entire CPU on a single chip, was invented. In 1977, Stephen
Wozniak and Steven Jobs designed and built the first Apple computer in their
garage. In 1981, IBM introduced its personal computer (PC). In the 1980s,
clones of the IBM PC made the
personal computer even more affordable. By the mid-1990s, people from many
walks of life were able to afford them. Computers continue to become faster and less expensive as technology advances.
Modern-day computers are
powerful, reliable, and easy to use. They can
accept spoken-word instructions and imitate
human reasoning through artificial intelligence. Expert systems assist
doctors in making diagnoses. Mobile computing applications are growing
significantly. Using
handheld devices, delivery drivers can access
global positioning satellites (GPS) to verify
customer locations
for pickups and deliveries. Cell phones permit you to check your e-mail,
make airline reservations, see how stocks are performing, and access your bank accounts.
Although there are several categories of computers, such as mainframe,
midsize, and micro, all computers share some basic elements, described in the
next section.
Elements of a Computer System
A computer is an electronic device
capable of performing commands. The basic commands
that a computer performs are
input (get data), output (display result), storage, and perfor- mance of arithmetic and logical operations.
In today’s market, personal computers are sold with descriptions such
as a
Pentium 4 Processor 2.80 GHz, 1 GB RAM, 250 GB HD,
VX750 19" Silver Flat CRT Color
Monitor, preloaded with software such as an operating system, games, encyclopedias, and application
software such as word processors or
money management programs. These descriptions represent two categories:
hardware and software. Items
such as ‘‘Pentium
4
Processor 2.80 GHz, 1GB RAM, 250 GB HD, VX750 19" Silver Flat CRT Color Monitor’’ fall into the hardware category; items such as ‘‘operating system, games, encyclopedias, and application software’’ fall into the software category. Let’s consider the hardware first.
Hardware
Major hardware components
include the central processing unit (CPU); main memory (MM), also called random
access memory (RAM); input/output devices; and secondary storage. Some examples of input devices
are the keyboard, mouse, and secondary storage. Examples of output
devices are the screen, printer,
and secondary storage.
Let’s look at each of these components in greater detail.
Central Processing Unit and Main Memory
The central processing unit is the ‘‘brain’’ of the computer and the single most expensive piece of hardware in a computer. The more powerful the
CPU, the faster the computer. Arithmetic and logical
operations are carried out inside the CPU. Figure 1-1(a) shows
some hardware components.
FIGURE 1-1 Hardware
components of a computer and main memory
Main memory, or random access
memory, is connected
directly to the CPU. All programs must be loaded into main memory before they
can be executed. Similarly, all data must be brought into main memory before a
program can manipulate it. When the computer is turned off, everything in main
memory is lost.
Main memory is an ordered
sequence of cells, called
memory cells. Each
cell has a unique
location in main memory,
called the address of the cell. These addresses
help you access
the information stored in the
cell. Figure 1-1(b) shows main
memory with some data.
Today’s computers come
with main memory consisting of millions to billions of cells. Although Figure 1-1(b) shows data stored in cells, the
content of a cell can be either a programming instruction or data. Moreover,
this figure shows the data as numbers and letters. However, as explained later
in this chapter, main memory stores everything as sequences of 0s
and 1s. The memory addresses are also expressed as sequences of 0s and 1s.
Because programs and data
must be stored in main memory before processing and because everything in main memory
is lost when the computer
is turned off, information
stored in main memory must be transferred to some other device for permanent
storage. The device that stores information permanently (unless the device
becomes unusable or you change the information by rewriting it) is called secondary storage. To be able to transfer information from main memory
to secondary storage, these components must be directly connected to each
other. Examples of secondary storage are hard disks, flash drives, floppy
disks, ZIP disks, CD-ROMs, and tapes.
For a computer to perform a useful task, it
must be able to take in data and programs and display the results of
calculations. The devices that feed data and programs into computers are called
input devices. The keyboard,
mouse, and secondary storage are examples of input devices. The devices that
the computer uses to display results are called output devices. A monitor, printer, and secondary storage are examples
of output devices.
Figure 1-2 shows some input and output
devices.
Software are programs
written to perform specific tasks. For example, word processors are programs
that you use to write letters, papers,
and even books.
All software is written
in programming languages. There are two types of programs: system programs and
application programs.
System programs control the computer. The system program
that loads first when you turn on your PC is called the
operating system. Without an operating system, the computer is useless. The operating system monitors the overall
activity of the computer
and provides services. Some of these services
include memory management, input/output activities, and storage management. The operating
system has a special program that organizes
secondary storage so that you can conveniently access information.
Application programs perform a specific task. Word processors, spreadsheets,
and games are examples of application programs. The operating system is the
program that runs application
programs.
The Language of a Computer
When you press A on your keyboard, the
computer displays A on the screen. But what
is actually stored inside the computer’s main memory? What is the language of
the computer? How does it store whatever you type on the keyboard?
Remember that a computer
is an electronic device. Electrical signals are used inside the computer to process information. There
are two types of electrical signals: analog and digital. Analog signals are continuous wave forms used to represent such things as
sound. Audio tapes, for example,
store data in analog signals.
Digital signals represent information with a sequence
of 0s and 1s. A 0 represents a
low voltage, and a 1 represents a high voltage. Digital
signals are more reliable carriers of information than analog signals and can
be copied from one device to another with exact precision. You might have noticed that when you make a
copy of an audio tape, the sound quality of the copy is not as good as the
original tape. On the other hand, when you copy a CD, the copy is as good as
the original. Computers use digital signals.
Because digital signals are processed inside a
computer, the language of a computer, called machine
language, is a sequence of 0s and 1s. The digit 0 or 1 is called a binary
digit, or bit. Sometimes a sequence of 0s and 1s is referred
to as a binary code or a binary
number.
Bit: A binary digit 0 or 1.
A sequence of eight bits is called a byte. Moreover, 210 bytes = 1024 bytes is called a kilobyte (KB). Table 1-1 summarizes the terms used to describe various
numbers of bytes.
Unit
|
Symbol
|
Bits/Bytes
|
Byte
|
8 bits
|
|
Kilobyte
|
KB
|
210 bytes ¼ 1024 bytes
|
Megabyte
|
MB
|
1024 KB ¼ 210 KB ¼ 220 bytes
¼ 1,048,576 bytes
|
Gigabyte
|
GB
|
1024 MB ¼ 210 MB ¼ 230 bytes ¼ 1,073,741,824 bytes
|
Terabyte
|
TB
|
1024 GB ¼ 210 GB ¼ 240 bytes ¼
1,099,511,627,776 bytes
|
Petabyte
|
PB
|
1024 TB ¼ 210 TB ¼ 250 bytes ¼
1,125,899,906,842,624 bytes
|
Exabyte
|
EB
|
1024 PB ¼ 210 PB ¼ 260 bytes ¼
1,152,921,504,606,846,976 bytes
|
Zettabyte
|
ZB
|
1024 EB ¼ 210 EB ¼ 270 bytes ¼
1,180,591,620,717,411,303,424
bytes
|
Every letter, number, or special symbol (such as * or {) on your keyboard is encoded as a sequence of bits, each having a unique representation. The most commonly used encoding scheme on personal computers is the seven-bit American Standard Code for Information Interchange (ASCII). The ASCII data set consists of 128 characters numbered 0 through 127. That is, in the ASCII data set, the position of the first character is 0, the position of the second character is 1, and so on. In this scheme, A is encoded as the binary number 1000001. In fact, A is the 66th character in the ASCII character code, but its position is 65 because the position of the first character is 0. Furthermore, the binary number 1000001 is the binary representation of 65. The character 3 is encoded as 0110011. Note that in the ASCII character set, the position of the character 3 is 51, so the character 3 is the 52nd character in the ASCII set. It also follows that 0110011 is the binary representation of 51. For a complete list of the printable ASCII character set, refer to Appendix C.
NOTE:The number system that we use in our daily life is called the decimal system, or base 10. Because everything inside a computer is represented as a sequence of 0s and 1s, that is, binary numbers, the number system that a computer uses is called binary, or base 2. We indicated in the preceding paragraph that the number 1000001 is the binary representation of 65. Appendix E describes how to convert a number from base 10 to base 2 and vice versa.
Inside the computer, every character
is represented as a sequence of eight bits, that is, as a byte. Now the eight-bit binary
representation of 65 is 01000001. Note
that we added 0 to the left
of the seven-bit representation of 65 to convert it to an eight-bit representa-
tion. Similarly, the eight-bit binary representation of 51 is 00110011.
ASCII is a seven-bit code.
Therefore, to represent each ASCII character inside the computer, you must
convert the seven-bit binary representation of an ASCII character to an eight-bit binary representation. This
is accomplished by adding 0 to the left
of the seven-bit ASCII encoding of a character. Hence, inside the computer, the
character A is represented as 01000001, and the character 3 is represented as 00110011.
There are other encoding
schemes, such as EBCDIC (used by IBM) and Unicode, which is a more recent
development. EBCDIC consists of 256 characters; Unicode consists of 65,536
characters. To store a character belonging
to Unicode, you need two bytes.
The most basic language of
a computer, the machine language, provides program instructions in bits. Even
though most computers perform the same kinds of operations, the designers
of the computer may have chosen different
sets of binary
codes to perform the operations. Therefore, the
machine language of one machine is not necessarily the same as the machine
language of another machine. The only consistency among com- puters is that in any modern computer, all data is stored and manipulated as binary codes.
Early computers were programmed in machine language. To see how
instructions are written in machine language, suppose you want to use the equation:
wages = rate
· hours
to calculate weekly wages.
Further, suppose that the binary code 100100 stands for load, 100110 stands for multiplication, and 100010 stands for store. In machine language, you might need the
following sequence of instructions to calculate weekly wages:
100100
|
010001
|
100110
|
010010
|
100010
|
010011
|
To represent the weekly
wages equation in machine language, the programmer had to remember the machine
language codes for various operations. Also, to manipulate data, the programmer had to remember the
locations of the data in the main memory. This
need to remember
specific codes made programming not only very difficult, but also
error-prone.
Assembly languages were developed to make the programmer’s job easier. In assembly
language, an instruction is an easy-to-remember form called a mnemonic. Table 1-2 shows some examples of
instructions in assembly language and their corresponding machine language code.
Assembly Language
|
Machine Language
|
LOAD
|
100100
|
STOR
|
100010
|
MULT
|
100110
|
ADD
|
100101
|
SUB
|
100011
|
Using assembly language
instructions, you can write the equation to calculate the weekly
wages as follows:
LOAD rate MULT hours STOR wages
As you can see, it is much
easier to write instructions in assembly language. However, a computer cannot
execute assembly language
instructions directly. The instructions first have to be translated into machine language.
A program called an assembler translates the assembly language
instructions into machine
language.
Assembler: A program that
translates a program written in assembly language into an equivalent program in
machine language.
Moving from machine
language to assembly language made programming easier, but a programmer was still forced to think in
terms of individual machine instructions. The next step toward making
programming easier was to devise
high-level languages that were closer to natural
languages, such as English, French, German, and Spanish. Basic, FORTRAN, COBOL,
Pascal, C, C++, C#, and Java are all high-level languages. You will learn the
high-level language C++ in this book.
In C++, you write the weekly wages
equation as follows:
wages = rate * hours;
The instruction written in
C++ is much
easier to understand
and is self-explanatory to a novice user who is familiar with basic
arithmetic. As in the case of assembly language, however, the computer cannot
directly execute instructions written in a
high-level language. To run on a
computer, these C++ instructions first need to be translated into machine
language. A program called a compiler translates instructions written in high- level languages
into machine code.
Compiler: A program that translates
instructions written in a high-level language into the equivalent machine
language.
Processing a C++ Program
In the previous sections,
we discussed machine language and high-level languages and showed a C++
program. Because a computer can understand only machine language, you are ready
to review the steps required to process a program written in C++.
Consider the following C++ program:
#include <iostream>
using namespace
std;
int
main()
{
cout << "My first C++ program." <<
endl;
return 0;
}
At this point, you need not be too concerned with the details of this
program. However, if you run (execute) this program, it will display the
following line on the screen:
My first C++ program.
Recall that a computer
can understand only machine language.
Therefore, in order to run this
program successfully, the code must first be translated into machine language. In this section, we
review the steps required to execute programs written in C++.
The following steps, as shown in
Figure 1-3, are necessary to process a C++
program.
1.
You use a text editor
to create a C++ program following the rules, or syntax, of the high-level
language. This program is called the source code, or source program. The program must be saved in a text file that
has the extension .cpp. For example, if you saved the preceding program in the file named FirstCPPProgram, then its complete name is FirstCPPProgram.cpp.
Source program: A program
written in a high-level language.
2.
The
C++ program given in the preceding section
contains the statement
#include <iostream>. In a
C++
program, statements
that begin
with the symbol
# are called
preprocessor directives. These
statements are pro- cessed by a program
called preprocessor.
3.
After processing preprocessor directives,
the next step is to verify that the program obeys the rules of the programming
language—that is, the program is
syntactically correct—and translate the program into the equivalent
machine language. The compiler checks the
source program for syntax errors and, if no error is found, translates the
program into the equivalent machine language. The equivalent machine language
program is called an object
program.
4.
The programs that you
write in a high-level language are developed using an integrated development
environment (IDE). The IDE contains many programs that are useful in creating
your program. For example, it contains
the necessary code (program) to display the results of the program and several mathematical functions to make
the programmer’s job somewhat easier. Therefore, if certain code is already
available, you can use this code
rather than writing your own code. Once the program is developed and
successfully compiled, you must still bring the code for the resources used
from the IDE into your program to produce a final program that the computer can
execute. This prewritten code (program) resides in a place called the library. A program
called a linker combines the object
program with the programs from libraries.
Linker: A program that combines the object program
with other programs in the library and is used in the program to create the
executable code.
5.
You must next load the executable program into main
memory for execu- tion. A program called
a loader accomplishes
this task.
Loader: A program that loads an executable program into main memory.
6.
The final step is to execute the program.
Figure 1-3 shows how a typical C++ program is processed.
As a programmer, you
need to be concerned only with Step 1. That is, you must learn, understand, and master the rules of the programming language to create
source programs.
Subscribe to:
Post Comments (Atom)
Search
Popular Posts
-
Here in this post I discuss about how to connect MATLAB? And taking images from Webcam? So first of all we need a videobject of the web...
-
Erlang B table is attached in this post with up to 115 number of channels, and more GOS probability values. This will help you to solve Erl...
-
Erlang C table is attached in this post with up to 45 number of channels, and more GOS probability values. This will help you to solve Erla...
-
Mini Advanced Encryption Standard (Mini-AES): A Testbed for Cryptanalysis Students Raphael Chung-Wei Phan ADDRESS: Swin...
-
Example Mini-AES Encryption The application of the four components NibbleSub , ShiftRow , MixColumn and KeyAddition in sequence con...
-
Telecommunication & Networking is the emerging technologies now a days. In fast these both fields are distinguish from each other. Tel...
-
Programming Methodologies Two popular approaches to programming design are the structured approach and the object-oriented approach, whi...
-
Solution of DATA & Network Security Mid Term Paper Data & Network Security. ...
-
Basic to MATLAB Matlab is a commercial "Matrix Laboratory" package which operates as an interactive programming environmen...
-
Matlab Basic Part 2 In the first Part We See Some Basic of Matlab. now in the Part 2we will see some advanced functions and methods of...
Categories
- Advanced Wireless Networks (26)
- Wireless Networks (21)
- Data and Network Security (20)
- Digital Logic Design (7)
- matlab tutorial (5)
- C Programing (3)
- Research Papers (2)
Editorial
- Javed Chaudhry (21)
- PANAMA Leaks (18)
- Wasat Ullah Khan (11)
- Abdul Qadir Hassan (10)
- PAK-America Relationship (7)
- Ali Ahmad Dhalo (6)
- Muqtada Mansoor (6)
- Asghar Abdullah (4)
- Dr. Abdul Qadeer Khan (4)
- PAK-India Relationship (4)
- Aftab Iqbal (2)
- Ayaz Ameer (2)
- Doctor Atta Ur Rehman (2)
- PAK-Afghan Relationship (2)
- PAK-Chaina Relationship (2)
- PAK-Iran Relationship (2)
- Anees Baqir (1)
Sample Text
Blog Archive
My Traffic
Powered by Blogger.
0 comments:
Post a Comment