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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2011, 21:54   #1
Homutova_Julia
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 18
Восклицание Не знаю как правильно сделать вызов функции

var k:integer;
Begin
N:=k-1;
if N=0 then factor1:=1 else factor1:=N*factor1(N-1);
end;

Function factor2(M:integer):integer;//Факториал в знаменателе
var k:integer;
Begin
M:=k-2;
if M=0 then factor2:=1 else factor2:=M*factor2(M-1);
end;

Function F(k:integer):real;//Сама функкция F(k)
var factor1:integer; factor2:integer;
Begin
If k= 0 then
Result:= 0
Else
Begin
If k=1 then result:=2;
If k>1 then
begin
Result:=F(factor1)/F(factor2);
end;
End;
End;

procedure TForm1.Button1Click(Sender: TObject);
var
k, N,M:integer;
Result:Real;
begin

k := StrToInt(Edit1.Text);
N:=k-1;
M:=k-2;
factor1(N);
factor2(M);
Result;//ОШИБКА ([Error] Unit1.pas(74): Statement expected, but expression of type 'Real' found)

//Вывод результата
label3.caption:='Çíà÷åíèå ôóíêöèè ïðè k '+Edit1.Text
+ ' ðàâåíî '+IntToFloat(Result);

end;
end.
С уважением, Юлия

Последний раз редактировалось Homutova_Julia; 07.06.2011 в 21:58.
Homutova_Julia вне форума Ответить с цитированием
Старый 07.06.2011, 22:04   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Result;//ОШИБКА
А как это связано с вызовом функции F? Зачем вам переменная Result типа real в этой процедуре?

И используйте тег [CODE] (значок #) для сохранения форматирования и подсветки кода в сообщении.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 07.06.2011, 22:12   #3
Homutova_Julia
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 18
По умолчанию

Я не знаю сама. Знала бы не просила бы помочь
С уважением, Юлия
Homutova_Julia вне форума Ответить с цитированием
Старый 07.06.2011, 22:13   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так а что вы сделать-то хотите?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 07.06.2011, 22:17   #5
Homutova_Julia
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 18
По умолчанию

У меня есть функция Ф(к)=(к-1)!/(к-2)!, где к>1, но при этом Ф(0)=0, Ф(1)=2
Вот мне надо вывести результат. И я не знаю как.
С уважением, Юлия
Homutova_Julia вне форума Ответить с цитированием
Старый 07.06.2011, 22:38   #6
Homutova_Julia
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 18
Восклицание

Все вызов функции я сделала. Если ввожу 0 или 1, значение получается верное, но если ввожу, например, 2 возникает ошибка
С уважением, Юлия
Homutova_Julia вне форума Ответить с цитированием
Старый 07.06.2011, 22:59   #7
alexan0308
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 46
По умолчанию

Не надо делать две функции для факториала. Оставь одну.
Код:
Function factor(N:integer):integer;
Begin
  if N=0 then factor:=1 else factor:=N*factor(N-1);
end;


Function F(k:integer):real;//Сама функкция F(k)
Begin
  If k=0 then result:=0;
  If k=1 then result:=2;
  If k>1 then result:=factor(k-1)/factor(k-2);
end;
alexan0308 вне форума Ответить с цитированием
Старый 07.06.2011, 23:11   #8
Homutova_Julia
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 18
По умолчанию

Код:
Function F(k:integer):real;//Сама функкция F(k)
Теперь в этом месте ошибка [Error] Unit1.pas(48): Declaration of 'F' differs from previous declaration
С уважением, Юлия
Homutova_Julia вне форума Ответить с цитированием
Старый 07.06.2011, 23:17   #9
alexan0308
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 46
По умолчанию

Свои функции удалила? Приведи заново код того что получилось

Последний раз редактировалось alexan0308; 07.06.2011 в 23:19.
alexan0308 вне форума Ответить с цитированием
Старый 07.06.2011, 23:19   #10
Homutova_Julia
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 18
По умолчанию

Да, конечно)
С уважением, Юлия
Homutova_Julia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как такое сделать (извените. но даже не знаю как это называется) Van'Denis HTML и CSS 3 30.08.2009 10:46
Сдавать скоро а как сделать не знаю eXeS Паскаль, Turbo Pascal, PascalABC.NET 9 07.05.2009 13:43
Не знаю как сделать. prikolist Microsoft Office Excel 4 28.11.2008 23:13
Не знаю как это сделать:) LSDkltn БД в Delphi 2 09.11.2007 13:39