Guía PEP N°1

10
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°1 Autores : 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 una lista 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.

description

usach

Transcript of Guía PEP N°1

Page 1: 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.

Page 2: Guía PEP N°1

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

Page 3: Guía PEP N°1

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.

Page 4: Guía PEP N°1

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.

Page 5: Guía PEP N°1

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.

Page 6: Guía PEP N°1

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" 

Page 7: Guía PEP N°1

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.

Page 8: Guía PEP N°1

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 :

Page 9: Guía PEP N°1

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:

Page 10: Guía PEP N°1

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.