Эту задачу уже решали здесь. Но, если трудно поискать, то вот программа: var a,b,c,d,x,y,z,y1,z1,y2,z2,nod:integer; begin writeln('1-я дробь (числитель и знаменатель):'); readln(a,b); writeln('2-я дробь (числитель и знаменатель):'); readln(c,d); y1:=a*d+c*b; y2:=y1; z1:=b*d; z2:=z1; while (y2>0)and(z2>0) do if y2>z2 then y2:=y2 mod z2 else z2:=z2 mod y2; nod:=y2+z2; y1:=y1 div nod; z:=z1 div nod; x:=y1 div z; y:=y1 mod z; if x>0 then writeln(x,' ',y,'/',z) else writeln(y,'/',z); end.
Пример: 1-я дробь (числитель и знаменатель): 3 4 2-я дробь (числитель и знаменатель): 5 6 1 7/12
Const nx=30;var i,j,p,n:integer;A:array[1..nx,1..nx] of integer;d,Sn,min:real;begin p:=1;write('Введите размер матрицы');Read(n);for i:=1 to n do beginfor j:=1 to n do beginA[i,j]:=random(3)-2;write(A[i,j]:4);end;writeln;end;writeln;writeln;for i:=1 to n do beginfor j:=1 to n do beginif i = j then begin if A[i,j]<> 0 then p:=p* A[i,j];write(A[i,j]:4);endelse write(' ':4);end;writeln;end;write('p =',p);writeln;writeln;for i:=1 to n do beginfor j:=1 to n do beginif (i= n -j +1) then begin if A[i,j]<> 0 then p:=p* A[i,j];write(A[i,j]:4);endelse write(' ':4);end;writeln;end;write('p =',p);end.
Var i,j,k:longint; begin for i:=1 to 1000 do for j:=1 to 1000 do for k:=1 to 10000 do if sqr(i)+sqr(j)=sqr(K)then begin writeln(i,' ',j,' ',k); {вывожу все тройки, можно убрать} if i+j+k=1000 then begin writeln('! ',i,' ',j,' ',k); {нужная тройка} exit; {прерывание программы} end; end; end.
var a,b,c,d,x,y,z,y1,z1,y2,z2,nod:integer;
begin
writeln('1-я дробь (числитель и знаменатель):');
readln(a,b);
writeln('2-я дробь (числитель и знаменатель):');
readln(c,d);
y1:=a*d+c*b; y2:=y1;
z1:=b*d; z2:=z1;
while (y2>0)and(z2>0) do
if y2>z2 then y2:=y2 mod z2 else z2:=z2 mod y2;
nod:=y2+z2;
y1:=y1 div nod;
z:=z1 div nod;
x:=y1 div z;
y:=y1 mod z;
if x>0 then writeln(x,' ',y,'/',z) else writeln(y,'/',z);
end.
Пример:
1-я дробь (числитель и знаменатель):
3 4
2-я дробь (числитель и знаменатель):
5 6
1 7/12