Llevo varios días repasando matemáticas a la vez estoy leyendo el libro Aprenda a pensar como un programador con python. Para ir aplicando y asimilando ambos conceptos voy escribiendo pequeños programas en Python con los conceptos de matemáticas. En esta ocasión le tocó a la geometría plana. En realidad lo único que hace el programa es calcular el área de triángulos, cuadrados y polígonos regulares. Además, en el caso del cuadrado, permite calcular la longitud de la diagonal. Algo muy sencillo pero que permite poner en práctica el uso de condiciones, funciones y conversiones de variables tipo string a númericas (int).
El resultado en Python es este:
#!/usr/bin/env python # -⁻- coding: UTF-8 -*- import math # Esta es una función que asigna un color normal (blanco) en la terminal. def normal(): print chr(27)+"[0m" #Función para generar líneas vacias. def nLineas(n): i=0 while i != n: print i=i+1 # Funciones para resolver áreas. def areaTriangulo(b,h): return (b*h)/2.0 def areaCuadrado(l): return l**2 def areaRegular(lados,lado,apotema): return (lados*lado*apotema)/2.0 def diagonalCuadrado(l): return math.sqrt(l**2+l**2) lados=raw_input(chr(27)+"[0m"+"Escribe con que figura geométrica quieres trabajar (número de lados): ") #En realidad todo el programa es una gran condición que sigue el orden en que se escribió. En cuanto se cumple una condición el programa se termina o pasa a la siguiente condición. if int(lados) == 3: nLineas(1) print "Bien! Trabajaremos con el triangulo" print "¿Qué desea hacer?" print chr(27)+"[1;34m"+"Calcular área(1)?" print chr(27)+"[0m"+"Inserte opción:" trianguloOpcion=raw_input() nLineas(1) if int(trianguloOpcion) == 1: base=raw_input(chr(27)+"[1;31m"+"Inserte la longitud de la base: ") altura=raw_input("Inserte la altura del triángulo: ") nLineas(1) print chr(27)+"[1;32m"+'\t', "Resultado: ", areaTriangulo(float(base),float(altura)) normal() else: print "Opción inválida" elif int(lados) == 4: print "Bien! Trabajaremos con el cuadrado" print "¿Qué desea hacer?" print chr(27)+"[1;34m"+"Calcular área(1), longitud de la diagonal(2)?" print chr(27)+"[0m"+"Inserte opción:" cuadradoOpcion=raw_input() nLineas(1) if int(cuadradoOpcion) == 1: lado=raw_input(chr(27)+"[1;31m"+"Inserte la longitud del lado: ") nLineas(1) print chr(27)+"[1;32m"+'\t', "Resultado: ", areaCuadrado(float(lado)) normal() elif int(cuadradoOpcion) == 2: lado=raw_input(chr(27)+"[1;31m"+"Inserte la longitud del lado: ") nLineas(1) print chr(27)+"[1;32m"+'\t', "Resultado: ", diagonalCuadrado(float(lado)) normal() else: nLineas(1) print "Opción invalida" elif int(lados) > 4: print "Se trabajará con poligonos regualares de más de cuatro lados" print "¿Qué desea hacer?" print chr(27)+"[1;34m"+"Calcular área(1)?" print chr(27)+"[0m"+"Inserte opción..." opcion=raw_input() nLineas(1) if int(opcion) == 1: apotema=raw_input(chr(27)+"[1;31m"+"Inserte la longitud de la apotema: ") lado=raw_input("Inserte la longitud del lado: ") nLineas(1) print chr(27)+"[1;32m"+'\t', "Resultado: ", areaRegular(int(lados),float(lado),float(apotema)) normal() else: nLineas(1) print "Error! Figura no conocida" raw_input("Enter para salir")
Seguramente tenga algunos fallos y la sintaxis no sea la más clara posible pero bueno, estoy aprendiendo.
Filed under: GNU/Linux, Programación, Python, Software libre