SlideShare a Scribd company logo
1 of 61
1

1
Introduction to
Computers, the
Internet and
World Wide Web
© 2006 Pearson Education, Inc. All rights reserved.
2

The chief merit of language is clearness.
— Galen

Our life is frittered away by detail…. Simplify,
simplify.
— Henry David Thoreau

He had a wonderful talent for packing thought
close, and rendering it portable.
— Thomas B. Macaulay

Man is still the most extraordinary computer of all.
— John F. Kennedy

© 2006 Pearson Education, Inc. All rights reserved.
3

OBJECTIVES
In this chapter you will learn:
 Basic hardware and software concepts.
 Basic object-technology concepts, such as classes, objects,
attributes, behaviors, encapsulation and inheritance.
 The different types of programming languages.
 Which programming languages are most widely used.
 A typical C++ program development environment.
 The history of the industry-standard object-oriented system
modeling language, the UML.
 The history of the Internet and the World Wide Web.
 To test-drive C++ applications in two popular C++
environments—GNU C++ running on Linux and Microsoft's
Visual C++® .NET running on Windows® XP.
© 2006 Pearson Education, Inc. All rights reserved.
4

1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
1.16

Introduction
What Is a Computer?
Computer Organization
Early Operating Systems
Personal, Distributed and Client/Server Computing
The Internet and the World Wide Web
Machine Languages, Assembly Languages and High-Level Languages
History of C and C++
C++ Standard Library
History of Java
FORTRAN, COBOL, Pascal and Ada
Basic, Visual Basic, Visual C++, C# and .NET
Key Software Trend: Object Technology
Typical C++ Development Environment
Notes About C++ and C++ How to Program, 5/e
Test-Driving a C++ Application

1.17

Software Engineering Case Study: Introduction to Object Technology and
the UML (Required)
Wrap-Up
Web Resources

1.18
1.19

© 2006 Pearson Education, Inc. All rights reserved.
5

1.1 Introduction
• Software
– Instructions to command computer to perform actions and
make decisions

• Hardware
• Standardized version of C++
– United States
• American National Standards Institute (ANSI)

– Worldwide
• International Organization for Standardization (ISO)

• Structured programming
• Object-oriented programming

© 2006 Pearson Education, Inc. All rights reserved.
6

1.2 What Is a Computer?
• Computer
– Device capable of performing computations and making logical
decisions

• Computer programs
– Sets of instructions that control computer’s processing of data
– Written by people called computer programmers

• Hardware
– Various devices comprising computer
• Keyboard, screen, mouse, disks, memory, CD-ROM, processing
units, etc.

© 2006 Pearson Education, Inc. All rights reserved.
7

1.3 Computer Organization
• Six logical units of computer
– Input unit
• “Receiving” section
• Obtains information from input devices
– Keyboard, mouse, microphone, scanner, networks, etc.

– Output unit
• “Shipping” section
• Places information processed by computer on output devices
– Screen, printer, networks, etc.
– Information can also be used to control other devices

© 2006 Pearson Education, Inc. All rights reserved.
8

1.3 Computer Organization (Cont.)
• Six logical units of computer (Cont.)
– Memory unit
• Rapid access, relatively low capacity “warehouse” section
• Retains information from input unit
– Immediately available for processing
• Retains processed information
– Until placed on output devices
• Often called memory or primary memory

– Arithmetic and logic unit (ALU)
• “Manufacturing” section
• Performs arithmetic calculations and logic decisions

© 2006 Pearson Education, Inc. All rights reserved.
9

1.3 Computer Organization (Cont.)
• Six logical units of computer (Cont.)
– Central processing unit (CPU)
• “Administrative” section
• Coordinates and supervises other sections of computer

– Secondary storage unit
• Long-term, high-capacity “warehouse” section
• Stores inactive programs or data
• Secondary storage devices
– Hard drives, CDs, DVDs
• Slower to access than primary memory
• Less expensive per unit than primary memory

© 2006 Pearson Education, Inc. All rights reserved.
10

1.4 Early Operating Systems
• Early computers
– Single-user batch processing
• Only one job or task at a time
• Process data in groups (batches)
– Decks of punched cards
• Users had to wait hours or days for results

• Operating systems
– Software systems that manage transitions between jobs
– Increased throughput
• Amount of work computers can process

© 2006 Pearson Education, Inc. All rights reserved.
11

1.4 Early Operating Systems (Cont.)
• Multiprogramming
– Many jobs or tasks sharing computer’s resources
– “Simultaneous” operation of many jobs

• Timesharing
– Special case of multiprogramming
– Users access computer through terminals
• Devices with keyboards and screens
• Dozens, even hundreds of users

– Computer use is shared among all users
• Performs small portion of one user’s job, then moves on to service next user

– Advantage
• User receives almost immediate responses to requests

© 2006 Pearson Education, Inc. All rights reserved.
1.5 Personal, Distributed and
Client/Server Computing

12

• Personal computers
– Popularized in 1977 by Apple Computer
• Economical enough for individual

– Ligitimized in 1981 by IBM Personal Computer
– “Standalone” units

• Computer networks
– Connected over telephone lines
– Local area networks (LANs)

• Distributed computing
– Organization’s computing distributed over networks

© 2006 Pearson Education, Inc. All rights reserved.
1.5 Personal, Distributed and
Client/Server Computing (Cont.)

13

• Workstations
– Provide enormous capabilities

• Client/server computing
– File servers
• Offer common store of programs and data

– Client computers
• Access file servers across network

• UNIX, Linux, Mac OS X and Microsoft’s Window-based
systems support these capabilities

© 2006 Pearson Education, Inc. All rights reserved.
14

1.6 The Internet and the World Wide Web
• Internet
– Global network of computers
• Initiated almost four decades ago

– Accessible by computers worldwide today

• World Wide Web
– Allows computer users to locate and view multimediabased documents
– Internet has become one of the world’s premier
communication mechanisms

© 2006 Pearson Education, Inc. All rights reserved.
15

1.7 Machine Languages, Assembly Languages
and High-Level Languages
• Three types of computer languages
– Machine language
• Only language computer directly understands
– “Natural language” of computer
– Defined by hardware design
• Generally consist of strings of numbers
– Ultimately 0s and 1s
• Instruct computers to perform elementary operations
• Cumbersome for humans
• Example
– +1300042774
+1400593419
+1200274027
© 2006 Pearson Education, Inc. All rights reserved.
16

1.7 Machine Languages, Assembly Languages
and High-Level Languages (Cont.)
• Three types of computer languages (Cont.)
– Assembly language
• English-like abbreviations representing elementary computer
operations
• Clearer to humans
• Incomprehensible to computers
– Convert to machine language by translator programs
(assemblers)
• Example
– load
add
store

basepay
overpay
grosspay

© 2006 Pearson Education, Inc. All rights reserved.
17

1.7 Machine Languages, Assembly Languages
and High-Level Languages (Cont.)
• Three types of computer languages (Cont.)
– High-level languages
• Similar to everyday English
– Uses common mathematical notations
• Single statements accomplish substantial tasks
• Converted to machine language by translator programs (compilers)
• Interpreter programs
– Directly execute high-level language programs
– Execute more slowly than the compiled program
• Example
– grossPay = basePay + overTimePay

© 2006 Pearson Education, Inc. All rights reserved.
18

1.8 History of C and C++
• History of C
– Evolved from BCPL and B
• Developed by Dennis Ritchie (Bell Laboratories)

– Development language of UNIX
– Hardware independent
• Can write portable programs

– ANSI and ISO standard for C published in 1990
• ANSI/ISO 9899: 1990

© 2006 Pearson Education, Inc. All rights reserved.
19

Portability Tip 1.1
Because C is a standardized, hardwareindependent, widely available language,
applications written in C often can be run
with little or no modification on a wide
range of computer systems.

© 2006 Pearson Education, Inc. All rights reserved.
20

1.8 History of C and C++ (Cont.)
• History of C++
– Extension of C
• Developed by Bjarne Stroustrup (Bell Laboratories) in early 1980s

– Provides new features to “spruce up” C
– Provides capabilities for object-oriented programming
• Objects: reusable software components
– Model items in the real world
• Object-oriented programs
– Easier to understand, correct and modify

© 2006 Pearson Education, Inc. All rights reserved.
21

1.9 C++ Standard Library
• C++ programs
– Built from pieces called classes and functions

• C++ Standard Library
– Rich collections of existing classes and functions
• Reusable in new applications

© 2006 Pearson Education, Inc. All rights reserved.
22

Software Engineering Observation 1.1
Use a “building-block” approach to create
programs. Avoid reinventing the wheel. Use
existing pieces wherever possible. Called software
reuse, this practice is central to object-oriented
programming.

© 2006 Pearson Education, Inc. All rights reserved.
23

Software Engineering Observation 1.2
When programming in C++, you typically will
use the following building blocks: Classes and
functions from the C++ Standard Library,
classes and functions you and your colleagues
create and classes and functions from various
popular third-party libraries.

© 2006 Pearson Education, Inc. All rights reserved.
24

Performance Tip 1.1
Using C++ Standard Library functions and
classes instead of writing your own versions can
improve program performance, because they are
written carefully to perform efficiently. This
technique also shortens program development
time.

© 2006 Pearson Education, Inc. All rights reserved.
25

Portability Tip 1.2
Using C++ Standard Library functions and
classes instead of writing your own improves
program portability, because they are included
in every C++ implementation.

© 2006 Pearson Education, Inc. All rights reserved.
26

1.10 History of Java
• Java
– Originally for intelligent consumer-electronic devices
• Designed by Sun Microsystems

– Then used for creating Web pages with dynamic content
– Now also used for:
• Develop large-scale enterprise applications
• Enhance World Wide Web server functionality
• Provide applications for consumer devices (cell phones, etc.)

© 2006 Pearson Education, Inc. All rights reserved.
27

1.11 FORTRAN, COBOL, Pascal and Ada
• FORTRAN
– FORmula TRANslator
– Used in engineering applications

• COBOL
– COmmon Business Oriented Language
– Used in business software

• Pascal
– Designed to teach structured programming

• Ada
– Capable of multitasking

© 2006 Pearson Education, Inc. All rights reserved.
1.12 Basic, Visual Basic, Visual C++, C#
and .NET

28

• BASIC
– Beginner’s All-Purpose Symbolic Instruction Code
– Familiarize novices with programming techniques

• .NET platform
– Provides developers with capabilities

• Visual Basic .NET
– Based on BASIC

• Visual C++
– Based on C++

• C#
– Based on C++ and Java

© 2006 Pearson Education, Inc. All rights reserved.
1.13 Key Software Trend: Object
Technology

29

• Objects
– Reusable software components that model real world items
– Meaningful software units
• Time objects, paycheck objects, record objects, etc.
• Any noun can be represented as an object

– More understandable, better organized and easier to
maintain than procedural programming
– Libraries of reusable software
• MFC (Microsoft Foundation Classes)
• .NET Framework Class Library
• Rogue Wave

© 2006 Pearson Education, Inc. All rights reserved.
30

Software Engineering Observation 1.3
Extensive class libraries of reusable software
components are available over the Internet and
the World Wide Web. Many of these libraries
are available at no charge.

© 2006 Pearson Education, Inc. All rights reserved.
1.14 Typical C++ Development
Environment

31

• C++ programs normally undergo six phases
– Edit
• Programmer writes program (and stores source code on disk)

– Preprocess
• Perform certain manipulations before compilation

– Compile
• Compiler translates C++ programs into machine languages

– Link
• Link object code with missing functions and data

– Load
• Transfer executable image to memory

– Execute
• Execute the program one instruction at a time
© 2006 Pearson Education, Inc. All rights reserved.
32

Fig. 1.1 | Typical C++ environment.

© 2006 Pearson Education, Inc. All rights reserved.
1.14 Typical C++ Development
Environment (Cont.)

33

• Input/output
– cin
• Standard input stream
• Normally inputs from keyboard

– cout
• Standard output stream
• Normally outputs to computer screen

– cerr
• Standard error stream
• Displays error messages

© 2006 Pearson Education, Inc. All rights reserved.
34

Common Programming Error 1.1
Errors like division by zero occur as a program
runs, so they are called runtime errors or
execution-time errors. Fatal runtime errors cause
programs to terminate immediately without
having successfully performed their jobs.
Nonfatal runtime errors allow programs to run
to completion, often producing incorrect results.
[Note: On some systems, divide-by-zero is not a
fatal error. Please see your system
documentation.]

© 2006 Pearson Education, Inc. All rights reserved.
1.15 Notes About C++ and C++ How to
Program, 5/e

35

• This book is geared toward novice programmers
– Stresses programming clarity

• Portability
– C and C++ programs can run on many different computers

© 2006 Pearson Education, Inc. All rights reserved.
36

Good Programming Practice 1.1
Write your C++ programs in a simple and
straightforward manner. This is sometimes
referred to as KIS (“keep it simple”). Do not
“stretch” the language by trying bizarre usages.

© 2006 Pearson Education, Inc. All rights reserved.
37

Portability Tip 1.3
Although it is possible to write portable
programs, there are many problems among
different C and C++ compilers and different
computers that can make portability difficult to
achieve. Writing programs in C and C++ does
not guarantee portability. The programmer
often will need to deal directly with compiler
and computer variations. As a group, these are
sometimes called platform variations.

© 2006 Pearson Education, Inc. All rights reserved.
38

Good Programming Practice 1.2
Read the manuals for the version of C++ you are
using. Refer to these manuals frequently to be
sure you are aware of the rich collection of C++
features and that you are using them correctly.

© 2006 Pearson Education, Inc. All rights reserved.
39

Good Programming Practice 1.3
Your computer and compiler are good teachers.
If after reading your C++ language manual, you
still are not sure how a feature of C++ works,
experiment using a small “test program” and see
what happens. Set your compiler options for
“maximum warnings.” Study each message that
the compiler generates and correct the programs
to eliminate the messages.

© 2006 Pearson Education, Inc. All rights reserved.
40

1.16 Test-Driving a C++ Application
• Running and interacting with a C++ application
– Windows XP Command Prompt
– Linux shell

© 2006 Pearson Education, Inc. All rights reserved.
41

Using the cd command
to change directories

File location of the GuessNumber application

Fig. 1.2 | Opening a Command Prompt window and changing the directory.

© 2006 Pearson Education, Inc. All rights reserved.
42

Enter guess number prompt

Fig. 1.3 | Running the GuessNumber application.

© 2006 Pearson Education, Inc. All rights reserved.
43

Enter first guess

Fig. 1.4 | Entering your first guess.

© 2006 Pearson Education, Inc. All rights reserved.
44

Fig. 1.5 | Entering a second guess and receiving feedback.

© 2006 Pearson Education, Inc. All rights reserved.
45

Fig. 1.6 | Entering additional guesses and guessing the correct number.

© 2006 Pearson Education, Inc. All rights reserved.
46

Fig. 1.7 | Playing the game again.

© 2006 Pearson Education, Inc. All rights reserved.
47

Fig. 1.8 | Exiting the game.

© 2006 Pearson Education, Inc. All rights reserved.
48

~$ cd examples/ch01/GuessNumber/GNU_Linux
~/examples/ch01/GuessNumber/GNU_Linux$

Fig. 1.9 | Changing to the GuessNumber application’s directory after logging in to

your Linux account.

© 2006 Pearson Education, Inc. All rights reserved.
49

Compile the application with
the GNU C++ compiler

~/examples/ch01/GuessNumber/GNU_Linux$ g++ GuessNumber.cpp -o GuessNumber
~/examples/ch01/GuessNumber/GNU_Linux$

Fig. 1.10 | Compiling the GuessNumber application using the g++ command.

© 2006 Pearson Education, Inc. All rights reserved.
50

~/examples/ch01/GuessNumber/GNU_Linux$ ./GuessNumber
I have a number between 1 and 1000.
Can you guess my number?
Please type your first guess.
?

Fig. 1.11 | Running the GuessNumber application.

© 2006 Pearson Education, Inc. All rights reserved.
51

~/examples/ch01/GuessNumber/GNU_Linux$ ./GuessNumber
I have a number between 1 and 1000.
Can you guess my number?
Please type your first guess.
? 500
Too high. Try again.
?

Fig. 1.12 | Entering an initial guess.

© 2006 Pearson Education, Inc. All rights reserved.
52

~/examples/ch01/GuessNumber/GNU_Linux$ ./GuessNumber
I have a number between 1 and 1000.
Can you guess my number?
Please type your first guess.
? 500
Too high. Try again.
? 250
Too low. Try again.
?

Fig. 1.13 | Entering a second guess and receiving feedback.

© 2006 Pearson Education, Inc. All rights reserved.
53

Too low. Try again.
? 375
Too low. Try again.
? 437
Too high. Try again.
? 406
Too high. Try again.
? 391
Too high. Try again.
? 383
Too low. Try again.
? 387
Too high. Try again.
? 385
Too high. Try again.
? 384
Excellent! You guessed the number.
Would you like to play again (y or n)?

Fig. 1.14 | Entering additional guesses and guessing the correct number.

© 2006 Pearson Education, Inc. All rights reserved.
54

Excellent! You guessed the number.
Would you like to play again (y or n)? y
I have a number between 1 and 1000.
Can you guess my number?
Please type your first guess.
?

Fig. 1.15 | Playing the game again.

© 2006 Pearson Education, Inc. All rights reserved.
55

Excellent! You guessed the number.
Would you like to play again (y or n)? n
~/examples/ch01/GuessNumber/GNU_Linux$

Fig. 1.16 | Exiting the game.

© 2006 Pearson Education, Inc. All rights reserved.
1.17 Software Engineering Case Study:
Introduction to Object Technology and the UML
(Required)
• Object orientation

56

– A natural way of thinking about the world and computer
programs

• Unified Modeling Language (UML)
– Graphical language that uses common notation
– Allows developers to represent object-oriented designs

© 2006 Pearson Education, Inc. All rights reserved.
57

1.17 Software Engineering Case Study (Cont.)
• Objects
– Reusable software components that model real-world items
– Examples are all around you
• People, animals, cars, telephones, microwave ovens, etc.

– Have attributes
• Size, shape, color, weight, etc.

– Exhibit behaviors
• Babies cry, crawl, sleep, etc.; cars accelerate, brake, turn, etc.

© 2006 Pearson Education, Inc. All rights reserved.
58

1.17 Software Engineering Case Study (Cont.)
• Object-oriented design (OOD)
– Models real-world objects in software
– Models communication among objects
– Encapsulates attributes and operations (behaviors)
• Information hiding
• Communication through well-defined interfaces

• Object-oriented language
– Programming in object oriented languages is called objectoriented programming (OOP)
– C++ is an object-oriented language
• Programmers can create user-defined types called classes
– Contain data members (attributes) and member functions
(behaviors)
© 2006 Pearson Education, Inc. All rights reserved.
59

Software Engineering Observation 1.4
Reuse of existing classes when building new
classes and programs saves time, money and
effort. Reuse also helps programmers build
more reliable and effective systems, because
existing classes and components often have
gone through extensive testing, debugging and
performance tuning.

© 2006 Pearson Education, Inc. All rights reserved.
60

1.17 Software Engineering Case Study (Cont.)
• Object-Oriented Analysis and Design (OOAD)
– Analyze program requirements, then develop solution
– Essential for large programs
– Plan in pseudocode or UML

© 2006 Pearson Education, Inc. All rights reserved.
61

1.17 Software Engineering Case Study (Cont.)
• History of the UML
– Used to approach OOAD
– Object Management Group (OMG) supervised
• Brainchild of Booch, Rumbaugh and Jacobson

– Version 1.5 is current version
• Version 2 under development

• UML
– Graphical representation scheme
– Enables developers to model object-oriented systems
– Flexible and extendible

© 2006 Pearson Education, Inc. All rights reserved.

More Related Content

What's hot

Multimedia software hardware
Multimedia software hardwareMultimedia software hardware
Multimedia software hardwaregopinathselvi
 
COMPUTERS IN EDUCATION - UNIT 1 - INTRODUCTION TO COMPUTER - B.ED - 8620 - AIOU
COMPUTERS IN EDUCATION - UNIT 1 - INTRODUCTION TO COMPUTER - B.ED - 8620 - AIOUCOMPUTERS IN EDUCATION - UNIT 1 - INTRODUCTION TO COMPUTER - B.ED - 8620 - AIOU
COMPUTERS IN EDUCATION - UNIT 1 - INTRODUCTION TO COMPUTER - B.ED - 8620 - AIOUEqraBaig
 
Information System (CH.2)
Information System (CH.2)Information System (CH.2)
Information System (CH.2)Hakam AL-Meshry
 
Important keyword to remember
Important keyword to rememberImportant keyword to remember
Important keyword to rememberIszamli Jailani
 
Software curation as a digital preservation service
Software curation as a digital preservation serviceSoftware curation as a digital preservation service
Software curation as a digital preservation serviceKeith Webster
 
Essential introduction to computers adebiaye
Essential introduction to computers adebiayeEssential introduction to computers adebiaye
Essential introduction to computers adebiayeDR RICHMOND ADEBIAYE
 
Computer hardware technology
Computer hardware technologyComputer hardware technology
Computer hardware technologytechnoyash
 
Knowledge on IT Infrastructure
Knowledge on IT InfrastructureKnowledge on IT Infrastructure
Knowledge on IT InfrastructureLopamudra Das
 

What's hot (14)

Uc14 chap08
Uc14 chap08Uc14 chap08
Uc14 chap08
 
Uc14 chap06
Uc14 chap06Uc14 chap06
Uc14 chap06
 
Uc14 chap07
Uc14 chap07Uc14 chap07
Uc14 chap07
 
Multimedia software hardware
Multimedia software hardwareMultimedia software hardware
Multimedia software hardware
 
IS CH.1
IS CH.1IS CH.1
IS CH.1
 
COMPUTERS IN EDUCATION - UNIT 1 - INTRODUCTION TO COMPUTER - B.ED - 8620 - AIOU
COMPUTERS IN EDUCATION - UNIT 1 - INTRODUCTION TO COMPUTER - B.ED - 8620 - AIOUCOMPUTERS IN EDUCATION - UNIT 1 - INTRODUCTION TO COMPUTER - B.ED - 8620 - AIOU
COMPUTERS IN EDUCATION - UNIT 1 - INTRODUCTION TO COMPUTER - B.ED - 8620 - AIOU
 
Information System (CH.2)
Information System (CH.2)Information System (CH.2)
Information System (CH.2)
 
Uc14 chap10
Uc14 chap10Uc14 chap10
Uc14 chap10
 
Important keyword to remember
Important keyword to rememberImportant keyword to remember
Important keyword to remember
 
Software curation as a digital preservation service
Software curation as a digital preservation serviceSoftware curation as a digital preservation service
Software curation as a digital preservation service
 
Essential introduction to computers adebiaye
Essential introduction to computers adebiayeEssential introduction to computers adebiaye
Essential introduction to computers adebiaye
 
B) Computer Basics
B) Computer BasicsB) Computer Basics
B) Computer Basics
 
Computer hardware technology
Computer hardware technologyComputer hardware technology
Computer hardware technology
 
Knowledge on IT Infrastructure
Knowledge on IT InfrastructureKnowledge on IT Infrastructure
Knowledge on IT Infrastructure
 

Similar to Cpp htp5e 01

Similar to Cpp htp5e 01 (20)

1. intro to comp & c++ programming
1. intro to comp & c++ programming1. intro to comp & c++ programming
1. intro to comp & c++ programming
 
cpphtp4_PPT_01.ppt
cpphtp4_PPT_01.pptcpphtp4_PPT_01.ppt
cpphtp4_PPT_01.ppt
 
Chapter 04 C++ Programmings Fundamental.
Chapter 04 C++ Programmings Fundamental.Chapter 04 C++ Programmings Fundamental.
Chapter 04 C++ Programmings Fundamental.
 
iw3htp4_01-FINAL.ppt
iw3htp4_01-FINAL.pptiw3htp4_01-FINAL.ppt
iw3htp4_01-FINAL.ppt
 
Lecture 1.ppt
Lecture 1.pptLecture 1.ppt
Lecture 1.ppt
 
chapter01.ppt
chapter01.pptchapter01.ppt
chapter01.ppt
 
chapter01 (1).ppt
chapter01 (1).pptchapter01 (1).ppt
chapter01 (1).ppt
 
chapter01.ppt
chapter01.pptchapter01.ppt
chapter01.ppt
 
01 intro to vb-net
01 intro to vb-net01 intro to vb-net
01 intro to vb-net
 
Chapter1- Introduction to Computers and the Internet
Chapter1- Introduction to Computers and the InternetChapter1- Introduction to Computers and the Internet
Chapter1- Introduction to Computers and the Internet
 
Chtp401
Chtp401Chtp401
Chtp401
 
Csphtp1 01
Csphtp1 01Csphtp1 01
Csphtp1 01
 
Introduction to Computers, the Internet and the Web
Introduction to Computers, the Internet and the WebIntroduction to Computers, the Internet and the Web
Introduction to Computers, the Internet and the Web
 
computer programming C++
computer  programming C++computer  programming C++
computer programming C++
 
Cpphtp4 ppt 01
Cpphtp4 ppt 01Cpphtp4 ppt 01
Cpphtp4 ppt 01
 
C 1
C 1C 1
C 1
 
Introduction to Java and computers
Introduction to Java and computersIntroduction to Java and computers
Introduction to Java and computers
 
Fundamentals of Computers
Fundamentals of ComputersFundamentals of Computers
Fundamentals of Computers
 
Unit 1 operating system
Unit 1 operating systemUnit 1 operating system
Unit 1 operating system
 
Unit 1 computer concepts
Unit 1   computer conceptsUnit 1   computer concepts
Unit 1 computer concepts
 

Recently uploaded

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Cpp htp5e 01

  • 1. 1 1 Introduction to Computers, the Internet and World Wide Web © 2006 Pearson Education, Inc. All rights reserved.
  • 2. 2 The chief merit of language is clearness. — Galen Our life is frittered away by detail…. Simplify, simplify. — Henry David Thoreau He had a wonderful talent for packing thought close, and rendering it portable. — Thomas B. Macaulay Man is still the most extraordinary computer of all. — John F. Kennedy © 2006 Pearson Education, Inc. All rights reserved.
  • 3. 3 OBJECTIVES In this chapter you will learn:  Basic hardware and software concepts.  Basic object-technology concepts, such as classes, objects, attributes, behaviors, encapsulation and inheritance.  The different types of programming languages.  Which programming languages are most widely used.  A typical C++ program development environment.  The history of the industry-standard object-oriented system modeling language, the UML.  The history of the Internet and the World Wide Web.  To test-drive C++ applications in two popular C++ environments—GNU C++ running on Linux and Microsoft's Visual C++® .NET running on Windows® XP. © 2006 Pearson Education, Inc. All rights reserved.
  • 4. 4 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 Introduction What Is a Computer? Computer Organization Early Operating Systems Personal, Distributed and Client/Server Computing The Internet and the World Wide Web Machine Languages, Assembly Languages and High-Level Languages History of C and C++ C++ Standard Library History of Java FORTRAN, COBOL, Pascal and Ada Basic, Visual Basic, Visual C++, C# and .NET Key Software Trend: Object Technology Typical C++ Development Environment Notes About C++ and C++ How to Program, 5/e Test-Driving a C++ Application 1.17 Software Engineering Case Study: Introduction to Object Technology and the UML (Required) Wrap-Up Web Resources 1.18 1.19 © 2006 Pearson Education, Inc. All rights reserved.
  • 5. 5 1.1 Introduction • Software – Instructions to command computer to perform actions and make decisions • Hardware • Standardized version of C++ – United States • American National Standards Institute (ANSI) – Worldwide • International Organization for Standardization (ISO) • Structured programming • Object-oriented programming © 2006 Pearson Education, Inc. All rights reserved.
  • 6. 6 1.2 What Is a Computer? • Computer – Device capable of performing computations and making logical decisions • Computer programs – Sets of instructions that control computer’s processing of data – Written by people called computer programmers • Hardware – Various devices comprising computer • Keyboard, screen, mouse, disks, memory, CD-ROM, processing units, etc. © 2006 Pearson Education, Inc. All rights reserved.
  • 7. 7 1.3 Computer Organization • Six logical units of computer – Input unit • “Receiving” section • Obtains information from input devices – Keyboard, mouse, microphone, scanner, networks, etc. – Output unit • “Shipping” section • Places information processed by computer on output devices – Screen, printer, networks, etc. – Information can also be used to control other devices © 2006 Pearson Education, Inc. All rights reserved.
  • 8. 8 1.3 Computer Organization (Cont.) • Six logical units of computer (Cont.) – Memory unit • Rapid access, relatively low capacity “warehouse” section • Retains information from input unit – Immediately available for processing • Retains processed information – Until placed on output devices • Often called memory or primary memory – Arithmetic and logic unit (ALU) • “Manufacturing” section • Performs arithmetic calculations and logic decisions © 2006 Pearson Education, Inc. All rights reserved.
  • 9. 9 1.3 Computer Organization (Cont.) • Six logical units of computer (Cont.) – Central processing unit (CPU) • “Administrative” section • Coordinates and supervises other sections of computer – Secondary storage unit • Long-term, high-capacity “warehouse” section • Stores inactive programs or data • Secondary storage devices – Hard drives, CDs, DVDs • Slower to access than primary memory • Less expensive per unit than primary memory © 2006 Pearson Education, Inc. All rights reserved.
  • 10. 10 1.4 Early Operating Systems • Early computers – Single-user batch processing • Only one job or task at a time • Process data in groups (batches) – Decks of punched cards • Users had to wait hours or days for results • Operating systems – Software systems that manage transitions between jobs – Increased throughput • Amount of work computers can process © 2006 Pearson Education, Inc. All rights reserved.
  • 11. 11 1.4 Early Operating Systems (Cont.) • Multiprogramming – Many jobs or tasks sharing computer’s resources – “Simultaneous” operation of many jobs • Timesharing – Special case of multiprogramming – Users access computer through terminals • Devices with keyboards and screens • Dozens, even hundreds of users – Computer use is shared among all users • Performs small portion of one user’s job, then moves on to service next user – Advantage • User receives almost immediate responses to requests © 2006 Pearson Education, Inc. All rights reserved.
  • 12. 1.5 Personal, Distributed and Client/Server Computing 12 • Personal computers – Popularized in 1977 by Apple Computer • Economical enough for individual – Ligitimized in 1981 by IBM Personal Computer – “Standalone” units • Computer networks – Connected over telephone lines – Local area networks (LANs) • Distributed computing – Organization’s computing distributed over networks © 2006 Pearson Education, Inc. All rights reserved.
  • 13. 1.5 Personal, Distributed and Client/Server Computing (Cont.) 13 • Workstations – Provide enormous capabilities • Client/server computing – File servers • Offer common store of programs and data – Client computers • Access file servers across network • UNIX, Linux, Mac OS X and Microsoft’s Window-based systems support these capabilities © 2006 Pearson Education, Inc. All rights reserved.
  • 14. 14 1.6 The Internet and the World Wide Web • Internet – Global network of computers • Initiated almost four decades ago – Accessible by computers worldwide today • World Wide Web – Allows computer users to locate and view multimediabased documents – Internet has become one of the world’s premier communication mechanisms © 2006 Pearson Education, Inc. All rights reserved.
  • 15. 15 1.7 Machine Languages, Assembly Languages and High-Level Languages • Three types of computer languages – Machine language • Only language computer directly understands – “Natural language” of computer – Defined by hardware design • Generally consist of strings of numbers – Ultimately 0s and 1s • Instruct computers to perform elementary operations • Cumbersome for humans • Example – +1300042774 +1400593419 +1200274027 © 2006 Pearson Education, Inc. All rights reserved.
  • 16. 16 1.7 Machine Languages, Assembly Languages and High-Level Languages (Cont.) • Three types of computer languages (Cont.) – Assembly language • English-like abbreviations representing elementary computer operations • Clearer to humans • Incomprehensible to computers – Convert to machine language by translator programs (assemblers) • Example – load add store basepay overpay grosspay © 2006 Pearson Education, Inc. All rights reserved.
  • 17. 17 1.7 Machine Languages, Assembly Languages and High-Level Languages (Cont.) • Three types of computer languages (Cont.) – High-level languages • Similar to everyday English – Uses common mathematical notations • Single statements accomplish substantial tasks • Converted to machine language by translator programs (compilers) • Interpreter programs – Directly execute high-level language programs – Execute more slowly than the compiled program • Example – grossPay = basePay + overTimePay © 2006 Pearson Education, Inc. All rights reserved.
  • 18. 18 1.8 History of C and C++ • History of C – Evolved from BCPL and B • Developed by Dennis Ritchie (Bell Laboratories) – Development language of UNIX – Hardware independent • Can write portable programs – ANSI and ISO standard for C published in 1990 • ANSI/ISO 9899: 1990 © 2006 Pearson Education, Inc. All rights reserved.
  • 19. 19 Portability Tip 1.1 Because C is a standardized, hardwareindependent, widely available language, applications written in C often can be run with little or no modification on a wide range of computer systems. © 2006 Pearson Education, Inc. All rights reserved.
  • 20. 20 1.8 History of C and C++ (Cont.) • History of C++ – Extension of C • Developed by Bjarne Stroustrup (Bell Laboratories) in early 1980s – Provides new features to “spruce up” C – Provides capabilities for object-oriented programming • Objects: reusable software components – Model items in the real world • Object-oriented programs – Easier to understand, correct and modify © 2006 Pearson Education, Inc. All rights reserved.
  • 21. 21 1.9 C++ Standard Library • C++ programs – Built from pieces called classes and functions • C++ Standard Library – Rich collections of existing classes and functions • Reusable in new applications © 2006 Pearson Education, Inc. All rights reserved.
  • 22. 22 Software Engineering Observation 1.1 Use a “building-block” approach to create programs. Avoid reinventing the wheel. Use existing pieces wherever possible. Called software reuse, this practice is central to object-oriented programming. © 2006 Pearson Education, Inc. All rights reserved.
  • 23. 23 Software Engineering Observation 1.2 When programming in C++, you typically will use the following building blocks: Classes and functions from the C++ Standard Library, classes and functions you and your colleagues create and classes and functions from various popular third-party libraries. © 2006 Pearson Education, Inc. All rights reserved.
  • 24. 24 Performance Tip 1.1 Using C++ Standard Library functions and classes instead of writing your own versions can improve program performance, because they are written carefully to perform efficiently. This technique also shortens program development time. © 2006 Pearson Education, Inc. All rights reserved.
  • 25. 25 Portability Tip 1.2 Using C++ Standard Library functions and classes instead of writing your own improves program portability, because they are included in every C++ implementation. © 2006 Pearson Education, Inc. All rights reserved.
  • 26. 26 1.10 History of Java • Java – Originally for intelligent consumer-electronic devices • Designed by Sun Microsystems – Then used for creating Web pages with dynamic content – Now also used for: • Develop large-scale enterprise applications • Enhance World Wide Web server functionality • Provide applications for consumer devices (cell phones, etc.) © 2006 Pearson Education, Inc. All rights reserved.
  • 27. 27 1.11 FORTRAN, COBOL, Pascal and Ada • FORTRAN – FORmula TRANslator – Used in engineering applications • COBOL – COmmon Business Oriented Language – Used in business software • Pascal – Designed to teach structured programming • Ada – Capable of multitasking © 2006 Pearson Education, Inc. All rights reserved.
  • 28. 1.12 Basic, Visual Basic, Visual C++, C# and .NET 28 • BASIC – Beginner’s All-Purpose Symbolic Instruction Code – Familiarize novices with programming techniques • .NET platform – Provides developers with capabilities • Visual Basic .NET – Based on BASIC • Visual C++ – Based on C++ • C# – Based on C++ and Java © 2006 Pearson Education, Inc. All rights reserved.
  • 29. 1.13 Key Software Trend: Object Technology 29 • Objects – Reusable software components that model real world items – Meaningful software units • Time objects, paycheck objects, record objects, etc. • Any noun can be represented as an object – More understandable, better organized and easier to maintain than procedural programming – Libraries of reusable software • MFC (Microsoft Foundation Classes) • .NET Framework Class Library • Rogue Wave © 2006 Pearson Education, Inc. All rights reserved.
  • 30. 30 Software Engineering Observation 1.3 Extensive class libraries of reusable software components are available over the Internet and the World Wide Web. Many of these libraries are available at no charge. © 2006 Pearson Education, Inc. All rights reserved.
  • 31. 1.14 Typical C++ Development Environment 31 • C++ programs normally undergo six phases – Edit • Programmer writes program (and stores source code on disk) – Preprocess • Perform certain manipulations before compilation – Compile • Compiler translates C++ programs into machine languages – Link • Link object code with missing functions and data – Load • Transfer executable image to memory – Execute • Execute the program one instruction at a time © 2006 Pearson Education, Inc. All rights reserved.
  • 32. 32 Fig. 1.1 | Typical C++ environment. © 2006 Pearson Education, Inc. All rights reserved.
  • 33. 1.14 Typical C++ Development Environment (Cont.) 33 • Input/output – cin • Standard input stream • Normally inputs from keyboard – cout • Standard output stream • Normally outputs to computer screen – cerr • Standard error stream • Displays error messages © 2006 Pearson Education, Inc. All rights reserved.
  • 34. 34 Common Programming Error 1.1 Errors like division by zero occur as a program runs, so they are called runtime errors or execution-time errors. Fatal runtime errors cause programs to terminate immediately without having successfully performed their jobs. Nonfatal runtime errors allow programs to run to completion, often producing incorrect results. [Note: On some systems, divide-by-zero is not a fatal error. Please see your system documentation.] © 2006 Pearson Education, Inc. All rights reserved.
  • 35. 1.15 Notes About C++ and C++ How to Program, 5/e 35 • This book is geared toward novice programmers – Stresses programming clarity • Portability – C and C++ programs can run on many different computers © 2006 Pearson Education, Inc. All rights reserved.
  • 36. 36 Good Programming Practice 1.1 Write your C++ programs in a simple and straightforward manner. This is sometimes referred to as KIS (“keep it simple”). Do not “stretch” the language by trying bizarre usages. © 2006 Pearson Education, Inc. All rights reserved.
  • 37. 37 Portability Tip 1.3 Although it is possible to write portable programs, there are many problems among different C and C++ compilers and different computers that can make portability difficult to achieve. Writing programs in C and C++ does not guarantee portability. The programmer often will need to deal directly with compiler and computer variations. As a group, these are sometimes called platform variations. © 2006 Pearson Education, Inc. All rights reserved.
  • 38. 38 Good Programming Practice 1.2 Read the manuals for the version of C++ you are using. Refer to these manuals frequently to be sure you are aware of the rich collection of C++ features and that you are using them correctly. © 2006 Pearson Education, Inc. All rights reserved.
  • 39. 39 Good Programming Practice 1.3 Your computer and compiler are good teachers. If after reading your C++ language manual, you still are not sure how a feature of C++ works, experiment using a small “test program” and see what happens. Set your compiler options for “maximum warnings.” Study each message that the compiler generates and correct the programs to eliminate the messages. © 2006 Pearson Education, Inc. All rights reserved.
  • 40. 40 1.16 Test-Driving a C++ Application • Running and interacting with a C++ application – Windows XP Command Prompt – Linux shell © 2006 Pearson Education, Inc. All rights reserved.
  • 41. 41 Using the cd command to change directories File location of the GuessNumber application Fig. 1.2 | Opening a Command Prompt window and changing the directory. © 2006 Pearson Education, Inc. All rights reserved.
  • 42. 42 Enter guess number prompt Fig. 1.3 | Running the GuessNumber application. © 2006 Pearson Education, Inc. All rights reserved.
  • 43. 43 Enter first guess Fig. 1.4 | Entering your first guess. © 2006 Pearson Education, Inc. All rights reserved.
  • 44. 44 Fig. 1.5 | Entering a second guess and receiving feedback. © 2006 Pearson Education, Inc. All rights reserved.
  • 45. 45 Fig. 1.6 | Entering additional guesses and guessing the correct number. © 2006 Pearson Education, Inc. All rights reserved.
  • 46. 46 Fig. 1.7 | Playing the game again. © 2006 Pearson Education, Inc. All rights reserved.
  • 47. 47 Fig. 1.8 | Exiting the game. © 2006 Pearson Education, Inc. All rights reserved.
  • 48. 48 ~$ cd examples/ch01/GuessNumber/GNU_Linux ~/examples/ch01/GuessNumber/GNU_Linux$ Fig. 1.9 | Changing to the GuessNumber application’s directory after logging in to your Linux account. © 2006 Pearson Education, Inc. All rights reserved.
  • 49. 49 Compile the application with the GNU C++ compiler ~/examples/ch01/GuessNumber/GNU_Linux$ g++ GuessNumber.cpp -o GuessNumber ~/examples/ch01/GuessNumber/GNU_Linux$ Fig. 1.10 | Compiling the GuessNumber application using the g++ command. © 2006 Pearson Education, Inc. All rights reserved.
  • 50. 50 ~/examples/ch01/GuessNumber/GNU_Linux$ ./GuessNumber I have a number between 1 and 1000. Can you guess my number? Please type your first guess. ? Fig. 1.11 | Running the GuessNumber application. © 2006 Pearson Education, Inc. All rights reserved.
  • 51. 51 ~/examples/ch01/GuessNumber/GNU_Linux$ ./GuessNumber I have a number between 1 and 1000. Can you guess my number? Please type your first guess. ? 500 Too high. Try again. ? Fig. 1.12 | Entering an initial guess. © 2006 Pearson Education, Inc. All rights reserved.
  • 52. 52 ~/examples/ch01/GuessNumber/GNU_Linux$ ./GuessNumber I have a number between 1 and 1000. Can you guess my number? Please type your first guess. ? 500 Too high. Try again. ? 250 Too low. Try again. ? Fig. 1.13 | Entering a second guess and receiving feedback. © 2006 Pearson Education, Inc. All rights reserved.
  • 53. 53 Too low. Try again. ? 375 Too low. Try again. ? 437 Too high. Try again. ? 406 Too high. Try again. ? 391 Too high. Try again. ? 383 Too low. Try again. ? 387 Too high. Try again. ? 385 Too high. Try again. ? 384 Excellent! You guessed the number. Would you like to play again (y or n)? Fig. 1.14 | Entering additional guesses and guessing the correct number. © 2006 Pearson Education, Inc. All rights reserved.
  • 54. 54 Excellent! You guessed the number. Would you like to play again (y or n)? y I have a number between 1 and 1000. Can you guess my number? Please type your first guess. ? Fig. 1.15 | Playing the game again. © 2006 Pearson Education, Inc. All rights reserved.
  • 55. 55 Excellent! You guessed the number. Would you like to play again (y or n)? n ~/examples/ch01/GuessNumber/GNU_Linux$ Fig. 1.16 | Exiting the game. © 2006 Pearson Education, Inc. All rights reserved.
  • 56. 1.17 Software Engineering Case Study: Introduction to Object Technology and the UML (Required) • Object orientation 56 – A natural way of thinking about the world and computer programs • Unified Modeling Language (UML) – Graphical language that uses common notation – Allows developers to represent object-oriented designs © 2006 Pearson Education, Inc. All rights reserved.
  • 57. 57 1.17 Software Engineering Case Study (Cont.) • Objects – Reusable software components that model real-world items – Examples are all around you • People, animals, cars, telephones, microwave ovens, etc. – Have attributes • Size, shape, color, weight, etc. – Exhibit behaviors • Babies cry, crawl, sleep, etc.; cars accelerate, brake, turn, etc. © 2006 Pearson Education, Inc. All rights reserved.
  • 58. 58 1.17 Software Engineering Case Study (Cont.) • Object-oriented design (OOD) – Models real-world objects in software – Models communication among objects – Encapsulates attributes and operations (behaviors) • Information hiding • Communication through well-defined interfaces • Object-oriented language – Programming in object oriented languages is called objectoriented programming (OOP) – C++ is an object-oriented language • Programmers can create user-defined types called classes – Contain data members (attributes) and member functions (behaviors) © 2006 Pearson Education, Inc. All rights reserved.
  • 59. 59 Software Engineering Observation 1.4 Reuse of existing classes when building new classes and programs saves time, money and effort. Reuse also helps programmers build more reliable and effective systems, because existing classes and components often have gone through extensive testing, debugging and performance tuning. © 2006 Pearson Education, Inc. All rights reserved.
  • 60. 60 1.17 Software Engineering Case Study (Cont.) • Object-Oriented Analysis and Design (OOAD) – Analyze program requirements, then develop solution – Essential for large programs – Plan in pseudocode or UML © 2006 Pearson Education, Inc. All rights reserved.
  • 61. 61 1.17 Software Engineering Case Study (Cont.) • History of the UML – Used to approach OOAD – Object Management Group (OMG) supervised • Brainchild of Booch, Rumbaugh and Jacobson – Version 1.5 is current version • Version 2 under development • UML – Graphical representation scheme – Enables developers to model object-oriented systems – Flexible and extendible © 2006 Pearson Education, Inc. All rights reserved.