|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.06.2007, 15:07 | #1 |
Пользователь
Регистрация: 21.06.2007
Сообщений: 55
|
динамический массив
люди найдите ошибку.. прога работает до строчки ymax:=L+a*(-10)*(-10)+b*(-10)+c;
а дальше пишет illegal poit operation код unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series, Grids; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Chart1: TChart; Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit4: TEdit; Label4: TLabel; Series1: TLineSeries; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Label5: TLabel; Label6: TLabel; Label7: TLabel; Series2: TLineSeries; Series3: TLineSeries; Edit8: TEdit; Label8: TLabel; Label9: TLabel; Edit9: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; var a,b,c : real; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i,razmer: integer; a,b,c,L,ymax,ymin,y1,ots,razr,raz,x ,x1,x2, d : real; y: array of real; begin L:=StrToFloat(Edit4.Text); a:=StrToFloat(Edit1.Text); b:=StrToFloat(Edit2.Text); c:=StrToFloat(Edit3.Text); series1.Clear; series2.Clear; series3.Clear; if a=0 then begin ymin:=b*5+c; {для рисования графика} ymax:=L+b*10+c+5; {для рисования графика} edit8.Text:=floattostr(ymax); ots:=(ymax-c)/b; edit7.Text:=floattostr(ots); raz:=((ots -5)/0.01); razr:=round(raz); edit5.Text:=floattostr(razr); {перевод из типа real в тип integer } razmer:=strtoint(edit5.Text); {перевод из типа real в тип integer} edit6.Text:=inttostr( razmer); {перевод из типа real в тип integer} setlength(y,razmer); x:=5; i:=0; repeat ymin:=b*10+c; { реальные размеры БЧ} ymax:=L+b*10+c; { реальные размеры БЧ} y[i]:=b*x+c; y1:=y[i]; series1.AddXY(x,y1); series2.AddXY(x,ymin); series3.AddXY(x,ymax); x:=x+0.01; i:=i+1; until x>=ots; end else begin {ymin:=a*(-5)*(-5)+b*(-5)+c; {для рисования графика} ymax:=L+a*(-10)*(-10)+b*(-10)+c+5; {для рисования графика} d:=b*b - 4*a*(c-ymax); if d<0then begin showmessage('неправильно введены а,b или с'); end else begin x1:=(-b - sqrt(d))/(2*a); x2:=(-b + sqrt(d))/(2*a); Edit9.Text:=floattostr(x2); raz:=((x2-x1)/0.01); razr:=round(raz); edit5.Text:=floattostr(razr); {перевод из типа real в тип integer } razmer:=strtoint(edit5.Text);{перев од из типа real в тип integer } edit6.Text:=inttostr( razmer); setlength(y,razmer); edit9.Text:=floattostr(ots); x:=x1; i:=0; repeat ymin:=a*(-10)*(-10)+b*(-10)+c;{ реальные размеры БЧ} ymax:=L+a*(-10)*(-10)+b*(-10)+c; { реальные размеры БЧ} y[i]:=a*x*x+b*x+c; y1:=y[i]; series1.AddXY(x,y1); series2.AddXY(x,ymin); series3.AddXY(x,ymax); x:=x+0.01; i:=i+1; until x>=x2; end; end; end; end. www.nnm.ru ۩۞۩___Смысл заключается,_______________۩۞۩ ۩۞۩___Лишь в величине вашего разума____.۩۞۩ ۩۞۩__♣™_Diller_™♣__۩۞۩ |
23.06.2007, 15:50 | #2 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Попробуй
Код:
Life is too short, play more...
Как правильно задавать вопросы |
23.06.2007, 16:36 | #3 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 486
|
А еще можно немного упростить сами формулы:
ymin:=a*100 - b*10 + c; ymax:=L+ymin |
23.06.2007, 20:37 | #4 |
Пользователь
Регистрация: 21.06.2007
Сообщений: 55
|
ymin,ymax - они расчитываются сними все ок..
массив y[i] - заполняется.., но вот грав=фик не рисуется repeat ymin:=a*(-10)*(-10)+b*(-10)+c;{ реальные размеры БЧ} ymax:=L+a*(-10)*(-10)+b*(-10)+c; { реальные размеры БЧ}- они нормально считаются проверил.. y[i]:=a*x*x+b*x+c; массив заполняется проверил - остается только y1:=y[i]; series1.AddXY(x,y1); series2.AddXY(x,ymin); series3.AddXY(x,ymax); x:=x+0.01; i:=i+1; until x>=x2; www.nnm.ru ۩۞۩___Смысл заключается,_______________۩۞۩ ۩۞۩___Лишь в величине вашего разума____.۩۞۩ ۩۞۩__♣™_Diller_™♣__۩۞۩ |
23.06.2007, 20:41 | #5 |
Пользователь
Регистрация: 21.06.2007
Сообщений: 55
|
у меня как Вы успели заметить построение приблизительно одинаковых графиков.. верхний цикл repeat until работает, А ВОТ С НИЖНИМ ПРОБЛЕМА..
прочтя мою ремарку,уточните ,пожалуйста, Ваши рекомендации по исправлению возникшей ошибки.. заранее Вам спасибо.. www.nnm.ru ۩۞۩___Смысл заключается,_______________۩۞۩ ۩۞۩___Лишь в величине вашего разума____.۩۞۩ ۩۞۩__♣™_Diller_™♣__۩۞۩ |
24.06.2007, 11:52 | #6 | |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Цитата:
Кто же берет корень из отрицательного числа???
Life is too short, play more...
Как правильно задавать вопросы |
|
24.06.2007, 13:17 | #7 |
Пользователь
Регистрация: 21.06.2007
Сообщений: 55
|
if d<0then
begin showmessage('неправильно введены а,b или с'); end Незачет вам по внимательности!!!!!!! www.nnm.ru ۩۞۩___Смысл заключается,_______________۩۞۩ ۩۞۩___Лишь в величине вашего разума____.۩۞۩ ۩۞۩__♣™_Diller_™♣__۩۞۩ |
24.06.2007, 14:29 | #8 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Код:
Последний раз редактировалось Carbon; 24.06.2007 в 14:32. |
24.06.2007, 14:59 | #9 |
Пользователь
Регистрация: 21.06.2007
Сообщений: 55
|
Chart1.Series[2].AddXY(x,ymax); поясните что это??
кроме этого Вы еще что -то меняли?? я вроде ненашел.. www.nnm.ru ۩۞۩___Смысл заключается,_______________۩۞۩ ۩۞۩___Лишь в величине вашего разума____.۩۞۩ ۩۞۩__♣™_Diller_™♣__۩۞۩ |
24.06.2007, 15:01 | #10 |
Пользователь
Регистрация: 21.06.2007
Сообщений: 55
|
нашел что еще меняли.. поясните почему..
www.nnm.ru ۩۞۩___Смысл заключается,_______________۩۞۩ ۩۞۩___Лишь в величине вашего разума____.۩۞۩ ۩۞۩__♣™_Diller_™♣__۩۞۩ |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
динамический массив | Dimon | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 21.03.2008 18:08 |
Динамический массив | _ares_ | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 26.12.2007 23:54 |
Динамический массив. | Mickle | Помощь студентам | 9 | 21.06.2007 20:31 |
Динамический массив | Mickle | Общие вопросы Delphi | 8 | 19.06.2007 06:45 |
Динамический массив + Dll. | LEKA | Общие вопросы Delphi | 7 | 11.05.2007 20:05 |