Chapters 7, 8, & 9 Quiz 3 Review 1. 2 Algorithms Algorithm A set of unambiguous instructions for...

Preview:

Citation preview

Chapters 7, 8, & 9

Quiz 3 Review

1

2

Algorithms

Algorithm

A set of unambiguous instructions for solving a problem or subproblem in a finite amount of time using a finite amount of data

Abstract Step

An algorithmic step containing unspecified details

Concrete Step

An algorithm step in which all details are specified

3

Developing an Algorithm

Two methodologies used to develop computer solutions to a problem

– Top-down design focuses on the tasks to be done

– Object-oriented design focuses on the data involved in the solution (We will discuss this design in Ch. 9)

4

Summary of Methodology

Analyze the ProblemUnderstand the problem!!Develop a plan of attack

List the Main Tasks (becomes Main Module)Restate problem as a list of tasks (modules)Give each task a name

Write the Remaining ModulesRestate each abstract module as a list of tasksGive each task a name

Re-sequence and Revise as NecessaryProcess ends when all steps (modules) are concrete

5

Control Structures

Control structure

An instruction that determines the order in which other instructions in a program are executed

6

Selection Statements

Flow of control of if statement

7

Looping Statements

Flow of control of while statement

Arrays

As data is being read into an array, a counter is updated so that we always know how many data items were stored

If the array is called list, we are working with

list[0] to list[length-1] or

list[0]..list[length-1]

8

9

Sorted Arrays

The values stored in an array have unique keys of a type for which the relational operators are defined

Sorting rearranges the elements into either ascending or descending order within the array

A sorted array is one in which the elements are in order

10

Binary Search

Sequential search

Search begins at the beginning of the list and continues until the item is found or the entire list has been searched

Binary search (list must be sorted)

Search begins at the middle and finds the item or eliminates half of the unexamined items; process is repeated on the half where the item might be

Say that again…

11

Subprogram Statements

12

Recursion

Recursion

The ability of a subprogram to call itself

Base case

The case to which we have an answer

General case

The case that expresses the solution in terms of a call to itself with a smaller version of the problem

13

Recursion

For example, the factorial of a number is defined as the number times the product of all the numbers between itself and 0:

N! = N * (N 1)!

Base case

Factorial(0) = 1 (0! is 1)

General Case

Factorial(N) = N * Factorial(N-1)

14

CHAPTER 8

15

Logical Implementations

Two logical implementations of containers:

Array-based implementation

Objects in the container are kept in an array

Linked-based implementation

Objects in the container are not kept physically together, but each item tells you where to go to get the next one in the structure

Did you ever play treasure hunt, a game in which each clue

told you where to go to get the next clue?

16

Stacks

Stack

An abstract data type in which accesses are made at only one end

– LIFO, which stands for Last In First Out

– The insert is called Push and the delete is called Pop

Name three everydaystructures that are stacks

17

Queues

Queue

An abstract data type in which items are entered at one end and removed from the other end

– FIFO, for First In First Out

– No standard queue terminology• Enqueue, Enque, Enq, Enter, and Insert

are used for the insertion operation• Dequeue, Deque, Deq, Delete, and Remove

are used for the deletion operation.

Name three

everydaystructuresthat arequeues

18

Stacks and Queues

Stack and queue visualized as linked structures

19

Linked Implementations

20

Trees

Binary tree

A linked container with a unique starting node called the root, in which each node is capable of having two child nodes, and in which a unique path (series of nodes) exists from the root to every other node

A picture is worth athousands words…

21

Binary Search Trees

Binary search tree (BST)

A binary tree (shape property) that has the (semantic) property that characterizes the values in a node of a tree:

The value in any node is greater than the value in any node in its left subtree and less than the value in any node in its right subtree

22

Binary Search Tree

Figure 8.7 A binary search tree

Each nodeis the root

of a subtreemade up ofits left and

right children

Prove that thistree is a BST

23

Graphs

Graph

A data structure that consists of a set of nodes (called vertices) and a set of edges that relate the nodes to each other

Undirected graph

A graph in which the edges have no direction

Directed graph (Digraph)

A graph in which each edge is directed from one vertex to another (or the same) vertex

24

Graphs

Figure 8.10Examples of graphs

25

CHAPTER 9

26

Object-Oriented Design

Object-oriented Design

A problem-solving methodology that produces a solution to a problem in terms of self-contained entities called objects

Object

A thing or entity that makes sense within the context of the problem

For example, a student, a car, time, date

Translation Process

A program written in a high-level language must be translated into machine code

The machine code is then executed

Compilers and Interpreters are software tools employed to help with the translation process

27

28

Compilers

High-level language

A language that provides a richer (more English-like) set of instructions

Compiler

A program that translates a high-level language program into machine code

29

Compilers

Figure 9.2 Compilation process

How does this differ fromthe assembly process?

30

Interpreters

Interpreter

A translating program that translates and executes the statements in sequence

– Assembler or compiler produce machine code as output, which is then executed in a separate step

– An interpreter translates a statement and then immediately executes the statement

– Interpreters can be viewed as simulators

31

Java

•Introduced in 1996 and became instantly popular

•Portability was of primary importance

•Java is compiled into a standard machine language called Bytecode

•A software interpreter called the JVM (Java Virtual Machine) takes the Bytecode program and executes it

32

Portability

PortabilityThe ability of a program to be run on different machines

Compiler portabilityA program in a standardized language can be compiled and run on any machine that has the appropriate compiler

Bytecode portabilityA program translated into Bytecode can be run on any machine that has a JVM

Do you understand the difference?

33

Asynchronous Processing

Asynchronous processing

Not synchronized with the program's action– Clicking has become a major form of input

to the computer

– Mouse clicking is not within the sequence of the program

– A user can click a mouse at any time during the execution of a program

Recommended