Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make superficial alteration so can make pull request #501

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5660d29
make superficial alteration so can make pull request
elizabethvenner Sep 10, 2016
40b6702
ask.rb exercise
elizabethvenner Sep 11, 2016
1ad37ba
Remove superficial changes from README.md
elizabethvenner Sep 11, 2016
37587e7
Comment out calling method
elizabethvenner Sep 11, 2016
3e40cc1
old_school_roman_numerals.rb
elizabethvenner Sep 11, 2016
374a769
roman_numerals.rb
elizabethvenner Sep 11, 2016
079a85c
dictionary_sort.rb
elizabethvenner Sep 11, 2016
6055c7e
shuffle.rb
elizabethvenner Sep 11, 2016
ec81379
english_number.rb
elizabethvenner Sep 11, 2016
b12d58a
ninety_nine_bottles_of_beer.rb
elizabethvenner Sep 11, 2016
d17dba8
safer_picture_downloading.rb
elizabethvenner Sep 12, 2016
ed70b99
Add my examples folder to .gitignore
elizabethvenner Sep 20, 2016
b143cdd
Complete build your own playlist exercise
elizabethvenner Sep 20, 2016
f644644
Add curly braces to line 1 search so will search for mp3 and MP3, als…
elizabethvenner Sep 20, 2016
6d67ae8
Complete build a better playlist exercise
elizabethvenner Sep 20, 2016
e91e133
Calculate when I will be one billion seconds old
elizabethvenner Sep 20, 2016
c65e629
Complete happy_birthday.rb exercise
elizabethvenner Sep 20, 2016
13c4e88
Write program that converts roman numerals to integers
elizabethvenner Sep 22, 2016
79dd5a7
birthday_helper.rb
elizabethvenner Sep 24, 2016
b8a9a78
exted_build_in_classes.rb
elizabethvenner Sep 24, 2016
0ac9a7b
orange_tree.rb
elizabethvenner Sep 24, 2016
f43c214
interactive_baby_dragon.rb
elizabethvenner Sep 25, 2016
8eabc8d
even_better_profiling.rb
elizabethvenner Sep 25, 2016
0d59545
grandfather_clock.rb
elizabethvenner Sep 25, 2016
56d8c30
program_logger.rb
elizabethvenner Sep 25, 2016
86bf93c
better_program_logger.rb
elizabethvenner Sep 25, 2016
21012b4
sort.rb
elizabethvenner Sep 25, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/**/.DS_Store
my_examples
18 changes: 16 additions & 2 deletions ch09-writing-your-own-methods/ask.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
def ask question
# your code here
end
while true
puts question
reply = gets.chomp.downcase

return true if reply == 'yes'
return false if reply =='no'

puts 'Please answer yes or no.'
end
answer
end

#puts(ask ('Do you like chocolate?'))



18 changes: 16 additions & 2 deletions ch09-writing-your-own-methods/old_school_roman_numerals.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
def old_roman_numeral num
# your code here
end

roman = ''

roman << 'M' * (num / 1000)
roman << 'D' * (num % 1000 / 500)
roman << 'C' * (num % 500 / 100)
roman << 'L' * (num % 100 / 50)
roman << 'X' * (num % 50 / 10)
roman << 'V' * (num % 10 / 5)
roman << 'I' * (num % 5)

end


#puts (old_roman_numeral(2679))

40 changes: 38 additions & 2 deletions ch09-writing-your-own-methods/roman_numerals.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,39 @@
def roman_numeral num
# your code here
end
thous = (num / 1000)
hunds = (num % 1000 / 100)
tens = (num % 100 / 10)
ones = (num % 10)

roman = 'M' * thous

if hunds == 9
roman = roman + 'CM'
elsif hunds == 4
roman = roman + 'CD'
else
roman = roman + 'D' * (num % 1000 / 500)
roman = roman + 'C' * (num % 500 / 100)
end

if tens == 9
roman = roman + 'XC'
elsif tens ==4
roman = roman + 'XL'
else
roman = roman + 'L' * (num % 100 / 50)
roman = roman + 'X' * (num % 50 / 10)
end

if ones == 9
roman = roman + 'IX'
elsif ones == 4
roman = roman + 'IV'
else
roman = roman + 'V' * (num % 10 / 5)
roman = roman + 'I' * (num % 5 / 1)
end
roman
end


puts (roman_numeral(2999))
31 changes: 29 additions & 2 deletions ch10-nothing-new/dictionary_sort.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,30 @@
def dictionary_sort arr
# your code here
end
rec_dict_sort arr, []

end

def rec_dict_sort unsorted, sorted
if unsorted.length <= 0
return sorted
end

smallest = unsorted.pop
still_unsorted = []

unsorted.each do |tested_object|
if tested_object.downcase < smallest.downcase
still_unsorted.push smallest
smallest = tested_object
else
still_unsorted.push tested_object
end
end

sorted.push smallest

rec_dict_sort still_unsorted, sorted
end

veg = ['carrot', 'apple', 'Pear', 'banana', 'Leek']

puts dictionary_sort(veg)
95 changes: 94 additions & 1 deletion ch10-nothing-new/english_number.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,96 @@
def english_number number
# your code here
if number < 0
return 'Please enter a number that isn\'t negative.'
end
if number == 0
return 'zero'
end

numString = ''

onesPlace = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
tensPlace = ['ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety']
teenagers = ['eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen','sixteen', 'seventeen', 'eighteen', 'nineteen']

zillions = [['hundred', 2],
['thousand', 3],
['million', 6],
['billion', 9],
['trillion', 12],
['quadrillion', 15],
['quintillion', 18],
['sextillion', 21],
['septillion', 24],
['octillion', 27],
['nonillion', 30],
['decillion', 33],
['undecillion', 36],
['duodecillion', 39],
['tredecillion', 42],
['quattuordecillion', 45],
['quindecillion', 48],
['sexdecillion', 51],
['septendecillion', 54],
['octodecillion', 57],
['novemdecillion', 60],
['vigintillion', 63],
['googol', 100]]

left = number

while zillions.length > 0
zil_pair = zillions.pop
zil_name = zil_pair[0]
zil_base = 10 ** zil_pair[1]
write = left/zil_base
left = left - write*zil_base

if write > 0
prefix = english_number write
num_string = num_string + prefix + ' ' + zil_name

if left > 0
# So we don't write 'two billionfifty-one'...
num_string = num_string + ' '
end
end
end

write = left/10
left = left-write*10

if write > 0
if ((write == 1) and (left == 0))
numString = numString + teenagers[left-1]
left = 0
else
numString = numString + tensPlace[write-1]
end
if left > 0
numString = numString + ' '
end
end


write = left
left = 0

if write > 0
numString = numString + onesPlace[write-1]
end

numString
end


puts english_number (12)
puts english_number (1)
puts english_number (0)
puts english_number (27)
puts english_number (100)
puts english_number (512)
puts english_number(3211)
puts english_number(999999)
puts english_number(1000000000000)
puts english_number(109238745102938560129834709285360238475982374561034)

130 changes: 129 additions & 1 deletion ch10-nothing-new/ninety_nine_bottles_of_beer.rb
Original file line number Diff line number Diff line change
@@ -1 +1,129 @@
# your code here
def english_number number
if number < 0 # No negative numbers.
return 'Please enter a number that isn\'t negative.'
end
if number == 0
return 'zero'
end

# No more special cases! No more returns!

num_string = '' # This is the string we will return.

ones_place = ['one', 'two', 'three',
'four', 'five', 'six',
'seven', 'eight', 'nine']

tens_place = ['ten', 'twenty', 'thirty',
'forty', 'fifty', 'sixty',
'seventy', 'eighty', 'ninety']


teenagers = ['eleven', 'twelve', 'thirteen',
'fourteen', 'fifteen', 'sixteen',
'seventeen', 'eighteen', 'nineteen']

zillions = [['hundred', 2],
['thousand', 3],
['million', 6],
['billion', 9],
['trillion', 12],
['quadrillion', 15],
['quintillion', 18],
['sextillion', 21],
['septillion', 24],
['octillion', 27],
['nonillion', 30],
['decillion', 33],
['undecillion', 36],
['duodecillion', 39],
['tredecillion', 42],
['quattuordecillion', 45],
['quindecillion', 48],
['sexdecillion', 51],
['septendecillion', 54],
['octodecillion', 57],
['novemdecillion', 60],
['vigintillion', 63],
['googol', 100]]

# "left" is how much of the number
# we still have left to write out.
# "write" is the part we are
# writing out right now.
# write and left...get it? :)
left = number

while zillions.length > 0
zil_pair = zillions.pop
zil_name = zil_pair[0]
zil_base = 10 ** zil_pair[1]
write = left/zil_base # How many zillions left?
left = left - write*zil_base # Subtract off those zillions.

if write > 0
# Now here's the recursion:
prefix = english_number write
num_string = num_string + prefix + ' ' + zil_name

if left > 0
# So we don't write 'two billionfifty-one'...
num_string = num_string + ' '
end
end
end

write = left/10 # How many tens left?
left = left - write*10 # Subtract off those tens.

if write > 0
if ((write == 1) and (left > 0))
# Since we can't write "tenty-two" instead of
# "twelve", we have to make a special exception
# for these.
num_string = num_string + teenagers[left-1]
# The "-1" is because teenagers[3] is
# 'fourteen', not 'thirteen'.

# Since we took care of the digit in the
# ones place already, we have nothing left to write.
left = 0
else
num_string = num_string + tens_place[write-1]
# The "-1" is because tens_place[3] is
# 'forty', not 'thirty'.
end

if left > 0
# So we don't write 'sixtyfour'...
num_string = num_string + '-'
end
end

write = left # How many ones left to write out?
left = 0 # Subtract off those ones.

if write > 0
num_string = num_string + ones_place[write-1]
# The "-1" is because ones_place[3] is
# 'four', not 'three'.
end

# Now we just return "num_string"...
num_string
end

num_at_start = 9999 # change to 9999 if you want
num_now = num_at_start
while num_now > 2
puts english_number(num_now).capitalize + ' bottles of beer on the wall, ' +
english_number(num_now) + ' bottles of beer!'
num_now = num_now - 1
puts 'Take one down, pass it around, ' +
english_number(num_now) + ' bottles of beer on the wall!'
end

puts "Two bottles of beer on the wall, two bottles of beer!"
puts "Take one down, pass it around, one bottle of beer on the wall!"
puts "One bottle of beer on the wall, one bottle of beer!"
puts "Take one down, pass it around, no more bottles of beer on the wall!"
8 changes: 6 additions & 2 deletions ch10-nothing-new/shuffle.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
def shuffle arr
# your code here
end
arr.shuffle
end

veg = ['apple', 'banana', 'carrot', 'Leek', 'Pear',]

puts(shuffle(veg))
17 changes: 15 additions & 2 deletions ch10-nothing-new/sort.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
def sort arr
# your code here
end
return arr if arr.length <= 1

middle = arr.pop
less = arr.select{|x| x < middle}
more = arr.select{|x| x >= middle}

sort(less) + [middle] + sort(more)
end

fruit = ['pear', 'apple', 'grape', 'banana']
veg = ['carrot']

p sort(fruit)
p sort([])
p sort(veg)
Loading