En esta sección, al construir un programa-while hay que utilizar variables de la forma Xw, donde
es una palabra que señala el orden de aparición de la variable.
1. Expansor de macros condicionales: Escriba un programa que traduzca macros ``programáticos''.
Entrada:
Salida:
2. Expansor de macros de pruebas complejas: Escriba un programa que traduzca pruebas compuestas.
Entrada:
Salida:
3. Expansor de macros de expresiones aritméticas: Escriba un programa que reescriba expresiones aritméticas como programas-while 's.
Las expresiones aritméticas se forman con constantes y variables e involucran a las cuatro operaciones aritméticas, a la exponenciación, div, mod, sqrt, parte entera, entero más próximo por arriba, etc.
Entrada:
Salida:
4. Esquema de recursión: Escriba un programa que aplique el esquema de recursión.
Entrada:
Salida:
5. Compresión sintáctica de programas: Considerando la codificación de símbolos mostrada en la tabla 1.7,
Table 1.7:
Codificación de símbolos de los programas- while .
Símbolo
Código hexadecimal
while
0
do
1
{
2
}
3
++
4
-
5
6
X
7
0
8
1
9
;
A
escriba a cualquier programa-while como una sucesión de bytes.
6. Decompresión sintáctica de programas: Para la misma codificación de símbolos en el programa anterior, decida cuándo una sucesión de bytes es el código de un programa-while . Cuando lo sea, reescriba el programa como una cadena de caracteres ASCII.
7. Simulador de programas-while 's: Dado un programa-while y una configuración inicial a su lista de variables, aplicar el programa a esa configuración y visualizar el cómputo paso a paso.
Entrada:
Salida:
8. Traductor de máquinas de Turing a programas-while 's: Dada una máquina de Turing escriba el programa-while que calcula a la misma función calculada por la máquina de Turing.
Aquí hay que suponer que la máquina de Turing está definida sobre el alfabeto ,
que el 0 hace el papel de ``blanco'' y que representa a los números en unario.
Siguiente:Funciones recursivas primitivasUn nivel arriba:Conceptos básicos Anterior:Primera lista de ejerciciosGuillermo Morales-Luna
2000-07-10