Distancia+entre+dos+puntos+(con+Registros)

=__**Calcular la distancia entre dos puntos de un plano**__=

code format="pascal" PROGRAM DistanciaEntrePuntosEnPlano ;PROGRAM DistanciaEntrePuntosEnPlano ; TYPE trgPuntos = RECORD rX, rY : Real ; END ;

PROCEDURE LeerPunto   (VAR   rgUnPunto : trgPuntos) ; BEGIN WITH rgUnPunto DO     BEGIN Write ('X: ') ; ReadLn (rX) ; Write ('Y: ') ; ReadLn (rY) ; END ; END ;

PROCEDURE MostrarPunto (CONST rgUnPunto : trgPuntos) ; BEGIN WITH rgUnPunto DO       Write  ('(', rX:0:2, ', ', rY:0:2 , ')' ); END ;

FUNCTION fnrCalcularDistancia (CONST rgPunto_1, rgPunto_2 : trgPuntos) : Real ; VAR rDistancia : Real ; BEGIN rDistancia := sqrt (                     sqr(rgPunto_1.rX - rgPunto_2.rX) +                      sqr(rgPunto_1.rY - rgPunto_2.rY)                     ) ;

fnrCalcularDistancia := rDistancia ; END ;

{-- Variables del programa principal -} VAR rgPunto_1, rgPunto_2 : trgPuntos ; rDistancia          : Real ;

BEGIN {-- Programa Principal ---} Writeln ('Escribe coordenadas del Punto 1') ; LeerPunto (rgPunto_1) ; Writeln ('Escribe coordenadas del Punto 2') ; LeerPunto (rgPunto_2) ;

rDistancia := fnrCalcularDistancia (rgPunto_1,rgPunto_2);

Writeln ; Write ('La distancia entre los puntos ') ; MostrarPunto (rgPunto_1) ; Write (' y ') ; MostrarPunto (rgPunto_2) ; Write (' es: ') ; Writeln (rDistancia:0:2) ;

Writeln ; ReadLn ; END. code