Guía PEP N°1
-
Upload
sebastian-morris -
Category
Documents
-
view
12 -
download
0
description
Transcript of Guía PEP N°1
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 1/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
GUÍ DE EJERCICIOS
PEP N°1Autores : Felipe Fuentes
Juan Francisco González
Luciano Hidalgo
Manuel Manríquez
1. Dada una lista de n elementos, no necesariamente ordenada, busque:
a) El elemento menor.
b) El elemento mayor.
c) El promedio de los elementos en la lista.
Ejemplo:
listaN = [12,4,34,1,2,52,1,54,98,5,235,76,57,87,123,32,32]
menor = 1
mayor = 235
2. Dada una lista de n números, no ordenados, ordene la lista, utilizando iteraciones, de mayor a
menor.
3. Obtenga la mediana de una lista de números ordenada.
La mediana se obtiene mediante el término que se encuentra en la posición central de unalista ordenada.
4. Obtenga la moda de una lista, la cual no posee un orden específico.
La moda es el término que más se repite dentro de una lista de números.
5. Obtenga la cantidad de dígitos pares e impares en un número.
6. Obtenga la suma de todos los dígitos de un número.
7. Obtenga la raíz digital de un número.
La raíz digital se obtiene mediante la suma de todos dígitos de un número. Si esa suma tiene
más de un dígito se deben sumar estos últimos nuevamente, es decir, la raíz digital siempre
debe estar entre el valor 0 y el 9.
8. Vea si un número es palíndromo o no.
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 2/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
Los números palíndromos son aquellos que al leerlos al revés y al derecho son iguales, por
ejemplo el 123321 o el 98789.
9. Sumar todos los números pares entre n y m, donde n y m son dados por el usuario.
10. Sumar todos los números impares entre n y m, donde n y m son dados por el usuario.
11. Dado n y m, obtenga todos los números entre 0 y n que sean múltiplos de m.
12. Dado un número n, obtenga todos los números que posean raíz cuadrada exacta.
13. Obtenga el máximo común divisor entre dos números utilizando el algoritmo de Euclides.
14. Dado un texto, capitalícelo, vea el siguiente ejemplo:
Texto inicial: “Este es un texto de ejemplo para mostrar la capitalización”.
Texto final: “Este Es Un Texto De Ejemplo Para Mostrar La Capitalización”.
15. Dado un texto, conviértalo en estilo Camel Case, vea el siguiente ejemplo:
Texto inicial: “Este es un texto de ejemplo para mostrar el Camel Case”.
Texto final: “EsteEsUnTextoDeEjemploParaMostrarElCamelCase”.
16. Dado un texto y una letra indique cuantas veces se repite la letra dentro del texto, vea el
siguiente ejemplo:
Texto inicial: “Este es un texto de ejemplo para contar la cantidad de veces que aparece cierta
letra”.
Letra a buscar: e
Respuesta: “La letra e aparece 15 veces.
Observación: Las mayúsculas y minúsculas deben ser contadas.
17. Dado un texto y una letra, reemplace todas las apariciones de esa letra en el texto.
18. Dado un texto y una letra indique cuantas palabras aparecen que contengan esa letra.
19. Dado un texto realice un diccionario de éste, mostrando las palabras que se encuentrandentro del texto que aparecen con a, las que aparecen con b y así sucesivamente para todo el
abecedario. Si dentro del texto no hay palabras que comiencen con una letra indicada, no
debe mostrar esa letra.
20. Dado un texto y un número realice el proceso de cifrado césar al texto. El cifrado césar
consiste en realizar un cambio de una letra por otra, de acuerdo a un número que indica un
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 3/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
corrimiento. Por ejemplo, si el corrimiento es de tres, el cambio de letra es el mostrado a
continuación:
Letra original Letra final
1 A D
2 B E
3 C F
4 D G
5 E H
6 F I
7 G J
8 H K
9 I L
10 J M11 K N
12 L O
13 M P
14 N Q
15 O R
16 P S
17 Q T
18 R U
19 S V
20 T W
21 U X
22 V Y
23 W Z
24 X A
25 Y B
26 Z C
En este caso, como el corrimiento es 3, el
texto “Hola” se debe codificar como
“krod”
En cambio, si el corrimiento es de 13, el cambio es el siguiente:
Letra original Letra final
1 A N
2 B O3 C P
4 D Q
5 E R
6 F S
7 G T
8 H U
9 I V
10 J W
11 K X
12 L Y
13 M Z14 N A
15 O B
16 P C
17 Q D18 R E
19 S F
20 T G
21 U H
22 V I
23 W J
24 X K
25 Y L
26 Z M
Entonces, el texto “Hola”, se codificaríacomo “ubyn”
21. Construya un programa que muestre todos los números pares, o impares entre 1 y un número
mayor a 1000 ingresado por el usuario.
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 4/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
22. Construya un programa que entregue todos los divisores de un número.
23. Construya un programa en Python que indique si un número ingresado es primo o no.
24. Construya un programa en Python que muestre por pantalla todos los números primos entre 1
y un número dado por el usuario.
25. Construya un programa que entregue el factorial de un número n.
26. Construya un programa que genera la secuencia de Fibonacci hasta el enésimo término, sin
utilizar recursión.
27. Construya un programa que, indicando una fecha de nacimiento (día, mes, año) y la fecha
actual, muestre por pantalla la cantidad de días que han pasado (considere años bisiestos)
28. Construya un programa que permita realizar la conversión de unidades de longitud, masa,
velocidad y temperatura entre el Sistema Internacional y el Sistema Imperial. Donde dada una
medida en cualquier unidad, se entregue la conversión a todas las restantes. Considere las
siguientes unidades:
Magnitud Sistema internacional Sistema imperial
(Inglés)
Otros
Longitud Centímetro, metro,
kilómetro.
Pulgada, pie, milla,
legua, yarda
Milla náutica, Unidad
astronómica (UA),
Año luz, parsec
Masa Miligramo, gramo,
kilogramo, tonelada
métrica.
Grano, onza, libra,
quintal, arroba
Quilate
Velocidad m/s, km/hr Milla/hr Mach, nudo,
velocidad de la luz en
el vacío
Temperatura Kelvin Fahrenheit Celsius
29. Construya un programa que pida al usuario un digito entre 2 y 9 y muestre por pantalla todoslos números entre 0 y 1000 que no contenga ese digito, o sea múltiplo de ese dígito (ej. Dígito
= 3, mostrar 0 1 2 4 5 7 8 10 11 14 16 17 19 20 22 25 26 28 29 40 41 44 … ) .
30. Construya un programa que reciba un número decimal y muestre por pantalla su
representación en binario y viceversa.
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 5/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
31. Una de las representaciones utilizadas en computación para manejar memoria, es la
representación hexadecimal o base16, dicha representación utiliza los dígitos del 0 al 9 para
los primeros números y las letras A=10, B=11, C=12, D=13, E=14 y F=15 para representar los
valores restantes.
Comúnmente el uso de esta representación se utiliza para ahorrar espacio, pues un
número como por ejemplo el 100 en base10, en hexadecimal se representa como 64, y el
número 255, se representa como FF.
A partir de estos ejemplos construya un programa que reciba como entrada un
hexadecimal por pantalla y muestre su valor en decimal.
32. Una de las representaciones utilizadas en computación para manejar memoria, es la
representación hexadecimal o base16, dicha representación utiliza los dígitos del 0 al 9 paralos primeros números y las letras A=10, B=11, C=12, D=13, E=14 y F=15 para representar los
valores restantes.
Comúnmente el uso de esta representación se utiliza para ahorrar espacio, pues un número
como por ejemplo el 100 en base10, en hexadecimal se representa como 64, y el número 511,
se representa como 1FF dado que 1 * 162 + 15 * 161+ 15 * 160 = 256 + 240 + 15 = 511.
El proceso inverso se realiza dividiendo, por ejemplo para pasar de 511 en base10 a
hexadecimal, se realiza la división:
511 dividido 16 -> resultado = 31resto = 15
31 dividido 16 -> resultado = 1
resto = 15
1 dividido 16 -> resultado = 0
resto = 1
Entonces, el número sería 1,15,15 que en notación hexadecimal es 1FF
A partir de estos ejemplos construya un programa que reciba como entrada un número
en base10 por pantalla y muestre su equivalente en hexadecimal en pantalla.
33. Construya un programa que permita realizar conversión de números decimales a cualquier
base menor a 10.
34. Construya en conversor de números decimales a números romanos (entre 1 y 3999) y
viceversa. El usuario debe elegir que conversión hacer.
35. Construya un programa que permita verificar si un RUT ingresado es correcto.
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 6/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
36. Imagine que ud. es el profesor del ramo Fundamentos de Computación y Programación, y
necesita realizar un informe final con las tres notas de cada alumno, más el promedio final del
curso y si debe dar PA o no.
Requisitos:
Cada alumno debe ser identificado con rut, nombres y apellidos.
Se debe solicitar por teclado la cantidad de alumnos a ingresar.
Se debe ingresar por teclado los datos de cada alumno.
Luego de mostrar la lista de todos los alumnos con su promedio, debe mostrar:
Promedio del curso.
- Cantidad de alumnos a dar PA.
- Promedio más alto.
37. Defina dos matrices de 3x3 y realice la multiplicación entre ellas.
38. Calcule el resultado de la siguiente sumatoria, para n = 10 y m = 5:
∑ ∑ / 1 ∗ √ 3
=0
=0
39. La forma de determinar si un año es bisiesto o no es:
1. Si el año es divisible por 4, vaya al paso 2. Si no es así, vaya al paso 5.
2. Si el año es divisible por 100, vaya al paso 3. Si no es así, diríjase al paso 4.
3. Si el año es divisible por 400, vaya al paso 4. Si no es así, vaya al paso 5.
4. El año es un año bisiesto (tiene 366 días).
5. El año no es un año bisiesto (tiene 365 días).
Implemente en Python un programa que pida un año y diga si este es bisiesto o no. (Opcional:
trate de realizar todo en un solo if )
40. Determine con hoja y papel la salida del siguiente código en Python:
a = 3 b = 6
c = bb = b + 1
if b > c and a < 3 or c != b :
print "Caso 1"
elif c == b and b > a:
print "Caso 2"
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 7/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
else :
print "Caso 3"
41. Realice la traza del siguiente código en Python:
i = 1 j = 0
suma = 0
for n in range(2,20): if suma < 10 :
suma = suma + j * i
else : suma = suma + j + i
i = i + 1
j = j + 2
print "Suma es:", suma
NOTA: La función range genera una lista de números que van de 2 hasta 20, sin incluir el 20.
42. Escriba un programa en Python que pida N números por teclado y que el usuario elija que
desea hacer con esa lista:
- Opción 1: Remover el menor y mostrarlo.
-
Opción 2: Remover el mayor y mostrarlo.- Opción 3: Calcular la suma de todos los números ingresados.
- Opción 4: Volver a pedir N números, con nuevo N.
- Opción 5: Salir.
Una vez que se entregue el resultado, se debe volver a preguntar que se desea hacer.
Debe verificar que la opción ingresada sea una opción válida, de no serlo, muestre de nuevo
las opciones.
43. Escriba un programa en Python que pida una frase y diga cuantas palabras contiene esta frase.
44. Escriba un programa en Python que pida una ecuación matemática y diga si los paréntesisestán bien o no. Ejemplos:
– 8 + (4 -5) está bien.
– ( (6 - 5) * 3 +4 / 7 ) ) no está bien.
– ( 6 * ( 5 * ( 7 – 3 ) ) no está bien.
– ( 45 * ( 5 – 2) + 6 * ( 77 – 3) ) + (4 –( 5-2 ) ) está bien.
– )8 – 6( no está bien.
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 8/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
45. Escriba un programa en Python que pida un número y dibuje una pirámide, con tantos niveles
como el número ingresado. Ejemplo de una pirámide con 4 niveles:
#
###
#####
#######
46. El Mail Delivery Subsystem de Google, pierde actualmente mucho tiempo intentando enviar
correos electrónicos cuyos formatos no son válidos, por lo que desea un programa, que revise
si un correo electrónico está escrito correctamente antes de enviarlo. En una primera etapa,
han decidido considerar los correos electrónicos que cumplan con uno de los siguientes
formatos:
[email protected] o [email protected]
Dónde los caracteres válidos son Letras, Números y únicamente los caracteres punto (‘.’),
guion bajo (‘_’) y guion (‘-’).
Por ejemplo:
Entrada N°1: [email protected]
Salida N°1: El correo electrónico está bien escrito
Entrada N°2: alumno #[email protected]
Salida N°2: El correo electrónico no está bien escrito
Para cumplir este objetivo, implemente la función validar correo, de acuerdo al bloque
principal entregado a continuación.
# BLOQUE PRINCIPAL
# ENTRADA
correoElectronico = raw_input("Ingrese el correo electrónico a
evaluar: ")
# PROCESAMIENTO
correoCorrecto = validarCorreo(correoElectronico)
# SALIDA
if correoCorrecto :
print "El correo electrónico está bien escrito"
else :
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 9/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
print "El correo electrónico no está bien escrito"
47. Se ha construido un programa para el cálculo de la serie de Taylor para expresar la funciónsen(x) (en torno a cero), que corresponde a la serie presentada en la Figura 1.
∑−1 +2 1!
=0
Figura 1 - Expresión de Taylor para sen(x)
Sin embargo, el bloque de definiciones se ha corrompido, quedando solamente el bloque principal,
por lo tanto se le solicita a usted, que implemente las siguientes funciones a fin de resolver elproblema:
a) Construya una función que permita calcular la potencia de un número b (número real)
utilizado como base y un número e (número entero) utilizado como exponente.
b) Utilizando la función construida en (a), construya la función calculaSerieTaylor, que
reciba como entradas los números n (límite de la sumatoria) y x (valor a evaluar) y
entregue como resultado el valor de sen(x) aproximado con precisión de n términos
utilizando la expresión presentada en la Figura 1.
Puede importar la función factorial desde el módulo math, o definirla directamente.
# BLOQUE PRINCIPAL
# ENTRADAvalorDeX = input("Ingrese el valor a calcular: ")
valorDeN = input("Ingrese la cantidad de términos necesarios: ")
# PROCESAMIENTO
resultado = calculaSerieDeTaylor(valorDeX, valorDeN)
# SALIDA
print "El valor de la serie de Taylor de", valorDeX, "con ",
valorDeN, "términos"print "es: ", resultado
48. En matemáticas existe la posibilidad de calcular a través del uso de series el resultado
aproximado de una función conocida, en particular, es posible calcular el valor del coseno de un
ángulo a través de la siguiente sucesión:
7/21/2019 Guía PEP N°1
http://slidepdf.com/reader/full/guia-pep-n1 10/10
Universidad de Santiago de Chile
Facultad de Ingeniería
Fundamentos de Computación y Programación
Segundo semestre de 2015
1 −
2!
4! −
6! ⋯
Con esta información, genere un programa en Python que permita el cálculo del coseno de un
ángulo x, con una aproximación de n términos.
49. En matemáticas existe la posibilidad de calcular a través del uso de series el resultado
aproximado de una función conocida, en particular, es posible calcular el valor del logaritmo
natural de un valor a través de la siguiente sucesión:
2 [(
− 1
1)
1
3 (
− 1
1)
1
5 (
− 1
1)
1
7 (
− 1
1)
⋯ ]
Con esta información, genere un programa recursivo en Python que permita el cálculo del
logaritmo natural de un ángulo x, con una aproximación de n términos.
50. Implemente en Python el juego del gato, para que un jugador juegue contra el computador,
utilice el módulo random para generar jugadas pseudoaleatorias para la máquina.
51. Implemente en Python el juego de cartas del blackjack, con un jugador y el computador, utilice
el módulo random para generar jugadas pseudoaleatorias para la máquina.