Tipos De Datos Simples.
Conceptos: Dato, Constante, Literal, Variable, Tipos de
dato, Ordinal, Predefinido, Enumerado, Subrango,
Compatibilidad.
Resumen: En este capítulo se presentan los primeros
elementos básicos de programación: los distintos tipos
de datos que se pueden emplear en un programa en
TurboPascal. Se comienza por distinguir entre
constantes y variables y posteriormente se lleva a cabo
una clasificación de los datos más simples según su
naturaleza y formato de representación: integer, byte,
real, boolean…
Objetivos específicos. Al finalizar el tema, el
alumno deberá ser capaz de:
a) Definir el concepto de
constante y de variable
b) Describir los tipos de
datos simples en el
lenguaje de programación
Turbopascal y su formato
de representación
c) Escribir la declaración
de constantes y variables
de cualquiera de los tipos
de datos simples
d) Definir el concepto de
compatibilidad entre datos
e) Escribir la declaración
de tipos de datos simples
predefinidos: enumerados
y subrangos
f) Seleccionar el tipo de
dato más adecuado para
una aplicación
determinada
Tipos De Datos De Caracteres
Visual Basic proporciona tipos de datos de
caracteres para trabajar con caracteres
que se pueden mostrar e imprimir. Aunque
ambos tipos utilizan caracteres
Unicode, Char contiene un único carácter,
mientras que String contiene un número
indefinido de caracteres.
Para obtener una tabla que muestra una
comparación en paralelo de los tipos de
datos de Visual Basic, vea Resumen de
tipos de datos (Visual Basic).
Tipo Char
El tipo de datos Char es un único carácter Unicode de
dos bytes (16 bits). Si una variable siempre almacena
exactamente un carácter, declárela como Char. Por
ejemplo:
' Initialize the prefix variable to the character 'a'.
Dim prefix As Char = "a“
Cada valor posible en una variable Char o String es
un punto de código o código de carácter en el juego de
caracteres Unicode. Los caracteres Unicode incluyen
el juego de caracteres ASCII básico, diversas letras
del alfabeto, acentos, símbolos de moneda, fracciones,
signos diacríticos y símbolos matemáticos y técnicos.
Tipo String
El tipo de datos String es una secuencia de cero o más
caracteres Unicode de dos bytes (16 bits). Si una
variable puede contener un número de caracteres
indefinido, declárela como String. Por ejemplo:
' Initialize the name variable to "Monday".
Dim name As String = "Monday"
Conversión De Tipos De
Datos
En Java es posible transformar el tipo de una
variable u objeto en otro diferente al original con
el que fue declarado. Este proceso se
denomina "conversión", "moldeado" o "tipado" y
es algo que debemos manejar con cuidado pues
un mal uso de la conversión de tipos es frecuente
que dé lugar a errores.
Una forma de realizar conversiones consiste en
colocar el tipo destino entre paréntesis, a la
izquierda del valor que queremos convertir de la
forma siguiente: Tipo Variable Nueva = (Nuevo
Tipo) Variable Antigua;
Ejemplos:
nt mi Numero = (int) ObjetoInteger; Char c = (Char)System.in.read();
En el primer ejemplo, extraemos como tipo primitivo int el valor entero
contenido en un campo del objeto Integer. En el segundo caso, la función
read devuelve un valor int, que se convierte en un Char debido a la
conversión (Char), y el valor resultante se almacena en la variable de tipo
carácter c.
El tamaño de los tipos que queremos convertir es muy importante. No
todos los tipos se convertirán de forma segura. Por ejemplo, al convertir un
Long en un int, el compilador corta los 32 bits superiores del Long (de 64
bits), de forma que encajen en los 32 bits del int, con lo que si contienen
información útil, ésta se perderá. Este tipo de conversiones que suponen
pérdida de información se denominan “conversiones no seguras” y en
general se tratan de evitar, aunque de forma controlada pueden usarse
puntualmente.
De forma general trataremos de atenernos a la norma de que "en las
conversiones debe evitarse la pérdida de información". En la siguiente
tabla vemos conversiones que son seguras por no suponer pérdida de
información.
MÉTODO VALUEOF PARA CONVERSIÓN
DE TIPOS
El método valueOf es un método sobrecargado
aplicable a numerosas clases de Java y que permite
realizar conversiones de tipos. Veamos algunos
ejemplos de uso.
No Todas Las Conversiones
Son Posibles.
Muchas veces por despiste los
programadores escriben
instrucciones de conversión
incoherentes como miInteger =
(int) miString;. El resultado en
este caso es un error de tipo
“Inconvertible types”.
Un uso típico de valueOf es para
convertir tipos primitivos en
objetos.
Conversiones Implícitas y
Explicitas.
Los tipos de datos se pueden convertir de forma implícita o explícita.
Las conversiones implícitas no son visibles para el usuario. SQL Server
convierte automáticamente los datos de un tipo de datos al otro. Por
ejemplo, si se comparan datos de tipo smallint con datos de tipo int,
antes de realizar la comparación los datos de tipo smallint se
convierten implícitamente al tipo int.
GETDATE() convierte implícitamente al estilo de fecha
0. SYSDATETIME() convierte implícitamente al estilo de fecha 21.
Las conversiones explícitas utilizan las funciones CAST o CONVERT.
Las funciones CAST y CONVERT convierten un valor (una variable
local, una columna u otra expresión) de un tipo de datos a otro. Por
ejemplo, la siguiente función CAST convierte el valor
numérico $157.27 a una cadena de caracteres '157.27
CAST ( $157.27 AS VARCHAR(10) )
Utilice CAST en lugar de CONVERT si desea que el código de programa de
Transact-SQL cumpla las normas ISO. Use CONVERT en lugar de CAST para
aprovechar la funcionalidad de estilo de CONVERT.
En la ilustración siguiente se muestran todas las conversiones de tipos de
datos explícitas e implícitas permitidas para los tipos de datos proporcionados
por el sistema de SQL Server. Incluyen xml, bigint y sql_variant. No existe una
conversión implícita en la asignación del tipo de datos sql_variant, pero sí hay
una conversión implícita en sql_variant.
Comportamientos De La Conversión
De Tipos De Datos
Algunas conversiones implícitas y explícitas de tipos de
datos no se admiten cuando convierte el tipo de datos
de un objeto de SQL Server a otro. Por ejemplo, un
valor nchar no se puede convertir a un
valor image. Un valor nchar solo se puede convertir
a binary con una conversión explícita; la conversión
implícita a binary no se admite. Sin embargo, un
valor nchar se puede convertir implícita o
explícitamente a nvarchar.
En los temas siguientes se describen los
comportamientos de conversión que presentan los
tipos de datos correspondientes:
Convertir tipos de datos con
procedimientos almacenados de
automatiza ción OLE
SQL Server utiliza tipos de datos Transact-SQL y la automatización OLE utiliza tipos de datos
Visual Basic; por tanto, los procedimientos almacenados de automatización OLE deben
convertir los datos que se pasan entre ellos.
En la tabla siguiente se describen las conversiones de tipos de datos de SQL Server a Visual
Basic.
Tipos de datos Java
Los primeros lenguajes de programación no usaban
objetos, solo variables. Una variable podríamos decir que
es un espacio de la memoria del ordenador a la que
asignamos un contenido que puede ser un valor
numérico (sólo números, con su valor de cálculo) o de
tipo carácter o cadena de caracteres (valor alfanumérico
que constará sólo de texto o de texto mezclado con
números).
Como ejemplo podemos definir una variable a que contenga 32 y
esto lo escribimos como a = 32. Posteriormente podemos
cambiar el valor de a y hacer a = 78. O hacer “a” equivalente al
valor de otra variable “b” así: a = b.
Dado que antes hemos dicho que un objeto también ocupa un
espacio de memoria: ¿en qué se parecen y en qué se
diferencia un objeto de una variable? Consideraremos que las
variables son entidades elementales: un número, un carácter, un
valor verdadero o falso… mientras que los objetos son entidades
complejas que pueden estar formadas por la agrupación de
muchas variables y métodos. Pero ambas cosas ocupan lo mismo:
un espacio de memoria (que puede ser más o menos grande).
En los programas en Java puede ser necesario tanto el uso de
datos elementales como de datos complejos. Por eso en Java se
usa el término “Tipos de datos” para englobar a cualquier cosa
que ocupa un espacio de memoria y que puede ir tomando
distintos valores o características durante la ejecución del
programa. Es decir, en vez de hablar de tipos de variables o de
tipos de objetos, hablaremos simplemente de tipos de datos. Sin
embargo, a veces “coloquialmente” no se utiliza la terminología
de forma estricta: puedes encontrarte textos o páginas web
donde se habla de una variable en alusión a un objeto.
En Java diferenciamos dos tipos de datos: por un lado, los tipos
primitivos, que se corresponden con los tipos de variables en
lenguajes como C y que son los datos elementales que hemos
citado. Por otro lado, los tipos objeto (que normalmente
incluyen métodos).
Veamos los tipos de datos en Java sobre un esquema de síntesis:
Este esquema no es necesario aprendérselo de memoria en todos
sus detalles, aunque sí lo iremos memorizando poco a poco a
medida que lo utilicemos, por lo menos hasta tener en nuestra
cabeza los nombres de todos los tipos primitivos y envoltorio y
sus características (si son objetos o no y su rango aproximado). A
continuación mostramos el mismo esquema en formato de tabla: