cps120: introduction to computer science midterm exam review

63
CPS120: Introduction to Computer Science Midterm Exam Review

Upload: imogene-davis

Post on 30-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CPS120: Introduction to Computer Science Midterm Exam Review

CPS120: Introduction to Computer Science

Midterm Exam Review

Page 2: CPS120: Introduction to Computer Science Midterm Exam Review

Introduction To Computers

Page 3: CPS120: Introduction to Computer Science Midterm Exam Review
Page 4: CPS120: Introduction to Computer Science Midterm Exam Review
Page 5: CPS120: Introduction to Computer Science Midterm Exam Review
Page 6: CPS120: Introduction to Computer Science Midterm Exam Review
Page 7: CPS120: Introduction to Computer Science Midterm Exam Review
Page 8: CPS120: Introduction to Computer Science Midterm Exam Review
Page 9: CPS120: Introduction to Computer Science Midterm Exam Review
Page 10: CPS120: Introduction to Computer Science Midterm Exam Review
Page 11: CPS120: Introduction to Computer Science Midterm Exam Review
Page 12: CPS120: Introduction to Computer Science Midterm Exam Review
Page 13: CPS120: Introduction to Computer Science Midterm Exam Review
Page 14: CPS120: Introduction to Computer Science Midterm Exam Review
Page 15: CPS120: Introduction to Computer Science Midterm Exam Review
Page 16: CPS120: Introduction to Computer Science Midterm Exam Review
Page 17: CPS120: Introduction to Computer Science Midterm Exam Review
Page 18: CPS120: Introduction to Computer Science Midterm Exam Review
Page 19: CPS120: Introduction to Computer Science Midterm Exam Review
Page 20: CPS120: Introduction to Computer Science Midterm Exam Review

Machine Language

• Every processor type has its own set of specific machine instructions

• The relationship between the processor and the instructions it can carry out is completely integrated

• Each machine-language instruction does only one very low-level task

Page 21: CPS120: Introduction to Computer Science Midterm Exam Review

Assembly Language

• Assembly languages: assign mnemonic letter codes to each machine-language instruction– The programmer uses these letter codes in place

of binary digits

– A program called an assembler reads each of the instructions in mnemonic form and translates it into the machine-language equivalent

Page 22: CPS120: Introduction to Computer Science Midterm Exam Review

Instruction Format

Difference between immediate-mode and direct-mode addressing

Page 23: CPS120: Introduction to Computer Science Midterm Exam Review

Some Sample Instructions

Subset of Pep/7 instructions

Page 24: CPS120: Introduction to Computer Science Midterm Exam Review

Figure 7.5 Assembly Process

Page 25: CPS120: Introduction to Computer Science Midterm Exam Review

Algorithm and Program Design

Page 26: CPS120: Introduction to Computer Science Midterm Exam Review

Top-Down Design

• This process continues for as many levels as it takes to expand every task to the smallest details

• A step that needs to be expanded is an abstract step

An example of top-down design

Page 27: CPS120: Introduction to Computer Science Midterm Exam Review

A General Example

• Planning a large party

Subdividing the party planning

Page 28: CPS120: Introduction to Computer Science Midterm Exam Review

Flowchart

• A graphical representation of an algorithm.

Page 29: CPS120: Introduction to Computer Science Midterm Exam Review

Pseudocode

• Uses a mixture of English and formatting to make the steps in the solution explicit

Page 30: CPS120: Introduction to Computer Science Midterm Exam Review

Logic Flowcharts

• These represent the flow of logic in a program and help programmers “see” program design.

Page 31: CPS120: Introduction to Computer Science Midterm Exam Review

Terminator. Shows the starting and ending points of the program. A terminator has flow lines in only one direction, either in (a stop node) or out (a start node).

Data Input or Output. Allows the user to input data and results to be displayed.

Processing. Indicates an operation performed by the computer, such as a variable assignment or mathematical operation. With a heading – an internal subroutine

Decision. The diamond indicates a decision structure. A diamond always has two flow lines out. One flow lineout is labeled the “yes” branch and the other is labeled the “no” branch.

Predefined Process. One statement denotes a group of previously defined statements. Such as a function or a subroutine created externally

Connector. Connectors avoid crossing flow lines, making the flowchart easier to read. Connectors indicate where flow lines are connected. Connectors come in pairs, one witha flow line in and the other with a flow line out.

Off-page connector. Even fairly small programs can have flowcharts that extend severalpages. The off-page connector indicates the continuation of the flowchart on another page. Just like connectors, off-page connectors come in pairs.

Flow line. Flow lines connect the flowchart symbols and show the sequence of operations during the program execution.

Common Flowchart Symbols

Common Flowchart Symbols

Page 32: CPS120: Introduction to Computer Science Midterm Exam Review

How to Draw a Flowchart• There are no hard and fast rules for constructing

flowcharts, but there are guidelines which are useful to bear in mind.Here are six steps which can be used as a guide for completing flowcharts.

1. Describe the purpose of the program to be created (this is a one-line statement)

2. Start with a 'trigger' event (it may be the beginning of the program)

3. Initialize any values that need to be defined at the start of the program

4. Note each successive action concisely and clearly 5. Go with the main flow (put extra detail in other charts -- this is

the basis of structured programming) 6. Follow the process through to a useful conclusion (end at a

'target' point -- like having no more records to process)

Page 33: CPS120: Introduction to Computer Science Midterm Exam Review

STARTIntialize variablesLOOPWhile More records do READ record PROCESS record PRINT detail recordENDLOOPCALCULATE TOTALSPRINT total recordEND

Pseudocode for a Generalized Program

Page 34: CPS120: Introduction to Computer Science Midterm Exam Review

Rules for Pseudocode1. Make the pseudocode language-independent

2. Indent lines for readability

3. Make key words stick out by showing them capitalized, in a different color or a different font

4. Punctuation is optional

5. End every IF with ENDIF

6. Begin loop with LOOP and end with ENDLOOP

7. Show MAINLINE first; all others follow

8. TERMINATE all routines with an END instruction

Page 35: CPS120: Introduction to Computer Science Midterm Exam Review

Gates and Boolean Logic

Page 36: CPS120: Introduction to Computer Science Midterm Exam Review

Gates• Six types of gates

– NOT– AND– OR– XOR– NAND– NOR

Page 37: CPS120: Introduction to Computer Science Midterm Exam Review

NOT Gate

• A NOT gate accepts one input value and produces one output value

Various representations of a NOT gate

Page 38: CPS120: Introduction to Computer Science Midterm Exam Review

NOT Gate

• By definition, if the input value for a NOT gate is 0, the output value is 1, and if the input value is 1, the output is 0

Page 39: CPS120: Introduction to Computer Science Midterm Exam Review

AND Gate

• An AND gate accepts two input signals• If the two input values for an AND gate are both

1, the output is 1; otherwise, the output is 0

Various representations of an AND gate

Page 40: CPS120: Introduction to Computer Science Midterm Exam Review

OR Gate

• If the two input values are both 0, the output value is 0; otherwise, the output is 1

Figure 4.3 Various representations of a OR gate

Page 41: CPS120: Introduction to Computer Science Midterm Exam Review

XOR Gate• XOR, or exclusive OR, gate

– An XOR gate produces 0 if its two inputs are the same, and a 1 otherwise

– Note the difference between the XOR gate and the OR gate; they differ only in one input situation

– When both input signals are 1, the OR gate produces a 1 and the XOR produces a 0

Page 42: CPS120: Introduction to Computer Science Midterm Exam Review

XOR Gate

Various representations of an XOR gate

Page 43: CPS120: Introduction to Computer Science Midterm Exam Review

NAND and NOR Gates

• The NAND and NOR gates are essentially the opposite of the AND and OR gates, respectively

Various representations of a NAND gate

Various representations of a NOR gate

Page 44: CPS120: Introduction to Computer Science Midterm Exam Review

Review of Gate Processing

• A NOT gate inverts its single input value

• An AND gate produces 1 if both input values are 1

• An OR gate produces 1 if one or the other or both input values are 1

Page 45: CPS120: Introduction to Computer Science Midterm Exam Review

Review of Gate Processing (cont.)

• An XOR gate produces 1 if one or the other (but not both) input values are 1

• A NAND gate produces the opposite results of an AND gate

• A NOR gate produces the opposite results of an OR gate

Page 46: CPS120: Introduction to Computer Science Midterm Exam Review

Adders

• At the digital logic level, addition is performed in binary

• Addition operations are carried out by special circuits called, appropriately, adders

Page 47: CPS120: Introduction to Computer Science Midterm Exam Review

Adders

• The result of adding two binary digits could produce a carry value

• Recall that 1 + 1 = 10 in base two

• A circuit that computes the sum of two bits and produces the correct carry bit is called a half adder

Page 48: CPS120: Introduction to Computer Science Midterm Exam Review

Adders

• Circuit diagram representing a half adder

• Two Boolean expressions:

sum = A Bcarry = AB

Page 103

Page 49: CPS120: Introduction to Computer Science Midterm Exam Review

Adders

• A circuit called a full adder takes the carry-in value into account

A full adder

Page 50: CPS120: Introduction to Computer Science Midterm Exam Review

Computer Mathematics

Page 51: CPS120: Introduction to Computer Science Midterm Exam Review

Representing Data

• The computer knows the type of data stored in a particular location from the context in which the data are being used; – i.e. individual bytes, a word, a longword, etc– 01100011 01100101 01000100 01000000

• Bytes: 99(10, 101 (10, 68 (10, 64(10

• Two byte words: 24,445 (10 and 17,472 (10 • Longword: 1,667,580,992 (10

• ASCII: c, e, D, @

Page 52: CPS120: Introduction to Computer Science Midterm Exam Review

Alphanumeric Codes

• American Standard Code for Information Interchange (ASCII)– 7-bit code– Since the unit of storage is a bit, all ASCII

codes are represented by 8 bits, with a zero in the most significant digit

H e l l o W o r l d48 65 6C 6C 6F 20 57 6F 72 6C 64

• ASCII is a subset of the Unicode character set

Page 53: CPS120: Introduction to Computer Science Midterm Exam Review

Decimal Equivalents

• Assuming the bits are unsigned, the decimal value represented by the bits of a byte can be calculated as follows:

1. Number the bits beginning on the right using superscripts beginning with 0 and increasing as you move left• Note: 20, by definition is 1

2. Use each superscript as an exponent of a power of 23. Multiply the value of each bit by its corresponding

power of 24. Add the products obtained

Page 54: CPS120: Introduction to Computer Science Midterm Exam Review

Binary to Hex

• Step 1: Form four-bit groups beginning from the rightmost bit of the binary number– If the last group (at the leftmost position) has less than

four bits, add extra zeros to the left of the group to make it a four-bit group

• 0110011110101010100111 becomes• 0001 1001 1110 1010 1010 0111

• Step 2: Replace each four-bit group by its hexadecimal equivalent– 19EAA7(16

• Note: Octal is done in groups of threes

Page 55: CPS120: Introduction to Computer Science Midterm Exam Review

Converting Decimal to Other Bases

• Step 1: Divide the number by the base you are converting to (r)

• Step 2: Successively divide the quotients by (r) until a zero quotient is obtained

• Step 3: The decimal equivalent is obtained by writing the remainders of the successive division in the opposite order in which they were obtained– Know as modulus arithmetic

• Step 4: Verify the result by multiplying it out

Page 56: CPS120: Introduction to Computer Science Midterm Exam Review

Representing Signed Numbers• Remember, all numeric data is represented inside

the computer as 1s and 0s– Arithmetic operations, particularly subtraction raise the

possibility that the result might be negative

• Any numerical convention needs to differentiate two basic elements of any given number, its sign and its magnitude– Conventions

• Sign-magnitude

• Two’s complement

• One’s complement

Page 57: CPS120: Introduction to Computer Science Midterm Exam Review

Representing Negatives

• It is necessary to choose one of the bits of the “basic unit” as a sign bit– Usually the leftmost bit– By convention, 0 is positive and 1 is negative

• Positive values have the same representation in all conventions

• However, in order to interpret the content of any memory location correctly, it necessary to know the convention being used used for negative numbers

Page 58: CPS120: Introduction to Computer Science Midterm Exam Review

Sign-Magnitude

• For a basic unit of N bits, the leftmost bit is used exclusively to represent the sign

• The remaining (N-1) bits are used for the magnitude

Page 59: CPS120: Introduction to Computer Science Midterm Exam Review

Sign-magnitude Operations

• Addition of two numbers in sign-magnitude is carried out using the usual conventions of binary arithmetic– If both numbers are the same sign, we add their

magnitude and copy the same sign– If different signs, determine which number has

the larger magnitude and subtract the other from it. The sign of the result is the sign of the operand with the larger magnitude

Page 60: CPS120: Introduction to Computer Science Midterm Exam Review

One’s Complement

• Devised to make the addition of two numbers with different signs the same as two numbers with the same sign

• Positive numbers are represented in the usual way

• For negatives– STEP 1: Start with the binary representation of the

absolute value– STEP 2: Complement all of its bits

Page 61: CPS120: Introduction to Computer Science Midterm Exam Review

One's Complement Operations

– Treat the sign bit as any other bit– For addition, carry out of the leftmost bit is

added to the rightmost bit – end-around carry

Page 62: CPS120: Introduction to Computer Science Midterm Exam Review

Two’s Complement Convention

• A positive number is represented using a procedure similar to sign-magnitude

• To express a negative number1. Express the absolute value of the number in binary2. Change all the zeros to ones and all the ones to zeros (called

“complementing the bits”)3. Add one to the number obtained in Step 2

– The range of negative numbers is one larger than the range of positive numbers

– Given a negative number, to find its positive counterpart, use steps 2 & 3 above

Page 63: CPS120: Introduction to Computer Science Midterm Exam Review

Two’s Complement Operations

• Addition:– Treat the numbers as unsigned integers

• The sign bit is treated as any other number

– Ignore any carry on the leftmost position

• Subtraction– Treat the numbers as unsigned integers– If a "borrow" is necessary in the leftmost place,

borrow as if there were another “invisible” one-bit to the left of the minuend