Haga click para publicitar en Alipso.com
Buscando Secundarios  |  Universidades  |  Carreras  |  Test Orientación Vocacional  |  Medios  |  Profesores particulares  |  Institutos   | Campus
Material Monografias  |  Exámenes Secundarios  |  Exámenes Universitarios  |  Enlaces  |  Enviar material |
Diversión Postales  |  Humor  |  Descargas  |  Juegos Comunidad  Foros  | Institucional Publicite  |  En su sitio  | Contáctese
Cursos en Buenos Aires
 Cursos de Informática | Cursos de apoyo al CBC | Carreras y Cursos de Diseño, Comunicación, Arte y Fotografía

[Monografias, exámenes y sitios ]
Todas las palabras   Cualquier palabra   Frase Exacta
Página inicial Agregar a Favoritos  |  Nuevos Recursos

Imprimir apunte Recomendar a un amigo Recordarme el recurso Descargar como PDF

Más sobre este recurso:
Catalogado en base de datos como: 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 del Parcial 17. Programación.
Agregado: 17 de JULIO de 2003 (Por Michel Mosse) | Palabras: 553 | Votar! | Sin Votos | Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Programación >

Recomendamos

Material educativo de Alipso relacionado con Algoritmos Estructuras Datos
  • Oceania: Gran descripción sobre este continente incluyendo sus Islas y una gran variedad d edatos utiles para su analisis.
  • Princesa Mononoke: "La película ""Princesa Mononoke"". Tradiciones y leyendas, personajes, Técnicas y datos sobre cómo se realizó la película, Biografía del autor, Datos e información secundaria."
  • Ficheros y bases de datos: Jerarquía de memoria. Procesador de Entrada/Salida. Buffers. Dispositivos de almacenamiento. Estructura de un fichero. Técnicas de dispersión.
  • 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 del Parcial 17. Programación.


  • Enlaces externos relacionados con Algoritmos Estructuras Datos
  • Uso de Ceftriaxona y Cefazolina VEV en el Hospital Materno Infantil 10 de Octubre durante el ultimo trimestre del ano 2004
  • Incidencia de lo Social y de lo economico en los arrendamientos urbanos
  • Tecnologías para la Disminución de Costos en los Negocios


  • Algoritmos y Estructuras de Datos I

    Facultad de Ciencias Exactas y Naturales

    Universidad de Buenos Aires

    Primer Cuatrimestre de 2000

     

    Resolución del Parcial 17

     

    Ejercicio 1

     

    P º {M=M0}

    Q º {("i)(1iFilas(M) => MaxFilaHasta (M0,M,i,Columnas(M0)))}

     

    MaxFilaHasta (M0,M,f,c) º {("j)(1jc => ValorMax (M0,M,f,j))}

     

    IgualFila (M0,M,f) º {("j)(1jColumnas(M) => M[i][j]=M0[i][j])}

     

    ValorMax (M0,M,i,j) º {($k)(1kj Ù M0[i][k]=M[i][j]) Ù

                           ("k)(1kj => M0[i][k]M[i][j])}

    Pc º {f=1}

    Qc º {f=Filas(M)+1 Ù ("i)(1i<f => MaxFilaHasta (M0,M,i,Columnas(M0)))}

    I º {1fFilas(M)+1 Ù ("i)(1i<f => MaxFilaHasta (M0,M,i,Columnas(M)) Ù

         ("i)(fiFilas(M) => IgualFila (M0,M,i))}

    B º {fFilas(M)}

    FV = Filas(M)+1-f

     

    Procedure Ej1 (in-out:M:Matriz)

     

      var

        f:integer:=1;

     

      while (fFilas(M)) do

        ModifFila (M,f);

        f:=f+1;

      od;

     

    endprocedure

     

    // PROCEDIMIENTO AUXILIAR ModifFila

     

    P º {M=M0 Ù f=F0 Ù 1F0Filas(M0)}

    Q º {MaxFilaHasta (M0,M,f,Columnas(M)) Ù

        ("i)(1iFilas(M) Ù i¹f => IgualFila(M0,M,i))}

    Pc º {c=2}

    Qc º {MaxFilaHasta (M0,M,f,Columnas(M)) Ù

          ("i)(1iFilas(M) Ù i¹f => IgualFila(M0,M,i)) Ù c=Columnas(M)+1}

    I º {2cColumnas(M)+1 Ù MaxFilaHasta(M0,M,f,c-1) Ù

         ("j)(cjColumnas(M) => M[f][j]=M0[f][j]) Ù

         ("i)(1iFilas(M) Ù i¹f => IgualFila (M0,M,i)) Ù f=F0}

    B º cColumnas(M)

    FV = Columnas(M)+1-c

     

    Procedure ModifFila (in-out:M:Matriz,in:f:integer)

      var

        c:integer:=2;

      while (cColumnas(M)) do

        if M[f][c-1]>M[f][c] then M[f][c]:=M[f][c-1];

                             else skip;

        fi;

        c:=c+1;

      od;

    endprocedure


     

    Ejercicio 2

     

    Especificación en Funcional

     

    factTope:: [Llamada] -> Nat -> [Cuenta]

    factTope xs t = eliminar_duplicados (factT xs xs t)

     

    factT:: [Llamada] -> [Llamada] -> Nat –> [Cuenta]

    factT [] ys t = []

    factT (x:xs) ys t

      | (sumaMontos (cuentaDe x) ys) > t = (cuentaDe x):(factT xs ys t)

      | otherwise = factT xs ys t

     

    cuentaDe:: Llamada –> Cuenta

    cuentaDe llam = Cliente (Origen llam)

     

    sumaMontos:: Cuenta -> [Llamada] -> Nat

    sumaMontos c [] = 0

    sumaMontos c (x:xs)

      | cuentaDe x == c = (Duracion x)*(Precio (Lugar (Origen x)) (Lugar (Destino x)) +

                           sumaMontos c xs

      | otherwise = sumaMontos c xs

     

    eliminar_duplicados es la misma que la de la práctica (en lugar de ser [Int] es [Cuenta] y en lugar de Int es Cuenta y asumo que existe la igualdad entre cuentas)

     

    PROGRAMA EN IMPERATIVO

     

    P º {L=L0 Ù t=T0}

    Q º {ret_value=f_factTope L0 T0}

    Pc º P

    Qc º {ret_value=f_factT L0 L0 T0 Ù L=[]}

    I º {ret_value=f_factT (f_take L0 (f_long L0 – f_long L)) L0 T0 Ù

         L=f_drop L0 (f_long L0 – f_long L)

    B º {f_long(L)>0}

    Fv = f_long L

     

    function Ej2 (L:lista de llamada,tope:integer):lista de Cuenta

     

      while (Long(L)>0) do

        if (SumaMontos(L,Cliente(Origen(Primero(L)))) > tope then

          AgregarAtras(ret_value,Cliente(Origen(Primero(L))));

        fi;

        Cola(L);

      od;

     

      ret_value:=elimina_duplicados(ret_value);

     

    endfunction

     

    // la funcion elimina_duplicados es la misma que la de la practica pero en lugar de usar [Int] usa [Cuenta]


     

     

    // FUNCION AUXILIAR SumaMontos

     

    P º {L=L0 Ù c=C0}

    Q º {ret_value=f_sumaMontos C0 L0}

    Pc º {ret_value=0}

    Qc º Q

    I º {ret_value=f_sumaMontos c (f_take L0 (f_long L0-f_long L)) Ù

         L=f_drop L0 (f_long L0-f_long L)}

    B º {f_long L>0}

    Fv = long L

     

    function SumaMontos (L:lista de integer,c:cuenta):integer

     

      ret_value:=0;

     

      while (Long(L)>0) do

        if (Cliente (Primero(L))=c) then

          ret_value:=ret_value+Duracion(Primero(L))*

                     Precio(Lugar(Origen(Primero(L))),Lugar(Destino(Primero(L))));

        fi;

        Cola(L);

      od;

     

    endfunction





    Boletín de Novedades

    Usuarios ya reciben nuestro boletín informativo. Suscribase Ud. también gratis.

    Suscribir Desuscribir
      X