DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦307246cb3⟧ TextFile

    Length: 2048 (0x800)
    Types: TextFile
    Names: »GAETTEGN.PAS«

Derivation

└─⟦08ea08c61⟧ Bits:30003924 PolyPascal programmer
    └─ ⟦this⟧ »GAETTEGN.PAS« 
└─⟦092727b26⟧ Bits:30005927 Demoprogrammer til Pascal bog (Jet-80)
    └─ ⟦this⟧ »GAETTEGN.PAS« 
└─⟦3702e543b⟧ Bits:30003064 Demoprogrammer A-J til Pascal bog
    └─ ⟦this⟧ »GAETTEGN.PAS« 
└─⟦f983c2ef3⟧ Bits:30004681 Pascal opgaver (Butler)
    └─ ⟦this⟧ »GAETTEGN.PAS« 

TextFile

PROGRAM gaettegn;
  
  TYPE
    tegn = SET OF 'A' .. 'Å';
    str30 = STRING(.30.);
  
  VAR
    datamat, spiller, faelles : tegn;
    i, gaet, taeller : INTEGER;
    ch : CHAR;
    tekst : str30;
  
  FUNCTION uppercase(str : str30) : str30;
  
    VAR
      i : INTEGER;
      s : str30;
    
    BEGIN (* uppercase *)
      s := '';
      FOR i := 1 TO LEN(str) DO
        IF ('a' <= str(.i.)) AND (str(.i.) <= 'å')
          THEN s := s + CHR(ORD(str(.i.)) - 32)
          ELSE s := s + str(.i.);
      uppercase := s;
    END; (* uppercase *)

  BEGIN
    WRITE(CLRHOM);
    WRITELN('Datamaten vælger fire forskellige bogstaver');
    WRITELN('Du skal i så få gæt som muligt finde frem til disse bogstaver');
    WRITELN('Du gætter ved at skrive SFT, ABCDEF e.l.');
    WRITELN('Som svar får du ANTALLET af bogstaver, der er fælles for dit');
    WRITELN('gæt og datamatens bogstaver');
    WRITELN('Dit sidste gæt skal være på netop 4 bogstaver');
    WRITELN;
    RANDOMIZE;
    datamat := (. .);
    REPEAT
      ch := CHR(RANDOM(ORD('Å') - ORD('A') + 1) + ORD('A'));
      datamat := datamat + (.ch.);
      taeller := 0;
      FOR ch := 'A' TO 'Å' DO
        IF ch IN datamat
          THEN taeller := taeller + 1;
    UNTIL taeller = 4;
    (* FOR ch := 'A' TO 'Å' DO *)
    (*  IF ch IN datamat       *)
    (*    THEN WRITE(ch, ' '); *)
    WRITELN;
    gaet := 0;
    REPEAT
      gaet := gaet + 1;
      WRITE('Tast gæt nr. ', gaet, ': ');
      READLN(tekst);
      tekst := uppercase(tekst);
      spiller := (. .);
      FOR i := 1 TO LEN(tekst) DO
        spiller := spiller + (.COPY(tekst, i, 1).);
      faelles := datamat * spiller;
      taeller := 0;
      FOR ch := 'A' TO 'Å' DO
        IF ch IN faelles
          THEN taeller := taeller + 1;
      WRITELN('Antal fælles bogstaver: ', taeller);
    UNTIL (taeller = 4) AND (LEN(tekst) = 4);
    WRITELN;
    WRITELN('Du klarede det på ', gaet, ' forsøg');
  END.
«eof»