Академический Документы
Профессиональный Документы
Культура Документы
SIMPLES o BASICOS
Ocupan solo una casilla de memoria. (enteros, reales, caracteres, booleanos).
Ejem.- 567
Cadenas
Estructuras o registros
Funciones
Arreglos (arrays) y matrices
Apuntadores
Pilas, colas
Archivos
Bases de Datos
ESTRUCTURA DE DATOS ( ARREGLOS )
ARREGLOS O VECTORES.
ESTRUCTURADOS.- Hacen referencia a un grupo de casillas de memoria
Ejem.- A= 34 45 12 05 93 Datos
(0) (1) (2) (3) (4) Indices
ESTRUCTURA DE DATOS ( ARREGLOS )
ARREGLOS O VECTORES.
ESTRUCTURADOS.- Hacen referencia a un grupo de casillas de memoria
Los ndices hacen referencia a los componentes (datos) en forma individual.
Ejem.- A= 34 45 12 05 93 Datos
(0) (1) (2) (3) (4) Indices
/* Declaracin de un array. */
#include <stdio.h>
main()
{
int vector[10],i;
for (i=0;i<10;i++) vector[i]=i;
for (i=0;i<10;i++) printf(" %d",vector[i]);
}
Nota: En el ejemplo puedes observar que la variable i es utilizada como ndice, el primer for sirve
para rellenar el vector y el segundo para visualizarlo. Como ves, las posiciones van de 0 a 9 ( total
10 elementos ).
OPERACIONES CON ARREGLOS O VECTORES.
Lectura de un arreglo
Despliegue de datos de un arreglo
Llenado de un arreglo
Ordenacion de un arreglo
Bsqueda de datos en un arreglo
LLENADO/LECTURA DE UN ARREGLO
Pseudocodigo:
Dame los 10 datos ?
PARA i desde 0 hasta 10 incrementa
LEE A[i].
Codigo en C o C++
printf ("Dame los 10 datos");
for (i=0; i<10; i++)
{
scanf ("%d", &valor [i]);
}
DESPLIEGUE DE UN ARREGLO Y OPERACIONES CON SUS
COMPONENTES
Pseudocodigo:
PARA i desde 0 hasta 10 incrementa
Inicio
DESPLIEGA Valor, Indice + 1, valor
SUMA los valores del arreglo
termina
Codigo en C o C++
for (i=0; i<10; i++)
{
printf ("Valor %d = %d\n", i+1, valor [i]);
suma += valor [i];
}
PRACTICA 51a:
/* visualizamos la matriz */
for (x=0;x<3;x++)
for (i=0;i<4;i++)
printf("%d",numeros[x][i]);
getch();
}
Nota: al final mostrar la suma de los valores contenidos
Distribucin de datos en una Matrz
int numeros[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
SORT / ORDENACION.-
Es reagrupar un grupo de datos en una
secuencia especifica de orden
Primera pasada:
{21,40,4,9,10,35} <-- Se cambia el 21 por el 40.
{21,4,40,9,10,35} <-- Se cambia el 40 por el 4.
{21,4,9,40,10,35} <-- Se cambia el 9 por el 40.
{21,4,9,10,40,35} <-- Se cambia el 40 por el 10.
{21,4,9,10,35,40} <-- Se cambia el 35 por el 40.
Segunda pasada:
{4,21,9,10,35,40} <-- Se cambia el 21 por el 4.
{4,9,21,10,35,40} <-- Se cambia el 9 por el 21.
{4,9,10,21,35,40} <-- Se cambia el 21 por el 10.
Ya estn ordenados, pero para comprobarlo habra que acabar esta segunda
comprobacin y hacer una tercera.
Cdificacin :
main()
Pseudocdigo:
{
1.- Inicio
int A[10];
2.- Definir un vector de 10 nmeros
llenavector(A,10); // es uma funcin
3.- Llenar el vector con los nmeros printf("ORDENAMIENTO POR BURBUJA \n");
4.- Mostrar la salida de los nmeros printf("Numeros a ordenar: \n");
capturados en desorden
salida(A,10); // es uma funcin
5.- Ordenar el vector por el mtodo printf("\n\nNumeros ordenados: \n");
bubblesort
bubblesort(A,10); // es uma funcin
6.- Mostrar la salida con los nmeros salida(A,10); // es uma funcin
ordenados del vector
getch();
}
Su sintaxis es la siguiente:
tipo *nombre;
x=#
a=*x;
Asignacin en Apuntadores
Los apuntadores se asignan igual que el resto de las variables.
El programa ejemplo mostrar las direcciones contenidas en p1 y p2, que ser la
misma en ambos apuntadores.
Practica 51d.
/* Asignaciones de punteros. */
#include <stdio.h>
main() /* Asignamos direcciones */
{
int a;
int *p1,*p2;
p1=&a;
p2=p1;
printf("%p %p",p1,p2);
}
De lo simple a lo complejo
struct animal {
char nombre[40];
struct animal *siguiente;
};
Lista:
switch (opcion) {
int main() case 1:
{ struct cliente { actual = (struct cliente *) malloc (sizeof(actual));
char nombre[40]; printf (" dime el nombre");
fgets(actual->nombre,40,stdin);
struct cliente *siguiente;}; if (primer==NULL)
primer=actual;
struct cliente *primer, *ultimo, *actual; else {
ultimo->siguiente=actual;
}
int opcion; actual->siguiente=NULL;
primer=NULL; ultimo=actual;
break;
ultimo=NULL; case 2: printf ("listado de nombres");
actual=primer;
while (actual!= NULL){
printf ("\n Nombre : %s ",actual->nombre);
actual=actual->siguiente;}
break;
case 3 : printf("Fin de programa");
}
} while (opcion != 3);
printf("Programa terminado\n");
return (0);
}
Registros y archivos
La organizacin secuencial es la
organizacin de archivo ms comn. Los
registros son almacenados uno tras otro
en orden de llegada. Para acceder un
registro determinado se deben leer todos
los registros que estn almacenados antes
de ste.
Operaciones bsicas con archivos:
1.- Datos a ser grabados o leidos como un caracter a la vez, se utilizaran funciones
analogas a getchar y putchar.
2.- Datos que pueden ser leidos o grabados como una string se usaran funciones
analogas a gets y puts.
3.- Datos que se capturen o desplieguen con formatos parecidos a los usados por
scanf y printf se usaran funciones similares, es decir sern problemas que involucran
mezclas de strings, caracteres, floats, etc.
4.- Tambien se podran leer y escribir datos de tipo arreglo y registros utilizando
instrucciones apropiadas de lectura y escritura de datos que permita el compilador.
Almacenamiento de archivos
10.- Bajas de registros: tambien muy comun este proceso,por ejemplo el alumno ya
egreso, el cliente huyo, etc. (baja fisica o baja logica)
Abrir y cerrar un archivo en C.
Abrir y cerrar
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct {
int matricula;
char nombre[30];
int edad;}alumno;
main() {
FILE *archdisco;
// El archivo se llama alumnos.dat el el directorio raiz de C
archdisco = fopen("C:\\alumnos.txt","w");
fclose(archdisco);
getchar();
}
Comentarios:
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.
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct {
int matricula;
char nombre[30];
int edad;} alumno;
main() {
// captura de campos
printf("No. de Cuenta :");scanf("%d",&alumno.matricula);getchar();
printf("Nombre :");gets(alumno.nombre);
printf("Edad :");scanf("%d",&alumno.edad);
// grabando a disco
FILE *archdisco;
archdisco = fopen("C:\\alumnos.txt","ab+");
fwrite(&alumno,sizeof(alumno),1,archdisco);
fclose(archdisco);
//avisando usuario
getchar();getchar();
}
// prog27.cpp. Despliega los datos a partir del archivo alumnos.txt
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct {
int matricula;
char nombre[30];
int edad;}alumno;
main() {
// leyendo disco
FILE *archdisco;
archdisco = fopen("C:\\alumnos.txt","rb+");
while(fread(&alumno,sizeof(alumno),1,archdisco)==1)
{
// desplegando estructuras
printf("%d ",alumno.matricula);
printf("%s ",alumno.nombre);
printf("%d ",alumno.edad);
printf("\n");
printf("**>\n");
printf("Presione ENTER para continuar ..");
getchar();
}
Ejemplo de Directorio Telefonico
struct dir{
char nombre[30]; /* Nombre */
char calleNum[40]; /* calle numero */
char ciudadPob[20]; /* ciudad, poblacion */
char cp[6]; /* Codigo postal */
char telefono[20]; /* Direccion Postal */
struct dir *siguiente; /* Apuntador a la siguiente entrada */
struct dir *anterior; /* Apuntador al registro anterior */
}lista_entrada;
Tipos de Datos. Los tipos de datos hacen referencia al tipo de informacin que se
trabaja, donde la unidad mnima de almacenamiento es el dato. Estructuras de
Datos. Es una es una forma de organizar un conjunto de datos elementales con el
objetivo de facilitar su manipulacin.
Clase: Es la definicin del tipo de dato que ser almacenado en el campo. Los
tipos de datos ms comunes son: Numricos, Binarios, Alfabticos,
Alfanumricos y Lgicos
Alineamiento: Es la ubicacin del dato dentro del campo. Las posiciones tpicas
son a la izquierda y a la derecha.
Estructura Jerrquica:
Nombre Productos
Sybase Adaptive Server
Oracle8, Oracle8i, Oracle8iEE,
Oracle
Oracle9i, Oracle 10g
PostgreSQL PostgreSQL
Microsoft Access, MS-SQL Server
MySQL MySQL
Illustra, Universal Server, Dynamic
Informix
Server
IBM DB2
Apache Derby
SQLite SQLite
Firebird Firebird
Conexin con Bases de Datos
stos son los pasos bsicos para disear y crear una base de
datos:
SELECT
UPDATE
INSERT
DELETE
SELECT
Sintaxis Bsica:
SELECT <campos>
FROM <tablas>
WHERE <condicin>
ORDER BY <campos>
Ejemplos:
select matricula, nombre, direccion, refpago
from alumnos
where id = 1;
Sintaxis Bsica:
UPDATE <tabla>
SET <campo1> = <valor1>
<campo1> = <valor>
WHERE <condicin>
Ejemplo:
Sintaxis Basica:
Ejemplos:
Sintaxis Basica:
Ejemplo:
DELETE * FROM alumnos
WHERE id >1;