Another Chris Pine Tutorial Question

D

danielj

Let's write a program which asks us to type in as many words as we
want (one word per line, continuing until we just press Enter on an
empty line), and which then repeats the words back to us in
alphabetical order. OK?

So... first we'll—uh... um... hmmm... Well, we could—er... um...

You know, I don't think we can do it. We need a way to store an
unknown amount of words, and how to keep track of them all together,
so they don't get mixed up with other variables. We need to put them
in some sort of a list. We need arrays.
puts "Let's make a shopping list!"

shoplist = []

while shoplist.last != ''

shoplist.push(gets.downcase.chomp)

end

shoplist.pop


puts shoplist.sort

The program asks for one word per line but there is no way one can do
that utilizing the methods the tutorial has expounded upon up to this
point so I settled for what I got here.

However, it asks you to then do this:

• Try writing the above program without using the sort method. A large
part of programming is solving problems, so get all the practice you
can!

Could somebody point me in the right direction, or give me an example
of how that would be possible? I'm racking my brain but I can not
think of a way to do it without using methods and tools that you are
not yet supposed to use at this point in the tutorial (i.e. regex)
 
R

Robert Klemme

However, it asks you to then do this:

• Try writing the above program without using the sort method. A large
part of programming is solving problems, so get all the practice you
can!

Could somebody point me in the right direction, or give me an example
of how that would be possible? I'm racking my brain but I can not
think of a way to do it without using methods and tools that you are
not yet supposed to use at this point in the tutorial (i.e. regex)

The trick I assume Chris is targeting at is to insert words at the
correct position. That way your list is always sorted and you do not
need an explicit sort operation.

Kind regards

robert
 
G

Graham Ashton

The trick I assume Chris is targeting at is to insert words at the
correct position. That way your list is always sorted and you do not
need an explicit sort operation.

That's a good idea. Or I suppose you could implement your own sorting
method and call that instead.
 
T

timr

 Let's write a program which asks us to type in as many words as we
want (one word per line, continuing until we just press Enter on an
empty line), and which then repeats the words back to us in
alphabetical order. OK?

So... first we'll—uh... um... hmmm... Well, we could—er... um...

You know, I don't think we can do it. We need a way to store an
unknown amount of words, and how to keep track of them all together,
so they don't get mixed up with other variables. We need to put them
in some sort of a list. We need arrays.
puts "Let's make a shopping list!"

shoplist = []

while shoplist.last != ''

shoplist.push(gets.downcase.chomp)

end

shoplist.pop

puts shoplist.sort

The program asks for one word per line but there is no way one can do
that utilizing the methods the tutorial has expounded upon up to this
point so I settled for what I got here.

However, it asks you to then do this:

• Try writing the above program without using the sort method. A large
part of programming is solving problems, so get all the practice you
can!

Could somebody point me in the right direction, or give me an example
of how that would be possible? I'm racking my brain but I can not
think of a way to do it without using methods and tools that you are
not yet supposed to use at this point in the tutorial (i.e. regex)

words = []
loop do #loop allows one to do an indefinite amount
of something--must set an exit
#inside of the loop.
incoming = gets
if incoming == "\n" then #if a blank line is entered, we are done.
Sort and puts the list.
puts words.sort
exit
else
words << incoming #if data is entered, add it to the array of
words.
end
end

#=>
alphabet soup
bananas
coca cola
hot dogs
kool aid
lettuce
milk
potatoes
spinach
sugar

Tim Rand
 
T

timr

 Let's write a program which asks us to type in as many words as we
want (one word per line, continuing until we just press Enter on an
empty line), and which then repeats the words back to us in
alphabetical order. OK?
So... first we'll—uh... um... hmmm... Well, we could—er... um...
You know, I don't think we can do it. We need a way to store an
unknown amount of words, and how to keep track of them all together,
so they don't get mixed up with other variables. We need to put them
in some sort of a list. We need arrays.
puts "Let's make a shopping list!"
shoplist = []
while shoplist.last != ''



puts shoplist.sort
The program asks for one word per line but there is no way one can do
that utilizing the methods the tutorial has expounded upon up to this
point so I settled for what I got here.
However, it asks you to then do this:
• Try writing the above program without using the sort method. A large
part of programming is solving problems, so get all the practice you
can!
Could somebody point me in the right direction, or give me an example
of how that would be possible? I'm racking my brain but I can not
think of a way to do it without using methods and tools that you are
not yet supposed to use at this point in the tutorial (i.e. regex)


SORRY. AFTER FIXING THE COMMENTS TO BE MORE READABLE--
words = []
loop do                   #loop allows one to do an indefinite amount
#of something--must set an exit
                          #inside of the loop.
incoming = gets
if incoming == "\n" then  #if a blank line is entered, we are done.
#Sort and puts the list.
  puts words.sort
  exit
else
  words << incoming       #if data is entered, add it to the array of
words.
end
end

#=>
alphabet soup
bananas
coca cola
hot dogs
kool aid
lettuce
milk
potatoes
spinach
sugar

Tim Rand
 
T

timr

words = []
loop do #loop allows one to do an indefinite amount
# of something--must set an exit
#inside of the loop.
incoming = gets
if incoming == "\n" then #if a blank line is entered, we are done.
#Sort and puts the list.
puts words.sort
exit
else
words << incoming #if data is entered, add it to the array of
words.
end
end

#=>
alphabet soup
bananas
coca cola
hot dogs
kool aid
lettuce
milk
potatoes
spinach
sugar

Tim Rand
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,736
Latest member
AdolphBig6

Latest Threads

Top