Está en la página 1de 12

Laboratorio No 7

LAB-111 Laboratorio de Informática


Docente: Lic. Jhonny Roberto Felipez Andrade
12 de abril de 2021

1. Objetivo
En este laboratorio se experimentará con las funciones en Python.

2. Trabajo a realizar en el Laboratorio


1. Suma los dı́gitos en un entero. Escriba un método que calcule la suma de los dı́gitos de
un entero. Use el siguiente encabezado de método:

def sumaDigitos(n):

Por ejemplo, sumaDigitos (234) retorna 9 (2 + 3 + 4). (Sugerencia: use el operador %


para extraer dı́gitos, y el operador / para eliminar el dı́gito extraı́do. Por ejemplo, para
extraer 4 de 234, use 234 % 10 (= 4). Para eliminar 4 de 234, use 234/10 ( = 23). Utilice
un bucle para extraer y eliminar el dı́gito de forma repetida hasta que se extraigan todos
los dı́gitos. Escriba un programa de prueba que solicite al usuario ingresar un número
entero y muestre la suma de todos sus dı́gitos.
Ejemplo de entrada
Ingrese un número: 234
Ejemplo de salida
9

2. Geometrı́a: área de un pentágono. El área de un pentágono se puede calcular utilizando


la siguiente fórmula:
5 × lado2
area = π 
4 × tan
5
Escriba un método que devuelva el área de un pentágono utilizando el siguiente encabe-
zado:

def area(lado):

Escriba un método principal que indique al usuario ingresar el lado de un pentágono y


muestre su área. Aquı́ hay un ejemplo de la ejecución:
Ejemplo de entrada
Ingrese el lado: 5.5

1
Ejemplo de salida
El área del pentágono es 52.04444136781625

3. Mostrar un entero en orden inverso. Escriba un método con el siguiente encabezado para
mostrar un entero en orden inverso:

def invierte(numero):

Por ejemplo, invierte(3456) muestra 6543. Escriba un programa de prueba que solicite al
usuario ingresar un entero y el número invertido.
Ejemplo de entrada
Ingrese un número: 3456
Ejemplo de salida
6543

4. Número entero Palindromo. Escribe los métodos con los siguientes encabezados

# Retorna el numero invertido de un entero, por ejemplo, invierte(456)


# retorna 654
def invierte(numero):

# Retorna true si el numero es un palindromo


def esPalindromo(numero):

Use el método invierte para implementar esPalindromo. Un número es un palı́ndromo si


su número escrito en orden inverso es la misma que él. Escriba un programa de prueba
que solicite al usuario ingresar un entero e imprima si el entero es un palı́ndromo.
Ejemplo de entrada
Ingrese un número: 121
Ingrese un número: 123
Ejemplo de salida
Es palindromo
No es palindromo

5. Combinatoria. Realice un programa para resolver:


 
n n!
=
m m!(n − m)!

Donde n y m son valores enteros positivos.


Ejemplo de entrada
n: 5
m: 2

Ejemplo de salida
10

2
6. Mi Triangulo. Crea un programa denominado MiTriangulo que contenga los dos métodos
siguientes:

"""
Devuelve verdadero si la suma de dos lados
es mayor que el tercer lado.
"""
def esValido(lado1, lado2, lado3):

# Retorna el área del triángulo


def area(lado1,lado2, lado3):

Escriba un programa de prueba que lea tres lados para un triángulo y calcule el área si la
entrada es válida. De lo contrario, muestra que la entrada no es válida. La fórmula para
calcular el área de un triángulo es
lado1 + lado2 + lado3
s=
2
p
area = s(s − lado1)(s − lado2)(s − lado3)
Ejemplo de entrada
Ingrese los tres puntos para un triángulo: 1.5 -3.4 4.6 5 9.5 -3.4
Ejemplo de salida
El área del triángulo es 33.6

7. Geométria: ¿El punto está dentro del cı́rculo? Escriba un método con el siguiente enca-
bezado para determinar si un punto (x, y) se encuentra dentro de un cı́rculo:

# Retorna true si el punto está dentro del cı́rculo


def puntoEstaDentroDelCirculo(x,y,xc,yc,radio):

(Sugerencia: puede utilizar la siguiente función f (x, y) = (x − xc )2 + (y − yc )2 − r2 , para


resolver éste problema. Pruebe su programa para que cumpla todos los casos.)
Ejemplo de entrada
Ingrese el centro y el radio del cı́rculo: 0 0 1
Ingrese un punto con dos coordenadas: 0.5 0
Ingrese el centro y el radio del cı́rculo: 0 0 1
Ingrese un punto con dos coordenadas: 1.5 0
Ejemplo de salida
El punto (0.5,0.0) está en el cı́rculo
El punto (1.5,0.0) no está en el cı́rculo

8. Ordene tres números. Escriba un método con el siguiente encabezado para mostrar tres
números en orden ascendente:

def despliegaNumerosOrdenados(num1, num2, num3):

3
Escriba un programa que solicite al usuario ingresar tres números y llame al método para
mostrarlos en orden ascendente.
Ejemplo de entrada
Ingrese tres números: 5 2 3
Ejemplo de salida
235

9. Matemáticas: números pentagonales. Un número pentagonal se define como n(3n − 1)/2


para n = 1, 2, ..., y ası́ sucesivamente. Por lo tanto, los primeros números son 1, 5, 12, 22, ....
Escriba un método con el siguiente encabezado que devuelve un número pentagonal:

def obtNumeroPentagonal(n):

Escriba un programa que use este método para mostrar los primeros n números pentago-
nales con 10 números en cada lı́nea.
Ejemplo de entrada
Ingrese n: 10
Ejemplo de salida
1 5 12 22 35 51 70 92 117 145

10. Patrones de visualización. Escriba un método con el siguiente encabezado para mostrar
un patrón en orden ascendente:

def despliegaPatron(n):
1
2 1
3 2 1
...
n n-1 ... 3 2 1

Ejemplo de entrada
Ingrese n: 3
Ejemplo de salida

1
2 1
3 2 1

11. Conversiones entre pies y metros. Escriba una clase que contenga lo siguiente dos métodos:

# Convierte de pies a metros


def piesAMetros(pies):

# Convierte de metros a pies


def metrosAPies(metros):

4
La fórmula para la conversión es:

metros = 0,305 ∗ pies

pies = 3,279 ∗ metros


Escriba un programa de prueba que llame a estos métodos para mostrar la siguiente tabla

Pies Metros | Metros Pies


---------------------------------------------
1.0 0.305 | 20.0 65.580
2.0 0.610 | 25.0 81.975
...
9.0 2.745 | 60.0 196.740
10.0 3.050 | 65.0 213.135

12. Conversiones entre Celsius y Fahrenheit. Escriba una clase que contenga los dos métodos
siguientes:

# Convierte de Celsius a Fahrenheit


def celsiusAFahrenheit(celsius):

# Convierte de Fahrenheit a Celsius


def fahrenheitACelsius(fahrenheit):

La fórmula para la conversión es:

f ahrenheit = (9,0/5) ∗ celsius + 32

celsius = (5,0/9) ∗ (f ahrenheit − 32)


Escriba un programa de prueba que llame a estos métodos para mostrar la siguiente tabla:

Celsius Fahrenheit | Fahrenheit Celsius


--------------------------------------------------------
40.0 104.0 | 120.0 48.89
39.0 102.2 | 110.0 43.33
...
32.0 89.6 | 40.0 4.44
31.0 87.8 | 30.0 -1.11

13. Serie y sumatoria. Escriba un método para calcular la siguiente serie:


1 2 i
m(i) = + + ··· +
2 3 i+1
Escriba un programa de prueba que muestre la siguiente tabla:

5
i m(i)
-------------------
1 0.5000
2 1.1667
...
19 16.4023
20 17.3546

14. Utilice el método esPrimo. Proporcione el método esPrimo (número int) para probar si
un número es primo. Utilice este método para encontrar la cantidad de números primos
menores a 10000.

15. Primo palindrómico. Un primo palindrómico es un número primo y también palindrómico.


Por ejemplo, 131 es un primo y también un primo palindrómico, ası́ como son el 313 y el
757. Escribe un programa que muestre los primeros 100 números primos palindrómicos.
Muestre 10 números por lı́nea, separados por exactamente un espacio, de la siguiente
manera:

2 3 5 7 11 101 131 151 181 191


313 353 373 383 727 757 787 797 919 929
...

16. Omirp. Un omirp (primo deletreado al revés) es un número primo no palindrómico, escrito
en orden inverso también es un número primo. Por ejemplo, 17 es primo y 71 es primo,
entonces 17 y 71 son omirp. Escriba un programa que muestre los primeros 100 omirp.
Muestre 10 números por lı́nea, separados por exactamente un espacio, de la siguiente
manera:

13 17 31 37 71 73 79 97 107 113
149 157 167 179 199 311 337 347 359 389
...

17. Sucesión. Escriba un método que genere la siguiente sucesión, para un n dado:
Ejemplo de entrada
15
Ejemplo de salida
011222333344444

18. Máximo Común Divisor. Escriba un método con el siguiente encabezado que retorne el
máximo común divisor de dos números. El máximo común divisor (MCD) de dos enteros
a y b es el mayor entero que es factor de a y b.

# Retorna el máximo común divisor


def mcd(a,b):

6
Una manera eficiente de calcular el MCD de dos números es usar el algoritmo de Euclides,
que establece lo siguiente:

mcd(a, b) = mcd(b, a %b)


mcd(a, 0) = Valor absoluto de a

Ejemplo de entrada
125 2525
Ejemplo de salida
El máximo común divisor es 25

19. Aplicación financiera: calcule el valor de la inversión futura. Escriba un método que
calcule el valor de la inversión futura a una tasa de interés dada durante un número
especı́fico de años. La inversión futura se determina usando la siguiente fórmula.

valorDeInversionF utura = montoDeInversion×(1+tazaDeInteresM ensual)numAños×12

Utilice el siguiente encabezado de método:

def valorDeInversionFutura(montoDeInversion, tazaDeInteresMensual, numA~


nos):

Por ejemplo, valorDeInversionFutura(10000, 0.05/12, 5) retornara 12833.59.


Escriba un programa que solicite al usuario ingresar el monto de inversión (por ejemplo,
1000) y la tasa de interés (por ejemplo, 9 %) e imprima una tabla que muestre el valor
futuro para los años del 1 al 30, como se muestra a continuación:
Ejemplo de entrada Ejemplo de salida
Monto de Inversión: 1000
Taza de interés anual: 9 A~
nos Valor Futuro
---------------------
1 1093.80
2 1196.41
...
29 13467.25
30 14730.58

7
3. Problemas asignados para entrega
1. Geometrı́a: área de un polı́gono regular. Un polı́gono regular es un polı́gono de n lados en
el que todos los lados tienen la misma longitud y todos los ángulos tienen el mismo grado
(es decir, el polı́gono es equilátero y equiangular). La fórmula para calcular el área de un
polı́gono regular es:
n × lado2
area = π 
4 × tan
n
Escriba un método que devuelva el área de un polı́gono regular utilizando el siguiente
encabezado:

def area(n, lado):

Escriba un método principal que le solicite al usuario ingresar el número de lados y el


lado de un polı́gono regular y muestra su área. Aquı́ hay un ejemplo de la ejecución:
Ejemplo de entrada
Ingrese la cantidad de lados: 5
Ingrese el lado: 6.5
Ejemplo de salida
El área del polı́gono es 72.69

2. La estimación del valor π. π se puede calcular utilizando la siguiente serie:

(−1)i+1
 
1 1 1 1 1
m(i) = 4 1 − + − + − + ··· +
3 5 7 9 11 2i − 1

Escriba un método que retorne m(i) para un i dado y escriba un programa que muestre
las n filas de la tabla.
Ejemplo de entrada
Ingrese n: 10
Ejemplo de salida

n i m(i)
---------------------
1 1 4.0000
2 101 3.1515
3 201 3.1466
4 301 3.1449
5 401 3.1441
6 501 3.1436
7 601 3.1433
8 701 3.1430
9 801 3.1428
10 901 3.1427

8
3. Conversión a la base 2, 4, 8 y 16. Dado un número entero en base 10 convertir a su
equivalente número en base 2, 4, 8 y 16. Para convertir a la base 2 utilice divisiones
sucesivas. Mientras que para convertir a la base 4, 8 y 16 primero convierta a la base 2 y
luego utilice el método de la agrupación de 2, 3 y 4 dı́gitos binarios respectivamente.
Ejemplo de entrada
13
10
Ejemplo de salida
1101 31 15 D
1010 22 12 A

4. Matemáticas: aproximar la raı́z cuadrada. Hay varias técnicas para implementar el método
sqrt en la clase de matemáticas. Una de esas técnicas se conoce como el método babilónico.
Se aproxima a la raı́z cuadrada de un número, n, al realizar repetidamente un cálculo con
la siguiente fórmula:
y = (x + n/x)/2
Cuando y y x son casi idénticos, y es la raı́z cuadrada aproximada. La conjetura inicial
puede ser cualquier valor positivo (p. Ej., 1). Este valor será el valor inicial para x. Si la
diferencia entre y y x es menor que un número muy pequeño, como 0.0001, puede afirmar
que y es la raı́z cuadrada aproximada de n. Si no, y se convierte en x y el proceso de
aproximación continúa. Implemente el siguiente método que devuelve la raı́z cuadrada de
n.

def sqrt(n):

Ejemplo de entrada
n: 2
Ejemplo de salida
La raı́z cuadrada es 1.41421356237

5. Factores dos. Escriba un método con el siguiente encabezado que imprima los factores
dos de un entero dado:

# Imprime los factores dos de un entero n


def factoresDos(n):

Escriba un programa que solicite al usuario ingresar un número y llame al método para
imprimir los factores dos.
Ejemplo de entrada Ejemplo de salida
7 7 = 7
18 18 = 2 * 9
68 68 = 2 * 2 * 17
120 120 = 2 * 2 * 2 * 15

9
6. Primos gemelos. Los primos gemelos son un par de números primos que difieren en 2.
Por ejemplo, 3 y 5 son primos gemelos, 5 y 7 son primos gemelos, y 11 y 13 son primos
gemelos. Escriba un programa para mostrar los primeros n primos gemelos.
Ejemplo de entrada
Ingrese n: 5
Ejemplo de salida
(3, 5) (5, 7) (11, 13) (17, 19) (29, 31)

7. Número primo de Mersenne. Un número primo se llama primo Mersenne si se puede


escribir en la forma 2p −1 para algún entero positivo p. Escriba un programa que encuentre
todos los primos de Mersenne con p ≤ k.
Ejemplo de entrada
Ingrese k: 5
Ejemplo de salida

p 2^p - 1
-----------------------
2 3
3 7
5 31

8. Números humildes. Un número cuyos factores primos son 2, 3, 5 o 7 se denomina un


número humilde. La secuencia 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25,
27, ... muestra los primeros 20 números humildes.
Escriba un programa que imprima el enésimo número humilde.
El rango de n es 1 ≤ n ≤ 5842.
Ejemplo de entrada
1
11
21
Ejemplo de salida
1
12
28

10
9. Sumando dı́gitos. Comenzando con un entero entre 00 y 99 inclusive, escritos como dos
dı́gitos (use un cero a la izquierda en caso de que el número sea menor que 10). Realice
lo siguiente:

a) Sume los dos dı́gitos.


b) Ahora genere un nuevo número con el dı́gito de la derecha del número original y el
dı́gito de la derecha del resultado de la suma.

Si repetimos este proceso varias veces obtenemos el número original. Por ejemplo:
Inicio Sume los dos dı́gitos Combine los dos dı́gitos
-------------------------------------------------------
26 2+6 = 08 "6" y "8" = 68
68 6+8 = 14 "8" y "4" = 84
84 8+4 = 12 "4" y "2" = 42
42 4+2 = 06 "2" y "6" = 26

En este caso tomo 4 pasos para obtener el número original. Se pide que devuelva el
número de pasos requeridos para obtener el número original.

Entrada
En la entrada hay varios casos de prueba. Cada caso de prueba viene en una lı́nea que
contiene un número 0 ≤ N ≤ 99. La entrada termina cuando no hay más datos.

Salida
Por cada caso de prueba escriba en una lı́nea el número de pasos requeridos para obtener
el número original.
Ejemplo de entrada Ejemplo de salida
26 4
55 3
0 1
71 12

11
10. Adicione los números invertidos. Dado dos números a y b (1 ≤ a, b < 1019 ), inviértalos y
obtenga la suma. Finalmente, invierta nuevamente el resultado de la suma y muestre el
resultado.

24 42
+ 1 + 1
invirtiendo cada numero ⇒ 34
43
Escriba un programa que imprima el resultado de la adición de los números invertidos.
Ejemplo de entrada
24 1
4358 754
305 794
Ejemplo de salida
34
1998
1

12

También podría gustarte