Guia 2 de Computacion II
Pedro Silva Mingram
(07/05/2004)
1) Traducir a Java los siguientes algoritmos para luego comparar los valores obtenidos en la traza a mano.
a)
INICIO
a <-- 3
b <-- 93
c <-- 3.56
MIENTRAS (b > a) HACER
a <-- a + 1
b <-- b - a
FIN MIENTRAS
SI (a - b < 0) ENTONCES
c <-- c * 3.14
a <-- b + 1 /* al traducir dejar solo dos sentencias */
b <-- b + 1
SINO
c <-- c / 3.14 /* al traducir dejar solo dos sentencias */
b <-- 2 * a + b
a <-- a + 1
FIN SI
SELECCION(a)
1 : b <-- b + 1
2 : a <-- a - 1
SI (MOD(b/2) es igual a 0 ) ENTONCES
b <-- b + a
FIN SI
3 : MIENTRAS(c > 0) HACER
b <-- b - 1
a <-- b + 1
c <-- c - 0.32
FIN MIENTRAS
FIN SELECCION
imprimir(a,b,c)
FIN
b )
INICIO
a <-- 3, b <-- 2 : enteros
x , y <-- 1.42 : reales
s <-- false, t <-- true : booleanos
cont <-- 0, sum <-- 0, num : enteros
escribir "Ingrese un numero del 1 al 3 : "
leer num
escribir "ingrese un numero real entre 0.0 y 1.0 : "
leer x
SI (num >= 1 y num <= 3) ENTONCES
a <-- a * num
MIENTRAS(a mayor que cero) HACER
b <-- b + 2
cont <-- cont + 1
x <-- x + y
a <-- a - 1
FIN MIENTRAS
escribir "valor de a : " + a
escribir "valor de b : " + b
escribir "el ciclo realizo " + cont + "iteraciones"
SINO
escribir "a y b tomaran valores arbitrarios..."
a <-- a + 1
b <-- b + 3 * a /* al traducir dejar dos sentencias de asignación que realicen lo mismo */
a <-- a + 2 * b
b <-- b + 1
FIN SI
MIENTRAS (cont > 0) HACER
a <-- a + cont
cont <-- cont - 2
FIN MIENTRAS
SI ( a + b es par ) ENTONCES
x <-- (a + b + 1) / 2
y <-- 2 * x / y
s <-- s AND t OR NOT t
t <-- NOT s OR t
SI (t es igual a true OR y mayor que 3.14) ENTONCES
a <-- y
y <-- a / 2
SINO
b <-- b + 1
a <-- a - 2 * b
FIN SI
SINO
escribir "para practicar TRAZA caer aqui no sirve de nada.."
FIN SI
escribir "a + b vale : " + (a + b)
escribir "s vale " + s + "y t vale : " + t
escribir "x vale " + x + "e y vale " + y
escribir "FIN"
FIN