Tipos¶
Los diferentes valores (enteros, reales, caracteres, vectores, listas, diccionarios, etc.) que puede manejar un lenguaje se agrupan en tipos.
Un tipo se configura a partir de:
un conjunto de valores
Por ejemplo, un conjunto formado por enteros {…,-3,-2,-1,0,1,2,3,…}
las operaciones permitidas para esos valores
Por ejemplo, para los enteros disponemos de la suma (
+
), resta (-
), división (/
), multiplicación (*
) y resto de la división entera (%
)una aplicación que asocia a cada valor del tipo una representación binaria
Por ejemplo, la representación binaria del valor
-2
con tipoint
en C/C++ es una agrupación de 32 bits:11111111111111111111111111111110
Usaremos habitualmente en el curso los siguientes tipos:
bool
para representar valores booleanos, es decir, cierto o falso.int
para representar valores enteros.double
para valores reales.char
para caracteres.string
para cadenas de caracteres.vector<tipo>
para colecciones de datos del mismo tipo.
Clasificaciones¶
Los comités de estandarización de cada lenguaje o diferentes autores tienen (y varían en el tiempo) su propia terminología acerca de conceptos tales como tipo primitivo, tipo nativo, tipo básico, tipo fundamental, tipo compuesto, tipo escalar, etc. por lo que la bibliografía es confusa y contradictoria.
Una forma no bizantina de clasificarlos podría ser:
Tipos nativos, proporcionados por el lenguaje, que pueden ser simples o compuestos.
Por ejemplo,
bool
,char
,int
,float
odouble
en C++Tipos definidos por el programador o suministrados por una biblioteca estándar.
Por ejemplo,
string
ovector
de la biblioteca estándar de C++