tema iii.-variables - IES Antonio Machado

Anuncio
TEMA III.- VARIABLES
I.
Introducción
En la mayoría de los programas necesitamos trabajar con datos bien digitales, bien analógicos por lo
que tenemos que crear variables que nos permitan realizar dichas operaciones.
II. Variables
Las variables son una parte muy importante de cualquier programa porque son la base de muchas
funciones que deseamos hacer con el computador. Casi todos los programas contienen variables.
Piensa en ellas como cajas etiquetadas que esconden números dentro.
Las variables pueden recibir cualquier nombre, igual que una caja puede ser etiquetada con cualquier
nombre. El usar números para denominar a las variables nos puede llevar a confusión.
Utiliza nombres que te ayuden cuando escribes el programa. Recuerda "si una caja contiene
manzanas no la etiquetes con plátanos".
Las variables deberían comenzar siempre por una letra y a continuación otras letras o números y no
deben incluir espacios o símbolos a excepción del signo de subrayado “_”, por ejemplo, son nombres
correctos de variables
♦ Edad
♦ Contador
♦ X1
♦ Num01
♦ Cont_01
En cambio, nos puede inducir a error los siguientes nombres de variables
♦ 1Edad
♦ 2Contador
♦ Cont&01
Las variables deben ser siempre “declaradas” en alguna parte del programa para que este pueda
funcionar correctamente o el programa nos dará error.
El número máximo de variables que admite el programa es de 200
Quizás los siguientes diagramas nos permitan entender mejor el uso de las variables
Teleformación proyecto Medusa.
1
El diagrama de la izquierda imprime directamente [Display “50”] en pantalla un número mientras que
en el segundo caso realizamos primero una declaración de la variable “x” a la que asignamos el valor
de 50 [x = 50] y a continuación sacamos por pantalla el valor de la variable [Display x].
III. Trabajar con variables
Trabajo con variables. Este comando está compuesto por tres iconos que a su vez incluyen otra
serie de iconos.
♦ Declarar variables
Este icono es el que utilizaremos para declarar las variables que
utilizaremos en nuestro programa. Si picamos en él veremos que nos aparecen dos iconos
mas.
Al picar sobre este icono procederemos a la declaración de variables. Veamos
⇒
diversas formas de declarar a las mismas.
-
Crear una variable y asignar un valor: Al picar sobre el icono anterior la barra
de herramientas adopta la siguiente apariencia.
Teleformación proyecto Medusa.
2
En el recuadro de texto de la izquierda introducimos el nombre de nuestra variable,
por ejemplo, “Contador” y en el segundo recuadro introducimos el valor que le
asignamos , por ejemplo, “1” y arrastramos el icono hasta la ventana de trabajo.
Es importante recalcar lo siguiente: En programación el símbolo “=” nos indica que a la
variable se le asigna el valor indicado. Este signo no equivale a nuestro “igual” (Lo
entenderemos mejor mas adelante”.
-
Crear una variable partiendo de otra u otras variables: Supongamos que la
variable “z” tiene que tomar siempre el valor suma de otras dos variables “x” e
“y”.
Primero declaramos las variables “x” e “ y” tal como hemos hecho en el apartado
anterior.
Y a continuación declaramos la nueva variable “z” como suma de las otras.
Teleformación proyecto Medusa.
3
El resultado es el que a continuación se representa. Vemos que la variable “z” ha
quedado declarada como la suma de las variables “x” e “y” sin necesidad de tenerla
que declararla al principio del programa tal como se hizo con las variables “x” e “y”.
Veamos un caso que nos aclarará el concepto de asignar. Si
aplicamos nuestros conceptos matemáticos al bloque de la
izquierda diremos que la igualdad “x = x + y” no se cumple,
pero en programación lo que deseamos expresar es que a la
variable “x” le asignamos como nuevo valor el que ya tenía mas el valor de la variable
“y”. Por ejemplo, si “x” tuviera el valor 5 y la variable “y” el valor de 7 cuando se ejecute
este bloque la variable “x” adoptará el valor de 12.
Importante: Los valores de las variables son enteros, es decir, no admite decimales y
no se puede superar los valores máximos prefijados en el apartado de “Variables
Range” dentro de Options-> FlowChart (Tema I).
Teleformación proyecto Medusa.
4
Debemos tener en cuenta esta circunstancia cuando realicemos operaciones en
nuestros diagramas.
Imaginemos que en nuestro programa necesitemos un contador que nos
permita determinar el número de veces que hemos realizado una determinada acción.
Este contador debe incrementarse en la
unidad cada vez que la acción se
ejecuta pues este icono nos permite
realizar esta acción.
En el diagrama hemos
creado
una
contador
hemos
a
variable
la
que
asignado
el
valor de 0.
Cuando se ejecuta el
programa la variable
Contador
se
incrementa
alcanzar
hasta
un
valor
superior a 5.
Teleformación proyecto Medusa.
5
♦ Visualización
Detrás de este icono se encuentran diversos comandos que nos
permiten realizar acciones relacionadas con la visualización de las variables Si picamos en él
veremos que nos aparecen cuatro iconos mas:
El primer icono es el comando que ejecuta la acción de visualizar la
⇒
variable mientras que el segundo icono es la pantalla de visualización donde
podremos observar las órdenes de visualización.
Con un ejemplo podremos entender mas fácilmente el uso de estos comandos.
Supongamos que deseamos visualizar los valores de una variable “x” que va
incrementándose, cada nuevo valor deberá aparecer en una línea diferente.
Antes de exponer el diagrama de flujo de este ejemplo veamos las diversas opciones
que el icono
nos ofrece.
En nuestro ejemplo lo veremos de la siguiente forma: En la
primera línea hemos elegido la opción “text” y en el recuadro
de texto hemos escrito x= , en el segundo bloque hemos
elegido la opción “value of” para expresar el valor de x y en
el recuadro de texto hemos escrito x y en el tercer bloque
hemos elegido la opción “new line”.
Para monitorizar las variables únicamente debemos
picar sobre el icono
seleccionar el programa o subrutina que deseamos monitorizar
Teleformación proyecto Medusa.
6
y a continuación arrastrar el icono hasta la zona de trabajo.
Con todo lo dicho la resolución de nuestro ejemplo lo podemos ver en el siguiente
diagrama:
♦ Introducción de valores
Estos dos iconos se usan conjuntamente. Veamos
como es su uso.
Picamos sobre el icono
y en la barra de
herramientas seleccionamos la variable que
tomará el valor que introducimos y arrastramos el
icono hasta la zona de trabajo. Cuando se ejecuta
el programa cada vez que pase por el bloque
“Read
x”
se
detendrá
esperando
que
introduzcamos el valor. A continuación picamos
sobre el icono
y en la barra de
herramientas únicamente tenemos que relacionar este comando con el programa.
Teleformación proyecto Medusa.
7
Un ejemplo completo lo podemos ver en el siguiente diagrama de flujo.
Podemos utilizar tantas veces ambos comandos como deseemos.
Importante: Los comandos de Visualización y de Introducción de Datos no se utilizan con la tarjeta
microcontroladora pues esta no admite estos comandos.
Teleformación proyecto Medusa.
8
♦ Decisión
Tras este icono se esconde uno de las mas importantes herramientas de la
programación. En un programa nos podemos encontrar con la necesidad de realizar una
acción u otra completamente diferente dependiendo del valor que adopte una variable, de la
respuesta a una determinada pregunta, etc, para estos casos existe el comando que nosotros
hemos denominado Decisión aunque podemos darle el nombre de Bifurcación, Pregunta ,
etc.
Este comando es el único que dispone de tres terminales , uno de entrada y
⇒
dos de salida, una salida en caso de que la respuesta sea positiva y otra salida en
caso de que la respuesta sea negativa.
Importante: Las dos salidas deben estar siempre conectadas a alguna parte del programa
Podemos deducir que realmente lo que hacemos es una comparación entre dos variables o
valores de tal forma que no podemos sino tener dos posibles respuestas Si o No. Antes de
arrastrar el icono a la zona de trabajo podemos elegir la posición de los terminales de salida
seleccionando uno de los cuatros iconos situados en la parte derecha de la barra de
herramientas.
Teleformación proyecto Medusa.
9
Descifremos el siguiente diagrama de flujos: En primer lugar y
como es lógico nos encontramos la orden de Inicio (Start) a
continuación declaramos la variable “x” y le asignamos el valor
0, en el siguiente paso incrementamos el valor de la “x” en la
unidad (x = 1) para a continuación hacer un beep (sonido), en el
siguiente paso nos preguntamos si la variable “x” ha alcanzado
el valor de 10 lo que no ocurre pues en esta primera vez que
preguntamos la variable “x” tiene el valor de la unidad con lo
que el programa sigue por la salida “No” que devuelve el
programa al bloque “incrementar x” (x=2) para a continuación
hacer un nuevo Beep y volver a realizar la pregunta,
repitiéndose esta secuencia hasta que la variable “x” alcance el
valor 10 momento en el que se finaliza el programa.
Observamos que una parte del programa se repite recibiendo el
nombre de “bucle”. En nuestro ejemplo el bucle es la parte del programa compuesta por los
bloques “Incrementar x” + “beep” + Pregunta “x=10?”. En este caso
el bucle es finito pues finaliza al alcanzar x el valor 10. En el
siguiente diagrama de flujos el bucle es infinito pues se repite de
forma indefinida.
El bucle del ejemplo es un bucle condicional denominado
Bucle Repeat-Until (Repetir – Hasta) pues se repite hasta
que se cumple la condición (X=10).
En cambio el bucle del diagrama de la izquierda es un bucle
condicional denominado Bucle Do-While (Hacer-Mientras)
pues el bucle se repite que la variable no supere el valor de
10. Observar el cambio del signo “=” por el signo “< menor
que”.
Teleformación proyecto Medusa.
10
Pero la pregunta puede llevarnos a dos caminos diferentes dentro del mismo programa.
En el diagrama de flujo anterior podemos observar que dependiendo de la respuesta ante la
pregunta “si hemos introducido un número mayor que 5” el programa puede seguir el camino
de la derecha en caso de que hayamos introducido un número menor que 5 visualizando el
indicador “Valor menor que 5” o bien seguir el otro camino y en este caso nos visualizará
“Valor mayor que 5”
⇒
Antes de explicar este comando veamos una pequeña introducción matemática
aplicada a la electrónica digital.
No debemos perder de vista que estamos trabajando con máquinas electrónicas
realizadas con circuitos digitales, es decir, dispositivos que sólo ofrecen dos posibles
valores (On y Off , Encendido-Apagado) a los que nosotros generalmente asignamos
respectivamente los valores 1 (On) y 0 (Off). Esto nos induce a pensar que cualquier
número decimal se puede representar como una serie de dígitos
binarios ( 0 y 1)
n
determinados por la ecuación N < 2 donde N es la cantidad de números que podemos
representar y n el número de bits (dígitos binarios), por ejemplo para representar el
número 7 necesitaríamos 3 dígitos pues 7 < 23, para representar el 6, 5 o el 4 también
necesitamos 3 dígitos o bits, entonces ¿cómo hacemos para representar cada uno de
una forma diferente? Pues es sencillo puesto que a cada bit le asignamos un peso, para
entenderlo mejor veamos la siguiente tabla en la que hemos representado una serie de 8
bits ( los numeramos del 0 al 7), es decir que podemos representar 256 números (0-255).
Teleformación proyecto Medusa.
11
Posición
Peso
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
2
2
2
2
2
2
2
20
128
64
32
16
8
4
2
1
Para representar cualquier número únicamente debemos conseguir alcanzar el valor
deseado mediante la suma de pesos colocando un 1 si lo utilizamos y un 0 si no lo
utilizamos. Quizás se entienda mejor a través de varios ejemplos
Ejemplo : Representar en binario el número 101
Solución 101 = 64 + 32 + 4 + 1 luego
Posición
7
6
5
4
3
2
1
0
Peso
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
0
1
1
0
0
1
0
1
101
Luego 101decimal = 01100101binario
Ejemplo : Representar en binario el número 30
Solución 30 = 16 + 8 + 4 + 2 luego
Posición
7
6
5
4
3
2
1
0
Peso
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
0
0
0
1
1
1
1
0
30
Luego 30decimal = 00011110binario
Ejemplo : Representar en decimal el número 01011101
Solución colocamos la serie dentro de la tabla y calculamos el valor
Posición
Peso
30
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
2
2
2
2
2
2
2
20
128
64
32
16
8
4
2
1
0
1
0
1
1
1
0
1
Luego 01011101binario=64+16+8+4+1=93decimal
Teleformación proyecto Medusa.
12
Con lo visto anteriormente podemos deducir que el valor de cualquier variable de nuestro
programa la podemos descomponer en una serie de 8 bits y aquí es donde es donde
interviene el comando
.
Veamos como trabaja este comando
Observamos que primero escribimos la variable, a continuación seleccionamos el bit que
deseamos chequear (0-7) y lo comparamos con el valor que deseamos averiguar (1 en ON o
0 en Off).
En el siguiente ejemplo
que realiza la detección de
números impares menores
de
128
lo
podemos
entender mejor.
Primero
creamos
una
variable
Contador
para
saber en cada momento el
número de impares que
hemos introducido y la
iniciamos a valor 0. A
continuación hacemos que
se
introduzca
[Read
x]
un
valor
seguidamente
detectamos si es mayor de
127
para
lo
cual
preguntamos si el bit 7
esta en On (mayor de 127 ) o si está en Off (menor de 128). Si la respuesta es afirmativa
finalizamos el programa en caso contrario detectamos si este número es impar o par para lo
Teleformación proyecto Medusa.
13
que testeamos el bit 0 de forma que si está en On el número es impar ( pues todos los
números impares tienen activo este bit) y si está en Off es número par. En caso afirmativo
incrementamos el Contador y visualizamos este valor mientras que en caso contrario
hacemos un bucle permitiendo la entrada de un nuevo valor .
Teleformación proyecto Medusa.
14
Descargar