EJERCICIOS
A DESARROLLAR DEL ECAES
7.
no modifican
el valor de i):
for
(i= 1; i<=1000; i= i+1)
if (A) C;
else if (D) E;
else
C;
Si
A es
cierta con probabilidad 0.6 y
D es
cierta con probabilidad 0.8, el
número esperado de ejecuciones de C,
es
A.
80
B.
480
C.
600
D.
920
E.
680
P(A)*1000+
P(AC)* P(D) *1000= 0.6*1000+0.4*0.2*1000=600+80=680
10. Indique
cuál de los siguientes fragmentos de programa es correcto con respecto a
(x mod y es el residuo
de la división entera de x
por y):
Pre: Existe k (k>=0): pot == 2k
Pos: pot == 1
A. while
(pot/2 ==
0) pot= pot mod 2;
B. while
(pot mod
2 == 0) pot= pot/2;
C. while
(2 mod pot
== 0) pot= pot/2;
D. if
(pot mod
2 == 0) pot= 1;
else pot= 0;
E. if
(pot/2 ==
0) pot= 1;
else pot= 0;
Si tomamos la precondición pot
== 2k
con k=0 y la aplicamos al programa en B obtenemos
Si
k=n , entonces
while(2n mod 2= =0){
pot = 2n/2 = 2n-1 }
en el segundo ciclo pot = 2n-1/2 = 2n-2 . Hasta llegar a 2n-n =20=1 cumpliendose la postcondicion .
12.
Pedro sabe que María siempre responde
A.
1
B.
32
C.
6
D.
5
E.
7
La respuesta es C , la justificación
es la siguiente:
Si pedro utiliza el algoritmo de búsqueda binaria para el peor de los casos, tiene un problema de tamaño n= ultimo-primero +1
n
= 64- -1+1= 64
con w(n) comparaciones
, W(n)= ┌
lg(n) ┐ es
decir W(64)= ┌
lg(64) ┐ =┌6┐ =6
13.
sumas:
/* Q: b > 0 */
r= 0;
n= b;
while (n!=0){
r= r+a;
n= n-1;
}
/* R: r == ab */
De las siguientes aserciones, es un invariante para el ciclo
B.
r == a(b-n)
C. r == b
2 -bn
D. r == ab-n
E. r == an-ab
La respuesta es B , la justificación
es la siguiente:
La condición r == a(b-n) se cumple antes , durante y después del ciclo.
r =0 =a*0=a*(b-b)=a*(b-n)
r= r+a=0+a= a*1=a*(
b-n) donde n=n-1 y n= b , entonces
1=b-n
Después:
r = a(b-(b-1))=a*(1)=a