Teoría

05) Variables - Tipos de datos

En esta sección los temas a tratar son los siguientes:

  • VARIABLE
  • TIPOS DE DATOS
  • ALCANCE DE UNA VARIABLE
  • CONSTANTES
  • CONSTANTES NUMERICAS
  • ARITMETICA
  • ASIGNACIONES COMPUESTAS
  • OPERADORES DE COMPARACION
  • OPERADORES BIT A BIT

 VARIABLE

Una variable es una forma de llamar y almacenar un valor numérico para usarse después por el programa. Como su nombre indica, las variables son números que pueden cambiarse continuamente al contrario que las constantes, cuyo valor nunca cambia. Una variable necesita ser declarada y, opcionalmente, asignada al valor que necesita para ser almacenada.

int inputVariable = 0;                 //declara una variable y asigna el valor a 0

TIPOS DE DATOS

01 TiposDatos

Tabla 1: Tipos de datos

02 TiposDatos

Tabla 2: Tipos de datos

ALCANCE DE UNA VARIABLE

Como se ha indicado anteriormente, las constantes y las variables deben declararse antes de su uso. El alcance de una variable es su accesibilidad dentro del programa. Una variable puede ser declarada como global y como local.

Variables Locales
Las variables locales son espacios de memoria asignados dentro de una función y esta no pueden ser vistas por otra función, lo que significa que su alcance está limitado a las funciones en las cuales han sido declaradas. La declaración de una variable local se puede utilizar en múltiples funciones sin conflicto, ya que el compilador  ve cada uno de estos elementos como sólo parte de esa función.

Variables globales
Una variable global o externa es un espacio de memoria que es asignado por el compilador y puede ser accesible por todas las opciones de un programa (ámbito no vinculado) - Una variable global puede ser modificada por cualquier función y conservará su valor para que sea utilizada por otras funciones..

unsigned char var_global;      //VARIABLE GLOBAL

void funcion (void){

unsigned int var_local    //VARIABLE LOCAL

}

void main(){

unsigned char var2_local;   //VARIABLE LOCAL
var_global= 34;

}

CONSTANTES

Las constantes son tipos de datos con valores fijos y no pueden ser modificadas, en muchos casos estos tipos de datos se almacenan en la memoria de solo lectura (ROM)

x = 3 + Y  // en donde 3 es una constante.

Las constantes también pueden ser caracteres o string de texto:

printf ("Hola Mundo" ) ; //El texto "Hola Mundo" será movido a un lugar en la memoria y nunca cambiara.

x = 'B'; // La letra B es una constante que permanente seteara a la variable x

También es posible declarar una constante usando la palabra reservada const e indicando el tamaño de la misma.

 const   char   c = 57;

CONSTANTES NUMERICAS

Las constantes numéricas pueden ser declaradas de varias maneras, indicando su numero base o enmascarando al dato para facilitar la lectura del mismo

Forma decimal sin prefijo: 1234

Forma binaria con 0b como prefijo: 0b01010101
Forma hexadecimal con 0x como prefijo: 0xff

Forma octal con 0 como prefijo: 0777

También hay modificadores que permiten establecer el tamaño y el uso de la constante:

La constante unsigned int puede tener U como sufijo:  10000U

La constante long int puede tener L como sufijo:  99L

La constante unsigned long int puede tener UL como sufijo:  99UL

La constante de punto flotante puede tener F como sufijo:  1.234F

Los caracteres definidos como cosntantes se encierran entre comillas simples:  'a' o 'A'.

 Arrays

Un array es una colección de valores que son accedidos con un índice numérico. Cualquier valor en el array debe llamarse escribiendo el nombre del array y el índice numérico del valor. Los arrays están indexados a cero, con el primer valor en el array comenzando con el índice número 0. Un array necesita ser declarado y opcionalmente asignarle valores antes de que puedan ser usados. Una de las ventajas de Atmel Studio es que al ser un lenguaje de alto nivel nos permite realizar arreglos de Arrays y con esto facilitar la programación.

const char foo[] PROGMEM = "Foo"; //Array

const char bar[] PROGMEM = "Bar";  //Array

PGM_P array[2] PROGMEM = {  //Arreglo de Arrays
      "Foo",
      "Bar"
};

int main (void)
{
char buf[32]; // Array de caracteres
strcpy_P (buf, array[1]); // Llamado a la estructura de arrays
return 0;
}

ARITMETICA

Los operadores aritméticos incluyen suma, resta, multiplicación y división. Retornan la suma, diferencia, producto o cociente (respectivamente) de dos operandos.

y = y+3;
x = x-7;
i = j*6;
r = r/5;
y = x%3; //Esta operación devuelve el residuo de la división.

La operación es llevada a cabo usando del tipo de datos de los operandos, así 9/4 devuelve 2 en lugar de 2.25. Si los operandos son de tipos diferentes, el tipo mayor es usado para el cálculo.

ASIGNACIONES COMPUESTAS

Las asignaciones compuestas combinan una operación aritmética con una asignación de variable. Estas son muy frecuentemente encontradas en bucles for. Las asignaciones compuestas más comunes se presentan a continuación:

x++; //lo mismo que x = x+1
x--; //lo mismo que x = x-1
x += y; //lo mismo que x = x+y
x -= y; //lo mismo que x = x-y
x *= y; //lo mismo que x = x*y
x /= y; //lo mismo que x = x/y

OPERADORES DE COMPARACION

Los operadores de comparacion son usados para comparar valores y asi poder tomar decisiones a menudo se utilizan en declaraciones if para comprobar si una condición específica es cierta.

x == y;     //x es igual a y
x != y;      //x no es igual a y
x < y;      //x es menor que y
x > y;      //x es mayor que y
x <= y;    //x es menor o igual que y
x >= y;    //x es mayor o igual que y

 OPERADORES BIT A BIT

Son operadores que permiten modificar una variable a nivel de bits.

Estos operadores se pueden utilizar cuando se trabajan con variables  char, int, long.

Tipo Signo
Negación
~
Rotar Izquierda << 
Rotar Derecha >> 
AND &
OR Exclusiva ^
OR Inclusiva |

 Tabla 3: Operadores Bit a Bit

Operadores Logicos

Tabla 4: Operadores Lógicos

© 2017 Innova Domotics - Todos los derechos reservados