Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2019, 14:10   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

В итоге не зря спрашивают, раз находятся те, кто не знает.
p51x вне форума Ответить с цитированием
Старый 27.02.2019, 14:26   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
В итоге не зря спрашивают, раз находятся те, кто не знает.
напомнило.
Цитата:
Алгебра у программистов. Преподаватель пишет на доске:
sin X = 1.
- Ну, кто может найти X?
Выбегает программист и так радостно:
- Вот, вот X, - показывает на X.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.02.2019, 14:30   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну не так же все совсем очевидно, у ТС нет A и B, их еще найти нужно по двум точкам )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.02.2019, 14:38   #14
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Как бы
Цитата:
Сообщение от Vitalik81311 Посмотреть сообщение
k - я знаю как записать формулу
А уж подставить и найти B это просто.
p51x вне форума Ответить с цитированием
Старый 27.02.2019, 19:01   #15
Vitalik81311
Пользователь
 
Регистрация: 28.10.2018
Сообщений: 25
По умолчанию

|y1=kx1+b
|y2=kx2+b
используя эти формулы выходим:
b=y2-kx2
y1=kx1+y2-kx2
и получается в программу мне нужно вводить формулы на которые вышли:
k=(y1-y2)/(x1-x2)
b=y2-k*x2

Правильно или нет, кто хорошо понимает? Или это преобразование, всё как то надо вводить?
У меня вот как получилось...

Снимок курсовой.JPG
Vitalik81311 вне форума Ответить с цитированием
Старый 27.02.2019, 21:01   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Vitalik81311 Посмотреть сообщение
Правильно или нет
на мой взгляд - правильно.

только попробуйте ввести точки P(2, -8) Q(2, 7)
программа должна корректно расчитать

и для варианта P(2, -8) Q(-2, -8) тоже программа должна корректно посчитать
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.02.2019, 22:06   #17
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,556
По умолчанию

Деление на 0...
k = +-∞

Последний раз редактировалось digitalis; 27.02.2019 в 22:09.
digitalis вне форума Ответить с цитированием
Старый 28.02.2019, 00:16   #18
Vitalik81311
Пользователь
 
Регистрация: 28.10.2018
Сообщений: 25
По умолчанию

Попробовал ввести точки P(2, -8) Q(2, 7)
программа выдала
Снимок с ответом.JPG
Цитата:
это стоит у меня в программе, а потом выдаёт:
Снимок с ответом2.JPG

и для варианта P(2, -8) Q(-2, -8)
Снимок с вопросом2.JPG
Vitalik81311 вне форума Ответить с цитированием
Старый 28.02.2019, 08:15   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Vitalik81311 Посмотреть сообщение
это стоит у меня в программе, а потом выдаёт:
вот, это нужно подправить.
проверяйте
if abs(x1-x2)<0.00001 then Пишем, что коэффицент и длину отрезка найти нельзя

по второй точке всё нормально.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.03.2019, 01:25   #20
Vitalik81311
Пользователь
 
Регистрация: 28.10.2018
Сообщений: 25
По умолчанию Аналитическая геометрия

Подскажите, куда надо это поставить
Код:
try... except end;
, чтоб после ошибки деления на ноль чертило график и вписывало
Код:
Label7.Caption :='коэффициент и+#13'длину отрезка'+#13'найти нельзя'
...? Помогите пожалуйста... Где получается ноль, выделено зелёным...

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Menus, TeeProcs, TeEngine, Chart, ComCtrls;

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Button1: TButton;
    Label7: TLabel;
    Button2: TButton;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    GroupBox3: TGroupBox;
    ColorBox1: TColorBox;
    ColorBox2: TColorBox;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    ColorBox3: TColorBox;
    CheckBox1: TCheckBox;
    N5: TMenuItem;
    N6: TMenuItem;
    TrackBar1: TTrackBar;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    ScrollBar1: TScrollBar;
    ScrollBar2: TScrollBar;
    Label12: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure ColorBox1Change(Sender: TObject);
    procedure ColorBox2Change(Sender: TObject);
    procedure ColorBox3Change(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure ScrollBar2Change(Sender: TObject);
    procedure ScrollBar1Change(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;
//Îïèñàíèå ãëîáàëüíûõ ïåðåìåííûõ
var
  Form1: TForm1;
  x1,y1,x2,y2:real;
  x0,y0:integer;
xe,ye:integer;
x,y,A,B:real;
dx,dy:real;
Mx,My:real;
xmin,xmax,ymin,ymax:integer;
a1,a2,b1,b2:integer;
Q,P:Real;
implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
begin
xmin:=-3; xmax:=4; ymin:=-8; ymax:=8;
a1:=10; a2:=257;
b1:=10; b2:=514;
x1:=StrToFloat(Edit1.Text);
y1:=StrToFloat(Edit2.Text);
x2:=StrToFloat(Edit4.Text);
y2:=StrToFloat(Edit5.Text);

if (x2<>x1) and (y2=y1) then begin
messagedlg('òî÷êè íàõîäÿòñÿ ïàðàëåëüíî îñè àáöèññ',mtInformation,[mbOk],0);
end;
if (x1<xmin) or (x1>xmax) or (y1>ymax) or (y1<ymin) then begin
messagedlg('ââåäåíû íå äîïóñòèìûå êîîðäèíàòû òî÷êè Q, ââåäèòå êîîðäèíàòû âõîäÿùèå â ïðåäåë',mtError,[mbOk],0);
end;
if (x2<xmin) or (x2>xmax) or (y2>ymax) or (y2<ymin) then begin
messagedlg('ââåäåíû íå äîïóñòèìûå êîîðäèíàòû òî÷êè P, ââåäèòå êîîðäèíàòû âõîäÿùèå â ïðåäåë',mtError,[mbOk],0);
end;
if (x2=x1) and (y2=y1) then begin
messagedlg('êîîðäèíàòû òî÷êè Q è òî÷êè P ñîâïàëè',mtInformation,[mbOk],0);
end;
if abs(x1-x2)<0.00001 then begin   Label7.Caption :='êîýôôèöèåíò è'+#13'äëèíó îòðåçêà'+#13'íàéòè íåëüçÿ'; end;
 
 A:=(y1-y2)/(x1-x2);
 B:=y2-A*x2 ;

Label7.Caption :='êîýôôèöèåíò A= '+FloatToStr(A)+#13+'äëèíà îòðåçêà B= '+FloatToStr(B);
//Âûâîä èíôîðìàöèè
with PaintBox1.Canvas do
PaintBox1.Repaint;

end;

procedure TForm1.Button2Click(Sender: TObject);//Êíîïêà î÷èñòêè ãðàôèêà
begin
Label7.Caption:='';
PaintBox1.Repaint;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Color:=ColorBox3.Selected;
xmin:=-3; xmax:=4; ymin:=-8; ymax:=8;//Ìèíèìàëüíûå è ìàêñèìàëüíûå çíà÷åíèÿ
a1:=10; a2:=257; //Ïðèäåëû ïî îñè ÎÕ
b1:=10; b2:=514; //Ïðèäåëû ïî îñè ÎÓ
a1:=a1-TrackBar1.Position; a2:=a2+5+TrackBar1.Position;
a1:=a1+ScrollBar1.Position; a2:=a2+ScrollBar1.Position;
b1:=b1-TrackBar1.Position; b2:=b2+8+TrackBar1.Position;
b1:=b1+ScrollBar2.Position; b2:=b2+ScrollBar2.Position;
dx:=1; dy:=1;//Øàã ìàòåìàòè÷åñêîé ñèñòåìû êîîðäèíàò
with PaintBox1.Canvas do
begin
Brush.Color:=clWhite;//Öâåò êèñòè
Rectangle(-1,-1,PaintBox1.Width+1,PaintBox1.Height+1);//Ïðÿìîóãîëüíèê
Pen.width:=1;//Òîëùèíà ëèíèè
Pen.Color:=clBlack;//Öâåò ëèíèè
Mx:=round((a2-a1)/(xmax-xmin));//Ðàñ÷åò ìàñøòàáà ïî õ
My:=round((b2-b1)/(ymax-ymin));//Ðàñ÷åò ìàñøòàáà ïî ó
x0:=a1-round(mx)*xmin;//Ðàñ÷åò íà÷àëüíîé êîîðäèíàòû õ0
y0:=b1+round(my)*ymax;//Ðàñ÷åò íà÷àëüíîé êîîðäèíàòû ó0
TextOut(a2-10,y0-15,'X');//Îöèôðîâêà ìàòåìàòè÷åñêîé êîîðäèíàòû Õ
TextOut(x0+5,b1+5,'Y');//Îöèôðîâêà ìàòåìàòè÷åñêîé êîîðäèíàòû Ó
TextOut(x0+5,y0-18,'0');//Îöèôðîâêà íóëÿ
Pen.width:=1;//Òîëùèíà ëèíèè
Pen.Style:=psDot;//Ñòèëü ëèíèè
Pen.Color:=ColorBox2.Selected;//Öâåò ëèíèè
x:=xmin;
repeat
Xe:=round(mx*(x-xmin)+a1);//Ðàñ÷åò ýêðàííîé êîîðäèíàòû Õ
if CheckBox1.Checked=true then
begin
MoveTo(xe,b1);LineTo(xe,b2);//Ëèíèÿ ñåòêè
end;
if x<>0 then TextOut(xe-5,y0+5,FloatToStr(x));//Îöèôðîâêà ÎÕ
x:=x+dx;
until(x>xmax);
y:=ymin;
repeat
Ye:=round(my*(-y+ymax)+b1);//Ðàñ÷åò ýêðàííîé êîîðäèíàòû Ó
if CheckBox1.Checked=true then
begin
MoveTo(a1,ye);LineTo(a2,ye);//Ëèíèÿ ñåòêè
end;
if y<>0 then textOut(x0-20,ye-5,FloatToStr(y));//Îöèôðîâêà ÎÓ
y:=y+dy;
until(y>ymax);
Pen.Width:=2;//Òîëùèíà ìàòåìàòè÷åñêèõ êîîðäèíàò
Pen.Color:=ColorBox1.Selected;//Öâåò ìàòåìàòè÷åñêèõ îñåé êîîðäèíàò
Pen.Style:=psSolid;//Ñòèëü ëèíèé
MoveTo(a1,y0); LineTo(a2,y0);//Ìàòåìàòè÷åñêàÿ êîîðäèíàòíàÿ îñü ÎÕ
MoveTo(x0,b1); LineTo(x0,b2);//Ìàòåìàòè÷åñêàÿ êîîðäèíàòíàÿ îñü ÎÓ
//Pen.Color:=clBlack;
If Label7.Caption<>'' then
begin

Pen.Color:=clBlack;Pen.Width:=2;//Öâåò è òîëùèíà òî÷åê
Ellipse( round(a1-mx*xmin+x1*mx)-3 ,round(b1+my*ymax-y1*my)-3,round(a1-mx*xmin+x1*mx)+3 ,round(b1+my*ymax-y1*my)+3);//Òî÷êà Q
TextOut(round(a1-mx*xmin+x1*mx)+5,round(b1+my*ymax-y1*my)-12,'Q');//Îöèôðîâêà òî÷êè Q
Ellipse( round(a1-mx*xmin+x2*mx)-3 ,round(b1+my*ymax-y2*my)-3,round(a1-mx*xmin+x2*mx)+3 ,round(b1+my*ymax-y2*my)+3);//Òî÷êà P
TextOut(round(a1-mx*xmin+x2*mx)+5,round(b1+my*ymax-y2*my)-12,'P');//Îöèôðîâêà òî÷êè P

 Pen.Color:=clBlue;Pen.Width:=1;//Öâåò è òîëùèíà ïðÿìîé
  {x2:=strtoint(edit4.Text);
y2:=strtoint(edit5.Text);}
MoveTo (round(a1-mx*xmin+x1*mx),round(b1+my*ymax-y1*my));
  {x1:=strtoint(edit1.Text);
y1:=strtoint(edit2.Text);}
LineTo(round(a1-mx*xmin+x2*mx),round(b1+my*ymax-y2*my));
end;
end;
end;

procedure TForm1.N4Click(Sender: TObject);
begin
Form2.ShowModal;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
Form3.ShowModal;
end;



procedure TForm1.ColorBox1Change(Sender: TObject);
begin
PaintBox1.Repaint;
end;

procedure TForm1.ColorBox2Change(Sender: TObject);
begin
PaintBox1.Repaint;
end;

procedure TForm1.ColorBox3Change(Sender: TObject);
begin
PaintBox1.Repaint;
end;


procedure TForm1.CheckBox1Click(Sender: TObject);
begin
PaintBox1.Repaint;
end;


procedure TForm1.N6Click(Sender: TObject);
begin
Form4.ShowModal;
end;

procedure TForm1.N5Click(Sender: TObject);
begin
Form5.ShowModal;
end;


procedure TForm1.TrackBar1Change(Sender: TObject);
begin
PaintBox1.Repaint;
end;

procedure TForm1.N7Click(Sender: TObject);
begin
Form6.ShowModal;
end;

procedure TForm1.N9Click(Sender: TObject);
begin
close;
end;

procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
PaintBox1.Repaint;
end;

procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
PaintBox1.Repaint;
end;

end.
Vitalik81311 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналитическая таблица Slavik7777 Фриланс 1 25.11.2018 19:08
Аналитическая программа Yosarien Общие вопросы C/C++ 2 13.02.2015 00:57
Аналитическая задача в Excel mezolit Фриланс 1 24.09.2012 15:28
Аналитическая геометрия (1 курс) Tigrika Помощь студентам 1 05.11.2010 00:06