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:
Sábado 20 de Abril 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. 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 >
Material educativo de Alipso relacionado con Algoritmos Estructuras Datos
  • 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.
  • Parques Nacionales y datos detallados sobre varios animales.: ...
  • 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 18.

  • 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

    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


    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 »