[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Another Chris Pine Tutorial Question

danielj

8/30/2008 8:56:00 PM

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)
6 Answers

danielj

8/30/2008 11:03:00 PM

0

testing

Robert Klemme

8/31/2008 12:01:00 PM

0

On 30.08.2008 22:55, danielj wrote:
> 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

Graham Ashton

8/31/2008 7:23:00 PM

0

On 2008-08-31 13:00:33 +0100, Robert Klemme <shortcutter@googlemail.com> said:

> 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.

timr

9/1/2008 6:22:00 AM

0

On Aug 30, 1:55 pm, danielj <sleepingind...@gmail.com> wrote:
>  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

timr

9/1/2008 6:25:00 AM

0

On Aug 31, 11:21 pm, timr <timra...@gmail.com> wrote:
> On Aug 30, 1:55 pm, danielj <sleepingind...@gmail.com> wrote:
>
>
>
> >  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)


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

timr

9/1/2008 6:27:00 AM

0

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