Tipos de datos en C++
Un tipo de dato define todo el posible rango de valores que una variable
puede tomar al momento de ejecución del programa y a lo largo de toda la vida
útil del propio programa.
Los tipos de datos más comunes en C++ son:
TIPO DATO ESPACIO MEMORIA RANGO
unsigned char 8 bits 0 a 255
char 8 bits -128 a 127
short int 16 bits -32,768 a 32,767
unsigned int 32 bits 0 a 4,294,967,295
int 32 bits -2,147,483,648 a 2,147,483,647
unsigned long 32 bits 0 a 4,294,967,295
enum 16 bits -2,147,483,648 a 2,147,483,647
long 32 bits -2,147,483,648 a 2,147,483,647
float 32 bits 3.4 x 10-38 a 3.4 x 10+38(6 dec)
double 64 bits 1.7 x 10-308 a 1.7*10+308(15 dec)
long double 80 bits 3.4 x 10-4932 a 1.1 x 10+4932
void sin valor
Para manejar cadenas de caracteres (strings),
se debera usar un arregllo de caracteres con el siguiente formato.
Char nomstring[cant de elementos];
Ejemplo
Char nombre[30];
Char ciudad[20];
Para cargar con un dato se usa el siguiente
codigo;
strcpy(carrera,”ing electronica”);
Variables arreglos de
caracteres, tienen que usar sus funciones de manipulación que vienen en la
libreria string.h, algunas de estas funciones son: strcpy(), strcat(),
strcmp(), strlen(), etc.
Secuencias de escape
Las secuencias de caracteres en las que el primero es
la barra invertida, se denominaron secuencias de escape y aunque originariamente se
utilizaron para la representación de los caracteres de control, por extensión
pueden representarse de este modo todos los códigos ASCII. Además se dispone de
algunos símbolos predefinidos para los caracteres más frecuentes. Por ejemplo, \n se utiliza para representar el
carácter nueva línea
Operadores Aritméticos
Un operador es un símbolo especial que indica
al compilador que debe efectuar una operación matemática o lógica.
C++ reconoce los siguientes operadores aritméticos:
Operador Operación
+ SUMA
- RESTA
* MULTIPLICACION
/ DIVISION
% MODULO O RESIDUO
Para resolver los problemas de potencias y
raíces, se usan ciertas instrucciones especiales que proporciona el lenguaje,
llamadas funciones matemáticas, en C++ existe toda una librería de
instrucciones o funciones matemáticas.
Recordar que todas las funciones reciben uno
o más datos o valores y regresan siempre un resultado, una de estas funciones
matemáticas es:
#include
<math.h>
Operadores Relacionales
Al igual que en matemáticas, estos operadores nos permitirán evaluar las
relaciones (igualdad, mayor, menor, etc) entre un par de operandos (en
principio, pensemos en números). Los operadores relacionales de los que
disponemos en C son:
Operadores Lógicos
Los operadores lógicos son tres; dos de ellos son
binarios, el último (negación) es unario. Tienen una doble posibilidad de
representación en el Estándar C++ actual: la representación tradicional que se
indica a continuación:
Precedencia y asociatividad
de operadores
Normalmente,
las expresiones con operadores se evalúan de izquierda a derecha, aunque no
todos, ciertos operadores que se evalúan y se asocian de derecha a izquierda.
Además no todos los operadores tienen la misma prioridad, algunos se evalúan
antes que otros, de hecho, existe un orden muy concreto en los operadores en la
evaluación de expresiones. Esta propiedad de los operadores se conoce como
precedencia o prioridad.
Veremos ahora las
prioridades de todos los operadores incluidos los que aún conocemos. Considera
esta tabla como una referencia, no es necesario aprenderla de memoria, en caso
de duda siempre se puede consultar, incluso puede que cambie ligeramente según
el compilador, y en último caso veremos sistemas para eludir la precedencia.
Manipuladores de flujo
La biblioteca iostream
C++
proporciona una nueva biblioteca de funciones que realizan operaciones de E/S: la
biblioteca iostream. Esta biblioteca es una implementación orientada
a objetos y está basada, al igual que stdio, en el concepto de flujos. Cuando se introducen
caracteres desde el teclado, puede pensarse en caracteres que fluyen desde el
teclado a las estructuras de datos del programa. Cuando se escribe en un
archivo, se piensa en un flujo de bytes que van del programa al disco.
Para acceder a la biblioteca iostream se debe incluir el archivo iostream.h. Este
archivo contiene información de diferentes funciones de E/S. Define
también los objetos cin ycout.
Manipuladores de salida
La
biblioteca iostream define
varios operadores particulares, llamados manipuladores, que le permiten
controlar precisamente, el formato de los datos visualizados. Situando un
manipulador en la cadena de operadores <<, se puede modificar el estado del flujo.
Una
característica importante de un flujo que debe tratar con valores numéricos es
la base de los números. Hay tres manipuladores (dec, hex y oct) para controlar la situación. La base por omisión es 10 y por tanto sólo será necesario
indicar dec cuando
se haya fijado la base a otro valor:
cout <<oct<<x<<endl;
cout <<dec<<x<<endl;
Los
manipuladores que toman argumentos se declaran en iomanip.h, el
resto eniostream.h.
A
continuación mostraremos un listado con los manipuladores, su aplicación y la
descripción. Cada uno de ellos lo separaremos mediante --
dec
-- cout<<dec<<x; -- Conversión a decimal
dec
-- cin>>dec>>x; -- Conversión a decimal
Hex
-- out<<hex<<x; -- conversión a hexadecimal
Hex
-- cin>>hex>>x; -- conversión a hexadecimal
oct -- cout<<oct<<x; -- Conversión a octal
oct
-- cin>>oct>>x; -- conversión a octal
ws
-- cin>>ws; Salta espacios en la entrada
ende
-- cout<<endl; -- Envía carácter fin de línea
flush -- cout<<flush; -- Limpia el buffer
setfill(int)
-- cout<<setfill('*'; -- Fija el carácter de rellenado
setprecision(int)
-- cout<<setprecision(6); -- Fija la conversión en coma flotante al nº de
dígitos especificado
setw(int) -- cout<<setw(6)<<x;
cin>>setw(10)>>x; -- Fija la anchura
Con setw() los valores numéricos se justifican a
derechas y los datos carácter a izquierdas.
La
información de la justificación de la salida se almacena en un modelo o patrón
de bits de una clase llamada ios, que constituye la base de todas las clases de
flujos. Puede establecer o reinicializar bits específicos utilizando los
manipuladores setiosflags() y resetiosflags() respectivamente.
Para
utilizar cualquiera de los indicadores de formato hay que insertar el
manipulador setiosflags() con el nombre del indicador como argumento. Hay que
utilizar resetiosflags() con el mismo argumento para invertir el estado del
formato antes de utilizar el manipulador setiosflags().
Indicador
-- Significado del indicador activado
ios::left
-- Justifica la salida a la izquierda
ios::right
-- Justifica la salida a la derecha
ios::scientific
-- Utiliza notación científica para números de coma flotante
ios::fixed
-- Utiliza notación decimal para números de coma flotante
ios::dec
-- Utiliza notación decimal para enteros
ios::hex
-- Utiliza notación hexadecimal para enteros
ios::oct
-- Utiliza notación octal para enteros
ios::showpos --
Muestra un signo positivo cuando se visualizan valores positivos
Un tipo de dato define todo el posible rango de valores que una variable
puede tomar al momento de ejecución del programa y a lo largo de toda la vida
útil del propio programa.
Los tipos de datos más comunes en C++ son:
TIPO DATO ESPACIO MEMORIA RANGO
unsigned char 8 bits 0 a 255
char 8 bits -128 a 127
short int 16 bits -32,768 a 32,767
unsigned int 32 bits 0 a 4,294,967,295
int 32 bits -2,147,483,648 a 2,147,483,647
unsigned long 32 bits 0 a 4,294,967,295
enum 16 bits -2,147,483,648 a 2,147,483,647
long 32 bits -2,147,483,648 a 2,147,483,647
float 32 bits 3.4 x 10-38 a 3.4 x 10+38(6 dec)
double 64 bits 1.7 x 10-308 a 1.7*10+308(15 dec)
long double 80 bits 3.4 x 10-4932 a 1.1 x 10+4932
void sin valor
Para manejar cadenas de caracteres (strings),
se debera usar un arregllo de caracteres con el siguiente formato.
Char nomstring[cant de elementos];
Ejemplo
Char nombre[30];
Char ciudad[20];
Para cargar con un dato se usa el siguiente
codigo;
strcpy(carrera,”ing electronica”);
Variables arreglos de
caracteres, tienen que usar sus funciones de manipulación que vienen en la
libreria string.h, algunas de estas funciones son: strcpy(), strcat(),
strcmp(), strlen(), etc.
Secuencias de escape
Las secuencias de caracteres en las que el primero es
la barra invertida, se denominaron secuencias de escape y aunque originariamente se
utilizaron para la representación de los caracteres de control, por extensión
pueden representarse de este modo todos los códigos ASCII. Además se dispone de
algunos símbolos predefinidos para los caracteres más frecuentes. Por ejemplo, \n se utiliza para representar el
carácter nueva línea
Un operador es un símbolo especial que indica
al compilador que debe efectuar una operación matemática o lógica.
C++ reconoce los siguientes operadores aritméticos:
Operador Operación
+ SUMA
- RESTA
* MULTIPLICACION
/ DIVISION
% MODULO O RESIDUO
Para resolver los problemas de potencias y
raíces, se usan ciertas instrucciones especiales que proporciona el lenguaje,
llamadas funciones matemáticas, en C++ existe toda una librería de
instrucciones o funciones matemáticas.
Recordar que todas las funciones reciben uno
o más datos o valores y regresan siempre un resultado, una de estas funciones
matemáticas es:
#include
<math.h>
Operadores Relacionales
Al igual que en matemáticas, estos operadores nos permitirán evaluar las
relaciones (igualdad, mayor, menor, etc) entre un par de operandos (en
principio, pensemos en números). Los operadores relacionales de los que
disponemos en C son:
Operadores Lógicos
Los operadores lógicos son tres; dos de ellos son binarios, el último (negación) es unario. Tienen una doble posibilidad de representación en el Estándar C++ actual: la representación tradicional que se indica a continuación:
Precedencia y asociatividad
de operadores
de operadores
Normalmente,
las expresiones con operadores se evalúan de izquierda a derecha, aunque no
todos, ciertos operadores que se evalúan y se asocian de derecha a izquierda.
Además no todos los operadores tienen la misma prioridad, algunos se evalúan
antes que otros, de hecho, existe un orden muy concreto en los operadores en la
evaluación de expresiones. Esta propiedad de los operadores se conoce como
precedencia o prioridad.
Veremos ahora las
prioridades de todos los operadores incluidos los que aún conocemos. Considera
esta tabla como una referencia, no es necesario aprenderla de memoria, en caso
de duda siempre se puede consultar, incluso puede que cambie ligeramente según
el compilador, y en último caso veremos sistemas para eludir la precedencia.
Manipuladores de flujo
La biblioteca iostream
C++
proporciona una nueva biblioteca de funciones que realizan operaciones de E/S: la
biblioteca iostream. Esta biblioteca es una implementación orientada
a objetos y está basada, al igual que stdio, en el concepto de flujos. Cuando se introducen
caracteres desde el teclado, puede pensarse en caracteres que fluyen desde el
teclado a las estructuras de datos del programa. Cuando se escribe en un
archivo, se piensa en un flujo de bytes que van del programa al disco.
Para acceder a la biblioteca iostream se debe incluir el archivo iostream.h. Este
archivo contiene información de diferentes funciones de E/S. Define
también los objetos cin ycout.
Manipuladores de salida
La
biblioteca iostream define
varios operadores particulares, llamados manipuladores, que le permiten
controlar precisamente, el formato de los datos visualizados. Situando un
manipulador en la cadena de operadores <<, se puede modificar el estado del flujo.
Una
característica importante de un flujo que debe tratar con valores numéricos es
la base de los números. Hay tres manipuladores (dec, hex y oct) para controlar la situación. La base por omisión es 10 y por tanto sólo será necesario
indicar dec cuando
se haya fijado la base a otro valor:
cout <<oct<<x<<endl;
cout <<dec<<x<<endl;
Los
manipuladores que toman argumentos se declaran en iomanip.h, el
resto eniostream.h.
A
continuación mostraremos un listado con los manipuladores, su aplicación y la
descripción. Cada uno de ellos lo separaremos mediante --
dec
-- cout<<dec<<x; -- Conversión a decimal
dec
-- cin>>dec>>x; -- Conversión a decimal
Hex
-- out<<hex<<x; -- conversión a hexadecimal
Hex
-- cin>>hex>>x; -- conversión a hexadecimal
oct -- cout<<oct<<x; -- Conversión a octal
oct
-- cin>>oct>>x; -- conversión a octal
ws
-- cin>>ws; Salta espacios en la entrada
ende
-- cout<<endl; -- Envía carácter fin de línea
flush -- cout<<flush; -- Limpia el buffer
setfill(int)
-- cout<<setfill('*'; -- Fija el carácter de rellenado
setprecision(int)
-- cout<<setprecision(6); -- Fija la conversión en coma flotante al nº de
dígitos especificado
setw(int) -- cout<<setw(6)<<x;
cin>>setw(10)>>x; -- Fija la anchura
Con setw() los valores numéricos se justifican a
derechas y los datos carácter a izquierdas.
La
información de la justificación de la salida se almacena en un modelo o patrón
de bits de una clase llamada ios, que constituye la base de todas las clases de
flujos. Puede establecer o reinicializar bits específicos utilizando los
manipuladores setiosflags() y resetiosflags() respectivamente.
Para
utilizar cualquiera de los indicadores de formato hay que insertar el
manipulador setiosflags() con el nombre del indicador como argumento. Hay que
utilizar resetiosflags() con el mismo argumento para invertir el estado del
formato antes de utilizar el manipulador setiosflags().
Indicador
-- Significado del indicador activado
ios::left
-- Justifica la salida a la izquierda
ios::right
-- Justifica la salida a la derecha
ios::scientific
-- Utiliza notación científica para números de coma flotante
ios::fixed
-- Utiliza notación decimal para números de coma flotante
ios::dec
-- Utiliza notación decimal para enteros
ios::hex
-- Utiliza notación hexadecimal para enteros
ios::oct
-- Utiliza notación octal para enteros
ios::showpos --
Muestra un signo positivo cuando se visualizan valores positivos





No hay comentarios:
Publicar un comentario