Tipos de datos

Los diferentes objetos de información con los que un programa trabaja se denominan datos. Todos los datos tienen un tipo asociados con ellos que nos servirá para poder conocer con que información trabajaremos. Es decir, cuando ingresemos el sueldo de un trabajador necesitamos que este contenga decimales, o al solicitar la edad de una persona está tiene que estar con números enteros, etc. Además la suma entre caracteres no tiene sentido.

La asignación de tipos a los datos tiene dos objetivos principales:
• Detectar errores de operaciones aritméticas en los programas
• Determinar como ejecutar las operaciones

Los tipos de datos más utilizados en los lenguajes de programación:
• Numéricos ( Enteros, Reales)
• Caracteres
• Lógicos (Verdadero, Falso)

Tipos Numéricos. Dentro de estos tipos se puede hacer mención de los tipos enteros, reales o de coma flotante, y de los exponenciales.

Tipos Carácter. Los tipos carácter se dividen también en caracteres ASCII, como por ejemplo: a A & * , etc. El otro grupo de caracteres son los strings o cadenas de caracteres, como por ejemplo: "Hola Mundo".

Tipos Lógicos. Los tipos lógicos solamente pueden tomar los valores verdadero o falso.

Operadores
Un operador es un carácter, o grupo de caracteres, que actúa sobre una, dos o más variables para realizar una determinada operación con un determinado resultado

Los operadores pueden ser unarios o binarios, según actúen sobre uno o dos operandos respectivamente
En C existen diversos operadores (éste es uno de los puntos fuertes del lenguaje), que veremos a continuación:

Operadores Aritméticos
Los operadores aritméticos realizan las operaciones aritméticas básicas, son todos binarios y se pueden aplicar a variables, constantes y expresiones:

+ suma - resta * multiplicación / división % resto

El operador /, si los dos operandos son enteros, obtiene la división entera (sin decimales) de los mismos
El operador % sólo tiene sentido entre operandos enteros, obteniendo como resultado el resto de la división de los mismos

Operadores de asignación
Los operadores de asignación son operadores binarios que asignan a una variable (situada a la izqda. del operador) el valor resultante de evaluar una expresión (situada a la derecha del operador). El operador de asignación habitual en todos los lenguajes de programación es el símbolo igual (=).

nombre_de_variable = expresión;
resultado = (x + y – z) / 4;
mi_var = 5;

Es importante tomar en cuenta que:
El valor que tuviese la variable antes de la asignación se pierde
El resultado de la expresión debe ser del mismo tipo que la variable, en caso contrario se puede producir una pérdida de rango en conversiones implícitas de tipos

No hay que confundir la asignación con la igualdad matemática.
La siguiente expresión no tendría sentido desde el punto de vista matemático:

variable = variable + 1;

Simplemente suma uno al valor de la variable

A la izquierda de un operador de asignación no puede haber expresiones, sólo puede aparecer el nombre de una variable
a + b = c; /* error */

En C es posible la asignación múltiple y simultánea de varias variables a un mismo valor:
a = b = c = d = expresión;

En C existen otros cuatro operadores de asignación (+=, -=, *=, /=) que simplifican algunas operaciones recurrentes sobre una misma variable, su forma de uso es:
variable op= expresión;

que es totalmente equivalente a:
variable = variable op expresión;

Ejemplos:
cont += 1; /* cont = cont + 1; */
rango /= 2.0; /* rango = rango /2.0; */
x *= 3.0 + y; /* x = x * (3.0 + y); */

Operadores Incrementales
Los operadores incrementales son operadores unarios que incrementan (++) o decrementan (--) en una unidad el valor de la variable a la que afectan. Pueden ir inmediatamente delante (pre) o inmediatamente detrás (post) de la variable a la que afectan

Preincremento, Predecremento: La operación de incremento o decremento se lleva a cabo antes de utilizar el valor del operando, es decir, primero se incrementa (o decrementa) el valor del operando y luego se utiliza.

Postincremento, Postdecremento: La operación de incremento o decremento se lleva a cabo después de utilizar el valor del operando, es decir, primero se utiliza el valor del operando y luego se incrementa (o decrementa)

Operadores Relacionales
Una característica imprescindible de cualquier lenguaje de programación es poder variar el flujo del programa según se cumplan o no ciertas condiciones. Los operadores relacionales permiten hacer comparaciones, obteniendo como resultado verdadero (1 ó ≠0) o falso (0) dependiendo si se cumplen o no ciertas condiciones. En C, los operadores relacionales son todos binarios:

== igual que
< menor que > mayor que
<= menor o igual que >= mayor o igual que
!= distinto que

Operadores Lógicos
Los operadores lógicos permiten combinar los resultados de los operadores relacionales, comprobando si se cumplen simultáneamente o no varias condiciones. Formato:

expresión op_lógico expresión

En C existen tres operadores lógicos:
&& Conjunción lógica (binario): el resultado es verdadero si ambas expresiones a las que afecta son verdaderas.
|| Disyunción lógica (binario): el resultado es verdadero si alguna de las expresiones a las que afecta es verdadera.
! Negación lógica (unario): el resultado es verdadero si la expresión a la que afecta es falsa y viceversa

Tablas de Verdad

Expresiones
Las expresiones son una parte fundamental de la programación ya que sirven para realizar una o varias operaciones sobre un dato o un conjunto de datos, obteniéndose otro dato como resultado. Los operadores definen algunas de las operaciones que pueden realizarse dentro de una expresión.

Una expresión es una combinación de operadores y operandos. Los datos u operandos pueden ser constantes, variables y llamadas a funciones. Además, dentro de una expresión pueden encontrarse subexpresiones encerradas entre paréntesis. Por ejemplo, la siguiente expresión matemática:

x 2 +(b − 3) ⋅ cos(α )

Las expresiones son equivalentes al resultado que proporciona el aplicar los operadores a los operandos
Por ejemplo, 1+5 es una expresión formada por los operandos 1 y 5 y el operador +. La expresión es equivalente al valor 6, por tanto allí donde esta expresión aparece en el programa, es evaluada y sustituida por su valor 6.

Las expresiones deben tener tipos compatibles. En caso contrario, se producen conversiones implícitas que pueden producir pérdidas de rango y, por tanto, obtenerse resultados no válidos.

En C, como en la mayoría de los lenguajes de programación, existen expresiones aritméticas, expresiones lógicas y expresiones generales.