TOPIC E: Boolean, real, conversion

Contents :

BOOLEAN, TRUE, FALSE, REAL, /, SQRT, VAL, RdBool, WrBool, RdReal, WrReal, WrFixReal.

Exercises :


D1: Sinusoide

open Modula2 compiler XDS: start -> programs ->  [TW] Programming ->  XDS environment
copy the    to a new file, run it and try to understand it...

S1: Equation.

        a        b        c        #opl?    x1    x2
        16.3    2.E-2     -3
        8.27    0.24      9.41
        3       6         3
 
 


S2: Extrapolate (extrapoleren)

The next array is incomplete (start with the and copy this into your code, AFTER the BEGIN)
  1. The values for the odd (oneven) index's are missing! Calculate them by interpolation:
  2. Reverse the array without using another array.

S3: Interest.


S4: Cirkel tekenen

Bestudeer eerst D1
1. Vraag de gebruiker middelpunt en straal van een cirkel en teken deze, gebruik makend van de parametrische vergelijking van de cirkel.

                x:= x0 + cos(t) * r
                y:= y0 + sin(t) * r

                t:= 1 TO 360

2. Laat het punt 'ronddraaien', meerdere rondjes
3. Verklein de straal stap voor stap, laat het punt draaien tot de straal 0 is geworden.


X1: Primes.



H1: Canon


H2: Ganzenbord

In het alom bekende ganzenspel heeft elke speler een pion en moet vanaf de start de finish (in ons geval: op vakje 63 of erover komen) bereiken over een ganzenbord.
Het ganzenbord bestaat uit positieve en negatieve hindernissen. Een speler gooit met 2 dobbelstenen om te bepalen hoeveel vakjes hij in die beurt vooruit mag gaan.  Als hij dan op een positieve hindernis terecht komt, mag hij een aantal vakjes extra vooruit gaan. Bij een negatieve hindernis moet hij een aantal vakjes achteruit. Dit moet hij te doen tot hij op een neutraal vakje komt, dan is zijn beurt pas afgelopen.
Copieer deze code.
P staat initieel op vakje 0 en moet voorbij het vakje 62 komen. We hebben al met de dobbelstenen d1 & d2 gesmeten en de resultaten hiervan in 2 arrays (d1 & d2) gestoken. Dus voor de eerste beurt van P moet je het eerste element van d1 & d2 nemen als resultaat van zijn worp, enz. Er zijn 12 worpen gegeven, maar het is niet zeker dat ze allemaal nodig zijn! Je mag er van uit gaan dat het er niet meer dan 12 zullen zijn.

De vraag luidt:



T1

 MODULE T1;
  <* NOOPTIMIZE + *>
  FROM IO IMPORT WrStr, WrLn, WrInt, WrChar, WrCard, WrReal;

  CONST MAX = 6;
  VAR
    i, j, x: CARDINAL;
BEGIN
  WrLn;

  i := MAX;
  REPEAT

    FOR j := (i * 2) TO 1 BY -2 DO
      x := 1; (*** hoeveel malen wordt dit uitgevoerd?? ***)
    END;

    i := i - 2;
  UNTIL (i = 0);
END T1.