Universidad de Costa Rica
|
|
![]() ![]() |
![]() |
![]() ![]() |
PROGRAM Armstrong; { RESULTADO Determina cuantos números son de Armstrong, desde 1 hasta N. - Un número es de Armstrong si la suma de los dígitos que lo componen elevados al cubo es igual al número. - Por ejemplo 153 es un número de Armstrong porque 3 3 3 153 = 1 + 5 + 3 = 1^3 + 5^3 + 3^3 } BEGIN { Armstrong } N = 3000; WriteLn('Números encontrados (1 .. ', N, ') que son de Armstrong:'); FOR numero := 1 TO N DO BEGIN suma := 0; temp := numero; WHILE temp <> 0 DO BEGIN { suma de dígitos } digito := temp MOD 10; { al cubo } suma := suma + (digito * digito * digito); temp := temp DIV 10; END; IF suma = numero THEN BEGIN WriteLn(numero,' Suma de sus dígitos al cubo ', suma); END ELSE BEGIN WriteLn(' ', numero, '****'); END; END; END. { Armstrong } |
Armstrong.pas
El programa Armstrong.pas
que se muestra en la
figura es el primer programa que se
les enseña a los estudiantes del
primer curso
de programación, pues en él se usan las principales
instrucciones de un lenguaje de programación:
FOR
WHILE
IF
Su trabajo consiste en escribir un compilador para este lenguaje,
usando la herramienta de construcción de compiladores
Bison,
disponible en Internet:
http://www.fg-soup.com/files/bfwizard-1.6.zip
Usted debe entregar su proyecto en dos partes. En al primera, haga la especificación de lo que planea implementar. En este primer documento incluya, por lo menos:
Armstrong.pas
Su trabajo consiste sólo en definir la gramática que
el procesador Bison convertirá en un programa que
producirá el lenguaje ensamblador que corresponde al
programa
Armstrong.pas
. En el
documento final, además de los puntos que entregó en
la primera parte del proyecto, incluya varios programas
pequeños que muestren cómo queda compilada cada una
de las construcciones sintáctidas de su lenguaje.
Entregue la primera parte de su trabajo impresa, en clase. No es necesario que envíe ningún otro tipo de documentación por correo electrónico. Para la segunda parte, envíe todo el programa por correo electrónico. No se olvide de instalar todo su trabajo en Internet.
Luego de imprimir la documentación de su programa, y entregarla en clase, envíe su trabajo al asistente del curso por correo electrónico.
|
![]() |
![]() |
![]() |