Entendido.

Este sitio utiliza cookies para analizar la navegación.Si continúa navegando se entiende que acepta su uso. Ver más detalles.

Logo

Aprende Web C++

Aprende a programar en C++ con Aprende-Web

Nociones Básicas

programación en C++ desde cero.


Buscar en Aprende Web

Traducir página

Visita nuestro blog:

bolg.aprende-web.net

y entérate de las novedades o deja un comentario.

Dudas y sugerencias:

aprendeweb@aprende-web.net



Sobre ésta página

Ültima modificación: 13-07-2018.

Visitas este mes: 111

Visitas el mes pasado: 111

logo
WEB-GRAFÍA

Mi agradecimiento a los siguientes sitios en los que me he basado para la elaboración de los manuales.:

cplusplus.com
Sitio oficial de C++: Informacion, Referencias, Tutorial, Foro. (En inglés)
Minidosis.org
Curso de C++ con videos y lecturas.
conclase.net
Curso de C++
programar ya
Curso de C++ desde cero
cprogramming.com
C++ Tutorial (inglés).
Entorno de desarrollo integrado
fergarciac.wordpress.com
Compiladores, intérpretes y Máquinas virtuales.
latecladeescape.com
el hacker.net
Programación
Desarrollo web
Manual de iniciación a la programación.

En los distintos manuales incluimosm más webgrafía especifica de cada sección.


Donativos

Si este sitio te parece interesante puedes contribuir con una pequeña aportación.





2. Instrucciones básicas

2.8. Conversión de tipos

Constantes

Logo C++ Basico

Hasta ahora hemos guardado datos en variables. Las variables se caracterizan por eso, por ser variables, y poder cambiar en cualquier momento su valor. Pues bien, las constantes funcionan igual que las variables, sólo que una vez que les hemos asignado un valor, ya no podremos cambiarlo. Veamos cómo declaramos una constante:

const double pi=3.1416

Declaramos una constante de la misma forma que hacemos con una variable, pero con la palabra const delante; además es obligatorio inicializar la constante al declararla, es decir darle un valor, de no ser así el compilador dará un error.

ç

A partir de aquí podremos usar la constante pi en lugar de su valor, pero no podremos volver a cambiar su valor. Si intentáramos cambiar el valor de la constante el compilador daría error.

Veamos un ejemplo típico de programa que usa una constante, en este cso el valor PI para calcular el círculo y la circunferencia:

1 2 3 4 5 6 7 8 9 10 11
#include<iostream>
using namespace std;

int main () {
    cout << "Calcular circulo y circunferencia" << endl;
    double r;
    const double pi=3.14159;
    cout << "Radio : "; cin >> r;
    cout << "Circunferencia = " << 2*pi*r << endl;
    cout << "Circulo = " << pi*r*r << endl;
}

programa constantes

En este programa creamos la constante pi para utilizar el número pi en el cálculo del circulo y la circunferencia. El usurio introduce el valor del radio, y el programa le devuelve el valor del círculo y de la circunferencia.

El uso de constantes no suele ser muy frecuente. Se usan para datos que no queremos que cambien a lo largo de todo el programa.


Cambio de tipos

Se puede forzar el cambio de un tipo de una variable a otra, al cambiar de tipo puede haber cambios en el valor de la variable, o mejor dicho, en la forma en la que la variable muestra el valor.

Veamos cómo cambiar el tipo de variable entre los tipos básicos o primitivos. Por ejemplon si tenemos una variable de tipo entero :

int num=50;

Declaramos ahora una variable de tipo char, y le asignamos el contenido de la variable anterior, pero haciendo el cambio de tipo, para ello haremos lo siguiente:

char c=char(num);

Es decir, al hacer el cambio de tipo en un dato, escribimos el tipo al que queremos cambiarlo, y después entre paréntesis escribimos la variable que queremos cambiar (char(num)). Como el resultado obtenido ya no es una variable de otro tipo, la tenemos que guardar como una nueva variable del nuevo tipo. En este ejemplo cambiamos una variable de tipo entero a una variable de tipo char. El resultado es que la variable no mostrará y un número, sino el caracter que en la tabla ascii está asignado a ese número.

Tal como puede observarse, al hacer el cambio de tipo, el dato guardado puede variar, ya que intenta transformarse en otro tipo.

Veamos qué ocurre al querer transformar un tipo a otro:

Conversión a booleanos.

Veamos el resultado de algunas conversiones de un tipo a otro. Empezamos por ver qué pasa al transformar los distintos tipos a booleano.

Solo si el valor inicial del tipo es cero (0), al pasarlo booleano se queda en 0 (false), en el resto de casos, el valor será siempre 1 (true).

Conversión a enteros:

Veamos ahora una lista con distintos tipos que los transformamos en enteros:

Al convertir un numero real a entero, éste pierde su parte decimal. Al convertir un caracter a entero obtenemos su número de código ascii. Al convertir un booleano obtenemos los números 0 y 1 para los valores false y true respectivamente.

Conversión a reales

Veamos ahora qué ocurre cuando transformamos el resto de tipos a reales.

Al convertir un número entero a real, este se conserva. Con el resto de tipos obtenemos los mismos resultados que con la conversión a enteros. La diferencia es que aquí lo que tenemos es un número real y no un entero.

Conversión a caracteres

Convertimos ahora el resto de tipos a tipos de caracteres. La conversión de tipos numéricos a caracteres tiene que ver con el código ASCII de 256 caracteres. Así si convertimos un número entero entre 0 y 255 obtenemos el caracter del código ASCII:

int a=72; cout<<char(a);//En pantalla: H

Para los números reales tenemos el mismo comportamiento, tras ignorar la parte decimal:

double a=72.658; cout<<char(a);//En pantalla: H

Cuando los números son mayores o menores de 256, estos forman grupos de 256, de manera que se repite el código, de tal manera que en los siguientes casos obtenemos el mismo resultado que en el anterior:

int a=72+256; cout<<char(a);//En pantalla: H

int a=72+(256*5); cout<<char(a);//En pantalla: H

int a=72-(256*5); cout<<char(a);//En pantalla: H

La conversión de tipos reales a caracter se realiza de maner similar, ya que se ignora la parte decimal y se realiza después de la misma mnera.

Con la conversión de tipos booleanos a caracter, resulta que el valor false o 0 se cambiará al valor del 0 en la tabla ASCII y el del true o 1 al valor del 1 en la tabla ASCII.


Entrada de datos por teclado

Hemos visto en páginas anteriores que se puede pedir al usuario que nos proporcione datos que introduce escribiendolos con el teclado. Estos datos los guardamos en una variable, pero ¿Qué ocurre cuando los datos que nos proporcionan no son del tipo que quiere la variable?. Veamos los casos:

Con variable entera

hemos hecho el siguiente programa, muy simple, pero que nos sirve para saber lo que pasa con lo que escribe el usuario:

1 2 3 4 5 6 7 8
#include<iostream>
using namespace std;

int main() {
    int a;
    cin >> a;
    cout << a << endl;
}

El programa lee los caracteres que ha escrito el usuario y luego devuelve lo que ha leído. Si estos coinciden con un número entero, se guardan como tal. En cuanto lee un caracter que no sea un número deja de leer y se para. Si el primer caracter no es un número se guarda el cero. Ejemplos.

Escribimos 154 ; Guardado en variable : 154

Escribimos 23.58 ; Guardado en variable : 23

Escribimos 15dias ; Guardado en variable : 15

Escribimos -23hola ; Guardado en variable : -23

Escribimos hola ; Guardado en variable : 0

Escribimos -hola23 ; Guardado en variable : 0

Con variable real

Si modificamos el programa anterior de forma que la variable sea de tipo real (double a;), veremos qué es lo que pasa cuando el usuario escribe en el teclado:

Escribimos 154 ; Guardado en variable : 154

Escribimos 23.58 ; Guardado en variable : 23.58

Escribimos 23dias ; Guardado en variable : 23

Escribimos 23.45euros ; Guardado en variable : 0

Escribimos 23.45.euros ; Guardado en variable : 23.45

Escribimos 23.45.84.21 ; Guardado en variable : 23.45

Escribimos 23.euros ; Guardado en variable : 0

Escribimos hola ; Guardado en variable : 0

El programa devuelve 0 si lo escrto empieza por un caracter no numerico, o si en la parte decimal encuentra un caracter no numérico. Sin embargo si después de la prte decimal escribimos un punto seguido de más caracteres, el número se lle perfectamente.

Con variable tipo caracter

Modificamos el programa para que la variable sea de tipo caracter (char a;), y probramos a introducir diferentes escrituras por el teclado.

Escribimos 1234 ; Guardado en variable : 1

Escribimos h ; Guardado en variable : h

Escribimos hola ; Guardado en variable : h

Vemos que si se escribe un solo caracter se guarda éste como tal, pero si escribimos varios sólo se guarda el primero.

Con variable tipo booleano

Después de hacer varias pruebas, hemos comprobado que si lo escrito por el usuario empieza por un número distinto de 0 , lo guardado es un 1 (true), en los demás casos se guarda un 0 (false).






Aquí acaba el segundo tema de este manual, en la siguiente página empezamos el siguiente tema, los operadores.

Operadores



Manual Básico de C++

Anterior siguiente ... Siguiente siguiente


imprimir esta página

Página creada por ANYELGUTI.

Sugerencias: aprendeweb@aprende-web.net. Envia un manda un correo

Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog

Más sobre anyelguti en http://anyelguti.16mb.com