+ All Categories
Home > Documents > 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve...

17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve...

Date post: 29-Jan-2016
Category:
Upload: spencer-montgomery
View: 216 times
Download: 0 times
Share this document with a friend
Popular Tags:
22
17 November 2015 Birkbeck College, U. London 1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems [email protected] Autumn 2015 Week 8a: Pseudo Code and Algorithms
Transcript
Page 1: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Birkbeck College, U. London 1

Introduction to Computer Systems

Lecturer: Steve Maybank

Department of Computer Science and Information [email protected]

Autumn 2015

Week 8a: Pseudo Code and Algorithms

Page 2: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Brookshear section 5.1 2

Algorithms

Definition: an algorithm is an ordered set of unambiguous, executable steps that defines a terminating process.

The steps are often called instructions.

Termination is by a special instruction: halt.

Page 3: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Device An algorithm requires a device which

understands the instructions

CPU: machine code CPU+compiler: high level language Mathematica:

17 February 2017 Brookshear Section 5.1 3

∫ (𝑥−1 )/ (𝑥+1 ) 𝑑𝑥

Page 4: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015Brookshear sections 5.1 and

5.2 4

Terminology Programming language: system for

representing algorithms in a human readable form suitable for conversion to machine code.

Program: representation of an algorithm in a programming language.

Pseudo code: system for the informal representation of algorithms.

Hardware: device to carry out the steps or instructions in a program.

Page 5: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Brookshear Section 5.1 5

Representation of an Algorithm

The same algorithm can be represented in many different ways:

F = (9/5)C+32 F <- (9*C)/5+32 To obtain F multiply C by (9/5) and then

add 32. Lookup table for Fahrenheit and

Centigrade

Page 6: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Birkbeck College, U. London 6

Program 1 for XOR

Input: binary digits a,bOutput: a XOR b If a==0 and b==0 Return 0 If a==0 and b==1 Return 1 If a==1 and b==0 Return 1 If a==1 and b==1 Return 0 Halt

Page 7: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Birkbeck College, U. London 7

Program 2 for XOR

Input: binary digits a,bOutput: a XOR b1. If a==b Return 02. Else Return 13. Halt

Page 8: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Birkbeck College, U. London 8

Program 3 for XOR

Input: binary digits a,bOutput: a XOR b1. Convert a to the integer ia2. Convert b to the integer ib3. ic=remainder on dividing ia+ib

by 24. Return ic5. Halt

Page 9: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Brookshear section 5.2 9

Pseudo Code for Algorithm Representation

Very useful informal representation of algorithms.

Easier than using program code when designing an algorithm.

Basic structures (assignment, loops, arrays …) are similar across many programming languages.

Page 10: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Brookshear, Section 5.2 10

Assignment General form

name = expression

Examplesq = 3funds = Balance + savings

Page 11: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Brookshear section 5.2 11

Conditional Selection General form

if (condition):activity

else:activity

Exampleif (year is leap year):

dailyTotal = total/366else:

dailyTotal = total/365

Page 12: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Nested if Statement

if (not raining):if(temperature == hot):

go swimmingelse:

play golfelse:

watch television

17 February 2015 Brookshear Section 5.2 12

Page 13: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

17 November 2015 Brookshear section 5.2 13

Repeated Execution General form

while (condition):activity

Examplewhile (tickets remain):

sell a ticket

Page 14: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Function Definition: set of instructions which can

be used as a single unit in different contexts.

Exampledef greetings():

count = 3;while (count > 0):

print(‘Hello’)count = count-1

17 November 2015 Brookshear, Section 5.2 14

Page 15: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Parts of a Functiondef greetings():

count = 3;while (count > 0):

print(‘Hello’)count = count-1

17 November 2015 Brookshear, Section 5.2 15

# keyword: def# name: greetings# parameters: none# header: def greetings():# body: code apart from the header# return value: none (print does not count!)

Page 16: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Example of a Functiondef temp(c):

f = (9/5)*c+32return f

17 November 2015 Birkbeck College 16

# keyword: def# name: temp# parameters: c# header: def temp(c)# body: ‘f=(9/5)*c+32’ and ‘return f’# return value: value of f

Page 17: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Function Callc=0while (c <=

100)f = temp(c)c = c+1print(f)

17 November 2015 Birkbeck College 17

# The variable f in the while loop is different# from the variable f in the definition of the# function temp, even though the two variables# have the same name

Page 18: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Which Numbers are Printed?

last = 0current = 1while (current < 100):

print(current)temp = lastlast = currentcurrent = last+temp

17 November 2015Brookshear Ch 5, review

problem 22 18

Page 19: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Exercise 1 The Euclidean algorithm finds the

greatest common divisor of two positive integers x and y by the following process:

As long as x and y are both not zero divide the larger number by the smaller. Replace the larger value with the remainder. When x or y has the value 0 the value of the other variable is the GCD.17 November 2015 Brookshear Section 5.2 19

Page 20: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Example 2 A year n is a leap year if n is divisible by

400 or if n is divisible by 4 but not by 100. In all other cases n is not a leap year

Write a pseudo code version of a function leapYear that takes an integer n as a parameter and returns True if n is a leap year and False otherwise.

17 November 2015Brookshear Ch 5 review

problem 12 20

Page 21: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Exercise 3 Write an algorithm in pseudo code

to carry out the following task:input: a 1-dimensional array A of integersoutput: the integer -1 if A[i]≥ A[i+1] for 0≤i≤Length[A]-2, otherwise the least integer j such that A[j]<A[j+1].

17 November 2015 Birkbeck College 21

Page 22: 17 November 2015Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.

Exercise 4

Design an algorithm for finding all the factors of a positive integer. For example, in the case of the integer 12, your algorithm should report the values 1, 2, 3, 4, 6 and 12.

17 November 2015Brookshear Ch 5 review

problems 11 22


Recommended