Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Computer Science and Programming I Chris Schmidt

Similar presentations


Presentation on theme: "Introduction to Computer Science and Programming I Chris Schmidt"— Presentation transcript:

1 Introduction to Computer Science and Programming I Chris Schmidt
CMPT 120 Introduction to Computer Science and Programming I Chris Schmidt

2 Algorithms What is an algorithm?
An algorithm is a set of instructions on how to accomplish something The basic idea can be applied to many typical activities Recipes, assembly instructions, directions on how to get somewhere could all be viewed as types of algorithms

3 Algorithms Recipe Example from Study Guide
Combine the room-temperature butter and the sugar. Mix until light and fluffy. Add the eggs to the creamed butter and mix to combine. In another bowl, combine the liquid ingredients and mix to combine. Sift together the flour and other dry ingredients. Alternately add the dry and liquid ingredients to the butter-egg mixture. Mix just enough to combine.

4 Algorithms Aspects of a proper algorithm Solves a problem
How to make muffins Unambiguous instructions Step 5 isn’t entirely clear Completes in a finite amount of time given proper input This clearly does

5 Algorithms What sort of problems are algorithms created for?
Sorting and searching We’ll be looking at some well known algorithms for this later in the semester Encryption and Decryption Mathematical: factoring, finding prime numbers Idea can be applied to any problem you want to write code to solve

6 Algorithms Check if a user entered number is prime
Ask the user for a number to check the primeness of. Start with divisor equal to 2. If the user’s number is divided evenly by the divisor, it is not prime. You are done. If the divisor squared is less than the user’s number, increase it by one and go to step 3. If you’ve reached this step, the user’s number is prime.

7 Algorithms Aspects of a proper algorithm Solves a problem
Tests if a user entered number is prime Unambiguous instructions Completes in a finite amount of time given proper input What if step 4 didn’t compare the divisor with the square root of the user’s number?

8 Pseudocode So far we’ve used natural language to describe algorithms
It is helpful to describe algorithms in pseudocode (almost code) An algorithm written in pseudocode is then easily coded in any give programming language

9 Pseudocode Digital Clock Example from Study Guide set hour to 0
set minute to 0 set second to 0 repeat forever: set second to second + 1 if second is more than 59, then set minute to minute + 1 if minute is more than 59, then set hour to hour + 1 if hour is more than 23, then write “hour :minute:second” wait for 1 second

10 Pseudocode Pseudocode for prime number example set divisor to 2
write “Enter an integer greater than 2” read userNumber repeat while divisor2 < userNumber if userNumber % divisor is equal to 0 write “The number is not prime, it is divisible by :” write divisor exit program set divisor to divisor +1 write “The number is prime.”

11 Writing a Program Define the problem
Create a plan (algorithm) to solve the problem Translate your algorithm into code Test and make adjustments to your code and algorithm as neede

12 Creating an Algorithm What to keep in mind when creating your algorithm Read in all needed input Proper output What are the normal cases (possibilities) based on the input? Are there any special cases?

13 Algorithm Example Problem: Find the roots (real) of a quadratic equation. Quadratic Equation: ax2 + bx + c The roots are where this formula is equal to 0, ax2 + bx + c = 0 Ex. a=1,b=0,c=-1 x2 – 1 = (x-1) * (x+1) = 0 roots at x=1,x=-1

14 Algorithm: Roots of Quadratic Formula
How do we find the roots? Quadratic equation Does this formula always work?

15 Algorithm: Roots of Quadratic Formula
Input: the coefficients a,b,c Output: the roots of ax2 + bx + c What cases do we need to handle?

16 Algorithm: Roots of Quadratic Formula
What cases do we need to handle? Normal Two distinct roots One root But what special cases do we need to be careful of? No roots 4ac > b2 a=0 (straight line bx+c=0 root at –c/b) a=0,b=0 (horizontal line, no roots unless c =0) a=0,b=0,c=0 (infinite roots)

17 Algorithm: Roots of Quadratic Formula Pseudocode
write “Enter the coefficients of the formula:” read a,b,c if a,b,and c equal 0 write “infinite roots” exit if a and b equal 0 write “no roots” if a equals 0 root = -c/b write “One root at x=“, root .

18 Testing Remember once you’ve translated your pseudocode into actual code that you need to test every possible case


Download ppt "Introduction to Computer Science and Programming I Chris Schmidt"

Similar presentations


Ads by Google