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 de la Práctica 5. La longitud de L es Par. Programación. Algoritmos.
Agregado: 17 de JULIO de 2003 (Por Michel Mosse) | Palabras: 3118 | 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
  • Programas de aplicación: ICQ: Instalación del ICQ. Configuracion del ICQ. Utilización del ICQ. Homepage. Datos personales.
  • Corrosión en estructuras y puentes.:
  • Trabajo Práctico sobre las elecciones presidenciales del 2003 en la República Argentina: Trabajo Práctico sobre las elecciones presidenciales del 2003 en la República Argentina. Menem, Lopez Murhpy, Carrio, Kirchner, Rodriguez Saa, Bravo, todos los candidatos a la presidencia, candidatos a presidente, politicos, senadores, dipitados, un análs
  • 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 3 Primera Parte: Tipos Abstractos de Datos. Segunda Parte: Listas.


  • Enlaces externos relacionados con Algoritmos Estructuras Datos
  • El Kaizen aplicado a instituciones financieras
  • SkiMaps
  • TUTORIAL de digitalización de imágenes - en español


  • 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

     

    Ejercicio 2

     

    La longitud de L es Par

     

    Para todas las posiciones pares de L, sucede que hay un elemento en L0 que es igual a cada elemento de L y para todos los elementos de L0, sucede que hay un elemento en las posiciones Pares de L, que es igual a cada elemento de L0.

     

    Todas las posiciones pares de L son diferentes entre si.

     

    Para todas las posiciones pares de L sucede que en la sig. posicion aparece la cantidad de apariciones de L0.

     

    2-a) El procedimiento pone en las posiciones pares los elementos de L0 y en las impares la cantidad de veces que aparece cada elemento en L0.

     

    2-b-i) Podria pasar que no estén todos los elementos de L0 puestos en L.

    2-b-ii) Podria pasar que estén todos los elementos pero que haya repetidos.

    2-b-iii) Podria pasar que la lista quede impar, con lo cual quedaria un elemento en la ultima posicion y no estaria la cantidad de veces que aparece en la lista original (y se seguria cumpliendo Q)

     

    Ejercicio 3

     

    3-i)

    P º {n=N0}

    Q º {n=N0+1}

     

    Procedure Incrementar(in-out:n:integer)

     

      n:=n+1;

     

    endprocedure

     

    3-ii)

    P º {n=N0 Ù M=M0}

    Q º {(N0³M0 Ù n=N0 Ù m=M0) Ú (N0<M0 Ù n=M0 Ù m=N0)}

     

    Procedure Ordint (in-out:n:integer,in-out:m:integer)

     

      if (n³m) then skip;

               else Swap(n,m);            

      fi;

     

    endprocedure

     

    //PROCEDIMIENTO AUXILIAR Swap

    P º {n=N0 Ù m=M0}

    Q º {n=M0 Ù m=N0}

     

    Procedure Swap(in-out:n:integer,in-out:m:integer)

     

      var

        tmp:integer:=n;

     

      n:=m;

      m:=tmp;

     

    endprocedure


     

    3-iii)

    P º {n=N0}

    Q º {(Par(N0)Ù(n=N0/2)) Ú (⌐Par(N0) Ù n=N0)}

     

    Procedure Divpar(in-out:n:integer)

     

      if (Resto(n,2)=0) then

        n:=Division_entera(n,2);

      else

        skip;

      fi;

     

    endfunction

     

    3-iv)

    P º {p=P0 Ù q=Q0 Ù r=R0}

    Q º {p=(P0+Q0+R0)*P0 Ù q=Q0 Ù r=R0}

     

    procedure ej3iv (in-out:p:integer,in-out:q:integer,in-out:r:integer)

     

      p:=(p+q+r)*p;

     

    endprocedure

     

    3-v) VERSION 1

    P º {A=A0}

    Q º {A^dim(A)=f_incrementa A0^dim(A)}

    Pc º {i=0}

    Qc º {i=dim(A) Ù A^dim(A)=f_incrementa_hasta (A0^dim(A)) dim(A)}

    B º {i<dim(A)}

    I º {A^dim(A)=f_incrementa_hasta (A0^dim(A)) i Ù (0idim(A))}

    Fv = dim(A)-i

     

    //incrementa::[Int]->[Int]

    //incrementa [] = []

    //incrementa (x:xs) = (x+1):incrementa xs

     

    //incrementa_hasta::[Int]->Int->[Int]

    //incrementa_hasta [] _ = []

    //incrementa_hasta (x:xs) n | (n==0) = x:xs

    //                          | otherwise = (x+1):(incrementa_hasta xs (n-1))

     

    procedure Incrementa(in-out:A:arreglo de integer)

     

      var

        i:integer:=0;

     

      while (i<dim(A)) do

        incrementar(A[i]);

        incrementar(i);

      od;

     

    endprocedure

     


     

    3-v) VERSION 2

    P º {A=A0}

    Q º {("i)(0i<dim(A) => A[i]=A0[i]+1)}

    Pc º {i=0}

    Qc º {i=dim(A)} Ù Q

    B º {i<dim(A)}

    I º {0idim(A) Ù ("j)(0j<i => A[j]=A0[j]+1) Ù ("j)(ij<dim(A) => A[j]=A0[j])}

    Fv = dim(A)-i

     

    procedure Incrementa(in-out:A:arreglo de integer)

     

      var

        i:integer:=0;

     

      while (i<dim(A)) do

        incrementar(A[i]);

        incrementar(i);

      od;

     

    endprocedure

     

    Demostraciones

     

    1)     Pc =>? I

     

    {i=0} =>? {0idim(A) Ù ("j)(0j<i => A[j]=A0[j]+1) Ù

               ("j)(ij<dim(A) => A[j]=A0[j])}

     

    {00dim(A) Ù ("j)(0j<0 => ...) Ù ("j)(0j<dim(A) => A[j]=A0[j]}

          T     Ù        ( F  =>  ¿)  Ù                 A=A0  

          T     Ù               T     Ù                  T

     

    2)IÙB en c/iteración

     

    IÙB º {i<dim(A) Ù 0idim(A) Ù ("j)(0j<i => A[j]=A0[j]+1) Ù

           ("j)(ij<dim(A) => A[j]=A0[j]) }

    E1 º {i=i1 Ù A=A1 Ù i1<dim(A) Ù 0i1dim(A) Ù ("j)(0j<i1 => A1[j]=A0[j]+1) Ù

          ("j)(i1j<dim(A) => A1[j]=A0[j])}

     

    E2 º {i2=i1 Ù A2[i2]=A1[i2]+1 Ù ("j)(j¹i2 Ù 0j<dim(A) => A2[j]=A1[j])}

     

    E3 º {i3=i2+1 Ù A3=A2}

     

    QPQ E3 => I

     I º {0idim(A) Ù ("j)(0j<i => A[j]=A0[j]+1) Ù ("j)(ij<dim(A) => A[j]=A0[j])}

     

    {i3=i1+1 Ù 0i1<dim(A)} => {0i3dim(A)} 1

     

    {A2[i1]=A1[i1]+1 Ù ("j)(j¹i1 Ù 0j<dim(A) => A2[j]=A1[j]) Ù

    ("j)(0j<i1 => A1[j]=A0[j]+1) Ù ("j)(i1j<dim(A) => A1[j]=A0[j])}