Академический Документы
Профессиональный Документы
Культура Документы
ORIETADA OBJETOS
INVESTIGACIONES (LIBRERIAS, ESRUCTURAS, RAND)
INDICE
Libreras de dev c++ 2
Estructuras 3
Estructuras anidadas 6
Rand 12
1
LIBRERIAS DE DEV C++
Iosfud: Contienen declaraciones adelantadas de todas las plantillas de flujo y sus typedets
estandar. por ejemplo: Ostream
List: Parte de la STL relativa a los contenedores tipo list, lista doblemente enlazada.
Math: contiene los prototipos de las funciones, otras definiciones para el uso y manipulacin
de funciones matemticas.
2
Memory: utilidades relativas a la gestin de memoria incluyendo asignadores y punteros
inteligentes.
Studio: Contiene los prototipos de las funciones macros, para para utilidades de uso general.
String: Parte de la STL relativa a contenedores tipo string, una generalizacin de las cadenas
alfanumricas para albergar cadenas de objetos, pues eliminan muchas de las dificultades
que generan las char.
Vector: Partes de la STL relativa a los contenedores tipo vector, una generacin de las
matrices unidimensionales.
3
Estructuras
Una estructura contiene varios datos. La forma de definir una estructura es haciendo uso de
la palabra clave struct. Aqui hay ejemplo de la declaracion de una estructura:
struct mystruct
int int_member;
double double_member;
char string_member[25];
} variable;
...
} Mystruct;
La estructura misma no tiene nombre (por la ausencia de nombre en la primera linea), pero
tiene de alias "Mystruct". Entonces se puede usar as:
Mystruct variable;
Note que es una convencin, y una buena costumbre usar mayscula en la primera letra de
un sinnimo de tipo. De todos modos lo importante es darle algn identificador para poder
hacer referencia a la estructura: podramos tener una estructura de datos recursiva de algn
tipo.
Ejemplo de una estructura :
/*
* estructura.c
4
* para el wikilibro "Programacin en C (fundamentos)"
* Titulo char[30]
* Artista char[25]
* Precio float
*/
#include <stdio.h>
#include <string.h>
struct cd
char ttulo[30];
char artista[25];
float precio;
int canciones;
"Pinocho", /* artista */
5
12.50, /* precio */
16 /* total canciones */
};
int main(void)
* de la libreria string.h
*/
Cd2.precio = 15.00;
Cd2.canciones = 12;
printf("\n Cd 1");
6
printf("\n Total Canciones: %d ", Cd1.canciones);
printf("\n");
printf("\n Cd 2");
return 0;
Estructuras Anidadas
Una estructura puede estar dentro de otra estructura a esto se le conoce como anidamiento
o estructuras anidadas. Ya que se trabajan con datos en estructuras si definimos un tipo de
dato en una estructura y necesitamos definir ese dato dentro de otra estructura solamente
se llama el dato de la estructura anterior.
Definamos una estructura en nuestro programa:
struct empleado /* creamos una estructura llamado empleado*/
char nombre_empleado[25];
char direccion[25];
char ciudad[20];
char provincia[20];
7
double salario;
char nombre_cliente[25];
char direccion[25];
char ciudad[20];
char provincia[20];
double saldo;
Podemos ver que tenemos datos muy similares en nuestras estructuras, asi que podemos
crear una sola estructura llamada infopersona con estos datos idnticos:
struct infopersona /* creamos la estructura que contiene datos parecidos */
char direccion[25];
char ciudad[20];
char provincia[20];
char nombre_empleado[25];
8
struct infopersona direcc_empleado;
double salario;
char nombre_cliente[25];
double saldo;
* Titulo char[30]
* Artista char[25]
* Precio float
*/
#include <stdio.h>
#include <string.h>
struct infopersona
9
char direccion[25];
char ciudad[20];
char provincia[20];
struct empleado
char nombre_empleado[25];
*/
double salario;
struct cliente
char nombre_cliente[25];
*/
10
struct infopersona direcc_cliente;
double saldo;
int main(void)
strcpy(MiCliente.nombre_cliente,"Jose Antonio");
*/
11
/*inicializamos un par de datos de MiEmplado */
strcpy(MiEmpleado.nombre_empleado,"Miguel Angel");
strcpy(MiEmpleado.direcc_empleado.ciudad,"Madrid");
*/
printf("\n");
return 0;
12
RAND
Probablemente te has dado cuenta de que en C, al usar la funcin rand() de la biblioteca
estndar, se obtienen resultados decepcionantes, y casi siempre los mismos.
#include <stdlib.h>
#include <stdio.h>
int main()
{
int i;
for(i=0; i<5; i++)
{
printf("%d\n", rand());
}
return 0;
}
#include <stdlib.h>
#include <stdio.h>
int rdtsc()
{
__asm__ __volatile__("rdtsc");
}
int main()
{
int i;
for(i=0; i<5; i++)
13
{
srand(rdtsc());
printf("%d\n", rand());
}
return 0;
}
14