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