On Jul 28, 10:38 ¨Âí¬ ¢Íéãèáåì ×® Òùäåò¢ ¼ßí÷òù®®®À÷ïòìäîåô®áôô®îåôwrote: > RichardOnRails wrote: > > On Jul 28, 5:52 pm, RichardOnRails > > <RichardDummyMailbox58... / USComputerGurus.com> wrote: > >> On Jul 28, 3:34 pm, "Michael W. Ryder" <_mwry... / worldnet.att.net> > >> wrote: > > >>> RichardOnRails wrote: > >>>> On Jul 27, 12:36 pm, Prateek Agarwal <prateek.a... / gmail.com> wrote: > >>>>> I am new to Ruby and am still learning some of the basic stuff. > >>>>> What's the method name for the Power operation(as in 'a' to the power > >>>>> 'b')? > >>>>> -- > >>>>> Posted viahttp://www.ruby-forum.com/. > >>>> Whoops. ¨Â æïòçïô ôï ðáóôéî ôèðòïçòá¨óïòòù©¬ ¨Âèéãè æïììï÷óº > >>>> =begin Note this comments out all lines until the3Dend > >>>> def power(a,b) > >>>> result=a**b # "a" should be "a.chomp.to_1"; ditto "b"; > >>>> # the "chomp" removes the newline which the user presses > >>>> # "result" is unnecessary > >>>> result.to_i # does nothing > >>>> return result # unnecessary: > >>>> # Since we've eliminated everything else, the method > >>>> # has only one statement, i.e. the expression > >>>> # a ** b with the replacements suggestedbove > >>>> # Ruby returns the last statement's value > >>>> end > >>>> puts "a=" # use printf rather than puts (which appends a newline) > >>>> a=gets > >>>> a.to_i does nothing; "a" does not get change, and the > >>>> result > >>>> # is discarded > >>>> puts "b=" # same as "a" > >>>> b=gets > >>>> b.to_i # ditto as for "a" > >>>> c=power(a,b) numeric result assigned to c, probably an integer but > >>>> # not necessarily > >>>> puts "c=#{c}" # These final two lines might be more elegantly > >>>> # written in Ruby as suggested below > >>>> =end > >>>> # The result of all these changes are the following 8 lines > >>>> # (plus blank lines); save them, say, as: Test.rb > >>>> # and run them as: ¨ÂõâÔåóô®ò> >>>> def power(a,b) > >>>> a.chomp.to_i**b.chomp.to_i > >>>> end > >>>> printf "a=" > >>>> a = gets > >>>> print "b=" > >>>> b = gets > >>>> puts "%d**%d = %d" % [a, b, power(a,b)] > >>> As an "improvement" to your code I would take the chomp and to_i out of > >>> the power function to make it more generic and add them after the gets. > >> Hi Michael, > > >> Your point is well taken. > > >> I did that for a newbie to point the stuff that's needs to be done to > >> get things working as he intends. ¨Âå§îïìéëåìù ôï ìïïë õð ¢ôïßé¢ > >> to learn all its machinations. > > >> In fact, there's one more that I would have thrown in, had I > >> remembered it: strip. > > >> I do that in string-handlers I write: > >> 1. in part, to remind myself what to_i would do for me automatically > >> 2. in part, to guarantee that that stuff gets done even if new > >> versions of Ruby eliminate some helpful feature. > >> 3. in part, because I might decide to extend a program using the input > >> string as though it contained only the digits that to_i revealed, > >> forgetting that a lot of "baggage" had been removed. > > >> Perhaps having taught Computer Technology at AU in DC for a decade > >> gives me a different perspective than production program with a lean- > >> and-mean code perspective. > > >> Do I make any sense? > > >> Best wishes, > >> Richard > > > Hey Michael, > > > After posting my reply to you, ¨Â òåòåáùïðïóô áîòåáìéúåä > > misinterpreted it. ¨Â æáöïðõôôéîáìôèáô âáççáçéî ôèÏЧó > > "power" routine rather than having to remember that stuff when writing > > each invocation of "power". > > > Does that make any sense? > > > Best wishes, > > Richard > > The reason I stripped out the conversions from the power function is to > allow its use with either integers or floats. ¨Âìõðòåæåò ôï ãïîöåò> input to it's desired form as soon as possible, rather than having to > remember to convert it everywhere it is used. ¨Âéó áî éîôåçåôèåò> is no need to store it as a string with \n on the end and then having to > remember to chomp and to_i it everywhere you need it. ¨Âèáéæ ôèÏÐ > wanted to use a and b later such as showing the power of a and b and > then the power of a+1 and b+1? ¨Â÷ïõìèáöå ôï áçáéãèïíôè> variables and convert them to integers, add one to each, then convert > them back to strings before feeding them to the power function. Good points, Michael. Let's hope the OP learned something from all of this. Best wishes, Richard