Beruflich Dokumente
Kultur Dokumente
ndice .1
ESTRUCTURAS.. 4-5
ARCHIVOS DIRECTOS6-7
Bibliografias..8
GENERAR NUMEROS ALEATORIOS rand()
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()
LIBRERIAS DE DEVC++
Son un tipo de archivos que se puede importar o incluir en un programa. Ya que los archivos
contienen las especificaciones de diferentes funcionalidades ya construidas y utilizables para poder
agregar un nuevo teclado.
Para la declarar las libreras se debe hacer principalmente de todo nuestro cdigo, indicarle al
compilador que libreras usar, para que a si l pueda saber qu trminos estarn correctos en la
escritura de nuestro cdigo.
Fstream: Permite la manipulacin de archivos desde el programador, tanto leer como escribir en ellos.
Iosfud: Contienen declaraciones adelantadas de todas las plantillas de flujo y sus typedets estndar.
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.
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: Parte de la STL relativa a los contenedores tipo vector, una generacin de las matrices
unidimensionales.
LIBRERA String
string.h es una libreria que contiene funciones que nos facilitan la vida al trabajar
con cadenas o strings. Ya que una cadena es un conjunto de caracteres que almacenamos en una
variable.
Pero tambin debemos saber que char es un tipo de dato para almacenar un carcter, un arreglo
lineal de caracteres es una cadena:
char str[100];
y mostrarla
Una cadena es un conjunto de caracteres, o valores de tipo char, terminados con el carcter nulo, es
decir el valor numrico 0. Internamente, en el ordenador, se almacenan en posiciones consecutivas de
memoria. Este tipo de estructuras recibe un tratamiento muy especial, ya que es de gran utilidad y su
uso es continuo.
ESTRUCTURAS
Las estructuras de datos se emplean principalmente organizar los datos contenidos dentro de la
memoria del ordenador. Las estructuras comienzan desde el momento mismo en que usamos en
nuestros programas variables (char, short, int, float, etc). A la memoria del ordenador se le puede
considerar como un gran bloque compuesto por una serie de BYTES dispuestos secuencialmente uno
detrs de otro. por ejemplo, si un ordenador posee una memoria de 128MB (128 megas) entonces se
le puede leer o escribir desde el BYTE 0 hasta el BYTE 128MB - 1 ( 0000000H .. 7FFFFFFH ).
La idea de ver la memoria como un serie de bytes es buena, sin embargo no es suficiente ya que en la
misma podemos guardar nmeros, cadenas de caracteres, funciones, objetos, etc. de tal manera que
surge la necesidad de establecer los mecanismos adecuados para dar cuenta de la forma, tamao y
objetivo de los datos almacenados. Segn el tipo de microprocesador, estos tienen la capacidad para
manipular o direccionar estructuras compuestas por uno, dos, cuatro, etc, bytes; de donde se derivan
los tipos que comunmente se conocen como: BYTE, WORD, DWORD, QWORD y TWORD.
En C,C++ existe una serie de estructuras bsicas o tipos primitivos, los cuales pueden ser usados por
el programador para declarar variables, y tambin son el fundamento sobre el cual se crean
estructuras complejas. El tamao de los tipos primitivos no es estndar ya que los mismos dependen
de factores tales como:
Nota: en el lenguaje C,C++ existe el operador sizeof(), con el cual se puede obtener el tamao
(nmero de bytes) ocupados por un tipo especfico. Por ejemplo, sizeof(int) regresa el nmero de
bytes ocupados por los datos de tipo int.
variables
donde, tipo se refiere a uno de los tipos mostrados en la tabla anterior; id1 es el nombre con el cual se
identificar a la variable. Observe que si se quiere declarar ms de una variable en una lnea de
instruccin, las mismas deben separarse por medio de una coma.
Ejemplos:
char c; // La variable c es una variable char
int i; // La variable i es una variable int
float f; // La variable f es una variable float
int x,y,z; // Las variables x,y,z son todas variables int, y declaradas a la vez
De acuerdo con la tabla anterior y segn las instrucciones anteriores, con la primera, o sea ( char c;),
se le est indicando al ordenador que reserve en la memoria un espacio de tipo char (8 bits) y que el
mismo ser identificado bajo el nombre de c. La segunda instruccin ( int i;) le indica al ordenador que
reserve en la memoria un espacio de tipo int (16 bits) y que el mismo ser identificado bajo el nombre
de i. Luego, la instruccin ( float f;) le indica al ordenador que reserve en la memoria un espacio de tipo
float (32 bits) y que el mismo ser identificado bajo el nombre de f. Por ltimo, se le indica al
compilador que reserve espacio para otras tres variables enteras identificadas como: x, y, z. As, se
puede dar cuenta cmo los tipos primitivos sirven con el propsito de estructurar los datos dentro de la
memoria y con la idea de referirnos a los mismos mediante nombres usamos identificadores de
variables.
Matrices o Arreglos
El tipo de matriz puede ser cualquiera, sin embargo cada componente tiene que ser del mismo tipo. En
C estndar solamente da soporte para matrices estticas, mientras que con C++ se pueden crear
matrices dinmicas pudiendo usar la librera estndar de plantillas (STL).
Matrices estticas
Una matriz esttica es una estructura cuyo tamao es determinado en tiempo de compilacin, es decir,
una vez establecido el tamao de la matriz sta no podr cambiarse durante el tiempo de ejecucin.
En C, C++ para declarar un arreglo esttico de datos se emplea la sintaxis:
tipo se refiere al tipo de datos que contendr la matriz. El tipo puede ser cualquiera de los tipos
estndar (char, int, float, etc.) o un tipo definido por el usuario. Es ms, el tipo de la matriz puede
ser de una estructura creada con: struct, union y class.
tamao es opcional e indica el nmero de elementos que contendr la matriz. Si una matriz se
declara sin tamao, la misma no podr contener elemento alguno a menos que en la declaracin
se emplee una lista de inicializacin.
lista de inicializacin es opcional y se usa para establecer valores para cada uno de los
componentes de la matriz. Si la matriz es declarada con un tamao especifco, el nmero de
valores inicializados no podr ser mayor a dicho tamao.
Ejemplos:
int intA[5];
long longA[5] = { 1, 2, 3, 4, 5 };
char charA[] = { 'a', 'b', 'c' };
struct: esta orden se emplea para agrupar variables de tipos iguales o diferentes en un solo
registro, con la misma se pueden crear estructuras annimas, estructuras con nombre, y un tipo
especial de estructura conocida como bit-fields ( banderas o campos de bits ).
union: una union es similar a una struct, salvo que en una estructura creada con union los campos
o variables comparten una direccin de almacenamiento comn.
class: una clase es una estructura en donde se agrupan variables y funciones, la misma es usada
en Programacin Orientada al Objeto. Las clases no son soportadas por el C estndar.
se declara y define la variable estructurada p1, misma que se compone por los miembros a y b; ambos
del tipo int. Ahora bien, la sintaxis mostrada arriba no es tan comn ni conveniente, ya que con la
misma solamente se esta creando una variable estructurada pero no un nuevo tipo. Es decir, si
desearamos tener otra variable que tuviera las mismas caracteristicas que posee la variable p1,
necesitariamos escribir exactamente la misma instruccin, salvo que cambiando el nombre de la
variable. Por ejemplo:
Por supuesto, en una misma lnea de instruccin podemos definir ms de una variable. Ejemplo:
Entonces, para crear nuevos tipos con struct deberemos de modificar la sintaxis mostrada en los
ejemplos anteriores.
En el fragmento de cdigo anterior se declara la estructura identificada como pareja, misma que se
compone de los miembros a y b, ambos de tipo int. En el mismo ejemplo, se define la variable p1; la
cual es una variable estructurada de tipo pareja.
Una vez que una estructura con nombre ha sido creada, la misma puede ser usada para declarar
cualquier nmero de variables. Por ejemplo, en el siguiente fragmento de cdigo se crea la estructura
tiempo compuesta por los miembros hora, minuto y segundo; todos del tipo int. En el mismo ejemplo,
se declaran las variables t1 y t2.
Nota: en C++ puede obviarse la palabra struct a la hora de declarar variables. As, en C++ la lnea de
instrucin struct tiempo t1, t2; ( del ejemplo anterior) puede escibirse como: tiempo t1, t2;
Acceso a los miembros de una estructura
En orden de poder leer o escribir uno de los miembros de una variable estructurada, se debe usar el
operador de acceso ( . ); o sea, el nombre de la variable seguida por un punto seguido por el nombre
del miembro o componente deseado de la estructura. Por ejemplo, para acceder a los miembros de la
variable t1 (mostrada arriba) podemos hacerlo de la siguiente manera:
t1.hora = 12;
t1.minuto = 0;
t1.segundo = 0;
Estructuras anidadas
Los miembros de una estructura pueden ser ellos mismos, otra estructura previamente identificada, o
bien una estructura annima. Por ejemplo, en el siguiente fragmento de cdigo, se crean las
estructuras pareja y pareja2. Obsrvese cmo dentro de los miembros de pareja2, se declara el
miembro X, que a su vez es una estructura del tipo pareja. Luego, las variables declaradas a raz de la
estructura pareja2 poseern los miembros variables a y b heredados de pareja, y c.
Ahora bien, para acceder a los miembros de una estructura dentro de otra estructura se emplea el
mismo mecanismo de acceso (el punto). Por ejemplo, para desplegar el miembro a de la
variable P3 declarada en el ejemplo anterior, lo haremos ms o menos as:
ARCHIVOS SECUENCIALES
Como su nombre lo indica, en este tipo de archivos los registros se graban en secuencia o
consecutivamente y deben acercarse de ese mismo modo, es decir, conforme se van insertando
nuevos registros, stos se almacenan al final del ltimo registro almacenado; por lo tanto, cuando se
desea consultar un registro almacenado es necesario recorrer completamente el archivo leyendo cada
registro y comparndolo con el que se busca. En este tipo de archivo se utiliza una marca invisible que
el sistema operativo coloca al final de los archivos: EOF (End of File), la cual sirve para identificar
dnde termina el archivo.
En esta seccin se analizar la manera de disear rutinas que manipulen registros de productos o
artculos en un archivo secuencial. Como su nombre lo indica, en este tipo de archivo se hace un
recorrido secuencial para localizar la direccin del registro solicitado, es decir, se lee registro por
registro hasta llegar al deseado.
Las Altas Secuenciales Aqu se presenta una rutina que inserta registros de productos en un archivo
secuencial. Se considera un nmero de producto (campo no_prod) que servir como referencia para
identificarlo y diferenciarlo de otros productos y no se permite que se graben dos productos diferentes
con el mismo nmero, por lo que es necesario realizar un recorrido secuencial completo del archivo
para asegurarse que no haya duplicados. La primera ocasin que se intente insertar registros en un
archivo, ste debe crearse; sin embargo debe cuidarse no crear el archivo cada vez que se invoque
esta rutina porque debe tenerse presente que si se crea un archivo existente, se pierde su contenido
anterior.
ARCHIVOS DIRECTOS
En esta seccin se analizar la manera de disear rutinas que manipulen registros de productos o
artculos en un archivo directo. A diferencia del archivo secuencial en el que se hace un recorrido
secuencial para localizar la direccin del registro solicitado, en el archivo de acceso directo, se
posiciona el apuntador del archivo directamente en el registro solicitado usando la funcin Seek. Sin
embargo es muy importante destacar que esta funcin permite posicionar el apuntador interno del
archivo en una direccin lgica vlida; esto es, que marcar error al intentar posicionarse fuera del
archivo mediante una direccin lgica que exceda el tamao del mismo. P. ejem. En la rutina de altas
directas, debe asegurarse la existencia de la direccin en la que se desea insertar el nuevo registro y,
en caso, que exceda el lmite del archivo, deben incrustarse registros vacos antes del nuevo registro
Altas Directas Aqu se presenta una rutina que inserta registros de productos en un archivo directo. Se
tomar el mismo ejemplo del registro de producto que se us en el archivo secuencial. En este caso se
nombrar el archivo como PRODUCTO.DIR La primera ocasin que se intente insertar registros en
un archivo, ste debe crearse; sin embargo debe cuidarse no crear el archivo cada vez que se invoque
esta rutina porque debe tenerse presente que si se crea un archivo existente, se pierde su contenido
anterior. Tambin debe considerarse no intentar reposicionar el apuntador del archivo fuera del mismo
(no exceder el tamao del archivo).
Las modificaciones directas Al igual que en el archivo secuencial, la forma de modificar el contenido de
los campos de registros de un archivo, depende mucho de la rutina de consulta, ya que es necesario
localizar previamente el registro que se desea modificar, capturar los nuevos valores y posteriormente
grabar el registro completo en la misma posicin que se encontraba. Esto ltimo es muy importante
porque recuerde que cuando se termina de leer un registro del archivo, el apuntador se posiciona al
inicio del siguiente registro, por lo que, antes de grabar el registro modificado, es necesario
reposicionar el apuntador del archivo en la direccin correcta.
BIBLIOGRAFIAS
http://blog.martincruz.me/2012/09/obtener-numeros-aleatorios-en-c-rand.html
http://blog.utp.edu.co/jnsanchez/files/2011/03/Palabras-reservadas-librerias-datos-etc.pdf
http://www.alciro.org/alciro/Programacion-cpp-Builder_12/funciones-cadenas-caracteres-
string.h_448.htm
https://eperdomo89.wordpress.com/2011/07/07/dev-c-clase21-%E2%80%93-manipulacion-de-
cadenas/
http://c.conclase.net/curso/?cap=008
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Estructuras
http://www.programacionenc.net/index.php?option=com_content&view=article&id=69:manejo-de-
archivos-en-c&catid=37:programacion-cc&Itemid=55