home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / crm_demo / p_pascal / zahltafl.pas < prev   
Pascal/Delphi Source File  |  1992-03-10  |  1KB  |  64 lines

  1. PROGRAM Zahlentafel;
  2.  
  3. CONST    ErsteZahl        = 0;
  4.         LetzteZahl        = 63;
  5.         MaxZweierPotenz    = 32;
  6.  
  7. TYPE    ZahlBereich    = ErsteZahl..LetzteZahl;
  8.  
  9. VAR        Zahl            : ZahlBereich;
  10.         Antwort            : CHAR;
  11.         ZweierPotenz    : 1..MAXINT;
  12.  
  13.     PROCEDURE Init;
  14.     BEGIN
  15.         WRITELN('*** Zahltafel ***');
  16.         WRITELN;
  17.         WRITELN('Denke Die eine Zahl zwischen ', ErsteZahl,
  18.                 ' und ', LetzteZahl, ' aus!');
  19.         WRITELN('Ich werde sie erraten!');
  20.         WRITELN('Du mußt lediglich sagen, auf welchen Zahlentafeln');
  21.         WRITELN('Deine Zahl verzeichnet ist.');
  22.         WRITELN;
  23.         WRITELN('Und hier die Zahlentafeln!');
  24.         WRITELN
  25.     END;
  26.  
  27.     PROCEDURE EineTafel(Anfang : ZahlBereich);
  28.     CONST    ZahlenProZeile    = 8;
  29.     VAR        Lauf, Anzahl    : ZahlBereich;
  30.     BEGIN
  31.         WRITELN;
  32.         Anzahl    := 0;
  33.         FOR Lauf:=Anfang TO LetzteZahl DO
  34.         BEGIN
  35.             IF (Lauf MOD (2 * Anfang)) >= Anfang THEN
  36.             BEGIN
  37.                 WRITE(Lauf:5);
  38.                 INC(Anzahl);
  39.                 IF (Anzahl MOD ZahlenProZeile) = 0 THEN
  40.                     WRITELN
  41.             END;
  42.         END;
  43.         WRITELN
  44.     END;
  45.  
  46. BEGIN
  47.     Init;
  48.     Zahl            := 0;
  49.     ZweierPotenz    := 1;
  50.     WHILE ZweierPotenz <= MaxZweierPotenz DO
  51.     BEGIN
  52.         EineTafel(ZweierPotenz);
  53.         WRITE('Ist Deine Zahl dabei (J/N): ');
  54.         REPEAT
  55.             READLN(Antwort);
  56.             Antwort    := UPCASE(Antwort)
  57.         UNTIL Antwort IN ['J', 'N'];
  58.         IF Antwort = 'J' THEN
  59.             INC(Zahl, ZweierPotenz);
  60.         ZweierPotenz    := 2 * ZweierPotenz
  61.     END;
  62.     WRITELN;
  63.     WRITELN('*** Deine Zahl lautet ', Zahl)
  64. END.