|
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 - download
Length: 2176 (0x880) Types: TextFile Names: »LONGADD.PAS«
└─⟦09235ab48⟧ Bits:30003065 Demoprogrammer K-Z til Pascal bog └─ ⟦this⟧ »LONGADD.PAS« └─⟦092727b26⟧ Bits:30005927 Demoprogrammer til Pascal bog (Jet-80) └─ ⟦this⟧ »LONGADD.PAS« └─⟦f983c2ef3⟧ Bits:30004681 Pascal opgaver (Butler) └─ ⟦this⟧ »LONGADD.PAS«
PROGRAM longadd; CONST maxlaengde = 12; TYPE cifre = 0 .. 9; vektor = ARRAY(.0 .. maxlaengde.) OF cifre; maxstreng = STRING(.maxlaengde.); VAR streng1, streng2 : maxstreng; v1, v2, v3 : vektor; i, j, sum, mente : INTEGER; BEGIN WRITE(CHR(12), 'Tast 1. tal (max ',maxlaengde, ' cifre): '); BUFLEN := maxlaengde; READLN(streng1); WRITE('Tast 2. tal (max ',maxlaengde, ' cifre): '); BUFLEN := maxlaengde; READLN(streng2); WRITELN; WRITELN(streng1:maxlaengde +10); FOR i := 1 TO maxlaengde + 7 - LEN(streng2) DO WRITE(' '); WRITELN(' + ', streng2); WRITE(' '); FOR i := 1 TO maxlaengde DO WRITE('-'); WRITELN; FOR i := LEN(streng1) + 1 TO maxlaengde DO (* Fyld op med 0 *) streng1 := '0' + streng1; FOR i := LEN(streng2) + 1 TO maxlaengde DO streng2 := '0' + streng2; FOR i := 1 TO maxlaengde DO (* Tallene overføres til v1 og v2 *) v1(.i.) := ORD(streng1(.i.)) - ORD('0'); FOR i := 1 TO maxlaengde DO v2(.i.) := ORD(streng2(.i.)) - ORD('0'); mente := 0; FOR i := maxlaengde DOWNTO 1 DO (* Tallene adderes *) BEGIN sum := v1(.i.) + v2(.i.) + mente; v3(.i.) := sum MOD 10; mente := sum DIV 10; END; v3(.0.) := mente; FOR i := 1 TO 9 DO WRITE(' '); j := 0; WHILE (v3(.j.) = 0) AND (j < maxlaengde) DO BEGIN WRITE(' '); j := j + 1; END; FOR i := j TO maxlaengde DO WRITE(v3(.i.)); WRITELN; END. «eof»