0% encontró este documento útil (0 votos)
21 vistas38 páginas

Problemas - 01

Este documento contiene 13 ejercicios de programación en Python relacionados con números y cadenas. Cada ejercicio presenta un problema y su solución en Python. Los ejercicios cubren temas como conversiones de unidades, cálculo de áreas, volúmenes, potencias y raíces. También incluyen ejercicios de entrada y salida de datos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas38 páginas

Problemas - 01

Este documento contiene 13 ejercicios de programación en Python relacionados con números y cadenas. Cada ejercicio presenta un problema y su solución en Python. Los ejercicios cubren temas como conversiones de unidades, cálculo de áreas, volúmenes, potencias y raíces. También incluyen ejercicios de entrada y salida de datos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 38

PYTHON

Capítulo 02

Números y cadenas

Ejercicios
EJERCICIO 01
Diseñar un programa que muestre las dimensiones de una hoja tamaño carta ¿ en milímetros. Tomar
en cuenta que 1∈¿ 25.4 mm , utilizar constantes y comentarios.

SOLUCIÓN
# # Definimos las constantes

MILIMETROS_PULGADAS = 25.4
LARGO = 11
ANCHO = 8.5

# Hacemos la conversión de unidades.

largo_milimetros = LARGO * MILIMETROS_PULGADAS


ancho_milimetros = ANCHO * MILIMETROS_PULGADAS

# Imprimimos los resultados

print("El largo es %.2f mm y el ancho es %.2f mm." %


(largo_milimetros, ancho_milimetros))
EJERCICIO 02.
Diseñar un programa que calcule y muestre el perímetro de una hoja tamaño carta y la longitud de su
diagonal. Las medidas se encuentran en el Ejercicio 01.

SOLUCIÓN
# Importamos el módulo Math

from math import sqrt

# Definimos constantes

LARGO = 11
ANCHO = 8.5

# Hallamos el perímetro y la diagonal.

perimetro = LARGO + LARGO + ANCHO + ANCHO


diagonal = sqrt(LARGO**2 + ANCHO**2)

# Imprimimos datos.

print("El perímetro es %.2f in y la diagonal %.2f in." % (perimetro,


diagonal))
EJERCICIO 03.
Diseñar un programa que reciba un número y muestre su cuadrado, cubo y cuarta potencia. Utilizar
el operador ¿∗¿ solo para la cuarta potencia.

SOLUCIÓN
# Pedimos al usuario que ingrese un número.

numero = float(input("Ingrese un número: "))

# Calculamos sus potencias.

cuadrado = numero * numero


cubo = numero * numero * numero
cuarta = numero**4

# Imprimimos resultados

print("Cuadrado: %.4f" % cuadrado)


print("Cubo: %.4f" % cubo)
print("Cuarta: %.4f" % cuarta)
EJERCICIO 04.
Diseñar un programa que reciba dos números enteros y luego imprima:

 La suma
 La diferencia
 El producto
 El promedio
 La distancia
 El máximo
 El mínimo

SOLUCIÓN
# Pedimos números al usuario

numero_1 = float(input("Ingrese el primer número: "))


numero_2 = float(input("Ingrese el segundo número: "))

# Calculamos operaciones con ambos números:

suma = numero_1 + numero_2


diferencia = numero_1 - numero_2
producto = numero_1 * numero_2
promedio = suma/2
distancia = abs(diferencia)
maximo = max(numero_1, numero_2)
minimo = min(numero_1, numero_2)

# Imprimimos los resultados:

print("La suma es: %.2f\nLa diferencia es: %.2f\nEl producto es:


%.2f\nEl promedio es: %.2f\nLa distancia es: %.2f\n"
"El máximo es: %.2f\nEl mínimo es: %.2f" % (suma, diferencia,
producto, promedio, distancia, maximo, minimo))
EJERCICIO 05.
Mejorar la salida del Ejercicio 04 de modo que los números se muestren con el siguiente formato:

Sum: 45
Difference: -5
Product: 500
Average: 22.50
Distance: 5
Maximun: 25
Minimum: 20

SOLUCIÓN
# Pedimos números al usuario

numero_1 = float(input("Ingrese el primer número: "))


numero_2 = float(input("Ingrese el segundo número: "))

# Calculamos operaciones con ambos números:

suma = numero_1 + numero_2


diferencia = numero_1 - numero_2
producto = numero_1 * numero_2
promedio = suma/2
distancia = abs(diferencia)
maximo = max(numero_1, numero_2)
minimo = min(numero_1, numero_2)

# Imprimimos los resultados:

print("La suma es: %15.2f\nLa diferencia es: %9.2f\nEl producto es:


%11.2f\nEl promedio es: %11.2f\n"
"La distancia es: %10.2f\nEl máximo es: %13.2f\nEl mínimo es:
%13.2f"
% (suma, diferencia, producto, promedio, distancia, maximo,
minimo))
EJERCICIO 06.
Diseñar un programa que reciba una medida en metros y luego la convierta a millas, pies y pulgadas.

SOLUCIÓN
# Definimos nuestras constantes.

METROS_a_MILLAS = 1 / 1609.344
METROS_a_PULGADAS = 39.3700787
METROS_a_PIES = 3.2808399

# Pedimos al usuario la cantidad de metros.

metros = float(input("Ingrese la medida [metros]: "))

# Ahora, convertimos la medida en millas, pulgadas y pies.

millas = metros * METROS_a_MILLAS


pulgadas = metros * METROS_a_PULGADAS
pies = metros * METROS_a_PIES

# Imprimimos los resultados.

print("Millas: %15.8f\nPulgadas: %13.8f\nPies: %17.8f" % (millas,


pulgadas, pies))
EJERCICIO 07.
Diseñar un programa que reciba un radio e imprima lo siguiente:

 El área de un círculo con dicho radio.


 El volumen y el área de una esfera con dicho radio.

SOLUCIÓN
# Importamos pi del módulo math.

from math import pi

# Pedimos al usuario que ingrese el radio.

radio = float(input("Ingrese el radio [u]: "))

# Procedemos a calcular el área de un círculo a partir del radio.

area_circulo = pi * radio**2

# Calculamos el volumen y el área a partir de la esfera con dicho


radio.

volumen = (4/3) * pi * radio**3


area_esfera = 4 * pi * radio**2

# Mostramos los resultados al usuario.

print("El área del círculo es %.2f" % area_circulo)


print("El volumen de la esfera es %.2f y su área es %.2f" %
(volumen, area_esfera))
EJERCICIO 08.
Diseñar un programa que reciba los lados de un rectángulo e imprima lo siguiente:

 El área y el perímetro del rectángulo.


 La longitud de su diagonal.

SOLUCIÓN
# Importamos del módulo math.

from math import sqrt

# Solicitamos al usuario que ingrese los lados de un rectángulo.

ancho = float(input("Ingrese el ancho [u]: "))


largo = float(input("Ingrese el largo [u]: "))

# Hallamos el perímetro y el área del rectángulo.

perimetro = ancho + ancho + largo + largo


area = ancho * largo

# Encontramos la diagonal.

diagonal = sqrt(largo**2 + ancho**2)

# Mostramos los resultados al usuario.

print("El perímetro es %.2f u y el área es %.2f u^2" % (perimetro,


area))
print("La diagonal es %.2f u" % diagonal)
EJERCICIO 09.
Diseñar un programa que simule una máquina expendedora. Los clientes seleccionan un ítem para
comprar e insertan billetes de $ 1 y monedas de $ 0.25 [quarters]. Luego, la máquina les entrega el
producto comprado y les da el vuelto. Asumir que la máquina solo tiene monedas de $ 1 y de $ 0.25
. El programa debe indicar cuántas monedas de cada tipo se retornarán. Los cálculos del programa
deben realizarse en centavos.

SOLUCIÓN
# Definimos las constantes.

BILLETES_A_CENTAVOS = 100
QUARTERS_A_CENTAVOS = 25

# Pedimos al usuario datos.

precio = int(input("Ingrese el precio del objeto [centavos de $]:


"))
billetes = int(input("Ingrese la cantidad de billetes [$1]: "))
quarters = int(input("Ingrese la cantidad de quarters [$0.25] :"))

# Calculamos el vuelto y cuantas monedas va a devolver la maquina.

total = billetes * BILLETES_A_CENTAVOS + quarters *


QUARTERS_A_CENTAVOS
vuelto = total - precio
vuelto_dolar = vuelto // BILLETES_A_CENTAVOS
vuelto_quarter = (vuelto % BILLETES_A_CENTAVOS) //
QUARTERS_A_CENTAVOS

# Mostramos los resultados al usuario.

print("Billetes: %d\nQuarters: %d" % (vuelto_dolar, vuelto_quarter))


EJERCICIO 10.
Diseñar un programa que ayude a una persona a estimar el costo total de comprar un auto nuevo y
revenderlo en 5 años. Las entradas del programa son las siguientes:

 El costo de auto nuevo [$].


 El número estimado de millas conducidas por año [mi].
 El precio del gas [ $/ gal ].
 La eficiencia del auto [ mpg ] .
 El precio estimado de reventa en 5 años.

Realizar pseudocódigo antes de programar.

SOLUCIÓN

# Definimos constantes.

AÑOS = 5

# Le pedimos al usuario que ingrese datos.

costo_auto = float(input("Ingrese el precio del auto nuevo [$]: "))


millas_año = float(input("Ingrese el número de millas recorridas por
año [mi]:"))
precio_gas = float(input("Ingrese el precio del gas [$/gal]: "))
eficiencia_auto = float(input("Ingrese la eficiencia del auto [mpg]:
"))
precio_reventa = float(input("Ingrese el nuevo precio del auto tras
los 5 años [$]: "))

# Hallamos el costo total.

costo_gas = AÑOS * millas_año * precio_gas * (1/eficiencia_auto)


costo_total = costo_gas + costo_auto - precio_reventa

# Mostramos los resultados al usuario.

print("El costo total es %.2f" % costo_total)


EJERCICIO 11.
Diseñar un programa reciba las siguientes entradas:

 El volumen de gasolina en el tanque [ gal ].


 La eficiencia del combustible [ mpg ] .
 El precio del gasolina [ $ / gal ].

El programa debe mostrar el costo de conducir 100 mi y la distancia que puede recorrer con el
volumen actual del tanque.

SOLUCIÓN
# Constantes:

MILLAS = 100

# Pedimos datos al usuario.

volumen_gasolina_tanque = float(input("Ingrese el volumen de


gasolina en el tanque [gal]: "))
eficiencia = float(input("Ingrese la eficiencia [mpg]: "))
precio_gas = float(input("Ingrese el precio del gas [$/gal]: "))

# Calculamos el costo del viaje y la distancia restante.

costo_viaje = (1/eficiencia) * MILLAS * precio_gas


distancia_restante = volumen_gasolina_tanque * eficiencia

# Mostramos los resultados al usuario.

print("El costo del viaje es $%.2f\nLe queda para recorrer %.2f mi"
% (costo_viaje, distancia_restante))
EJERCICIO 12.
Diseñar un programa reciba las siguientes entradas sobre el nombre de un archivo:

 Letra del disco Ejemplo: C


 Ruta al archivo Ejemplo: \Windows\System
 Nombre del archivo Ejemplo: Readme
 Extensión Ejemplo: txt

Luego, el programa debe imprimir el nombre completo del archivo. Por ejemplo:
C:\Windows\System\Readme.txt

SOLUCIÓN
# Pedimos datos al usuario.

letra_disco = input("Ingrese la letra del disco: ")


ruta_archivo = input("Ingrese la ruta del archivo: ")
nombre_archivo = input("Ingrese el nombre del archivo: ")
extension = input("Ingrese la extensión: ")

# Mostramos el resultado al usuario.

print(letra_disco+":"+ruta_archivo+"\\"+nombre_archivo+"."+extension)
EJERCICIO 13.
Diseñar un programa que lea un número entre 10,000 y 99,999, donde el usuario utilizará la coma
para separar los miles. Luego, el programa mostrará el número sin la coma.

Tomar en cuenta que los números ingresados siempre tendrán 5 cifras.

SOLUCIÓN
# Pedimos datos al usuario.

numero = input("Ingrese un número entre 10,000 y 99,999 (Utilice las


comas para separar los miles): ")

# Quitamos la coma

numero_sin_coma = numero[0] + numero[1] + numero[3] + numero[4] +


numero[5]

# Mostramos el resultado al usuario.

print("%s" % numero_sin_coma)
EJERCICIO 14.
Diseñar un programa que lea un número entre 1 000 y 999 999 y lo muestre con una coma
separadora de millares.

SOLUCIÓN
# Pedimos datos al usuario.

numero = int(input("Ingrese un número entre 1 000 y 999 999 (No


utilice las comas para separar los miles): "))

# Añadimos la coma

miles = str(numero // 1000)


unidades = str(numero % 1000)
numero_con_coma = miles + "," + unidades

# Mostramos el resultado al usuario.

print(numero_con_coma)
PROBLEMA 15.
Diseñar un programa que imprima la siguiente cuadrícula. Usar variables para los patrones
combinados y para la línea final. El programa debe imprimir 3 veces los patrones combinados y 1
vez la línea final.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 16.
Diseñar un programa que lea un entero positivo de 5 cifras y lo descomponga en una secuencia de
dígitos individuales. Por ejemplo, si recibe el número 16384, debe devolver:

1 6 3 8 4

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 17.
Diseñar un programa que lea dos tiempos en formato militar e imprima el número de horas y
minutos entre los dos datos. Por ejemplo, si recibe 0900 y 1730, debe imprimir 8 horas 30 min.
El programa debe funcionar incluso si el primer tiempo ocurre después del segundo.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 18.
Una letra grande H puede producirse de la siguiente forma:

Se puede declarar como una variable string:


LETTER_H = “* *\n* *\n*****\n* *\n* *”

Realizar lo mismo para los caracteres E, L y O. Luego, imprimir el siguiente mensaje:

H
E
L
L
O

SOLUCIÓN
Código Python:
Ejemplo de ejecución:
PROBLEMA 19.
Diseñar un programa que transforme números 1, 2, 3, …, 12 en su nombre correspondiente de
mes Enero, Febrero, Marzo, …, Diciembre.

Se recomienda crear una cadena larga “Enero Febrero Marzo …”, donde se añadan espacios
para que cada mes tenga la misma longitud. Luego, concatenar los caracteres del mes deseado. Los
espacios sobrantes se pueden eliminar con el método strip.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 20.
Diseñar un programa que imprima un árbol navideño. Utilizar secuencias de escape.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 21.
El Domingo de Pascua es el primer domingo después de la primera luna llena en primavera. Para
calcular la fecha, se puede utilizar el siguiente algoritmo, inventado por el matemático Carl Friedrich
Gauss en 1800:

 Sea y el año, como 1800 o 2001.


 Dividir y entre 19 y llamar a al residuo. Ignorar el cociente.
 Dividir y entre 100 para obtener un cociente b un residuo c .
 Dividir b entre 4 para obtener un cociente d y un residuo e .
 Dividir 8 b+13 entre 25 para obtener un cociente g. Ignorar el residuo.
 Dividir 19 a+b−d −g+15 entre 30 para obtener un residuo h . Ignorar el cociente.
 Dividir c entre 4 para obtener un cociente j y un residuo k .
 Dividir a+ 11h entre 319 para obtener un cociente m . Ignorar el residuo.
 Dividir 2e+2 j−k−h+m+ 32 entre 7 para obtener un residuo r . Ignorar el cociente.
 Dividir h−m+ r +90 entre 25 para obtener un cociente n . Ignorar el residuo.
 Dividir h−m+ r +n+19 entre 32 para obtener un residuo p. Ignorar el cociente.

Luego, la Pascua ocurre el día p del mes n . Por ejemplo, si y es 2001:

a=6 , g=6, m=0 , n=4 ,


b=20 , c=1 , h=18, r =6, p=15
d=5 , e=0 , j=0, k =1,
De modo que, en el año 2001, el Domingo de Pascua cayó un 15 de abril. Diseñar un programa que
reciba un año del usuario y muestre el mes y el día de la Pascua.

SOLUCIÓN
Código Python:
Ejemplo de ejecución:
PROBLEMA 22.
Diseñar un programa que reciba una cadena y muestre los tres primeros caracteres, seguido por tres
puntos, y luego los tres últimos caracteres. Por ejemplo, si recibe “Mississippi” debe imprimir

Mis...ppi

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 32.
El siguiente pseudocódigo describe como una biblioteca calcula el precio de una orden a partir del
precio total de los libros y el número de libros solicitados.
Leer el precio total de los libros y el número de libros.
Calcular el impuesto (7.5% del precio total)
Calcular el costo de envío ($2 por libro)
El precio de la orden es la suma del precio total de los libros, el impuesto y el cargo por envío.
Mostrar el precio de la orden.

Traducir el pseudocódigo a un programa de Python.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 33.
El siguiente pseudocódigo describe como convertir una cadena que contiene un número telefónico
de 10 dígitos (por ejemplo “4155551212”) en una cadena más legible con paréntesis y guiones, por
ejemplo: “(415) 555-1212”.
Tomar la subcadena de los tres primeros caracteres y rodearlos con “(“ y “)”. Esto se llama el
código de área.
Concatenar el código de área, la subcadena formada por los siguientes tres caracteres, un guion,
y la subcadena formada por los últimos cuatro caracteres. Esto es el número formateado.

Traducir el pseudocódigo a un programa de Python que lea el número telefónico, construya el


número formateado y lo muestre en pantalla.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 34.
El siguiente pseudocódigo describe cómo extraer los dólares y centavos de un precio dado como un
valor de punto flotante. Por ejemplo, un precio de 2.95 da valores de 2 y 95 para dólares y
centavos.
Convertir el precio a entero y guardarlo en la variable dólares.
Multiplicar la diferencia precio-dólares por 100 y sumar 0.5.
Convertir el resultado a entero y guardarlo en la variable centavos.

Traducir el pseudocódigo a un programa de Python que lea el precio e imprima los dólares y
centavos.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 35.
Diseñar un programa que indique cómo dar vuelto. El programa tiene dos entradas: el precio a pagar
y el dinero recibido del cliente. Mostrar los dólares, quarters, dimes, nickels y centavos que el cliente
debe recibir. Para evitar errores de redondeo el programa debe trabajar en centavos.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 36.
Un banco online quiere diseñar un programa que muestre a sus clientes potenciales cómo crecerán
sus depósitos. El programa debe leer el balance inicial y la tasa de interés anual. El interés se
capitaliza mensualmente. Mostrar los balances para los primeros 3 meses.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 37.
Un club de películas quiere recompensar a sus mejores miembros con un descuento basado en el
número de películas rentadas y el número de nuevos integrantes referidos. El descuento es
porcentual y es igual a la suma de rentas y referidos, pero no puede exceder 75 % . Diseñar un
programa que determine el descuento.

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 38.
A partir del análisis de circuitos, se deduce que la resistencia equivalente de dos resistores R1 y R2
conectados en serie se calcula con la fórmula:

Req =R1 + R2 .
Además, si los resistores estuvieran conectados en paralelo, la fórmula sería:

R 1 R2
Req = .
R 1+ R 2
Diseñar un programa que reciba las resistencias de tres resistores y calcule la resistencia total del
siguiente circuito:

SOLUCIÓN
Código Python:
Ejemplo de ejecución:
PROBLEMA 39.
La temperatura de punto de rocío T d se puede aproximar a partir de la humedad relativa RH y la
temperatura actual T según el modelo:

b ⋅f ( T , RH )
T d= .
a−f ( T , RH )
Donde f es una función de dos variables:

a⋅T
f ( T , RH )= +ln ( RH ) .
b+ T
Las constantes del modelo son a=17.27 y b=237.7 °C . Diseñar un programa que reciba la
humedad relativa, entre 0 y 1, y la temperatura en grados Celsius, e imprima el valor del punto de
rocío. Utilizar la función log de Python para calcular el logaritmo natural ln ( x ).

SOLUCIÓN
Código Python:

Ejemplo de ejecución:
PROBLEMA 40.
La figura muestra sensores robustos de temperatura que cuentan con clips para colocarse
directamente sobre las tuberías de cobre para medir la temperatura del líquido en su interior.

Cada sensor cuenta con un componente llamado termistor. Los termistores son dispositivos
semiconductores que exhiben una relación resistencia - temperatura descrita por el modelo:

R=R 0 e
β
( T T )
1 1

0
.

Donde R [ Ω ] es la resistencia a una temperatura T [ K ] y R0 [ Ω ] es la resistencia a una temperatura


T 0 [ K ]. La constante β depende del material usado para fabricar el termistor. Los termistores se
especifican a partir de los valores de R0 , T 0 y β . Para el caso de los sensores de la figura,

R0 =1075 Ω auna temperatura de 85 ° C . β=3969 K .

La temperatura en grados Celsius depende de la resistencia según la función inversa:

βT0
T= −273.
( )
T 0 ln
R
R0

Diseñar un programa de Python que reciba la resistencia y muestre la temperatura del fluido en ° C .

SOLUCIÓN
Código Python:
Ejemplo de ejecución:

También podría gustarte