60
Overview of Programming and Problem Solving

Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Embed Size (px)

Citation preview

Page 1: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Overview of Programming and Problem Solving

Page 2: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 3: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 4: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Categories of ComputersMainframe computers

Midsize computers

Micro computers (personal computers)

4

Page 5: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Five Basic ComponentsCentral Processing Unit (CPU) Memory Unit or Main MemoryInput and Output (I/O) Devices Auxiliary Storage Devices Software

5

Page 6: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 7: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 8: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

8

Page 9: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 10: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

10

Page 11: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 12: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Secondary StorageSecondary storage: Device that stores

information permanently

Examples of secondary storage:Hard disks

Floppy disks

Zip disks

CD-ROMs

Tapes

Flash drives

12

Page 13: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 14: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 15: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

15

Page 16: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Coding SchemesASCII (American Standard Code for

Information Interchange)

128 characters

A is encoded as 1000001 (66th character)

3 is encoded as 0110011

16

Page 17: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Coding Schemes (continued)EBCDIC

Used by IBM

256 characters

Unicode

65536 characters

Two bytes are needed to store a character

17

Page 18: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 19: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Assembly LanguageAssembly language instructions are mnemonic Assembler: translates a program written in

assembly language into machine language

19

Page 20: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Using the assembly language instructions, the equation wages = rates • hours can be written as follows:

LOAD rate

MULT hours

STOR wages

20

Page 21: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 22: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 23: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 24: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 25: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

25

Page 26: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Programming Life Cycle PhasesProblem-SolvingImplementationMaintenance

26

Page 27: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 28: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 29: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 30: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 31: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 32: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 33: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 34: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 35: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 36: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

36

Page 37: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 38: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Programming Life CycleProblem-Solving Phase

Analysis and Specification General Solution(Algorithm) Verify

Implementation Phase Concrete Solution(Program) Test

Maintenance Phase Use Maintain

38

Page 39: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

39

A Tempting Shortcut?

GOAL

THINKINGCODE

REVISEREVISE

REVISE

DEBUG

DEBUG

DEBUG

TEST

CODEShortcut?

Page 40: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 41: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 42: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 43: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 44: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 45: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 46: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

Example 1-2 (continuedCalculate payCheck using the equationpayCheck = baseSalary + bonus + additionalBonus

46

Page 47: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 48: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 49: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 50: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 51: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 52: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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 . . .

Page 53: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 54: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

SELECTION(branch)Example

 ...read bread cif b > c then add 4 to botherwise subtract 4 from ba = b + cwrite a...

54

Page 55: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 56: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 57: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 58: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

SubprogramExample

 ...read bread cdo the LargerOf sub-algorithmwrite a...

LargerOf if b > c then a = b otherwise a = c

58

Page 59: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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

Page 60: Overview of Programming and Problem Solving. Objectives In this chapter you will: Learn about different types of computers Explore the hardware and software

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