2013-06-25 2 views
2

Как упражнение, в которое я попал, я хотел спроектировать калькулятор в Delphi. Таким образом, далеко сумма, субтрассы, умножение и разделение в значительной степени работают.Функция Sqrt в Delphi

Единственная функция, с которой у меня есть проблема с ее квадратным корнем.

Переменные вытянуты, и я очень много просто конвертировать из строки (я использую два EditBox) для Float

var 
    Form1: TForm1; 
    a, b, r: Extended; 

procedure TForm1.SqrtClick(Sender: TObject); 
begin 
    a := StrToFloat(Edit1.Text); 
    r := Sqrt(a); 
    ShowMessage(FloatToStr(r)); 
end; 

Delphi его возвращение мне

[Ошибка] calc.dpr (72): Отсутствует оператор или точка с запятой.

+0

@Micha Wiednmann Только что сделал, и все та же ошибка. Линия 72 равна R: = Sqrt (a); –

+0

@MichaWiedenmann: Нет, нет никакой необходимости в запятой. Точка с запятой не используется для * завершения * операторов, а для * разделить * два утверждения. Следовательно, вам не нужна точка с запятой после последней в блоке. –

+0

@bummi: 'SqrtClick'? –

ответ

14

Проблема на самом деле не видна в вашем фрагменте выше. Но так как я получил психические силы, я все еще могу сказать, что здесь происходит.

У вас есть кнопка под названием sqrt. Следовательно, когда вы пишете sqrt в коде, это относится к кнопке, а не к функции RTL.

Решение: Напишите System.Sqrt вместо Sqrt (= Self.Sqrt, кнопку) или переименуйте кнопку.

+0

Отлично! Это сработало как шарм! –

+3

+1 хороший улов .. – bummi

+0

+1 для глаз орла: o) –