| 
| 
 | Вопрос # 4 638/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!напишите пожалуйста функцию которая бы складывала два вектора? Я код вам дам . модуль к нему тоже , там где function "sum" написать функцию!!!
 Приложение:Переключить в обычный режим  program Project1;{$APPTYPE CONSOLE}uses  SysUtils,  windows,  vectors in 'vectors.pas',  points in 'points.pas'; Type Tsegment = record  A,B:Tpoint;end;  varA,B,C,D,E,F,G,H,I:Tpoint;s:real;d1,d2,d3,v:real;   beginA:=inputPoint('A');B:=inputPoint('B');C:=inputPoint('C'); writeln(PointToStr(A)+';'+PointToStr(B)+';'+PointToStr(C)); D:=mid(A,B);F:=mid(C,D);F.name:='F';writeln(PointToStr(F));writeln(PointToStr(mint(A,B)));writeln(PointToStr(mint2(A,B)));if colinear(A,B,C)   {d1:=distPoint(A,B);d2:=distPoint(A,C);d3:=distPoint(C,B);writeln('AB=',d1);writeln('AC=',d2);writeln('BC=',d3);    D:=mid(A,B);E:=mid(A,C);F:=mid(B,C); v:=rvector(A);writeln(v); G:=mint(A,B); H:=mint(A,C); I:=mint(B,C);  print(D);Writeln('D=','(',D.x,',',D.y, ')');{Writeln(E);Writeln(F); }readln(s); end.     unit points; interface TypeTPoint = record    name:string;    x,y:integer;  end; function inputPoint(name:string):TPoint;function distPoint(K,M:Tpoint):real;function mid(K,M:TPoint):TPoint;function rvector(K:TPoint):real;function PointToStr(K:TPoint):string;function mint(K,M:TPoint):TPoint;function mint2(K,M:TPoint):TPoint;function colinear(A,B,C:TPoint):boolean;function eqv(A,B:TPoint):boolean; implementation uses SysUtils; function dist(a1,a2,b1,b2:integer):real;beginresult:=sqrt(sqr(a1-b1)+sqr(a2-b2));end; function input(s:string):integer;begin end;  function inputPoint(name:string):TPoint;begin  result.name:=name;end; function distPoint(K,M:Tpoint):real;begin  result:=dist(K.x,K.y,M.x,M.y);end; function min(a,b:real):real;beginif a<b  then result:=a  else result:=b;end; function mid(K,M:TPoint):TPoint;begin result.x:=round((M.x+K.x)/2); result.y:=round((M.y+K.y)/2); result.name:='[Mid('+K.name+','+M.name+')]';end; function rvector(K:TPoint):real;begin  result:=dist(K.x,K.y,0,0);end; function PointToStr(K:TPoint):string; begin   result:=K.name+'('+IntToStr(K.x)+','+IntToStr(K.y)+')'; end; function mint(K,M:TPoint):TPoint; begin result.name:='[Mint('+K.name+','+M.name+')]'; if rvector(K)<rvector(M)    then begin         result.x:=K.x;         result.y:=K.y;         end    else begin         result.x:=M.x;         result.y:=M.y;         end end; function mint2(K,M:TPoint):TPoint;  begin  if rvector(K)<rvector(M)    then result:=K    else result:=M;  end; function colinear(A,B,C:TPoint):boolean;  begin    result:=((B.y-A.y)*(C.x-A.x)=(C.y-A.y)*(B.x-A.x));  end; function eqv(A,B:TPoint):boolean;  begin    result:=(A.x=B.x)and(A.y=B.y);  end;  end.   unit vectors; interface uses points; TypeTVector = record   name:string;   x,y:integer;end; function InputVector(name:string): TVector;function PointsToVector(A,B:TPoint):TVector;function GetEndPoint(A:Tpoint; v:TVector):TPoint;function VectorToStr(v:Tvector):string;function sum(a,b:Tvector):Tvector;function mult(c:integer; a:TVector):TVector;function diff(a,b:TVector):TVector;function eqv(a,b:TVector):boolean;function Colinear(a,b:TVector):boolean;function scalar(a,b:TVector):integer;function angle(a,b:TVector):real;function abs(v:TVector):integer;function ort(v:TVector):TVector;function norm(v:TVector):TVector;   implementation function InputVector(name:string): TVector;begin end; function PointsToVector(A,B:TPoint):TVector;beginresult.x=B.x-A.x;result.y=B.y-A.y;result.name=end;       function sum(a,b:Tvector):Tvector;begin end;  end;   end.  
|  |   Вопрос задал: Джон (статус: Посетитель)Вопрос отправлен: 7 октября 2010, 16:41
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 6; последнее сообщение — 9 октября 2010, 08:20; участников в обсуждении: 3. 
|   | min@y™ (статус: Доктор наук), 7 октября 2010, 17:06 [#1]: Type
 TVector = record
   name:string;
   x,y:integer;
 end;Я не понял: это точка на плоскости или, всё-таки, радиус-вектор? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Джон (статус: Посетитель), 7 октября 2010, 19:31 [#2]:Скорее радиус вектор. |  
|   | Ерёмин А.А. (статус: *Администратор), 7 октября 2010, 19:52 [#3]:Сложить 2 вектора?  a(x1,y1)
 b(x2,y2)
 c(x1+x2,y1+y2)
 |  
|   | min@y™ (статус: Доктор наук), 7 октября 2010, 21:55 [#4]: Цитата (Ерёмин А.А.): Сложить 2 вектора?    a(x1,y1) b(x2,y2) c(x1+x2,y1+y2) Если это радиус-вектор, то да.
 Но, вообще-то, вектор - это начальная и конечная точки, т.е. координаты. Я поэтому и переспрашивал.
 
 Я в РГРТА(У) изучал вышку 4 семестра. 3 экзамена из 4-х мне поставили автоматом, так что, не смотря на прошедшие годы, кое-что помню...
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Джон (статус: Посетитель), 8 октября 2010, 16:32 [#5]:Здравствуйте, уважаемые эксперты! напишите пожалуйста , что получается вместо ??
 сложить два вектора!!
 a
 a.x:=1;
 a.y:=2;
 a.name:='c';
 b
 b.x:=3;
 b.y:=4;
 b.name:='d';
 result
 result.x:= ? ;
 result.y:= ? ;
 result.name:=?
 
 пожалуйста
 |  
|   | min@y™ (статус: Доктор наук), 9 октября 2010, 08:20 [#6]: result.x:= a.x + b.x;
result.y:= a.y + b.y;
result.name:= 'a + b'; // или любое другое обозначение Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |