Tải bản đầy đủ (.ppt) (61 trang)

Chapter 1 – Introduction to Computers and C++ Programming pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (281.18 KB, 61 trang )

 2003 Prentice Hall, Inc. All rights reserved.
1
Chapter 1 – Introduction to Computers
and C++ Programming
Outline
1.1 Introduction
1.2 What is a Computer?
1.3 Computer Organization
1.4 Evolution of Operating Systems
1.5 Personal Computing, Distributed Computing and
Client/Server Computing
1.6 Machine Languages, Assembly Languages, and High-Level
Languages
1.7 History of C and C++
1.8 C++ Standard Library
1.9 Java
1.10 Visual Basic, Visual C++ and C#
1.11 Other High-Level Languages
1.12 Structured Programming
1.13 The Key Software Trend: Object Technology
1.14 Basics of a Typical C++ Environment
1.15 Hardware Trends
 2003 Prentice Hall, Inc. All rights reserved.
2
Chapter 1 – Introduction to Computers
and C++ Programming
Outline
1.16 History of the Internet
1.17 History of the World Wide Web
1.18 World Wide Web Consortium (W3C)
1.19 General Notes About C++ and This Book


1.20 Introduction to C++ Programming
1.21 A Simple Program: Printing a Line of Text
1.22 Another Simple Program: Adding Two Integers
1.23 Memory Concepts
1.24 Arithmetic
1.25 Decision Making: Equality and Relational Operators
1.26 Thinking About Objects: Introduction to Object Technology
and the Unified Modeling Language
 2003 Prentice Hall, Inc. All rights reserved.
3
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
 2003 Prentice Hall, Inc. All rights reserved.
4
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

Hardware

Various devices comprising computer

Keyboard, screen, mouse, disks, memory, CD-ROM,
processing units, …

Software

Programs that run on computer
 2003 Prentice Hall, Inc. All rights reserved.
5
1.3 Computer Organization


Six logical units of computer
1. Input unit

“Receiving” section

Obtains information from input devices

Keyboard, mouse, microphone, scanner, networks, …
1. Output unit

“Shipping” section

Takes information processed by computer

Places information on output devices

Screen, printer, networks, …

Information used to control other devices
 2003 Prentice Hall, Inc. All rights reserved.
6
1.3 Computer Organization

Six logical units of computer
3. 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

Memory, primary memory
4. Arithmetic and logic unit (ALU)

“Manufacturing” section

Performs arithmetic calculations and logic decisions
 2003 Prentice Hall, Inc. All rights reserved.
7
1.3 Computer Organization

Six logical units of computer
5. Central processing unit (CPU)

“Administrative” section

Supervises and coordinates other sections of computer
5. Secondary storage unit

Long-term, high-capacity “warehouse” section

Storage

Inactive programs or data


Secondary storage devices

Disks

Longer to access than primary memory

Less expensive per unit than primary memory
 2003 Prentice Hall, Inc. All rights reserved.
8
1.4 Evolution of 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

Operating systems

Software systems

Manage transitions between jobs

Increased throughput

Amount of work computers process

 2003 Prentice Hall, Inc. All rights reserved.
9
1.4 Evolution of Operating Systems

Multiprogramming

Many jobs or tasks sharing computer’s resources

“Simultaneous” operation of many jobs

Timesharing

1960s

Special case of multiprogramming

Users access computer through terminals

Devices with keyboards and screens

Dozens, even hundreds of users

Perform small portion of one user’s job, then moves on to
service next user

Advantage:

User receives almost immediate responses to requests
 2003 Prentice Hall, Inc. All rights reserved.
10

1.5 Personal Computing, Distributed
Computing, and Client/Server Computing

Personal computers

1977: Apple Computer

Economical enough for individual

1981: IBM Personal Computer

“Standalone” units

Computer networks

Over telephone lines

Local area networks (LANs)

Distributed computing

Organization’s computing distributed over networks
 2003 Prentice Hall, Inc. All rights reserved.
11
1.5 Personal Computing, Distributed
Computing, and Client/Server Computing

Workstations

Provide enormous capabilities


Information shared across networks

Client/server computing

File servers

Offer common store of programs and data

Client computers

Access file servers across network

UNIX, Linux, Microsoft’s Window-based systems
 2003 Prentice Hall, Inc. All rights reserved.
12
1.6 Machine Languages, Assembly
Languages, and High-level Languages

Three types of computer languages
1. Machine language

Only language computer directly understands

“Natural language” of computer

Defined by hardware design

Machine-dependent


Generally consist of strings of numbers

Ultimately 0s and 1s

Instruct computers to perform elementary operations

One at a time

Cumbersome for humans

Example:
+1300042774
+1400593419
+1200274027
 2003 Prentice Hall, Inc. All rights reserved.
13
1.6 Machine Languages, Assembly
Languages, and High-level Languages

Three types of computer languages
2. Assembly language

English-like abbreviations representing elementary computer
operations

Clearer to humans

Incomprehensible to computers

Translator programs (assemblers)


Convert to machine language

Example:
LOAD BASEPAY
ADD OVERPAY
STORE GROSSPAY
 2003 Prentice Hall, Inc. All rights reserved.
14
1.6 Machine Languages, Assembly
Languages, and High-level Languages

Three types of computer languages
3. High-level languages

Similar to everyday English, use common mathematical
notations

Single statements accomplish substantial tasks

Assembly language requires many instructions to
accomplish simple tasks

Translator programs (compilers)

Convert to machine language

Interpreter programs

Directly execute high-level language programs


Example:
grossPay = basePay + overTimePay
 2003 Prentice Hall, Inc. All rights reserved.
15
1.7 History of C and C++

History of C

Evolved from two other programming languages

BCPL and B

“Typeless” languages

Dennis Ritchie (Bell Laboratories)

Added data typing, other features

Development language of UNIX

Hardware independent

Portable programs

1989: ANSI standard

1990: ANSI and ISO standard published

ANSI/ISO 9899: 1990

 2003 Prentice Hall, Inc. All rights reserved.
16
1.7 History of C and C++

History of C++

Extension of C

Early 1980s: Bjarne Stroustrup (Bell Laboratories)

“Spruces up” C

Provides capabilities for object-oriented programming

Objects: reusable software components

Model items in real world

Object-oriented programs

Easy to understand, correct and modify

Hybrid language

C-like style

Object-oriented style

Both
 2003 Prentice Hall, Inc. All rights reserved.

17
1.8 C++ Standard Library

C++ programs

Built from pieces called classes and functions

C++ standard library

Rich collections of existing classes and functions

“Building block approach” to creating programs

“Software reuse”
 2003 Prentice Hall, Inc. All rights reserved.
18
1.9 Java

Java

1991: Sun Microsystems

Green project

1995: Sun Microsystems

Formally announced Java at trade show

Web pages with dynamic and interactive content


Develop large-scale enterprise applications

Enhance functionality of web servers

Provide applications for consumer devices

Cell phones, pagers, personal digital assistants, …
 2003 Prentice Hall, Inc. All rights reserved.
19
1.10 Visual Basic, Visual C++ and C#

BASIC

Beginner’s All-Purpose Symbolic Instruction Code

Mid-1960s: Prof. John Kemeny and Thomas Kurtz
(Dartmouth College)

Visual Basic

1991

Result of Microsoft Windows graphical user interface (GUI)

Developed late 1980s, early 1990s

Powerful features

GUI, event handling, access to Win32 API, object-oriented
programming, error handling


Visual Basic .NET
 2003 Prentice Hall, Inc. All rights reserved.
20
1.10 Visual Basic, Visual C++ and C#

Visual C++

Microsoft’s implementation of C++

Includes extensions

Microsoft Foundation Classes (MFC)

Common library

GUI, graphics, networking, multithreading, …

Shared among Visual Basic, Visual C++, C#

.NET platform

Web-based applications

Distributed to great variety of devices

Cell phones, desktop computers

Applications in disparate languages can communicate
 2003 Prentice Hall, Inc. All rights reserved.

21
1.10 Visual Basic, Visual C++ and C#

C#

Anders Hejlsberg and Scott Wiltamuth (Microsoft)

Designed specifically for .NET platform

Roots in C, C++ and Java

Easy migration to .NET

Event-driven, fully object-oriented, visual programming
language

Integrated Development Environment (IDE)

Create, run, test and debug C# programs

Rapid Application Development (RAD)

Language interoperability
 2003 Prentice Hall, Inc. All rights reserved.
22
1.11 Other High-level Languages

FORTRAN

FORmula TRANslator


1954-1957: IBM

Complex mathematical computations

Scientific and engineering applications

COBOL

COmmon Business Oriented Language

1959: computer manufacturers, government and industrial
computer users

Precise and efficient manipulation of large amounts of data

Commercial applications
 2003 Prentice Hall, Inc. All rights reserved.
23
1.11 Other High-level Languages

Pascal

Prof. Niklaus Wirth

Academic use
 2003 Prentice Hall, Inc. All rights reserved.
24
1.12 Structured Programming


Structured programming (1960s)

Disciplined approach to writing programs

Clear, easy to test and debug, and easy to modify

Pascal

1971: Niklaus Wirth

Ada

1970s - early 1980s: US Department of Defense (DoD)

Multitasking

Programmer can specify many activities to run in parallel
 2003 Prentice Hall, Inc. All rights reserved.
25
1.13 The Key Software Trend: Object
Technology

Objects

Reusable software components that model real world items

Meaningful software units

Date objects, time objects, paycheck objects, invoice objects,
audio objects, video objects, file objects, record objects, etc.


Any noun can be represented as an object

More understandable, better organized and easier to maintain
than procedural programming

Favor modularity

Software reuse

Libraries

MFC (Microsoft Foundation Classes)

Rogue Wave

×