Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.04.2012, 21:31
qpmr qpmr вне форума
Прохожий
 
Регистрация: 12.12.2011
Сообщения: 27
Репутация: 10
По умолчанию Нахождение полинома через рекурсию

Здравствуйте , мне нужно вычислить значение полинома n-ой степени
формула Ai*x^i (i - от 0 до n ) ;
Получилось так , подскажите пожалуйста как исправить ..
Код:
procedure TForm1.Button1Click(Sender: TObject);
 var   x,n:integer;
function fk(n,x:integer;a:array of integer):extended;
begin
 if n=0 then fk:=a[n] else
  fk:=a[n]+ fk(a[n-1]*(round(Power(x,n+1)))) ;// как обойти несоответствие типов при возведении в степень ?

end;
begin
x:=strtoint(edit1.text);
a[n]:=strtoint(stringgrid1.Cells[n-1,0];
  label1.caption:=floattostr(fk(n));   end;
end.

Последний раз редактировалось qpmr, 05.04.2012 в 23:09.
Ответить с цитированием
  #2  
Старый 05.04.2012, 21:50
nixel nixel вне форума
Начинающий
 
Регистрация: 12.12.2011
Адрес: Москва
Сообщения: 150
Версия Delphi: XE2-U4
Репутация: 131
По умолчанию

какое несоответствие типов?
то, что в power отсылаются integer'ы, вместо вещественных?
power спокойно работает с целыми числами (даже с типом byte). только что проверено лично.

а вот функция у Вас вызывается странно. Из тела процедуры Вы ее вызываете с одним параметром, а описана она на трех.

Динамический массив нельзя использовать без задания его длины через SetLength(a, <его_длина>);
Ответить с цитированием
  #3  
Старый 05.04.2012, 22:16
qpmr qpmr вне форума
Прохожий
 
Регистрация: 12.12.2011
Сообщения: 27
Репутация: 10
По умолчанию

Цитата:
Сообщение от nixel
какое несоответствие типов?
то, что в power отсылаются integer'ы, вместо вещественных?
power спокойно работает с целыми числами (даже с типом byte). только что проверено лично.

а вот функция у Вас вызывается странно. Из тела процедуры Вы ее вызываете с одним параметром, а описана она на трех.

Динамический массив нельзя использовать без задания его длины через SetLength(a, <его_длина>);
С массивом понятно . С функцией , вы имели ввиду что условие только для n ?
Ответить с цитированием
  #4  
Старый 05.04.2012, 22:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Имелось в виду то, что функция декларироана с 3-я параметрами:
Код:
  function fk(n,x:integer;a:array of integer):extended;
а вызывается с одним:
Код:
  fk(a[n-1]*(round(Power(x,n+1))));
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 05.04.2012, 22:32
qpmr qpmr вне форума
Прохожий
 
Регистрация: 12.12.2011
Сообщения: 27
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
а вызывается с одним:
Код:
  fk(a[n-1]*(round(Power(x,n+1))));

Почему же с одним , там ведь задействованы 3 параметра ? Должна быть сумма ?
Ответить с цитированием
  #6  
Старый 05.04.2012, 22:36
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Имеется ввиду
Код:
floattostr(fk(n))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025