SlideShare une entreprise Scribd logo
1  sur  48
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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
Elements of a Computer System
• Hardware
• CPU
• Main memory
• Secondary storage
• Input/Output devices
• Software
8C++ Programming: Program Design Including Data Structures, Seventh Edition
Hardware
• CPU
• Main memory: RAM
• Input/output devices
• Secondary storage
9C++ Programming: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
Central Processing Unit and Main
Memory (cont’d.)
11C++ Programming: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
The Language of a Computer (cont’d.)
19C++ Programming: Program Design Including Data Structures, Seventh Edition
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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
Processing a C++ Program (cont’d.)
27C++ Programming: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
Programming Methodologies
• Two popular approaches to programming design
– Structured
– Object-oriented
40C++ Programming: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition

Contenu connexe

Tendances

Part II: Assembly Fundamentals
Part II: Assembly FundamentalsPart II: Assembly Fundamentals
Part II: Assembly Fundamentals
Ahmed M. Abed
 
System Programming Unit III
System Programming Unit IIISystem Programming Unit III
System Programming Unit III
Manoj Patil
 

Tendances (16)

Embedded C - Lecture 1
Embedded C - Lecture 1Embedded C - Lecture 1
Embedded C - Lecture 1
 
9781285852744 ppt ch10
9781285852744 ppt ch109781285852744 ppt ch10
9781285852744 ppt ch10
 
9781285852744 ppt ch13
9781285852744 ppt ch139781285852744 ppt ch13
9781285852744 ppt ch13
 
9781285852744 ppt ch08
9781285852744 ppt ch089781285852744 ppt ch08
9781285852744 ppt ch08
 
Embedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerEmbedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontroller
 
Part II: Assembly Fundamentals
Part II: Assembly FundamentalsPart II: Assembly Fundamentals
Part II: Assembly Fundamentals
 
Introduction to C Language
Introduction to C LanguageIntroduction to C Language
Introduction to C Language
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Flowcharts
FlowchartsFlowcharts
Flowcharts
 
Chapter 1: Introduction
Chapter 1: IntroductionChapter 1: Introduction
Chapter 1: Introduction
 
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)
 
C++ language
C++ languageC++ language
C++ language
 
Simplified instructional computer
Simplified instructional computerSimplified instructional computer
Simplified instructional computer
 
Compiler Design Unit 1
Compiler Design Unit 1Compiler Design Unit 1
Compiler Design Unit 1
 
06 mips-isa
06 mips-isa06 mips-isa
06 mips-isa
 
System Programming Unit III
System Programming Unit IIISystem Programming Unit III
System Programming Unit III
 

En vedette

En vedette (15)

Libro biodiversidad fhn
Libro biodiversidad fhnLibro biodiversidad fhn
Libro biodiversidad fhn
 
Aaj ka trend 14.03.17
Aaj ka trend 14.03.17Aaj ka trend 14.03.17
Aaj ka trend 14.03.17
 
Currency high lights 14.03.17
Currency high lights 14.03.17Currency high lights 14.03.17
Currency high lights 14.03.17
 
Juegos educativos
Juegos educativosJuegos educativos
Juegos educativos
 
Status adwords
Status adwordsStatus adwords
Status adwords
 
Augmented Reality in Health Sector
Augmented Reality in Health SectorAugmented Reality in Health Sector
Augmented Reality in Health Sector
 
Tugasan 3 PENSWASTAAN
Tugasan 3 PENSWASTAANTugasan 3 PENSWASTAAN
Tugasan 3 PENSWASTAAN
 
Evaluacin del-desempeo-docente-20172-170309021149
Evaluacin del-desempeo-docente-20172-170309021149Evaluacin del-desempeo-docente-20172-170309021149
Evaluacin del-desempeo-docente-20172-170309021149
 
Shaadi saga- Content Strategy
Shaadi saga- Content Strategy Shaadi saga- Content Strategy
Shaadi saga- Content Strategy
 
Group peta(sample format)
Group peta(sample format)Group peta(sample format)
Group peta(sample format)
 
World stage総合企画書ver1.1
World stage総合企画書ver1.1World stage総合企画書ver1.1
World stage総合企画書ver1.1
 
Engineer colors企画書ver1.1
Engineer colors企画書ver1.1Engineer colors企画書ver1.1
Engineer colors企画書ver1.1
 
10 consejos para utilizar tus sobras
10 consejos para utilizar tus sobras10 consejos para utilizar tus sobras
10 consejos para utilizar tus sobras
 
Origen y la evolucion
Origen y la evolucionOrigen y la evolucion
Origen y la evolucion
 
Materiales construcción moçambique (13 abril)
Materiales construcción moçambique (13 abril)Materiales construcción moçambique (13 abril)
Materiales construcción moçambique (13 abril)
 

Similaire à 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
LiemLe21
 
Review chapter 1 2-3
Review chapter 1 2-3Review chapter 1 2-3
Review chapter 1 2-3
ahmed22dg
 

Similaire à 9781285852751 ppt c++ (20)

9781285852744 ppt ch01
9781285852744 ppt ch019781285852744 ppt ch01
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
 
chapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdfchapter1-161229182113 (1).pdf
chapter1-161229182113 (1).pdf
 
CIS110 Computer Programming Design Chapter (1)
CIS110 Computer Programming Design Chapter  (1)CIS110 Computer Programming Design Chapter  (1)
CIS110 Computer Programming Design Chapter (1)
 
C++ advanced PPT.pdf
C++ advanced PPT.pdfC++ advanced PPT.pdf
C++ advanced PPT.pdf
 
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
 
Csc240 -lecture_3
Csc240  -lecture_3Csc240  -lecture_3
Csc240 -lecture_3
 
01CHAP_1.PPT
01CHAP_1.PPT01CHAP_1.PPT
01CHAP_1.PPT
 
CPP Lecture 1.pptx
CPP Lecture 1.pptxCPP Lecture 1.pptx
CPP Lecture 1.pptx
 
Overview of computers and programming
Overview of computers and programmingOverview of computers and programming
Overview of computers and programming
 
C++ ch1
C++ ch1C++ ch1
C++ ch1
 
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
 
Chapter1.ppt
Chapter1.pptChapter1.ppt
Chapter1.ppt
 
Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++
 
Introduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).docIntroduction-to-C-Part-1 (1).doc
Introduction-to-C-Part-1 (1).doc
 
Basics of C Lecture 2[16097].pptx
Basics of C Lecture 2[16097].pptxBasics of C Lecture 2[16097].pptx
Basics of C Lecture 2[16097].pptx
 
Computer Programming In C.pptx
Computer Programming In C.pptxComputer Programming In C.pptx
Computer Programming In C.pptx
 
1. intro to comp & c++ programming
1. intro to comp & c++ programming1. intro to comp & c++ programming
1. intro to comp & c++ programming
 
C++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroC++ Windows Forms L01 - Intro
C++ Windows Forms L01 - Intro
 
Review chapter 1 2-3
Review chapter 1 2-3Review chapter 1 2-3
Review chapter 1 2-3
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 

9781285852751 ppt c++

  • 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
  • 8. Elements of a Computer System • Hardware • CPU • Main memory • Secondary storage • Input/Output devices • Software 8C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 9. Hardware • CPU • Main memory: RAM • Input/output devices • Secondary storage 9C++ Programming: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
  • 11. Central Processing Unit and Main Memory (cont’d.) 11C++ Programming: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
  • 19. The Language of a Computer (cont’d.) 19C++ Programming: Program Design Including Data Structures, Seventh Edition
  • 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
  • 27. Processing a C++ Program (cont’d.) 27C++ Programming: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition
  • 40. Programming Methodologies • Two popular approaches to programming design – Structured – Object-oriented 40C++ Programming: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, 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: Program Design Including Data Structures, Seventh Edition