SlideShare a Scribd company logo
Chapter 1:
An Overview of Computers and
Programming Languages
Objectives
• In this chapter, you will:
– Learn about different types of computers
– Explore the hardware and software components of a
computer system
– Learn about the language of a computer
– Learn about the evolution of programming languages
– Examine high-level programming languages
2C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Objectives (cont’d.)
– Discover what a compiler is and what it does
– Examine a C++ program
– Explore how a C++ program is processed
– Learn what an algorithm is and explore problem-solving
techniques
– Become aware of structured design and object-oriented
design programming methodologies
– Become aware of Standard C++, ANSI/ISO Standard C++,
and C++11
3C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Introduction
• Without software, the computer is useless
• Software is developed with programming languages
– C++ is a programming language
• C++ suited for a wide variety of programming tasks
4C++ Programming: From Problem Analysis to Program Design, Seventh Edition
A Brief Overview of the History of
Computers
• Early calculation devices
– Abacus, Pascaline
– Leibniz device
– Jacquard’s weaving looms
– Babbage machines: difference and analytic engines
– Hollerith machine
5C++ Programming: From Problem Analysis to Program Design, Seventh Edition
A Brief Overview of the History of
Computers (cont’d.)
• Early computer-like machines
– Mark I
– ENIAC
– Von Neumann architecture
– UNIVAC
– Transistors and microprocessors
6C++ Programming: From Problem Analysis to Program Design, Seventh Edition
A Brief Overview of the History of
Computers (cont’d.)
• Categories of computers
– Mainframe computers
– Midsize computers
– Micro computers (personal computers)
7C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Elements of a Computer System
• Hardware
• CPU
• Main memory
• Secondary storage
• Input/Output devices
• Software
8C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Hardware
• CPU
• Main memory: RAM
• Input/output devices
• Secondary storage
9C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Central Processing Unit and Main
Memory
• Central processing unit
– Brain of the computer
– Most expensive piece of hardware
– Carries out arithmetic and logical operations
10C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Central Processing Unit and Main
Memory (cont’d.)
11C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Central Processing Unit and Main
Memory (cont’d.)
• Random access memory
– Directly connected to the CPU
• All programs must be loaded into main memory
before they can be executed
• All data must be brought into main memory before it
can be manipulated
• When computer power is turned off, everything in
main memory is lost
12C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Central Processing Unit and Main
Memory (cont’d.)
• Main memory is an ordered sequence of memory
cells
– Each cell has a unique location in main memory, called the
address of the cell
• Each cell can contain either a programming
instruction or data
13C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Secondary Storage
• Secondary storage: device that stores information
permanently
• Examples of secondary storage:
– Hard disks
– Flash drives
– Floppy disks
– Zip disks
– CD-ROMs
– Tapes
14C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Input/Output Devices
• Input devices feed data and programs into
computers
– Keyboard
– Mouse
– Secondary storage
• Output devices display results
– Monitor
– Printer
– Secondary storage
15C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Software
• Software: programs that do specific tasks
• System programs control the computer
– Operating system monitors the overall activity of the
computer and provides services such as:
• Memory management
• Input/output activities
• Storage management
• Application programs perform a specific task
– Word processors
– Spreadsheets
– Games
16C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Language of a Computer
• Analog signals: continuous wave forms
• Digital signals: sequences of 0s and 1s
• Machine language: language of a computer; a
sequence of 0s and 1s
• Binary digit (bit): the digit 0 or 1
• Binary code (binary number): a sequence of 0s
and 1s
17C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Language of a Computer (cont’d.)
• Byte:
– A sequence of eight bits
• Kilobyte (KB): 210
bytes = 1024 bytes
• ASCII (American Standard Code for Information
Interchange)
– 128 characters
– A is encoded as 1000001 (66th character)
– 3 is encoded as 0110011
18C++ Programming: From Problem Analysis to Program Design, Seventh Edition
19C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Language of a Computer (cont’d.)
The Language of a Computer (cont’d.)
• EBCDIC
– Used by IBM
– 256 characters
• Unicode
– 65536 characters
– Two bytes are needed to store a character
20C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Evolution of Programming
Languages
• Early computers were programmed in machine
language
• To calculate wages = rate * hours in
machine language:
100100 010001 //Load
100110 010010 //Multiply
100010 010011 //Store
21C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Evolution of Programming
Languages (cont’d.)
• Assembly language instructions are mnemonic
• Assembler: translates a program written in assembly
language into machine language
• Using assembly language instructions, wages =
rate • hours can be written as:
LOAD rate
MULT hour
STOR wages
22C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Evolution of Programming
Languages (cont’d.)
• High-level languages include Basic, FORTRAN,
COBOL, Pascal, C, C++, C#, and Java
• Compiler: translates a program written in a high-level
language into machine language
• The equation wages = rate • hours can be
written in C++ as:
wages = rate * hours;
23C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Processing a C++ Program
#include <iostream>
using namespace std;
int main()
{
cout << "My first C++ program." << endl;
return 0;
}
Sample Run:
My first C++ program.
24C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Processing a C++ Program (cont’d.)
• To execute a C++ program:
– Use an editor to create a source program in C++
– Preprocessor directives begin with # and are processed by
the preprocessor
– Use the compiler to:
• Check that the program obeys the language rules
• Translate into machine language (object program)
25C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Processing a C++ Program (cont’d.)
• To execute a C++ program (cont'd.):
– Linker:
• Combines object program with other programs provided by the
SDK to create executable code
• Library: contains prewritten code you can use
– Loader:
• Loads executable program into main memory
– The last step is to execute the program
• Some IDEs do all this with a Build or Rebuild
command
26C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Processing a C++ Program (cont’d.)
27C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Programming with the Problem
Analysis–Coding–Execution Cycle
• Algorithm:
– Step-by-step problem-solving
process
– Solution achieved in finite
amount of time
• Programming is a process of
problem solving
28C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Step 1: Analyze the problem
– Outline the problem and its requirements
– Design steps (algorithm) to solve the problem
• Step 2: Implement the algorithm
– Implement the algorithm in code
– Verify that the algorithm works
• Step 3: Maintain
– Use and modify the program if the problem domain
changes
29C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Thoroughly understand the problem and all requirements
– Does program require user interaction?
– Does program manipulate data?
– What is the output?
• If the problem is complex, divide it into subproblems
– Analyze and design algorithms for each subproblem
• Check the correctness of algorithm
– Can test using sample data
– Some mathematical analysis might be required
30C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Once the algorithm is designed and correctness
verified
– Write the equivalent code in high-level language
• Enter the program using text editor
31C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Run code through compiler
• If compiler generates errors
– Look at code and remove errors
– Run code again through compiler
• If there are no syntax errors
– Compiler generates equivalent machine code
• Linker links machine code with system resources
32C++ Programming: From Problem Analysis to Program Design, Seventh Edition
The Problem Analysis–Coding–
Execution Cycle (cont’d.)
• Once compiled and linked, loader can place program
into main memory for execution
• The final step is to execute the program
• Compiler guarantees that the program follows the
rules of the language
– Does not guarantee that the program will run correctly
33C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Example 1-1
• Design an algorithm to find the perimeter and area
of a rectangle
• The perimeter and area of the rectangle are given by
the following formulas:
perimeter = 2 * (length + width)
area = length * width
34C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Example 1-1 (cont’d.)
• Algorithm:
– Get length of the rectangle
– Get width of the rectangle
– Find the perimeter using the following equation:
perimeter = 2 * (length + width)
– Find the area using the following equation:
area = length * width
35C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Example 1-5
• Calculate each student’s grade
– 10 students in a class; each student has taken five tests;
each test is worth 100 points
• Design algorithms to:
– Calculate the grade for each student and class average
– Find the average test score
– Determine the grade
• Data: students’ names; test scores
36C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Example 1-5 (cont’d.)
• Algorithm to determine the average test score:
– Get the five test scores
– Add the five test scores
• Suppose sum stands for the sum of the test scores
– Suppose average stands for the average test score:
• average = sum / 5;
37C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Example 1-5 (cont’d.)
• Algorithm to determine the grade:
if average is greater than or equal to 90
grade = A
otherwise
if average is greater than or equal to 80 and less than 90
grade = B
otherwise
if average is greater than or equal to 70 and less than 80
grade = C
otherwise
if average is greater than or equal to 60 and less than 70
grade = D
otherwise
grade = F
38C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Example 1-5 (cont’d.)
• Main algorithm is as follows:
– totalAverage = 0;
– Repeat the following for each student:
• Get student’s name
• Use the algorithm to find the average test score
• Use the algorithm to find the grade
• Update totalAverage by adding current student’s average test
score
– Determine the class average as follows:
• classAverage = totalAverage / 10
39C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Programming Methodologies
• Two popular approaches to programming design
– Structured
– Object-oriented
40C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Structured Programming
• Structured design:
– Dividing a problem into smaller subproblems
• Structured programming:
– Implementing a structured design
• The structured design approach is also called:
– Top-down (or bottom-up) design
– Stepwise refinement
– Modular programming
41C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Object-Oriented Programming
• Object-oriented design (OOD)
– Identify components called objects
– Determine how objects interact with each other
• Specify relevant data and possible operations to be
performed on that data
• Each object consists of data and operations on that
data
42C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Object-Oriented Programming
(cont’d.)
• An object combines data and operations on the data
into a single unit
• A programming language that implements OOD is
called an object-oriented programming (OOP)
language
• Must learn how to represent data in computer
memory, how to manipulate data, and how to
implement operations
43C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Object-Oriented Programming
(cont’d.)
• Write algorithms and implement them in a
programming language
• Use functions to implement algorithms
• Learn how to combine data and operations on the
data into a single unit called an object
• C++ was designed to implement OOD
• OOD is used with structured design
44C++ Programming: From Problem Analysis to Program Design, Seventh Edition
ANSI/ISO Standard C++
• C++ evolved from C
• C++ designed by Bjarne Stroustrup at Bell
Laboratories in early 1980s
– Many different C++ compilers were available
• C++ programs were not always portable from one
compiler to another
• In mid-1998, ANSI/ISO C++ language standards were
approved
• Second standard called C++11 approved in 2011
45C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Summary
• Computer: electronic device that can perform
arithmetic and logical operations
• Computer system has hardware/software
– Central processing unit (CPU): brain
– Primary storage (MM) is volatile; secondary storage (e.g.,
disk) is permanent
– Operating system monitors overall activity of the
computer and provides services
– Various kinds of languages
46C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Summary (cont’d.)
• Compiler: translates high-level language into
machine code
• Algorithm: step-by-step problem-solving process;
solution in finite amount of time
• Problem-solving process has three steps:
– Analyze problem and design an algorithm
– Implement the algorithm in code
– Maintain the program
47C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Summary (cont’d.)
• Structured design:
– Problem is divided into smaller subproblems
– Each subproblem is solved
– Combine solutions to all subproblems
• Object-oriented design (OOD): a program is a
collection of interacting objects
– Object: data and operations on those data
48C++ Programming: From Problem Analysis to Program Design, Seventh Edition

More Related Content

What's hot

4 evolution-of-programming-languages
4 evolution-of-programming-languages4 evolution-of-programming-languages
4 evolution-of-programming-languages
Rohit Shrivastava
 

What's hot (20)

Features of 'c' program
Features of 'c' programFeatures of 'c' program
Features of 'c' program
 
Compiler Construction introduction
Compiler Construction introductionCompiler Construction introduction
Compiler Construction introduction
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Introduction of c programming
Introduction of c programmingIntroduction of c programming
Introduction of c programming
 
Complete C++ programming Language Course
Complete C++ programming Language CourseComplete C++ programming Language Course
Complete C++ programming Language Course
 
4 evolution-of-programming-languages
4 evolution-of-programming-languages4 evolution-of-programming-languages
4 evolution-of-programming-languages
 
Introduction to c++ ppt
Introduction to c++ pptIntroduction to c++ ppt
Introduction to c++ ppt
 
Algorithms and flowcharts
Algorithms and flowchartsAlgorithms and flowcharts
Algorithms and flowcharts
 
C++ programming program design including data structures
C++ programming program design including data structures C++ programming program design including data structures
C++ programming program design including data structures
 
CNF & Leftmost Derivation - Theory of Computation
CNF & Leftmost Derivation - Theory of ComputationCNF & Leftmost Derivation - Theory of Computation
CNF & Leftmost Derivation - Theory of Computation
 
Unit 1 of c++ part 1 basic introduction
Unit 1 of c++ part 1 basic introductionUnit 1 of c++ part 1 basic introduction
Unit 1 of c++ part 1 basic introduction
 
Analysis and Design of Algorithms
Analysis and Design of AlgorithmsAnalysis and Design of Algorithms
Analysis and Design of Algorithms
 
Install and configure linux
Install and configure linuxInstall and configure linux
Install and configure linux
 
Classes and objects
Classes and objectsClasses and objects
Classes and objects
 
File Management
File ManagementFile Management
File Management
 
Greedy Algorihm
Greedy AlgorihmGreedy Algorihm
Greedy Algorihm
 
Asymptotic Notation
Asymptotic NotationAsymptotic Notation
Asymptotic Notation
 
context free language
context free languagecontext free language
context free language
 
Programming language
Programming languageProgramming language
Programming language
 
Introduction to c++ ppt 1
Introduction to c++ ppt 1Introduction to c++ ppt 1
Introduction to c++ ppt 1
 

Similar to 9781285852744 ppt ch01

ch01_an overview of computers and programming languages
ch01_an overview of computers and programming languagesch01_an overview of computers and programming languages
ch01_an overview of computers and programming languages
LiemLe21
 
Review chapter 1 2-3
Review chapter 1 2-3Review chapter 1 2-3
Review chapter 1 2-3
ahmed22dg
 

Similar to 9781285852744 ppt ch01 (20)

9781285852751 ppt c++
9781285852751 ppt c++9781285852751 ppt c++
9781285852751 ppt c++
 
ch01_an overview of computers and programming languages
ch01_an overview of computers and programming languagesch01_an overview of computers and programming languages
ch01_an overview of computers and programming languages
 
Computer Programming
Computer ProgrammingComputer Programming
Computer Programming
 
Synapseindia dot net development computer programming
Synapseindia dot net development  computer programmingSynapseindia dot net development  computer programming
Synapseindia dot net development computer programming
 
C++ ch1
C++ ch1C++ ch1
C++ ch1
 
Review chapter 1 2-3
Review chapter 1 2-3Review chapter 1 2-3
Review chapter 1 2-3
 
C++ Programming Chapter 01
C++ Programming Chapter 01C++ Programming Chapter 01
C++ Programming Chapter 01
 
computer programming C++
computer  programming C++computer  programming C++
computer programming C++
 
chapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdfchapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdf
 
CPP Lecture 1.pptx
CPP Lecture 1.pptxCPP Lecture 1.pptx
CPP Lecture 1.pptx
 
CIS110 Computer Programming Design Chapter (1)
CIS110 Computer Programming Design Chapter  (1)CIS110 Computer Programming Design Chapter  (1)
CIS110 Computer Programming Design Chapter (1)
 
Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++
 
01CHAP_1.PPT
01CHAP_1.PPT01CHAP_1.PPT
01CHAP_1.PPT
 
Introduction to C Language (By: Shujaat Abbas)
Introduction to C Language (By: Shujaat Abbas)Introduction to C Language (By: Shujaat Abbas)
Introduction to C Language (By: Shujaat Abbas)
 
l1-introduction_to_computers_and_c_programming.pptx
l1-introduction_to_computers_and_c_programming.pptxl1-introduction_to_computers_and_c_programming.pptx
l1-introduction_to_computers_and_c_programming.pptx
 
Overview of computers and programming
Overview of computers and programmingOverview of computers and programming
Overview of computers and programming
 
Fundamentals of programming with C++
Fundamentals of programming with C++Fundamentals of programming with C++
Fundamentals of programming with C++
 
Basic of c++ programming
Basic of c++ programmingBasic of c++ programming
Basic of c++ programming
 
Chapter 1 Introduction to computer components
Chapter 1 Introduction to computer componentsChapter 1 Introduction to computer components
Chapter 1 Introduction to computer components
 
C++ advanced PPT.pdf
C++ advanced PPT.pdfC++ advanced PPT.pdf
C++ advanced PPT.pdf
 

More from Terry Yoast

More from Terry Yoast (20)

9781305078444 ppt ch12
9781305078444 ppt ch129781305078444 ppt ch12
9781305078444 ppt ch12
 
9781305078444 ppt ch11
9781305078444 ppt ch119781305078444 ppt ch11
9781305078444 ppt ch11
 
9781305078444 ppt ch10
9781305078444 ppt ch109781305078444 ppt ch10
9781305078444 ppt ch10
 
9781305078444 ppt ch09
9781305078444 ppt ch099781305078444 ppt ch09
9781305078444 ppt ch09
 
9781305078444 ppt ch08
9781305078444 ppt ch089781305078444 ppt ch08
9781305078444 ppt ch08
 
9781305078444 ppt ch07
9781305078444 ppt ch079781305078444 ppt ch07
9781305078444 ppt ch07
 
9781305078444 ppt ch06
9781305078444 ppt ch069781305078444 ppt ch06
9781305078444 ppt ch06
 
9781305078444 ppt ch05
9781305078444 ppt ch059781305078444 ppt ch05
9781305078444 ppt ch05
 
9781305078444 ppt ch04
9781305078444 ppt ch049781305078444 ppt ch04
9781305078444 ppt ch04
 
9781305078444 ppt ch03
9781305078444 ppt ch039781305078444 ppt ch03
9781305078444 ppt ch03
 
9781305078444 ppt ch02
9781305078444 ppt ch029781305078444 ppt ch02
9781305078444 ppt ch02
 
9781305078444 ppt ch01
9781305078444 ppt ch019781305078444 ppt ch01
9781305078444 ppt ch01
 
9781337102087 ppt ch13
9781337102087 ppt ch139781337102087 ppt ch13
9781337102087 ppt ch13
 
9781337102087 ppt ch18
9781337102087 ppt ch189781337102087 ppt ch18
9781337102087 ppt ch18
 
9781337102087 ppt ch17
9781337102087 ppt ch179781337102087 ppt ch17
9781337102087 ppt ch17
 
9781337102087 ppt ch16
9781337102087 ppt ch169781337102087 ppt ch16
9781337102087 ppt ch16
 
9781337102087 ppt ch15
9781337102087 ppt ch159781337102087 ppt ch15
9781337102087 ppt ch15
 
9781337102087 ppt ch14
9781337102087 ppt ch149781337102087 ppt ch14
9781337102087 ppt ch14
 
9781337102087 ppt ch12
9781337102087 ppt ch129781337102087 ppt ch12
9781337102087 ppt ch12
 
9781337102087 ppt ch11
9781337102087 ppt ch119781337102087 ppt ch11
9781337102087 ppt ch11
 

Recently uploaded

Industrial Training Report- AKTU Industrial Training Report
Industrial Training Report- AKTU Industrial Training ReportIndustrial Training Report- AKTU Industrial Training Report
Industrial Training Report- AKTU Industrial Training Report
Avinash Rai
 

Recently uploaded (20)

Gyanartha SciBizTech Quiz slideshare.pptx
Gyanartha SciBizTech Quiz slideshare.pptxGyanartha SciBizTech Quiz slideshare.pptx
Gyanartha SciBizTech Quiz slideshare.pptx
 
Benefits and Challenges of Using Open Educational Resources
Benefits and Challenges of Using Open Educational ResourcesBenefits and Challenges of Using Open Educational Resources
Benefits and Challenges of Using Open Educational Resources
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
 
Basic Civil Engg Notes_Chapter-6_Environment Pollution & Engineering
Basic Civil Engg Notes_Chapter-6_Environment Pollution & EngineeringBasic Civil Engg Notes_Chapter-6_Environment Pollution & Engineering
Basic Civil Engg Notes_Chapter-6_Environment Pollution & Engineering
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
 
UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...
UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...
UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...
 
Industrial Training Report- AKTU Industrial Training Report
Industrial Training Report- AKTU Industrial Training ReportIndustrial Training Report- AKTU Industrial Training Report
Industrial Training Report- AKTU Industrial Training Report
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
 
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdfINU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
 
Advances in production technology of Grapes.pdf
Advances in production technology of Grapes.pdfAdvances in production technology of Grapes.pdf
Advances in production technology of Grapes.pdf
 
Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......
 
B.ed spl. HI pdusu exam paper-2023-24.pdf
B.ed spl. HI pdusu exam paper-2023-24.pdfB.ed spl. HI pdusu exam paper-2023-24.pdf
B.ed spl. HI pdusu exam paper-2023-24.pdf
 
NCERT Solutions Power Sharing Class 10 Notes pdf
NCERT Solutions Power Sharing Class 10 Notes pdfNCERT Solutions Power Sharing Class 10 Notes pdf
NCERT Solutions Power Sharing Class 10 Notes pdf
 
Solid waste management & Types of Basic civil Engineering notes by DJ Sir.pptx
Solid waste management & Types of Basic civil Engineering notes by DJ Sir.pptxSolid waste management & Types of Basic civil Engineering notes by DJ Sir.pptx
Solid waste management & Types of Basic civil Engineering notes by DJ Sir.pptx
 
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxStudents, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
 
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxMatatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
 
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
 

9781285852744 ppt ch01

  • 1. Chapter 1: An Overview of Computers and Programming Languages
  • 2. Objectives • In this chapter, you will: – Learn about different types of computers – Explore the hardware and software components of a computer system – Learn about the language of a computer – Learn about the evolution of programming languages – Examine high-level programming languages 2C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 3. Objectives (cont’d.) – Discover what a compiler is and what it does – Examine a C++ program – Explore how a C++ program is processed – Learn what an algorithm is and explore problem-solving techniques – Become aware of structured design and object-oriented design programming methodologies – Become aware of Standard C++, ANSI/ISO Standard C++, and C++11 3C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 4. Introduction • Without software, the computer is useless • Software is developed with programming languages – C++ is a programming language • C++ suited for a wide variety of programming tasks 4C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 5. A Brief Overview of the History of Computers • Early calculation devices – Abacus, Pascaline – Leibniz device – Jacquard’s weaving looms – Babbage machines: difference and analytic engines – Hollerith machine 5C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 6. A Brief Overview of the History of Computers (cont’d.) • Early computer-like machines – Mark I – ENIAC – Von Neumann architecture – UNIVAC – Transistors and microprocessors 6C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 7. A Brief Overview of the History of Computers (cont’d.) • Categories of computers – Mainframe computers – Midsize computers – Micro computers (personal computers) 7C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 8. Elements of a Computer System • Hardware • CPU • Main memory • Secondary storage • Input/Output devices • Software 8C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 9. Hardware • CPU • Main memory: RAM • Input/output devices • Secondary storage 9C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 10. Central Processing Unit and Main Memory • Central processing unit – Brain of the computer – Most expensive piece of hardware – Carries out arithmetic and logical operations 10C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 11. Central Processing Unit and Main Memory (cont’d.) 11C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 12. Central Processing Unit and Main Memory (cont’d.) • Random access memory – Directly connected to the CPU • All programs must be loaded into main memory before they can be executed • All data must be brought into main memory before it can be manipulated • When computer power is turned off, everything in main memory is lost 12C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 13. Central Processing Unit and Main Memory (cont’d.) • Main memory is an ordered sequence of memory cells – Each cell has a unique location in main memory, called the address of the cell • Each cell can contain either a programming instruction or data 13C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 14. Secondary Storage • Secondary storage: device that stores information permanently • Examples of secondary storage: – Hard disks – Flash drives – Floppy disks – Zip disks – CD-ROMs – Tapes 14C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 15. Input/Output Devices • Input devices feed data and programs into computers – Keyboard – Mouse – Secondary storage • Output devices display results – Monitor – Printer – Secondary storage 15C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 16. Software • Software: programs that do specific tasks • System programs control the computer – Operating system monitors the overall activity of the computer and provides services such as: • Memory management • Input/output activities • Storage management • Application programs perform a specific task – Word processors – Spreadsheets – Games 16C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 17. The Language of a Computer • Analog signals: continuous wave forms • Digital signals: sequences of 0s and 1s • Machine language: language of a computer; a sequence of 0s and 1s • Binary digit (bit): the digit 0 or 1 • Binary code (binary number): a sequence of 0s and 1s 17C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 18. The Language of a Computer (cont’d.) • Byte: – A sequence of eight bits • Kilobyte (KB): 210 bytes = 1024 bytes • ASCII (American Standard Code for Information Interchange) – 128 characters – A is encoded as 1000001 (66th character) – 3 is encoded as 0110011 18C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 19. 19C++ Programming: From Problem Analysis to Program Design, Seventh Edition The Language of a Computer (cont’d.)
  • 20. The Language of a Computer (cont’d.) • EBCDIC – Used by IBM – 256 characters • Unicode – 65536 characters – Two bytes are needed to store a character 20C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 21. The Evolution of Programming Languages • Early computers were programmed in machine language • To calculate wages = rate * hours in machine language: 100100 010001 //Load 100110 010010 //Multiply 100010 010011 //Store 21C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 22. The Evolution of Programming Languages (cont’d.) • Assembly language instructions are mnemonic • Assembler: translates a program written in assembly language into machine language • Using assembly language instructions, wages = rate • hours can be written as: LOAD rate MULT hour STOR wages 22C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 23. The Evolution of Programming Languages (cont’d.) • High-level languages include Basic, FORTRAN, COBOL, Pascal, C, C++, C#, and Java • Compiler: translates a program written in a high-level language into machine language • The equation wages = rate • hours can be written in C++ as: wages = rate * hours; 23C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 24. Processing a C++ Program #include <iostream> using namespace std; int main() { cout << "My first C++ program." << endl; return 0; } Sample Run: My first C++ program. 24C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 25. Processing a C++ Program (cont’d.) • To execute a C++ program: – Use an editor to create a source program in C++ – Preprocessor directives begin with # and are processed by the preprocessor – Use the compiler to: • Check that the program obeys the language rules • Translate into machine language (object program) 25C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 26. Processing a C++ Program (cont’d.) • To execute a C++ program (cont'd.): – Linker: • Combines object program with other programs provided by the SDK to create executable code • Library: contains prewritten code you can use – Loader: • Loads executable program into main memory – The last step is to execute the program • Some IDEs do all this with a Build or Rebuild command 26C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 27. Processing a C++ Program (cont’d.) 27C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 28. Programming with the Problem Analysis–Coding–Execution Cycle • Algorithm: – Step-by-step problem-solving process – Solution achieved in finite amount of time • Programming is a process of problem solving 28C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 29. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Step 1: Analyze the problem – Outline the problem and its requirements – Design steps (algorithm) to solve the problem • Step 2: Implement the algorithm – Implement the algorithm in code – Verify that the algorithm works • Step 3: Maintain – Use and modify the program if the problem domain changes 29C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 30. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Thoroughly understand the problem and all requirements – Does program require user interaction? – Does program manipulate data? – What is the output? • If the problem is complex, divide it into subproblems – Analyze and design algorithms for each subproblem • Check the correctness of algorithm – Can test using sample data – Some mathematical analysis might be required 30C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 31. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Once the algorithm is designed and correctness verified – Write the equivalent code in high-level language • Enter the program using text editor 31C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 32. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Run code through compiler • If compiler generates errors – Look at code and remove errors – Run code again through compiler • If there are no syntax errors – Compiler generates equivalent machine code • Linker links machine code with system resources 32C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 33. The Problem Analysis–Coding– Execution Cycle (cont’d.) • Once compiled and linked, loader can place program into main memory for execution • The final step is to execute the program • Compiler guarantees that the program follows the rules of the language – Does not guarantee that the program will run correctly 33C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 34. Example 1-1 • Design an algorithm to find the perimeter and area of a rectangle • The perimeter and area of the rectangle are given by the following formulas: perimeter = 2 * (length + width) area = length * width 34C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 35. Example 1-1 (cont’d.) • Algorithm: – Get length of the rectangle – Get width of the rectangle – Find the perimeter using the following equation: perimeter = 2 * (length + width) – Find the area using the following equation: area = length * width 35C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 36. Example 1-5 • Calculate each student’s grade – 10 students in a class; each student has taken five tests; each test is worth 100 points • Design algorithms to: – Calculate the grade for each student and class average – Find the average test score – Determine the grade • Data: students’ names; test scores 36C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 37. Example 1-5 (cont’d.) • Algorithm to determine the average test score: – Get the five test scores – Add the five test scores • Suppose sum stands for the sum of the test scores – Suppose average stands for the average test score: • average = sum / 5; 37C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 38. Example 1-5 (cont’d.) • Algorithm to determine the grade: if average is greater than or equal to 90 grade = A otherwise if average is greater than or equal to 80 and less than 90 grade = B otherwise if average is greater than or equal to 70 and less than 80 grade = C otherwise if average is greater than or equal to 60 and less than 70 grade = D otherwise grade = F 38C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 39. Example 1-5 (cont’d.) • Main algorithm is as follows: – totalAverage = 0; – Repeat the following for each student: • Get student’s name • Use the algorithm to find the average test score • Use the algorithm to find the grade • Update totalAverage by adding current student’s average test score – Determine the class average as follows: • classAverage = totalAverage / 10 39C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 40. Programming Methodologies • Two popular approaches to programming design – Structured – Object-oriented 40C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 41. Structured Programming • Structured design: – Dividing a problem into smaller subproblems • Structured programming: – Implementing a structured design • The structured design approach is also called: – Top-down (or bottom-up) design – Stepwise refinement – Modular programming 41C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 42. Object-Oriented Programming • Object-oriented design (OOD) – Identify components called objects – Determine how objects interact with each other • Specify relevant data and possible operations to be performed on that data • Each object consists of data and operations on that data 42C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 43. Object-Oriented Programming (cont’d.) • An object combines data and operations on the data into a single unit • A programming language that implements OOD is called an object-oriented programming (OOP) language • Must learn how to represent data in computer memory, how to manipulate data, and how to implement operations 43C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 44. Object-Oriented Programming (cont’d.) • Write algorithms and implement them in a programming language • Use functions to implement algorithms • Learn how to combine data and operations on the data into a single unit called an object • C++ was designed to implement OOD • OOD is used with structured design 44C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 45. ANSI/ISO Standard C++ • C++ evolved from C • C++ designed by Bjarne Stroustrup at Bell Laboratories in early 1980s – Many different C++ compilers were available • C++ programs were not always portable from one compiler to another • In mid-1998, ANSI/ISO C++ language standards were approved • Second standard called C++11 approved in 2011 45C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 46. Summary • Computer: electronic device that can perform arithmetic and logical operations • Computer system has hardware/software – Central processing unit (CPU): brain – Primary storage (MM) is volatile; secondary storage (e.g., disk) is permanent – Operating system monitors overall activity of the computer and provides services – Various kinds of languages 46C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 47. Summary (cont’d.) • Compiler: translates high-level language into machine code • Algorithm: step-by-step problem-solving process; solution in finite amount of time • Problem-solving process has three steps: – Analyze problem and design an algorithm – Implement the algorithm in code – Maintain the program 47C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 48. Summary (cont’d.) • Structured design: – Problem is divided into smaller subproblems – Each subproblem is solved – Combine solutions to all subproblems • Object-oriented design (OOD): a program is a collection of interacting objects – Object: data and operations on those data 48C++ Programming: From Problem Analysis to Program Design, Seventh Edition