Sie sind auf Seite 1von 13

Colegio Nacional de Educacin Profesional Tcnica

J Refugio Esparza Reyes

Programacin Orientada a Objetos (POO)


LI. Yolanda Catalina Navarrete Beas

Alumna Estefana Romo Castillo


Grupo 410

Mircoles 15 de marzo de 2017, Aguascalientes. Ags


INDICE

ndice .1

GENERAR NUMEROS ALEATORIOS rand(). 2

LIBRERIAS DE DEV c++. 2-3


LIBRERIASTRING.. 3-4

FNCIONES EN DEV PARA EL MANEJO DE


CADENAS.....4

ESTRUCTURAS.. 4-5

ARCHIVOS SECUENCIALES... 5-6

ARCHIVOS DIRECTOS6-7

Bibliografias..8
GENERAR NUMEROS ALEATORIOS rand()

Al usar la funcin rand() de la biblioteca estndar en el lenguaje, se obtienen resultados


decepcionantes, y casi siempre los mismos.

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()

As que lo primero que tenemos que hacer es incluir la librera:


#include<stdlib.h>

Necesitamos esta librera para usar la funcin time()


#include<time.h>

Luego inicializar los nmeros aleatorios incluyendo esto:


srand(time(NULL));

Luego guardar el nmero aleatorio en alguna parte:


num = rand();

Para ajustar el rango de nmero aleatorios podemos hacer varias cosas.

- Nmero aleatorios entre 0 y 50:


num=rand()%51;

- Nmero aleatorios entre 1 y 100:


num=1+rand()%(101-1);

- Nmero aleatorios entre 250 y 420:


num=250+rand()%(421-250);

De forma general es:


variable = limite_inferior + rand() % (limite_superior +1 - limite_inferior) ;

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.

Libreras en DEV C++

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

Iostream: es utilizado para operaciones de entrada/salida. Su nombre es


un acrnimo de Input/Output Stream. El flujo de entrada y salida de datos

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.

Memory: Utilidades relativas a la gestin de memoria incluyendo asignadores y punteros inteligentes.

New: Manejo de memoria dinmica

Numeric: Parte de la librera numrica de la STL relativa a operaciones numricas.

Ostream: Algoritmos estndar para los flujos de salida

Queve: Parte de la STL relativa a contenedores tipo queve (Colas de Objeto)

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.

Typcinto: Mecanismo de identificacin de tipo en tiempo de ejecucin.

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];

Ahora podemos llenar nuestra cadena..

str ="Soy una cadena";

y mostrarla

cout << str;

FNCIONES EN DEV PARA EL MANEJO DE CADENAS

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.

Para definir una cadena es la siguiente:

char <identificador> [<longitud mxima>];

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.

La estructura mnima de informacin manipulable en un sistema de computacin es el BIT el cual se


agrupa normalmente en bloques de 8 para formar un BYTE. Cabe mencionar que los BITS no son
direccionables directamente, sino a travs de compuertas AND, OR, NOT, XOR, las cuales en C y C++
se escriben como &, |, ~ y ^, conocidos como "Bitwise operators" u "Operadores de manipulacin de
bits".

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:

Tipo del microprocesador


El compilador
Sin embargo, en la actualidad, la mayoria de compiladores de C++ soportan los siguientes tipos con la
longitud indicada:

Estructuras bsicas en Dev c++


Tipos primitivos
Nombre Nombre Longitud Procesador 64
comn C bits
BYTE char 8 bits 8 bits
WORD short 16 bits 16 bits
DWORD int 32 bits 32 bits
DWORD long 32 bits 64 bits
DWORD float 32 bits 32 bits
QWORD double 64 bits 64 bits
TWORD long 80 bits 128 bits
double

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

En C, C++ la sintaxis para declarar variables es:

tipo id1 [, id2 ...] ;

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 identificador[ [tamao] ] [ = { lista de inicializacin } ] ;

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.

identificador se refiere al nombre que se le dar a la matriz.

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' };

Acceso a los miembros de una matriz de datos:


En orden de acceder a los miembros de una matriz se debe indicar el nombre de la matriz seguido de
dos corchetes, dentro de los cuales se debe especificar el ndice del elemento deseado. Se debe
aclarar que los ndices son nmeros o expresiones enteras y que en C, C++ estos tienen un rango
permitido de 0 a T-1 ( T = tamao de la matriz ).

Estructuras compuestas (struct, union, class)


Con base en los tipos bsicos mostrados arriba, se pueden crear nuevos tipos con estructuras
compuestas por uno o ms de uno de los tipos mencionados. En C, C++ en orden de crear nuevas
estructuras se emplean la palabras reservadas struct, union y class.

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.

Sintaxis general: struct

struct [ <nombre tipo de estructura > ] {


[ <tipo> <nombre-variable[, nombre-variable, ...]> ] ;
[ <tipo> <nombre-variable[, nombre-variable, ...]> ] ;
...
} [ <variables de estructura> ]

struct: Sintaxis ( variacin uno, estructura annima )


De acuerdo con la sintaxis general de la orden struct es posible crear estructuras de datos annimas.
Solamente hay que tener en cuenta que en una declaracin annima se debe definir al menos una
variable al final de la declaracin. Por ejemplo, con el siguiente fragmento de cdigo:
struct { int a, b; } p1;

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:

struct { int a, b; } p2;

Por supuesto, en una misma lnea de instruccin podemos definir ms de una variable. Ejemplo:

struct { int a, b; } p1, p2;

Entonces, para crear nuevos tipos con struct deberemos de modificar la sintaxis mostrada en los
ejemplos anteriores.

Sintaxis: struct ( variacin dos, estructura con nombre )


Observe que, la sintaxis para declarar estructuras con nombre es bastante parecida a la sintaxis para
declarar estructuras annimas; salvo que en una declaracin de estructura con nombre se debe
especificar el nombre deseado para la misma. Adems, en una declaracin de estructura con nombre
la o las variables definidas al final de la misma son opcionales.
Ejemplos:

struct pareja { int a, b; } p1;

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.

/* declaracin de estructura tiempo */


struct tiempo { int hora, minuto, segundo; };

/* declaracin de variables de tipo tiempo */


struct tiempo t1, 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;

printf ("%i\n", t1.hora);


cout << t1.minuto << endl;

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.

struct pareja { int a, b ; };


struct pareja2 { struct pareja X; int c; } P3;

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:

printf( "%i\n", P3.X.a );

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.

Las modificaciones de datos en un 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.

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

Das könnte Ihnen auch gefallen