Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Saberuneko en 22 Noviembre 2013, 16:19 pm



Título: (Utilidad Simple) - Calculador de Préstamos de sistema Francés
Publicado por: Saberuneko en 22 Noviembre 2013, 16:19 pm
En mi ciclo actual de Administración de Sistemas Informáticos en Red, tenemos una asignatura llamada Empresa e Iniciativa Emprendedora. Esta asignatura cubre más que nada la parte de gestión de una empresa para autónomos y, entre muchas cosas, hay muchos temas sobre economía.

La economía no es mi punto fuerte, y me lleva bastante tiempo hacer los ejercicios. Hace unos días, se nos explicó cómo funciona el sistema de préstamos francés e hicimos ejercicios sobre ello.

Para comprender mejor cómo funcionaba el sistema, decidí hacer una pequeña aplicación en PHP que resuelve el ejercicio de forma automática.

Resulta extremadamente útil para hacer mis propios ejercicios de prácticas y tener la solución para saber si lo he resuelto bien. (Y de paso, repaso PHP, que no deja de ser otra asignatura de mi ciclo)

A continuación os paso un par de screenshots de dicha aplicación:

Formulario:
(http://imageshack.us/a/img163/9396/5kjq.png)

Ejercicio resuelto tras introducir los datos:
(http://imageshack.us/a/img716/6717/5gl1.png)

No se ve muy bonita, pero cumple su función, que es calcular la cantidad a devolver por unidad de tiempo (ya sea diaria, mensual o anual), además de realizar una tabla con los valores de amortización periódica y relativa teniendo en cuenta el capital restante a devolver.

Para los que estén interesados en trastear con ello, aquí os dejo el código:

Código
  1. <html>
  2. <body>
  3. <form method ="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  4. C&aacute;lculo de Pr&eacute;stamo Franc&eacute;s<br/>
  5. Cuant&iacute;a Principal Prestada (euros):
  6. <input type="text" name = "co" value = "" /><br/>
  7. Inter&eacute;s (% anual):
  8. <input type="text" name = "i" value = "" /><br/>
  9. Duraci&oacute;n (a&ntilde;os):
  10. <input type="text" name = "n" value = "" /><br/>
  11. Tipo:<br/>
  12. <input type="radio" name = "tipo" value ="1" />
  13. Anual<br/>
  14. <input type="radio" name = "tipo" value ="12" />
  15. Mensual<br/>
  16. <input type="radio" name = "tipo" value ="365" />
  17. Diario<br/>
  18. <input type="submit" name= "calcular" value="ok" />
  19. </form>
  20. <table border = "1">
  21. <?php
  22. if (isset ($_POST["calcular"]))
  23. {
  24. //Volcado de variables desde form
  25. $co = $_POST["co"];
  26. $i = $_POST["i"];
  27. $n = $_POST["n"];
  28. $a = $_POST["tipo"];
  29.  
  30. //Variables de cálculo
  31. $lm = $n*$a;
  32. $op1 = ($i/$a)/100;
  33. $op2 = pow((1+$op1),$lm);
  34. $op3 = $op2-1;
  35. $cn = $co*($op1*$op2)/$op3;
  36.  
  37. echo $cn;
  38.  
  39. //Iniciando acumuladores
  40. $tar = 0;
  41. $cpr = $co;
  42. echo "<tr><td>Tiempo</td><td>Pago</td><td>Inter&eacute;s</td><td>Amortizaci&oacute;n</td><td>T. Amortiz</td><td>Cpt. Pend.</td></tr>";
  43. echo "<tr><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td>";
  44. echo "<td>$cpr</td></tr>";
  45.  
  46. for ($tr=1;$tr<=$lm;$tr++)
  47. {
  48. $pr = $cn;
  49. $ir = $cpr*$op1;
  50. $ar = $pr-$ir;
  51. $tar = $tar+$ar;
  52. $cpo = $cpr;
  53. $cpr = $cpr - $ar;
  54.  
  55. echo "<tr>";
  56. echo "<td>$tr</td>";
  57. echo "<td>$pr</td>";
  58. echo "<td>$ir</td>";
  59. echo "<td>$ar</td>";
  60. echo "<td>$tar</td>";
  61. echo "<td>$cpr</td>";
  62. echo "</tr>";
  63. }
  64. }
  65. ?>
  66. </table>
  67. </body>
  68. </html>

Si veis algún bug o error, comentádmelo. Si hay algo que puedo mejorar en mi código, también agradecería críticas constructivas.

Un Saludo.


Título: Re: (Utilidad Simple) - Calculador de Préstamos de sistema Francés
Publicado por: Graphixx en 23 Noviembre 2013, 11:10 am
QUe buen usuario eres ome compa Saberuneko, gracias por compartir eso a los newbies les servira bastante, ya que estas en esas te recomiendo echarle una ojeada a esta que yo comparti http://foro.elhacker.net/php/descarga_directa_sistema_pos_prisma_codigo_fuente-t372446.0.html si la pules un poco, hasta puedes hacerte de ingresos vendiendola en tu ciudad  :laugh:


Título: Re: (Utilidad Simple) - Calculador de Préstamos de sistema Francés
Publicado por: Saberuneko en 23 Noviembre 2013, 15:56 pm
¡No suelo dedicarme a robarle la gente el trabajo! x3
Pero sí, le echaré un vistazo... ¡así de primeras parece bastante complejo!

(Soy bastante nuevo con PHP, empecé con ello hace 2 meses o así. Igual no entiendo mucho del code todavía) :P


Título: Re: (Utilidad Simple) - Calculador de Préstamos de sistema Francés
Publicado por: Graphixx en 23 Noviembre 2013, 20:07 pm
jeje yo no diria que tomar ese codigo y generar ingresos de cuenta de el, seria robar nada, si yo lo publique y lo hice libre era con la intencion de que si alguien se podia apañar pal negocio propio, o de terceros, algun ingreso extra (por que no creo que esa app de para vivir de ella) me parece excelente esa es la idea... ya que estais con lo de PHP espero que hayas visto tambien este otro post http://foro.elhacker.net/php/video_curso_de_master_en_php_3_niveles_indice_8_gigas_de_videotutoriales-t399382.0.html , felicidades por programar en PHP sois un guerrero mas pal club, exitos.


Título: Re: (Utilidad Simple) - Calculador de Préstamos de sistema Francés
Publicado por: dRak0 en 28 Noviembre 2013, 03:51 am
Podrias validar los inputs. Para validarlos podes utilizar htmlentities() , sin embargo no uses los flags por defecto porque son muy facil de bypassear.(Lo mejor seria hacerlo con expr.regulares,pero no creo que sea necesaria en este caso armar algo asi ,pasate por php.net en htmlentities y lee las flags).Vienen por defecto la flag de quitar html y quitar las comillas dobles. Podrias fijarte que sean numeros tmb...

bool is_numeric(mixed $tuvariable)

Devuelve TRUE si es numerico .

Saludos! Y viva PHP!