Magazine

Repasa matemáticas con Python (II)

Publicado el 12 septiembre 2010 por Iyanmv @iyanmv

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. :) Si queréis probarlo lo mejor es copiar el código en un archivo de texto, guardarlo como prueba.py, darle permisos de ejecución (chmod +x prueba.py) y ejecutarlo en una terminal.


Filed under: GNU/Linux, Programación, Python, Software libre Repasa matemáticas con Python (II)

Volver a la Portada de Logo Paperblog