subprograma+convertir+radianes+en+grados+minutos+y+segundos

=__**Subprograma Radianes en Grados, Minutos y Segundos**__=

Programa que lee el valor de un ángulo en radianes y muestra su valor en grados, minutos y segundos.
Se pide crear un subprograma que convierte un ángulo en radianes a grados, minutos y segundos.

code format="pascal" PROGRAM Radianes_Grados_Minutos_Segundos ;

PROCEDURE PasarRadianes_GradMinSeg (   rRadianes                    : Real ;                     VAR iGrados, iMinutos, iSegundos : Integer ) ; VAR rGrados, rMinutos, rSegundos : Real ; BEGIN rGrados := rRadianes * 180 / PI ;

iGrados  := Trunc (rGrados) ;

rMinutos := Frac  (rGrados)  * 60 ; iMinutos := Trunc (rMinutos)      ;

rSegundos := Frac (rMinutos)  * 60 ; iSegundos := Round (rSegundos) ;

END ; { PasarRadianes_GradMinSeg }

{--- Variables del Programa Principal -} VAR rRadianes                   : Real    ; iGrados, iMinutos, iSegundos : Integer ;

BEGIN { Programa Principal ---}

Write ('Escribe el valor de un Angulo en radianes: ') ; ReadLn (rRadianes) ;

PasarRadianes_GradMinSeg (rRadianes, iGrados, iMinutos, iSegundos) ;

WriteLn (rRadianes:0:5, ' radianes equivalen a ',            iGrados, 'º ', iMinutos, ''' ', iSegundos, '"')   ;

ReadLn ; END. code