Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Delphi] Nie działająca funkcja sqrt??

Calavior 03 Maj 2010 17:57 1705 7
  • #1 03 Maj 2010 17:57
    Calavior
    Poziom 2  

    Witam,

    Muszę napisać kalkulator w Delphi i mam jeden problem.
    Gdy chcę zrobić pierwiastkowanie za pomocą funkcji sqrt dostaję błąd "Missing operator or semicolon". Gdy usunę "t" z "sqrt" (czyli zamienię na potęgowanie) program wykonuje się. O co może chodzić??

    Oto kod procedury:

    Code:
    procedure TCalcForm.sqrtClick(Sender: TObject);
    
    var
    liczba:real;
    napis:string;
    begin
    napis:=editbox.Text;
    liczba:=StrToFloat(napis);
    editbox.Text:=FloatToStr(sqrt(liczba));
    end;

    0 7
  • #2 03 Maj 2010 19:45
    arnoldziq
    Moderator Programowanie

    SQR - to podniesienie do potęgi 2.
    SQRT - to pierwiastek kwadratowy.

    Taki kod działa bez żadnych problemów.

    Code:

    procedure TForm1.Button1Click(Sender: TObject);
    var
     liczba:real;
     wynik1,wynik2 : real;
     napis:string;
    begin
    napis:=editbox.Text;
    liczba:=StrToFloat(napis);
    wynik1:=sqrt(liczba);
    wynik2:=sqr(liczba);
    editbox.Text:=FloatToStr(wynik2);
    end;

    Nie sądzę, że twój problem jest związany z jedną z tych funkcji. Raczej jest to coś innego.

    0
  • Pomocny post
    #3 03 Maj 2010 21:22
    dj_west
    Poziom 16  

    Witam!

    Po nazwie procedury:

    Code:
    procedure TCalcForm.sqrtClick(Sender: TObject);

    wnioskuję, że posiadasz przycisk o nazwie Sqrt, i nieświadomie próbujesz odwołać się do niego poprzez takie wywołanie funkcji:

    Code:
    editbox.Text:=FloatToStr(sqrt(liczba));


    Rozwiązanie: zmień nazwę przycisku :)
    Pozdrawiam serdecznie! :)

    0
  • #4 03 Maj 2010 21:23
    utak3r
    Poziom 25  

    Musisz dołączyć bibliotekę, ale nie powiem Ci teraz jaką... bodaj Math.

    0
  • #5 03 Maj 2010 21:28
    dj_west
    Poziom 16  

    Rozumiem, kolego utak3r, że próbujesz się zbijać ze mnie? :)

    Sprawdź sam :)

    EDIT:
    Widzę, że sprawdziłeś już :)

    0
  • #6 03 Maj 2010 21:29
    utak3r
    Poziom 25  

    Tak dokładnie :) I przepraszam.

    0
  • #7 03 Maj 2010 21:38
    dj_west
    Poziom 16  

    W porządalu, ja się nie gniewam :) Ważne żeby mieć dystans do siebie i żeby z każdej sytuacji wynieść jakieś wnioski ;)

    A tu jest taki: nigdy nie nazywaj komponentów jak funkcji!

    0
  • #8 04 Maj 2010 09:34
    Calavior
    Poziom 2  

    Wielkie dzięki za pomoc dj_west ;)
    Faktycznie chodziło o to, że nazwałem przycisk tak samo jak
    funkcje matematyczną :P

    Jeszcze raz dzięki

    0