|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 2816 (0xb00)
Types: TextFile
Names: »FAKTURA.PAS«
└─⟦08ea08c61⟧ Bits:30003924 PolyPascal programmer
└─⟦this⟧ »FAKTURA.PAS«
└─⟦092727b26⟧ Bits:30005927 Demoprogrammer til Pascal bog (Jet-80)
└─⟦this⟧ »FAKTURA.PAS«
└─⟦3702e543b⟧ Bits:30003064 Demoprogrammer A-J til Pascal bog
└─⟦this⟧ »FAKTURA.PAS«
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»