Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: Constructing complex numbers using recursion

by pg (Canon)
on Nov 08, 2005 at 05:12 UTC ( #506609=note: print w/replies, xml ) Need Help??

in reply to Constructing complex numbers using recursion

By looking at your original code and your explanation how you judge whether it is polar form, it is clear that your code is a dead loop.

Your constructComplex() calls itself unless it is not in polar form. The way you check whether it is in polar form is to see whether there is a _ in the middle of the string (not the first char). You does that PolarToRect() convertion, however the return tells us that the rect form also has a _ in it. Now your rect form seems to the computer as a polar form because of that _ in the middle... So your program just goes on and on, as it never sees an input that is not polar form based on its judgement.

  • Comment on Re: Constructing complex numbers using recursion

Replies are listed 'Best First'.
Re^2: Constructing complex numbers using recursion
by moltar512 (Sexton) on Nov 08, 2005 at 05:50 UTC
    okay.. i'm having a bit of trouble following you..

    this is my reasoning...

    I have a polar value
    once i convert this to rectangular.. it is in rectangular form.. there is no _ in the rectangular form and there never will be.. therefore i thought that a _ would be a great way to see if a value is polar or rectangular (it can only be one or the other).

    once it is back in rectangular form, i run constructComplex again to reap the numbers from the rectangular form.. and then i want to take those numbers and pass them back to the original calling of the constructComplex method...

    I don't understand where you say that the _ is in the rectangular form.. It can't be and it is not when i debug via the print method

    please be more clear??
      Here's a relevant quote from the OP at the start of this thread:
      sub PolarToRect { my($magnitude, $angle, $real, $complex); #does it return $magnitude . " _ " $angle; }
      Now, can you tell us, clearly: is this subroutine supposed to return a rectangular form for a set of polar coordinates? If that's true, then the rectangular form being returned by this subroutine contains a " _ " (assuming that you fix the syntax error, which I mentioned in an earlier reply). So this is why pg is saying that this is the cause of the infinite loop -- this sub is returning rectangular coords that contain " _ ", and the constructComplex is assuming that this means the value is still in polar form. So it calls itself again (and again and again...)

      update: Looking at your much longer (more detailed, more confusing!) reply to Grandfather, I see that the "running" version does not have this problem with " _ " in the "PolarToRect" sub. Your original post was just very misleading.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://506609]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2017-04-28 23:21 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (531 votes). Check out past polls.