Turing/Functions and Subroutines

Functions
I never use these, so I can't really say anything useful about them, except that they are used to make calculations that you often use. Let's say you want to make a program that gets radii and outputs the area of the circle.

function calculatearea (x : real) : real result x ** 2 * 3.14159 end calculatearea var input : real loop get input put "The area of a circle with a radius ", input, " is ", calculatearea (input) end loop

Procedures
These are great for things that you do often or just to make your program look more organized. Let's say that you want to get the keyboard input, then the mouse input, then the keyboard input and then output both, get the mouse input and then output both. Instead of copying and pasting bits of code, you can have procedures and call them when needed.

var mx,my,mb : int var keyinput : string procedure getmouse Mouse.Where (mx,my,mb) end getmouse procedure getkey get keyinput end getkey procedure outputinfo put mx, my, mb    put keyinput end outputinfo loop keyinput getmouse outputinfo getmouse outputinfo end loop

Exercises:

 * 1) Make a function that calculates the number times 6, plus 3 divided by 2
 * 2) Make a procedure that puts 'hi' and then one that gets a string. Then call on them at random. (Hint: Use Rand.Int: Rand.Int (1,5) randomly outputs a number between 1 and 5.)