P1 Algorithims
Algorithims
- Algorithims
- Algorithim Basics
- Psuedo Code
- Robot MCQ(Algorithims)
- String Operations
- Palindrome
- Example of Palindrome Algorithim Used:
- Fibonacci Sequence
- Sorting Algorithims
- Homework Hack 2
Algorithims
Definition: A finite set of instructions to accomplish a task
Algorithim Basics
Sequence: Follows a sequence of steps
Selection: choose different outcomes at steps based on a condition that is made
Iteration: Repetition of code segment if condition is met
Psuedo Code
Definition: A planning language/text that conveys the general implementation of an algorithim to all programers
Sample College Board Psuedo Code(Strings):
Robot MCQ(Algorithims)
Develop an general algorithm that allows the robot in EVERY box to go around the black rectangular box once, back to its original starting point.
String Operations
Length function gives the length of a string
Python Example/Pseudo Code example: len(“codecodecode”) returns 12
String Concatenation is similar to adding strings together
Pseudo Code: Concat(“String1 ”,”String2”) returns “String1 String2”
Python Code: “String1 “+”String2” concatenates the strings together
String substringing can collect a range of character from a string
Pseudo Code: substring(“MortensonBest”,1,4) returns Mort
PythonCode: string=”MortensonBest”
string[0:4] returns “Mort”
String Algorithims
Palindrome
Takes user input and converts to a palindrome by duplicating the string backwards. Users can choose to duplicate last character or not.
Constraints: defaults to no duplication unless user types exactly “yes”
A palindrome string or number is the same read forwards or backwards. Simple as that.
Ex.
“bob”
“hannah”
1337331
9
Example of Palindrome Algorithim Used:
Takes user input and converts to a palindrome by duplicating the string backwards. Users can choose to duplicate last character or not.
Constraints: defaults to no creation of palindrome unless user types exactly “yes”
mystr = str(input("Enter your string: "))
mybool = input("Would you like to make a palindrome that also duplicates the middle character?").lower()
if mybool == "yes":
secondstr = mystr[::-1]
else:
secondstr = mystr[:-1]
secondstr = secondstr[::-1]
endresult = mystr+secondstr
print(endresult)
Enter your string: codecodecode
Would you like to make a palindrome that also duplicates the middle character?no
codecodecodedocedocedoc
Popcorn Hack: Write steps for an algorithim that can find the index of any character in a string
Example: Input: “C” String <- “ABCDEFG”
Output: 2
Answer
- Collect Input Character
- Define the string
- Loop through each character
- While looping compare input character and the character in the string and if same print the index
Homework Hack For String Algorithims
Write Python Code or Psuedo Code that is able to take a string as input and detect if its a palindrome
Math Algorithims
Fibonacci Sequence
Prints the first n fibonacci numbers in a list Constraints: n > 1
f0 = 0
f1 = 1
fiblist = [f0,f1]
r = int(input("How many items do you want in your fibonacci sequence? Enter a number 2 or greater"))
for i in range(r-2):
x = fiblist[-1]
y = fiblist[-2]
fiblist.append(x+y) # Add the sum of the previous 2 numbers to the list
print(fiblist)
How many items do you want in your fibonacci sequence? Enter a number 2 or greater5
[0, 1, 1, 2, 3]
Popcorn Hack: Can anybody tell how we can fix this code so it correctly makes a fibonacci sequence?
Sorting Algorithims
Sorts an array of integers in increasing order. Relatively inefficient, however.
array = [3,5,6,1,4,2]
n = len(array)
for i in range(n):
for j in range(0,n-i-1):
if array[j] > array[j+1]:
array[j], array[j+1] = array[j+1], array[j]
print(array)
[1, 2, 3, 4, 5, 6]
Selection Sort
Homework Hack 2
Create a program that uses at least 1 of the algorithmic concepts covered in this notebook in a real-world application