vlad309523
29-05-2011, 11:38
Здравствуйте!
Надо:
Делаю программу для расчета корней квадратного уравнения и нужна помощь:
Данные выводятся так:
Корни уравнения: 1.0000 и -2.5000
А надо так:
Корни уравнения: 1 и -2.5
Переменные real.
type
xm=array[1..2] of real;
var
x: xm
begin
x[1]:=1;
x[2]:=2;
writeln('Корни уравнения: ',x[1]:0:4,' и ',x[2]:0:4)
end.
Надеюсь на Вашу помощь. Заранее спасибо.
Решение:
type
xm=array[1..2] of real;
txm=array[1..2] of string;
sm=array[1..2] of integer;
var
x: xm; tx: txm; s: sm;
n: integer;
procedure xn;
begin
str(x[n]:0:4,tx[n]);
s[n]:=3-length(tx[n])+pos('0',tx[n])
end;
procedure xn;
begin
str(x[n]:0:4,tx[n]);
tx[n]:=copy(tx[n],pos('.',tx[n])+1,4);
s[n]:=3-length(tx[n])+pos('0',tx[n]);
if s[n]<0 then s[n]:=4
end;
procedure xn;
begin
str(x[n]:0:4,tx[n]);
tx[n]:=copy(tx[n],pos('.',tx[n])+1,4);
s[n]:=3-length(tx[n])+pos('0000',tx[n]);
if s[n]<0 then
begin
s[n]:=3-length(tx[n])+pos('000',tx[n]);
if (s[n]<0) or (s[n]<>1) then
begin
s[n]:=3-length(tx[n])+pos('00',tx[n]);
if (s[n]<0) or (s[n]<>2) then
begin
s[n]:=3-length(tx[n])+pos('0',tx[n]);
if (s[n]<0) or (s[n]<>3) then s[n]:=4
end
end
end
end;
procedure xn;
begin
str(x[n]:0:4,tx[n]);
tx[n]:=copy(tx[n],pos('.',tx[n])+1,4);
if tx[n]='0000' then
s[n]:=0 else
begin
tx[n]:=copy(tx[n],2,3);
if tx[n]='000' then
s[n]:=1 else
begin
tx[n]:=copy(tx[n],2,2);
if tx[n]='00' then
s[n]:=2 else
begin
tx[n]:=copy(tx[n],2,1);
if tx[n]='0' then
s[n]:=3 else
s[n]:=4
end
end
end
end
begin
x[1]:=1;
x[2]:=2;
n:=1; xn;
n:=2; xn;
writeln('Корни уравнения: ',x[1]:0:s[1],' и ',x[2]:0:s[2])
end.
Всем спасибо за помощь.
Надо:
Делаю программу для расчета корней квадратного уравнения и нужна помощь:
Данные выводятся так:
Корни уравнения: 1.0000 и -2.5000
А надо так:
Корни уравнения: 1 и -2.5
Переменные real.
type
xm=array[1..2] of real;
var
x: xm
begin
x[1]:=1;
x[2]:=2;
writeln('Корни уравнения: ',x[1]:0:4,' и ',x[2]:0:4)
end.
Надеюсь на Вашу помощь. Заранее спасибо.
Решение:
type
xm=array[1..2] of real;
txm=array[1..2] of string;
sm=array[1..2] of integer;
var
x: xm; tx: txm; s: sm;
n: integer;
procedure xn;
begin
str(x[n]:0:4,tx[n]);
s[n]:=3-length(tx[n])+pos('0',tx[n])
end;
procedure xn;
begin
str(x[n]:0:4,tx[n]);
tx[n]:=copy(tx[n],pos('.',tx[n])+1,4);
s[n]:=3-length(tx[n])+pos('0',tx[n]);
if s[n]<0 then s[n]:=4
end;
procedure xn;
begin
str(x[n]:0:4,tx[n]);
tx[n]:=copy(tx[n],pos('.',tx[n])+1,4);
s[n]:=3-length(tx[n])+pos('0000',tx[n]);
if s[n]<0 then
begin
s[n]:=3-length(tx[n])+pos('000',tx[n]);
if (s[n]<0) or (s[n]<>1) then
begin
s[n]:=3-length(tx[n])+pos('00',tx[n]);
if (s[n]<0) or (s[n]<>2) then
begin
s[n]:=3-length(tx[n])+pos('0',tx[n]);
if (s[n]<0) or (s[n]<>3) then s[n]:=4
end
end
end
end;
procedure xn;
begin
str(x[n]:0:4,tx[n]);
tx[n]:=copy(tx[n],pos('.',tx[n])+1,4);
if tx[n]='0000' then
s[n]:=0 else
begin
tx[n]:=copy(tx[n],2,3);
if tx[n]='000' then
s[n]:=1 else
begin
tx[n]:=copy(tx[n],2,2);
if tx[n]='00' then
s[n]:=2 else
begin
tx[n]:=copy(tx[n],2,1);
if tx[n]='0' then
s[n]:=3 else
s[n]:=4
end
end
end
end
begin
x[1]:=1;
x[2]:=2;
n:=1; xn;
n:=2; xn;
writeln('Корни уравнения: ',x[1]:0:s[1],' и ',x[2]:0:s[2])
end.
Всем спасибо за помощь.