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

Построения графиков функции

02.07.2015, 21:59. Показов 2497. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать программу для построения графиков функции указанного вида на указанном пользователем отрезке:
y=kx/(ax^2+b)+c, k≠0,a≠0 ;где k, a, b, c, d – коэффициенты, определяемые пользователем.
Сгенерировать последовательность десяти случайных чисел из выбранного пользователем диапазона и построить диаграмму с помощью компонента TChart. Выбор вида диаграммы (круговая или гистограмма) производить с помощью компонента TRadioButton. Сгенерированные значения выводить в компоненте StringGrid.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2015, 21:59
Ответы с готовыми решениями:

Программа построения графиков в делфи
Недавно написала программу, которая строит график функции по введенной формуле. Решила выложить на...

Программа для построения графиков не работает
Нашёл на просторах интернета код для программы. Расставил формы что бы имена совпадали. Но прога...

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

Создание программы для построения графиков функций
Создание программы для построения графиков функций. Если можно с исходниками, спасибо заранее

2
9 / 9 / 7
Регистрация: 01.07.2015
Сообщений: 88
02.07.2015, 23:00 2
Цитата Сообщение от Николай ВВ Посмотреть сообщение
Сгенерировать последовательность десяти случайных чисел из выбранного пользователем диапазона
То есть если диапозон будет 0..4 то брать 0,5;1;1,5 или только целые нужны?
0
2736 / 1711 / 778
Регистрация: 23.03.2015
Сообщений: 5,418
04.07.2015, 23:23 3
Лучший ответ Сообщение было отмечено Николай ВВ как решение

Решение

Николай ВВ,

Разъясните пожалуйста , где используется коэффициент "d"?

Добавлено через 1 час 49 минут
Николай ВВ,

Добавьте... в "Uses" модуль "Math"....
На форму:
1) StringGrid1
2)StringGrid2
3)RadioButton1
4)RadioButton2
5) Button1
6)Series1- Pie
7) Series2-Bar
В графики вводятся значения X....



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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
unit Unit1;
 
interface
 
uses
  System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids,Math, Vcl.StdCtrls,
  VclTee.TeeGDIPlus, VCLTee.Series, VCLTee.TeEngine, Vcl.ExtCtrls,
  VCLTee.TeeProcs, VCLTee.Chart;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button1: TButton;
    Chart1: TChart;
    Series1: TPieSeries;
    Series2: TBarSeries;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
  private
     {процедура , позволяющая вводить фокус в определенную ячейку StringGrid'a}
    procedure GridCellFocus(SGrid: TStringGrid; i, j: integer);
 
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  C,R:integer;
   X,Y:Extended;
   A1,A2:array[1..10] of extended;
implementation
 
{$R *.dfm}
 {процедура , позволяющая вводить фокус в определенную ячейку StringGrid'a}
procedure TForm1.GridCellFocus(SGrid: TStringGrid; i, j: integer);
var
  Rect: TGridRect;
 begin
  with SGrid do
  begin
    SetFocus;
    Col := i;
    Rect.Left := i;
    Row := j;
    Rect.Top := j;
    Rect.Bottom := j;
    Rect.Right := j;
    Selection := Rect;
  end;
 end;
  // Выбор круговой диаграммы
procedure TForm1.RadioButton1Click(Sender: TObject);
Var
i:integer;
begin
  if  RadioButton1.Checked then
  begin
     Series1.clear;
     Series2.clear;
     if RadioButton1.Checked then
     begin
     for i:=1 to 10 do
       begin
        Series1.AddPie(A1[i]);
       end;
     end;
    end;
end;
 
  //Выбор гистограммы
procedure TForm1.RadioButton2Click(Sender: TObject);
Var
i:integer;
begin
 if  RadioButton2.Checked then
  begin
     Series1.clear;
     Series2.clear;
     if RadioButton2.Checked then
     begin
     for i:=1 to 10 do
       begin
       Series2.AddBar (A1[i],FloatTostr(A2[i]),ClBlue);
       end;
     end;
    end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
Var
i,j,m:integer;
S,H1,H2:string;
a,b,c,k,X1,X2:real;
Fr,Fr1,Fr2:Real;
begin
 With StringGrid1 do
 begin
   for j := 0 to RowCount-2 do
     begin
       S:=Cells[1,j];
       if Length(s)=2  then
       begin
       if S[2]= formatSETTINGS.DecimalSeparator then
         begin
         ShowMessage('Ошибка ввода числа.После запятой нет цифры');
         GridCellFocus(StringGrid1,1,j);
         exit;
         end;
       end;
        if Length(s)=0  then
 
         begin
         ShowMessage('Пожалуйста,заполните поле.');
         GridCellFocus(StringGrid1,1,j);
         exit;
         end;
       end;
         if StrToFloat( cells[1,5])<= StrToFloat( cells[1,4])then
          begin
          ShowMessage('X2 должно быть больше , чем  X1 ');
          exit;
          end;
 
          a:=StrTofloat(Cells[1,0]);
          b:=StrTofloat(Cells[1,1]);
          c:=StrTofloat(Cells[1,2]);
          k:=StrTofloat(Cells[1,3]);
          x1:=StrTofloat(Cells[1,4]);
          x2:=StrTofloat(Cells[1,5]);
 
  end;
  With StringGrid2 do
  begin
     Visible:=True;
     Width:=200;
     Height:=160;
     FixedCols:=0;
     ColCount:=2;
     RowCount:=11;
     Cells[0,0]:='X';
     Cells[1,0]:='Y';
  end;
 
 
  i:=1;
  A1[1]:=0;
  Fr1:=Frac(X1);
  Fr2:=Frac(X2);
  H1:=FloatTostr(Fr1);
  H2:=FloatTostr(Fr2);
  if Length(H1)>=Length(H2) then  m:=Length(H1) else m:=Length(H2) ;
 
 
  repeat
 
   Randomize;
   if (Fr1=0) and (Fr2=0 ) then  X:=(Randomrange(Round(X1*100),Round(X2*100)))/100 else
 
   X:=(Randomrange(Round(X1*Power(10,m)),Round(X2*Power(10,m))))/Power(10,m);
   if X<>A1[i-1]   then
   begin
    A1[i]:=X;
    A2[i]:=(k*X/(power(x,2)*a+b))+c;
    Stringgrid2.Cells[0,i]:=Floattostr(A1[i]) ;
    Stringgrid2.Cells[1,i]:=Floattostr(RoundTo(A2[i],-6)) ;
    i:=i+1;
   end;
  until (i>10);
 
   RadioButton1.Checked:=True;
   With Chart1 do
    begin
     Visible:=true;
     View3D:=false;
     Series1.clear;
     Series2.clear;
     if RadioButton1.Checked then
     begin
     for i:=1 to 10 do
       begin
        Series1.AddPie(A1[i]);
       end;
     end;
    end;
end;
 
procedure TForm1.FormActivate(Sender: TObject);
begin
GridCellFocus(StringGrid1,1,6);
Chart1.Visible:=false;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
With stringGrid1 do
begin
 
 
  Width:=160;
  Height:=160;
  Options:=Options+[GoEditing];
  FixedRows:=0;
  ColCount:=2;
  RowCount:=7;
  FixedRows:=0;
  Cells[0,0]:=' a= ';
  Cells[0,1]:=' b= ';
  Cells[0,2]:=' c= ';
  Cells[0,3]:=' k= ';
  Cells[0,4]:=' X1= ';
  Cells[0,5]:=' X2= ';
  RowHeights[6]:=-2;
  end;
Button1.caption:='Generate';
StringGrid2.Visible:=False;
 RadioButton1.Caption:='Круговая диаграмма';
 RadioButton2.Caption:='Гистограмма';
end;
 
 
 
  {Запрет ввода символов в 1-ый  Stringgrid}
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
Var
S:String;
begin
 S:=StringGrid1.cells[C,R];
case Key of
 
  #8,'1'..'9' :  ;
  '.',',':
                begin
                  if Key <> formatSETTINGS.DecimalSeparator  then
                  Key := formatSETTINGS.DecimalSeparator ;
                  if Pos(formatSETTINGS.DecimalSeparator  ,S) <> 0
                  then Key := Chr(0);
                 if (Length(s) =0) then key := Chr(0);
                end;
  '-':
                  if Length(S) <> 0   then Key := Chr(0);
 
 
   '0':
                 begin
                    if  (C=1) and (R=0) and (Length(s) =0) then key := Chr(0);// Запрет ввода 0-ля для а
                    if  (C=1) and (R=3) and (Length(s) =0) then key := Chr(0); // Запрет ввода 0-ля для k
 
                 end;
          else
                   key := Chr(0);
end;
 
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  C:=Acol;
  R:=Arow;
end;
end.

Удачи...
0
04.07.2015, 23:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2015, 23:23
Помогаю со студенческими работами здесь

Какой нужен компонент для построения таблиц и графиков?
Всем доброго времени суток. Есть такой лог, сбор статистики с компа: ...

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

Программа построения графиков
Здравствуйте, пожалуйста помогите написать программу построения графиков кардиоиды и лемнискаты,...

Программа построения и анализа графиков цен
Я новичок в delphi. Пишу для себя программу технического анализа. Рисую график цен в виде японских...

рограмма построения 2D и 3D графиков функций различными способами
Необходимо написать программу построения 2D и 3D графиков функций различными способами: точками,...

Программа для построения графиков в полярной системе координат
Как сделать программу на делфи, которая будет стоить график при вводе какой-либо функции в полярной...


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

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

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