ALIPSO.COM - Trabajos prácticos, monografías, apuntes, tesis, manuales, material educativo y mucho más.
 

Página de inicio | Agregar a Favoritos | Contactate con nosotros | Publicidad

Alipso.com
 

Monografías

Examenes

Enlaces

Publicar material o sitio

Foros

ABC del estudio

Cursos en CD

Diversión

  Buscar material sobre...
Todas las palabras Cualquier palabra Frase Exacta
El sitio en el que encontrás
todo el material que buscás.

Monografías
 
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 >

  Imprimir Recomendar a un amigo Recordarme el recurso Descargar como pdf


Enlaces recomendados
   

   

Material relacionado
 

Material educativo de Alipso relacionado con Algoritmos Estructuras Datos

  • Informártica general. Circuitos integrados.: Uso del CPU. La Unidad de Control. Microinstruccion. Secuenciador. Decodificador. Buses. Bus de datos. Fase de captación.
  • Evaluacion de Informaticia: tema 1 datos,von newman,motherboard,placas on board,impresoras a chorro de tinta scanner
  • Base de Datos en Excel: Este documento contiene informacion para crear bases de datos en Excel Nivel Avanzado
  • 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. Práctica 5. Procedimientos. Funciones. Programación.


  • Enlaces externos relacionados con Algoritmos Estructuras Datos

    Ver enlaces

     


    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




    Intercambio de enlaces
    Más sitios recomendados Si quiere figurar en la sección de enlaces recomendados e intercambiar enlaces con Alipso.com contáctese
     

    © copyright 1999-2009 | alipso.com | todos los derechos reservados Normativas
    Contactate con nosotros Programacion por Efemosse Sistemas Diseño por Silvana Fano Hosting en MOSSE HOSTING.COM

    Newsletter
     
    usuarios
    ya reciben nuestro boletín informativo.
    Suscribite también gratis.

    Suscribir Desuscribir

    Cerrar Ventana