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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2012, 22:06   #1
vova287
 
Регистрация: 08.11.2010
Сообщений: 9
По умолчанию Перевод программы с Pascal на С++

Доброе время суток. Помогите пожалуйста перевести код с Паскаля на С++. Буду очень благодарен. Условие самой задачи звучит так:
Определить угол между двумя прямыми 3x-4y-2z=0 2x+y-2z=0 и 4x+y-6z-2=0 y-3z+2=0

Библиотека Geometry, является встраиваемой тоесть типы PPlane и PVector будут так же определены в с++
Код:
program 1;
uses crt,Geometry,GeomComm;
 var w1,w2,w3,w4:PPlane;
     n1,n2:PVector;
     name1,name2,name3,name4:string;
     u0,q,a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,d1,d2,d4,d3:real;
 procedure kyt( n0,n_0:PVector;var u:real);
  var s2:Boolean;
      v:PPoint;
      q3,q1,q2:real;
 begin
                                           new(v);
                                           with v^ do begin
                                             Setx(n0^.Getx);
                                             Sety(n0^.Gety);
                                             Setz(n0^.Getz);
                                           end;
                                           q1:=n_0^.ScalarMult(v);
                                           writeln('q1=',q1:4:4);
                                           q2:=n_0^.Norm;
                                           writeln('q2=',q2:4:4);
                                           q3:=n0^.Norm;
                                           writeln('q3=',q3:4:4);
                                           u:=(q1)/(q2*q3);
                                           dispose(v);
                                           dispose(n_0,done);
                                           dispose(n0,done);
                                      end;
 procedure norm_(a1,a2,b1,b2,c1,c2,d1,d2:real;var R1:PVector);
  var s1:Boolean;
      v1,v2:PVector;
  begin
                                            new(v1,Create);
                                           with v1^ do begin
                                             Setx(a1);
                                             Sety(b1);
                                             Setz(c1);
                                           end;
                                           v1^.DosPrint;
                                           new(v2,Create);
                                           with v2^ do begin
                                             Setx(a2);
                                             Sety(b2);
                                             Setz(c2);
                                           end;
                                           v2^.DosPrint;
                                           new(R1,Create);
                                           if not R1^.VectorMult(v1,v2) then begin
                                                                             SetGeomResult(10);
                                                                             dispose(r1,done);
                                                                             R1:=Nil;
                                                                             end
                                                                         else
                                         R1^.DosPrint;
                                          dispose(v1,done);
                                           dispose(v2,done);
                                           if s1 then writeln('yes');
  end;

 begin

 clrscr;
 writeln(MemAvail,'Bytes availeble');
 name1:='p1';a1:=3;b1:=-4;c1:=-2;d1:=0;
 name2:='p2';a2:=2;b2:=1;c2:=-2;d2:=0;
 name3:='p3';a3:=4;b3:=1;c3:=-6;d3:=-2;
 name4:='p4';a4:=0;b4:=1;c4:=-3;d4:=2;
 norm_(a1,a2,b1,b2,c1,c2,d1,d2,n1);
 norm_(a3,a4,b3,b4,c3,c4,d3,d4,n2);
 kyt(n1,n2,u0);
 writeln('kyt ',u0:4:4);
 end.
vova287 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод программы Pascal на С++ Каtерина Помощь студентам 2 01.02.2012 22:13
перевод программы с pascal на accемблер munthrekosh Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 12.11.2011 16:25
Перевод программы с Pascal в C++ !!! !! ProgFrog Помощь студентам 0 09.04.2011 14:21
Перевод программы с Pascal в C++ GoodSpirit Помощь студентам 4 19.05.2010 18:04