![]() |
Помогите перевести из паскаля в си
uses crt;
type prm=record {прямая с полями, коэффициентами} a,b,c:real; end; tch=record {точка с полями, координатами} x,y:real; end; {процедура вычисления точки пересечения 2х прямых} procedure Peres2(a,b:prm; var t:tch); begin t.x:=(b.c*a.b-a.c*b.b)/(a.a*b.b-a.b*b.a); t.y:=(b.a*a.c-a.a*b.c)/(a.a*b.b-a.b*b.a); end; {функция проверки на пересечение} function Prov(a,b:prm):boolean; begin Prov:=a.a*b.b-a.b*b.a<>0; end; {процедура ввода данных} procedure Vvod(var a:prm;k:byte); begin repeat writeln('Введите коэффициенты прямой ',k); readln(a.a,a.b,a.c); if(a.a=0)and(a.b=0)then writeln('Это не прямая, повторите ввод') until(a.a<>0)or(a.b<>0); a.c:=-a.c;{перенесем C в левую часть получим ax+by+c=0} end; var a,b,c:prm; m12,m13,m23:tch; s:real; begin clrscr; Vvod(a,1); Vvod(b,2); Vvod(c,3); if not Prov(a,b)or not Prov(a,c)or not Prov(b,c) then begin write('Прямые попарно не пересекаются'); readln; exit end; Peres2(a,b,m12); Peres2(a,c,m13); Peres2(b,c,m23); writeln('Точка пересечения 1-2: ',m12.x:5:2,';',m12.y:5:2); writeln('Точка пересечения 1-3: ',m13.x:5:2,';',m13.y:5:2); writeln('Точка пересечения 2-3: ',m23.x:5:2,';',m23.y:5:2); s:=abs(m12.x*(m23.y-m13.y)+m23.x*(m13.y-m12.y)+m13.x*(m13.y-m23.y))/2; write('Площадь треугольника пересечений=',s:0:2); readln end. |
Миша_Гришин@vk, так с чем конкретно сложности?
Помогите перевести и сделайте всё за меня - это не одно и то же. |
Время: 06:33. |
Время: 06:33.
© OSzone.net 2001-