[Pascal] x do potęgi y

0

Nie znam dokładnie działanie funkcji exp mógłby mi ktos to opisać. Przyda mi sie do policzenia zadania jak w temacie
F1 mi nie wystarcza bo nie ponaszemu przykłady są ale nie takie jak trzeba

Pozdrowienia [cya]
Waldi Koronowo
[email protected]
Zdarza sie że pisze e przed i nie zwracajcie uwagi na to:-D

0

Na lekcji matematyki był wzór, że kiedy potęgujemy podstawę potęgi (x)
mnozymy y razy np.
x do trzeciej =xxx;
x do kwadratu=x*x itd.
Możesz tak to zrobić (np. pętlą for ).

--
S&M

0

Zobacz, czy masz funkcję power() (moduł math) :)

--

Delphi 6

Pozdrówka

0

Zobacz, czy masz funkcję power() (moduł math) :)

Pozdrówka

Zrobiłem to tak
program potegax;
uses crt;
var liczba,wykladnik:real;
function fpot(x:real;y:real):real;{deklaracja funkcji}
begin
if x>0 then fpot:=exp(y*ln(x)); {dla x>0 liczy pot©ge}
if x=0 then fpot:=0; {dla x=0 dowolna pot©ga =0}
if (x

0

BOŻE BRAWO ZA KOD :)

ale nie lepiej

finction policz(liczba, iledopotegi : integer) : integer;
var
i:integer;
begin
for i:=1 to iledopotegi do
liczba := liczba * liczba;
result := liczba;
end;

jakby coś źle to sorry może być 0 zamiast 1 albo to nie działa w TP 7 :)

0

BOŻE BRAWO ZA KOD :)

ale nie lepiej

finction policz(liczba, iledopotegi : integer) : integer;
var
i:integer;
begin
for i:=1 to iledopotegi do
liczba := liczba * liczba;
result := liczba;
end;

jakby coś źle to sorry może być 0 zamiast 1 albo to nie działa w TP 7 :)

Przykro mi, ale to jest dobre jednynie do wykładników naturalnych i dodatnich.
Oto w jaki sposób radzi sobie z tym Delphi:

function Power(const Base, Exponent: Extended): Extended;
begin
if Exponent = 0.0 then
Result := 1.0 { n0 = 1 }
else if (Base = 0.0) and (Exponent > 0.0) then
Result := 0.0 { 0
n = 0, n > 0 }
else if (Frac(Exponent) = 0.0) and (Abs(Exponent)

0

finction policz(liczba, iledopotegi : integer) : integer;
var
i:integer;
begin
for i:=1 to iledopotegi do
liczba := liczba * liczba;
result := liczba;
end;

A co, jak dasz wykładnik 0? Wtedy wyjdzie zawsze 1 :) Kiedys pisałem taką funkcję w AS, to było coś w rodzaju:

var
podstawa, wygladnik, wynik, f:integer;

if wykladnik=0 then
wynik:=1
else
begin
wynik:=podstawa;
while f < wykladnik do
wynik:=wynik*podstawa;
end;

0

BOŻE BRAWO ZA KOD :)

ale nie lepiej

finction policz(liczba, iledopotegi : integer) : integer;
var
i:integer;
begin
for i:=1 to iledopotegi do
liczba := liczba * liczba;
result := liczba;
end;

Program miał wykorzystywać funkcje exp i ln troche nasiedziałem nad kartką aby wymóżdżyć exp(y*ln(x)) .
BRAWO DLA DRYOBATESA ale miało to być w pascalu, przyszedł do mei kumpel i miał takie zadanie domowe. :-)
I raczej nie zgodzę się że jest to dla naturalnych wydaje sie rze wszystkie z zakresu real policzy, no chyba że wynik bedzie przekraczał zakres. Pod warunkiem pewnej zmiany

if (x

1 użytkowników online, w tym zalogowanych: 0, gości: 1