function Gcd(a,b: longint): longint; { Нахождение НОД } var i: longint; begin while b <> 0 do begin a := a mod b; i := b; b := a; a := i end; gcd := a end;
procedure ShortFraction(var m,n:longint); var k:longint; begin k:=Gcd(m,n); m:=m div k; n:=n div k end;
var a,b:longint; begin Write('Введите числитель и знаменатель дроби: '); Readln(a,b); ShortFraction(a,b); Writeln('Дробь после сокращения равна ',a,'/',b) end.
Тестовое решение: Введите числитель и знаменатель дроби: 25 15 Дробь после сокращения равна 5/3
{ Нахождение НОД }
var
i: longint;
begin
while b <> 0 do
begin
a := a mod b;
i := b; b := a; a := i
end;
gcd := a
end;
procedure ShortFraction(var m,n:longint);
var
k:longint;
begin
k:=Gcd(m,n);
m:=m div k; n:=n div k
end;
var
a,b:longint;
begin
Write('Введите числитель и знаменатель дроби: '); Readln(a,b);
ShortFraction(a,b);
Writeln('Дробь после сокращения равна ',a,'/',b)
end.
Тестовое решение:
Введите числитель и знаменатель дроби: 25 15
Дробь после сокращения равна 5/3
var xk: integer;
procedure Body (xx, yy: integer);
procedure Leg(x,y: integer);
var i: integer;
begin setpenwidth(3);
setpencolor(clwhite);
for i:=x-30 to x+30 do line(x,y-60,i,y);
setpencolor(clblack);
line(x-30,y,x,y-60);
line(x,y-60,x+30,y);
line(x-30,y,x+30,y);
floodfill(x,y-10,clblack);
end;
var s,n: integer;
begin setpenwidth(3);
setbrushcolor(clblack);
circle(xx-115,yy-100,20);
setbrushcolor(clwhite);
rectangle(xx,yy-10,xx+150,yy+130);
ellipse(xx-120,yy-140,xx+50,yy);
if xx mod 50<25 then
begin Leg(xx+20,yy+130);
Leg(xx+130,yy+150);
end
else
begin Leg(xx+20,yy+150);
Leg(xx+130,yy+130);
end;
line(xx-50,yy-5,xx-60,yy+50);
line(xx-60,yy+50,xx-100,yy+10);
line(xx-50,yy-5,xx-100,yy+10);
line(xx+110,yy-50,xx+150,yy-10);
line(xx+110,yy-50,xx+170,yy-60);
line(xx+150,yy-10,xx+170,yy-60);
floodfill(xx+130,yy-40,clblack);
line(xx-10,yy-150,xx+10,yy-100);
line(xx+10,yy-100,xx+40,yy-140);
line(xx-10,yy-150,xx+40,yy-140);
floodfill(xx+10,yy-120,clblack);
floodfill(xx+10,yy-140,clblack);
setpenwidth(1);
circle(xx-25,yy-100,25);
setpenwidth(7);
circle(xx-25,yy-110,8);
end;
procedure Miska;
begin setpenwidth(1);
setbrushcolor(clblue);
ellipse(10,300,110,350);
setbrushcolor(clskyblue);
ellipse(5,290,115,340);
setbrushcolor(clbrown);
ellipse(20,300,100,330);
end;
procedure Zv(x,y: integer);
begin setbrushcolor(clyellow);
circle(x,y,10);
setbrushcolor(clwhite);
circle(x-20,y,13);
circle(x+20,y,13);
circle(x,y-20,13);
circle(x,y+20,13);
end;
begin setwindowsize(500,400);
lockdrawing;
for xk:=500 downto 200 do begin clearwindow;
Zv(50,50);
Zv(380,20);
Zv(70,220);
Zv(170,320);
Body (xk,200);
Miska;
sleep(10);
redraw;
end;
end.