### COMP203: Lecture 20

Syllabus | Homework and Assignments | Grading Rubric | Midterm Exam | Final Project

### Decimals and Precision

It is not true that decimal representations are more precise than fractions, even if the word "precision" is seen more often when speaking of decimal numbers. Fractions are exact representations of numbers. In contrast, some decimal numbers are merely approximations of exact values.

For example, consider the fraction 1/3. The fraction 1/3 describes an exact value. You can easily imagine 1/3 of a cheese pizza.

Now let's think about a decimal approximation of 1/3. 1/3 is about 3/10, so one possible approximation is 0.3. This is not a very precise approximation -- it only has one digit. In fact, the estimate is "off" by 1/30 = 1/3 - 3/10.

To get a more precise approximation, we can use two decimal places. 1/3 is about 33/100, so a better approximation would be 0.33. This estimate is off by 1/300 = 1/3 - 33/100.

We can get as many decimal places of accuracy as we wish by using long division. By dividing 3 into 1 we will quickly see that 1/3 = 1.333...; there are infinitely many 3's after the decimal point.

The Digits variable and evalf command in Maple allow us to approximate fractions as closely as we like, but the decimal numbers Maple gives us are often merely approximations of an exact value.

#### Maple Programming and Shift-Enter

Below is a definition of a Maple procedure that adds two numbers. What happens if you try to type it into Maple?
```thing := proc(a,b)
# A procedure to add two numbers.
a+b;
end proc;
```
The error message Error, unterminated procedure means that Maple thinks you've finished writing a procedure without giving it an "end" instruction. Of course you hadn't finished -- you had only just typed in the name of the procedure and its inputs!

The problem is that Maple interprets your hitting the Enter key as a request to evaluate what you've typed in. We need some sort of equivalent of Logo's ~ to tell Maple "this procedure definition will be continued on the next line". That equivalent is holding down the Shift key while hitting Enter.

Try typing in the procedure again, but this time when you get to the end of the first line, hold down the Shift key while you hit the Enter key. Now you can type in the second line (a comment) without getting an error from Maple. Keep holding down the Shift key as you advance to each new line until you have typed in end proc;. Then hit Enter without the Shift key held down to tell Maple to evaluate the procedure definition.

It takes a while to get the hang of this. Be patient, and when Maple gives you an error message just move the cursor up to the end of the last line you typed and hit Shift-Enter in stead of Enter. You may have to do this several times while writing your first few procedures, but with practice holding down the shift key will become automatic.