Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 63
1

Описание функции

13.10.2013, 03:42. Показов 1392. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можно ли так описывать рекурсивную функцию (правильно ли это):

Delphi
1
2
3
4
5
6
7
8
function F(x,n,alph,m:real):real;
  begin
    F:=0;
      if n=1 then
        F:=(x*power(alph, m*x))/(m*ln(alph))-power(alph, m*x)/(m*power(ln(alph), 2))
        else
          F:=(power(x, n)*power(alph, m*x))/(n*ln(alph))-(n*F(x,n-1,alph,m))/(m*ln(alph));
  end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2013, 03:42
Ответы с готовыми решениями:

Описание функции
Доброго времени суток! не могу решить данную задачу на делфи : Описать функцию SumRange(A, B)...

Описание процедуры и функции
Например, есть процедура: procedure text; begin Form1.edit1.Text:=' '; end; Какие есть способы...

Описание функции с использованием массива.
Написал программу по определению среднего роста мужчин из группы, но есть ошибки, например в...

Описание логической функции earlier(t1,t2)
Добрый день! Помогите, пожалуйста, исправить ошибку, связанную с несоответствием типов Time и...

4
47 / 46 / 26
Регистрация: 16.06.2012
Сообщений: 177
13.10.2013, 11:29 2
Выхода из функции нет, зациклится.
0
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 63
13.10.2013, 16:03  [ТС] 3
Цитата Сообщение от enk Посмотреть сообщение
Выхода из функции нет, зациклится.
Я не о том. У меня там дальше код идёт. Я про рекурсивное обращение к ней самой же. Правильно всё?
Конкретно про F(x,n-1,alph,m)
0
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,251
13.10.2013, 17:29 4
Ошибок синтаксиса нет.
0
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 63
13.10.2013, 17:50  [ТС] 5
В общем, я уже несколько недель сижу над этой прогой и не могу понять, что не так.
Если всё верно, ошибок нет и формулы я поэтапно проверял, то почему общий результат она выдает неверный?!

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
unit Unit1;
 
interface
 
uses
  Windows, Messages, math, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Button1: TButton;
    Label6: TLabel;
    Label7: TLabel;
    Edit5: TEdit;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  a,b,s,n,alph,m:real;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
 
function F(x,n,alph,m:real):real;
  begin
    F:=0;
      if n=1 then
        F:=(x*power(alph, m*x))/(m*ln(alph))-power(alph, m*x)/(m*power(ln(alph), 2))
        else
          F:=(power(x, n)*power(alph, m*x))/(n*ln(alph))-(n*F(x,n-1,alph,m))/(m*ln(alph));
  end;
 
begin
  a:=strtofloat(edit1.text);
    b:=strtofloat(edit2.text);
    n:=strtofloat(edit3.text);
    m:=strtofloat(edit4.text);
    alph:=strtofloat(edit5.text);
    s:=0;
    if n<1 then showmessage('n must be >=1')
  else
      if b<a then showmessage('a must be < b')
    else
        if ((alph=1) or (m=0)) then showmessage('OD3')
      else begin
  s:=F(b,n,alph,m)-F(a,n,alph,m);
  label7.Caption:=floattostrF(s,ffgeneral,5,2);
end;
end;
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in ['0'..'9', #8, ',']) then
Key:=#0;
end;
 
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in ['0'..'9', #8, ',']) then
Key:=#0;
end;
 
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in ['0'..'9', #8, ',']) then
Key:=#0;
end;
 
procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in ['0'..'9', #8, ',']) then
Key:=#0;
end;
 
procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in ['0'..'9', #8, #13, ',']) then
Key:=#0;
if (Key = #13) then Button1.Click;
end;
 
end.
0
13.10.2013, 17:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2013, 17:50
Помогаю со студенческими работами здесь

Разработать модуль, содержащий описание процедуры и функции
Разработать модуль, содержащий описание процедуры и функции из таблицы . Подключить разработанный...

описание функции shellExecute WIN API!
Что нужно написать, что-бы при нажатии на кнопку запускалась определённая .ехе программа или...

Привести примитивно-рекурсивное описание функции, используя элемен. функции и операции подстановки примитивной рекурсии
Объясните, пожалуйста, как это решать. Уже часа два разбираюсь, никак не могу понять, как сделать...

Описание функции
Описание функции состоит из?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru