Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCION A LA PROGRAMACION
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
/* Declaración 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
•Búsqueda 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
Distribución de datos en una Matríz
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 están ordenados, pero para comprobarlo habría que acabar esta segunda
comprobación y hacer una tercera.
Códificación :
main()
Pseudocódigo:
{
1.- Inicio
int A[10];
2.- Definir un vector de 10 números
llenavector(A,10); // es uma función
3.- Llenar el vector con los números printf("ORDENAMIENTO POR BURBUJA \n");
4.- Mostrar la salida de los números printf("Numeros a ordenar: \n");
capturados en desorden
salida(A,10); // es uma función
5.- Ordenar el vector por el método printf("\n\nNumeros ordenados: \n");
bubblesort
bubblesort(A,10); // es uma función
6.- Mostrar la salida con los números
salida(A,10); // es uma función
ordenados del vector
getch();
}
Su sintaxis es la siguiente:
tipo *nombre;
x=#
a=*x;
Asignación 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 organización secuencial es la
organización de archivo más común. Los
registros son almacenados uno tras otro
en orden de llegada. Para acceder un
registro determinado se deben leer todos
los registros que están almacenados antes
de éste.
Operaciones básicas 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 serán 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
4.-Altas en archivo.- En este proceso se captura una estructura en memoria con sus
datos pertinentes y despues se graba la estructura al archivo en disco.
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:
La funcion fopen() cuando realiza el trabajo de abrir un archivo, regresa la
direccion fisica donde crea o graba el archivo en disco.
“r” → Lectura.
“w” → Escritura.
“a” → Append, si el archivo ya existe append empieza a añadir 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 información que se
trabaja, donde la unidad mínima 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 manipulación.
Clase: Es la definición del tipo de dato que será almacenado en el campo. Los
tipos de datos más comunes son: • Numéricos, • Binarios, • Alfabéticos,
Alfanuméricos y Lógicos
Alineamiento: Es la ubicación del dato dentro del campo. Las posiciones típicas
son a la izquierda y a la derecha.
Estructura Jerárquica:
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
Conexión con Bases de Datos
Éstos son los pasos básicos para diseñar y crear una base de
datos:
SELECT
UPDATE
INSERT
DELETE
SELECT
Sintaxis Básica:
SELECT <campos>
FROM <tablas>
WHERE <condición>
ORDER BY <campos>
Ejemplos:
select matricula, nombre, direccion, refpago
from alumnos
where id = 1;
Sintaxis Básica:
UPDATE <tabla>
SET <campo1> = <valor1>
<campo1> = <valor>
WHERE <condición>
Ejemplo:
Sintaxis Basica:
Ejemplos:
Sintaxis Basica:
Ejemplo:
DELETE * FROM alumnos
WHERE id >1;