Var i,z:integer; a:array[1..2,1..3]of integer; begin for i:=1 to 2 do begin write('Введите числитель и знаменатель дроби (через пробел): '); readln(a[1,i],a[2,i]); end; a[2,3]:=a[2,1]*a[2,2]; a[1,3]:=a[1,1]*a[2,2]+a[1,2]*a[2,1]; z:=a[1,3] div a[2,3]; a[1,3]:=a[1,3] mod a[2,3]; i:=a[2,3]; while i>1 do begin if (a[2,3] mod i=0) and (a[1,3] mod i=0) then begin a[2,3]:=a[2,3] div i; a[1,3]:=a[1,3]div i; i:=a[2,3]; end else i:=i-1; end; write(a[1,1],'/',a[2,1],'+',a[1,2],'/',a[2,2],'='); if z>0 then write(z); if a[1,3]>0 then writeln('(целая часть) ',a[1,3],'/',a[2,3],'(дробная часть)') end.
i,z:integer;
a:array[1..2,1..3]of integer;
begin
for i:=1 to 2 do
begin
write('Введите числитель и знаменатель дроби (через пробел): ');
readln(a[1,i],a[2,i]);
end;
a[2,3]:=a[2,1]*a[2,2];
a[1,3]:=a[1,1]*a[2,2]+a[1,2]*a[2,1];
z:=a[1,3] div a[2,3];
a[1,3]:=a[1,3] mod a[2,3];
i:=a[2,3];
while i>1 do
begin
if (a[2,3] mod i=0) and (a[1,3] mod i=0) then
begin
a[2,3]:=a[2,3] div i;
a[1,3]:=a[1,3]div i;
i:=a[2,3];
end
else i:=i-1;
end;
write(a[1,1],'/',a[2,1],'+',a[1,2],'/',a[2,2],'=');
if z>0 then write(z);
if a[1,3]>0 then writeln('(целая часть) ',a[1,3],'/',a[2,3],'(дробная часть)')
end.
Я считаю, что даны последовательные вершины четырехугольника, если нет - тогда придется немного поперебирать случаи.
Четырехугольник - ромб, если его диагонали перпендикулярны и середины диагоналей совпадают.
Программа
var xa, ya, xb, yb, xc, yc, xd, yd: integer;
var perp, center: boolean;
begin
read(xa, ya, xb, yb, xc, yc, xd, yd);
perp := (xa - xc) * (xb - xd) + (ya - yc) * (yb - yd) = 0;
center := (xa + xc = xb + xd) and (ya + yc = yb + yd);
if perp and center then
writeln('Rhombus')
else
writeln('NOT rhombus')
end.
Пример ввода:
-1 2
-2 -1
1 -2
2 1
Пример вывода:
Rhombus