Está en la página 1de 10

Universidad de Santiago de Chile

Facultad de Ingeniera
Fundamentos de Computacin y Programacin

GUA DE EJERCICIOS
PEP N1
Autores : Felipe Fuentes
Juan Francisco Gonzlez
Luciano Hidalgo
Manuel Manrquez

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 nmeros, no ordenados, ordene la lista, utilizando iteraciones, de mayor a
menor.

3. Obtenga la mediana de una lista de nmeros ordenada.

La mediana se obtiene mediante el trmino que se encuentra en la posicin central de una


lista ordenada.

4. Obtenga la moda de una lista, la cual no posee un orden especfico.

La moda es el trmino que ms se repite dentro de una lista de nmeros.

5. Obtenga la cantidad de dgitos pares e impares en un nmero.

6. Obtenga la suma de todos los dgitos de un nmero.

7. Obtenga la raz digital de un nmero.

La raz digital se obtiene mediante la suma de todos dgitos de un nmero. Si esa suma tiene
ms de un dgito se deben sumar estos ltimos nuevamente, es decir, la raz digital siempre
debe estar entre el valor 0 y el 9.

8. Vea si un nmero es palndromo o no.

Segundo semestre de 2015


Universidad de Santiago de Chile
Facultad de Ingeniera
Fundamentos de Computacin y Programacin

Los nmeros palndromos son aquellos que al leerlos al revs y al derecho son iguales, por
ejemplo el 123321 o el 98789.

9. Sumar todos los nmeros pares entre n y m, donde n y m son dados por el usuario.

10. Sumar todos los nmeros impares entre n y m, donde n y m son dados por el usuario.

11. Dado n y m, obtenga todos los nmeros entre 0 y n que sean mltiplos de m.

12. Dado un nmero n, obtenga todos los nmeros que posean raz cuadrada exacta.

13. Obtenga el mximo comn divisor entre dos nmeros utilizando el algoritmo de Euclides.

14. Dado un texto, capitalcelo, vea el siguiente ejemplo:

Texto inicial: Este es un texto de ejemplo para mostrar la capitalizacin.


Texto final: Este Es Un Texto De Ejemplo Para Mostrar La Capitalizacin.

15. Dado un texto, convirtalo 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.
Observacin: Las maysculas y minsculas 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 encuentran
dentro 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 nmero realice el proceso de cifrado csar al texto. El cifrado csar
consiste en realizar un cambio de una letra por otra, de acuerdo a un nmero que indica un

Segundo semestre de 2015


Universidad de Santiago de Chile
Facultad de Ingeniera
Fundamentos de Computacin y Programacin

corrimiento. Por ejemplo, si el corrimiento es de tres, el cambio de letra es el mostrado a


continuacin:

Letra original Letra final 16 P S


1 A D 17 Q T
2 B E 18 R U
3 C F 19 S V
4 D G 20 T W
5 E H 21 U X
6 F I 22 V Y
7 G J 23 W Z
8 H K 24 X A
9 I L 25 Y B
10 J M 26 Z C
11 K N
12 L O En este caso, como el corrimiento es 3, el
13 M P texto Hola se debe codificar como
14 N Q krod
15 O R

En cambio, si el corrimiento es de 13, el cambio es el siguiente:

Letra original Letra final 15 O B


1 A N 16 P C
2 B O 17 Q D
3 C P 18 R E
4 D Q 19 S F
5 E R 20 T G
6 F S 21 U H
7 G T 22 V I
8 H U 23 W J
9 I V 24 X K
10 J W 25 Y L
11 K X 26 Z M
12 L Y
13 M Z Entonces, el texto Hola, se codificara
14 N A como ubyn

21. Construya un programa que muestre todos los nmeros pares, o impares entre 1 y un nmero
mayor a 1000 ingresado por el usuario.

Segundo semestre de 2015


Universidad de Santiago de Chile
Facultad de Ingeniera
Fundamentos de Computacin y Programacin

22. Construya un programa que entregue todos los divisores de un nmero.

23. Construya un programa en Python que indique si un nmero ingresado es primo o no.

24. Construya un programa en Python que muestre por pantalla todos los nmeros primos entre 1
y un nmero dado por el usuario.

25. Construya un programa que entregue el factorial de un nmero n.

26. Construya un programa que genera la secuencia de Fibonacci hasta el ensimo trmino, sin
utilizar recursin.

27. Construya un programa que, indicando una fecha de nacimiento (da, mes, ao) y la fecha
actual, muestre por pantalla la cantidad de das que han pasado (considere aos bisiestos)

28. Construya un programa que permita realizar la conversin 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 conversin a todas las restantes. Considere las
siguientes unidades:

Magnitud Sistema internacional Sistema imperial Otros


(Ingls)
Longitud Centmetro, metro, Pulgada, pie, milla, Milla nutica, Unidad
kilmetro. legua, yarda astronmica (UA),
Ao luz, parsec
Masa Miligramo, gramo, Grano, onza, libra, Quilate
kilogramo, tonelada quintal, arroba
mtrica.
Velocidad m/s, km/hr Milla/hr Mach, nudo,
velocidad de la luz en
el vaco
Temperatura Kelvin Fahrenheit Celsius

29. Construya un programa que pida al usuario un digito entre 2 y 9 y muestre por pantalla todos
los nmeros entre 0 y 1000 que no contenga ese digito, o sea mltiplo de ese dgito (ej. Dgito
= 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 nmero decimal y muestre por pantalla su
representacin en binario y viceversa.

Segundo semestre de 2015


Universidad de Santiago de Chile
Facultad de Ingeniera
Fundamentos de Computacin y Programacin

31. Una de las representaciones utilizadas en computacin para manejar memoria, es la


representacin hexadecimal o base16, dicha representacin utiliza los dgitos del 0 al 9 para
los primeros nmeros y las letras A=10, B=11, C=12, D=13, E=14 y F=15 para representar los
valores restantes.

Comnmente el uso de esta representacin se utiliza para ahorrar espacio, pues un


nmero como por ejemplo el 100 en base10, en hexadecimal se representa como 64, y el
nmero 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 computacin para manejar memoria, es la


representacin hexadecimal o base16, dicha representacin utiliza los dgitos del 0 al 9 para
los primeros nmeros y las letras A=10, B=11, C=12, D=13, E=14 y F=15 para representar los
valores restantes.

Comnmente el uso de esta representacin se utiliza para ahorrar espacio, pues un nmero
como por ejemplo el 100 en base10, en hexadecimal se representa como 64, y el nmero 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 divisin:

511 dividido 16 -> resultado = 31


resto = 15
31 dividido 16 -> resultado = 1
resto = 15
1 dividido 16 -> resultado = 0
resto = 1

Entonces, el nmero sera 1,15,15 que en notacin hexadecimal es 1FF

A partir de estos ejemplos construya un programa que reciba como entrada un nmero
en base10 por pantalla y muestre su equivalente en hexadecimal en pantalla.

33. Construya un programa que permita realizar conversin de nmeros decimales a cualquier
base menor a 10.

34. Construya en conversor de nmeros decimales a nmeros romanos (entre 1 y 3999) y


viceversa. El usuario debe elegir que conversin hacer.

35. Construya un programa que permita verificar si un RUT ingresado es correcto.

Segundo semestre de 2015


Universidad de Santiago de Chile
Facultad de Ingeniera
Fundamentos de Computacin y Programacin

36. Imagine que ud. es el profesor del ramo Fundamentos de Computacin y Programacin, y
necesita realizar un informe final con las tres notas de cada alumno, ms 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 ms alto.

37. Defina dos matrices de 3x3 y realice la multiplicacin entre ellas.

38. Calcule el resultado de la siguiente sumatoria, para n = 10 y m = 5:


( 2 + /( + 1)) 3
=0 =0

39. La forma de determinar si un ao es bisiesto o no es:


1. Si el ao es divisible por 4, vaya al paso 2. Si no es as, vaya al paso 5.
2. Si el ao es divisible por 100, vaya al paso 3. Si no es as, dirjase al paso 4.
3. Si el ao es divisible por 400, vaya al paso 4. Si no es as, vaya al paso 5.
4. El ao es un ao bisiesto (tiene 366 das).
5. El ao no es un ao bisiesto (tiene 365 das).

Implemente en Python un programa que pida un ao 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 cdigo en Python:

a = 3
b = 6
c = b
b = b + 1
if b > c and a < 3 or c != b :
print "Caso 1"

elif c == b and b > a:


print "Caso 2"

Segundo semestre de 2015


Universidad de Santiago de Chile
Facultad de Ingeniera
Fundamentos de Computacin y Programacin

else :
print "Caso 3"

41. Realice la traza del siguiente cdigo 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 funcin range genera una lista de nmeros que van de 2 hasta 20, sin incluir el 20.

42. Escriba un programa en Python que pida N nmeros por teclado y que el usuario elija que
desea hacer con esa lista:
- Opcin 1: Remover el menor y mostrarlo.
- Opcin 2: Remover el mayor y mostrarlo.
- Opcin 3: Calcular la suma de todos los nmeros ingresados.
- Opcin 4: Volver a pedir N nmeros, con nuevo N.
- Opcin 5: Salir.
Una vez que se entregue el resultado, se debe volver a preguntar que se desea hacer.
Debe verificar que la opcin ingresada sea una opcin vlida, 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 ecuacin matemtica y diga si los parntesis
estn 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.

Segundo semestre de 2015


Universidad de Santiago de Chile
Facultad de Ingeniera
Fundamentos de Computacin y Programacin

45. Escriba un programa en Python que pida un nmero y dibuje una pirmide, con tantos niveles
como el nmero ingresado. Ejemplo de una pirmide con 4 niveles:
#
###
#####
#######

46. El Mail Delivery Subsystem de Google, pierde actualmente mucho tiempo intentando enviar
correos electrnicos cuyos formatos no son vlidos, por lo que desea un programa, que revise
si un correo electrnico est escrito correctamente antes de enviarlo. En una primera etapa,
han decidido considerar los correos electrnicos que cumplan con uno de los siguientes
formatos:
caracteres@caracteres.cl o caracteres@caracteres.com

Dnde los caracteres vlidos son Letras, Nmeros y nicamente los caracteres punto (.),
guion bajo (_) y guion (-).

Por ejemplo:
Entrada N1: Alumnos.FCYP@usach.cl
Salida N1: El correo electrnico est bien escrito

Entrada N2: alumno #FCYP@usach.co


Salida N2: El correo electrnico no est bien escrito

Para cumplir este objetivo, implemente la funcin validar correo, de acuerdo al bloque
principal entregado a continuacin.

# BLOQUE PRINCIPAL

# ENTRADA
correoElectronico = raw_input("Ingrese el correo electrnico a
evaluar: ")

# PROCESAMIENTO
correoCorrecto = validarCorreo(correoElectronico)

# SALIDA
if correoCorrecto :
print "El correo electrnico est bien escrito"
else :

Segundo semestre de 2015


Universidad de Santiago de Chile
Facultad de Ingeniera
Fundamentos de Computacin y Programacin

print "El correo electrnico no est bien escrito"

47. Se ha construido un programa para el clculo de la serie de Taylor para expresar la funcin
sen(x) (en torno a cero), que corresponde a la serie presentada en la Figura 1.


2+1

( ) = (1)
(2 + 1)!
=0
Figura 1 - Expresin 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 el
problema:

a) Construya una funcin que permita calcular la potencia de un nmero b (nmero real)
utilizado como base y un nmero e (nmero entero) utilizado como exponente.
b) Utilizando la funcin construida en (a), construya la funcin calculaSerieTaylor, que
reciba como entradas los nmeros n (lmite de la sumatoria) y x (valor a evaluar) y
entregue como resultado el valor de sen(x) aproximado con precisin de n trminos
utilizando la expresin presentada en la Figura 1.

Puede importar la funcin factorial desde el mdulo math, o definirla directamente.

# BLOQUE PRINCIPAL

# ENTRADA
valorDeX = input("Ingrese el valor a calcular: ")
valorDeN = input("Ingrese la cantidad de trminos necesarios: ")

# PROCESAMIENTO
resultado = calculaSerieDeTaylor(valorDeX, valorDeN)

# SALIDA
print "El valor de la serie de Taylor de", valorDeX, "con ",
valorDeN, "trminos"
print "es: ", resultado

48. En matemticas existe la posibilidad de calcular a travs del uso de series el resultado
aproximado de una funcin conocida, en particular, es posible calcular el valor del coseno de un
ngulo a travs de la siguiente sucesin:

Segundo semestre de 2015


Universidad de Santiago de Chile
Facultad de Ingeniera
Fundamentos de Computacin y Programacin

2 4 6
( ) = 1 + +
2! 4! 6!
Con esta informacin, genere un programa en Python que permita el clculo del coseno de un
ngulo x, con una aproximacin de n trminos.

49. En matemticas existe la posibilidad de calcular a travs del uso de series el resultado
aproximado de una funcin conocida, en particular, es posible calcular el valor del logaritmo
natural de un valor a travs de la siguiente sucesin:

1 1 1 3 1 1 5 1 1 7
() = 2 [( )+ ( ) + ( ) + ( ) + ]
+1 3 +1 5 +1 7 +1

Con esta informacin, genere un programa recursivo en Python que permita el clculo del
logaritmo natural de un ngulo x, con una aproximacin de n trminos.

50. Implemente en Python el juego del gato, para que un jugador juegue contra el computador,
utilice el mdulo random para generar jugadas pseudoaleatorias para la mquina.

51. Implemente en Python el juego de cartas del blackjack, con un jugador y el computador, utilice
el mdulo random para generar jugadas pseudoaleatorias para la mquina.

Segundo semestre de 2015

También podría gustarte