23.12.2014, 01:25 | #1 (permalink) |
Новичок
Регистрация: 23.12.2014
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите написать программу. Delphi
Вот мой код: function st (x,n: real): extended; begin if (n=0) then x:=1 else if (n<0) then x:= 1/Power(x,ABS(n)) else if (n>0) then x:= x*( Power(x,n-1)); end; procedure TForm1.Button1Click(Sender: TObject); var F,a,b:extended; begin a:=StrToFloat(edit1.text); b:=StrToFloat(edit2.text); F:=st(a,b) ; showmessage(Результат = ' + FloatToStr(F)); end; end. При вычисление просто возникает ошибка. |
23.12.2014, 01:25 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Посмотрите обсуждаемые темы, пока вам дают ответы Помогите пожалуйста написать Программу в Delphi Помогите написать программу на Delphi |
23.12.2014, 03:32 | #2 (permalink) |
Member
Регистрация: 16.03.2011
Адрес: Севастополь
Сообщений: 679
Сказал(а) спасибо: 97
Поблагодарили 129 раз(а) в 9 сообщениях
Репутация: 22123
|
function st (x,n: real): extended;
begin if (n=0) then result:=1; if (n<0) then result:= 1/Power(x,ABS(n)); if (n>0) then result:= x*( Power(x,n-1)); end; Последний раз редактировалось ALS; 23.12.2014 в 03:39 |
23.12.2014, 10:39 | #3 (permalink) | ||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Цитата:
1. Где вы там видите рекурсию? Я лично не вижу таковой в упор. Напомню, что рекурсивной называется функция, содержащая в своём теле вызов самой себя. 2. Даже если "отбросить" требование о том, что функция должна быть рекурсивной, то и в этом случае - чушь. 3. Прежде всего, речь идет о возведении в целую степень. Почему? Да потому, что иначе задачу решает стандартная функция Power, и нечего огород городить. А значит, заголовок должен быть таким: Код:
function st (x: real; n:Integer): extended; 5. Итогом описания любой Паскалевской либо Дельфийской функции должно быть присвоение переменной, идентификатор которой совпадает с именем функции, некоего значения. Где это у вас - и у одного, и у другого? В общем - не-пой-дет!!! А как правильно, спросите вы? А так: Код:
function St(x:real; n:Integer): extended; begin if (n=0) then St:=1 else if (n<0) then St:=(1/x)*St(x,n+1) else St:=x*St(x,n-1); end; |
||
23.12.2014, 12:44 | #4 (permalink) |
Member
Регистрация: 16.03.2011
Адрес: Севастополь
Сообщений: 679
Сказал(а) спасибо: 97
Поблагодарили 129 раз(а) в 9 сообщениях
Репутация: 22123
|
А, стесняюсь спросить, вы каждый раз бросаетесь вот так анализировать коды и задания студентов и выкладывать им готовые решения?
Вопрос был - вылетает с ошибкой. Эта ошибка устранена в моем куске кода. А вот разбираться с чужими функциями/идентификаторами и прочим - это, наверное, у вас времени навалом. Поэтому не критикуйте сильно. Потому что мне-то на эту критику пофигу, а вопрошавшиЕ, как показывает практика, и на "спасибо" не всегда расщедрятся. |
23.12.2014, 12:56 | #5 (permalink) | ||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Просто я, прежде чем выложить что-либо на форум, обязательно тестирую и отлаживаю. К чему и других призываю. Цитата:
|
||
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
23.12.2014, 23:48 | #6 (permalink) |
Новичок
Регистрация: 23.12.2014
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Премного благодарен)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|