|
DataMuseum.dkPresents historical artifacts from the history of: Jet Computer Jet80 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Jet Computer Jet80 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 1920 (0x780) Types: TextFile Names: »LONGMULT.PAS«
└─⟦092727b26⟧ Bits:30005927 Demoprogrammer til Pascal bog (Jet-80) └─ ⟦this⟧ »LONGMULT.PAS«
PROGRAM longmult; CONST maxlaengde = 12; dobbeltmax = 24; TYPE cifre = 0 .. 9; lillevektor = ARRAY(.1 .. maxlaengde.) OF cifre; storvektor = ARRAY(.1 .. dobbeltmax.) OF cifre; str = STRING(.maxlaengde.); VAR s1, s2 : str; v1, v2 : lillevektor; v, w : storvektor; i, j, k, l, mente, addmente, produkt, sum : INTEGER; BEGIN WRITE(CLRHOM); WRITE('Tast 1. faktor (max ', maxlaengde, ' cifre): '); BUFLEN := maxlaengde; READLN(s1); IF s1 = '' THEN s1 := '0'; WRITE('Tast 2. faktor (max ', maxlaengde, ' cifre): '); BUFLEN := maxlaengde; READLN(s2); IF s2 = '' THEN s2 := '0'; WRITELN; WRITE(s1, ' * ', s2, ' = '); FOR i := LEN(s1) + 1 TO maxlaengde DO s1 := '0' + s1; FOR i := LEN(s2) + 1 TO maxlaengde DO s2 := '0' + s2; FOR i := 1 TO maxlaengde DO v1(.i.) := ORD(s1(.i.)) - ORD('0'); FOR i := 1 TO maxlaengde DO v2(.i.) := ORD(s2(.i.)) - ORD('0'); FOR k := 1 TO dobbeltmax DO v(.k.) := 0; FOR i := maxlaengde DOWNTO 1 DO BEGIN mente := 0; FOR k := 1 TO dobbeltmax DO w(.k.) := 0; k := maxlaengde + 1 + i; FOR j := maxlaengde DOWNTO 1 DO BEGIN k := k - 1; produkt := v1(.i.) * v2(.j.) + mente; w(.k.) := produkt MOD 10; mente := produkt DIV 10; END; addmente := 0; FOR k := dobbeltmax DOWNTO 1 DO BEGIN sum := v(.k.) + w(.k.) + addmente; v(.k.) := sum MOD 10; addmente := sum DIV 10; END; END; k := 1; WHILE (v(.k.) = 0) AND (k < dobbeltmax) DO k := k + 1; FOR l := k TO dobbeltmax DO WRITE(v(.l.)); WRITELN; END. «eof»