// PascalABC.NET 3.0, сборка 1150 от 22.01.2016 begin var a,b,sgn:integer; var aa,bb,ap,bp:BigInteger; var s:string:=''; Write('Введите числитель и знаменатель дроби: '); Read(a,b); var n:=ReadInteger('Ввведите показатель степени:'); if n=0 then WritelnFormat('({0}/{1})^0 = 1',a,b) else if (a=0) and (b<>0) then WritelnFormat('(0/{0})^{1} = 0',b,n) else begin if a*b<0 then s:='-'; aa:=abs(a); bb:=abs(b); ap:=1; bp:=1; if n>0 then for var i:=1 to n do begin ap*=aa; bp*=bb end else for var i:=1 to -n do begin ap*=bb; bp*=aa end; if bp=1 then WritelnFormat('({0}/{1})^{2} = {3}{4}',a,b,n,s,ap) else WritelnFormat('({0}/{1})^{2} = {3}{4}/{5}',a,b,n,s,ap,bp) end end.
GraphABC;
begin
SetPenColor(ClGreen);
Line(100,100,120,140);
Line(100,100,80,140);
Line(80,140,120,140);
Line(100,140,70,190);
Line(100,140,130,190);
Line(70,190,130,190);
Line(100,190,50,250);
Line(100,190,150,250);
Line(50,250,150,250);
FloodFill(100,160,clGreen);
FloodFill(100,130,clGreen);
FloodFill(100,200,clGreen);
Line(300,100,320,140);
Line(300,100,280,140);
Line(280,140,320,140);
Line(300,140,270,190);
Line(300,140,330,190);
Line(270,190,330,190);
Line(300,190,250,250);
Line(300,190,350,250);
Line(250,250,350,250);
FloodFill(300,160,clGreen);
FloodFill(300,130,clGreen);
FloodFill(300,200,clGreen);
Line(500,100,520,140);
Line(500,100,480,140);
Line(480,140,520,140);
Line(500,140,470,190);
Line(500,140,530,190);
Line(470,190,530,190);
Line(500,190,450,250);
Line(500,190,550,250);
Line(450,250,550,250);
FloodFill(500,160,clGreen);
FloodFill(500,130,clGreen);
FloodFill(500,200,clGreen);
end.
begin
var a,b,sgn:integer;
var aa,bb,ap,bp:BigInteger;
var s:string:='';
Write('Введите числитель и знаменатель дроби: ');
Read(a,b);
var n:=ReadInteger('Ввведите показатель степени:');
if n=0 then WritelnFormat('({0}/{1})^0 = 1',a,b)
else
if (a=0) and (b<>0) then WritelnFormat('(0/{0})^{1} = 0',b,n)
else begin
if a*b<0 then s:='-';
aa:=abs(a); bb:=abs(b); ap:=1; bp:=1;
if n>0 then
for var i:=1 to n do begin ap*=aa; bp*=bb end
else
for var i:=1 to -n do begin ap*=bb; bp*=aa end;
if bp=1 then
WritelnFormat('({0}/{1})^{2} = {3}{4}',a,b,n,s,ap)
else
WritelnFormat('({0}/{1})^{2} = {3}{4}/{5}',a,b,n,s,ap,bp)
end
end.
Тестовые примеры:
Введите числитель и знаменатель дроби: 1 23
Ввведите показатель степени: 5
(1/23)^5 = 1/6436343
Введите числитель и знаменатель дроби: 1 6
Ввведите показатель степени: -4
(1/6)^-4 = 1296
Введите числитель и знаменатель дроби: -3 31
Ввведите показатель степени: 11
(-3/31)^11 = -177147/25408476896404831
Введите числитель и знаменатель дроби: -17 -125
Ввведите показатель степени: 4
(-17/-125)^4 = 83521/244140625
Введите числитель и знаменатель дроби: -15 27
Ввведите показатель степени: 0
(-15/27)^0 = 1
Введите числитель и знаменатель дроби: 0 3
Ввведите показатель степени: 2
(0/3)^2 = 0
Введите числитель и знаменатель дроби: 2 0
Ввведите показатель степени: 3
(2/0)^3 = 8/0
Введите числитель и знаменатель дроби: 0 0
Ввведите показатель степени: 3
(0/0)^3 = 0/0