1. CENTROS DE ESTUDIOS
TECNOLOGICOS
INDUSTRAL Y DE
SERVICIO
IDALIA GPE TRISTÁN SÁNCHEZ
CARLOS OZIEL SOLIS JUAREZ
MARGARITA ROMERO ALVARADO
DESARROLLA SOFTWARE UTILIZANDO
PROGRAMACIÓN ESTRUCTURADA
2 AM PROGRAMACIÓN
3. PROPOSITO
Los distintos tipos de datos son representados en la memoria del
computador de acuerdo al tipo y al lenguaje de programación que use.
Los numeros enteros en C++ por ejemplo miden 16 bits o 2 bytes
(bit=digito binario).
El minimo numero que se puede escribir en 16 bits equivale a 16 ceros
(0) que al ser convertidos a decimal representan precisamente el valor
0 (cero). El maximo número que se puede escribir en 16 bits son 16
unos que representan el numero 65535 decimal. Teniendo en cuenta
que hablamos de numeros sin signo
4. TIPOS DE DATOS PARA C++
Los distintos tipos de datos son representados en la memoria del
computador de acuerdo al tipo y al lenguaje de programación que
use. Los numeros enteros en C++ por ejemplo miden 16 bits o 2
bytes (bit=digito binario).
El minimo numero que se puede escribir en 16 bits equivale a 16
ceros (0) que al ser convertidos a decimal representan precisamente
el valor 0 (cero). El maximo número que se puede escribir en 16 bits
son 16 unos que representan el numero 65535 decimal. Teniendo en
cuenta que hablamos de numeros sin signo
7. La siguiente tabla indica los tipos de dato simple de C++ son
sus modificadore de tamaño (long y short) ademas de sus
modificadores de signo (signed y unsigned).
8. LOS TIPOS DE DATOS EN C++ SE
CLASIFICAN EN PRIMITIVOS Y DERIVADOS
Los tipos de datos primitivos son los que están definidos dentro del
lenguaje.
Los tipos de datos derivados se forman a partir de los tipos primitivos.
En este tema veremos los tipos primitivos y en temas siguientes
estudiaremos los tipos derivados.
Los tipos de datos primitivos en C++ son: numéricos enteros, numéricos
reales, tipo lógico y tipo carácter ampliado.
9. Tipos de datos C++ numéricos enteros
El tipo de dato numérico entero es un subconjunto finito de los
números enteros del mundo real. Pueden ser positivos o negativos.
En C++ los tipos de datos numéricos enteros son los siguientes:
10. Tipos de datos C++ numéricos enteros
Con los tipos enteros pueden utilizarse
los calificadores signed y unsigned. Estos calificadores indican si
el número tiene signo o no. Si se usan solos, sin indicar el tipo de
dato se asume int. Por ejemplo, las siguientes declaraciones son
equivalentes: unsigned int x; equivale a: unsigned x;
11. Tipos de datos C++ numéricos enteros
Usando estos calificadores podemos tener los siguientes tipos
enteros:
12. Tipos de datos numéricos reales
El tipo de dato numérico real es un subconjunto finito de los números
reales. Pueden ser positivos o negativos. En C++ los tipos de datos
numéricos reales son los siguientes:
13. Tipo lógico
Los datos de este tipo sólo pueden contener dos valores: true ó false
(verdadero ó falso). Si se muestran como enteros, el valor true toma
el valor 1 y false el valor 0.
14. Tipo carácter extendido
Este tipo se utiliza para representar caracteres UNICODE. Utiliza 2 bytes a
diferencia del tipo char que solo utiliza 1.
15. ENTEROS
En C++ 32-bit, los tipos int y long son equivalentes, ambos usan 32 bits
[3]. Las variedades con signo son todas almacenadas en forma de
complemento a dos usando el bit más significativo como bit de signo
(0 positivo y 1 negativo), lo que explica los rangos indicados en la
tabla. En las versiones sin signo, se usan todos los bits, con lo que el
número de posibilidades es 2n, y el rango de valores está entre 0 y 2n-
1, donde n es el número de bits de la palabra del procesador, 8, 16 o
32 (uno, dos, o cuatro octetos).
16. ENTEROS
El estándar ANSI C no define el tamaño de almacenamiento de los
diversos tipos, solamente indica que la serie short, int y long no es
descendente, es decir: short <= int <= long. De hecho, legalmente los
tres tipos pueden ser del mismo tamaño.
17. ENTEROS
En cualquier caso, los rangos vienen indicados por las constantes que se señalan
(incluidas en <limits.h>):
18. ENTEROS
En la mayoría de los compiladores un short es menor que un int, de forma que
algunos programas que deben almacenar grandes matrices de números en
memoria o en ficheros pueden economizar espacio utilizando short en lugar
de int, pero siempre que se cumplan dos condiciones:
1. En la implementación un short es realmente menor que un int.
2.- Los valores caben en un short.
19. ENTEROS
En algunas arquitecturas el código empleado para manejar los short es más largo
y lento que el correspondiente para los int. Esto es particularmente cierto en los
procesadores Intel x86 ejecutando código de 32 bits en programas para Windows
(NT/95/98), Linux y otras versiones Unix. En estos códigos, cada instrucción que
referencia a un short es un byte más larga y generalmente necesita tiempo extra
de procesador para ejecutarse.
20. ENTEROS
El rango exigido para signed int y unsigned int es idéntico que para los signed
short y unsigned short. En compiladores para procesadores de 8 y 16 bits
(incluyendo los Intel x86 ejecutando código en modo 16 bits, como bajo MS
DOS), normalmente un int es de 16 bits, exactamente igual que un short. En
los compiladores para procesadores de 32 bit y mayores (incluyendo los Intel
x86 ejecutando código de 32 bits como Windows o Linux) generalmente un int
es de 32 bits, exactamente igual que un long.
21. NUEVOS TIPOS NUMERICOS
Los rangos previstos para los nuevos tipos ( 3.2.3d) long long. que se
proyectan incluir en el estándar son:
22. NUEVOS TIPOS NUMERICOS
La diferencia entre enteros con signo y sin signo (signed y unsigned) es que en
los primeros el bit más significativo se usa para guardar el signo (0 positivo, 1
negativo), esto hace que los enteros con signo tengan un rango de valores
posibles distinto que los unsigned. Véase al respecto el rango de int y unsigned
int. Los enteros sin signo se mantienen en valores 0 ó positivos, dentro de la
aritmética de numeración de módulo base 2, es decir 2n, donde n es el número
de bits de almacenamiento del tipo, de forma que, por ejemplo, si un int se
almacena en 32 bits, unsigned int tiene un rango entre 0 y 232 -1 =
4,294,967,295 (el valor 0 ocupa una posición de las 4.294.967.295 posibles).
23. CARACTER
El valor de CHAR_BIT es al menos 8; la mayoría de los ordenadores modernos
usan bytes de 8 bits (octetos), pero existen algunos con otros tamaños, por
ejemplo 9 bits. Además algunos procesadores, especialmente de señal (Digital
Signal Processors), que no pueden acceder de forma eficiente a la memoria
en tamaños menores que la palabra del preprocesador, tienen un CHAR_BIT
distinto, por ejemplo 24. En estos casos, los tipos char, short e int son todos
de 24 bits, y long de 48 bits. Incluso son más comunes actualmente
procesadores de señal donde todos los tipos enteros incluyendo los long son
de 32 bits.
26. FRACCIONARIOS
La representación y rango de valores de los números fraccionarios depende
del compilador. Es decir, cada implementación de C++ es libre para definirlos.
La mayoría utiliza el formato estándar de la IEEE (Institute of Electrical and
Electronics Engineers) para este tipo de números ( 2.2.4a). float y double son
tipos fraccionarios de 32 y 64 bits respectivamente. El modificador long puede
utilizarse con el tipo double, declarando entonces un número fraccionario de
80 bits. En C++Builder las constantes fraccionarias, que pueden ser float,
double y long double, tienen los rangos que se indican:
27. FRACCIONARIOS
Generalmente los compiladores C++ incluyen de forma automática la librería
matemática de punto flotante si el programa utiliza valores fraccionarios [4].
Builder utiliza los siguientes límites, definidos en el fichero <values.h>
28. MI OPINIÓN
Hay diversos tipos de datos de c++ tanto es sus variables
como en sus números enteros, fraccionarios y su carácter
al usarlo tenemos que tomar en cuenta su tipo de dato
para poder programar con c++. Todo esto me lleva a
comprender todos sus tipos de datos para su programa
29. CONCLUSIÓN
Cualquier lenguaje de programación se debe conocer cuales son los conceptos
que soporta, es decir, el tipo de programación que vamos a poder realizar con
él. Como el C++ incorpora características nuevas respecto a lenguajes como
Pascal o C, en primer lugar daremos una descripción a los conceptos a los que
este lenguaje da soporte, repasando los paradigmas de programación y
centrándonos en la evolución desde la programación Funcional a la
programación Orientada a Objetos.