Programación (Pascal)—Guı́a de Ejercicios Certamen #1 Roberto Bonvallet <[email protected]> 6 de abril de 2006 Resuelva los siguientes ejercicios sin usar el computador. Una vez que los haya resuelto, use el computador para ver si están correctos. 1. Considere el programa Muahahaha: a) ¿Hay algún error en el programa? b) ¿Cuántas veces se ejecuta el ciclo repeat? c) ¿Cuál es la salida del programa?, es decir: ¿qué imprime el programa en la pantalla? d) ¿Cuál es el valor de la variable a una vez que termina el programa? program Muahahaha ; var a : Boolean ; begin a := false ; repeat a : = not a ; Writeln ( a ) u n t i l not a ; end . 2. Resuelva las siguientes expresiones, teniendo en cuenta el orden de precedencia de los operadores. Indique además el tipo de cada resultado. a) b) c) d) e) f) not false and not false or false and true not 1=2 and not 1=2 or 1=2 and 1=1 Chr(Ord(’r’) − Ord(’a’) + Ord(’A’)) Succ(16/2) mod 2+2 Round(Sqrt(Succ(Trunc(17/2)))) + 0.0 10 − 1+1 − 1+2 − 1+3 3. Dados n y m, escriba el código en Pascal que calcule: a) b) c) d) e) n! usando solamente while; n! usando solamente repeat; mn usando solamente while; mn usando solamente repeat; m n usando lo que a usted se le dé la gana. Procure que los programas entreguen el resultado correcto para n = 0. 4. Si un reloj de punteros indica que son las 7, en 45 horas más indicará que son las 4. Si el reloj indica que son las t, escriba una expresión que calcule qué hora indicará en h horas más. 5. Escriba un programa en Pascal que imprima los números de 1 a 1000 que no tengan el dı́gito 7 ni sean múltiplos de 7.