Guest User

Algoritmo - Challenge 13

a guest
Jun 21st, 2011
1,035
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ////////////////////////////
  2. // ALGORITMO DEL PROGRAMA //
  3. ////////////////////////////
  4.  
  5. ////////////////////////////
  6. // ALGORITMO DEL PROGRAMA //
  7. ////////////////////////////
  8.  
  9. DEFINE: <segundosTieneUnMinuto> "60" :fin-DEFINE
  10. DEFINE:  <segundosTieneUnaHora> "60" :fin-DEFINE
  11. DEFINE:   <minutosTieneUnaHora> "60" :fin-DEFINE
  12. DEFINE:    <segundosTieneUnDia> "60" :fin-DEFINE
  13. DEFINE:       <horasTieneUnDia> "24" :fin-DEFINE
  14.  
  15. DEFINE: <ledsQueTieneUn><0> "6" :fin-DEFINE
  16. DEFINE: <ledsQueTieneUn><1> "2" :fin-DEFINE
  17. DEFINE: <ledsQueTieneUn><2> "5" :fin-DEFINE
  18. DEFINE: <ledsQueTieneUn><3> "5" :fin-DEFINE
  19. DEFINE: <ledsQueTieneUn><4> "4" :fin-DEFINE
  20. DEFINE: <ledsQueTieneUn><5> "5" :fin-DEFINE
  21. DEFINE: <ledsQueTieneUn><6> "6" :fin-DEFINE
  22. DEFINE: <ledsQueTieneUn><7> "3" :fin-DEFINE
  23. DEFINE: <ledsQueTieneUn><8> "7" :fin-DEFINE
  24. DEFINE: <ledsQueTieneUn><9> "6" :fin-DEFINE
  25.  
  26. FUNCTION cuantosiTieneUn( <i>, <n> ):
  27.     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" > )
  28. :fin-FUNCION
  29.  
  30. FUNCTION cuantosiAcumulaUn( <i>, <n> ):
  31.     SI( <n> tiene el valor "0" ):
  32.     - Decrementar el valor de <n> una unidad
  33.         RETORNA( el valor que retorna <cuantosiAcumulaUn(<i>,<n>)> mas <cuantosiTieneUn(<i>,<n>)
  34.     :SI-NO:
  35.         RETORNA( 0 )   
  36.     :fin-SI
  37. :fin-FUNCION
  38.  
  39. FUNCTION ledsEn( <n> ){
  40.     - Declarar una variable <parpadeos> de tipo numérico
  41.     - Asignar a <parpadeos> el valor "0"
  42.    
  43.     - Declarar una variable <horas> de tipo numérico
  44.     - Declarar una variable <minutos> de tipo numérico
  45.     - Declarar una variable <segundos> de tipo numérico
  46.    
  47.     - Declarar una variable <vueltasDias> de tipo numérico
  48.     - Declarar una variable <vueltasMinutos> de tipo numérico
  49.     - Declarar una variable <vueltasHoras> de tipo numérico
  50.  
  51.     - Asignar a <vueltasMinutos> el valor de la división entera de <n> entre <segundosTieneUnMinuto>
  52.     - Asignar a <segundos> el valor del resto de la división entera de <n> entre <segundosTieneUnMinuto>
  53.    
  54.     - Asignar a <n> el valor de <vueltasSegundos>
  55.    
  56.     - Asignar a <vueltasHoras> el valor de la división entera de <n> entre <minutosTieneUnaHora>
  57.     - Asignar a <minutos> el valor del resto de la división entera de <n> entre <minutosTieneUnaHora>
  58.    
  59.     - Asignar a <n> el valor de <vueltasMinutos>
  60.    
  61.     - Asignar a <vueltasDias> el valor de la división entera de <n> entre <horasTieneUnDia>
  62.     - Asignar a <horas> el valor del resto de la división entera de <n> entre <horasTieneUnDia>
  63.    
  64.     - Declarar una variable <i> de tipo numérico
  65.     - Asignar a <i> el valor "0"
  66.     MIENTRAS( <i> no sea mayor que "9" ):
  67.         - Incrementar el valor de <parpadeos> el valor de <cuantosiAcumulaUn(<i>,"59")> por <vueltasMinutos> más el valor de <cuantosiAcumulaUn(<i>,<segundos>)>
  68.         - Incrementar el valor de <parpadeos> el valor de <cuantosiAcumulaUn(<i>,"59")> por <vueltasHoras> más el valor de <cuantosiAcumulaUn(<i>,<minutos>)>
  69.         - Incrementar el valor de <parpadeos> el de <cuantosiAcumulaUn(<i>,"23")> por <vueltasDias> más el valor de <cuantosiTieneUn(<i>,<horas>)>
  70.     :fin-MIENTRAS
  71.    
  72.     RETORNA( el valor de <parpadeos> )
  73.    
  74. :fin-FUNCION
  75.  
  76. PROGRAMA:
  77.  
  78.     - Declarar una variable <segundos> de tipo numérico
  79.     - Declarar una variable <parpadeos> de tipo numérico
  80.  
  81.     REPETIR mientras( queden líneas ):
  82.    
  83.         - Leer un número y asignarlo a <segundos>
  84.        
  85.         - Asignar a <parpadeos> el valor que retorna la función <ledsEn( <segundos> )>
  86.        
  87.         // MOSTRAR EL RESULTADO
  88.         - Mostrar el valor de <parpadeos>
  89.     :fin-REPETIR
  90. :fin-PROGRAMA
RAW Paste Data