Ver índice de contenidos del libro

5.7. Ejercicios

Ejercicio 5.7.1. Escribir un programa que reciba una a una las notas del usuario, preguntando a cada paso si desea ingresar más notas, e imprimiendo el promedio correspondiente.

Ejercicio 5.7.2. Escribir una función que reciba un número entero k e imprima su descomposición en factores primos.

Ejercicio 5.7.3. Manejo de contraseñas

  1. Escribir un programa que contenga una contraseña inventada, que le pregunte al usuario la contraseña, y no le permita continuar hasta que la haya ingresado correctamente.
  2. Modificar el programa anterior para que solamente permita una cantidad fija de inten-tos.
  3. Modificar el programa anterior para que después de cada intento agregue una pausa cada vez mayor, utilizando la función sleep del módulo time.
  4. Modificar el programa anterior para que sea una función que devuelva si el usuario ingresó o no la contraseña correctamente, mediante un valor booleano (True o False).

Ejercicio 5.7.4. Utilizando la función randrange del módulo random, escribir un programa que obtenga un número aleatorio secreto, y luego permita al usuario ingresar números y le indique sin son menores o mayores que el número a adivinar, hasta que el usuario ingrese el número correcto.

Ejercicio 5.7.5. Algoritmo de Euclides

Implementar en python el algoritmo de Euclides para calcular el máximo común divisor de dos números n y m, dado por los siguientes pasos.

  1. Teniendo n y m, se obtiene r, el resto de la división entera de m/n.
  2. Si r es cero, n es el mcd de los valores iniciales.
  3. Se reemplaza m ← n, n ← r, y se vuelve al primer paso.

Hacer un seguimiento del algoritmo implementado para los siguientes pares de números: (15,9); (9,15); (10,8); (12,6).

Ejercicio 5.7.6. Potencias de dos.

Escribir una función es_potencia_de_dos que reciba como parámetro un número natural, y devuelva True si el número es una potencia de 2, y False en caso contrario.

Escribir una función que, dados dos números naturales pasados como parámetros, devuelva la suma de todas las potencias de 2 que hay en el rango formado por esos números (0 si no hay ninguna potencia de 2 entre los dos). Utilizar la función es_potencia_de_dos, descripta en el punto anterior.

Ejercicio 5.7.7. Números perfectos y números amigos

Escribir una función que devuelva la suma de todos los divisores de un número n, sin incluirlo.

Usando la función anterior, escribir una función que imprima los primeros m números tales que la suma de sus divisores sea igual a sí mismo (es decir los primeros m números perfectos).

Usando la primera función, escribir una función que imprima las primeras m parejas de números (a,b), tales que la suma de los divisores de a es igual a b y la suma de los divisores de b es igual a a (es decir las primeras m parejas de números amigos).

Proponer optimizaciones a las funciones anteriores para disminuir el tiempo de ejecución.

Ejercicio 5.7.8. Escribir un programa que le pida al usuario que ingrese una sucesión de núme-ros naturales (primero uno, luego otro, y así hasta que el usuario ingrese -1 como condición de salida). Al final, el programa debe imprimir cuántos números fueron ingresados, la suma total de los valores y el promedio.

Ejercicio 5.7.9. Escribir una función que reciba dos números como parámetros, y devuelva cuántos múltiplos del primero hay, que sean menores que el segundo.

  1. Implementarla utilizando un ciclo for, desde el primer número hasta el segundo.
  2. Implementarla utilizando un ciclo while, que multiplique el primer número hasta que sea mayor que el segundo.
  3. Comparar ambas implementaciones: ¿Cuál es más clara? ¿Cuál realiza menos operaciones?

Ejercicio 5.7.10. Escribir una función que reciba un número natural e imprima todos los números primos que hay hasta ese número.

Ejercicio 5.7.11. Escribir una función que reciba un dígito y un número natural, y decida numéricamente si el dígito se encuentra en la notación decimal del segundo.

Ejercicio 5.7.12. Escribir una función que dada la cantidad de ejercicios de un examen, y el porcentaje necesario de ejercicios bien resueltos necesario para aprobar dicho examen, revise un grupo de examenes. Para ello, en cada paso debe preguntar la cantidad de ejercicios resueltos por el alumno, indicando con un valor centinela que no hay más examenes a revisar. Debe mostrar por pantalla el porcentaje correspondiente a la cantidad de ejercicios resueltos respecto a la cantidad de ejercicios del examen y una leyenda que indique si aprobó o no.

Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.