Вы находитесь на странице: 1из 15

Facultad: Ingeniería en Sistemas, Electrónica Carrera: Telecomunicaciones

Nivel: Tercero Asignatura: Alumnos participantes:


Programación Avanzada
Paralelo: “A” Lizbeth Pallo , Michael López , Paul Toapanta , Jhon Sivinta

Docente: Patricio Encalada Ciclo académico: 2018-2019

I. Tema:
Calculadora científica

II. Objetivos:

 Objetivo general

- Elaborar una calculadora de operaciones básicas con el lenguaje de programación de python.

 Objetivo especifico

Utilizar las librerías de math y cmath y aplicarlas en el programa

Dar a conocer el funcionamiento de nuestra calculadora


III. Introducción:
La calculadora ha sido una gran importancia a lo largo de nuestras vidas ya que nos ayuda a
resolver diferentes problemas que necesiten de una operación de las más simples hasta la más
compleja.
La calculadora científica es una herramienta de gran utilidad ya que puede a ser más funciones que
una calculadora normal, y de gran utilidad para diferentes usuarios. Pero los usuarios no pueden ver
cómo es que se logran las funciones que ha elegido ya que estas fueron programadas por
programadores e introducidas en un sistema para llevar exitosamente la función.
IV. Listado de Equipos, Materiales Y recursos:
1. Pc
2. Python
3. Sublime text
4. Internet

V. Marco teórico
Módulos Matemáticos en Python : Math y Cmath
Cuando escribimos programas en nuestra vida diaria, usualmente nos encontramos con situaciones en
donde necesitamos usar un poco de matemáticas para hacer una tarea. Como otros lenguajes de
programación, Python proporciona varios operadores para realizar cálculos básicos como * para
multiplicación, % para módulos y // para división.
Si estás escribiendo un programa para realizar tareas específicas como estudiar movimiento periódico o
simular circuitos eléctricos, necesitarás trabajar con funciones trigonométricas así como números
complejos. Mientras que no puedes usar estas funciones directamente, puedes acceder a ellas incluyendo
dos módulos matemáticos primero. Estos módulos son mathy cmath.
Funciones Aritméticas

Estas funciones realizan varias operaciones aritméticas como calcular el valor superior, inferior o absoluto
de un número usando las funciones floor(x), ceil(x), y fabs(x) respectivamente. La función ceil(x)
devolverá el entero más pequeño que sea mayor qué o igual a x. De manera similar, floor(x) devuelve el
entero más grande menor qué o igual a x. La función fabs(x) devuelve el valor absoluto de x.

También puedes realizar operaciones no triviales como calcular el factorial de un número usando
factorial(x). Un factorial es el producto de un entero y todos los enteros positivos menores que este. Es
usado extensivamente cuando se trabaja con combinaciones y permutaciones. También puede ser usado
para calcular el valor de las funciones seno y coseno.
Otra función útil en el módulo math es gcd(x,y), la cuál te da el máximo común divisor (MCD) de dos
números x y y. Cuando x y y no son cero, esta función regresa el entero positivo más grande que divida
tanto a x como a y. Puedes usarlo indirectamente para calcular el mínimo común múltiplo de dos números
usando la siguiente fórmula:

Funciones Trigonométricas
Estas funciones relacionan los ángulos de un triángulo a sus lados. Tienen muchas aplicaciones, incluyendo
el estudio de triángulos y el modelado de fenómenos periódicos como el sonido y ondas de luz. Ten en
mente que el ángulo que proporcionas está en radianes.

Puedes calcular sin(x) , cos(x) , y tan(x) directamente usando este módulo. Sin embargo, no hay fórmula
directa para calcular cosec(x) , sec(x) , y cot(x) , pero su valor es igual al recíproco del valor devuelto
por sin(x) , cos(x) , y tan(x) respectivamente.

En lugar de calcular el valor de funciones trigonométricas como cierto ángulo, también puedes hacer el
cálculo inverso y calcular el ángulo al que tienen un valor dado usando asin(x) , acos(x) , and atan(x) .
math.acos( x )
Devuelve el arco coseno de x , en radianes.

math.asin( x )
Devuelve el arco seno de x , en radianes.

math.atan( x )
Devuelve la tangente de arco de x , en radianes.

math.atan2( y , x )
Regreso , en radianes. El resultado es entre y . El vector en el plano desde el origen al punto forma este ángulo
con el eje X positivo. El punto es que se conocen los signos de ambas entradas, por lo que puede calcular el
cuadrante correcto para el ángulo. Por ejemplo, y son ambos , pero lo es .atan(y / x)-
pipi(x,y)atan2()atan(1)atan2(1, 1)pi/4atan2(-1, -1)-3*pi/4

math.cos( x )
Devuelve el coseno de x radianes.

math.hypot( x , y )
Devolver la norma euclidiana, . Esta es la longitud del vector desde el origen hasta el
punto .sqrt(x*x + y*y)(x, y)

math.sin( x )
Devuelve el seno de x radianes.

math.tan( x )
Devuelve la tangente de x radianes.

Funciones Hiperbólicas
Las funciones hiperbólicas son análogas a las funciones trigonométricas que están basadas en una hipérbole
en lugar de un círculo. En trigonometría, los puntos (cos b, sin b) representan los puntos de un círculo
unitario. En caso de funciones hiperbólicas, los puntos (cosh b, sinh b) representan los puntos que forman la
mitad derecha de una hipérbola equilátera.
Justo como las funciones trigonométricas, puedes calcular el valor de sinh(x), cosh(x), y tanh(x)
directamente. El resto de los valores pueden ser calculados usando varias relaciones entra estos tres valores.
También hay otras funciones como asinh(x), acosh(x), and atanh(x), lac cuales pueden ser usadas para
culcular la inversa de los valores hiperbólicos correspondientes.
math.acosh( x ) [1]
Devuelve el coseno hiperbólico inverso de x .

math.asinh( x )
Devuelve el seno hiperbólico inverso de x .

math.atanh( x )
Devuelve la tangente hiperbólica inversa de x .

math.cosh( x )
Devuelve el coseno hiperbólico de x .

math.sinh( x )
Devuelve el seno hiperbólico de x .

math.tanh( x )
Devuelve la tangente hiperbólica de

Funciones Exponenciales y Logaritmicas


Probablemente estarás lidiando con exponentes y logaritmos más seguido que con funciones hiperbólicas y
trigonométricas. Afortunadamente, el módulo math proporciona muchas funciones para ayudarnos a
calcular logaritmos.

Puedes usar log(x,[base]) para calcular el log de un número dado x a la base dada. Si dejas fuera el
argumento opcional de base, el log de x es calculado a la base e. Aquí, e es una constante matemática cuyo
valor es 2.71828182.... y puede ser accedida usando math.e . Por cierto, Python también te permite acceder
a otra constante π usando math.pi .

Si quieres calcular los valores logarítmicos base 2 o base 10, usar log2(x) y log10(x) revolverá
resultados más precisos que log(x, 2) y log(x, 10) . Ten en mente que no hay función log3(x) , así que
tendrás que seguir usando log(x, 3) para calcular valores logarítmicos log(x,3). Lo mismo aplica para
todas las demás bases.
Si el valor cuyo logaritmo estás calculando es bastante cercano a 1, puedes usar log1p(x) .
El 1p en log1p significa 1 más. Así pues, log1p(x) calcula log(1+x) en donde x es cercano a cero. Sin
embargo, los resultados son más precisos con loglp(x) .

También puedes calcular el valor de un número x elevado a la potencia yusando pow(x, y) . Antes de
computar las potencias, esta función convierte ambos argumentos a tipo float. Si quieres que el resultado
final se compute en potencias enteras exactas, deberías usar la función integrada pow() o el operador ** .

También puedes computar la raíz cuadrada de cualquier número dado xusando sqrt(x) , pero la misma cosa
también puede ser lograda usando pow(x, 0.5) .

Números Complejos

Los números complejos son almacenados inicialmente usando coordenadas rectangulares o Cartesianas. Un
número complejo z será representado en coordenadas Cartesianas como z = x + iy, en donde x representa la
parte real y y representa la parte imaginaria. Otra manera de representarlos es usando coordenadas polares.

En este caso, el número complejo sería definido por una combinación de los módulos r y ángulo de fase
phi. El módulo r es la distancia entre el número complejo z y el origen. El ángulo phi es el ángulo contrario
medido en radianes desde el eje x positivo al segmento de línea uniendo a z y el origen.

Mientras lidiamos con números complejos, el módulo cmath puede ser de gran ayuda. El módulo de un
número complejo puede ser calculado usando la función integrada abs() y su fase puede ser calculada
usando la función phase(z) disponible en el módulo cmath. Puedes convertir un número complejo en forma
rectangular a forma polar usando polar(z), la cuál devolverá un par (r, phi), en donde r es abs(z) y phi es
phase(z).

De manera similar, puedes convertir un número complejo en forma polar a rectangular usando rect(r, phi).
El número complejo devuelto por esta función es r * (math.cos(phi) + math.sin(phi)*1j). [1]

Conversión angular
math.degrees( x )
Convierta el ángulo x de radianes a grados.

math.radians( x )
Convierta el ángulo x de grados a radianes.

VI.
Actividades por desarrollar;

1. Realizar un programa tal que:

- Me muestre a través de un menú las operaciones básica suma resta multiplicación división
entre otros.
- Cada vez que termine el cálculo de una operación nos va a dar la respuesta.

- Cada que vez que finalice la operación el programa nos va a volver al menú para poder
realizar otra operación.

VII. Resultados Obtenidos:


La realización de esta actividad muestra como la calculadora tiene un proceso de programación para
que el cálculo de una operación matemática de su respuesta.
VIII. Conclusiones:

El programa que realizamos hemos utilizando nuestros conocimientos aprendidos en clase lo cual
ponemos énfasis en el desarrollo de la calculadora

Como hemos podido ver las calculadoras pueden construir a fomentar el pensamiento matemático
además no solo cuenta con el resultado final si no que ay proceso que a través del funcionamiento
de ellas ya atreves de su funcionamiento esta la programación.

IX. Recomendaciones
Para la realización de un programa bien hecho se debe tomar en cuenta si está bien instalado sublime
text y acondicionado para el ambiente de programación en python ya que al no estar bien instalado
correctamente la programación no va a dar ningún resultado.

X. Anexo

Programa

import math

import cmath

def cls():

print("\n"*10)

print("\t\tBIENVENIDO A NUESTRA CALCULADORA")

print("")

print("INTEGRANTES: LIZBETH PALLO, MICHAEL LOPEZ, PAUL TOAPANTA, JHON SIVINTA")

print("")

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. OPERACIONES BASICAS")

print("\t\t\t2. OPERACIONES COMPLEJAS")

print("\t\t\t3. CONVERSION DE TEMPERATURAS")

print("\t\t\t4. SALIR")

print("\n")

Opcion=int(input(" PORFAVOR ELIGA UNA OPCION:\n"))


while (Opcion!=4):

if Opcion==1:

cls()

print ("\t\t\t*******OPERACIONES BASICAS*******")

print("")

print("\t\t\t1. SUMA")

print("\t\t\t2. RESTA")

print("\t\t\t3. DIVISION")

print("\t\t\t4. MULTIPLICACION")

print("\t\t\t5. POTENCIACION")

print("\t\t\t6. RADICACION")

print("\t\t\t7. MENU PRINCIPAL")

print("\n")

Opcion=int(input(" PORFAVOR ELIGA UNA OPCION:\n"))

while (Opcion!=7):

if Opcion==1:

print ("Para realizar la operacion Suma")

#Input

sumando1=float(input("Introduce el primer sumando: "))

sumando2=float(input("Introduce el segundo sumando: "))

#Impresion

print(f"La suma total es: {sumando1+sumando2}") #F Nos permite realizar la


impresion en cadena directamente de los valores.

# es decir nos permite realizar un proceso matematico dentro de la impresion.

print("\t\t\t\t\t\t☺☺ LA SUMATORIA A FINALIZADO EXITOSAMENTE ☺☺")

print("")

elif Opcion==2:

print("Para realizar la operacion Resta")

#Input

variable_resta1=float(input("Introduce la primera variable de la resta: "))


variable_resta2=float(input("Introduce la segunda variable de la resta: "))

#Resta

restaTotal=variable_resta1-variable_resta2

#Impresion

print("La resta total es: ",round(restaTotal,2)) #ROUND= Redondea a su


aproximado. el 2 impreso significa el numero de decimales que

# se visualizara en pantalla.

print("\t\t\t\t\t\t☺☺ LA RESTA A FINALIZADO EXITOSAMENTE ☺☺")

print()

elif Opcion==3:

print("Para realizar la operacion Division")

#Input

divisor=int(input("Introducir el divisor: "))

dividendo=int(input("Introducir el dividendo: "))

#Division

divisionTotal=divisor/dividendo

#Impresion

print("La division total es: ",round(divisionTotal,2))

print("\t\t\t\t\t\t☺☺ LA DIVISION A FINALIZADO EXITOSAMENTE ☺☺")

print("")

elif Opcion==4:

print("Para realizar la operacion Multiplicacion")

#Input

multiplicando1=int(input("Introduzca el primer multiplicando: "))

multiplicando2=int(input("Introduzca el segundo multiplicando: "))

#Operacion

multiplicacionTotal=multiplicando1*multiplicando2

#Impresion

print("La Multiplicacion total es: ", round(multiplicacionTotal,2))

print("\t\t\t\t\t\t☺☺ LA MULTIPLICACION A FINALIZADO EXITOSAMENTE ☺☺")

print()
elif Opcion==5:

print("Para realizar la operacion Potenciacion")

#Input

variable_potenciacion1=int(input("Introduzca el numero a elevar: "))

variable_potenciacion2=int(input("Introduzca la potencia: "))

#Operacion

PotenciacionTotal=variable_potenciacion1**variable_potenciacion2

#Impresion

print("La potenciacion resultante es: ",round(PotenciacionTotal,2))

print("\t\t\t\t\t\t☺☺ LA POTENCIACION A FINALIZADO EXITOSAMENTE ☺☺")

print()

elif Opcion==6:

print("Radicacion")

#Input

variable_radicacion1=int(input("Introduzca el numero a radicar: "))

variable_radicacion2=int(input("Introduzca el valor del radicando: "))

#Operacion

RadicacionTotal=variable_radicacion1**(1/variable_radicacion2)

#Impresion

print("La radicacion resultante es: ",round(RadicacionTotal,2))

print("\t\t\t\t\t\t☺☺ LA RADICACION A FINALIZADO EXITOSAMENTE ☺☺")

print()

else:

print("PORFAVOR ELIGA LA OPCION CORRECTA \n ☻.")

print("")

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. SUMA")

print("\t\t\t2. RESTA")

print("\t\t\t3. DIVISION")
print("\t\t\t4. MULTIPLICACION")

print("\t\t\t5. POTENCIACION")

print("\t\t\t6. RADICACION")

print("\t\t\t7. MENU")

print("")

Opcion=int(input(" PORFAVOR ELIGA UNA OPCION ☺☺ :\n"))

SystemExit

print("\t\t\t Ejecucion finalizada \n \t\t GRACIAS POR USAR NUESTRO SERVICIO ☻")

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. OPERACIONES BASICAS")

print("\t\t\t2. OPERACIONES COMPLEJAS")

print("\t\t\t3. CALCULO DIFERENCIAL")

print("\t\t\t4. SALIR")

print("\n")

elif Opcion==2:

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. SIN DE UNA ANGULO")

print("\t\t\t2. COS DE UN ANGULO")

print("\t\t\t3. TANG DE UN ANGULO")

print("\t\t\t4. CALCULO DE UN LOGARITMO")

print("\t\t\t5. MENU PRINCIPAL")

print("\n")

Opcion=int(input(" PORFAVOR ELIGA UNA OPCION ☺☺ :\n"))

while (Opcion!=5):

if Opcion==1:

print("Para realizar el seno de un angulo")


s=input("Ingrese un angulo:")

s1= float(s)

s2= math.radians(s1)

print("El sen del angulo es: ",round(math.sin(s2),3))

elif Opcion==2:

print("Para realizae el coseno de un angulo")

s=input("Ingrese un angulo:")

s1= float(s)

s2= math.radians(s1)

print("El cos del angulo es: ",math.cos(s2))

elif Opcion==3:

print("Para realizae la tangente de un angulo")

s=input("Ingrese un angulo:")

s1= float(s)

s2= math.radians(s1)

print("La tangente del angulo es: ",math.tan(s2))

elif Opcion==4:

print("Para realizar el LOGARITMO")

s=float(input("Ingrese un numero:"))

print("La logarintmo es",cmath.log(s))

else:

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. SIN DE UNA ANGULO")

print("\t\t\t2. COS DE UN ANGULO")

print("\t\t\t3. TANG DE UN ANGULO")

print("\t\t\t4. MENU PRINCIPAL")

print("\n")

Opcion=int(input(" PORFAVOR ELIGA UNA OPCION ☺☺ :\n"))

SystemExit
print("\t\t\t Ejecucion finalizada \n \t\t GRACIAS POR USAR NUESTRO SERVICIO ☻")

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. OPERACIONES BASICAS")

print("\t\t\t2. OPERACIONES COMPLEJAS")

print("\t\t\t3. CALCULO DIFERENCIAL")

print("\t\t\t4. SALIR")

print("\n")

elif Opcion==3:

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. GRADOS CELCIUS A GRADOS FARENHEITH Y GRADOS KELVIN")

print("\t\t\t2. MINUTOS A SEGUNDOS")

print("\t\t\t3. DIAS A HORAS")

print("\t\t\t4. MENU PRINCIPAL")

print("\n")

Opcion=int(input(" PORFAVOR ELIGA UNA OPCION ☺☺ :\n"))

while (Opcion!=4):

if Opcion==1:

print("Para realizar LA CONVERSION DE GRADOS C° A F° Y K°")

s=float(input("Ingrese el grado en CELCIUS: "))

s1=((9* s)/5)+32

s2=s+273.15

print(f"Los {s} grados C° corresponde a {s1} grados F° y a {s2} grados K° ")

elif Opcion==2:

print("Para realizar LA CONVERSION DE MINUTOS A SEGUNDOS")

s=float(input("Ingrese los minutos: "))

s1= (s*60)/1

print(f"{s} tiene {s1} segundos ")


elif Opcion==3:

print("Para realizar LA CONVERSION DE DIAS A HORAS")

s=float(input("Ingrese los dias:"))

s1= ((s*24)/1)

print(f"{s} dias tiene {s1} horas")

else:

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. SIN DE UNA ANGULO")

print("\t\t\t2. COS DE UN ANGULO")

print("\t\t\t3. TANG DE UN ANGULO")

print("\t\t\t4. MENU PRINCIPAL")

print("\n")

Opcion=int(input(" PORFAVOR ELIGA UNA OPCION ☺☺ :\n"))

SystemExit

print("\t\t\t Ejecucion finalizada \n \t\t GRACIAS POR USAR NUESTRO SERVICIO ☻")

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. OPPERACIONES BASICAS")

print("\t\t\t2. OPERACIONES COMPLEJAS")

print("\t\t\t3. CALCULO DIFERENCIAL")

print("\t\t\t4. SALIR")

print("\n")

else:

print ("\t\t\t*******MENÚ*******")

print("")

print("\t\t\t1. OPPERACIONES BASICAS")

print("\t\t\t2. OPERACIONES COMPLEJAS")

print("\t\t\t3. CALCULO DIFERENCIAL")

print("\t\t\t4. SALIR")
print("\n")

Opcion=int(input(" PORFAVOR ELIGA UNA OPCION:\n"))

SystemExit

print("\t\t\t Ejecucion finalizada \n \t\t GRACIAS POR USAR NUESTRO SERVICIO ☻")

XI. Bibliografía

Bibliografía

[1] «math — Mathematical functions — Python 3.7.1rc1 documentation,» Docs.python.org, 2018. [En línea].
Available: https://docs.python.org/3/library/math.html#angular-conversion.

[2] 2018. [En línea]. Available: https://www.lawebdelprogramador.com/codigo/Python/3188-Calculadora.html.

Вам также может понравиться