Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2014, 15:58   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
в том и дело что в данном случаи подобрать не получается
программу на вашем планшете писали идиоты, не знающие математики.
но, если Вам нужно получать такие же бессмысленные ответы, то это просто

берите модуль числа (функция ABS()) вычисляйте через Power степень и присваивайте результату знак исходного числа:
Код:
if x<0 
  then Result := -1.0 * Power(abs(x), y)  
  else Result := Power(abs(x), y);
например:
Код:
function BadPower(x,y:Extended) : extended;
begin
  if x<0
    then Result := -1.0 * Power(abs(x), y)
    else Result := Power(abs(x), y);
end;

var
  x,y:Extended;
begin
  x := -0.3;
  y := 0.5;
  WriteLn(' power = ', BadPower(x,y):1:8);
  Readln
end.

Последний раз редактировалось Serge_Bliznykov; 26.11.2014 в 16:02.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.11.2014, 13:33   #12
Вовкин
Пользователь
 
Регистрация: 26.11.2014
Сообщений: 15
Хорошо Итог

На сколько я понял:
1. Проблему можно решить только с помощью комплексных чисел.
2. Готового решения или алгоритма нет.
3. Мой калькулятор считает скорее всего модуль числа и затем ставит знак основания.
что вроде
procedure TForm1.Button2Click(Sender: TObject);
var R,X,n:Double;
A:ShortInt;
begin
X:=-0.3;
n:=-0.5;
if X<0 then
begin
A:=-1;
X:=Abs(X);
end
else
A:=1;
R:=A*Power(X,n);
ShowMessage(FormatFloat('0.00000',R ));
end;

или этого
function BadPower(x,y:Extended) : extended;
begin
if x<0
then Result := -1.0 * Power(abs(x), y)
else Result := Power(abs(x), y);
end;

var
x,y:Extended;
begin
x := -0.3;
y := 0.5;
WriteLn(' power = ', BadPower(x,y):1:8);
Readln
end.

Но с точки зрения математики это не правильно.
Как то так! Всем спасибо за помощь. Почитаю про комплексные числа. Если кто надет готовое решение напишете!
Вовкин вне форума Ответить с цитированием
Старый 27.11.2014, 13:36   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вот тот юнит VarCmplx, который упоминался выше и поможет сделать готовое решение в комплексных числах
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как возвести число в степень 2^3 yura_zb Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 19.10.2012 08:49
возвести число x в степень y Imbire Паскаль, Turbo Pascal, PascalABC.NET 6 31.10.2011 09:40
Как возвести число в степень? Wintrymoon Паскаль, Turbo Pascal, PascalABC.NET 36 09.05.2011 15:11
Отрицательное число в дробную степень n4ela Общие вопросы C/C++ 7 31.10.2010 00:02
Возвести в степень b некоторое число a Михаил70 Общие вопросы Delphi 3 09.09.2009 16:10