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

В чем причина ошибки

05.02.2019, 13:10. Просмотров 445. Ответов 5
Метки нет (Все метки)

Я решил написать математическую программу (график функции) Создал 2 компонента Image (1 для формулы, 2 для координатной плоскости) 2 компонента Edit (Для ввода коэффициентов a и b) и 2 компонента Label напротив Edit, также кнопку "BitBtn1" (для создания графика). Код программы:
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, jpeg;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.BitBtn1Click(Sender: TObject);
const
mash=100;
var
a,b : integer;
x0,y0: integer;
x,y: Real;
begin
//Очистить рисунок
Image2.Canvas.Pen.Color:=clWhite;
image2.Canvas.Rectangle(0,0,ClientWidth,ClientHeight);
//Считываем коэффициенты
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
//находим центр
x0:=Image2.Width div 2;
y0:=image2.Height div 2;
//рисуем оси
image2.Canvas.Pen.Color:=clGreen;
image2.Canvas.Pen.Width:=2
image2.Canvas.MoveTo(x0,0);
image2.Canvas.LineTo(x0,ClientHeight);
image2.Canvas.MoveTo(0,y0);
image2.Canvas.LineTo(ClientWidth,y0);
 
//рисуем график
image2.Canvas.Pen.Color:=clRed;
image2.Canvas.Pen.Width:=1;
x:=-10;
y:=1/(a*sqr(x)+a*x+b);
image2.Canvas.MoveTo(Trunc(x),Trunc(y));
repeat
x:=x+0.1;
try y=-1/(a*sqr(x)+a*x+b) except y:=0.1 end;
image2.Canvas.LineTo(Trunc(x*mash)+x0,Trunc(y*mash)+y0);
unti1 x>=10;
end;
 
end.
Прошу прислать измененный (правильный код) если возможно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2019, 13:10
Ответы с готовыми решениями:

В чем причина ошибки: EOverFlow with message 'Floating point overflow'?
Всем добрый день. Есть проект. Он компилируется. Но при выполнении выходит ошибка : "Project *.exe...

Причина ошибки в Delphi XE3
Подскажите почему при закрытии Delphi XE3 выдает ошибку: "Access violation at address 206E1EA5 in...

программа циклится в чем причина
Это метод левых прямоугольников и Монте - Карло, программа циклится и зависает uses Windows,...

Не срабатывает функция FindWindowEx, в чем причина?
Помогите пожалуйста разобраться, не срабатывает функция FindWindowEx. Суть такая: хочу нажатием...

5
452 / 418 / 165
Регистрация: 11.12.2013
Сообщений: 2,232
05.02.2019, 13:20 2
почему не хотите использовать для вывода графика TChart?

Добавлено через 6 минут
попробуйте так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
//рисуем график
image2.Canvas.Pen.Color:=clRed;
image2.Canvas.Pen.Width:=1;
x:=-10;
y:=1/(a*sqr(x)+a*x+b);
image2.Canvas.MoveTo(Trunc(x),Trunc(y));
repeat
x:=x+0.1;
try y=-1/(a*sqr(x)+a*x+b) except y:=0.1 end;
image2.Canvas.LineTo(Trunc(x*mash)+x0,Trunc(y*mash)+y0);
until x>=10;
end;
0
0 / 0 / 0
Регистрация: 22.12.2018
Сообщений: 7
05.02.2019, 13:22  [ТС] 3
Я подумал что через Image будет проще, но как оказалось нет. Над этим проектом я работал 4 дня и как то уже обидно будет забрасывать

Добавлено через 2 минуты
Ошибку выдает в этой строке
Delphi
1
2
3
4
5
6
7
//рисуем оси
image2.Canvas.Pen.Color:=clGreen;
image2.Canvas.Pen.Width:=2
image2.Canvas.MoveTo(x0,0);
image2.Canvas.LineTo(x0,ClientHeight);
image2.Canvas.MoveTo(0,y0);
image2.Canvas.LineTo(ClientWidth,y0);
а именно
Delphi
1
image2.Canvas.MoveTo(x0,0);
0
Модератор
62548 / 46719 / 32201
Регистрация: 18.05.2008
Сообщений: 113,074
05.02.2019, 13:34 4
Цитата Сообщение от Mr_Undexpented Посмотреть сообщение
Ошибку выдает в этой строке
Какую ошибку? Синтаксически вроде все нормально.
0
452 / 418 / 165
Регистрация: 11.12.2013
Сообщений: 2,232
05.02.2019, 13:56 5
у ТС не должен скомпилироваться проект т.к. в строке 67 вместо until написано unti1

Добавлено через 18 минут
нашел в чем дело строка 51 должна быть
Delphi
1
image2.Canvas.Pen.Width:=2;
нет точки с запятой в конце
0
Модератор
62548 / 46719 / 32201
Регистрация: 18.05.2008
Сообщений: 113,074
05.02.2019, 14:00 6
Цитата Сообщение от Mr_Undexpented Посмотреть сообщение
Я подумал что через Image будет проще
Зря так думали. Наоборот проще.
Зайдите в Edit Сhart(нажать правой кнопкой мыши на TChart), выберите серию (LineSeries) уберите 3D
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
var a,b,x,y:double;
begin
a:=strtofloat(Edit1.Text);
b:=strtofloat(Edit1.Text);
x:=-10;
Chart1.Title.Text.Strings[0]:='y=-1/(a*sqr(x)+a*x+b';
Chart1.Legend.Visible:=false;
while x<=10 do
 begin
  y:=-1/(a*sqr(x)+a*x+b);
  series1.AddXY(x,y);
  x:=x+0.01;
 end;
end;
Получите такой график.
0
Миниатюры
В чем причина ошибки  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2019, 14:00

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

Выдает ошибку, не знаю в чем причина
Нужно составить программу, которая вычисляет движение баллистической ракеты после запуска. unit...

Не рисует эллипс на bitmap. В чем причина?
Здравствуйте, форумчане. Совсем чайник, поэтому возможно не понимаю каких-то фундаментальных...

Программа не видит COM Port подскажите в чем причина пожалуйста!
Здравствуйте! Недавно начал программировать так, что мой вопрос может показаться немного глуп) ...

Не воспроизводится аудио при использование опендиалога, не могу понять в чём причина
Stream:HStream; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject);...


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

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

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