Páginas

martes, 26 de marzo de 2013

Simpletron


Hola a todos los gatonautas que se gastan en leer la pavadas que escribo acá, porque de hecho, no lo hago a menudo.... no desde EL INCIDENTE D:
 Hacía años que no programaba algo en serio, y mucho menos juegos en Game Maker, porque... no se, vos viste cuando la magia se va... se va U__U

Hoy me di cuenta de que tan mal estaba cuando no podía poner a punto un for estilo fila y columna pero con un solo arreglo de 100 elementos.
 Y es que de eso trata simpletron! Una maquina SIMPLEtron capaz de hacer calculos basicos, y que además si se tiene un poco de imaginación puede ejecutar pequeños programas ciclicos para sacar promedios, etc, etc.

Simpletron es una maquina que entiende palabras especificas, y además trabaja secuencialmente de arriba hacia abajo. Una palabra en simpletros se entiende como un codigo numerico de cuatro cifra (veremos esto mas adelante) 
Simpletron cuenta con unos pocos comandos, enlistar! :

LEER = 10 lee una valor desde el teclado y la introduce en una celda de memoria.

ESCRIBIR = 11 , muestra en pantalla el valor almacenado en una celda especifica de memoria

CARGAR = 20  carga en la memoria temporal un valor indicado por la celda de memoria

ALMACENA = 21 guarda un valor dentro de una celda especifica de memoria

SUMA = 30 suma el valor que esta actualmente en la memoria temporal al que esta en la celda de memoria especificada y guarda el resultado en la memoria temporal

RESTA = 31 resta el valor que esta actualmente en la memoria temporal al que esta en la celda de memoria especificada y guarda el resultado en la memoria temporal

DIVIDE = 32 divide el valor que esta actualmente en la memoria temporal con el de la celda de memoria especificada, guarda el resultado en la memoria temporal

MULTIPLICA = 33 multiplica el valor que esta actualmente en la memoria temporal con el de la celda de memoria especificada, guarda el resultado en la memoria temporal

BIFURCA = 40 bifurca a la localidad de memoria especificada

BIFURCANEGATIVO = 41 bifurca a la localidad especificada, solo si el valor de la memoria temporal es negativo

BIFURCACERO = 42 bifurca a la localidad especificada, solo si el valor de la memoria temporal es igual a 0

PARAR = 43 finaliza el programa

MOSTRARREGISTROS = 50 muestra todos los registros y estados de memoria


el funcionamiento de Simpletron es bastante basico, trabaja con dos memorias:
Una memoria temporal, y una memoria de almacenamiento(la cual contiene 100 slots)
Por Cada comando que se escribe para simpletros, se ocupará un slot de memoria, tambien por cada valor que guardemos.

Una palabra en Simpletron se entiende como un codigo numerico de cuatro cifras, ej: 1023
Esta palabra se separa en dos partes, 10 y 23: 1023
Los dos primeros digitos indican que funcion va a realizar Simpletron, en este caso con 1023, los primero dos digitos, son 10, es decir que llamamos al comando de escritura.
Luego la segunda parte indica la celda de memoria que especificamos, en este caso 23.
Entonces con esto: 1023 estamos diciendo que vamos a leer un valor desde el teclado y lo vamos a guardar en la celda 23

Supongamos que queremos sumar dos numeros: 
Primero cargamos el primer numero 1009: cargamos el primer numero en la celda 09
Segundo cargamos el segundo numero 1010: cargamos el segundo numero en la celda 10
Ahora para Sumarlo, primero debemos cargar uno de los dos numeros a sumar en la memoria temporal, como lo dice la funcion, para ello usamos el comando 20 seguido del primer numero que queremos sumar
es decir: 2009, entonces ya lo tenemos cargado.
Luego para sumar usamos el comando de suma, que es 30 y seguido colocamos la celda de memoria que vamos a sumarle, es decir 3010, luego el resultado se almacena nuevamente en la memoria temporal.
Entonces tenemos:
1009
1010
2009
3010

Para que un programa termine correctamente, se emplea el comando 43, es indiferente si colocamos 4300, como si fuera 4398, puesto que solo interesa la primera parte, el 43.
Si, un programa termina con un error fatal, ya sea division por cero o desbordamiento de memoria (a saber, que solo pueden almacenarse numeros de 4 digitos), en ese caso se mostrará los registros para que puedas verificar cuales fueron los errores.
Bifurcar, significa ir a un punto del programa en especifico, tomando el ejemplo de la suma:
00 1009
01 1010
02 2009
03 3010
si queremos volver a ingresar un valor en la celda 09, nos bastará con usar el comando de bifurcacion 40, de la siguiente forma 4009 entonces esto hará que se ejecute el programa desde dicha posicion, puesto que como dije es un programa secuencial.

Luego de escrito el programa, para que se ejecute hay que colocar el centinela 99999


Este es un ejemplo del uso del comando de lectura:
Note que para ejecutar el programa debe tipear el centinela 99999
Se puede apreciar un "? 3" que sería el ingreso del comando 1003




Como se puede apreciar ocurre una advertencia de comandos inexistentes cuando se leen comandos que no corresponde a ninguna funcion en simpletron.




Aqui podemos apreciar una division por cero, lo cual despliega los registros, es decir, esto es un error fatal:

 Finalmente aquí apreciamos un programa que sirve para determinar el valor más grande, haciendo uso de BIFURCANEGATIVO, solo basta analizar un poco las funciones y los 4 digitos para entenderlo:




Eso es todo amigos :D si quieren hacer uso de esta simple pero poderosa herramienta (que de hecho no sirve para mucho XDD ) les dejo el link:


Saludos nuevamente Gatonautas!!!!!