algorytm.org

Implementacja w Delphi/Pascal



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Współliniowość trzech punktów - Implementacja w Delphi/Pascal
Ocena użytkownikóww: *****  / 2
SłabyŚwietny
Nadesłany przez Michał Knasiecki, 03 sierpnia 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Punkty/Unit1.pas:
//Program został pobrany ze strony www.algorytm.org
//Opracował Michał Knasiecki

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Edit3: TEdit;
    Label6: TLabel;
    Edit4: TEdit;
    Label7: TLabel;
    Label8: TLabel;
    Edit5: TEdit;
    Label9: TLabel;
    Edit6: TEdit;
    Label10: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  type wsp=record       //Współrzędne
        x,y:byte;
        end;
var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:wsp; //punkty
        det:integer; //wyznacznik macierzy
begin
//Pobieranie współrzędnych
a.x:=strtoint(edit1.text);
a.y:=strtoint(edit2.text);
b.x:=strtoint(edit3.text);
b.y:=strtoint(edit4.text);
c.x:=strtoint(edit5.text);
c.y:=strtoint(edit6.text);
//Obliczanie wyznacznika macierzy shcematem Sarrusa wg. uproszczonego wzoru
//det= x1y2 + x2y3 + x3y1 - x3y2 - x1y3 - x2y1
det:=a.x*b.y+b.x*c.y+c.x*a.y-c.x*b.y-a.x*c.y-b.x*a.y;
if det>0 then showmessage('Punkt c leży po lewej stronie wektora a->b')
else if det<0 then showmessage('Punkt c leży po prawej stronie wektora a->b')
else showmessage('Punkty a, b, c leżą na jednej prostej');
end;

end.
Dodaj komentarz