Algoritmos y Estructuras de Datos I - ALIPSO.COM: Monografías, resúmenes, biografias y tesis gratis.
Aprende sobre marketing online, desarrollo de sitios web gratis en Youtube
Suscribite para recibir notificaciones de nuevos videos:
Jueves 28 de Marzo de 2024 |
 

Algoritmos y Estructuras de Datos I

Imprimir Recomendar a un amigo Recordarme el recurso

Algoritmos y Estructuras de Datos I Facultad de Ciencias Exactas y Naturales: Universidad de Buenos Aires Primer Cuatrimestre de 2000: Práctica 3 Primera Parte: Tipos Abstractos de Datos. Segunda Parte: Listas.

Agregado: 17 de JULIO de 2003 (Por Michel Mosse) | Palabras: 3818 | Votar | Sin Votos | Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Programación >
Material educativo de Alipso relacionado con Algoritmos Estructuras Datos
  • Algoritmos y Estructuras de Datos I.: Algoritmos y Estructuras de Datos I Facultad de Ciencias Exactas y Naturales. Universidad de Buenos Aires Primer Cuatrimestre de 2000. Resolución de la Práctica 5. La longitud de L es Par. Programación. Algoritmos.
  • Estructuras de mercados: Los mercados y la competencia.monopolio y oligopolio.
  • Algunos datos sobre Francia: Conoces Francia, algunas palabras, ¿Qué te viene a la mente cuando decís Francia?.|||20001112|

  • Enlaces externos relacionados con Algoritmos Estructuras Datos

    Algoritmos y Estructuras de Datos I

    Facultad de Ciencias Exactas y Naturales

    Universidad de Buenos Aires

    Primer Cuatrimestre de 2000

    Práctica 3

    Primera Parte: Tipos Abstractos de Datos

    Fecha sugerida de finalización: 18/05/2000.

    Tipos Abstractos de Datos

    Un conjunto de objetos más unas operaciones para manipularlos es, básicamente, lo que llamamos un tipo abstracto de datos (TAD). Por ejemplo, el tipo Color con las funciones de aridad cero (también llamadas constantes) Rojo, Verde, Azul, etc., y una operación binaria de igualdad (de color por color en bool) es todo lo que necesitamos para trabajar con el tipo abstracto de datos Color.

    El TAD Conjunto de Naturales con la función de aridad cero Vacío (que devuelve el conjunto vacío), una función para agregar un elemento a un conjunto (de conjunto por nat en conjunto), una función para ver si un elemento pertenece a un conjunto (de nat por conjunto en bool) y una función para ver si un conjunto es vacío (de conjunto de nat en bool) es todo lo que necesitamos para tratar con conjuntos de naturales. Cualquier otra función para manipular conjuntos puede escribirse a partir de éstas.

    Si miramos detenidamente las funciones de un TAD, veremos que hay algunas que nos sirven para armar elementos nuevos (ejemplo: vacío y agregar en conjuntos) y otras que nos permiten inspeccionar un elemento del tipo (ejemplo: pertenencia en conjuntos). A las primeras se las denomina constructores y a las segundas proyectores. Si extendemos el TAD Conjunto con operaciones de unión, intersección y diferencia, estas tres se escriben en función de Agregar y Vacío, o sea, en función de los constructores.

    Consideramos que la forma de resolver un problema es identificar entidades (clientes, alquileres, inmuebles, ventas, etc.) y modelarlos con TAD (identificando las operaciones para manipularlos y la relación entre éstas). En esta materia vamos a tratar con problemas del estilo:

    ü        Se cuenta con un Tipo matriz cuadrada de enteros. Tenemos una función dimensión de matriz en naturales para obtener la dimensión de una matriz y una función valor que recibe una matriz, un número de fila y un número de columna y devuelve un entero. Escribir la función Unitaria (de matriz en bool) que devuelve verdadero si la matriz recibida tiene ceros en todos lados menos en la diagonal, donde tiene unos.

    La palabra abstracto en la denominación TAD, se refiere a que se trata de esconder la representación interna. Se podría asumir que una matriz es un vector de dos dimensiones, y dada una variable del tipo matriz, tratar de obtener el elemento M[f,c] (M es la matriz, [ ] es la función de vectores para acceder a un elemento). Supongamos que alguien desarrolló el tipo matriz y esto funciona porque por suerte el tipo matriz está definido así. Un día traen una nueva versión del tipo matriz y el programa deja de funcionar. Resulta que ahora las matrices son un conjunto de ternas del tipo fila, columna, valor (esto puede tener sentido para tratar matrices muy grandes cuyos elementos valen, en gran parte, cero). Si se hubiera usado en primera instancia la función Valor (que es la que habían dicho que debía usar para acceder al valor de la matriz en una fila dada y una columna) el programa hubiera seguido funcionando (ya que, obviamente, cuando el que desarrolló el tipo matriz, cambió la representación interna, modificó la implementación de la función valor).


    Ejercicio 1

    Se cuenta con el tipo enumerado Color, formado por las siguientes constantes: azul, amarillo, rojo (primarios), verde, naranja, violeta (secundarios), blanco y negro. Enriquecerlo, definiendo las siguientes operaciones:

    i.                     primario :: Color ® Bool

    ii.                    secundario :: Color ® Bool

    iii.                  formado_por :: Color ® Color ® Bool (Que retorna True si el primer parámetro esta formado por el segundo. Por ejemplo, verde está formado por azul)


    Ejercicio 2

    Se tiene el tipo enumerado Día, formado por las constantes lunes, martes, miércoles, . . ., domingo. Enriquecerlo, definiendo las siguientes operaciones:

    i.                     siguiente :: Día ® Día

    ii.                    es_laborable :: Día ® Bool (lunes a viernes)

    iii.                  es_fin_de_semana :: Día ® Bool (sábado o domingo)

    Ejercicio 3

    Se tiene definido el tipo Vector, con las siguientes operaciones:

           abscisa :: Vector ® Real, que devuelve la componente x del vector.

           ordenada :: Vector ® Real, que devuelve la componente y del vector.

    Sobre ese tipo, definir las siguientes operaciones:

    i.                     colineales :: Vector ® Vector ® Bool

    ii.                    igual_x :: Vector ® Vector ® Bool (tienen la misma componente x)

    iii.                  igual_y :: Vector ® Vector ® Bool (tienen la misma componente y)

    iv.                  módulo :: Vector ®Real (se dispone de la operación raíz cuadrada, sqrt :: real ® real)

    v.                   producto_escalar :: Vector ® Vector ® Real

    Ejercicio 4

    Se tiene definido el tipo MatrizCuadrada (de naturales), que consta de las siguientes operaciones:

           dimensión :: MatrizCuadrada ® Nat, que devuelve el tamaño de la matriz.

           valor :: MatrizCuadrada ® Fila ® Columna ® Nat, que devuelve el valor de la casilla indicada.

    Los tipos Fila y Columna son sinónimos de Nat.

    Ejemplo:

    Sea m la siguiente matriz cuadrada:

    3

    1

    6

    2

    5

    3

    5

    4

    1

    Entonces dimensión m es 3, valor m 1 2 es 1 y valor m 3 2 es 4.

    Definir las siguientes operaciones:

    i.                     todas_iguales :: MatrizCuadrada ® Bool, que indica si todas las casillas de la matriz cuadrada tienen el mismo valor.

    ii.                    identidad :: MatrizCuadrada ® Bool, que indica si la matriz es una matriz identidad. La matriz identidad es aquélla con 0 en todas las posiciones, excepto en las casillas de la diagonal, que tienen 1.

    iii.                  máximo :: MatrizCuadrada ® Nat, que devuelve el valor máximo de la matriz.

    iv.                  mínimo :: MatrizCuadrada ® Nat, que devuelve el valor mínimo de la matriz.

    v.                   Redefinir la función de i, ahora usando solamente iii y iv.


    Ejercicio 5

    Se cuenta con el tipo Polinomio (de coeficientes naturales), que consta de las siguientes funciones:

           grado :: Polinomio ® Nat, que permite saber el grado del polinomio.

           coeficiente :: Polinomio ® Nat ® Nat, que permite saber el coeficiente del término de grado n del polinomio.

    Ejemplos: grado (2x3 + 8) = 3

    coeficiente (2x3 + 8) 0 = 8

    coeficiente (2x3 + 1) 1 = 0

    coeficiente (2x3 + 1) 3 = 2

    Definir la función evaluar :: Polinomio ® Nat ® Nat, que devuelve el valor del polinomio en el punto dado.

    Ejercicio 6

    Se tiene definido el tipo Tablero con las siguientes funciones:

           cant_filas :: Tablero ® Nat, que devuelve la cantidad de filas de un tablero.

           cant_columnas :: Tablero ® Nat, que devuelve la cantidad de columnas de un tablero.

           color_casilla :: Tablero ® Fila ® Columna ® Color, que devuelve el color de una determinada casilla de un tablero, que puede ser solamente blanco o negro; si no es una casilla válida da error.

           pintar_negro :: Tablero ® Fila ® Columna ® Tablero, que devuelve un tablero igual al original salvo por la casilla parámetro, que ahora es negra. Si no es una casilla válida devuelve un tablero igual al original.

    Los tipos Fila y Columna son sinónimos de Nat. Una casilla es una Fila y una Columna. Las casillas pueden ser blancas o negras. El rango de las filas es 1 . . cant_filas, y el rango de las columnas es 1 . . cant_columnas.

    Definir las siguientes funciones:

    i. cantidad_bloques_negros :: Tablero ® Nat

    Esta función devuelve la cantidad de "bloques" negros que hay en el tablero, donde un "bloque" es un cuadrado de dos por dos casillas, todas negras. No importa que los bloques estén superpuestos.

    Ejemplos:

    Tab1

    Tab2

    Tab3

    cantidad_bloques_negros Tab1 = 1

    cantidad_bloques_negros Tab2 = 2

    cantidad_bloques_negros Tab3 = 4

    ii. cantidad_cruces_negras :: Tablero ® Nat

    Esta función devuelve la cantidad de "cruces" negras que hay en el tablero, donde una "cruz" tiene tres casillas negras de largo por tres de ancho. No importa que las cruces estén superpuestas.

    Ejemplos:

    Tab1

    Tab2

    Tab3

    cantidad_cruces_negras Tab1 = 1

    cantidad_cruces_negras Tab2 = 2

    cantidad_cruces_negras Tab3 = 4

    iii. es_damero? :: Tablero ® Bool

    Esta función verifica si el tablero alterna casillas blancas con negras en todas las posiciones (como un tablero de damas o de ajedrez).

    Ejemplo:

    Tab

    es_damero? Tab = True

    iv. Opcional. Ejercicio interesante pero un poco difícil.

    tamaño_del_mayor_sector_blanco :: Tablero ® Nat

    Esta función devuelve el tamaño del "sector blanco" más grande, donde un "sector blanco" es un conjunto de casillas blancas adyacentes, delimitadas por casillas negras o por el fin del tablero.

    Ejemplos:

    Tab1

    Tab2

    tamaño_del_mayor_sector_blanco Tab1 = 10 (el sector blanco más grande es el que está sombreado)

    tamaño_del_mayor_sector_blanco Tab2 = 1

    Ejercicio 7

    El juego del tone consiste de un dispositivo mecánico que intentamos explicar con el siguiente dibujo:

    Al pasar una pelota por una casilla, la compuerta que determina la dirección se invierte. Si en el juego anterior tiramos una pelota, la misma va a pasar por la casillas sombreadas, dejando las compuertas como muestra la siguiente figura:

    Las funciones que permiten tratar este juego son:

           altura :: Tone ® Nat, que permite saber la altura de un juego.

           dirección :: Tone ® Nat ® Nat ® Dirección, que permite saber la dirección de la compuerta en una casilla.

    (Dirección es el tipo enumerado: data Dirección = Izquierda | Derecha)

    Ejemplos: Sea t el juego del primer dibujo. Entonces:

    altura t = 4

    dirección t 1 1 = Izquierda

    dirección t 2 1 = Derecha


    Definir:

    i.                     se_va_a_invertir :: Tone ® Nat ® Nat ® Bool, que es verdadero si para un juego dado, una cierta casilla se va a invertir al tirar una pelota.

    Ejemplos: Sea t el juego del primer dibujo. Entonces:

    se_va_a_invertir t 1 1 = True

    se_va_a_invertir t 3 1 = False

    se_va_a_invertir t 3 2 = True

    ii.                    Opcional. Ejercicio un poco difícil.

    se_va_a_invertir_n :: Tone ® Nat ® Nat ® Nat ® Bool, que es verdadero si para un juego dado, una cierta casilla va a quedar invertida al tirar tantas pelotas como indica el tercer parámetro.


    Práctica 3

    Segunda Parte: Listas

    Listas

    Al comenzar a trabajar con cualquier lenguaje (de especificación, de desarrollo, etc.) uno trata en principio con tipos básicos como enteros, naturales, booleanos, caracteres o strings (sin ver a éstos como una lista de caracteres). Al poco tiempo resulta necesario armar tuplas de estos elementos para modelar entidades más complejas (un cliente termina siendo un código, una dirección, un teléfono, etc., que son todos campos de tipos básicos). Resulta entonces necesario tratar con un conjunto de clientes, y el primer tipo complejo usado para modelar este problema es el tipo lista de clientes.

    Las listas tienen:

    ü        Un constructor que devuelve la lista vacía.

    [ ] :: à Lista

    ü        Un constructor que a partir de una lista y un elemento devuelve una nueva lista. El nuevo elemento pasa a ser el primer elemento de la lista (su cabeza)

    : :: elemà Lista à Lista (donde elem es el tipo de los elementos que componen la lista)

    ü        Un proyector que recibe una lista y devuelve verdadero si ésta es vacía.

    es_vacía :: Lista à bool

    ü        Un proyector que recibe una lista no vacía y devuelve su primer elemento o cabeza de la lista.

    cabeza :: Lista à elem (donde elem es el tipo de los elementos que conforman la lista)

    ü        Un proyector que recibe una lista no vacía y devuelve la lista resultante de sacarle el primer elemento a la lista recibida. También decimos que devuelve la cola de la lista.

    cola :: Lista à Lista

    Las listas son recursivas (una lista se construye a partir de otra lista). La recursión resulta ser una herramienta útil para tratar problemas.

    Ejercicio 8

    Definir las siguientes funciones:

    i.                     comienzo :: [Nat] ® [Nat] y último :: [Nat] ® Nat
    Ejemplo: comienzo [1, 2, 3] es [1, 2] y último [1, 2, 3] es 3.

    ii.                    longitud :: [Nat] ® Nat
    Ejemplo: longitud [1, 2, 3] es 3.

    iii.                  concatenar :: [Nat] ® [Nat] ® [Nat]
    Ejemplo: concatenar [1, 2, 3] [2, 3] es [1, 2, 3, 2, 3].

    iv.                  pertenece :: Nat à [Nat] à Bool

    Ejemplo: pertenece 1 [2, 4, 5, 1, 6] es verdadero

    v.                   i-ésimo :: [Nat] ® Nat ® Nat
    Ejemplos: i-ésimo [3, 7, 4, 2, 5] 0 es 3, i-ésimo [3, 7, 4, 2, 5] 2 es 4.

    vi.                  máximo :: [Nat] ® Nat
    Ejemplo: máximo [1, 7, 3] es 7.

    vii.                reverse :: [Nat] ® [Nat]
    Ejemplo: reverse [1, 2, 3] es [3, 2, 1].

    viii.               capicúa :: [Nat] ® Bool
    Ejemplo: capicúa [1, 2, 3, 2, 1] es verdadero.

    ix.                   cantidad_apariciones :: [Nat] ® Nat ® Nat
    Ejemplo: cantidad_apariciones [1, 2, 3, 2, 1, 2] 2 es 3.

    Nota: Es verdad que al resolver, por ejemplo, el punto ii uno podría interpretar que longitud es una función que para cualquier lista devuelve 3. Este ejercicio consiste en asumir un comportamiento de longitud, describirlo como en los enunciados del ejercicio anterior y definir la función acorde a dicho enunciado. En realidad, ésta es una buena costumbre para cualquier ejercicio o parcial: primero enunciar lo que uno interpreta y después resolverlo.

    Ejercicio 9

    Definir las siguientes funciones de [Nat] ® [Nat]:

           i.        obtener_pares, que a partir de una lista devuelve otra compuesta únicamente por los números pares que estaban en la primera, manteniendo el orden que tenían en ésta.

         ii.        obtener_primos, que a partir de una lista devuelve otra compuesta únicamente por los primos que estaban en la primera, manteniendo el orden que tenían en ésta.

        iii.        duplicar, que a partir de una lista devuelve otra en la que cada elemento aparece duplicado, manteniendo el orden de los elementos en la lista original.
    Ejemplo: duplicar [1, 7, ..., 3] es [1, 1, 7, 7, ..., 3, 3].

       iv.        limpiar_duplicados, que a partir de una lista devuelve otra compuesta por las primeras apariciones de los elementos que estaban en la primera, manteniendo el orden que tenían en ésta.
    Ejemplo: limpiar_duplicados [1, 3, 8, 3, 9, 8, 1] es [1, 3, 8, 9].

         v.        apariciones, que a partir de una lista devuelve otra compuesta, en sus posiciones impares, por los mismos elementos que estaban en la primera, filtrando los duplicados; y en sus posiciones pares, la cantidad de apariciones del elemento antecesor en la lista original.
    Ejemplo: apariciones [1, 3, 8, 3, 9, 8, 1] es [1, 2, 3, 2, 8, 2, 9, 1].

       vi.        Permutación:: [Nat] ® [Nat] ® Bool , que devuelve True si una lista es permutación de otra.
    Ejemplo: Permutacion [1,1,2,36,6,4] [4,2,6,3,6,1,1] es True
    Permutacion [1,1,2,3,6,6,1] [1,1,2,3,6,6,8] es False

    Ejercicio 10

    Definir las siguientes funciones:

    i.                     prefijo :: [Char] ® [Char] ® Bool
    Ejemplos: prefijo [a, b, c] [a, b, c, d] es verdadero, y prefijo [a, b, c] [a, c, d, b] es falso.

    ii.                    sufijo :: [Char] ® [Char] ® Bool
    Ejemplos: sufijo [c] [c, d, b, a] es falso, y sufijo [b, c, a] [d, b, c, a] es verdadero.

    iii.                  subcadena :: [Char] ® [Char] ® Bool, que indica si el primer parámetro está contenido en el segundo.

    iv.                  sacar_primero :: [Char] ® [Char] ® [Char], que elimina la primera aparición del primer parámetro en el segundo. Ejemplo: sacar_primero [c, x] [a, c, x, d, c, x] es [a, d, c, x].

    v.                   sacar_todos :: [Char] ® [Char] ® [Char], que elimina todas las apariciones del primer parámetro en el segundo. Ejemplo: sacar_todos [c, a] [a, c, a, d, c, a] es [a, d].

    vi.                  limpiar_blancos :: [Char] ® [Char], que elimina los blancos de una lista de caracteres.

    vii.                contar_blancos :: [Char] ® Nat, que cuenta la cantidad de blancos de una lista de caracteres.

    viii.               sacar_blancos_repetidos :: [Char] ® [Char], que reemplaza cada subsecuencia de blancos contiguos del primer parámetro por un solo blanco en el segundo parámetro.

    ix.                   primera_palabra :: [Char] ® [Char], que devuelve la primera palabra, asumiendo que una palabra es una subsecuencia máxima de caracteres contiguos distintos de blanco.

    x.                    contar_palabras :: [Char] ® Nat, que devuelve la cantidad de palabras del parámetro.

    xi.                   palabra_más_larga :: [Char] ® [Char], que devuelve la palabra más larga del parámetro.

    Ejercicio 11

    Definir las siguiente función.

    mezclar_ordenado :: [Int] ® [Int] ® [Int]. Que dada dos listas ordenadas retorna una tercer lista ordenada formada por ambas.


    Ejercicio 12

    Definir las siguientes funciones:

    i.                     palabras :: [Char] ® [[Char]], que arma una nueva lista con las palabras del parámetro.

    ii.                    aplanar :: [[Char]] ® [Char], que a partir de una lista de palabras arma una lista de caracteres concatenándolas.

    iii.                  aplanar_con_blancos :: [[Char]] ® [Char], que a partir de una lista de palabras, arma una lista de caracteres concatenándolas y poniendo un blanco entre cada par.

    iv.                  aplanar_con_n_blancos :: [[Char]] ® Nat ® [Char], que a partir de una lista de palabras, arma una lista de caracteres concatenándolas y poniendo n blancos entre cada par.

    Ejercicio 13

    Usando las funciones sobre colores definidas en el ejercicio 1, definir las siguientes funciones:

    i.                     primarios :: [Color] ® [Color], que descompone los colores de la lista.

    ii.                    mezclar :: [Color] ® [Color], que mezcla una lista de colores primarios de a pares.

    Ejemplo: mezclar [Amarillo, Rojo, Rojo, Azul] es [Naranja, Rojo, Violeta].

    Ejercicio 14

    Usando las funciones sobre vectores definidas en el ejercicio 3, definir:

    i.                     todos_colineales :: [Vector]® Bool, que dice si todos los vectores de la lista son colineales.

    ii.                    resultante :: [Vector]® Vector, que calcula la resultante entre todos los vectores de la lista. Puede suponerse definida la operación suma :: Vector ® Vector ® Vector, que devuelve la suma de los dos vectores pasados como parámetros.

    iii.                  primer_cuadrante :: [Vector]® [Vector], que devuelve los vectores de una lista que están en el primer cuadrante.

    iv.                  equilibrio :: [Vector]® Bool, que indica si la resultante entre todos los vectores de la lista es cero.

    Ejercicio 15

    Determinar si las siguientes definiciones son válidas. En caso de que lo sean, describir el comportamiento de f:

    i.                     f (s:ss) = 1 + f (ss)

    ii.                    f [ ] = [ ]
    f (s:ss)
    = 1 + f (ss)

    iii.                  f [ ] = 0
    f (s:ss)
    = 1

    iv.                  f [ ] = 0
    f (s:ss)
    = 1 + f (ss)

    v.                   f [ ] = 1
    f (s:ss)
    = f (ss)

    Ejercicio 16

    Definir las siguientes funciones:

    i.                     pasar_a_binario :: Nat ® [Nat], que recibe un número y lo transforma en una lista de bits correspondiente a su representación binaria.

    Ejemplo: pasar_a_binario 8, devuelve [1, 0, 0, 0].

    ii.                    pasar_a_nat :: [Nat] ® Nat, que recibe una lista de bits y la transforma en el número natural representado por dicha lista.

    Ejemplo: pasar_a_nat [1, 0, 0, 0, 1], devuelve 17.

    iii.                  pasar_a_hexa :: Nat ® [Char], que recibe un número y lo transforma en una lista de caracteres correspondiente a su representación hexadecimal.

    Ejemplo: pasar_a_hexa 45, devuelve [‘2', ‘D'].


    Ejercicio 17

    i.                     Dada una lista de pares representando la posición de n reinas en un tablero de ajedrez, definir una función que indique si se atacan:

    se_atacan_q :: [Par] ® Bool

    Ejemplo: se_atacan_q [(1, 1), (3, 2), (5, 3), (7, 4)] es False (ver la figura).


    Q

    Q

    Q

    Q

    ii.                    Dada una lista de pares representando la posición de n reyes en un tablero de ajedrez, definir una función que indique si se atacan: se_atacan_k :: [Par] ® Bool.

    Ejemplo: se_atacan_k [(1, 1), (3, 2), (5, 3), (7, 4)] es False.

    Ejercicio 18

    Usando el tipo tablero, mostrado en el ejercicio 6, definir la función:

    i. cruza? :: Tablero ® Fila ® [Dirección] ® Bool

    Donde Dirección es el tipo enumerado:

    data Dirección = Arriba | Abajo | Izquierda | Derecha

    Esta función toma como parámetros un tablero, una lista de direcciones y una posición de partida (una fila en la primera columna). Determina si se puede cruzar todo el tablero a lo ancho, usando todas las direcciones señaladas por la lista, y llegar a la última columna, transitando siempre solamente sobre casillas blancas.

    Ejemplo:

    Tab

    cruza? Tab 3 [derecha, abajo, derecha, derecha, arriba, derecha, arriba, arriba, derecha] = True

    Ejercicio 19

    a) Definir las siguientes funciones de [Nat] ® [Nat] ® [Nat], que tienen la misma interpretación que las operaciones homónimas de conjuntos, pero que trabajan sobre listas (en las listas devueltas no se deben repetir los elementos, y se puede asumir que en las listas parámetros tampoco se repiten los elementos):

    i.                     intersección

    ii.                    unión

    iii.                  diferencia_simétrica

    b) Usando las funciones definidas en a), definir las siguientes funciones de [[Nat]] ® [Nat]:

    i.                     intersección_múltiple

    ii.                    unión_múltiple

    que trabajan sobre una lista de listas de naturales, y devuelven la intersección y unión de todas ellas, respectivamente, en una lista de naturales.


    Votar

    Ingresar una calificación para del 1 al 10, siendo 10 el máximo puntaje.

    Para que la votación no tenga fraude, solo se podrá votar una vez este recurso.

    Comentarios de los usuarios


    Agregar un comentario:


    Nombre y apellido:

    E-Mail:

    Asunto:

    Opinión:



    Aún no hay comentarios para este recurso.
     
    Sobre ALIPSO.COM

    Monografias, Exámenes, Universidades, Terciarios, Carreras, Cursos, Donde Estudiar, Que Estudiar y más: Desde 1999 brindamos a los estudiantes y docentes un lugar para publicar contenido educativo y nutrirse del conocimiento.

    Contacto »
    Contacto

    Teléfono: +54 (011) 3535-7242
    Email:

    Formulario de Contacto Online »