__________________ Vorüberlegungen: ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 315 __\ 300 + 10 + 5 * 125 ¯¯/ *125 *125 *125 ||| \|/ 300 __\ 300 + 300 + 300 * 125 ¯¯/ *100 * 20 * 5 Man muß die 1. Ziffer der 1.Zahl mit der 1.Ziffer der 2.Zahl, dann die 1.Ziffer der 1.Zahl mit der 2.Ziffer der 1.Zahl multiplizieren. ____________ Quellcode: ¯¯¯¯¯¯¯¯¯¯¯¯ "NullenEinfuegen" soll n Nullen an eine Liste anhängen. Also aus der Zahl '35' und n=2 z.B. '3500' machen.PROCEDURE multiplizieren( VAR L : Listentyp; {VAR} L1, L2 : Listentyp); FUNCTION EinMulti(Z1, Z2 : INTEGER) : Listentyp; VAR Erg : ListenTyp; BEGIN NeueListe(Erg); ListenAnfang(Erg); NaechsteDate(Erg); Einfuege(Erg, Z1*Z2 DIV 10); NaechsteDate(Erg); Einfuege(Erg, Z1*Z2 MOD 10); EinMulti := Erg; end; VAR n1, n2 : INTEGER; BEGIN ListenAnfang(L1); NaechsteDate(L1); n1 := 0; n2 := 0; NeueListe(L); ListenAnfang(L); WHILE NOT ListenEnde(L1) DO BEGIN ListenAnfang(L2); NaechsteDate(L2); WHILE NOT ListenEnde(L1) DO BEGIN Addieren(L, NullenEinfuegen(EinMulti(leseDate(L1), leseDate(L2), n1+n2)); INC(n2); NaechsteDate(L2) END; n2 := 0; INC(n1) END END;