program partialsumme; uses crt; var a,b,p:longint; function hoch(n,p:integer):longint; begin if p=0 then hoch:=1 else hoch:=n*hoch(n,p-1); end; function binomial(n,k:integer):integer; begin if k=0 then binomial:=1 else binomial:=n*binomial(n-1,k-1) div k; end; function difffolge(p,r,s:integer):integer; begin if r=0 then difffolge:=hoch(s,p) else difffolge:=difffolge(p,r-1,s+1)-difffolge(p,r-1,s); end; function anzstellen(a:integer):integer; begin if a<10 then anzstellen:=1 else anzstellen:=1+anzstellen(a div 10); end; begin clrscr; writeln('Dieses Programm erstellt die Summenformel von Partialsummen der Form'); writeln('S = 1^p + 2^p + ... + n^p (p = 0, 1, 2, 3, 4, 5, 6, 7)'); write('Fr welches m soll die Summenformel gebildet werden? - '); readln(p); clrscr; writeln('S = 1^',p,' + 2^',p,' + ... + n^',p,' ='); write(' '); for a:=0 to p-1 do write(difffolge(p,a,1),'³n³ + '); writeln(difffolge(p,p,1),'³n³'); write(' '); for a:=1 to p+1 do begin for b:=1 to anzstellen(difffolge(p,a-1,1)) do write(' '); write('³',a,'³ '); end; end.