|
Вопрос # 4 755/ вопрос открыт / |
|
Здравствуйте, эксперты! Помогите пожалуйста написать проект(часть его есть осталось доделать) к модулю,где программа будет выводить два вектора, они будут проверяться на коллинеарность .Вслучае, когда колинеарны находятся коэффициенты колинеарности , когда не коллинеарны, выводятся ортогональные .
Приложение: Переключить в обычный режим-
- interface
- uses SysUtils;
- type
- TVectorObj=class
- private
- FName:string;
- FX,FY:integer;
- public
- constructor Create(AName:string; AX,AY:integer);
- constructor InputVector(AName:string);
- constructor InputVectorRnd(AName:string; A,B:integer);
- function ToString:string;
- procedure Mult(C:integer;A:TVectorObj);
- procedure Sum(AVector,BVector:TVectorObj);
- procedure Diff(AVector,BVector:TVectorObj);
- function Scalar(A:TVectorObj):integer;
- function Abs:integer;
- function Angle(A:TVectorObj):real;
- function Colinear(A:TVectorObj):boolean;
- property Name:string read FName write FName;
- property X:integer read FX write FX;
- property Y:integer read FY write FY;
- end;
- implementation
-
- constructor TVectorObj.Create(AName: string; AX,AY: integer);
- begin
- FName:=AName;
- FX:=AX;
- FY:=AY;
- end;
-
- function input(s:string):integer;
- begin
-
- end;
-
- constructor TVectorObj.InputVector(AName: string);
- begin
-
-
- end;
-
- procedure TVectorObj.Mult(C:integer; A:TVectorObj);
- begin
- self.FX:=C*A.FX;
- self.FY:=C*A.FY;
- end;
-
- function TVectorObj.Scalar(A:TVectorObj):integer;
- begin
- result:= self.X*A.X+self.Y*A.Y;
- end;
-
- function TVectorObj.Abs:integer;
- begin
- Result:=round(sqrt(self.Scalar(self)));
- end;
-
- function TVectorObj.Angle(A:TVectorObj):real;
- begin
- Result:= self.Scalar(A)/(self.Abs*A.Abs);
- end;
-
- function TVectorObj.Colinear(A:TVectorObj):boolean;
- begin
- Result:=self.X*A.Y=self.Y*A.X;
- end;
-
- constructor TVectorObj.InputVectorRnd(AName: string; A, B: integer);
- begin
- FX:=random(B-A+1)-B;
- FY:=random(B-A+1)-B;
- end;
-
- procedure TVectorObj.Sum(AVector, BVector: TVectorObj);
- begin
- self.FX:=AVector.FX+BVector.FX;
- self.FY:=AVector.FY+BVector.FY;
- end;
-
- procedure TVectorObj.Diff(AVector, BVector: TVectorObj);
- begin
- self.FX:=AVector.FX-BVector.FX;
- self.FY:=AVector.FY-BVector.FY;
- end;
- function TVectorObj.ToString: string;
- begin
- result:=FName+'('+InttoStr(FX)+','+InttoStr(FY)+')';
- end;
-
- end.
-
-
-
- program Project2;
-
- {$APPTYPE CONSOLE}
- uses
- SysUtils,
- vectorsobj in 'X:\homes\zhd\public\points\vectorsobj.pas';
-
- var
- A,B: TVectorObj;
- s:integer;
- begin
- A:=TVectorObj.InputVector('Vect1');
- B:=TVectorObj.InputVector('Vect2');
-
-
-
- readln (s);
- end.
-
 |
Вопрос задал: Джон (статус: Посетитель)
Вопрос отправлен: 22 ноября 2010, 16:59
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 22 ноября 2010, 20:44; участников в обсуждении: 1.
|
min@y™ (статус: Доктор наук), 22 ноября 2010, 20:44 [#1]:
Да врядли кто-то будет смотреть твой код, т.к. его очень много.
У тебя есть формула, по которой можно вычислить коллинеарность 2х векторов. Напиши функцию расчёта и применяй.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|