0 / 0 / 0
Регистрация: 15.05.2019
Сообщений: 40
1

правильно ли я записать эту формулу в программе?

17.05.2019, 19:05. Показов 512. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1.Text:='16';
Edit1.Text:='0,1';
Edit2.Text:='1,0';
Memo1.Clear;
Memo1.Lines.Add('Ëàáîðàòîðíàÿ ðàáîòà ¹3 - Öèêëè÷åñêèé àëãîðèòì');
end;
procedure TForm1.Button1Click(Sender: TObject);
var xn,xk,x,h,s,y,al,fk,del:extended;
    n,k,i,f:integer;
begin
n:=StrToInt(SpinEdit1.Text);
xn:=StrToFloat(Edit1.Text);
xk:=StrToFloat(Edit2.Text);
if CheckBox1.Checked then
Memo1.Lines.Add('Èñõîäíûå äàííûå: n='+IntToStr(n)+
                ' xn='+FloatToStrF(xn,ffFixed,6,1)+
                ' xk='+FloatToStrF(xk,ffFixed,6,1));
h:=(xk-xn)/10;
x:=xn;
s:=0;
fk:=1;
repeat
for k:=1 to n do
begin
fk:=3*k+1;
for i:=1 to f do
begin
fk:=fk*i;
end;
s:=s+exp(2*i*ln(x))/fk;;
fk:=1;
end;
 y:=sin(x);
 {al:=Abs(s-y);
 del:=Abs(s-y)/Abs(y)*100;}
 if CheckBox2.Checked then
  if CheckBox3.Checked then
   begin
    al:=Abs(s-y);//àáñîëþòíàÿ ïîãðåøíîñòü
    del:=Abs(s-y)/Abs(y)*100;//îòíîñèòåëüíàÿ ïîãðåøíîñòü }
    Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
               '   S='+FloatToStrF(s,ffFixed,6,4)+
               '   Y='+FloatToStrF(y,ffFixed,6,4)+
               '   A='+FloatToStrF(al,ffFixed,6,4)+
               '   D='+FloatToStrF(del,ffFixed,6,4)+'%');
  end
   else
    begin
     al:=Abs(s-y);
     Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
               ' S='+FloatToStrF(s,ffFixed,6,4)+
               ' Y='+FloatToStrF(y,ffFixed,6,4)+
               ' A='+FloatToStrF(al,ffFixed,6,4));
 
    end
   else if CheckBox3.Checked then
    begin
     del:=Abs(s-y)/Abs(y)*100;
     Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
               ' S='+FloatToStrF(s,ffFixed,6,4)+
               ' Y='+FloatToStrF(y,ffFixed,6,4)+
               ' D='+FloatToStrF(del,ffFixed,6,4)+'%');
    end
   else
     Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
               ' S='+FloatToStrF(s,ffFixed,6,4)+
               ' Y='+FloatToStrF(y,ffFixed,6,4)); 
  x:=x+h;
 until x>xk;
end;
 
 
 
end.

Вот формула
Миниатюры
правильно ли я записать эту формулу в программе?  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2019, 19:05
Ответы с готовыми решениями:

Как правильно записать формулу
Как в Делфи правильно записать эту формулу? s:= x- x3/3+...+(-1)n * x2n+1/2n+1

Как правильно записать формулу подскажите,пожалуйста!
s(x) sm:=0; t:=1; for k:=1 to n do begin t:=t*ln(3)*x/k; sm:=sm+t;//Вычисляем сумму s(x)...

Как правильно записать формулу для нахождения площади многоугольника?
Подскажите пожалуйста как правильно в Delphi записать формулу для нахождения площади многоугольника?

Как написать эту формулу в delphi 10^y-x^y+x^n
как написать эту формулу в delphi 10^y-x^y+x^n если вид формы такой

11
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
17.05.2019, 19:33 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function sn(x,e:real):real;
var t,s:real;
    n:integer;
begin
n:=0;
t:=x;
s:=t;
while abs(t)>e do
 begin
  n:=n+1;
  t:=-t*x*x/(2*n)/(2*n+1);
  s:=s+t;
 end;
sn:=s;
end;
Проверка sin(x);
0
0 / 0 / 0
Регистрация: 15.05.2019
Сообщений: 40
17.05.2019, 19:43  [ТС] 3
а можно без функции.а именно под моё?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
17.05.2019, 20:04 4
Под свое пишите сами, здесь все есть, а разбираться в Ваших каракулях нет желания.
0
0 / 0 / 0
Регистрация: 15.05.2019
Сообщений: 40
17.05.2019, 20:34  [ТС] 5
Почему же каракули,я делал по образцу только формула была неправильна
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
17.05.2019, 21:55 6
Цитата Сообщение от MOLuffy Посмотреть сообщение
Почему же каракули
Потому
Цитата Сообщение от MOLuffy Посмотреть сообщение
Memo1.Lines.Add('Г‹Г*áîðГ*òîðГ*Г*Гї Г°Г*áîòГ* В№3 - Öèêëè÷åñêèé Г*ëãîðèòì');
При копировании русского текста нужно переключать клаву.
0
0 / 0 / 0
Регистрация: 15.05.2019
Сообщений: 40
17.05.2019, 22:04  [ТС] 7
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
105
106
107
108
109
110
111
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids,Math, Spin;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    SpinEdit1: TSpinEdit;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1.Text:='16';
Edit1.Text:='0,1';
Edit2.Text:='1,0';
Memo1.Clear;
Memo1.Lines.Add('Лабораторная работа №3 - Циклический алгоритм');
end;
procedure TForm1.Button1Click(Sender: TObject);
var xn,xk,x,h,s,y,al,fk,del:extended;
    n,k,i,f:integer;
begin
n:=StrToInt(SpinEdit1.Text);
xn:=StrToFloat(Edit1.Text);
xk:=StrToFloat(Edit2.Text);
if CheckBox1.Checked then
Memo1.Lines.Add('Исходные данные: n='+IntToStr(n)+
                ' xn='+FloatToStrF(xn,ffFixed,6,1)+
                ' xk='+FloatToStrF(xk,ffFixed,6,1));
h:=(xk-xn)/10;
x:=xn;
s:=0;
fk:=1;
repeat
for k:=1 to n do
begin
f:=2*k+1;
for i:=1 to f do
begin
fk:=fk*i;
end;
s:=s:=s+(x-(sqr(x)*x)/(3*i))/(2*i+1)/fk;
fk:=1;
end;
 y:=sin(x);
 {al:=Abs(s-y);
 del:=Abs(s-y)/Abs(y)*100;}
 if CheckBox2.Checked then
  if CheckBox3.Checked then
   begin
    al:=Abs(s-y);//абсолютная погрешность
    del:=Abs(s-y)/Abs(y)*100;//относительная погрешность }
    Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
               '   S='+FloatToStrF(s,ffFixed,6,4)+
               '   Y='+FloatToStrF(y,ffFixed,6,4)+
               '   A='+FloatToStrF(al,ffFixed,6,4)+
               '   D='+FloatToStrF(del,ffFixed,6,4)+'%');
  end
  end
   else
    begin
     al:=Abs(s-y);
     Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
               ' S='+FloatToStrF(s,ffFixed,6,4)+
               ' Y='+FloatToStrF(y,ffFixed,6,4)+
               ' A='+FloatToStrF(al,ffFixed,6,4));
 
    end
   else if CheckBox3.Checked then
    begin
     del:=Abs(s-y)/Abs(y)*100;
     Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
               ' S='+FloatToStrF(s,ffFixed,6,4)+
               ' Y='+FloatToStrF(y,ffFixed,6,4)+
               ' D='+FloatToStrF(del,ffFixed,6,4)+'%');
    end
   else
     Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
               ' S='+FloatToStrF(s,ffFixed,6,4)+
               ' Y='+FloatToStrF(y,ffFixed,6,4)); 
  x:=x+h;
 until x>xk;
end;
 
 
 
end.
Добавлено через 58 секунд
Просто у меня s неправильный ответ выдаёт, не совпадает с y
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
17.05.2019, 22:08 8
Ну я же написал как правильно находить S. Лучше это написать функцией, не хочешь, пиши в тексте программы, я тебе ничего писать не буду, все написал.
0
0 / 0 / 0
Регистрация: 15.05.2019
Сообщений: 40
17.05.2019, 22:14  [ТС] 9
а n это что у тебя?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
17.05.2019, 22:26 10
Delphi
1
2
3
4
5
6
7
8
9
10
n:=0;//счетчик итераций
t:=x;//текущий член ряда
s:=t;//сумма
while abs(t)>e do//пока модуль текущего члена больше точности
 begin
  n:=n+1;//увеличиваем n
  t:=-t*x*x/(2*n)/(2*n+1);//считаем новый член ряда по рекуррентной формуле
                                       // A[SUB]n[/SUB]=A[SUB][SUB]n-1[/SUB][/SUB]*x[SUP]2[/SUP]/(2*n)/(2*n+1)
  s:=s+t;//считаем сумму
end;
0
0 / 0 / 0
Регистрация: 15.05.2019
Сообщений: 40
17.05.2019, 22:43  [ТС] 11
я понимаю что функцией лучше,но у мне сказали это процедурой сделать.
Спасибо что хотя бы показали как функцией это делается
0
3584 / 2194 / 692
Регистрация: 29.05.2013
Сообщений: 9,368
18.05.2019, 08:39 12
Процедурой несколько громоздко, но тоже можно (небольшая переделка варианта от Puporev):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure sn(x,e:real; var r: real);
var t,s:real;
    n:integer;
begin
n:=0;
t:=x;
s:=t;
while abs(t)>e do
 begin
  n:=n+1;
  t:=-t*x*x/(2*n)/(2*n+1);
  s:=s+t;
 end;
r:=s;
end;
 
var
 r: Real;
begin 
 sn(1,1, r);
 Memo1.Lines.Add(FloatToStr(r)); 
 ...
0
18.05.2019, 08:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2019, 08:39
Помогаю со студенческими работами здесь

Как правильно записать формулу в программе Eureka
Добрый день, уважаемые. Я не математик, поэтому просто даже не знаю с какого края подойти к...

реализовать эту формулу в программе
Это перевод из сист счислений вот эту кто знает подскажите

Как в программе написать эту формулу?
V=r3

Как записать эту формулу в C# ?
sqrt((Ax-Bx)2 + (Ay-By)2) Добавлено через 1 минуту Math.Sqrt(Math.Pow((ax, 2) - (bx, 2))) +...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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