From: timr Date: 2008-09-01T15:19:47+09:00 Subject: Re: Another Chris Pine Tutorial Question On Aug 30, 1:55 pm, danielj 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