pascal – gyökvonás

Kezdőlap Fórumok Programozás pascal – gyökvonás

3 bejegyzés megtekintése - 1-3 / 3
  • Szerző
    Bejegyzés
  • #1991656
    razoli
    Felhasználó

      Azt hiszem megvan a megoldás:
      hatványozás

      #1991657
      begyu
      Felhasználó

        Valamikor *akodtam vele, probald meg ezt is:

        Code:
        function power(num,exponent:real; var error:boolean):real;
        function psub:real;
        var i:integer;
            x:real;
        begin
          x:=num;
          if (exponent=int(exponent)) and (trunc(exponent) in [1..100])
          then begin
            for i:=1 to trunc(exponent)-1 do x:=x*num;
            psub:=x end
          else psub:=exp(exponent*ln(num))
        end;
        begin
         power:=0;
         error:=false;
         if exponent=0 then if num=0 then error:=true else power:=1
         else if num=0 then if exponent>0 then power:=0
                            else error:=true
              else if num>0 then if abs(exponent*ln(num))>88 then error:=true
                                 else power:=psub
                   else if int(exponent)=exponent then
                             if exponent<0 then
                                power:=1/power(num,abs(exponent),error)
                             else if odd(trunc(exponent)) then
                                     power:=-power(abs(num),exponent,error)
                                  else power:=power(abs(num),exponent,error)
                        else error:=true
        end; {power}

        function root(exponent,num:real; var error:boolean):real;
        begin
         root:=0;
         if num<0 then error:=true
         else if exponent=0 then error:=true
              else root:=power(num,(1/exponent),error);
        end;

        ez kikeruli a hibalehetosegeket is.

        #1877585
        csaba
        Felhasználó

          Sziasztok!

          Kaptam egy beadandó feladatot, melynek lényege, hogy írjni kell egy Pascal programot (Turbo Pascal 7.0), amely kirajzolja a Cassinian görbét. A köregyenletbõl indulok ki. A sugarat a megadott módon kell kiszámolni. A gond csak az, hogy itt r^n van megadva, ezért n-edik gyököt kéne vonni, hogy meglegyen a sugár. A Pascal ugye nem tud hatványozni sem gyököt vonni, kizárólag négyzetre emel és négyzetgyököt von.

          Oda jutottam, hogy gyököt vonni lehet logaritmussal is.
          Mégpedig:
          N_edik_gyök(A)=X
          A^(1/N)=X
          (1/N)*ln(A)=ln(X)
          ln(A)/N=ln(X)

          X=e^(ln(A)/N)

          Ez rendben is volna, de: hatványozni csak egész hatványkitevõvel tudok, ha írok rá egy ciklust, és itt bizony a kitevõ az ln(A)/N, ami valós…
          Valakinek van-e ötlete, hogy mit kezdhetnék ezzel?
          Tudok valahogyan valós hatványkitevõvel számolni? Vagy van valami egyszerû módszer amivel meg lehet oldani?

          Köszönöm

        3 bejegyzés megtekintése - 1-3 / 3
        • Be kell jelentkezni a hozzászóláshoz.