martes, 10 de enero de 2017
Capítulo 4. Tipos de datos
Capítulo 4. Tipos de datos
Figura: al principio puede hacerse un poco complejo
Los tipos de datos de c++ no varian mucho respecto a c y son bastante evidentes, tal
y como se puede apreciar en este codigo.
/**
* Tipos.cpp
* Programa para sacar el tamaño de cada tipo de datos
* Pello Xabier Altadill Izura
*
* Compilado: g++ Tipos.cpp -o Tipos
*/
using namespace std;
#include
int main () {
// Sacamos el tamaño de cada tipo
cout << "El tamaño del int es:\t\t" << sizeof(int) << " bytes.\n";
cout << "El tamaño del short es:\t" << sizeof(short) << " bytes.\n";
cout << "El tamaño del long es:\t" << sizeof(long) << " bytes.\n";
cout << "El tamaño del char es:\t\t" << sizeof(char) << " bytes.\n";
cout << "El tamaño del float es:\t\t" << sizeof(float) << " bytes.\n";
cout << "El tamaño del double es:\t" << sizeof(double) << " bytes.\n";
// Sacamos por salida standar un mensaje
cout << "Termino el programa\n";
return 0;
}
9
Capítulo 4. Tipos de datos
Tambien se pueden definir constantes:
/**
* Constante.cpp
* Programa en el que definimos un valor constante
* Pello Xabier Altadill Izura
*
* Compilado: g++ Constante.cpp -o Constante
*/
using namespace std;
#include
#define MEMOLA 25
int main () {
int y = 0;
// Definimos el valor constante
const float PI = 3.1416;
cout << "Ten fe en el caos: " << PI << endl;
// Sacamos por salida standar un mensaje
cout << "\nTermino el programa : " << MEMOLA << endl;
return 0;
}
Tabla 4-1. Tipos basicos de datos
Tipo Descripcion Modificadores
void Vacio
char Caracter (8 bits) signed char(8 bits),
unsigned char(8 bits)
int Entero simple (16 bits) signed int(16 bits),
unsigned int(16 bits), long
int (32 bits), unsigned long
int(32 bits), signed long
int(32 bits), short int(16
bits), unsigned short
int(16 bits), signed short
int(16 bit)
float Coma flotante (32 bits)
double Coma flotante mas grande
(64 bits)
long double (80 bits)
bool Valor booleano: true o
false
wchar_t Caracteres anchos, para
determinado juegos de
caracteres
Sin animo de extenderse mucho mas, en c++ tambien disponemos de struct, union y
10
Capítulo 4. Tipos de datos
enum. Veamos unos ejemplos:
struct ficha {
char nombre[50];
int edad;
char dni[9];
} ficha1, ficha2;
strcpy(ficha1.nombre,"Marujita Diaz");
ficha1.edad =
Segmentation fault - value out of range! please use double type
core dumped
Las union son parecidos a los structs con la gran diferencia de que sus campos comparten
el mismo espacio de memoria. Podemos meter elementos de distintos tipo y
la union tendra el tamaño del elemento mas grande.
// cuando guardemos un valor en alguna de los campos, tambien se guardara
// en los demas. Podremos tratar el mismo dato de distintas formas.
union valor {
int numero;
double numerazo;
char caracter[2];
} mi_valor;
Y mas adelante saldra algun ejemplo de enumeracion...
11
Capítulo 4. Tipos de datos
12
Capítulo 5. Operadores
Bueno, conociendo los tipos de datos ya podemos empezar a operar con ellos. Dentro
de c++ tenemos los tipicos operadores matematicos + - * / y tambien los operadores
unarios (++ --) En este primer ejemplo vemos operadores unarios y la asignacion
multiple.
/**
* Operadores.cpp
* Programa para probar algunos operadores
* Pello Xabier Altadill Izura
*
* Compilado: g++ Operadores.cpp -o Operadores
*/
using namespace std;
#include
int main () {
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadores\n";
unsigned int test = 0;
unsigned int a = 0, b = 0, c;
// Sacamos el valor por pantalla de test
cout << "Valor de test: " << test << endl;
// Sacamos el valor por pantalla de test++
cout << "Valor de test++: " << (test++) << endl;
// Sacamos el valor por pantalla de ++test
cout << "Valor de ++test: " << (++test) << endl;
cout << "Valor de test actual: " << test << endl;
// asignacion multiple
c = b = a = test;
// Veamos el resto de valores
cout << "Y los demas: " << c << " " << b << " " << a << endl;
return 0;
}
/**
* Operadores.cpp
* Programa para probar algunos operadores
* Pello Xabier Altadill Izura
*
* Compilado: g++ Operadores.cpp -o Operadores
*/
using namespace std;
#include
int main () {
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadores\n";
unsigned int test = 0;
unsigned int a = 0, b = 0, c;
13
Capítulo 5. Operadores
// Sacamos el valor por pantalla de test
cout << "Valor de test: " << test << endl;
// Sacamos el valor por pantalla de test++
cout << "Valor de test++: " << (test++) << endl;
// Sacamos el valor por pantalla de ++test
cout << "Valor de ++test: " << (++test) << endl;
cout << "Valor de test actual: " << test << endl;
// asignacion multiple
c = b = a = test;
// Veamos el resto de valores
cout << "Y los demas: " << c << " " << b << " " << a << endl;
return 0;
}
Figura: aprendiendo c++ puedes escalar socialmente. Aunque si lo que quieres es
ganar dinero, quedate en el campo.
14
Capítulo 5. Operadores
En el siguiente codigo vamos un poco mas alla y se muestra algunas operaciones
abreviadas y algunas comparaciones.
/**
* Operadores2.cpp
* Programa para probar algunos operadores segunda parte
* Pello Xabier Altadill Izura
*
* Compilado: g++ Operadores2.cpp -o Operadores2
*/
using namespace std;
#include
int main () {
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadores\n";
unsigned int test = 0;
unsigned int a = 0, b = 0, c;
// asignacion multiple
c = b = a = ++test;
b += 3;
c++;
a -= 1;
// Veamos el resto de valores
cout << "Son estos: c=" << c << " b=" << b << " a=" << a << endl;
a += b + c;
cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;
// Tomamos el valor a
cout << "Dame valores. \na=";
cin >> a;
// Tomamos el valor b
cout << "b=";
cin >> b;
// Tomamos el valor c
cout << "c=";
cin >> c;
cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;
//Probamos el if
if (a > b) {
cout << "A es mayor que B" << endl;
}
//Probamos el if
if (a >= b) {
cout << "A es mayor o igual que B" << endl;
}
//Probamos el if
if (a <= b) {
cout << "A es menor o igual que B" << endl;
}
return 0;
15
Capítulo 5. Operadores
}
Operadores logicos. A continuacion vemos algunos ejemplos de operadores logicos
(comparaciones) y la combinacion de estos.
/**
* Logicos.cpp
* Programa para probar operadores Logicos
*
* Pello Xabier Altadill Izura
*
* Compilado: g++ Logicos.cpp -o Logicos
*/
using namespace std;
#include
int main () {
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadores\n";
unsigned int test = 0;
int a = 23, b = 21, c = 34;
// Veamos el resto de valores
cout << "Valores: " << c << " " << b << " " << a << endl;
// Tomamos el valor a
cout << "Dame valores. \na=";
cin >> a;
// Tomamos el valor b
cout << "b=";
cin >> b;
// Tomamos el valor c
cout << "c=";
cin >> c;
cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;
// Veamos una sentencia if-else sencilla
if (!(a == b))
cout << "a y b no son iguales" << endl;
else
cout << "a y b son iguales" << endl;
// Veamos otra sentencia if-else sencilla
if ((a == b) || (b == c))
cout << "A y B son iguales o B y C son iguales" << endl;
else
cout << "ni A y B son iguales ni B y C son iguales" << endl;
// Nota. Ley de De Morgan
// !(A && B) == !A || !B
// !(A || B) == !A && !B
return 0;
}
Mas operadores logicos. Tambien introducimos el operador ()?: que simplifica las
expresiones pero las hace un poco ilegibles.
16
Capítulo 5. Operadores
/**
* Logicos2.cpp
* Programa para probar operadores Logicos 2
*
* Pello Xabier Altadill Izura
*
* Compilado: g++ Logicos2.cpp -o Logicos2
*/
using namespace std;
#include
int main () {
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadores\n";
unsigned int test = 0;
int a = 23, b = 21, c = 34;
// Veamos el resto de valores
cout << "Valores: " << c << " " << b << " " << a << endl;
// Tomamos el valor a
cout << "Dame valores. \na=";
cin >> a;
// Tomamos el valor b
cout << "b=";
cin >> b;
// Tomamos el valor c
cout << "c=";
cin >> c;
cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;
// Veamos una sentencia if-else sencilla
if (!a)
cout << "A es false (igual 0)" << endl;
else
cout << "A es true (distinto de 0)" << endl;
// Veamos una sentencia if-else sencilla
if (!b)
cout << "B es false (igual 0)" << endl;
else
cout << "B es true (distinto de 0)" << endl;
// Veamos una sentencia if-else sencilla
if (!c)
cout << "C es false (igual 0)" << endl;
else
cout << "C es true (distinto de 0)" << endl;
// Sentencia con operador logico o TERNARIO ()?:
c = (a == b)?0:1;
cout << "C es : " << c << endl;
return 0;
}
If-else Introduciendo esta simple estructura de control:
17
Capítulo 5. Operadores
/**
* IfElse.cpp
* Programa para probar If Else anindados
* En c++ no existe la estructura if-elsif-else
* Pello Xabier Altadill Izura
*
* Compilado: g++ IfElse.cpp -o IfElse
*/
using namespace std;
#include
int main () {
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadores\n";
unsigned int test = 0;
int a = 23, b = 21, c = 34;
// Veamos el resto de valores
cout << "Valores: " << c << " " << b << " " << a << endl;
// Veamos una sentencia if-else sencilla
if (a >= b)
cout << "a mayor o igual que b" << endl;
else
cout << "a menor que b" << endl;
// Veamos una sentencia if-else compleja
// nota: si dentro de un if o un else metemos mas de una sentencia, hay que meter LLAVES
// y tambien conviene meter las llaves para hacer un codigo menos confuso
if (a >= b) {
cout << "a mayor o igual que b" << endl;
if (a == 23) {
cout << "a igual que 23" << endl;
cout << "terminamos." << endl;
}
} else {
cout << "a menor que b" << endl;
}
return 0;
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario