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

⟦71974c1fb⟧ TextFile

    Length: 2304 (0x900)
    Types: TextFile
    Names: »VOKALER.PAS«

Derivation

└─⟦09235ab48⟧ Bits:30003065 Demoprogrammer K-Z til Pascal bog
    └─ ⟦this⟧ »VOKALER.PAS« 
└─⟦092727b26⟧ Bits:30005927 Demoprogrammer til Pascal bog (Jet-80)
    └─ ⟦this⟧ »VOKALER.PAS« 

TextFile

PROGRAM vokaler;

  CONST
    linieantal = 100;
    liniebredde = 68;
  
  TYPE
    tekstarray = ARRAY(.1 .. linieantal, 1 .. liniebredde.) OF CHAR;
    tegn = SET OF CHAR;
    str = STRING(.liniebredde.);
    
  VAR
    tekst : tekstarray;
    konsonanter, vokaler, cifre : tegn;
    tekstlinie : str;
    i, j, linie, position : INTEGER;
    antalvokaler, antalkonsonanter, antalcifre : INTEGER;
    ch : CHAR;
  
  BEGIN
    vokaler := (. 'A', 'E', 'I', 'O', 'U', 'Y', 'Æ', 'Ø', 'Å',
                  'a', 'e', 'i', 'o', 'u', 'y', 'æ', 'ø', 'å' .);
    konsonanter := ((. 'A' .. 'Å' .) - vokaler)
                 + ((. 'a' .. 'å' .) - vokaler);
    cifre := (. '0' .. '9' .);
    
    WRITE(CLRHOM);
    WRITELN('Du kan nu indtaste en tekst på maximalt ',
            linieantal, ' linier.');
    WRITELN('Hver linie er på maximalt ', liniebredde, ' tegn.');
    WRITELN('Indtastningen afsluttes ved at indtaste ''^'' som første og ');
    WRITELN('eneste tegn på en linie');
    WRITELN;
    linie := 0;
    REPEAT
      linie := linie + 1;
      WRITE('Linie', linie : 4, ': ');
      BUFLEN := liniebredde;
      READLN(tekstlinie);
      IF tekstlinie <> '^'
        THEN
          BEGIN
            FOR position := 1 TO LEN(tekstlinie) DO
              tekst(.linie, position.) := COPY(tekstlinie, position, 1);
            FOR i := position + 1 TO liniebredde DO
              tekst(.linie, i.) := ' ';
          END;
    UNTIL (tekstlinie = '^') OR (linie = linieantal);
    IF tekstlinie = '^'
      THEN linie := linie - 1;
    antalvokaler := 0;
    antalkonsonanter := 0;
    antalcifre := 0;
    FOR i := 1 TO linie DO
      FOR j := 1 TO liniebredde DO
        BEGIN
          ch := tekst(.i, j.);
          IF ch IN vokaler
            THEN antalvokaler := antalvokaler + 1;
          IF ch IN konsonanter
            THEN antalkonsonanter := antalkonsonanter + 1;
          IF ch IN cifre
            THEN antalcifre := antalcifre + 1;
        END;
    WRITELN;
    WRITELN('Den indtastede tekst indeholder følgende:');
    WRITELN('Antal vokaler:      ', antalvokaler : 6);
    WRITELN('Antal konsonanter:  ', antalkonsonanter : 6);
    WRITELN('Antal cifre:        ', antalcifre : 6);
    WRITELN;
  END.
«eof»