Computer Science Canada Help for if statements |
Author: | storm2713687 [ Wed Feb 27, 2013 1:43 pm ] | ||
Post subject: | Help for if statements | ||
I was just wondering if I can use if statements like this (For an example):
Would that work? I've only used booleans for my if statements so far, but I'd like to try this, but I'm not sure if it works (last time I remember doing something like that, it failed). |
Author: | Tony [ Wed Feb 27, 2013 5:28 pm ] |
Post subject: | RE:Help for if statements |
you could read the documentation -- if -- to see exactly what you can do with the statement. |
Author: | Insectoid [ Wed Feb 27, 2013 7:39 pm ] |
Post subject: | RE:Help for if statements |
The nice thing about programming is that if you want to try something, you can. |
Author: | storm2713687 [ Thu Feb 28, 2013 8:31 pm ] |
Post subject: | Re: RE:Help for if statements |
Insectoid @ Wed Feb 27, 2013 7:39 pm wrote: The nice thing about programming is that if you want to try something, you can.
I was at school so I couldn't use Turing xD Since there's compsci at high schools, the computer probably had it, but I just didn't know the location of it. Thanks for helping though, guys! |
Author: | jbking [ Fri Mar 01, 2013 12:30 pm ] |
Post subject: | Re: Help for if statements |
Case would be like what you want so there is a command to do that, if you want to know about it.[/url] |
Author: | yazdmich [ Fri Mar 01, 2013 12:55 pm ] | ||
Post subject: | Re: Help for if statements | ||
You must tell the compiler what variable to read, easy mistake, Turing's compiler is highly declarative. almost nothing is inferred (constant typing [int, real, nat, string etc] can be inferred, but everything else is declared) |
Author: | storm2713687 [ Fri Mar 01, 2013 5:11 pm ] | ||
Post subject: | Re: Help for if statements | ||
Jbking, what do you mean by that? yazdmich @ Fri Mar 01, 2013 12:55 pm wrote:
You must tell the compiler what variable to read, easy mistake, Turing's compiler is highly declarative. almost nothing is inferred (constant typing [int, real, nat, string etc] can be inferred, but everything else is declared) Can you give an example plz? ![]() I don't quite understand that ![]() |
Author: | yazdmich [ Fri Mar 01, 2013 5:39 pm ] | ||
Post subject: | Re: Help for if statements | ||
storm2713687 @ Fri Mar 01, 2013 5:11 pm wrote: Jbking, what do you mean by that?
yazdmich @ Fri Mar 01, 2013 12:55 pm wrote:
You must tell the compiler what variable to read, easy mistake, Turing's compiler is highly declarative. almost nothing is inferred (constant typing [int, real, nat, string etc] can be inferred, but everything else is declared) Can you give an example plz? ![]() I don't quite understand that ![]() I fixed your code so it would work in turing. declaring means to say what it is checking, in this case the value of the variable op |
Author: | jbking [ Fri Mar 01, 2013 6:17 pm ] | ||
Post subject: | Re: Help for if statements | ||
I mean that the structure of code you want where you just want to state the value and have it automatically do the line you want already exists as a separate command called "case" which you may want to research. From the documentation that should look a lot like what you wanted to some degree if I interpret what you wanted correctly. Here would be an example that is similar to what you wanted:
|
Author: | storm2713687 [ Fri Mar 01, 2013 7:38 pm ] | ||||
Post subject: | Re: Help for if statements | ||||
yazdmich @ Fri Mar 01, 2013 5:39 pm wrote: storm2713687 @ Fri Mar 01, 2013 5:11 pm wrote: Jbking, what do you mean by that?
yazdmich @ Fri Mar 01, 2013 12:55 pm wrote:
You must tell the compiler what variable to read, easy mistake, Turing's compiler is highly declarative. almost nothing is inferred (constant typing [int, real, nat, string etc] can be inferred, but everything else is declared) Can you give an example plz? ![]() I don't quite understand that ![]() I fixed your code so it would work in turing. declaring means to say what it is checking, in this case the value of the variable op Ohhh thanks ![]() Is it possible to change else to elsif op = 3? jbking @ Fri Mar 01, 2013 6:17 pm wrote: I mean that the structure of code you want where you just want to state the value and have it automatically do the line you want already exists as a separate command called "case" which you may want to research. From the documentation that should look a lot like what you wanted to some degree if I interpret what you wanted correctly. Here would be an example that is similar to what you wanted:
I didn't get there in turing yet xD Thanks for helping though ![]() |
Author: | Raknarg [ Sat Mar 02, 2013 1:11 pm ] |
Post subject: | RE:Help for if statements |
Personally I wouldn't use cases in turing, they're stupid. In most languages you can set ranges, but not in Turing. With bigger ranges you might as well use ifs. |
Author: | storm2713687 [ Sat Mar 02, 2013 7:51 pm ] |
Post subject: | Re: RE:Help for if statements |
Raknarg @ Sat Mar 02, 2013 1:11 pm wrote: Personally I wouldn't use cases in turing, they're stupid. In most languages you can set ranges, but not in Turing. With bigger ranges you might as well use ifs.
Well now I know another thing not to use in turing ![]() Btw, is it possible to have the if statement something like this: if variable1 = yes then put "hi" elsif variable1 = no then put "bye" end if |
Author: | Raknarg [ Sat Mar 02, 2013 7:56 pm ] |
Post subject: | RE:Help for if statements |
Why not? It's essentially the same as what you were doing before. |
Author: | storm2713687 [ Sat Mar 02, 2013 9:25 pm ] |
Post subject: | Re: RE:Help for if statements |
Raknarg @ Sat Mar 02, 2013 7:56 pm wrote: Why not? It's essentially the same as what you were doing before.
Well, I just wanted to have a bigger variety of options for my if statements. Now I have another question ![]() Can I use an if statement within another if statement? |
Author: | Tony [ Sat Mar 02, 2013 9:36 pm ] |
Post subject: | Re: RE:Help for if statements |
storm2713687 @ Sat Mar 02, 2013 9:25 pm wrote: Can I use an if statement within another if statement? Yes. As I've linked to above ? http://compsci.ca/holtsoft/doc/if.html "An ifStatement is:" Quote: if trueFalseExpn then statementsAndDeclarations { elsif trueFalseExpn then statementsAndDeclarations } [ else statementsAndDeclarations ] end if So inside of an ifStatement you can have any statementsAndDeclarations, which includes other ifStatement. |
Author: | storm2713687 [ Sat Mar 02, 2013 9:42 pm ] |
Post subject: | Re: RE:Help for if statements |
Tony @ Sat Mar 02, 2013 9:36 pm wrote: storm2713687 @ Sat Mar 02, 2013 9:25 pm wrote: Can I use an if statement within another if statement? Yes. As I've linked to above ? http://compsci.ca/holtsoft/doc/if.html "An ifStatement is:" Quote: if trueFalseExpn then statementsAndDeclarations { elsif trueFalseExpn then statementsAndDeclarations } [ else statementsAndDeclarations ] end if So inside of an ifStatement you can have any statementsAndDeclarations, which includes other ifStatement. Oh whoops, idk what happended with me at that time... idk why I didn't look at it lol. Thanks though, that answers a hell lot ![]() |
Author: | Raknarg [ Sat Mar 02, 2013 10:02 pm ] |
Post subject: | RE:Help for if statements |
It's called nesting, which you can do with basically any structure. A loop within a loop, if within an if, for within a for, and such. |
Author: | storm2713687 [ Sat Mar 02, 2013 10:06 pm ] |
Post subject: | Re: RE:Help for if statements |
Raknarg @ Sat Mar 02, 2013 10:02 pm wrote: It's called nesting, which you can do with basically any structure. A loop within a loop, if within an if, for within a for, and such.
Do I have to add a certain code to my program or will it work if I just use an if within an if? |
Author: | Raknarg [ Sat Mar 02, 2013 10:12 pm ] | ||
Post subject: | Re: Help for if statements | ||
try running that. |
Author: | storm2713687 [ Sun Mar 03, 2013 8:39 pm ] | ||
Post subject: | Re: Help for if statements | ||
Raknarg @ Sat Mar 02, 2013 10:12 pm wrote:
try running that. Thanks for helping, but what does mod do after the "if" statement at the top? Sorry, I'm so bad at this ![]() |
Author: | Dreadnought [ Sun Mar 03, 2013 9:12 pm ] |
Post subject: | Re: Help for if statements |
It's just a positive remainder from integer division. Basically, "x mod 2" will return 1 if x is an odd number and 0 if x is an even number. |
Author: | Raknarg [ Mon Mar 04, 2013 12:46 pm ] |
Post subject: | RE:Help for if statements |
Or if I was looking at an angle, for instance, and wanted to have it only between 0 and 359. Then lets say I had an angle of 450. 450 mod 360 = 90 Divides the left number by the right one, then returns whatever the remainder is. |
Author: | storm2713687 [ Mon Mar 04, 2013 8:12 pm ] |
Post subject: | Re: Help for if statements |
I'm confused ![]() So is mod supposed to be division? |
Author: | Insectoid [ Mon Mar 04, 2013 8:21 pm ] |
Post subject: | RE:Help for if statements |
Mod returns the remainder of a division. 10/3 = 3, with a remainder of 1. 10 mod 3 = 1. The way to check if a number is odd or even is to divide it by 2 and take the remainder. If the remainder is 0, then it's even. If the remainder is 1, then it's even. 5/2 = 2, with a remainder of 1. 5 mod 2 = 1, therefor 5 is odd. 4/2 = 2, with a remainder of 0. 4 mod 2 = 0. |
Author: | storm2713687 [ Tue Mar 05, 2013 11:49 am ] |
Post subject: | Re: RE:Help for if statements |
Insectoid @ Mon Mar 04, 2013 8:21 pm wrote: Mod returns the remainder of a division. 10/3 = 3, with a remainder of 1. 10 mod 3 = 1.
The way to check if a number is odd or even is to divide it by 2 and take the remainder. If the remainder is 0, then it's even. If the remainder is 1, then it's even. 5/2 = 2, with a remainder of 1. 5 mod 2 = 1, therefor 5 is odd. 4/2 = 2, with a remainder of 0. 4 mod 2 = 0. I still don't really get it... isn't 10/3 supposed to be like 3.something? |
Author: | DemonWasp [ Tue Mar 05, 2013 1:22 pm ] |
Post subject: | RE:Help for if statements |
If you divide 10 solid objects (each indivisible) into 3 even piles, then each pile has 3 objects in it and you have one left over (the remainder). 10 div 3 will give you 3, the number of objects in each pile. 10 mod 3 will give you 1, the number of objects left over. |
Author: | storm2713687 [ Tue Mar 05, 2013 1:24 pm ] |
Post subject: | Re: RE:Help for if statements |
DemonWasp @ Tue Mar 05, 2013 1:22 pm wrote: If you divide 10 solid objects (each indivisible) into 3 even piles, then each pile has 3 objects in it and you have one left over (the remainder).
10 div 3 will give you 3, the number of objects in each pile. 10 mod 3 will give you 1, the number of objects left over. Ohhh I get it now, thanks ![]() Is mod supposed to be some kinda simple math thing? |
Author: | DemonWasp [ Tue Mar 05, 2013 2:11 pm ] |
Post subject: | RE:Help for if statements |
mod stands for "modulus", which basically means "divide evenly and find the remainder". This leads to a kind of mathematics called "modular arithmetic". It sounds scary, but the hours in a day follow the same basic rules: hours start at 1, count up to 12, then return to 1 again. But! The next number after 12 is 13, and 13 mod 12 = 1. And, the hour after that, hour #14, is normally called "2pm", but notice that 14 mod 12 = 2. For more detail, see http://en.wikipedia.org/wiki/Modular_arithmetic . There's a discussion of modular arithmetic in a first-year university class, usually called "Classical Algebra" or similar. Note: Hours don't follow exactly the same system, because 12 mod 12 = 0 (you can divide 12 objects into 12 even piles with 0 left over). However, the idea is the same, just offset by one. The hour "12am midnight" can be thought of as 0, and the hour "1am" thought of as 1. Then "11am" is 11, and "12pm noon" is 0 (because 12 mod 12 = 0). Note: Negative numbers may not behave as you expect with mod. For details, see the div mod and rem commands: http://compsci.ca/holtsoft/doc/div.html http://compsci.ca/holtsoft/doc/mod.html http://compsci.ca/holtsoft/doc/rem.html |
Author: | Raknarg [ Tue Mar 05, 2013 4:56 pm ] |
Post subject: | RE:Help for if statements |
For instance, you can try this: put -450 rem 360 put -450 mod 360 Notice how the first one results -90 and the second results 270. |