You are on page 1of 22

COLEGIO NACIONAL DE EDUCACIN

PROFESIONAL TCNICA
J.REFUGIO ESPARZA REYES

Programacin Orientada a Objetos

TEMA: ARCHIVOS DE DATOS.

Alumna: Diana Stephanie Vzquez Morales.

Especialidad: Profesional Tcnico Bachiller en Informtica.

GRUPO: 409

TURNO: Matutino.

Maestra: Yolanda Catalina Navarrete Beas.

Aguascalientes, Ags.

Lunes 13 de marzo del 2017.


NDICE:

1. Instrucciones para crear archivos de datos..........3


a) Secuenciales.
b) Directos.
2. A, B Y C..6
3. Guardar y Crear Estructuras en un archivo9
a) Crear.
b) Guardar.
4. Libreras y Otros comandos y tablas de Dev C++.14
5. Ejemplo de nmeros aleatorios en Dev C++..20
6. Referencias22
Instrucciones para crear archivos de datos
a) Secuenciales:
DEFINICIN: La forma ms comn de estructura de archivo es el
archivo secuencial. En este tipo de archivo, un formato fijo es
usado para los registros. Todos los registros tienen el mismo
tamao, constan del mismo nmero de campos de tamao fijo
en un orden particular. Como se conocen la longitud y la
posicin de cada campo, solamente los valores de los campos
se necesitan almacenarse; el nombre del campo y longitud de
cada campo son atributos de la estructura de archivos.

EJEMPLO:
Declaras una variable
01 L pic 9999.
Apertura.
Open input a-cliente.
CABEZERA.
display spaces line 1 position 1 erase.
display "dNI nombre apellido direccion " line 1 position 1.
MOVE 2 TO L.
Leer. read a-cliente next at end go fin.
IF L > 25 DISPLAY "SIGUIENTE PAGINA" LINE 24 POSITION 1
ACCEPT L LINE 24 POSITION 40
PERFORM CABEZERA.
Display dni line L POSITION 1.
DISPLAY NOM LINE L POSITION 15.
DISPLAY APE1 LINE L POSITION 30.
DISPLAY DIR LINE L POSITION 50.
ADD 1 TO L.
GO LEER.
FIN.CLOSE A-CLIENTE.
EXIT PROGRAM.
B) DIRECTOS:
DEFINICIN: Los datos se colocan y se acceden aleatoriamente
mediante su posicin, es decir, indicando el lugar relativo que
ocupan dentro del conjunto de posiciones posibles. En esta
organizacin se pueden leer y escribir registros, en cualquier
orden y en cualquier lugar. Inconvenientes: a) Establecer la
relacin entre la posicin que ocupa un registro y su contenido;
b) Puede desaprovecharse parte del espacio destinado al
archivo. Ventaja: Rapidez de acceso a un registro cualquiera.

EJEMPLO Y EXPLICACIN:

Este trozo de cdigo hace justamente eso mismo con nuestro


fichero informtico de la base de datos. Suponemos que el
fichero de nuestra agenda ya est abierto y los tipos de datos
definidos.

numeros = (LOF(1) / LEN(registro))


OPEN "Agenda.tmp" FOR RANDOM AS #2 LEN = LEN(registro)
n1 = 1
n2 = 1
WHILE n1 <= numregS
GET #1, n1, registro
IF registro.nombre <> SPACE$(LEN(registro.nombre)) OR
registro.edad <> 0 THEN
PUT #2, n2, registro
n2 = n2 + 1
END IF
n1 = n1 + 1
WEND

CLOSE

KILL "Agenda.dat"
NAME "Agenda.tmp" AS "Agenda.dat"

OPEN "Agenda.dat" FOR RANDOM AS #1 LEN = LEN(registro)


'Seguimos con el programa...
Vamos a ver como funciona esto:

Lo primero que hacemos, como siempre, es calcular el


nmero de registros que tiene el fichero para saber hasta
dnde podemos llegar.
A continuacin abrimos un fichero llamado "Agenda.tmp"
(La extensin .tmp significa "temporal") y le asignamos el
descriptor #2. Este fichero debe ser abierto con la misma
estructura que el otro y suponemos que no existe y se crea
uno nuevo y vaco al abrirlo.
Antes de entrar en el bucle inicializamos dos contadores al
valor 1, uno nos va a servir para recorrer el fichero viejo y
otro para recorrer el nuevo. Empezamos por 1 que es el
primer registro.
Ahora usamos un bucle "Mientras" para recorrer el fichero
viejo desde el principio hasta el final. Dentro de este bucle
leemos cada registro y si no est completamente vaco lo
copiamos al nuevo fichero e incrementamos ambos
contadores. Si est vaco no hacemos nada y solo
incrementamos el primer contador para poder seguir
recorriendo el fichero viejo.
Para comprobar si el registro est completamente vaco
habr que usar una expresin condicional que puede
llegar a ser muy larga porque hay que comprobar cada
dato miembro. En nuestro ejemplo esta expresin aparece
ocupando dos lneas, pero si la escribes en QBasic tendr
que ser toda seguida en la misma lnea, aunque sea muy
larga. QBasic soporta lneas de hasta 256 caracteres de
larga, si sigue sin caber tendrs que cambiar los nombres
de las variables por otros ms cortos, aunque en esta
ocasin sean menos descriptivos.
Una vez que salimos del bucle tendremos el fichero
"Agenda.dat" tal como estaba y el nuevo "Agenda.tmp"
compactado solo con los datos que nos interesan.
Para proceder al intercambio de los nombres de los
ficheros y quedarnos solo con el nuevo podemos seguir
estos pasos
o Cerrar los dos ficheros, usando la orden CLOSE sin
descriptor.
o Borrar "Agenda.dat" usando la orden KILL, que
veremos con detalle ms adelante.
o Cambiarle el nombre a "Agenda.tmp" por
"Agenda.dat" usando la orden NAME, que tambin
veremos en prximos temas.
o Volver a abrir "Agenda.dat" con el descriptor #1 para
seguir trabajando con l normalmente desde el resto
del programa.

Esta operacin de mantenimiento la tendr que ejecutar el


usuario de vez en cuando, especialmente despus de haber
borrado muchos registros. En programas mucho ms sofisticados
se podra hacer que se ejecute cada x das o tras haber
borrado un determinado nmero de registros.

A, B Y C
Crear, leer, actualizar y eliminar
En la programacin informtica , crear, leer, actualizar y
eliminar (como un acrnimo CRUD ) son las cuatro funciones
bsicas de almacenamiento persistente . palabras alternativas
se utilizan a veces en la definicin de las cuatro funciones
bsicas de ABM , recuperar en lugar de lectura , modificar en
lugar de la actualizacin , o destruir en lugar
de borrar . ABM tambin se utiliza a veces para describir la
interfaz de usuario convenciones que facilitan la visualizacin,
bsqueda, y el cambio de la informacin ; usando a menudo
basados en computadoras formas y reportes . El trmino fue
popularizado por primera probable James Martin en su libro de
1983 La gestin del entorno de datos-base . El acrnimo se
puede extender a CRUDL para cubrir la lista de grandes
conjuntos de datos que aportan complejidad adicional,
como la paginacin cuando los conjuntos de datos son
demasiado grandes para sostener fcilmente en la memoria.
Otras variaciones de CRUD incluyen pan (Navegar, leer, editar,
aadir, borrar), MADS (modificar, aadir, borrar, mostrar) y Dave
(borrar, aadir, ver, editar).

Aplicaciones de bases de datos


El acrnimo CRUD se refiere a todas las funciones principales
que se implementan en bases de datos
relacionales aplicaciones . Cada letra de la sigla puede asignar
a un estndar SQL declaracin, mtodo HTTP (esto normalmente
se utiliza para construir las API REST [5] ) o DDS operacin:

Operacin SQL HTTP DDS

Crear INSERTAR PUT / POSTAL escribir

Leer SELECCIONAR OBTENER leer y / o


(Recuperar) tome

Actualizacin ACTUALIZAR PUT / POSTAL / PARCHE escribir


(Modificar)

Eliminar BORRAR BORRAR disponer


(destruir)

La comparacin de las operaciones CRUD base de datos


orientados a HTTP mtodos tiene algunos defectos. En sentido
estricto, tanto PUT y POST puede crear recursos; La diferencia
clave es que la POST se deja para el servidor para decidir en
qu URI para hacer que el nuevo recurso disponible, en tanto
PUT dicta lo URI de usar; URI son, por supuesto, un concepto que
en realidad no se alinea con CRUD. El punto significativo sobre
PUT es que va a sustituir a cualquier recurso de la URI se refiere al
anteriormente con una nueva versin, por lo tanto, el mtodo
PUT se encuentra a la actualizacin tambin. PUT es una
operacin "reemplazar", que se podra argumentar que no es
'actualizar'.
Aunque una base de datos relacional proporciona un
comn capa de persistencia en aplicaciones de software,
existen numerosas otras capas de persistencia. Funcionalidad de
CRUD puede implementarse con una base de datos de objeto ,
una base de datos XML , archivos de texto plano , formatos de
archivos personalizados, cinta o tarjeta, por ejemplo.

Interfaz de usuario
ABM tambin es relevante a nivel de interfaz de usuario de la
mayora de las aplicaciones. Por ejemplo, en la libreta de
direcciones de software, la unidad bsica de almacenamiento
es una persona de contacto de entrada . Como mnimo, el
software debe permitir que el usuario

Crear o aadir nuevas entradas


Leer, recuperar, buscar o ver las entradas existentes
Actualizar o editar entradas existentes
Eliminar / desactivar / eliminar entradas existentes
Sin al menos estas cuatro operaciones, el software no puede
considerarse completa. Debido a que estas operaciones son tan
fundamentales, que son a menudo descritos y documentados
en una sola partida integral, como "gestin de contactos",
"gestin de contenidos" o "el mantenimiento de contactos" (o
"gestin de documentos" en general, en funcin de la unidad
de almacenamiento bsico para la aplicacin particular).

En informtica, CRUD es el acrnimo de "Crear, Leer, Actualizar y


Borrar" (del original en ingls: Create, Read, Update and Delete),
que se usa para referirse a las funciones bsicas en bases de
datos o la capa de persistencia en un software.
En algunos lugares, se utilizan las siglas ABM para lo mismo ("Alta,
Baja y Modificacin"), obviando la operacin de "obtener"; el
acrnimo ABC para "Altas, Bajas y Cambios"; ABML siendo la
ltima letra (L) de "listar, listado o lectura"; ABMC siendo la 'C' de
"Consulta"; o bien CLAB que sera la traduccin literal del
acrnimo ("Crear, Leer, Actualizar y Borrar").
Tambin es usado el ABCDEF: "Agregar, Buscar, Cambiar,
Desplegar (listar), Eliminar, Fichar (Ficha, cdula o Reporte de un
registro)".

Guardar y Crear Estructuras en un archivo


a) Crear:

1 #include<iostream>
2 using namespace std;
3 struct contacto{
4 int edad;
5 int numero;
6 char nombre[30];
7 };
8 int main()
9 {
10struct contacto Amigo;
11cout << "Ingrese Nombre: ";
12cin >> Amigo.nombre;
13 cout << "Ingrese Edad: ";
14 cin >> Amigo.edad;
15 cout << "Ingrese Numero: ";
16 cin >> Amigo.numero;
17cout << "\nNombre: " << Amigo.nombre << "\nEdad: " << Amigo.edad << "\nNumero de Telefono: " << Amigo.numero << endl;
18 return 0;
19}
b) Guardar:

Para empezar, la estructura carrera contiene datos de texto y


binarios (numricos), por lo que no podrs almacenarlos en un
fichero de texto normal, a no ser que los conviertas.
Eso se hace, efectivamente, usando la funcin fprintf, pero lo
ests haciendo mal.
int fprintf(FILE *stream, const char *formato, ...);
El primer argumento es un fichero, el segundo es una cadena
de formato, y a continuacin van los valores para rellenar la
cadena de formato.
Adems para almacenar 100 valores necesitars una llamada
a fprintf para cada valor.
Podra ser algo as:
int x;
for(x=0; x < 100; x++) {
fprintf(o, "%s %s %d %d %d", C[x].Clave, C[x].Nombre, C[x].Plan,
C[x].Semestres,
C[x].Creditos);
}

Por otra parte, por los parmetros que usas en tu ejemplo,


sospecho que lo que quieres es usar un fichero binario, y
almacenar y leer los datos todos juntos.
En ese caso, necesitas crear un fichero binario. Al menos, en
Windows es necesario usar la letra 'b' al hacer esto:
o = fopen(ofilename, "wb");
Y se usan las funciones fwrite y fread para escribir y leer,
respectivamente.
size_t fwrite(const void *puntero, size_t tamanyo, size_t nmemb,
FILE *stream);
size_t fread(void *puntero, size_t tamanyo, size_t nmemb, FILE
*stream);

La lectura de 100 elementos de C quedara as:


fwrite(C, 100, sizeof(carrera), o);
Guardar en archivo estructura c/memoria reservada con
malloc
Lo que estoy tratando de hacer en general es un archivo
compuesto de una estructura cuyos registros son de largo
variable, para ello, le hago un malloc() mediante puntero, a la
estructura temporal del programa que se ve ah abajo, e ingreso
los datos. El problema surge cuando yo trato de guardar los
datos a archivo, ya que no s si efectivamente se guardaron, lo
anterior se responde al querer intentar revisar el contenido
mediante un programa alternativo.

Este es el programa para guardar los datos:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct stCrimeArchive {
char id_student[10];
int id_document;
char judgement[30];
int id_crime;
char date[12];
char id_police[12];
};

int main()
{
struct stCrimeArchive *regi;
FILE *filea;
filea = fopen("crimearchives.dat", "r+b");
if(!filea)
filea = fopen("crimearchives.dat", "w+b");

int i;
char num[6];
regi = (struct stCrimeArchive*)malloc (sizeof(struct stCrimeArchive));

printf("ID DOCUMENT: ");


fgets(num, 6, stdin);
regi->id_document= atoi(num);

printf("ID STUDENT: ");


fgets(regi->id_student, 30, stdin);
for(i = strlen(regi->id_student)-1; i && regi->id_student[i] < ' '; i--)
regi->id_student[i] = 0;

printf("CRIME CODE: ");


fgets(num, 6, stdin);
regi->id_crime = atoi(num);

printf("DATE OF THE CRIME: ");


fgets(regi->date, 30, stdin);
for(i = strlen(regi->date)-1; i && regi->date[i] < ' '; i--)
regi->date[i] = 0;

printf("ID POLICE: ");


fgets(regi->id_police, 30, stdin);
for(i = strlen(regi->id_police)-1; i && regi->id_police[i] < ' '; i--)
regi->id_police[i] = 0;

printf("JUDGEMENT: ");
fgets(regi->judgement, 30, stdin);
for(i = strlen(regi->judgement)-1; i && regi->judgement[i] < ' '; i--)
regi->judgement[i] = 0;

fseek(filea, 0, SEEK_END);
fwrite(&regi, sizeof(*regi), 1, filea);

free(regi);
fclose(filea);
}
Y este es el programa para querer revisar los datos :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct stCrimeArchive {
char id_student[10];
int id_document;
char judgement[30];
int id_crime;
char date[12];
char id_police[12];
};

int main()
{
struct stCrimeArchive *regi;
// regi = (struct stCrimeArchive*)malloc (sizeof(struct stCrimeArchive));
FILE *filea;
filea = fopen("crimearchives.dat", "r+b");
if(!filea)
filea = fopen("crimearchives.dat", "w+b");
rewind(filea);
while (fread(&regi, sizeof(struct stCrimeArchive), 1, filea))
printf("%2d %-11s %-11s %8d %-13s %-14s\n", regi->id_document, regi-
>id_police, regi->date, regi->id_crime, regi->id_student, regi->judgement);
fclose(filea);
}
Libreras y Otros comandos y tablas de Dev C++.

Palabras reservadas en lenguaje C


Las palabras reservadas tienen un significado especial
para el compilador y representan una instruccin propia
de su lenguaje, no se pueden utilizar para identificar
variables y se escriben siempre en minsculas.

Palabras auto bool break case catch


reservadas
en lenguaje
C asm
char class const const_cast continue default
delete do double dynamic_c else enum
ast
explicit extern false float for friend
goto if inline int long mutable
namespace new operator private protected public
register reinterpret return short signed sizeof
_cast
static static_cast struct switch template This
throw true try typedef typeid Typename
union unsigned using while void Volatile

Libreras en lenguaje C
Las libreras o archivos de cabecera en lenguaje C, son los que
contienen o almacenan funciones que realizan operaciones y
clculos de uso frecuente y son parte de cada compilador. El
programador debe invocar todos aquellos archivos o
bibliotecas que necesite. A continuacin algunas libreras ms
comunes en el lenguaje C.

#include<stdio.h>: contiene los prototipos de las funciones,


macros, y tipos para manipular datos de entrada y salida.
Archivos que utiliza la librera <stdio.h>
clearerr fclose feof ferror fflush fgetc fgetpos
fgets fopen formato fprintf fputc fputs fread
freopen fscanf fseek fsetpos ftell fwrite getc
getchar gets perror printf putc putchar puts
remove rename rewind scanf setbuf setybuf sprintf
sscanf tmpfile tmpnam ungetc vfprintf vprintf vsprintf

#include<stdlib.h>: contiene tipos, macros y funciones para la


conversin numrica, generacin de nmeros aleatorios,
bsquedas y ordenacin, gestin de memoria y tareas similares.

Archivos que utiliza la librera < stdlib.h >


abort abs atexit atof atoi atol bsearch abort
calloc div exit free getenv labs ldiv calloc
malloc mblen mbstow mbtowc qsort rand Realloc malloc
cs
srand strtod strtol strtoul system wctomb srand
En la librera #include<stdlib.h>, existe la funcin system(color f1)
que se utiliza mucho para cambiar el color de fondo y el de color de
la fuente.

Colores de fondo y fuente que utiliza la librera <stdlib.h>


Colores de fondo Colores de fuente
0 negro a verde claro
1 azul b aguamarina claro
2 verde c rojo claro
3 aguamarina d purpura claro
4 rojo e amarillo claro
5 purpura f blanco brillante
6 amarillo
7 blanco
8 gris
9 azul claro
Con la funcin system(pause) se utiliza para pausar un programa
una vez est corriendo y reemplaza a la funcin getch() de la
librera #include<conio.h>. Ambas hacen lo mismo y se colocan la
final antes de cerrar el programa principal.

#include<string.h>: contiene los prototipos de las funciones y macros


de clasificacin de caracteres.

Archivos que utiliza la librera < string.h >


memchr memcm memcpy memmo memset strcat strchr memchr
p ve
strcmp strcoll strcpy strcspn strerror strlen strmcat strcmp
strmcmp strmcpy strpbrk strrchr strspn strstr strtok strmcmp
strxfrm strxfrm

#include<ctype.h>: contiene varias funciones para comprobacin


de tipos y transformacin de caracteres.

toupper instruccin que convierte a mayscula por ejemplo [ s->S ]

Archivos que utiliza la librera < ctype.h >


tolower toupper

#include<math.h>: contiene los prototipos de las funciones y otras


definiciones para el uso y manipulacin de funciones matemticas.

Archivos que utiliza la librera < math.h >


Acos Asin atan atan2 ceil cos cosh
Exp Fabs floor fmod frexp ldexp log
log10 modf pow sin sinh sqrt tan
tanh

#include<time.h>: contiene los prototipos de las funciones, macros, y


tipos para manipular la hora y la fecha del sistema.

Archivos que utiliza la librera < time.h >


asctime clock ctime difftime Gmtime localtime mktime
strftime time

#include<conio.h>: contiene los prototipos de las funciones, macros,


y constantes para preparar y manipular la consola en modo texto
en el entorno de MS-DOS.

Archivos que utiliza la librera < conio.h >


cgets clreol clrscr cprintf cputs cscanf delline
getche getpass gettext gettextinfo gotoxy highvideo inport
insline getch lowvideo movetext normvideo outport putch
puttext setcursorty textattr textbackgro textcolor textmode ungetch
pe und

Cadenas de formato: las cadenas de formatos como printf, permite


dar formato especfico a la salida y a cada smbolo cuando le
antecede un %. Un dato es la expresin general que describe los
objetos con los cuales opera una computadora. Los tipos de datos
ms comunes son: char, int, float, long, short, doubl, void.
%d,% i entero decimal con signo, (eje: 38)
%o entero octal sin signo, (eje: o43)
%u entero decimal sin signo, (eje: 47)
%x entero hexadecimal sin signo (en
minsculas) , (eje: 0x32)
%X entero hexadecimal sin signo (en
maysculas) , (eje: 0X32)
%f Coma flotante en la forma [-]dddd.dddd
, (eje: -3.2, 56.896)
%e Coma flotante en la forma [-]d.dddd
e[+/-]ddd, (eje: 2.3e4, 4.879e-4)
%g Coma flotante segn el valor
%E Como e pero en maysculas, (eje:
2.3E4, 4.879E-4)
%G Como g pero en maysculas
%c un carcter, (eje: a, A)
%s cadena de caracteres terminada en '\0' o
null, (eje: juan, JUAN)
%5s primeros cinco caracteres o delimitador
%8.2f tamao total de 8 dgitos, con dos
decimales

Secuencias de escape: las secuencias de escape son constantes


especiales que se diferencian por llevar adelante una barra
invertida (\) y cumplen una funcin especfica, Las ms usadas son:
\a Alerta
\b Espacio atrs
\f Salto de pgina
\n Salto de lnea
\r Retorno de
carro
\t Tabulacin
horizontal
\v Tabulacin
vertical
\\ Barra invertida
\' Comilla simple
\" Comillas
dobles

Operadores relacionales: los operadores relacionales, permiten


comparar 2 valores arrojando un resultado basado en si la
comparacin es verdadera o falsa. Si la comparacin es falsa el
resultado es 0, si es verdadera el resultado es 1.

Operadores lgicos: los operadores lgicos, dan como resultado


cierto o falso, siguiendo las reglas de la lgica formal. Estos
operadores se combinan con operadores relacionales o
comparacin.
Operadores Ejemplo Operadores Ejemplo
relacionales lgicos
< 1 menor 2 &&
(3>1)&&(2>7)
salida no = 0
> 1 mayor 2
salida si = 1
<= 1 menor o igual 2 !
Salida si = 1
>= 1 mayor o igual 2
== 1 igual al 2
!= 1 diferente al 2

Operadores unarios: los operadores unarios admiten un nico


argumento y cuentan con operador de cambio de signo (-) y
tambin con los de incremento (++) y decremento (- -) y son una
forma fcil de sumar o restar 1 a una variable.
variable ++ postincreme
nto
++variable preincremen
to
variable - - postdecreme
nto
- -variable predecreme
nto
Operadores aritmticos: los operadores aritmticos se utilizan para
hacer clculos aritmticos. Ejemplos:

Divisin entera
19%6=1
19/6=3
15/2=7
15%2=1
Divisin real
10/3=3.33333

Operadores aritmticos:
nombre funcin
Multiplicacin *
Divisin /
Cdigo ascii: la siguiente tabla muestra el cdigo ascii imprimibles y
no imprimibles.

Ejemplo de nmeros aleatorios en Dev C++


Por ejemplo, si queremos generar 5 nmeros aleatorios uno
detrs de otro:
#include <stdlib.h>
#include <stdio.h>

int main()
{
int i;
for(i=0; i<5; i++)
{
printf("%d\n", rand());
}
return 0;
}
Notars que los resultados son bastante diferentes, pero si
volvemos a ejecutar el programa, tendremos la misma serie de
nmeros.

Para cambiar el comportamiento del generador de nmeros


aleatorios, podemos cambiar la variable sobre la que se basa
para realizar los clculos. A esta se le llama seed o semilla.
Esta semilla puede modificarse con la funcin srand():
srand(valor de la semilla)

Necesitamos elegir un nmero que no podamos predecir


fcilmente y que vare de un instante a otro. Por ejemplo,
puedes usar el nmero de ciclos utilizados por tu procesador
desde el inicio. Puede ser obtenido, en procesadores x86 (Intel,
Amd, etc.), con el comando ensamblador rdtsc. La escritura de
una funcin rdtsc() podr facilitarte las cosas, la sintaxis siguiente
funciona con GCC en Linux y la puedes encontrar con dev
C++ en Windows:
#include <stdlib.h>
#include <stdio.h>

int rdtsc()
{
__asm__ __volatile__("rdtsc");
}

int main()
{
int i;
for(i=0; i<5; i++)
{
srand(rdtsc());
printf("%d\n", rand());
}
return 0;
}

Con este cdigo, generars nmeros aleatorios ms eficaces.

Nota: Esta solucin funciona nicamente con los procesadores x86.

Tambin evita activar optimizaciones en el compilador (opcin-O1,-


O2-O3, etc.) cuando utilices la funcin rdtsc.

REFERENCIAS:

blog.utp.edu.co/jnsanchez/files/2011/03/Palabras-reservadas-
librerias-datos-etc.pdf
http://blog.martincruz.me/2012/09/obtener-numeros-aleatorios-
en-c-rand.html
https://es.wikipedia.org/wiki/CRUD

www.bloodshed.net

http://www.uhu.es/javier.fernandez/El%20Entorno%20DevC.pdf

You might also like