Chapter 1 - An Introduction to Computers and Problem Solving
Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about...
-
Upload
alan-palmer -
Category
Documents
-
view
215 -
download
1
Transcript of Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about...
Overview of Programming and Problem Solving
ObjectivesIn this chapter you will:Learn about different types of computersExplore the hardware and software
components of a computer systemLearn about the language of a computerLearn about the evolution of programming
languagesExamine high-level programming languagesLearn what an algorithm is and explore
problem-solving techniquesExamine a C++ Program and explore how a
C++ program is processed2
What is a computer?A computer is a machine that:
Executes programs (e.g., sequences of instructions and decisions required to complete some task).
Interacts with devices (e.g., keyboard, mouse, scanner, microphone, modem, monitor, printer, speaker).
Stores data (e.g., numbers, words, pictures, sound).
3
Categories of ComputersMainframe computers
Midsize computers
Micro computers (personal computers)
4
Five Basic ComponentsCentral Processing Unit (CPU) Memory Unit or Main MemoryInput and Output (I/O) Devices Auxiliary Storage Devices Software
5
CPU (Central Processing Unit)CU (Control Unit):
Fetches and decodes instructions
Controls flow of information in and out of MM
Controls operation of internal CPU components
PC (program counter): points to next instruction to be executed
6
CPU (Central Processing Unit) (continued)IR (instruction register): holds instruction
currently being executed
ALU (arithmetic logic unit): carries out all arithmetic and logical operations
7
8
Main MemoryDirectly 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
9
10
Input/Output DevicesInput devices feed data and programs into
computers. They include:Keyboard Mouse Secondary storage
Output devices display results. They include:MonitorPrinterSecondary storage
11
Secondary StorageSecondary storage: Device that stores
information permanently
Examples of secondary storage:Hard disks
Floppy disks
Zip disks
CD-ROMs
Tapes
Flash drives
12
SoftwareSoftware: Programs that do specific tasks
System programs take control of the computer, such as an operating system
Application programs perform a specific task
Word processors
Spreadsheets
Games
13
The Language of a ComputerDigital signals are sequences of 0’s and 1’sMachine language: language of a computerBinary digit (bit):
The digit 0 or 1
Binary code: A sequence of 0’s and 1’s
Byte:A sequence of eight bits
14
15
Coding SchemesASCII (American Standard Code for
Information Interchange)
128 characters
A is encoded as 1000001 (66th character)
3 is encoded as 0110011
16
Coding Schemes (continued)EBCDIC
Used by IBM
256 characters
Unicode
65536 characters
Two bytes are needed to store a character
17
Programming Language EvolutionEarly computers were programmed in
machine language
To calculate wages = rates * hours in machine language:
100100 010001 //Load
100110 010010 //Multiply
100010 010011 //Store
18
Assembly LanguageAssembly language instructions are mnemonic Assembler: translates a program written in
assembly language into machine language
19
Using the assembly language instructions, the equation wages = rates • hours can be written as follows:
LOAD rate
MULT hours
STOR wages
20
High-Level LanguagesHigh-level languages include Basic,
FORTRAN, COBOL, Pascal, C++, C, and Java
Compiler: translates a program written in a high-level language machine language
The equation wages = rate • hours can be written in C++ as:
wages = rate * hours;
21
A C++ Program#include <iostream>using namespace std;int main() { cout << "My first C++ program." << endl; cout << "The sum of 2 and 3 = " << 5 << endl; cout << "7 + 8 = " << 7 + 8 << endl; return 0;}
Sample Run: My first C++ program.The sum of 2 and 3 = 57 + 8 = 15
22
Processing a ProgramTo execute a program written in a high-level
language such as C++Use an editor to create a source program in C++
In a C++ program, statements that begin with the symbol # are called preprocessor directives. These statements are processed by a program called preprocessor.
Use the compiler to
Check that the program obeys the rules
Translate into machine language (object program)
Software Development Kit (SDK) may be used to create a program
23
Processing a Program (continued)Linker:
Combines object program with other programs provided by the SDK to create executable code
Loader:
Loads executable program into main memory
The last step is to execute the program
24
25
Programming Life Cycle PhasesProblem-SolvingImplementationMaintenance
26
Problem SolvingProgramming is a process of problem solving
It is the process of planning a sequence of steps(called instructions) for a computer to follow.
Problem solving techniquesAnalyze the problem Outline the problem requirementsDesign steps (algorithm) to solve the problem
Algorithm: Step-by-step problem-solving processSolution achieved in finite amount of time with a
finite amount of data
27
STEP 1
STEP 2
STEP 3
Problem Solving ProcessStep 1 - Analyze the problem
Outline the problem and its requirementsDesign steps (algorithm) to solve the
problemStep 2 - Implement the algorithm
Implement the algorithm in codeVerify that the algorithm works
Step 3 - MaintenanceUse and modify the program if the problem
domain changes
28
Analyze the ProblemThoroughly understand the problem
Understand problem requirements
Does program require user interaction?
Does program manipulate data?
What is the output?
If the problem is complex, divide it into subproblemsAnalyze each subproblem as above
29
Design an AlgorithmIf problem was broken into subproblems
Design algorithms for each subproblem
Check the correctness of algorithm
Can test using sample data
Some mathematical analysis might be required
30
Write the CodeOnce the algorithm is designed and
correctness verified
Write the equivalent code in high-level programming language
A programming language is a language with strict grammar rules, symbols, and special words used to construct a computer program
Enter the program using text editor
31
Implementation Phase: ProgramTranslating your algorithm into a
programming language is called coding
With C++, you useDocumentation -- your written commentsCompiler -- translates your program into
machine languageMain Program -- may call sub-algorithms
32
Compiling and LinkingRun code through compiler
If compiler generates errors Look at code and remove errors
Run code again through compiler
If there are no syntax errorsCompiler generates equivalent machine
code
Linker links machine code with system resources
33
The Loader and ExecutingOnce 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
34
Implementation Phase: TestTesting your program means
running(executing) your program on the computer, to see if it produces correct results
If it does not, then you must find out what is wrong with your program or algorithm and fix it--this is called debugging
35
36
Maintenance PhaseUse and modify the program to meet
changing requirements or correct errors that show up in using it
Maintenance begins when your program is put into use and accounts for the majority of effort on most programs
37
Programming Life CycleProblem-Solving Phase
Analysis and Specification General Solution(Algorithm) Verify
Implementation Phase Concrete Solution(Program) Test
Maintenance Phase Use Maintain
38
39
A Tempting Shortcut?
GOAL
THINKINGCODE
REVISEREVISE
REVISE
DEBUG
DEBUG
DEBUG
TEST
CODEShortcut?
Example 1-1Design an algorithm to find the perimeter
and area of a rectangleThe perimeter and area of the rectangle are
given by the following formulas:
perimeter = 2 * (length + width)
area = length * width
40
Example 1-1Algorithm:
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
41
Example 1-2Every salesperson has a base salary
Salesperson receives $10 bonus at the end of the month for each year worked if he or she has been with the store for five or less years
The bonus is $20 for each year that he or she has worked there if over 5 years
42
Example 1-3 (continued)Additional bonuses are as follows:
If total sales for the month are $5,000-$10,000, he or she receives a 3% commission on the sale
If total sales for the month are at least $10,000, he or she receives a 6% commission on the sale
43
Example 1-3 (continued)Get baseSalaryGet noOfServiceYearsCalculate bonus using the following formula:if (noOfServiceYears is less than or equal to five)
bonus = 10 * noOfServiceYears
otherwise
bonus = 20 * noOfServiceYears
Get totalSale
44
Example 1-2 (continued)Calculate additionalBonus as follows:if (totalSale is less than 5000)
additionalBonus = 0
otherwise
if (totalSale is greater than or equal to
5000 and totalSale is less than 10000)
additionalBonus = totalSale · (0.03)
otherwise
additionalBonus = totalSale · (0.06)
45
Example 1-2 (continuedCalculate payCheck using the equationpayCheck = baseSalary + bonus + additionalBonus
46
Example 1-310 students in a class Each student has taken five tests and each
test is worth 100 points. Design an algorithm to calculate the grade
for each student as well as the class average. Design an algorithm to find the average test
score. Design an algorithm to determine the grade.
Data consists of students’ names and their test scores.
47
Example 1-3 (continued)Algorithm to determine the average test
score. 1. Get the five test scores.2. Add the five test scores. Suppose sum
stands for the sum of the test scores.3. Suppose average stands for the average
test score. Then average = sum / 5;
48
Example 1-3 (continued)Algorithm to determine the grade.
if average is greater than or equal to 90 grade = Aotherwise if average is greater than or equal to 80 and less than 90
grade = Botherwise if average is greater than or equal to 70 and less than 80
grade = Cotherwise if average is greater than or equal to 60 and less than 70
grade = Dotherwise grade = F
49
Example 1-3 (continued)
Main algorithm is as follows: 1. totalAverage = 0;2. Repeat the following steps for each
student in the class.a. Get student’s name.b. Use the algorithm as discussed above to find the
average test score.c.Use the algorithm as discussed above to find the
graded. Update totalAverage by adding current
student’s average test score.3. Determine the class average as follows:classAverage = totalAverage / 10
50
Basic Control StructuresA sequence is a series of statements that
execute one after another
A selection(branch) statement is used to determine which of two different statements to execute depending on certain conditions
A looping(repetition) statement is used to repeat statements while certain conditions are met
A subprogram is a smaller part of another program; a collection of subprograms solves the original problem
51
SEQUENCEA linear order of execution in which one
specific instruction is explicitly required to follow another.
Example ...read bread cadd 4 to ba = b + cwrite a...
52
Statement Statement Statement . . .
SELECTION(branch)A conditional control structure that
determines which task will execute next based upon certain conditions.
53
IF Condition THEN Statement1 ELSE Statement2
Statement1
Statement2
Condition . . .
True
False
SELECTION(branch)Example
...read bread cif b > c then add 4 to botherwise subtract 4 from ba = b + cwrite a...
54
LOOP(repetition)An iterative control structure where a group
of instructions are executed as long as some condition remains true.
55
Statement
Condition. . .
False
True
WHILE Condition DO Statement1
LOOP(repetition)Example
...read bwhile b < 10 read c if b > c then add 4 to b otherwise subtract 4 from b a = b + c write a read b ...
56
SubprogramA control structure that allows a complex
program to be broken down into smaller, less complex (we hope) units.
57
SUBPROGRAM1 . . .
SUBPROGRAM1 a meaningful collection of SEQUENCE, SELECTION, LOOP, SUBPROGRAM
SubprogramExample
...read bread cdo the LargerOf sub-algorithmwrite a...
LargerOf if b > c then a = b otherwise a = c
58
SummaryComputer: an electronic device that can
perform arithmetic and logical operations
Computer system has hardware and software
Central processing unit (CPU): brain
Primary storage (MM) is volatile; secondary storage (e.g., disk) is permanent
Operating system monitors the overall activity of the computer and provides services
59
Summary (continued) Various kinds of languages, such as
machine language, assembly, high-level Algorithm: step-by-step problem-solving
process; solution in finite amount of time The problem-solving process has three
steps:1. Analyze problem and design an algorithm2. Implement the algorithm in code3. Maintain the program
60