say "Welcome to Programming Fundamentals"
# Write in my journal
Web.popup('MyJournal') do
title("Add a journal entry")
editline("Title")
editbox("Entry")
buttons("cancel", "save")
end
# Read my Journal
journal = Table('MyJournal').recent(10)
puts journal
We're going to build a Dog that you can interact with. It's a little tricky at first, but it isn't too hard to follow.
class Dog
@name
@food
def initialize(name, food)
@name = name
@food = food
end
def feed
@food = @food + 1
end
def rollover
if @food <= 3
puts "I'm hungry. Feed me! :("
return
end
puts "Rolling, rolling, rolling."
@food = @food - 3
end
def status
puts "I have #{@food} food."
end
def play
while true
print "What do you want to do? (feed, rollover, status): "
ans = gets
case ans.chomp
when "feed" then self.feed
when "rollover" then self.rollover
when "status" then self.status
else puts "I didn't get that. Try again?"
end
end
end
end
# Now, play with the dog.
dog = Dog.new("Fido", 10)
dog.play
# Now what will happen?
# let's make a menu
while true
choice = ask "What would you like to do? (play, quit)"
case choice.chomp
when "play" then play # play is a function we wrote, elsewhere
when "quit" then break # break gets us out of the loop
end
end
# weird...
unless true # opposite of while
# does this even run?
end
# .upto method on numbers
1.upto(6) do |x|
say "Holding up #{x} fingers."
sleep x
end
6.downto(1) do |x|
say "Holding up #{x} fingers."
sleep x
end
Web.popup() do # check this...
title "Hello World"
para "This is a paragraph!"
end
class = ["John", "Jill", "Jack", "Janet"] say class
# Let's make a dog.
# This is a "class definition".
# It's the blueprint for a Dog.
# We'll make a real dog later.
class Dog
@name
@owner
@foodlevel
# initialize is automatically called when you make a New Dog
def initialize
@foodlevel = 10
end
def feedme
@foodlevel = @foodlevel + 1
end
def timegoesby
@foodlevel = @foodlevel - 1
end
def setfoodlevel(aFoodlevel)
@foodlevel = aFoodlevel
end
def setname(aName)
@name = aName
end
def setowner(aOwner)
@owner = aOwner
end
def bark
say "bark!"
end
def sayhi
say "I'm a dog. My name is #{@name}. My food level is #{@foodlevel}."
end
end
# Now, let's make a new dog and play with it.
dog = Dog.new
dog.setname("Jon")
dog.sayhi
sleep 4
# Sales Tax Calculator
answer = ask "How much are you spending?"
subtotal = answer.to_f # .to_f turns it into a number we can use!
rate = 0.075
tax = subtotal * rate
say "You'll pay #{subtotal} in sales tax, with a total of $#{subtotal+tax}."
rate = case state when "NY" then 0.075 when "CT" then 0.060 end
Let's review what we learned yesterday. Strings. Numbers.
Let's pick up where we left off with conditionals.
sleep 5 # pauses for five seconds
Computer Science is the design and study of solving problems by creating procedures machines can perform. We'll be studying this field with a focus on exploring concepts and solving problems.
# My first program. say "I'd like to get to know you." name = ask "What is your name?" say "Well, " + name + ", it's a pleasure to meet you."
4 + 2 # 6 "4" + "2" # "42" 4 + "2" # error "Hello World".reverse # "dlroW olleH" "Hello World".length # 11 # Other "string" methods: .upcase, .downcase, .capitalize
2.upto(5) do |x| say x sleep 1 end # Everything is a class. Stings have methods, and numbers have methods! # Try downcase on a number, or upto on a string. # Let's write a word count program. How do we count words? # What else can we do with this? Vowell counting?