![]() |
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 |
|
|
Imprimir apunte |
Recomendar a un amigo |
Recordarme el recurso |
|
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 > |
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 Ù (0≤i≤dim(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)(0≤i<dim(A)
=> A[i]=A0[i]+1)}
Pc º {i=0}
Qc º {i=dim(A)} Ù Q
B º
{i<dim(A)}
I º {0≤i≤dim(A)
Ù ("j)(0≤j<i => A[j]=A0[j]+1) Ù ("j)(i≤j<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} =>?
{0≤i≤dim(A) Ù ("j)(0≤j<i => A[j]=A0[j]+1) Ù
("j)(i≤j<dim(A) => A[j]=A0[j])}
{0≤0≤dim(A)
Ù ("j)(0≤j<0 => ...) Ù ("j)(0≤j<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)
Ù 0≤i≤dim(A) Ù ("j)(0≤j<i => A[j]=A0[j]+1) Ù
("j)(i≤j<dim(A) => A[j]=A0[j])
}
E1 º {i=i1 Ù A=A1 Ù i1<dim(A)
Ù 0≤i1≤dim(A)
Ù ("j)(0≤j<i1 => A1[j]=A0[j]+1)
Ù
("j)(i1≤j<dim(A)
=> A1[j]=A0[j])}
E2 º {i2=i1
Ù A2[i2]=A1[i2]+1
Ù ("j)(j¹i2 Ù 0≤j<dim(A)
=> A2[j]=A1[j])}
E3 º {i3=i2+1
Ù A3=A2}
QPQ E3 =>
I
I º {0≤i≤dim(A) Ù ("j)(0≤j<i => A[j]=A0[j]+1) Ù ("j)(i≤j<dim(A)
=> A[j]=A0[j])}
{i3=i1+1
Ù 0≤i1<dim(A)} => {0≤i3≤dim(A)}
1
{A2[i1]=A1[i1]+1
Ù ("j)(j¹i1 Ù 0≤j<dim(A)
=> A2[j]=A1[j]) Ù
("j)(0≤j<i1
=> A1[j]=A0[j]+1) Ù ("j)(i1≤j<dim(A)
=> A1[j]=A0[j])}