Lab Oratorio 04
Lab Oratorio 04
1. Objetivo
El objetivo principal de este laboratorio es experimentar con las instrucciones condicionales del
lenguaje Python.
s = 0 s = 0
y
if x < 0: if x < 0:
s = s + 1 s = s + 1
if y < 0: elif y < 0:
s = s + 1 s = s + 1
3. Morgan. Utilice las leyes de Morgan para simplificar las siguientes expresiones booleanas.
4. Mayor de edad. Escriba un programa para leer la edad de una persona, luego imprima
“Mayor de edad”si el número es mayor o igual a 18. De lo contrario no imprima nada.
Ejemplo de entrada
19
Ejemplo de salida
Mayor de edad
1
5. Número par o impar. Escriba un programa para leer un número entero, luego imprima
“par”si el número es par o “impar”en caso contrario.
Ejemplo de entrada
13
Ejemplo de salida
impar
6. Ordena dos números. Escriba un programa que lea dos números en punto flotante e
imprima los dos números en orden ascendente.
Ejemplo de entrada
Ingrese dos números: 13 7.5
Ejemplo de salida
7.5 13
7. Ordena tres números. Escriba un programa que lea tres números en punto flotante e
imprima los tres números en orden ascendente.
Ejemplo de entrada
Ingrese tres números: 13 21 7.5
Ejemplo de salida
7.5 13 21
8. Impar más grande. Leer tres números enteros positivos e imprimir el número impar más
grande. Si los tres números son pares imprima “No hay”.
Ejemplo de entrada
Ingrese tres números: 13 7 50
Ingrese tres números: 2 10 6
Ejemplo de salida
13
No hay
9. De segundos a hora. Las computadoras almacenan la fecha y la hora como simples números
los cuales representan el número de segundos o milisegundos dada una fecha particular.
Escriba un programa que lea la cantidad de segundos e imprima la hora en este formato
“H:M:S”. H representa a las horas, M representa a los minutos y S a los segundos.
Ejemplo de entrada
3661
1
0
Ejemplo de salida
1:1:1
0:0:1
0:0:0
10. Pendiente de una lı́nea. Escriba un programa para encontrar la pendiente de la lı́nea que
y2 − y1
pasa por los puntos (x1 , y1 ) y (x2 , y2 ). Utilice la formula m = para determinar
x2 − x1
la pendiente de la lı́nea. Si x1 es igual a x2 , la lı́nea es vertical y la pendiente no está
2
definida, por lo tanto deberá imprimir el mensaje “no está definida”.
Ejemplo de entrada
Ingrese x1, y1, x2, y2: 0 0 5 5
Ejemplo de salida
La pendiente es 1
11. Álgebra: resuelva las ecuaciones cuadráticas. Las dos raı́ces de una ecuación cuadrática
ax2 + bx + c = 0 se pueden obtener usando la siguiente fórmula:
√ √
−b + b2 − 4ac −b − b2 − 4ac
r1 = y r2 =
2a 2a
b2 − 4ac se llama el discriminante de la ecuación cuadrática. Si es positivo, la ecuación
tiene dos raı́ces reales. Si es cero, la ecuación tiene una raı́z. Si es negativo, la ecuación
no tiene raı́ces reales.
Escriba un programa que solicite al usuario ingresar los valores para a, b y c. Muestre el
resultado en función del discriminante. Si el discriminante es positivo, imprima las dos
raı́ces. Si el discriminante es 0, imprima una raı́z. De lo contrario, imprima “La ecuación
no tiene raı́ces reales”. √
Note que puede utilizar el pow(x, 0.5) o math.sqrt(x) para calcular x.
Ejemplo de entrada
Ingrese a, b, c: 1.0 3 1
Ingrese a, b, c: 1 2.0 1
Ingrese a, b, c: 1 2 3
Ejemplo de salida
La ecuación tiene dos raı́ces -0.381966 y -2.61803
La ecuación tiene una raı́z -1
La ecuación no tiene raı́ces reales
ax + by = e
cx + dy = f
ed − bf af − ec
x= y=
ad − bc ad − bc
Escriba un programa que le solicite al usuario que ingrese a, b, c, d, e y f. Muestre el
resultado. Si ad - bc es 0, imprima “La ecuación no tiene solución”.
Ejemplo de entrada
Ingrese a, b, c, d, e, f: 9.0 4.0 3.0 -5.0 -6.0 -21.0
Ingrese a, b, c, d, e, f: 1.0 2.0 2.0 4.0 4.0 5.0
Ejemplo de salida
x = -2.0, y = 3.0
La ecuación no tiene solución
3
13. Geometrı́a: ¿El punto está dentro del triángulo? Suponga que un triángulo rectángulo se
coloca en un plano como se muestra a continuación. El punto del ángulo recto se coloca
en (0, 0), y los otros dos puntos se colocan en (200, 0) y (0, 100). Escriba un programa
que le solicite al usuario ingresar un punto con coordenadas x e y. Determine si el punto
está dentro del triángulo.
Ejemplo de entrada
Ingrese las coordenadas x e y de un punto: 100.5 25.5
Ingrese las coordenadas x e y de un punto: 100.5 50.5
Ejemplo de salida
El punto está en el triángulo
El punto no está en el triángulo
4
14. Geometrı́a: posición del punto. Dada una lı́nea dirigida desde el punto p0 = (x0 , y0 ) a
p1 = (x1 , y1 ), puede usar la siguiente condición para decidir si un punto p2 = (x2 , y2 ) está
la izquierda de la lı́nea, a la derecha o en la misma lı́nea, como se muestra en la Figura:
> 0 p2 esta al lado izquierdo
(x1 − x0 ) ∗ (y2 − y0 ) − (x2 − x0 ) ∗ (y1 − y0 ) = = 0 p2 esta en la misma linea
< 0 p2 al lado derecho
Figura 1: (a) p2 está a la izquierda de la lı́nea. (b) p2 está a la derecha de la lı́nea. (c) p2 está
en la misma lı́nea.
Escriba un programa que solicite al usuario ingresar los tres puntos para p0 , p1 y p2 y
muestre si p2 está a la izquierda de la lı́nea desde p0 hasta p1 , a la derecha o en la misma
lı́nea.
Ejemplo de entrada
Ingrese tres puntos para p0, p1 y p2: 4.4 2 6.5 9.5 -5 4
Ingrese tres puntos para p0, p1 y p2: 1 1 5 5 2 2
Ingrese tres puntos para p0, p1 y p2: 3.4 2 6.5 9.5 5 2.5
Ejemplo de salida
(-5.0, 4.0) está al lado izquierdo de la lı́nea (4.4, 2.0) - (6.5, 9.5)
(2.0, 2.0) está en la lı́nea (1.0, 1.0) - (5.0, 5.0)
(5.0, 2.5) está al lado derecho de la lı́nea (3.4, 2.0) - (6.5, 9.5)
5
15. Geometrı́a: punto de intersección. Dos puntos en la lı́nea 1 se dan como (x1 , y1 ) y (x2 , y2 )
y en la lı́nea 2 como (x3 , y3 ) y (x4 , y4 ), como se muestra en la Figura.
6
17. Geometrı́a: ¿El punto está dentro del cı́rculo? Escriba un programa que solicite al usuario
ingresar un punto (x, y) y verifique si el punto está dentro del cı́rculo centrado en (0, 0)
con radio 100. Por ejemplo, (40, 50) está dentro del cı́rculo y (90, 90) está fuera del cı́rculo,
como se muestra en la Figura.
Ejemplo de salida
7
Código en Python
import turtle
v = turtle . Screen ()
t = turtle . Pen ()
# Dibuja el circulo
t . up ()
t . goto ( x1 , y1 - radio )
t . down ()
t . fillcolor ( " yellow " )
t . begin_fill ()
t . circle ( radio )
t . end_fill ()
# Dibuja el punto
t . up ()
t . goto ( x2 , y2 )
t . down ()
t . begin_fill ()
t . color ( " red " )
t . circle (3)
t . end_fill ()
# Despliega el estado
t . up ()
t . goto ( x1 -70 , y1 - radio -20)
t . down ()
d = (( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 ) ) ** 0.5
if d <= radio :
t . write ( " El punto está dentro del cı́rculo " )
else :
t . write ( " El punto está fuera del cı́rculo " )
t . hideturtle ()
v . exitonclick ()
18. Negocio: verificar el ISBN-10. Un ISBN-10 (Número de libro estándar internacional) cons-
ta de 10 dı́gitos: d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 . El último dı́gito, d10 , es una suma de comproba-
ción, que se calcula a partir de los otros nueve dı́gitos con la siguiente fórmula:
(d1 × 1 + d2 × 2 + d3 × 3 + d4 × 4 + d5 × 5 + d6 × 6 + d7 × 7 + d8 × 8 + d9 × 9) %11
8
Si la suma de comprobación es 10, el último dı́gito se denota como X de acuerdo con la
convención ISBN-10. Escriba un programa que solicite al usuario ingresar los primeros 9
dı́gitos y muestre el ISBN de 10 dı́gitos (incluidos los ceros a la izquierda). Su programa
debe leer la entrada como un entero.
Ejemplo de entrada
Ingrese los primeros 9 dı́gitos de un ISBN como número entero: 013601267
Ingrese los primeros 9 dı́gitos de un ISBN como número entero: 013031997
Ejemplo de salida
El número ISBN-10 es 0136012671
El número ISBN-10 es 013031997X
19. Utilice las operaciones booleanas and, or y xor. Escriba un programa que solicite al usuario
ingresar un número entero y determine si es divisible entre 2 y 3, si es divisible entre 2 o
3, y si es divisible entre 2 o 3, pero no ambos.
Ejemplo de entrada
Ingrese un número entero: 4
Ingrese un número entero: 18
Ejemplo de salida
4 es divisible entre 2 o 3.
4 es divisible entre 2 o 3, pero no ambos.
18 es divisible entre 2 y 3.
18 es divisible entre 2 o 3.
20. Costo de envı́o. Una empresa de envı́o utiliza la siguiente función para calcular el costo
(en dólares) del envı́o en función del peso del paquete (en libras).
3.5 si 0 < peso ≤ 1
5.5 si 1 < peso ≤ 3
costo(peso) =
8.5 si 3 < peso ≤ 10
10 < peso ≤ 50
10.5 si
Escriba un programa que le pida al usuario que ingrese el peso del paquete e imprima el
costo de envı́o. Si el peso es mayor que 50, muestre un mensaje “El paquete no se puede
enviar”.
Ejemplo de entrada
Ingrese el peso del paquete: 7.5
Ingrese el peso del paquete: 60
Ejemplo de salida
El costo de envı́o es 8.5
El paquete no se puede enviar
21. Cantidad de dı́as de un mes. Escriba el programa Mes, que le solicite al usuario ingresar
un mes (1 = Enero, 2 = Febrero, y ası́ sucesivamente) y luego imprima el número de dı́as
del mes. Para Marzo imprima “31 dı́as”.
Ejemplo de entrada
Ingrese un mes (1-12): 3
9
Ejemplo de salida
31 dı́as
22. Mes aleatorio. Escriba un programa que genere aleatoriamente un número entero entre 1
y 12 y muestre el mes en español, enero, febrero, ..., diciembre para el número 1, 2, ...,
12, según corresponda.
Ejemplo de salida
junio
23. Romanos. Escriba un programa que lea un número entero n (1 ≤ n ≤ 100), e imprima su
equivalente en número romano.
Ejemplo de entrada
100
Ejemplo de salida
c
24. Conversión. Escriba un programa para convertir un valor, de una unidad en otra uni-
dad de distancia. Las unidades se encuentran en m(i)lı́metros, (c)entı́metros, (m)etros y
(k)ilómetros. Lea las dos unidades y luego el valor dado.
Ejemplo de entrada
Convertir de: i
Convertir a: c
Valor: 10
Ejemplo de salida
10 milı́metros = 1 centı́metro
25. Buscar fechas futuras Escriba un programa que solicite al usuario ingresar un número
entero para el dı́a de hoy de la semana (el domingo es 0, el lunes es 1, ..., y el sábado es
6). Indique también al usuario que ingrese el número de dı́as posteriores a hoy para un
dı́a futuro y muestre el dı́a futuro de la semana.
Ejemplo de entrada
Ingrese el dı́a de hoy: 1
Ingrese la cantidad de dı́as transcurridos desde hoy: 3
Ingrese el dı́a de hoy: 0
Ingrese el número de dı́as transcurridos desde hoy: 31
Ejemplo de salida
Hoy es lunes y el dı́a futuro es jueves
Hoy es domingo y el dı́a futuro es miércoles
26. Juego: cara o cruz. Escriba un programa que le permita al usuario adivinar si el lanza-
miento de una moneda da como resultado cara o cruz. El programa genera aleatoriamente
un entero 0 o 1, que representa la cara o cruz de una moneda. El programa solicita al
usuario que ingrese un valor 0 o 1 y le informa si el valor ingresado coincide o no coincide
con el valor generado aleatoriamente.
Ejemplo de entrada
Ingrese (0) cara o (1) cruz: 1
10
Ejemplo de salida
coincide
27. Punto aleatorio. Escribe un programa que muestre una coordenada aleatoria dentro de
un rectángulo. El rectángulo está centrado en el (0, 0) con ancho 100 y alto 200.
Ejemplo de salida
(40,50)
28. Tipo de triángulo. Realice in programa que acepte tres enteros que representan las longi-
tudes de los lados de un triángulo e imprima el tipo de triángulo que es. Los tres tipos son
equiláteros, isósceles y escaleno. Un triángulo equilátero tiene todos los 3 lados iguales, un
isósceles tiene sólo 2 lados iguales y una escaleno tiene los 3 lados de longitudes distintas.
Ejemplo de entrada
Ingrese los 3 lados de un Triángulo: 1 3 1
Ejemplo de salida
Isósceles
29. Verifica las leyes. Verifique con un programa si son cierta las siguientes identidades, donde
a, b y c son las longitudes de los lados de un triángulo. A, B y C son los ángulos opuestos
a los lados respectivamente:
sin A sin B sin C
a) Ley de los senos: = =
a b c
2 2 2
b) Ley de los cosenos: c = a + b − 2ab cos C
tan A+B
a+b 2
c) Ley de las tangentes: =
a−b tan A−B2
Ejemplo de entrada
Ingrese los tres lados y los tres ángulos: 1.0000 1.4142 1.0000 45.00 90.00 45.00
Ejemplo de salida
Se cumple a), b), c)
30. Verifica Pitágoras. Verifique con un programa si son cierta las siguientes identidades de
pitágoras:
a) sin2 a + cos2 a = 1
b) sec2 a − tan2 a = 1
c) csc2 a − cot2 a = 1
Ejemplo de entrada
Ingrese el ángulo: 45
Ejemplo de salida
Se cumple a), b), c)
31. Verifica logaritmos. Verifique con un programa si son cierta las siguientes propiedades de
logaritmos:
11
a) aloga x = x
b) loga (ax ) = x
c) loga (xy) = loga x + loga y
d ) loga (x/y) = loga x − loga y
e) loga x = loga b logb x
Ejemplo de entrada
Ingrese x: 10
Ingrese y: 100
Ingrese base a: 2
Ingrese base b: 3
Ejemplo de salida
Se cumple a), b), c), d), e)
32. Carácter ascii. Escriba un programa que imprima el valor ascii de un carácter ascii.
Ejemplo de entrada
Ingrese un cáracter: a
Ejemplo de salida
El 97 representa el carácter ascii a.
34. Dialogo. Escriba un programa que lea la letra inicial de un color e imprima el color
equivalente. Los nombres de los colores que serán aceptados son A para el Azul, V para
el verde y R para el rojo. Si el usuario escribe una letra que sea distinta a A, V o R,
imprima un mensaje de error. Su programa tiene que aceptar tanto mayúsculas ası́ como
minúsculas. Estos son algunos ejemplos de diálogos:
¿Qué color te gusta? A
Elegiste el Azul.
¿Qué color te gusta? v
Elegiste el Verde.
¿Qué color te gusta? Celeste
Color desconocido: Celeste
dónde
12
a) h es el dı́a de la semana (0: sábado, 1: domingo, 2: lunes, 3: martes, 4: miércoles, 5:
jueves, 6: viernes).
b) q es el dı́a del mes.
c) m es el mes (3: marzo, 4: abril, ..., 12: diciembre). Enero y febrero se cuentan como
los meses 13 y 14 del año anterior.
año
d ) j es el siglo (es decir, )
100
e) k es el año del siglo (es decir, año %100).
Tenga en cuenta que la división en la fórmula realiza una división entera. Escriba un
programa que solicite al usuario ingresar un año, mes y dı́a del mes, y muestre el nombre
del dı́a de la semana.
(Sugerencia: enero y febrero se cuentan como 13 y 14 en la fórmula, por lo que debe
convertir la entrada del usuario 1 a 13 y de 2 a 14 para el mes y cambiar el año al año
anterior.)
Ejemplo de entrada
Ingrese el año: (por ejemplo, 2012): 2015
Ingrese el mes: 1-12: 1
Ingrese el dı́a del mes: 1-31: 25
Ingrese el año: (por ejemplo, 2012): 2012
Ingrese el mes: 1-12: 5
Ingrese el dı́a del mes: 1-31: 12
Ejemplo de salida
El dı́a de la semana es domingo
El dı́a de la semana es el sábado
13
3. Problemas asignados para entrega
1. Figura. Escriba un programa que lea una letra e imprima la figura elegida. Si escribe la
’t’ deberá dibujar un triángulo, ’r’ para el rectángulo y ’c’ para el circulo. Si se escribe
una letra distinta a las anteriores, deberá imprimir el mensaje “Letra no válida”
Ejemplo de entrada
Ejemplo de salida
14
2. Número Palı́ndromo. Escriba un programa que le solicite al usuario ingresar un número
entero de tres dı́gitos y determinar si es un número palı́ndromo. Un número es palindrome
si se lee igual de derecha a izquierda y de izquierda a derecha.
Ejemplo de entrada
Ingrese un número entero de tres dı́gitos: 121
Ingrese un número entero de tres dı́gitos: 123
Ejemplo de salida
121 es un palı́ndromo
123 no es un palı́ndromo
3. Ordena. Escriba un programa que lea cuatro números en punto flotante e imprima los
cuatro números en orden descendente.
Ejemplo de entrada
Ingrese cuatro números: 7 13 9 2.5
Ejemplo de salida
13 9 7 2.5
4. Logaritmo. Escriba un programa que lea la base b (entero) y el número x (real). Imprima
el resultado del logb x. Valide si x es negativo:
Ejemplo de entrada
base: 2
x : 0.5
Ejemplo de salida
-1
5. Triángulo. Escriba un programa que realice los cálculos sobre un triángulo. Un triángulo
se define por la coordenada x e y de sus tres vértices. Su trabajo consiste en calcular las
siguientes propiedades de un triángulo dado:
Ejemplo de entrada
Ingrese los tres vértices v1, v2 y v3: 0 0 1 0 0 1
Ejemplo de salida
Longitud de los lados = 1.0000 1.4142 1.0000
Angulos de las esquinas = 45.0000 90.0000 45.0000
Perı́metro = 3.4142
Area = 0.5000
15
6. Cálculo del salario del trabajador. A un trabajador se le paga de acuerdo a su salario por
hora hasta 40 horas. Y por cada hora extra trabajada, se le incrementa solo el 50 % del
salario por hora. Escriba un programa que calcule el pago a un trabajador. El programa
le pide al usuario que ingrese el número de horas y el salario por hora. El programa debe
mostrar el salario total.
Ejemplo de entrada
Ingrese el número de horas trabajadas: 41
Ingrese el salario por hora en Bs: 30
Ejemplo de salida
El salario del trabajador es Bs 1245.00
7. Número de pulsaciones. Calcule el número de pulsaciones que debe tener una persona por
cada 10 segundos de ejercicio aeróbico, la fórmula que se aplica es la siguiente:
Si el sexo es femenino:
Si el sexo es masculino:
Ejemplo de entrada
Ingrese el sexo 1 = mujer, 2 = hombre: 1
Ingrese su edad: 18
Ejemplo de salida
Usted deberı́a tener 20.2 pulsaciones por cada 10 seg.
8. Descuento de ventas. Una fruterı́a ofrece manzanas con descuento según la siguiente tabla:
Kilos % Descuento
0-2 0%
2.01 - 5 10 %
5.01 - 10 20 %
Mayor a 10 30 %
Determine la cantidad a cancelar por parte de una persona que compre manzanas en esa
fruterı́a.
Ejemplo de entrada
Ingrese el precio por kilo (Bs) : 10
Ingrese la cantidad de kilos: 13
Ejemplo de salida
Precio a cancelar Bs. 91.0
16
9. Intérvalo. Escriba un programa que lea dos horas e imprima el número de horas y minutos
entre estas dos horas.
Ejemplo de entrada
Por favor, ingrese la primera hora: 9
Por favor, ingrese los minutos (primera hora): 0
Por favor, ingrese la segunda hora: 17
Por favor, ingrese los minutos (segunda hora): 30
Ejemplo de salida
8 horas y 30 minutos
10. Literal de un número. Escriba un programa para que lea un número decimal del 1 hasta
el 99 e imprima el literal del número.
Ejemplo de entrada
Ingrese n [1..99]: 89
Ejemplo de salida
ochenta y nueve
11. Ecuación de la recta. Escriba un programa que dados dos puntos (x1 , y1 ) y (x2 , y2 ); escriba
la ecuación de la recta que pasa por ellos, en sus dos formas y = mx+b y Ax+By +C = 0.
Ejemplo de entrada
Ingrese x1, y1, x2, y2: -2 -3 4 2
Ingrese x1, y1, x2, y2: 0 2 1 5
Ejemplo de salida
y = 0.83x + -1.33 -5x + 6y + 8 = 0
y = 3.00x + 2.00 -3x + 1y + -2 = 0
12. Juego: papel, piedra y tijera. Escribe un programa que reproduzca el popular juego de
papel, piedra y tijera. (Una tijera puede cortar un papel, una piedra puede dañar a una
tijera y un papel puede envolver una piedra.) El programa genera aleatoriamente un
número 0, 1 o 2 que representan la tijera, la piedra y el papel. El programa solicita al
usuario que ingrese un número 0, 1 o 2 y muestra un mensaje que indica si el usuario o
la computadora gana, pierde o empata.
Ejemplo de entrada
tijera (0), piedra (1), papel (2): 1
tijera (0), piedra (1), papel (2): 2
Ejemplo de salida
La computadora es tijera. Eres piedra. Ganaste
La computadora es papel. Usted también es papel. Es un empate
13. Geometrı́a: ¿El punto está dentro del rectángulo? Escriba un programa que solicite al
usuario ingresar un punto (x, y) y verifique si este punto está dentro del rectángulo cen-
trado en (0, 0) con ancho 100 y alto 50. Por ejemplo, (20, 20) está dentro del rectángulo
y (60, 40) está fuera del rectángulo, como se muestra en la Figura.
(Sugerencia: un punto está en el rectángulo si su distancia horizontal a (0, 0) es menor
o igual a 100/2 y su distancia vertical a (0, 0) es menor o igual a 50.0/2. Pruebe su
programa para que cumpla todos los casos.)
17
Figura 5: Puntos dentro y fuera del rectángulo.
Ejemplo de entrada
Ingrese un punto con dos coordenadas: 0 0
Ejemplo de salida
18