Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////
- // ALGORITMO DEL PROGRAMA //
- ////////////////////////////
- ////////////////////////////
- // ALGORITMO DEL PROGRAMA //
- ////////////////////////////
- DEFINE: <segundosTieneUnMinuto> "60" :fin-DEFINE
- DEFINE: <segundosTieneUnaHora> "60" :fin-DEFINE
- DEFINE: <minutosTieneUnaHora> "60" :fin-DEFINE
- DEFINE: <segundosTieneUnDia> "60" :fin-DEFINE
- DEFINE: <horasTieneUnDia> "24" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><0> "6" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><1> "2" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><2> "5" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><3> "5" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><4> "4" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><5> "5" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><6> "6" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><7> "3" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><8> "7" :fin-DEFINE
- DEFINE: <ledsQueTieneUn><9> "6" :fin-DEFINE
- FUNCTION cuantosiTieneUn( <i>, <n> ):
- RETORNA( el valor de <ledsQueTieneUn>< el valor de la división entera de <i> entre "10" > mas <ledsQueTieneUn>< el valor del resto de la división entera de <i> entre "10" > )
- :fin-FUNCION
- FUNCTION cuantosiAcumulaUn( <i>, <n> ):
- SI( <n> tiene el valor "0" ):
- - Decrementar el valor de <n> una unidad
- RETORNA( el valor que retorna <cuantosiAcumulaUn(<i>,<n>)> mas <cuantosiTieneUn(<i>,<n>)
- :SI-NO:
- RETORNA( 0 )
- :fin-SI
- :fin-FUNCION
- FUNCTION ledsEn( <n> ){
- - Declarar una variable <parpadeos> de tipo numérico
- - Asignar a <parpadeos> el valor "0"
- - Declarar una variable <horas> de tipo numérico
- - Declarar una variable <minutos> de tipo numérico
- - Declarar una variable <segundos> de tipo numérico
- - Declarar una variable <vueltasDias> de tipo numérico
- - Declarar una variable <vueltasMinutos> de tipo numérico
- - Declarar una variable <vueltasHoras> de tipo numérico
- - Asignar a <vueltasMinutos> el valor de la división entera de <n> entre <segundosTieneUnMinuto>
- - Asignar a <segundos> el valor del resto de la división entera de <n> entre <segundosTieneUnMinuto>
- - Asignar a <n> el valor de <vueltasSegundos>
- - Asignar a <vueltasHoras> el valor de la división entera de <n> entre <minutosTieneUnaHora>
- - Asignar a <minutos> el valor del resto de la división entera de <n> entre <minutosTieneUnaHora>
- - Asignar a <n> el valor de <vueltasMinutos>
- - Asignar a <vueltasDias> el valor de la división entera de <n> entre <horasTieneUnDia>
- - Asignar a <horas> el valor del resto de la división entera de <n> entre <horasTieneUnDia>
- - Declarar una variable <i> de tipo numérico
- - Asignar a <i> el valor "0"
- MIENTRAS( <i> no sea mayor que "9" ):
- - Incrementar el valor de <parpadeos> el valor de <cuantosiAcumulaUn(<i>,"59")> por <vueltasMinutos> más el valor de <cuantosiAcumulaUn(<i>,<segundos>)>
- - Incrementar el valor de <parpadeos> el valor de <cuantosiAcumulaUn(<i>,"59")> por <vueltasHoras> más el valor de <cuantosiAcumulaUn(<i>,<minutos>)>
- - Incrementar el valor de <parpadeos> el de <cuantosiAcumulaUn(<i>,"23")> por <vueltasDias> más el valor de <cuantosiTieneUn(<i>,<horas>)>
- :fin-MIENTRAS
- RETORNA( el valor de <parpadeos> )
- :fin-FUNCION
- PROGRAMA:
- - Declarar una variable <segundos> de tipo numérico
- - Declarar una variable <parpadeos> de tipo numérico
- REPETIR mientras( queden líneas ):
- - Leer un número y asignarlo a <segundos>
- - Asignar a <parpadeos> el valor que retorna la función <ledsEn( <segundos> )>
- // MOSTRAR EL RESULTADO
- - Mostrar el valor de <parpadeos>
- :fin-REPETIR
- :fin-PROGRAMA
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement