Académique Documents
Professionnel Documents
Culture Documents
Irma Prado
Tipos de datos
Hasta ahora hemos utilizado tipos de datos numéricos y de acuerdo al problema hemos
utilizado un tipo de dato adecuado a ese problema. Cada tipo de dato tiene un rango de
números que puede almacenar, si no se utiliza el tipo de dato correcto, entonces podemos
obtener datos erróneos,
Ejemplo 1.- Tipo de dato entero: int. Ejecute el programa y comente los resultados.
#include<iostream>
main()
{
int b,b1,b2,b3; //rango -2147483648 y 2147483647
b=45; //valor dentro del rango
b1=-2147483648; //limite inferior
b2=2147483647; //limite superior
b3=2147483650; //Valor fuera del rango
cout<<"valor dentro del rango del los enteros "<<b<<endl;
cout<<"limite inferior de los enteros "<<b1<<endl;
cout<<"limite superior de los enteros "<<b2<<endl;
cout<<"valor fuera del rango de los enteros "<<b3<<endl;
system("pause");
}
Ejemplo 2.- Tipo de dato entero: short. Ejecute el programa y comente los resultados.
#include<iostream>
main()
{
short b,b1,b2,b3; //-32768 y 32767
b=45; //valor dentro del rango
b1=-32768; //limite inferior
1
ELT-230 M.Sc. Irma Prado
Ejemplo 3.- Tipo de dato entero: long. Ejecute el programa y comente los resultados.
#include<iostream>
main()
{
long b,b1,b2,b3; //-2147483648 y 2147483647
b=45; //valor dentro del rango
b1=-2147483648; //limite inferior
b2=2147483647; //limite superior
b3=2147483690; //Valor fuera del rango
cout<<"valor dentro del rango del los enteros largos "<<b<<endl;
cout<<"limite inferior de los enteros largos "<<b1<<endl;
cout<<"limite superior de los enteros largos "<<b2<<endl;
cout<<"valor fuera del rango de los enteros largos "<<b3<<endl;
system("pause");
}
Ejemplo 4.- Tipo de dato entero: long. Ejecute el programa y comente los resultados.
#include<iostream>
main()
{
bool a,b; //rango 0 y 1 , también se puede utilizar true o false
a=1;
b=0;
if (a){
cout<<"El valor de a es verdadero o "<<a<<endl;
}
if (b)//esto nunca sera verdad
{
cout<<"nunca me ejecutare :( ";
}
else {
cout<<"El valor de b es falso o "<<b<<endl;
}
2
ELT-230 M.Sc. Irma Prado
CADENAS
Tipos de dato char. Las variables de tipo char almacena letras, números y caracteres
especiales. Si un número se almacena como char entonces no se podrá realizar ninguna
operación matemática con él.
char p;
debe llevar [] porque son varias letras, a veces es necesario indicar cuantos caracteres tendrá la
variable, para ello deben indicar con un número dentro de [].
En el ejemplo, la variable s=”hola amigo” esto quiere decir que la variable s está conformada
de la sgte manera:
Entonces la variable s está conformada por las letras incluyendo el espacio y el null o fin de
línea \0. Note que s[0] contiene la primera letra, en este caso la h, s[9] contiene la letra g y así
sucesivamente. Entonces se puede trabajar con letras independientes de todo el texto que
tiene la variable.
3
ELT-230 M.Sc. Irma Prado
Ejemplo 5. Asignación de un carácter en la variable char y otra variable con varios caracteres.
#include<iostream>
main()
{
char x='H';
cout<<"El valor de x es = "<<x<<endl;
char a[]="Viva Bolivia";
cout<<"El valor de a es ="<<a<<endl;
system("pause");
}
Comente las diferencias en este tipo de asignaciones de datos en la variable.
Ejemplo 6. Se puede trabajar con cada carácter de la variable tipo char, indicándole la posición
del caracter.
#include<iostream>
main()
{
char a[]="Viva Bolivia";
cout<<"Vamos a desplegar un caracter por fila"<<endl;
for(int i=0;i<12;i++){
cout<<a[i]<<endl;}
system("pause");
}
Comente por qué se utiliza for y qué papel juega i.
Ejemplo 7. - Otra manera de asignar texto a una variable char es carácter por carácter, en este
caso al final se debe adicionar \0. Vea el sgte ejemple;
#include<iostream>
main()
{
char z[]={'I','n','g','e','n','i','e','r','i','a','\0'};
cout<<"La cadena es = "<<z<<endl;
cout<<"Vamos a desplegar un caracter por fila"<<endl;
for(int i=0;i<11;i++){
cout<<z[i]<<endl;}
system("pause");
}
Ejemplo 8. El sgte ejemplo permite ingresar caracteres por teclado asignando a la variable k
#include<iostream>
main()
{
4
ELT-230 M.Sc. Irma Prado
char k[30];
cout<<"Escriba nombre y apellido "<<endl;
cin>>k;
cout<<"Hola "<<k<<endl;
system("pause");
}
El problema que presenta el programa anterior es que la sentencia cin solamente lee los
caracteres hasta encontrar un espacio. Entonces si al ejecutar el programa escribe como dato
“Juan Perez” la sentencia cin solamente asignará en k la palabra “Juan”. Para solucionar este
problema se recomienda leer datos de tipo char utilizando la sentencia gets(), sentencia que
lee una cadena de texto hasta encontrar enter. Esta sentencia se encuentra en la librería
stdio.h.
#include<iostream>
#include<stdio.h>
main()
{
char k[30];
cout<<"Escriba nombre y aopellido "<<endl;
gets(k);
cout<<"Hola "<<k<<endl;
system("pause");
}
Solamente explicaremos las funciones más importantes de esta librería que trabaja con
cadenas tipo char.
#include<iostream>
#include<stdio.h>
main()
{
char k[]="Universidad Catolica Boliviana";
int c=0;
c=strlen(k);
cout<<k<<" tiene "<<c<<" caracteres incluyendo el espacio"<<endl;
system("pause");
}
5
ELT-230 M.Sc. Irma Prado
#include<iostream>
#include<string.h>
main()
{
char nombre[] = "Viva Bolivia";
char copia[80];
strcpy(copia, nombre);
cout << copia << endl;
cout << nombre << endl;
cout<<"-----------------------------------"<<endl;
char f[]="Hola";
char d[strlen(f)]; //la variable destino debera tener el mismo o mayor numero de caracteres
strcpy(d, f);
cout<<" contenido de f "<<f<<endl;
cout<<" contenido de d "<<d<<endl;
system("pause");
}
strcmp(a,b): Compara dos cadenas, en base al orden del abcdario, tiene tres posibles
resultados :
Si a es igual a b, el resultado es 0
#include<iostream>
#include<string.h>
main()
{
char nombre1[] = "Ana";
char nombre2[]="Beatriz";
if (strcmp(nombre1, nombre2)<0){
cout<<nombre1<<" Es menor que "<< nombre2<<endl;
}
system("pause");
}
6
ELT-230 M.Sc. Irma Prado
#include<iostream>
#include<string.h>
#include<stdio.h>
main()
{
char cad1[20];
char cad2[20];
cout<<"Primer texto ";
gets(cad1);
cout<<"Segundo texto ";
gets(cad2);
if (strcmp(cad1, cad2)<0){
cout<<cad1<<" Es menor que "<<cad2<<endl;
}
if (strcmp(cad1, cad2)>0){
cout<<cad1<<" Es mayor que "<<cad2<<endl;
}
if (strcmp(cad1, cad2)==0){
cout<<cad1<<" Es igual que "<<cad2<<endl;
}
system("pause");
}
Ejemplo 14. Programa para contar las letras a de una línea de texto.
#include<iostream>
#include<string.h>
#include<stdio.h>
main()
{
char texto[80];
int c=0;
cout<<"Escriba el texto"<<endl;
gets(texto);
for(int i=0;i<strlen(texto);i++){
if(texto[i]=='a'|| texto[i]=='A'){c++;} //para comparer un character utiliza ‘ ‘
}
cout<<"Total de letras a's "<<c<<endl;
system("pause");
}
Otro ejemplo
7
ELT-230 M.Sc. Irma Prado
#include <windows>
using namespace std;
int main()
{
Beep(523,500);
Beep(587,500);
Beep(659,500);
Beep(698,500);
Beep(784,500);
system("PAUSE");
}
Ejemplo:
#include<iostream>
using namespace std;
main()
{ /// probando CMD /C MOUNTVOL /R
int opcion;
do{
cout<<"1.dir 2.cls 3.mountvol 4.salir";
cin>>opcion;
switch(opcion){
case 1: system("dir");
system("pause");
break;
case 2: system("cls");
system("pause");
break;
case 3: system("mountvol c: /l");
system("pause");
break;
}
}while(opcion!=4);
}
Trabajo practico
1. Investigar las funciones de la librería string para convertir una cadena en mayúsculas y
realice un programa ejemplo.
8
ELT-230 M.Sc. Irma Prado
2. Investigar las funciones de la librería string para convertir una cadena en minúscular y
realice un programa ejemplo.