program gyokvonas; uses Crt, Rutin; const PONTOSSAG=1E-8; var k : integer; a,x0,x1 : real; jel : char; { hatv nyoz st v‚gz“ seg‚dfggv‚ny } function emel(alap : real; kitevo : integer):real; var seged : real; begin seged:=1; while kitevo>0 do if Odd(kitevo) then begin seged:=seged*alap; Dec(kitevo); end else begin alap:=alap*alap; kitevo:=kitevo div 2; end; emel:=seged; end; begin repeat ClrScr; WriteXY(25,1,'K - A D I K G Y ™ K V O N  S '); { a pozitĦv a alap beolvas sa } repeat WriteXY(3,3,'Add meg az alapot : '); RealRead(a); until a>0; { a k gy”kkitev“ nem lehet 2-n‚l kisebb } repeat WriteXY(6,5,'Add meg a gy”kkitev“t : '); IntRead(k); until k>1; { kiĦrjuk az kûa = } GotoXY(10,7); Write(k:2,' ____________'); GotoXY(10,8); Write(' û',a:13:10,' = '); x0:=1; x1:=a; { ism‚tlnk mĦg el nem ‚rjk a kiv nt pontoss got } while Abs(x0-x1)>PONTOSSAG do begin x0:=x1; x1:=((k-1)*x0+a/emel(x0,k-1))/k; end; { az k-adik gy”k kiĦr sa } Write(x1:2:10); { v rakoz s } WriteXY(40,25,'ESC kil‚p‚s, m s £jraindĦt s');jel:=ReadKey; until jel=#27; end.