DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC700 "Piccolo"

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

See our Wiki for more about RegneCentralen RC700 "Piccolo"

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦71077f109⟧ TextFile

    Length: 2816 (0xb00)
    Types: TextFile
    Names: »FAKTURA.PAS«

Derivation

└─⟦3702e543b⟧ Bits:30003064 Demoprogrammer A-J til Pascal bog
    └─ ⟦this⟧ »FAKTURA.PAS« 

TextFile

PROGRAM faktura;

  CONST
    max = 200;
    momspct = 22;
  
  TYPE
    str30 = STRING(.30.);
    tabint = ARRAY(.1 .. max.) OF INTEGER;
    tabreal = ARRAY(.1 .. max.) OF REAL;
    tabstr = ARRAY(.1 .. max.) OF str30;
  
  VAR
    i, antal_varer : INTEGER;
    varenummer, vareantal : tabint;
    varenavn : tabstr;
    varepris : tabreal;
    kundenavn : str30;
    sum, moms : REAL;
  
  PROCEDURE ind(VAR kunde : str30; VAR postantal : INTEGER; 
                VAR nummer : tabint; VAR navn : tabstr; 
                VAR antal : tabint; VAR pris : tabreal);
    VAR
      i, nr : INTEGER;
    
    BEGIN
      WRITE(CLRHOM);
      i := 0;
      WRITE('Kunde: '); READLN(kunde);
      REPEAT
        i := i + 1;
        WRITELN;
        WRITE('Tast varens nummer (0 stopper): '); READLN(nr);
        IF nr <> 0
          THEN
            BEGIN
              nummer(.i.) := nr;
              WRITE('Tast varens navn:   '); READLN(navn(.i.));
              WRITE('Tast antal enheder: '); READLN(antal(.i.));
              WRITE('Tast enhedspris:    '); READLN(pris(.i.));
            END;
      UNTIL (nr = 0) OR (i = max);
      IF nr = 0
        THEN postantal := i - 1
        ELSE postantal := max;
    END;
    
  PROCEDURE skriv(kunde : str30; postantal : INTEGER; VAR nummer : tabint; 
                  VAR navn : tabstr; VAR antal : tabint; VAR pris : tabreal; 
                  total, moms : REAL);
    
    VAR
      prikker : str30;
      i : INTEGER;
      
    BEGIN
      WRITE(CLRHOM);
      prikker := '.............................';
      WRITELN('A.B.Carlsen Aps');
      WRITELN('Søgade 400');
      WRITELN('0000 Vestby');
      WRITELN;
      WRITELN('KUNDE: ', kunde);
      WRITELN;
      WRITELN('        NR     VARE                          ANTAL      PRIS',
              '     BELØB');
      WRITELN;
      FOR i := 1 TO postantal DO
        BEGIN
          navn(.i.) := navn(.i.) + ' ' + prikker;
          WRITELN(nummer(.i.) : 10, '     ', navn(.i.), antal(.i.) : 5, 
                  pris(.i.) : 10 : 2, antal(.i.) * pris(.i.) : 10 : 2);
        END;
      WRITELN(' ' : 45, '-------------------------');
      WRITELN(' ' : 45, 'TOTAL', total : 20 : 2);
      WRITELN(' ' : 45, 'MOMS ', moms : 20 : 2);
      WRITELN(' ' : 45, '-------------------------');
      WRITELN(' ' : 45,  'IALT ', total + moms : 20 : 2);
    END;
    
  BEGIN
    ind(kundenavn, antal_varer, varenummer, varenavn, vareantal, varepris);
    sum := 0;
    FOR i := 1 TO antal_varer DO
      sum := sum + vareantal(.i.) * varepris(.i.);
    moms := sum * momspct / 100;
    skriv(kundenavn, antal_varer, varenummer, varenavn, vareantal, varepris,
          sum, moms);
  END.
«eof»