User Tools

Site Tools


ch04-getting-stuff-done-i

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
ch04-getting-stuff-done-i [2017/08/30 22:04]
mithat [Arithmetic operators]
ch04-getting-stuff-done-i [2017/08/30 22:42]
mithat
Line 56: Line 56:
 foo + bar foo + bar
 </​code>​ </​code>​
 +
 === Subtraction === === Subtraction ===
  
-TODO+The ''​%%-%%''​ operator is used for subtraction. The two operands must be (or evaluate to) numeric values. 
 + 
 +<code java> 
 +foo - 5 
 +foo - bar 
 +</​code>​ 
 + 
 +=== Negation === 
 + 
 +The ''​%%-%%''​ operator is also used for numeric negation. It operates on one operand that must be (or evaluate to) a number. It evaluates to the numeric inverse of the operand. 
 + 
 +<code java> 
 +-foo 
 +-(2 * foo) 
 +</​code>​
  
 === Multiplication === === Multiplication ===
  
-TODO+The ''​%%*%%''​ operator is used for multiplication. The two operands must be (or evaluate to) numeric values.
  
-=== Integer versus floating-point division. ===+<code java> 
 +foo * 5 
 +foo * bar 
 +</​code>​
  
-TODO+=== Division ===
  
-=== modulo ​===+The ''​%%/​%%''​ operator is used for division. The two operands must be (or evaluate to) numeric values. The behavior of the ''​%%/​%%''​ operator varies depending on whether the operands are integer or floating point types. 
 + 
 +== Floating-point division ​=
 + 
 +When at least one of the operands in a ''​%%/​%%''​ operation is a floating point type, the result will also be a floating point type and have the expected value to the extent possible by the limited precision of floating point math. (Computers do not have infinite precision, so in general small errors will occur.) 
 + 
 +<​code>​ 
 +float x = 2.2; 
 +int y = 2; 
 +double z; 
 + 
 +z = x / y; 
 +</​code>​ 
 + 
 +The result of the above is that ''​%%z%%''​ holds the value 1.1 (or a value very close to that). 
 + 
 +== Integer division == 
 + 
 +When both operands in a ''​%%/​%%''​ operation are integer types, the result will be an integer type and truncating division will take place. In truncating division, the fractional part of the result (i.e., the stuff after the decimal point) will be thrown away. The result will not be rounded to the nearest integer value; whatever the fractional part happens to be will simply be eliminated. 
 + 
 +<​code>​ 
 +int x = 5; 
 +int y = 3; 
 +int z; 
 + 
 +z = x / y; 
 +</​code>​ 
 + 
 +The result of the above is that ''​%%z%%''​ holds the value 1. 
 + 
 +<WRAP center round box 80%> 
 +=== Geekbreak: WTF division? === 
 +TODO FIXME 
 +</​WRAP>​ 
 + 
 +=== Modulus ​===
  
 TODO TODO
  
-==== Assignment ​====+=== Assignment ===
  
 Assignment is an operation on two operands that sets the value of one of the operands (typically a variable) to the value of the other operand. In Processing, the equals symbol is used to indicate assignment. In the example below, the value 8 is assigned to ''​%%foo%%'',​ then twice the value of ''​%%baz%%''​ is assigned to ''​%%bar%%''​. Assignment is an operation on two operands that sets the value of one of the operands (typically a variable) to the value of the other operand. In Processing, the equals symbol is used to indicate assignment. In the example below, the value 8 is assigned to ''​%%foo%%'',​ then twice the value of ''​%%baz%%''​ is assigned to ''​%%bar%%''​.
Line 80: Line 133:
 bar = 2 * baz; bar = 2 * baz;
 </​code>​ </​code>​
-The assignment operation in Processing looks like the "​equals"​ relationship in math, and this is can be a source of confusion to new programmers//They are not the same thing.// "​Equals"​ is a statement of fact: two things are the same. Assignment is an operation: it does something--specifically,​ it copies the value of whatever is on the right into what is on the left.+ 
 +The assignment operation in Processing looks like the "​equals"​ relationship in math. This is can be a source of confusion to new programmers, but //they are not the same thing!// "​Equals"​ is a statement of fact: two things are the same. Assignment is an operation: it does something---specifically,​ it copies the value of whatever is on the right into what is on the left.
  
 Assignment is one way that the state of a program can be changed. Assignment is one way that the state of a program can be changed.
 +
 +-------------------------------------
  
 ==== Mixing numeric types ==== ==== Mixing numeric types ====
ch04-getting-stuff-done-i.txt · Last modified: 2017/09/27 23:26 by mithat