01) Introduccion Estructuras de Datos
01) Introduccion Estructuras de Datos
01) Introduccion Estructuras de Datos
ESTRUCTURAS DE DATOS
INTRODUCCIÓN A LAS
ESTRUCTURAS DE DATOS
En esta presentación . . .
• Concepto de tipos de datos y estructuras de datos
• Rango para tipos enteros
• Estándar para punto flotante
• Codificación de almacenamiento
• El tipo string y métodos
• El tipo char y funciones
• Entrada de datos de usario
• Conversiones de tipos
Tipos de datos
Un tipo de dato es un espacio de memoria, al cual se le imponen restricciones
tales como
• El tipo de valor que puede tomar
• Las operaciones que se pueden realizar con este
Tipos de datos atómicos (primitivo o elemental)
Son los datos que son indivisibles (son nativos del compilador y no se
componen de otros tipos de datos) – En C++ son.
short int long double
unsigned short unsigned int char
long float unsigned char
unsigned long double void
Nota: En C++ bool no es un dato atómico ya que se define a partir de sentencia
enum
Tipos de datos
Clasificación
El operador unsigned corre los valores de modo que se eliminen los negativos
lo que resulta en una ampliación en la capacidad de valores positivos
Salida del
programa
8 bits
Para el exponente 23 bits
Para la mantisa
1 bit (para el signo) Lo que significa que un número flotante es un
0 significa (+) formato de notación científica pero en binario
1 significa (-)
LOS VALORES REALES (PUNTO FLOTANTES)
¿Cómo convertir un flotante a binario?
A continuación se explicará con un ejemplo, digamos que a partir del estándar
IEEE 754 se desea saber a qué corresponde el número
49,3125 a binario
132D = 10000100B
Paso 4 : La parte decimal la convertimos en binario
10001 0101
0 10000100 10001010100000000000000
Actividad
Utilizando la función sizeof, y efectuando los cálculos correspondientes
complete la siguiente tabla
Codificación de almacenamiento
Entendemos que el computador almacena todo en bits (1 y 0), sin embargo el
hardware informático se diseña para que las lecturas o escrituras que hagamos
sea en múltiplos de bytes (1 byte = 8 bits)
www.elcodigoascii.com.ar
Codificación de almacenamiento
Actividad 1) Pruebe el siguiente código que almacena un unsigned short
en un archivo
#include <iostream> 2) Busque el archivo creado “miArchivo.txt” y
#include <fstream>
using namespace std;
ábralo con el bloc de notas
int main () {
ofstream miArchivo ("miArchivo.txt",ios::binary);
short Numero=35+256*61;
miArchivo.close();
cout <<"LISTO ! " <<endl;
system("pause"); 3) Analice y explique el resultado basándose en la
return 0;
}
tabla ASCII
Una explicación sobre el tipo bool
Al comienzo de esta presentación se mencionó que en C++ el tipo bool no se
considera un tipo de dato atómico, debido a que está definido con base a la
sentencia enum.
enum bool {false, true};
Por ejemplo, suponga que
usted quiere definir su propio
booleano pero ahora lo llamará
LOGICO, podría ser así
El tipo string
En realidad string no es una variable, sino que una clase, es decir incluye métodos
y propiedades
Función strlen
Para averiguar la longitud de una cadena de caracteres
char palabra[50]="El barquito no podía navegar";
cout<< strlen(palabra) << endl;
El tipo char
Función strcmp
Para comparar el contenido de 2 cadenas de caracteres (para usar en las
sentencias condicionales)
• Observe que se usa
#include<iostream> strcmp para comparar 2
using namespace std; cadenas
main(){
char x[15]="Hola mundo"; • No se puede comparar así:
char z[20]="Hola mundo"; x==z como sucede con el
if(strcmp(x,z)==0){ tipo string
cout<< "Son igualititas";
cout<< endl; También se pueden usar los
} operadores < y > para
} ordenar alfabéticamente
Entradas de datos por el usuario
Todas las variables atómicas pueden recibir valores desde el teclado, con
la instrucción cin, como en el siguiente ejemplo.
Pequeño
problema Para el tipo string solo
con cin permite ingresar
palabras sin espacios
Entradas de datos recomendada para un string
Si se usa cin para un tipo string, tendrá el problema de que corta la
palabra ingresada desde el primer espacio, por eso se recomienda
utilizar getline, del siguiente modo.
Modo
recomendado
Entradas de datos para un vector char
En el caso de un vector char, se usa la siguiente variante de cin
char nombre[40];
cin.getline(nombre,40);
miEntero=(int)3.45;
miFloat=(float)miEntero;
miFloat=(float)miEntero/5;