Objetivos
Conocer el concepto de tipo de dato y su clasificación.
Conocer los tipos de datos elementales, sus posibles valores y operaciones.
Conocer los elementos de un programa desde el punto de vista de los datos.
Saber componer la plantilla de un programa.
Fundamentos de Programación – Tema 2. Tipos de datos básicos y expresiones
Índice
- Concepto de tipo de dato. Clasificación
- Tipo de dato entero
- Tipo de dato real
- Tipo de dato lógico o booleano
- Tipo de dato carácter
- Elementos de un programa
- Expresiones
- Plantilla de un programa
- Resumen
Concepto tipo de dato
Datos reales Representación Representación nivel del traductor interna (nivel de máquina)
Tipos de datos permiten manejar la información de forma sencilla ignorando los detalles de su representación interna.
El tipo de dato determina:
- Conjunto de valores posibles
- Conjunto de operadores posibles
Ejemplos: real, entero, carácter,…
Clasificación de los tipos de datos
- Elementales o básicos: indivisibles
- Predefinidos: Existen ya definidos en los lenguajes de programación: entero, real, lógico, carácter.
- Definidos por el usuario: se ha de determinar el conjunto de valores y nombre de dicho tipo.
- Estructurados (estructuras de datos): agrupaciones lógicas de elementos:
- Según el tipo de los elementos: Homogéneas / Heterogéneas
- Según su gestión en memoria: Estáticas / Dinámicas
- Según el acceso a los elementos individuales: por Nombre / por Posición / por Clave
Tipo de dato entero (int)
Conjunto de valores: subconjunto de los números enteros centrado en 0.
Operaciones:
- Aritméticas:
- Suma, Resta, Multiplicación (+, -, *)
- División entera (devuelve cociente de la división entera) (/)
- Módulo (devuelve el resto de la división entera) (%)
- Relacionales: <, >, ==, <=, >=, !=
Con n bits se pueden representar desde el -2n-1 hasta el 2n-1-1.
Problemas: desbordamiento (overflow).
Tipo de dato real (float, double)
Conjunto de valores: subconjunto de los números reales centrado en 0.
Operaciones:
- Aritméticas:
- Suma, Resta, Multiplicación, División (+, -, *, /)
- Relacionales: <, >, ==, <=, >=, !=
Representación: N = M * Be (1 bit signo, p1 bits para M y p2 para e).
Problemas:
- Desbordamiento (overflow)
- Imposibilidad de representar valores muy cercanos a 0 (underflow)
- Errores de redondeo (aplicación no es biyectiva)
Tipo de dato carácter (char)
Conjunto de valores: conjunto ordenado y finito de caracteres. Normalmente se utiliza el conjunto de caracteres ASCII: ({a, .., z, A, .., Z, 0,.., 9, !, @, …}).
Operaciones:
- Operaciones de conversión a enteros y viceversa
- Relacionales: <, >, ==, <=, >=, !=
Los valores se escriben entre comillas simples.
Tipo de dato lógico (bool)
Conjunto de valores: dos valores posibles {true, false} (en algunos lenguajes no se implementan, valor <> 0 y 0).
Operaciones:
- Relacionales: ==, !=
- Operadores lógicos más importantes: && (Y), || (O) , ! (NO)
Elementos de un programa
Estructuras de control.
Variables, constantes, valores constantes, expresiones.
Variable:
- Identificador (nombre)
- Valor (puede ser cambiado)
Constante:
- Identificador (nombre)
- Valor (no puede ser cambiado)
Valor constante o literal:
- Valor (no puede ser cambiado)
Expresión:
- Valor (resultado de evaluarla)
Todos los elementos tienen un tipo de dato asociado (o pertenecen a un determinado tipo). Existen lenguajes tipificados y no tipificados.
Declaración: proceso mediante el cual se define cuál va a ser el tipo de los elementos con identificador.
Inicialización: proceso mediante el cual se le asigna a los elementos con identificador un valor inicial.
Elementos de un programa: Identificadores
Un identificador es una secuencia de caracteres que permite identificar de forma única a cada elemento/objeto de un algoritmo.
No todos los caracteres son válidos por lo que normalmente se usan letras, dígitos y subrayado (_).
El primer carácter debe ser una letra o subrayado.
Pueden tener cualquier longitud dentro del límite que imponga el traductor.
Las palabras reservadas del lenguaje no pueden utilizarse como identificadores.
Hay lenguajes que distinguen entre mayúsculas y minúsculas y otros no.
Reglas para crear identificadores
- Usar solo letras, dígitos y subrayado.
- Usar minúsculas para identificadores de variables.
- Usar mayúsculas para identificadores de constantes.
- Para identificadores de funciones con más de una palabra usar subrayado para separar las palabras o mayúsculas para la primera letra de cada palabra (Ej. CalcularFechaNacimiento).
Elementos de un programa: Variables
Objeto de datos que posee un valor conocido a través de un identificador.
El valor que almacena es único pero se puede modificar por medio de las instrucciones del programa.
Para su utilización es necesario declararlas en el programa.
En C++ separadas por comas y precedidas del tipo:
<tipo> <identificador> {, <identificador>}*;
Ejemplos:
float area, perimetro;
int edad;
bool respuesta;
char letra;
Se puede realizar la inicialización a la vez que se declara:
float area=0, perimetro;
int edad=18;
char letra='l'; bool respuesta=true;
Elementos de un programa: Constantes
Objeto de datos que posee un valor invariable conocido a través de un identificador.
En algunos lenguajes la declaración de una constante está implícita en su inicialización.
En C++ se declara una constante igual que una variable pero precedida por la palabra reservada const y con una asignación del valor:
const <tipo> <identificador> = <valor>;
Ejemplos:
const double PI = 3.1416; // constante de tipo real
const int MAXIMO = 100; // constante de tipo entero
const char LETRA='J'; // constante de tipo carácter
Elementos de un programa: Valores Constantes
Valores que aparecen explícitamente en el programa sin identificador.
Ejemplos:
- 3.14 (valor de tipo real)
- ‘j’ (valor de tipo carácter)
- 100 (valor de tipo entero)
Expresiones
Combinaciones de variables, constantes, valores constantes, operadores, paréntesis y llamadas a funciones.
Su valor es el resultado de evaluarla de izquierda a derecha, teniendo en cuenta precedencia de operadores y paréntesis.
El tipo de una expresión es el tipo de su valor asociado.
Ejemplos:
- 14 – 5 * 2
- (18 – 2) * 2
- ((A < 9) && (C < 5)) || (!h)
Precedencia
Los paréntesis tienen precedencia sobre los operadores. Se evalúan de dentro hacia fuera.
Operadores Aritméticos
- Operadores de signo (+, -)
- Multiplicación, división y módulo (*, /, %)
- Suma y resta (+, -)
Operadores Relacionales: <, >, ==, <=, >=, !=
Operadores Lógicos:
- !
- &&
- ||
Ejemplos de expresiones
5 + 4 * 6 – (3 – 4) * 5 % 2 + 5 * 4
24 -1
5 + 24 – -1 + 20
50
! 16 < 8 && (5 * 4 + 3 < 10 || (5 + 2) * 4 >= 5)
V 23 28
F V
V
V
Conversiones de tipos
Implícita: ocurre cuando los operandos son de distinto tipo. El operando con rango de representación menor se convierte al tipo del operando con rango de representación mayor. El resultado es del tipo del operando de mayor rango de representación.
Ejemplo:
int a = 9, b = 2;
double c = 2.0;
a / b (vale 4) a / c (vale 4.5)
Explícita: Aplicamos un operador que convierte el operando de un tipo a otro.
Ejemplo: a / (double) b (vale 4.5)
Plantilla programa
// Programa Nombre
// Entradas: descripción, restricciones
// Salidas: descripción
Definición del problema
// Bibliotecas
#include <iostream>
using namespace std;
// Declaración de Constantes
// Declaración de Tipos
// Declaración de Variables
Sección Declarativas
int main()
{
// Declaración de Constantes
// Declaración de Variables del Programa principal
// Instrucciones del Programa Principal
return 0;
}
Instrucciones
Resumen sintaxis C++
Tipos
- int Tipo entero
- float, double Tipo real
- char Tipo carácter
- bool Tipo lógico
- void Indica ausencia información
- int*, float*, double*, char* Tipos puntero
- int[], float[], double[], char[] Tipos arrays
- int&, float&, double&, char& Tipos referencias
- enum Tipo enumerado (definido por el usuario)
Resumen sintaxis C++
Operadores C++
Aritméticos
- +, – (signo) +, –
- + – * (suma resta producto) + – *
- div (división entera) /
- mod (resto división entera) % (2 enteros)
- / (división real) / (alguno real)
Relacionales
- <, >, <=, >= <, >, <=, >=
- = (igualdad) ==
- <> (desigualdad) !=
Lógicos
- NO !
- Y &&
- O ||
Resumen
- Concepto y clasificación de tipo de dato.
- Tipos de datos elementales: valores y operadores.
- Elementos de un programa: variables, constantes, valores constantes y expresiones.
- Precedencia de los operadores.
- Plantilla de un programa.