@KXSY Estou muito feliz, consegui resolver o problema, muito obrigado @KXSY , eu fiquei até 2h da manhã resolvendo a questão do URI Online Judge. Sobre o link http:// https://www.freepascal.org/docs-html/rtl/system/sqrt.html ele continua aqui para mim, com erro.
adicionado 43 minutos depois
É o seguinte, realmente o que você falou sobre raiz quadrada não pode ser negativa, mas tive que ir passo a passo e testando.
Fiz da seguinte forma como exercício é a distancia entre dois pontos, coloquei mais duas variáveis p1 / p2. Passo a passo (Lembrando 3º Exemplo - Ponto 1 (p1) -> x1 = 2.5 / y1 = -0.4 e Ponto 2 (p2) -> x2 = -12.2 / y2 = 7.0.
1ª Substração
p1 := (x2-x1);
p2 := (y2-y1);
2º Fazer a Potenciação (Aqui foi o erro) estava colocando exp(y*ln(x)), como você tinha falado o (ln) não pode se x é negativo mas não tinha lembrado, matamos a charada kkkkkk, realmente não pode. Em anexo o do site GDB Online e do Pascalzim.
exp(2*ln(x2-x1))
exp(2*ln(y2-y1))
Agora sabendo da existência onde começava o erro, tirei a função (Exp). Fiz assim:
p1 := abs(p1*p1);
p2 := abs(p2*p2);
com a função (Abs), claro a multiplicação duas vezes tanto no ponto 1 e ponto 2, foi resolvido, pois lembrando o valor que de ponto 1 ou ponto 2 fosse negativo, retornaria com a função (Abs) o valor absoluto real (positivo).
Finalmente o último passo 3º a raiz quadrada, antes de tudo somando o dois pontos (p1 e p2).
Tenho dois códigos diferentes mas com a mesma resolução :
Program URI_1015 ;
var
x1, x2, y1, y2, p1, p2, d : real ;
Begin
readln (x1, y1);
readln (x2, y2);
p1 := (x2-x1);
p2 := (y2-y1);
writeln (p1);
writeln (p2);
writeln ('');
p1 := abs(p1*p1);
p2 := abs(p2*p2);
writeln (p1);
writeln (p2);
writeln ('');
d := sqrt(p1+p2);
writeln (d);
End.
ou o mais curto:
Program URI_1015 ;
var
x1, x2, y1, y2, d : real ;
Begin
readln (x1, y1);
readln (x2, y2);
d := sqrt(abs((x2-x1)*(x2-x1))+abs((y2-y1)*(y2-y1)));
Writeln (d:0:4);
End.
@KXSY Muito obrigado mesmo, estou muito feliz, até a próxima, abraços!