Download EJERCICIOS
Document related concepts
Transcript
EJERCICIOS INTRODUCCIÓN A LA PROGRAMACIÓN – GRUPO D PROFESORA: OLGA LUCÍA ROA ALUMNO: ________________________________ 1. Describa la siguiente función y haga una prueba de escritorio. from list import * import string def mLis(cad,salid): if(len(cad)!=0): salid=cons(string.upper(str(cab(cad))),salid) return(mLis(col(cad),salid)) print(str(salid)) Descripción de la función: Identificación de Variables Variables de Entrada cad = lista de caractéres salid = lista de caractéres de salida Seguimiento de los valores despues de cada iteración Del siguiente llamado a la función >>> mLis(['i','n','t','r','o'],[ ]) Iteración\variable => 1 2 3 4 5 6 7 8 9 cad col (cad ) salid 17. Escriba una función que reciba como parámetro de entrada una lista de canciones y otra lista con la duración de cada una de las canciones en minútos, se desea saber cuanto tiempo se necesita para reproducir todas las canciones. 2. Escriba una función func2 que reciba como parámetro un lista de números y retorne dos numeros enteros correspondiente a la sumatoria de todos elementos de la lista en las posiciones pares y las posiciones impares. Por ejemplo: Se recibe el lista. L = [10,12,40,38] Contenido Posicion 4 1 12 2 40 3 38 4 La función debe retornar sumPares = 50 sumImpares = 44 3. Escriba una función fuMenor que reciba como parámetro una lista de números y retorne un número entero correspondiente al menor elemento de la lista. 4. Escriba una función fuPali que reciba como parámetro una lista de caracteres (que corresponden a una palabra ) y determine si esta palabra es palíndrome, es decir si se lee igual del inicio al final que del final al inicio. La función retorna un boolean (True: si es palíndrome ó False: no es palíndrome). Por ejemplo: Entrada : pala = [‘r’,’a’,’d’,’a’,’r’] Salida: True Entrada : pala = [‘c’,’a’,’s’,’a’] Salida: Falsa Entrada : pala = [‘a’,’m’,’a’] Salida: True 5. Escriba una función fuMaxCDiv que reciba como parámetro dos números y retorne un número entero correspondiente al máximo común divisor Usando el algoritmo de Euclides, información disponible en: http://es.wikipedia.org/wiki/Algoritmo_de_Euclides 6. Escriba una función que reciba como parámetro de entrada dos listas Nombres y Apellidos respectivamente y retorne una lista Directorio, la cual integra el contenido de las dos listas de entrada, por ejemplo: Parámetros de entrada (Nombres y Apellidos) Nombres = [“Lina”,”Marcela”,”Maria”,”Pedro”] Apellidos = [“Romero”,”Giron”,”Saenz”,”Bohorquez”] Salida (Directorio) Directorio =[“Lina Romero”,”Marcela Giron”,”Maria Saenz”,”Pedro Bohorquez”] Recuerde que se le pide retornar (usar la palabra reservada return) la lista Directorio, NO imprimir. 7. Escriba una función que trabaje con listas y recursividad para solucionar el siguiente problema: La NASA está realizando un experimento para determinar el tiempo que un astronauta puede resistir con una reserva adicional de oxígeno en su tanque personal en caso de un fallo en el sistema de ventilación de una nave. Para ello colocaron un astronauta en una piscina de entrenamiento con un tanque de 30 libras y medirán el consumo de oxígeno que realiza el astronauta durante cada hora hasta que el tanque quede vacío. Como es evidente, no es posible consumir una cantidad de oxígeno mayor a la disponible. Usted debe realizar un programa que simule el experimento. El valor del consumo de oxígeno en cada hora se obtiene en una lista como parámetro de entrada (Oxigeno) hasta que éste se agote, e informando finalmente en cuál de todas las horas el consumo de oxígeno fue mayor. Recuerde que la Hora, la puede manejar como la posición dentro de la lista. Ejemplo1: Si los datos del experimento son: Hora 0 1 2 Oxígeno --7 8 OxígenoRes 30 23 15 3 4 5 - 6.5 5 3.5 8.5 3.5 0 El programa debe retornar solamente la hora de mayor consumo de oxígeno = 2 Ejemplo2: Si los datos del experimento son: Hora 0 1 2 3 4 5 6 Oxígeno consumido durante la hora --5 4.5 7.5 6 4.2 2.8 Oxígeno restante 30 25 20.5 13 7 2.8 0 El algoritmo debe debe retornar solamente la hora de mayor consumo de oxígeno =3 8. Escriba una función que reciba como parámetro de entrada una lista de Estudiantes y otra lista con su respectiva Nota de introducción, y retorne una lista de los estudiantes que pasaron la materia llamada EstudiantesOk. 10. Escriba una función fun10 que reciba como parámetro de entrada una lista de palabras y una palabra y retorne (return) cuántas veces aparece esa palabra en la lista de palabras. Variables de Entrada palabras = ['Carmen', 'Alberto', 'Benito', 'Carmen'] palabra = Carmen Variable de salida Retorna = 2 11. Escriba una función que reciba como parámetro de entrada dos listas GrupoD y GrupoA respectivamente y retorne una lista GrupoDyA, la cual integra el contenido de las dos listas de entrada intercalando los estudiantes de los dos grupos, por ejemplo: Parámetros de entrada (GrupoD y GrupoA) GrupoD = [“Lina Roa”,”Marcela Zapata”,”Maria Romero”,”Pedro Perez”] GrupoA = [“Sergio Romero”,”Edwin Giron”,”Carlos Saenz”,”Olga Bohorquez”] Salida (GrupoDyA) GrupoDyA =[“Lina Roa”,”Sergio Romero”,”Marcela Zapata”,”Edwin Giron”,”Maria Romero”, “Carlos Sanez, “Pedro Perez”,”Olga Bohorquez”] Recuerde que se le pide retornar (usar la palabra reservada return) la lista GrupoDyA NO imprimir. 12. Escriba una función que reciba como parámetro de entrada una lista de palabras y que, a continuación, cree una segunda lista con las palabras de la primera, pero sin palabras repetidas. El programa debe retornar la segunda lista, el orden de las palabras en la segunda lista no es importante. 13. Escriba una función que reciba como parámetro de entrada un número y retorne una lista de todos los divisores (incluidos uno y él mismo). 14. Escriba una función que reciba un número y retorne una lista de todos los números primos hasta él.. Entrada: 100 Salida: [1,2, 3,5,7,11, 13,17, 19, 23, 29, 31, 37,41,43,47,53,59,61,67,71,73,79,83,89,97] 15. Escriba una función que reciba como parámetro de entrada una lista de caractéres en minúscula y retorne una lista con todos los caractéres en mayúscula. 16. Escriba una función que reciba como parámetro de entrada una lista de Estudiantes y tres listas con las notas del primer, segundo y tercer parcial de introducción se asume que todos los parciales valen lo mismo, y retorne una lista con la NotaDefinitiva. Recuerde que para cada uno de los 100000 estudiantes de introducción: NotaDefinitiva = (notaPrimerParcial + notaSegundoParcial + notaTercerParcial)/3 17. Escriba una función concatena que reciba una lista de listas y devuelva una única lista que contenga el resultado de concatenar todas las listas de entrada. Por ejemplo para [[1,2,3],[2,8],[],[3,6]] la función debe retornar [1,2,3,2,8,3,6]. 18. Escriba una función que dada una lista de entrada, devuelva un booleando que indique si la lista de entrada estaba o no ordenada de menor a mayor. 19. Escriba un función que dada una lista de enteros de entrada, devuelva esa mismas lista pero eliminando en ella todos los números pares. Es decir para la lista [1,34,12,7,8,1,9] retorna [1,7,1,9]. Escribe otra función que haga lo mismo pero dejando en la lista sólo los números pares. 20. Existen sistemas numericos como el sistema binario (investiga de que se trata este sistema). Escribe una función que dado un número entero positivo devuelva una lista de enteros que contenga la representación binaria (sin signo) del entero de entrada. Por ejemplo, para 13 la función debe retornar [1,1,0,1]. 21. Escribe una función que reciba como parámetro una lista de Docentes, relacionados con una lista de Profesiones, y una profesión específica La función debe retornar todos los profesores que tienen esta profesion. Nota. Se asume que por cada elemento de la lista Docentes existe un elemento en Profesiones, es decir que tienen una relación uno a uno.