Sie sind auf Seite 1von 13

COLEGIO NACIONAL DE EDUCACION PROFESIONAL

TECNICA.

PLANTEL AGUASCALIENTES I

Mdulo: Programacin orientada a objetos.

Maestra: L.I. Yolanda Catalina Navarrete Beas.

Nombre del alumno: Laura Mariana Snchez Avils.

Carrera: Informtica. Semestre: IV.

Grupo: 410

Ciclo escolar: Febrero-Julio 2017.

Aguascalientes, Ags, a 16 de marzo de 2017.


INDICE

Generar nmeros aleatorios en DEV C++.

Libreras en DEV C++.

Librera STRING.H.

Funciones manejo de cadena (Cules son las

funciones?).

Estructuras (Struct).

Manejo de archivos (secuenciales y directos)

Fuentes.
GENERAR NUMEROS ALEATORIOS EN DEV C
En C, existe una funcin llamada rand(), que genera nmeros aleatorios. El problema que
tiene esta funcin es que siempre que reinicies el programa, aparecern los mismos
nmeros.
Para evitar esto, hay que darle un nmero semilla, el cual operar como base para la
generacin de la secuencia de nmeros. El problema con esto, es que si le damos un nmero
fijo, volvemos al problema anterior, ya que siempre utilizar la misma base definida y por
ende la secuencia ser la misma.

Entonces, lo que necesitamos es darle un nmero semilla dinmico, esto es, que vaya
cambiando cada vez que ejecutemos el programa.

Sabiendo esto, la funcin que da la semilla a rand() es srand(), que recibe como parmetro
(lo que va entre los parntesis) el nmero semilla, que en este caso, ser la hora del sistema
en segundos. As, a menos que el programa se ejecute 2 o ms veces en menos de un
segundo, los nmeros cambiarn.
La funcin para saber la hora actual del sistema es time(NULL).
Sabiendo esto, vamos al cdigo. Haremos un generador de nmeros aleatorios, donde la
cantidad de estos, la decidir el usuario, ingresando esta cantidad por teclado.

#include<stdio.h> // libreria basica para entrada y salida


#include<stdlib.h> // libreria para el uso de rand()
#include<conio.h> // libreria para el uso de getch()
#include<time.h> // libreria para el uso de time()
void main( )
{
// Declaracion de variables
int numero,cantidad,contador;
int hora = time(NULL);

// Semilla de rand();
srand(hora);

/* Recogemos por teclado la cantidad de


numeros que quiere el usuario */

printf("Ingrese la cantidad de numeros


aleatorios que desea generar\n");
scanf("%d",&cantidad);

/* Generamos un ciclo que se repite la cantidad


de veces indicada. En cada vuelta del ciclo se
genera y se imprime un numero aleatorio. */
for(contador = 0; contador<cantidad; contador++)
{

numero = rand()%100;
printf("%d ", numero);
}
getch(); // genera una pausa en la ejecucion del programa

LIBRERIAS EN DEV C
En C++, se conoce como libreras (o bibliotecas) a cierto tipo de archivos que podemos
importar o incluir en nuestro programa. Estos archivos contienen las especificaciones de
diferentes funcionalidades ya construidas y utilizables que podremos agregar a nuestro
programa, como por ejemplo leer del teclado o mostrar algo por pantalla entre muchas
otras ms.

La declaracin de libreras, tanto en C como en C++, se debe hacer al principio de todo


nuestro cdigo, antes de la declaracin de cualquier funcin o lnea de cdigo, debemos
indicarle al compilador que libreras usar, para el saber que trminos estaran correctos en
la escritura de nuestro cdigo y cules no. La sintaxis es la siguiente: #include <nombre de
la librera>

fstream:
Flujos hacia/desde ficheros. Permite la manipulacin de archivos desde el programar, tanto
leer como escribir en ellos.

iosfwd:
Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estndar.
Por ejemplo ostream.

iostream:
Parte del a STL que contiene los algoritmos estndar, es quiz la ms usada e importante
(aunque no indispensable).

La biblioteca list:
Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas

math:
Contiene los prototipos de las funciones y otras definiciones para el uso y manipulacin de
funciones matemticas.
memory:
Utilidades relativas a la gestin de memoria, incluyendo asignadores y punteros inteligentes
(auto_ptr).

"auto_ptr" es una clase que conforma la librera memory y permite un fcil manejo de
punteros y su destruccin automaticamente.

Biblioteca 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.

queue:
Parte de la STL relativa a contenedores tipo queue (colas de objetos).

Librera stdio:
Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada
y salida.

Librera stdlib:
Contiene los prototipos de las funciones, macros, y tipos 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. Muy til para el fcil uso de las cadenas de
caracteres, pues elimina muchas d elas dificultades que generan los char

typeinfo:
Mecanismo de identificacin de tipos en tiempo de ejecucin

Vector:
Parte de la STL relativa a los contenedores tipo vector; una generalizacin de las matrices
unidimensionales C/C++

forward_list
Esta librera es til para implementar con gran facilidad listas enlazadas simples.

list
Permite implementar listas doblemente enlzadas (listas enlazadas dobles) facilmente.
iterator
Proporciona un conjunto de clases para iterar elementos.

regex
Proporciona fcil acceso al uso de expresiones regulares para la comparacin de patrones.

thread
til para trabajar programacin multihilos y crear mltiples hilos en nuestra aplicacin.

#include <iostream>
#include <string>
#include <math.h>
#include <conio.h>

LIBRERA STRING.H
string.h es una librera de c++ que contiene funciones que nos facilitan la vida al trabajar
con cadenas o strings. Una cadena es un conjunto de caracteres almacenados en una
variable.
Deberamos saber que char es un tipo de dato que almacena un caracter, por lo tanto un
arreglo lineal de caracteres es una cadena:

char str[100];

Ahora podemos llenar nuestra cadena

str ="Soy una cadena";

y mostrarla

cout << str;

Pero recuerden que no podemos hacer nada de esto si no tenemos incluida la librera
string.h. Vamos a ver un programa de ejemplo:

#include
#include
using namespace std;

int main()
{
char esunacadena[100] = "Soy una cadena", esunacopia[100];
strcpy(esunacopia, esunacadena);
strcat(esunacopia, " - copia");
cout << esunacadena << endl << esunacopia;
cin.get();
return 0;
}

NOMBRES DESCRIPCION
Memcpy Copia n bytes entre dos reas de memoria que no debe solaparse
Memmove Copia n bytes entre dos reas de la memoria; al contrario de mempcpy las reas pueden
solaparse
memchr Busca un valor a partir de una direccin de memoria dada y devuelve un puntero a la
primera ocurrencia del valor buscado o NULL si no se encuentra.
memcmp Compara los n primeros caracteres de dos reas de la memoria
memset Sobre escribe un rea de memoria con un patrn de bytes dado
Strcat Aade una cadena al final de otra
strncat Aade los n primeros caracteres en una cadena al final de otra
strchr Localiza un carcter en una cadena, buscando desde el principio
strrchr Localiza un carcter en una cadena, buscando desde el final
strcmp Compara dos cadenas alfabticamente (a!=A)
strncmp Compara los n primeros caracteres de dos cadenas numricamente (a!=A)
strcoll Compara dos cadenas segn la colacin actual (a==A)
strcpy Copia una cadena en otra
strncpy Copia los n primeros caracteres de una cadena en otra
strerror Devuelve la cadena con el mensaje de error correspondiente al nmero de error dado

strlen Devuelve la longitud de una cadena


strspn Devuelve la posicin del primer carcter de una cadena que no coincide con alguno de
los caracteres de otra cadena dada
strpbrk Encuentra la primera ocurrencia de alguno de los caracteres de una cadena dada en otra

strstr Busca una cadena dentro de otra


strtok Parte una cadena en una secuencia de tokens
strxfrm Transforma una cadena en su forma de colacin
strrev Invierte una cadena
FUNCIONES MANEJO DE CADENA (Cules son las funciones?)
Aunque C no incorpora en su definicin operadores para el manejo de cadenas de
caracteres, todo compilador de C proporciona una librera estndar (string.h) con funciones
para facilitar su utilizacin. Destacar algunas de ellas:

strcpy: La funcin strcpy se encuentra en la biblioteca <string.h> y se utiliza para copiar una
cadena de caracteres (fuente) en el lugar que ocupaba otra (destino). Esta copia es
destructiva, o sea, que todos los caracteres que estaban en la cadena destino desaparecen,
aunque la cadena destino fuera ms larga que la cadena fuente .La cadena destino se pone
como primer argumento de la funcin y la cadena fuente como segundo. Vamos a verlo con
un ejemplo.

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

int main()
{
char texto1[]="corta";
char texto2[]="mediana";
char texto3[]="larguisima";

strcpy(texto2,texto1);
printf("%s\n",texto2);
strcpy(texto2,texto3);
printf("%s\n",texto2);
getch();
return 0;
}

strcat: En el programa anterior vimos que la funcin strcpy es desctructiva, pero hay otra
funcin en la librera <string.h> que copia una cadena (fuente) en otra (destino) sin destruir
sta, es decir, que copia una cadena detrs de la otra esta funcin es conocida como strcat.
Vamos a hacer un ejemplo:

#include<stdio.h>
#include<string.h>
int main()
{
char texto1[]="Don Pepito";
char texto2[]=" y ";
char texto3[]="Don Jose";printf("%s\n",texto1);

strcat(texto1,texto2);
printf("%s\n",texto2);
strcat(texto1,texto3);
printf("%s\n",texto2);
getchar();
return 0;
}

strlen: esta funcin devuelve el total (entero) de caracteres que conforman una cadena
(excluyendo el caracter nulo \0). Vamos a hacer un ejemplo:

#include <stdio.h>
#include <string.h>
#include <conio.h>
#define MAXLON 80

int main(void)
{
char a[MAXLON+1];
int longitud;

clrscr();
printf ("Introduce una cadena (max. %d caracteres): ", MAXLON);
scanf("%s",&a);
longitud = strlen(a);
printf ("\nLongitud de la cadena: %d\n", longitud);
getch();
return 0;
}

strcmp: strcmp (abreviatura de ((string comparison))). La funcin strcmp recibe dos


cadenas, a y b, devuelve un entero. El entero que resulta de efectuar la llamada strcmp(a,
b) codifica el resultado de la comparacin:

es menor que cero si la cadena a es menor que b,

es 0 si la cadena a es igual que b, y

es mayor que cero si la cadena a es mayor que b.

Naturalmente, menor significa que va delante en orden alfabtico, y mayor que va detrs.

#include <stdio.h>
#include <string.h>
int main()
{
char s1[6] = "Abeja";
char s2[6] = "abeja";
int i;

printf( "s1=%s\t", s1 );
printf( "s2=%s\n", s2 );

i = strcmp( s1, s2 );
printf( "s1 es " );
if( i < 0 ) printf( "menor que" );
else if( i > 0 ) printf( "mayor que" );
else printf( "igual a" );
printf( " s2\n" );

return 0;
}
ESTRUCTURAS (struct)
Las estructuras son llamadas tambin muy a menudo registros, o en ingls records. Tienen
muchos aspectos en comn con los registros usados en bases de datos. Y siguiendo la misma
analoga, cada objeto de una estructura se denomina a menudo campo, o field.

#include <iostream>
using namespace std;

int main()
{
struct
{
string nombre;
char inicial;
int edad;
float nota;
} persona;

persona.nombre = "Juan";
persona.inicial = 'J';
persona.edad = 20;
persona.nota = 7.5;
cout << "La edad es " << persona.edad;

return 0;}
#include <stdio.h>
#include <string.h>

/* definimos una estructura para cds */


struct cd
{
char titulo[30];
char artista[25];
float precio;
int canciones;
} Cd1 = { /* inicializamos la estructura Cd1
crea con sus valores
* usando las definiciones iniciales*/
"Canciones Bebe", /* titulo */
"Pinocho", /* artista */
12.50, /* precio */
16 /* total canciones */};
int main(void)
{ struct cd Cd2; /* definimos una nueva estructura llamado cd2 */
/* asignamos valores a los tipos de datos del cd2 */
strcpy(Cd2.titulo, "New Age");
/* la forma de insertar valores a un
* tipo char en una estructura es usando strcpy
* de la libreria string.h
*/
strcpy(Cd2.artista, "Old Man");
Cd2.precio = 15.00;
Cd2.canciones = 12;
/* la forma de acceder a los valores de una estructura */
/* es usando el "." despues de la definicion del dato*/
printf("\n Cd 1");
printf("\n Titulo: %s ", Cd1.titulo);
printf("\n Artista: %s ", Cd1.artista);
printf("\n Total Canciones: %d ", Cd1.canciones);
printf("\n Precio Cd: %.2f ", Cd1.precio);
printf("\n");
printf("\n Cd 2");
printf("\n Titulo: %s ", Cd2.titulo);
printf("\n Artista: %s ", Cd2.artista);
printf("\n Total Canciones: %d ", Cd2.canciones);
printf("\n Precio Cd: %.2f ", Cd2.precio); /* el .2 que esta entre %f
* sirve para mostrar unicamente
* 2 decimales despues del punto*/
return 0;}
MANEJO DE ARCHIVOS (Secuenciales y directos)
Archivos secuenciales: Como su nombre lo indica, en este tipo de archivos los registros se
graban en secuencia o consecutivamente y deben accesarse 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 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.

Archivos directos: A diferencia de los archivos secuenciales, en los archivos directos no es


necesario recorrerlo completamente para acceder a un registro en particular, sino se puede
colocar el apuntador interno del archivo directamente en el registro deseado, permitiendo
con esto mayor rapidez de acceso. Cabe destacar que para reposicionar este apuntador se
utiliza el comando SEEK indicndole la direccin del registro que se desea.

#include<iostream>
#include<fstream>//LIBRERIA PARA MANEJAR ARCHIVOS
#include<string>
#include<windows.h>

using namespace std;


ofstream entrada; //OBJETO O VARIABLE PARA CREAR EL ARCHIVO

int main()
{
//VARIABLES USADOS PARA INGRESAR Y GUARDAR LOS DATOS
string nombre, apellidos;
int codigo, sueldo;
char opc;

entrada.open("datos_empleados.txt",ios::out|ios::app);//LLAMAR EL ARCHIVO
if (entrada.fail())//PREGUNTAR SI EL ARCHIVO EXISTE
{
cout<< "ERROR AL ABRIR EL ARCHIVO"<<endl;
}
else
{
do
{
cout<<"******DATOS DE EMPLEADOS*******"<<endl;
cout<<endl;
cout<<"CODIGO: ";
cin>> codigo;
cout<<"NOMBRE: ";
cin>>nombre;
cout<<"APELLIDOS: ";
cin>>apellidos;
cout<<"SUELDO: ";
cin>>sueldo;
entrada<<codigo<<" "<<nombre<<" "<<apellidos<<"
"<<sueldo<<endl;//GUARDAR LOS DATOS
cout<<endl;
cout<<"desea continuar ingresando datos s/n"<<endl;
cin>>opc;
opc=toupper(opc);
}while (opc == 'S');
}
entrada.close();
system ("pausa");
return (0);
}

FUENTES
http://www.comolohago.cl/como-generar-numeros-aleatorios-en-c/
https://www.programarya.com/Cursos/C++/Bibliotecas-O-Librerias
https://ccodigo.wordpress.com/tag/string-h/
http://paginadec.webcindario.com/old/cadenas-funciones.html
https://es.slideshare.net/whaleejaa/manejo-de-archivos-en-lenguaje-c

Das könnte Ihnen auch gefallen