(*$B- Quadratwurzel erste Version*) program w1; const n = 5; type longint = integer; zahl = array[0..n] of integer; var a,w : zahl; hilf, rest, wurzel, zweia, ziffer : longint; i,wvorkomma,zifftot,k,l : integer; Procedure lieszahl(var a:zahl; var zifftot : integer); begin zifftot :=0; writeln('Radikand ? Nach letzter Ziffer CTRL-Z'); repeat zifftot := zifftot +1; read(a[zifftot]) until eof end; begin for i :=0 to n do a[i] :=0; rest := 0 ; wurzel := 0; lieszahl(a,zifftot); writeln; k := (zifftot+1) mod 2 ; l :=0; wvorkomma := zifftot div 2 + 1-k ; while k < 2*zifftot do begin if k<=zifftot then rest := rest*100+a[k]*10+a[k+1] else rest := rest *100; k :=k+2; zweia := 20*wurzel; if zweia <> 0 then ziffer := rest div zweia else ziffer :=9; hilf :=(zweia+ziffer)*ziffer; while rest < hilf do begin ziffer := ziffer-1; hilf :=(zweia+ziffer)*ziffer; end; rest := rest - hilf; l := l+1; w[l] := ziffer; wurzel := wurzel *10 + ziffer; writeln('Rest,Wurzel =',rest:10, wurzel:10); end; writeln; writeln('Gegebene Zahl'); for i := 1 to zifftot do write(A[i]); writeln; write('Wurzel = '); for i := 1 to l do begin write(w[i]); if i=wvorkomma then write('.'); end; end.