Laboratorio 06 - listas

download Laboratorio 06 - listas

of 12

Transcript of Laboratorio 06 - listas

  • 7/26/2019 Laboratorio 06 - listas

    1/12

    Algoritmos I (IS-141) 1 UNSCH

    Ing. Manuel A. Lagos Barzola

    LABORATORIO 06

    LISTAS Y MUTABILIDAD

    I. OBJETIVOS:

    1) Conocer las caractersticas de las estructuras tipo listas y diccionarios.2) Escribir programas utilizando estructuras tipo listas.3) Escribir programas utilizando estructuras tipo diccionarios.4) Comprender el concepto de mutabilidad.

    II. REVISIN CUESTIONARIO LABORATORIO ANTERIOR

    Estructuras repetitivas

    III. DESARROLLO DE LA PRCTICA:

    A. LISTAS :

    Python nos permite definir secuencias de valores de cualquier tipo. Por ejemplo,podemos definir secuencias de nmeros enteros o flotantes, o incluso decadenas. Hablamos entonces de listas. En una lista podemos, por ejemplo,registrar las notas de los estudiantes de una clase, la evolucin de la

    temperatura hora a hora, los coeficientes de un polinomio, la relacin denombres de personas asistentes a una reunin, etc.Python sigue una notacin especial para representar las listas. Los valores deuna lista deben estar encerrados entre corchetes y separados por comas. Heaqu una lista con los nmeros del 1 al 3:

  • 7/26/2019 Laboratorio 06 - listas

    2/12

    Algoritmos I (IS-141) 2 UNSCH

    Ing. Manuel A. Lagos Barzola

    Nmero de elementos de una lista:

    Concatenando Listas: Operador +

    Reproduciendo Listas: Operador *

    Operador Indexacin:

    Cortando listas:

  • 7/26/2019 Laboratorio 06 - listas

    3/12

    Algoritmos I (IS-141) 3 UNSCH

    Ing. Manuel A. Lagos Barzola

    Recorriendo los elementos de una lista:

    Comando range:

    Comparando listas:

  • 7/26/2019 Laboratorio 06 - listas

    4/12

    Algoritmos I (IS-141) 4 UNSCH

    Ing. Manuel A. Lagos Barzola

    Otras comparaciones:

    Operador is:

    Modificando elementos de una lista:

  • 7/26/2019 Laboratorio 06 - listas

    5/12

    Algoritmos I (IS-141) 5 UNSCH

    Ing. Manuel A. Lagos Barzola

    Mutabilidad, inmutabilidad y representacin de la informacin enmemoria:

    Python procura no consumir ms memoria que la necesaria. Ciertos objetos soninmutables, es decir, no pueden modificar su valor. El nmero 2 es siempre el

    nmero 2. Es un objeto inmutable. Python procura almacenar en memoria unasola vez cada valor inmutable. Si dos o ms variables contienen ese valor, susreferencias apuntan a la misma zona de memoria. Considera este ejemplo:

    Agregando elementos a una lista:

  • 7/26/2019 Laboratorio 06 - listas

    6/12

    Algoritmos I (IS-141) 6 UNSCH

    Ing. Manuel A. Lagos Barzola

    Diferencia:

    Leyendo elementos del teclado para llenar una lista:

  • 7/26/2019 Laboratorio 06 - listas

    7/12

    Algoritmos I (IS-141) 7 UNSCH

    Ing. Manuel A. Lagos Barzola

    Borrando elementos de una lista:

    B. EJERCICIOS:

    1. Disear un programa que, dados un elemento y una lista, nos diga si elelemento pertenece o no a la lista mostrando en pantalla el mensajePertenece o No pertenece en funcin del resultado.

    2. Hacer un diagrama de flujo que busque en una lista de 100 nmeros, unnmero ingresado por el usuario. La lista de nmeros debe ser ingresado porteclado en un arreglo unidimensional(lista) previamente.

    3. Hacer un diagrama de flujo para calcular el mximo y el mnimo de N nmerosalmacenados en una lista. La lista de nmeros debe ser ingresado por tecladoen un arreglo unidimensional(lista) previamente. L as operaciones de lectura denmeros para la lista y el clculo del mayor y menor nmero se deben repetir 5veces.

    4. Escriba un programa para almacenar el nombre y correo electrnico de susamistades. Luego este deber pedir un nuevo nombre y correo para registrarse,siempre y cuando no haya otro nombre igual ya registrado. El ingreso de nuevosdatos se realiza mientras el usuario lo desee.

    5. Escriba un programa que tome una lista e imprima si hay elementos repetidos;si algn elemento aparece ms de una vez.

    6. Escriba un programa que permita crear dos listas de palabras y que a

    continuacin elimine de la primera lista los nombres de la segunda.7. 6. Escriba un programa que le permita a un usuario multiplicar los datos de dos

    matrices. Este debe ingresar la dimensin de las matrices y los elementos decada matriz.

    C. CUESTIONARIO LISTAS

    listas_01

  • 7/26/2019 Laboratorio 06 - listas

    8/12

    Algoritmos I (IS-141) 8 UNSCH

    Ing. Manuel A. Lagos Barzola

    Escribe un programa que permita crear una lista de palabras. Para ello, elprograma tiene que pedir un nmero y luego solicitar ese nmero de palabraspara crear la lista. Por ltimo, el programa tiene que escribir la lista.

    Dime cuntas palabras tiene la lista:3

    Dime la palabra 1:AlbertoDime la palabra 2:Benito

    Dime la palabra 3:Carmen

    La lista creada es: ['Alberto', 'Benito', 'Carmen']

    listas_02

    Escribe un programa que permita crear una lista de palabras y que, acontinuacin, pida una palabra y diga cuntas veces aparece esa palabra en lalista.

    Dime cuntas palabras tiene la lista:4

    Dime la palabra 1:Carmen

    Dime la palabra 2:Alberto

    Dime la palabra 3:Benito

    Dime la palabra 4:Carmen

    La lista creada es: ['Carmen', 'Alberto', 'Benito', 'Carmen']

    Dime la palabra:Carmen

    La palabra 'Carmen' aparece 2 veces en la lista.

    listas_03

    Escribe un programa que permita crear una lista de palabras y que, acontinuacin, pida dos palabras y sustituya la primera por la segunda en la lista.

    Dime cuntas palabras tiene la lista:4

    Dime la palabra 1:Alberto

    Dime la palabra 2:Carmen

    Dime la palabra 3:Benito

    Dime la palabra 4:Carmen

    La lista creada es: ['Alberto', 'Carmen', 'Benito', 'Carmen']

    Sustituir la palabra:Carmen

    por la palabra:David

    La lista es ahora: ['Alberto', 'David', 'Benito', 'David']

    listas_04

  • 7/26/2019 Laboratorio 06 - listas

    9/12

    Algoritmos I (IS-141) 9 UNSCH

    Ing. Manuel A. Lagos Barzola

    Escribe un programa que permita crear una lista de palabras y que, acontinuacin, pida una palabra y elimine esa palabra de la lista.

    Dime cuntas palabras tiene la lista:4

    Dime la palabra 1:Alberto

    Dime la palabra 2:CarmenDime la palabra 3:Carmen

    Dime la palabra 4:Benito

    La lista creada es: ['Alberto', 'Carmen', 'Carmen', 'Benito']

    Dime la palabra:Carmen

    La lista es ahora: ['Alberto', 'Benito']

    listas_05

    Escribe un programa que permita crear dos listas de palabras y que, acontinuacin, elimine de la primera lista los nombres de la segunda lista.

    Dime cuntas palabras tiene la lista:5

    Dime la palabra 1:Carmen

    Dime la palabra 2:Carmen

    Dime la palabra 3:Alberto

    Dime la palabra 4:Benito

    Dime la palabra 5:David

    La lista creada es: ['Carmen', 'Carmen', 'Alberto', 'Benito', 'David']Dime cuntas palabras tiene la lista de palabras a eliminar:3

    Dime la palabra 1:Benito

    Dime la palabra 2:Juan

    Dime la palabra 3:Carmen

    La lista de palabras a eliminar es: ['Benito', 'Juan', 'Carmen']

    La lista es ahora: ['Alberto', 'David']

    listas_06

    Escribe un programa que permita crear una lista de palabras y que, acontinuacin, cree una segunda lista igual a la primera, pero al revs (no setrata de escribir la lista al revs, sino de crear una lista distinta).

    Dime cuntas palabras tiene la lista:4

    Dime la palabra 1:Alberto

    Dime la palabra 2:Carmen

    Dime la palabra 3:Benito

    Dime la palabra 4:DanielLa lista creada es: ['Alberto', 'Carmen', 'Benito', 'Daniel']

    La lista inversa es: ['Daniel', 'Benito', 'Carmen', 'Alberto']

  • 7/26/2019 Laboratorio 06 - listas

    10/12

    Algoritmos I (IS-141) 10 UNSCH

    Ing. Manuel A. Lagos Barzola

    listas_07

    Escribe un programa que permita crear dos listas de palabras y que, a

    continuacin, escriba las siguientes listas (en las que no debe haberrepeticiones):

    Lista de palabras que aparecen en las dos listas Lista de palabras que aparecen en la primera lista, pero no en la segunda Lista de palabras que aparecen en la segunda lista, pero no en la primera Lista de palabras que aparecen en ambas listas

    Dime cuntas palabras tiene la primera lista:3

    Dime la palabra 1:CarmenDime la palabra 2:Alberto

    Dime la palabra 3:Benito

    La primera lista es: ['Carmen', 'Alberto', 'Benito']

    Dime cuntas palabras tiene la segunda lista:3

    Dime la palabra 1:Benito

    Dime la palabra 2:Juan

    Dime la palabra 3:Carmen

    La segunda lista es: ['Benito', 'Juan', 'Carmen']

    Palabras que aparecen en las dos listas: ['Carmen', 'Benito']Palabras que slo aparecen en la primera lista: ['Alberto']

    Palabras que slo aparecen en la segunda lista: ['Juan']

    Todas las palabras: ['Carmen', 'Benito', 'Alberto', 'Juan']

    listas_08

    Escribe un programa que permita crear una lista de palabras y que, acontinuacin, ordene la lista por orden alfabtico.

    Dime cuntas palabras tiene la lista:4

    Dime la palabra 1:Carmen

    Dime la palabra 2:Alberto

    Dime la palabra 3:Daniel

    Dime la palabra 4:Benito

    La lista creada es: ['Carmen', Alberto', 'Daniel', 'Benito']

    La lista odenada es: ['Alberto', 'Benito', 'Carmen', 'Daniel']

    listas_09

  • 7/26/2019 Laboratorio 06 - listas

    11/12

    Algoritmos I (IS-141) 11 UNSCH

    Ing. Manuel A. Lagos Barzola

    Escribe un programa que permita crear una lista de palabras y que, acontinuacin, cree una segunda lista con las palabras de la primera, pero sinpalabras repetidas (el orden de las palabras en la segunda lista no esimportante).

    Dime cuntas palabras tiene la lista:6Dime la palabra 1:Alberto

    Dime la palabra 2:Carmen

    Dime la palabra 3:Alberto

    Dime la palabra 4:Daniel

    Dime la palabra 5:Benito

    Dime la palabra 6:Daniel

    La lista creada es: ['Alberto', 'Carmen', 'Alberto', 'Daniel', 'Benito', 'Daniel']

    La lista sin repeticiones es: ['Alberto', 'Carmen', 'Daniel', 'Benito']

    listas_10

    Escribe un programa que pida un nmero y a continuacin escriba la lista detodos los divisores del nmero (incluidos el uno y l mismo).

    Dime un nmero:36

    36 tiene 9 divisores: [1, 2, 3, 4, 6, 9, 12, 18, 36]

    Dime un nmero:125

    125 tiene 4 divisores: [1, 5, 25, 125]

    listas_11

    Escribe un programa que pida un nmero y a continuacin escriba la lista detodos los nmeros primos hasta l..

    Dime un nmero:100

    Primos hasta 100: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 7173 79 83 89 97

    listas_12

    Escribe un programa que calcule trminos de una sucesin del tipo Un+1= aUn+ b. El programa tiene que pedir el valor de a, de b y del trmino U0y elnmero de trminos a calcular.

    Clculo de trminos de una sucesin U(n+1)=a.U(n)+b.

    Dime el valor de a:2

    Dime el valor de b:-1Dime el valor de U(0):3

  • 7/26/2019 Laboratorio 06 - listas

    12/12

    Algoritmos I (IS-141) 12 UNSCH

    Ing. Manuel A. Lagos Barzola

    Dime cuntos trminos quieres:8

    Los trminos de la sucesin son: [3, 5, 9, 17, 33, 65, 129, 257]

    listas_13

    Escribe un programa que calcule trminos de la sucesin Un+1= 3 Un+ 1 siUnes impar y U n+1= Un/ 2 si Unes par. El programa tiene que pedir el trminoU0y el nmero de trminos a calcular.

    Clculo de trminos de la sucesin U(n+1)=3.U(n)+1 si n es impar yU(n)=U(n)/2 si n es par.

    Dime el valor de U(0): 7

    Dime cuntos trminos quieres:20

    Los trminos de la sucesin son: [7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16,8, 4, 2, 1, 4, 2, 1]