Computer Science Canada Help with functions |
Author: | user23 [ Mon May 16, 2011 3:01 pm ] |
Post subject: | Help with functions |
So, I have a function set that is defined as function item (x : int, y : int) : int I want to be able to modify x and y, and for example call item (x*100,y*100) within an if statement, but I get the error "expression is not a procedure and hence cannot be called" Anyone know how to make this work? Thanks |
Author: | Tony [ Mon May 16, 2011 3:06 pm ] | ||
Post subject: | RE:Help with functions | ||
since a function returns a value, Turing expects you to "receive" that value. E.g.
|
Author: | user23 [ Mon May 16, 2011 3:35 pm ] |
Post subject: | Re: Help with functions |
Hmm I think I didn't explain myself well enough. What I'm trying to do is re-run the function from the beginning basically with the different values that are calculated (from for example y*100, x*10 - where the original numbers are multiplied and put back through the function. Thanks |
Author: | chrisbrown [ Mon May 16, 2011 4:39 pm ] | ||||||
Post subject: | Re: Help with functions | ||||||
Sounds like <a href="http://www.google.ca/search?q=recursion">recursion</a>. You can certainly call a function from within itself. You will have to have what's called a base case, which is just an if statement that ensures the function eventually ends without calling itself, otherwise it will run out of memory (by what's called stack overflow). Run this to see the basic idea.
Tony is saying that your error is probably caused by doing something like
instead of
|
Author: | user23 [ Mon May 16, 2011 4:48 pm ] |
Post subject: | Re: Help with functions |
Yes, I am trying to accomplish recursion. So if I have something setup, where item (x,y) where x and y are user inputted values that have their own values from 0 - 8 that are calculated before hand based on the surroundings. Then, I want to do if total = 0 then item (x*100,y*100) % this runs the function from the start with the new multiplied values item (x+1, y+1) % this runs the function from the start with the sums. .. .. elsif .. .. end if The dots represent something similar to the item lines above. Would I need a new variable for each line (I need the function to be run for up to 8 different x, y values at a time)? Thanks |
Author: | chrisbrown [ Mon May 16, 2011 4:59 pm ] |
Post subject: | Re: Help with functions |
user23 @ Mon May 16, 2011 4:48 pm wrote: Would I need a new variable for each line (I need the function to be run for up to 8 different x, y values at a time)?
That depends on what happens after the "end if." Some more context would help. What do x and y represent? Why are you both multiplying and incrementing them? Post more code if you have it. |