Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 3
1

Не могу разобраться с программой на delphi

01.05.2012, 15:02. Показов 459. Ответов 3
Метки нет (Все метки)

Мне нужно составить программу вычисляющую формулу
F(x)=3x^4-x^3 (вместо чисел могут стоять и другие значения, но степень положительная)
пределы для формулы [-5;3] (могут быть другие значения)
точность Е=0,001 (могут быть другие значения)
К=0,01 (могут быть другие значения)
В итоге должена получится таблица со значениями, в прикрепленном архиве есть сама программа и документ excel, по нему и делаю, посмотрите если что в него чтобы понять.

Ну вроде все сделал, только вот с циклом проблема, после первой иттерации в значениях у1, у2 получаются совершенно другие цифры, в чем проблема?
Заранее спасибо за помощь!
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Math;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Edit5: TEdit;
    Label6: TLabel;
    Edit6: TEdit;
    Label7: TLabel;
    Edit7: TEdit;
    Label8: TLabel;
    Edit8: TEdit;
    Label9: TLabel;
    Label10: TLabel;
    Edit9: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label11: TLabel;
    Label12: TLabel;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  a, b, e, k, n, q, w, r, t, y: extended;
   x1,x1w,x1r,x2w,x2r, x2  : extended;
   i, h, j, m,z: Integer;
   y1, y2 :  extended;
s, d, p: extended;
str, str0:string;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   a:=StrToFloat(Edit5.Text);
   b:= StrToFloat(Edit6.Text);
   e:= StrToFloat(Edit7.Text);
   k:= StrToFloat(Edit8.Text);
   n:=(ln(e/(b-a))) / (ln((1+k)/2));
   if n >0.11111111 then n := round(n) + 1 else n := round(n);
    Edit9.Text:=FloatToStr(n);
      q:= StrToFloat(Edit1.Text);
   w:= StrToFloat(Edit2.Text);
   e:= StrToFloat(Edit3.Text);
   r:= StrToFloat(Edit4.Text);
end;
 
 
 
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
   m:=round(n);
   h:=round(w)  ;
   j:=round(r)  ;
 
  Memo1.Lines[0]:= 'Циклы         :         a               :        b       :           x1         :             x2         :              y1        :              y2' ;
   for i:=1 to m do         // цикл начало
   begin
                ShowMessage('a=  '+FloatToStr(a))  ;
                   ShowMessage('b=  '+FloatToStr(b))  ;
               x1:= roundto(((a+b)/2)-k*((b-a)/2),-5);
               ShowMessage('x1=  '+FloatToStr(x1))  ;
 
                       if h=1 then   x1w:=x1;
                       if h=2 then   x1w:=x1*x1;
                       if h=3 then   x1w:=x1*x1*x1;
                       if h=4 then   x1w:=x1*x1*x1*x1;
                       if h=5 then   x1w:=x1*x1*x1*x1*x1;
 
                       if j=1 then   x1r:=x1;
                       if j=2 then   x1r:=x1*x1;
                       if j=3 then   x1r:=x1*x1*x1;
                       if j=4 then   x1r:=x1*x1*x1*x1;
                       if j=5 then   x1r:=x1*x1*x1*x1*x1;
 
                       y1:=roundto((q*x1w)-(e*x1r),-5);
                       ShowMessage('x1после выч у1=  '+FloatToStr(x1))   ;
                       ShowMessage(FloatToStr(y1))   ;
 
              x2:= roundto(((a+b)/2)+k*((b-a)/2),-5);
              ShowMessage('х2=  '+FloatToStr(b1))  ;
 
                       if h=1 then   x2w:=x2;
                       if h=2 then   x2w:=x2*x2;
                       if h=3 then   x2w:=x2*x2*x2;
                       if h=4 then   x2w:=x2*x2*x2*x2;
                       if h=5 then   x2w:=x2*x2*x2*x2*x2;
 
                       if j=1 then   x2r:=x2;
                       if j=2 then   x2r:=x2*x2;
                       if j=3 then   x2r:=x2*x2*x2;
                       if j=4 then   x2r:=x2*x2*x2*x2;
                       if j=5 then   x2r:=x2*x2*x2*x2*x2;
 
                       y2:=roundto((q*x2w)-(e*x2r),-5);
 
                       ShowMessage('x2после выч у2=  '+FloatToStr(x2)+  'b1после=  '+FloatToStr(b1))   ;
                       ShowMessage(FloatToStr(y2))   ;
 
 
                  if  (y1>y2) then
                  begin
                        str:='       '+FloatToStr(i)+ '           :           '+FloatToStr(roundto(a,-4))+'          :          '+FloatToStr(roundto(b,-4))+ '     :     '+FloatToStr(roundto(x1,-4))+ '     :     '+FloatToStr(roundto(x2,-4))+ '     :     '+FloatToStr(roundto(y1,-5))+ '     :     '+FloatToStr(roundto(y2,-5));
                        Memo1.Lines.Insert(i,str);
                        a:=x1 ;
                        b:=b
 
                  end ;
 
 
                  if   (y1<y2) then
                  begin
                  str:='       '+FloatToStr(i)+ '           :           '+FloatToStr(roundto(a,-4))+'          :          '+FloatToStr(roundto(b,-4))+ '     :     '+FloatToStr(roundto(x1,-4))+ '     :     '+FloatToStr(roundto(x2,-4))+ '     :     '+FloatToStr(roundto(y1,-5))+ '     :     '+FloatToStr(roundto(y2,-5));
                  Memo1.Lines.Insert(i,str);
                  a:=a;
                  b:=x2 ;
 
                  end;
             y1:=0;
             y2:=0;
             y1:=0;
             y2:=0;
             x1:=0;
             x2:=0;
             a1:=0;
             b1:=0;
 end;
 
end;
 
end.
0
Вложения
Тип файла: zip программа.zip (221.5 Кб, 16 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2012, 15:02
Ответы с готовыми решениями:

Не могу разобраться с программой
начал делать задание и запутался Разработать программу: Ввести в программу вектор C1, состоящий из...

Не могу разобраться с программой
Я поступил в Колледж Вычислительной Техники и у нас началось программированиею Сказали поставить...

Не могу разобраться с программой.
Здравствуйте! Мне понадобилась помощь с ассемблером...уже несколько часов сижу, и никак воедино...

Не могу разобраться с программой в С++
Написала программку на С++, он ее запускает и как я понимаю выполняет, но вот результатов я не...

__________________
3
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 3
01.05.2012, 15:05  [ТС] 2
И может кто знает как создать таблицы в делфи? а то не смог найти(
0
Модератор
63341 / 47050 / 32430
Регистрация: 18.05.2008
Сообщений: 114,046
01.05.2012, 15:08 3
Можно использовать компонент StringGrid.
0
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 3
01.05.2012, 16:15  [ТС] 4
Спасибо! А на счет цикла не поможете? почему в первый раз данные правильно вычисляются(первая строка), а потом все данные правильно, только у1 и у2 вычисляют не то, что может быть не так, может я что-то упустил?

Добавлено через 1 час 2 минуты
Вроде бы разобрался!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2012, 16:15

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Не могу разобраться с программой Freecomander
В общем суть проблемы: Был архив типа *.mdf размером около 6,7 Гб, решил разбить его чтобы...

Не могу разобраться с программой dbForge for Oracle
Как заполнить свойства для соединения базы данных? Где взять нужную информацию?

не могу разобраться с программой на С++. Метод Жордана-Гаусса
могу указать в каком месте не понимаю. Очень прошу, дайте коментарии к программе. #include...

Не могу разобраться с программой, и объясните как работают функции
Программа на c, вводится динамическая структура, ввод останавливается, когда вводится &quot;*&quot;, первая и...

не могу разобраться с программой турбо паскаль. не понимаю, что не так
написала код в текстовом редакторе. запускаю в турбо паскаль - пишет &quot;файл не является приложением...

Не могу разобраться с программой, выдает ошибку C2371, как и что исправить, не знаю, строка 20
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;math.h&gt; char...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.