Anda di halaman 1dari 13

COLEGIO NACIONAL DE EDUCACIN PROFESIONAL TCNICA

PLANTEL 1 AGUASCALIENTES
PROFR. J. REFUGIO ESPARZA REYES

Alumna: Karla Guadalupe Cruz Esparza.

Especialidad: informtica.

Grupo: 410.

Turno: matutino.

Semestre cursando: Enero Julio 2017.

Docente: Yolanda Catalina Navarrete Beas.

Aguascalientes, Ags a 16 de Marzo del 2017.


NDICE
GENERAR NMEROS ALEATORIOS .................................................. 1

LIBRERAS EN DEV C++ ....................................................................... 2

LIBRERA STRING ................................................................................. 3

FUNCIONES PARA CADENAS EN LENGUAJE DEV C++ ................... 4

MANEJO DE ARCHIVOS SECUENCIALES .......................................... 5

MANEJO DE ARCHIVOS DIRECTOS ................................................... 6

REFERENCIAS BIBLIOGRFICAS ...................................................... 7


1. GENERAR NUMEROS ALEATORIOS
Es algo muy frecuente, cuando ya dominas todo eso de pedir y almacenar datos, ahora tu profesor te pedir
que tus programas generen nmeros aleatorios para automatizar el proceso de llenar arreglos y todo eso

As que lo primero que tenemos que hacer es incluir la librera: #include<stdlib.h>

Necesitamos esta libreria 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) ;

As que un programa que muestre 10 nmeros aleatorios entre 1 y 10 quedara as:

#include <stdlib.h>

#include <time.h>

#include<iostream>

using namespace std;

int main()

int num, c;

srand(time(NULL));

for(c = 1; c <= 10; c++)

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

cout << num<< " ";

return 0;

}
2. LIBRERAS EN LENGUAJE DEV 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 mbstowcs mbtowc qsort rand Realloc malloc
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 memcmp memcpy memmove memset strcat strchr memchr
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.
tolower toupper
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 setcursortype textattr textbackground textcolor textmode ungetch

Fstream: Permite la munipulacion de archivos desde el programador, tanto leer como escribir en ellos.

Iosfud: Contienen declaraciones adelantadas de todas las plantillas de flujo y sus typedets estandar. por
ejemplo: Ostream

Iostream:

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.

3. MANEJO DE STRING
Biblioteca de manejo de cadenas (string.h)

La biblioteca <string.h> contiene un conjunto de funciones para manipular cadenas: copiar, cambiar caracteres,
comparar cadenas, etc.
Las funciones ms elementales son:

strcpy ( c1, c2 ); Copia c2 en c1


strcat ( c1, c2 ); Aade c2 al final de c1
int strlen ( cadena ); Devuelve la longitud de la cadena
int strcmp ( c1, c2 ); Devuelve cero si c1 es igual a c2;
no-cero en caso contrario

Para trabajar con estas funciones, al comienzo del programa hay que escribir

#include <string.h>

Ejemplo:

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

char completo [80];

char nombre[32] = "Pedro";


char apellidos [32] = "Medario Arenas";

main()
{
/* Construye el nombre completo */
strcpy ( completo, nombre ); /* completo <- "Pedro" */
strcat ( completo, " "); /* completo <- "Pedro " */
strcat ( completo, apellidos ); /* completo <- "Pedro
Medario Arenas" */

printf ( "El nombre completo es %s\n", completo );

LIBRERA STRING.H FUNCIONES STRCPY, STRLEN, STRCAT, STRCMP

A travs de la librera string.h podemos usar distintas funciones relacionadas con cadenas. Para usar estas
funciones debemos escribir #include <string.h> en cabecera de nuestro programa. A continuacin
relacionamos algunas de las funciones disponibles.

Nombres Descripcin

memcpy copia n bytes entre dos reas de memoria que no deben solaparse

memmove copia n bytes entre dos reas de memoria; al contrario que memcpy 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 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 de 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
ninguno de los caracteres de otra cadena dada

strcspn devuelve la posicin del primer carcter que 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


4. FUNCIONES PARA CADENAS EN LENGUAJE DEV C++

CONOCER LA LONGITUD DE UNA CADENA CON SIZEOF

Podemos declarar cadenas de varias maneras. Por ejemplo:

char pruebaCadena [3]; pruebaCadena [0]= 'a'; pruebaCadena [1]= 'b'; pruebaCadena [2]= 'c';

char pruebaCadena [] = "abc";

En el primer caso el array es de tres caracteres, el de ndice cero es a, el de ndice 1 es b, el de ndice 2 es c.


En el segundo caso el array es de cuatro caracteres al introducir C el carcter de fin de cadena \0.

Llamamos tamao (length) de un array al nmero de elementos de que consta. En el caso del array de
caracteres abc con el carcter de fin de cadena decimos que consta de 4 elementos (contando el carcter
especial de fin de cadena). Podemos conocer la longitud de un array de caracteres usando la funcin sizeof,
siendo la sintaxis a emplear: sizeof (nombreDelArray).

Escribe este cdigo, que ya debemos ser capaces de comprender con lo estudiado hasta ahora.

#include <stdio.h>

#include <stdlib.h>

int main() {

int i = 0; int j=0; char pruebaCadena [] = "abc";

while (pruebaCadena[i] != '\0') { printf ("%c", pruebaCadena[i]); i=i+1; }

printf ("%cUsando \\0: ", '\n');

while (pruebaCadena[j] != '\0') { printf ("Iteracion %d - ", j+1); j=j+1; }

printf ("%cUsando sizeof: ", '\n');

j= 0; //Reinicializar j

while (j < sizeof(pruebaCadena)) { printf ("Iteracion %d - ", j+1); j=j+1; }

printf ("\nsizeof pruebaCadena es %d", sizeof(pruebaCadena));

return 0; // Ejemplo aprenderaprogramar.com

Aqu mostramos distintas formas de recorrer un array de caracteres. La primera se basa en buscar el carcter
de fin de cadena \0. En este ejemplo el bucle while recorre a b c (tres iteraciones). La segunda se basa en
usar sizeof. En este ejemplo el bucle while recorre a b c - \0 (cuatro iteraciones).

#include <stdio.h>

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

int main() {

char cadena1 [] ="aprenderaprogramar.com"; char cadena2 [sizeof(cadena1)];

char cadena3[] = " ok!"; char cadena4[50];

int resComparacion;

printf ("Cadena1 vale %s y Cadena2 vale %s \n", cadena1, cadena2);

strcpy (cadena2, cadena1); //Copia cadena1 en cadena2

printf ("Cadena1 vale %s y Cadena2 vale %s \n", cadena1, cadena2);

printf ("Cadena1 tiene longitud %d (uno mas contando \\0) \n", strlen(cadena1));

strcpy (cadena4, cadena1) ;

printf ("Concatenacion %s \n", strcat(cadena4, cadena3));

resComparacion = strcmp (cadena4, cadena2);

printf ("Cadena1 vale %s y Cadena2 vale %s \n", cadena1, cadena2);

printf ("Cadena3 vale %s y Cadena4 vale %s \n", cadena3, cadena4);

if (resComparacion ==0) {

puts ("Las cadenas 1 y 2 son iguales");

resComparacion = strcmp (cadena1, cadena3);

if (resComparacion >0) {

puts ("La cadena 1 precede alfabeticamente a la cadena 3");

return 0; // Ejemplo aprenderaprogramar.com

Nota: las cadenas en C no se pueden copiar escribiendo cadena1 = cadena2. En su lugar, debe usarse la
funcin strcpy.

5. MANEJO DE ARCHIVOS SECUENCIALES


REGISTROS Y ARCHIVOS SECUENCIALES

CREACION ARCHIVOS SECUENCIAL DISCO C++

En este proceso se pretende solamente crear un archivo secuencial en disco.

#include <stdio.h>
#include <conio.h>
#include <string.h>
struct {
int matricula;
char nombre[30];
int edad;}alumno;
void main() {
clrscr();
//creando y cerrando el archivo en disco
FILE *archdisco;
archdisco = fopen("cpp:\\ac\\alumnos.dat","w");
fclose(archdisco);
printf("ARCHIVO CREADO");
getchar();getchar();
}
CORRIDA:

Recordar que la estructura que se uso para crear el archivo


se debera usar siempre y con el mismo orden cuando se
acceda al archivo con los procesos u operaciones
anteriormente mencionados.

Lo primero que se crea es una variable de tipo puntero o apuntador a un archivo a disco(instruccin FILE y
debe ser en MAYUSCULAS) llamada archdisco(muy original).

Variables apuntadores son tipos especiales de variables que tienen la capacidad de almacenar no datos, pero
si direcciones ya sean de la memoria del computador o como en este caso de una direccion fisica del disco.

En C una variable apuntador se declara anteponiendo un asterisco antes del nombre.

En el programa se est creando una variable apuntador bautizada con el nombre de archdisco que almacenara
la direccion fisica de el archivo en disco, en algun cilindro, track , sector debera quedar el archivo no es verdad.

Como segundo paso se abre el archivo con la instruccion fopen():

archdisco = fopen(cpp:\\ac\\alumnos.dat,w);

Observar que el path es la direccion fisica de tu sitio en TU PC.

Observar el doble diagonal(\\) en el parametro.

La funcion fopen() cuando realiza el trabajo de abrir un archivo, regresa la direccion fisica donde crea o graba
el archivo en disco.

El primer parametro o argumento en esta funcin es la

UNIDAD de disco y el nombre del archivo.

El segundo parametro o argumento es llamado modo y es una de los varios modos que podemos usar.

r Lectura.

w Escritura.

a Append, si el archivo ya existe append empieza a aadir los nuevos datos al final del archivo ya existente.

r+ Lectura y escritura, ya debe existir el archivo.

w+ Crea para lectura y escritura y si ya existe, sobreescribe.


a+ Crea o abre para lectura y append, sino existe el archivo sera creado.

En adicion a los valores listados tambien es permitido agregar uno de los siguientes caracteres, pero
insertandolo antes del signo +

modo significado.

t lo abre en modo texto.

b lo abre en modo binario.

Cuando se ha finalizado de escribir al archivo se debe cerrar y esto se hace con la instruccin:

fclose(archdisco);

6. MANEJO DE ARCHIVOS SECUENCIALES

REGISTROS Y ARCHIVOS DIRECTOS

OPERACIONES CON CAMPOS C++

En este tema se analiza la manera de poder realizar operaciones o procesos con los campos de los registros
en el archivo DIRECTO, lo unico importante a considerar es que los campos del registro son en cierta medida
igual que variables normales y por tanto se pueden procesar de manera normal como lo muestra el ejemplo.

#include <stdio.h> animalito.edad = animalito.edad + 100 ;


#include <io.h> // como ya se leyo se regresa el apuntador al
#include <conio.h> principio del registro
#include <string.h> fseek(arch1,r*sizeof(animalito),0 );
struct { // y se escribe el registro modificado al archivo
int clave; fwrite(&animalito,sizeof(animalito),1,arch1);
char nombre[30]; r=r+1;
int edad;} animalito; //turboc no permite i/o archivos sin un rewind,
void main() { fseek, etc
clrscr(); fseek(arch1,r*sizeof(animalito),0);
FILE *arch1; }; // aqui termina for
long r=0; //cerrando archivo
arch1 = fopen("cpp:\\ac\\archivo1.dat","rb+"); fclose(arch1);
while //avisando
(fread(&animalito,sizeof(animalito),1,arch1)==1) puts("EDADES + 100");
{ getchar();getchar();
// sumando 100 a edad }

como se observa la solucin es muy sencilla solo se ocupa:


1.- leer fread() el registro, esto mueve el apuntador al siguiente registro.

2.- modificar registro

3.- regresar a posicin anterior con fseek()

4.- grabar fwrite() el registro corregido

5.- volver a usar un fseek() porque turboc no acepta i/o sin rewind, fseek, etc ver ayuda del compilador

y no se ocupan los dos archivos como en el caso secuencial.

7. FUENTES BIBLIOGRFICAS
http://blog.martincruz.me/2012/09/obtener-numeros-aleatorios-en-c-rand.html

Numeros aleatorios.

http://alvarenga.blogcindario.com/2013/08/00002-librerias-de-dev-c.html
http://blog.utp.edu.co/jnsanchez/files/2011/03/Palabras-reservadas-librerias-datos-etc.pdf

Libreras en DEV C++

http://sopa.dis.ulpgc.es/fso/cpp/intro_c/introc53.htm

Librera String.

http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=934:funcion
es-para-cadenas-en-c-longitud-sizeof-stringh-y-strcpy-strlen-strcat-strcmp-ejemplos-
cu00535f&catid=82&Itemid=210

Manejo de cadenas.

http://www.programacionfacil.com/cpp/creacion_archivo_secuencial.html

Manejo de archivos.

Anda mungkin juga menyukai