<html>
<p>Resolver problemas sencillos es una buena praxis si quieres aprender a programar, crear proyectos pequeños e irlos realizando te empujara a ser cada vez un mejor programador y así crecer profesionalmente.</p>
<p><img src="https://stickybitshell.files.wordpress.com/2015/01/ecuaciones-de-primer-y-segundo-grado.jpg" width="239" height="180"/></p>
<p><br></p>
<p>Vamos a ver al final como resolver una ecuación de segundo grado en python, pasandole los valores que queramos y obteniendo salidas por pantalla :D</p>
<p><br></p>
<p>Hoy les voy a compartir una entrada que hace mucho postie en mi Blog Antiguo, digo antiguo por que prefiero Steem que me remunera por escribir.</p>
<p><br></p>
<p>En la universidad recuerdo a un profesor de Matemáticas que en calculo de Diferenciales me decía que el agua tibia ya estaba descubierta y que la rueda ya hace muchos años la usábamos.</p>
<p><br></p>
<p>Esto lo decía por mis torpes esfuerzos de hacer las cosas de otra manera casi siempre al resolver un problema... quizá esta forma de pensar es lo que me ha hecho reflexionar y dedicarme de verdad a la programación.</p>
<p><br></p>
<p>Es por ello que mientras mas discuto ideas con amigos familiares y otros me sigo dando cuenta que cada cabeza es un mundo :S volví a descubrir la rueda jeje, y por ello y mas he seguido reflexionando en los libros de programación y es que en estos nos enseñan muchas cosas trilladas pero que quizás cada uno de nosotros entiende y aplica de una manera u otra diferentes hasta en la lógica de una simple ecuación..</p>
<p><br></p>
<p>Aunque normalmente encontraba una solución exacta de los problemas o muy aproximada esto hacia que no tomara el 100% de la calificación.</p>
<p><br></p>
<p>En programación he visto que cada Educador o Facilitador te explica o se hace explicar con sus programas como el los entiende y lo importante siempre es que el programa funcione :D.</p>
<p><br></p>
<p> Ya he visto varios libros que me gustaría compartir con ustedes y así mejorar todos juntos con sus comentarios, dudas y mejoras y lo mejor es que en python si hay que hacer muchas mejoras, desde la legibilidad del programa hasta la síntesis o agrupamiento muchas lineas de códigos en 1 o unas pocas mas :D.</p>
<p><br></p>
<p>Para abrir con programa muy trillado pero que se puede mejorar mucho. Me decidí a comenzar con la resolución de una ecuación de 2do grado que contiene algunas sentencias condicionales anidadas y algunas ecuaciones... La solución fue sacada de "Introducción a la Programación con Python y C" ojo no pretendo tocar C, Una ecuación de segundo grado se ve así:</p>
<p><br></p>
<p><img src="https://stickybitshell.files.wordpress.com/2014/11/ecuaaa.png" width="258" height="23"/></p>
<p><br></p>
<p>Donde lo que nos interesa en programación no es lo mismo que en matemáticas. en matemáticas nos interesa saber cual es el valor de x o las raíces de X, y en programación nos interesa que el programa tome los datos de "a" , "b" y "c" por lo que en lo primero que debemos pensar es en como hacer que el computador pida estos datos y luego calcule el valor de x, recordemos que son 2... Una para el valor positivo y otro para la raíz negativa</p>
<p><img src="https://stickybitshell.files.wordpress.com/2014/11/ecu2do.png" width="174" height="44"/></p>
<p>Y Bueno Aquí tenemos el programa para la próxima entrada la vamos a comentar y resolver un problema interesante :D</p>
<pre><code>from math import sqrt<br>
<br>
a = float(raw_input('Valor de a: '))<br>
<br>
b = float(raw_input('Valor de b: '))<br>
<br>
c = float(raw_input('Valor de c: '))<br>
<br>
if a != 0:<br>
discriminante= b**2 - 4*a*c<br>
if discriminante >=0:<br>
<br>
x1 = (-b + sqrt(discriminante)) / (2 * a)<br>
<br>
x2 = (-b - sqrt(discriminante)) / (2 * a)<br>
<br>
if x1==x2:<br>
<br>
print 'La Solucion de la ecuacion es: x1=%4.3f'% x1<br>
<br>
else:<br>
<br>
print 'Soluciones de la ecuacion: x1=%4.3f y x2=%4.3f ' % (x1, x2)<br>
<br>
else:<br>
<br>
print 'No Hay soluciones Reales. '<br>
<br>
else:<br>
<br>
if b != 0:<br>
<br>
x = -c / b<br>
<br>
print 'Solucion de la ecuacion: x=%4.3f ' % x<br>
<br>
else:<br>
<br>
if c != 0:<br>
<br>
print 'La ecuacion no tiene solucion. '<br>
<br>
else:<br>
<br>
print 'La ecuacion tiene infinitas soluciones. '<br>
<br>
</code></pre>
<p>Este código es muy sencillo, paso a detallar linea a linea para los que no son entendidos :D</p>
<ol>
<li>Importamos la la función para resolver raices de math</li>
<li>Pedimos a el usuario el valor de a</li>
<li>Pedimos a el usuario el valor de b</li>
<li>Pedimos a el usuario el valor de c</li>
<li>Creamos unas condiciones de "if" anidados, si sucede esto, "elif" si no sucede lo primero y "else" si no sucede nada de lo anterior, para la linea 5 si "a" es diferente de "!=" has esto</li>
<li>Las lineas 6,7 son propias de la resolución de la ecuación.</li>
<li>Luego verificamos algunos cálculos de la ecuación como por ejemplo: el discriminante para poder saber si existen raíces positivas de la ecuación.</li>
<li>La linea "if b != 0:", ojo debes notar que este if esta dentro del else, es decir que se debe cumplir la primera condición para llegar a esta y bueno si "b" es diferente de 0 hacer:</li>
<li>Tendra una sola Raíz Real y la calcula y en las lineas siguiente muestra el resultado</li>
<li>luego else: if c != 0: si es diferente a 0 imprime algo y si else: imprime otra cosa...</li>
</ol>
<p>Si quieres que explique mas el problema, en la siguiente entrada si llego a 50 votos lo haré :D</p>
<p>SAcado de mi Blog: <a href="http://wp.me/p3nJhK-6H">http://wp.me/p3nJhK-6H</a></p>
</html>