| La
primitiva Si
Formato:
Si Pred
[órdenes]
Acción:
Ejecuta la lista de instrucciones, indicada en
órdenes, en caso de que
pred sea CIERTO.
Ejemplos:
Si entrada 3=0 [escribe “Pérez]
Si entrada 3=1 [escribe “Rodríguez]
Si entrada 5=0 [tono 200 100]
Otra forma del condicional SI es:
Formato:
Si Pred
[órdenes1]
[órdenes2]
Acción:
Ejecuta la lista de instrucciones, indicada en
órdenes, en caso de que
pred sea CIERTO. Si pred
es FALSO, se ejecuta el el conjunto de instrucciones indicado en órdenes2.
Chequeo continúo de una entrada mediante
un procedimiento recursivo.
Ejemplo de una sirena que se activa
al poner a 1 la entrada 3.
Al procedimiento lo podemos llamar “sonido”.
Para sonido
Si entrada 3=1 [tono 100 30]
sonido
fin
El condicional de la entrada debe crearse en un procedimiento recursivo.
Al accionar un pulsador conectado a la entrada 3, se escuchará
un tono a 1000 Hz. durante 3 décimas de segundo que seguirá
sonando hasta que se deje de accionar el pulsador.
Formas de activar una salida al accionar el pulsador
conectado a una de las entradas.
Ejemplo 1º.
Si entrada 3=1 [conecta1]
Al ejecutar la orden con la tecla “intro”, si la entrada
3 está a 1 se conectará la salida 1 y ésta quedará
conectada hasta desactivarla con otra orden.
Ejemplo 2º.
Para
interruptor
si entrada 3=1 [conecta 1]
interruptor
fin
Cuando ejecutamos el procedimiento “interruptor”, al accionar
el pulsador conectado a la entrada 3, se conectará la salida 1
y ésta quedará conectada hasta desactivarla con otra orden.
Como vemos realiza la misma operación que el ejemplo1º pero
dentro de un programa.
Ejemplo 3º.
Para pulsador
si entrada 3=1 [conecta 1] [apaga 1]
pulsador
fin
Si el valor del predicado es cierto (entrada 3=1), ocurre lo que tenemos
en el primer corchete en caso contrario ocurre lo del segundo corchete.
Otras actividades que puedes realizar son las
siguientes:
# Crear un procedimiento que active y desactive la salida 1 mediante
dos pulsadores.
# Crear un procedimiento de pulsador de marcha.
# Crear un procedimiento de pulsador de paro.
# Crear un procedimiento que active la salida 1 de forma intermitente
siempre que esté pulsada la entrada 1. Añadir dos tonos
para realizar el efecto sirena.
Paso de un procedimiento a otro, mediante un evento
en una entrada.
Cuando queremos controlar una máquina que realiza distintas acciones,
podemos definir los distintos estados en que puede encontrarse la máquina
y como pasar de uno a otro.
Ejemplo 1º.
Una máquina tiene dos estados:
y queremos pasar de un estado a otro al accionar las entradas 1 y 2.
Para ello crearemos dos procedimientos, uno para cada estado y en ellos
siempre han de estar definidos los siguientes eventos
# Las acciones que han de producirse (apaga, conecta
etc.).
# Como se sale de él (mediante la entrada x).
# Hacia donde debe de ir (otro procedimiento).
Esto se puede complicar bastante, dependiendo del número de estados
que tenga la máquina, además en otros cursos estudiarás
lenguajes de programación más avanzados, de todas formas
recuerda que:
«Programar es analizar, dividir un problema en pequeños módulos,
engarzados entre sí por medio de unas sentencias condicionales».
Un programa, estará formado por un conjunto de procedimientos que
se van ejecutando según el orden que hayamos establecido y que
en un principio sería el mismo que llevamos al leer o escribir
en Castellano, de izquierda a derecha y de arriba abajo, a no ser que
en cualquier línea del programa se nos mande a otro o, como hemos
visto, cuando hablamos de la recursividad, a sí mismo.
Habrá momentos en que el camino a seguir no será único,
aparecerán bifurcaciones. En esos casos, el paso de un procedimiento
a otro, vendrá determinado por el cumplimiento o no de una serie
de alternativas que habremos incluido en unas sentencias condicionales
dentro de los propios procedimientos.
Para terminar hagamos un ejemplo de cambio de procedimientos algo complejo:
Acciona el pulsador correspondiente
para el cambio de estado y verás como evoluciona el diagrama.
|
Ver a pantalla completa | Cerrar
ventana |
El programa de la actividad anterior
es:
Para estado1
conecta 3
apaga 5
conecta 6
Si entrada 1 = 1 [estado2]
estado1
Fin
Para estado2
conecta 1
conecta 2
apaga 3
apaga 4
Si entrada 3=1 [estado3]
Si entrada 4=1 [estado1]
estado2
fin
Para estado3
conecta 7
conecta 5
conecta 4
Si entrada 2=1 [estado1]
Si entrada 5=1 [estado4]
estado3
fin
Para estado4
enviaocteto 0
Si entrada 5=1 [espera 500 estado1]
estado4
fin
Para arrancar el programa partiremos del estado que se desee, es decir,
se escribe en la ventand de trabajo estado“x”
y pulsamos intro. El el caso de la simulación se ha partido del
procedimiento 1, es decir, el estado1.
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Salida 1 |
Salida 2 |
Salida 3 |
Salida 4 |
Salida 5 |
Salida 6 |
Salida 7 |
|
|