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

Не могу разобраться с графиком в Делфи

29.01.2011, 02:22. Показов 734. Ответов 1
Метки нет (Все метки)

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
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Math, ExtCtrls;
 
type
  TForm1 = class(TForm)
    L_k: TLabel;
    E_k: TEdit;
    L_m: TLabel;
    E_m: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    Image1: TImage;
    Button3: TButton;
    Button2: TButton;
    PaintBox1: TPaintBox;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
 
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
 Form1: TForm1;
 k, x: real;
 m: real;
 Ep, Ek, E: real;
 code: integer;
 i: integer;
 dx: real;
 n: integer;
 s: string;
 L, F, C: integer;
 w: real;
 flag: boolean;
 
 
const
 g = 9.8;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
 
 
 
begin
memo1.clear;  
 
 
  begin
  val(E_k.Text, k, code);
  val(E_m.Text, m, code);
  x:=m*g/k;
  w:= sqrt(k/m);
  E:= (m*sqr(w)*sqr(x))/2;
  s:= floattostr(x); {convert real to string}
  L:=Length(s);      
  F:=Pos(',', s);   
  C:=L-F;          
        begin
        case C of
                0: dx:=0.1;
                1: dx:=0.01;
                2: dx:=0.001;
        else    RoundTo(x,-2);
                dx:=0.001;       
        end;
        end;
  n:= 2*round(x/dx);
  x:=-x;
   Ep:=k*sqr(x)/2;
   Ek:=E-Ep;
   memo1.Lines.Add('   x              Ep              Ek');
   memo1.Lines.add('_______________________________________');
   memo1.Lines.add(Format('%6.3n    %6.4n    %6.4n' , [x, Ep, Ek]));
 
for i:= 1 to n do
begin
if flag then break;
  x:= x+dx;
  Ep:=k*sqr(x)/2;
  Ek:=E-Ep;
  memo1.Lines.add(Format('%6.3n    %6.4n    %6.4n' , [x, Ep, Ek]));
  Application.ProcessMessages;
end;
end;
end;
 
 
procedure TForm1.Button3Click(Sender: TObject);
begin
flag:=true;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
flag:=false;
end;
 
end.
---
Mawrat: для оформления кода другой тег надо было использовать: [ DELPHI ] (без пробелов).
Изображения
 
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2011, 02:22
Ответы с готовыми решениями:

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива...

Не могу разобраться с графиком
Помогите пожалуйста! Нужно в данной программе построить все графики где по оси х зависимость по k,...

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

Не могу разобраться с Combobox в Делфи, курсач горит!
Вот такая проблема: Мне дали курсовую, на тему «Разработка автоматизированной подсистемы учета и...

1
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
29.01.2011, 12:38 2
Vladyka, попробуй применить компонент TChart - он расположен на закладке "Additional". Положи этот компонент на форму. Затем в контекстном меню компонента выбирай: "Edit Chart..." - появится окно редактирования свойств. В этом окне надо перейти на закладку "Chart", а затем на подзакладку "Series". На этой закладке надо нажать кнопку "Add..." - запустится диалог добавления нового графика. Далее, настраиваешь график. Когда завершишь настройку, в проект будет добавлен объект с именем Series1 - он представляет созданный график. Чтобы добавлять точки можно использовать различные методы - Add(), AddXY(), AddX(), AddY(), AddArray() и пр.
0
29.01.2011, 12:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2011, 12:38
Помогаю со студенческими работами здесь

Программа на делфи с графиком и изображением
пожалуйста помогите написать программы

Помогите разобраться с графиком
Есть функция D=q/4pi(r^2) Из неё видно, что она должна вести себя как функция 1/x^(2). Однако...

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

Разобраться в коде Делфи
Помогите пожалуйста разобраться в коде программы, я сделал описание строк через // но хз правильно...


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

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

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