Professional Documents
Culture Documents
Arreglos (array)
Un arreglo est formado por un nmero fijo de elementos contiguos de un mismo tipo. Al tipo se le llama tipo base del arreglo. Los datos individuales se llaman elementos del arreglo. Para definir un tipo estructurado arreglo, se debe especificar el tipo base y el nmero de elementos. Un array se caracteriza por :
Almacenar los elementos del array en posiciones de memoria continua. Tener un nico nombre de variable que representa a todos los elementos, y stos a su vez se diferencian por un ndice o subndice. Acceso directo o aleatorio a los elementos individuales del array.
Arreglos (array)
dominio = I codominio = C En trminos matemticos abstractos la transformacin (mapeo) puede anotarse: A:I C En Pascal puede anotarse, la definicin del nuevo tipo A segn: type A = array [I] of C; I se denomina tipo del ndice, y debe ser un tipo ordinal. C es el tipo del contenido, o de las componentes. Tambin suele llamarse tipo base. Importa insistir en que todas las componentes deben ser de igual tipo. El tipo estructurado A queda completamente definido, si estn previamente definidos los tipos I y C.
Arreglos Unidimensionales
Un array de una dimensin vector o lista es un tipo de datos estructurados compuesto de un nmero de elementos finito, tamao fijo y elementos homogneos. Finitos, indica que hay un ltimo elemento, tamao fijo significa que el tamao del array debe ser conocido en tiempo de compilacin, homogneo significa que todos los elementos son del mismo tipo. Los elementos del array se almacenan en posiciones contiguas de memoria, a cada una de las cuales se puede acceder directamente.
Arreglos Unidimensionales
Elementos
Mi_vector
Nombre de la variable
Declaracin de Vectores
Los arreglos son estructuras de datos, por lo tanto las mismas deben ser declaradas. Esta operacin se realiza en la seccin Type de un programa en Pascal. (como puede verse en el ejemplo1) Formato type nombre_del_tipo = array[tipo_subindice * ] of tipo; Debe ser de tipo ordinal: boolean, char, enumerado o subrango Luego de la declaracin del tipo, se declara la variable. Formato var nombre_variable: nombre_del_tipo;
Ejemplo Declaraciones
Ej1: type Valores = array[ -10..10 ] of real; var precios: valores;
Ej2: const
Max= 500;
type
T_Texto = array[ 1..Max ] of char;
var
Texto: T_Texto;
Ejemplo Declaraciones(cont.)
Array para almacenar las notas correspondientes a todos los alumnos de un colegio. Suponiendo lo siguiente:
Numero de cursos 5 Grupos por curso 3 Nmero de evaluaciones 3 Nmero de asignaturas 6 Nmero de alumnos por curso 20
Numcurso=5; Numasig=6; Numalum=20; Type Cursos=1.. numcurso; Grupos='A'..'C'; Eval=(primera,segunda,tercera); Asign=1.. numasin; Alum=1. .numalum; Tiponotas=array[cursos,grupos,eval,asign,alum] of real; Var Notas:tiponotas; Curso:cursos; Grupo:grupos; Evaluacion:eval; Materia:asign; Alumno:alum;
Const
Con los elementos de un array se puede realizar las mismas operaciones que el tipo base al que pertenecen.
Recuerden, los ndices de un arreglo pueden ser: entero, lgico, carcter, enumerado o subrango.
Vectores Operaciones
Con la siguiente declaracin:
type
Lectura de un vector
for i:= 1 to 30 do read(Notas[i] )
Escritura de un vector
for i:= 1 to 30 do writeln(Notas[i] )
Vectores Operaciones
Con la siguiente declaracin:
type
Copia de vectores
for i:= 1 to 30 do Aux_Notas[i]:= Notas[i];
Mtodo de Ordenamiento
Los mtodos de ordenamiento son muy tiles porque permiten buscar valores, tanto por valor y por su posicin, de una manera eficiente. Antes de estudiar algunos de los mtodos de ordenamiento es necesario definir el problema y el entorno en el cual se desea trabajar.
Para realizar un ordenamiento se necesita un conjunto de valores ordenables, es decir, que exista un criterio de ordenamiento, por ejemplo las letras se basan en el alfabeto, los nmeros en la cantidad representada. Adems, se trataran solamente mtodos de ordenamiento en los que la instruccin base es la comparacin entre dos valores y que se obtiene el ordenamiento por medio de intercambio de valores. Estas consideraciones son la base de los mtodos.
Son muchos los mtodos de ordenamiento, sin embargo, se har nfasis en los siguientes mtodos: Ordenamiento por seleccin, por insercin, burbuja.
Mtodo de Ordenamiento
Para tal efecto asuma las siguientes declaraciones: Type y las siguientes asignaciones:
v[ 1 ] := 6; v[ 2 ] := 25; v[ 3 ] := 7; v[ 4 ] := 2; v[ 5 ] := 14; N := 5;
De este modo se dice que los valores ms pequeos burbujean hacia la parte superior de la lista [hacia el primer elemento], mientras que los valores ms grandes se hunden hacia el fondo de la lista en el caso de un ordenamiento ascendente. La tcnica de ordenacin de la lista por burbuja compara elementos consecutivos de la lista de modo que si en una pasada no ocurrieran intercambios, significara que la lista esta ordenada.
Pasada 1 10 5 8
Pasada 2 5 10 8
Pasada 3 5 8 10
Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y columnas
Matriz
1 1 2 3 4 5
2
3 4 15.2
Ejemplo:
Type Tabla = array [1..25,1..4] of real; Var Grados : Tabla;
Para localizar o almacenar un valor en el array se deben especificar dos posiciones o subndices, uno para la fila y otro para la columna.
Pero si el objetivo es, leer o escribir la matriz completa entonces al igual que con los arreglos unidimensionales se deben usar estructuras iterativas. Escriturar en una Matriz
For fila := 1 to 3 do Begin For Columna := 1 to 4 do Write (A[Fila, Columna]:4); End;
Ejemplos Matriz
Calcular el promedio de cada estudiante de una lista de veinticinco alumnos de una clase de informtica con notas en cuatro asignaturas.
Program Promedio; Var Notas : Array [1..25,1..4] of real; I,J : Integer; Suma,Prom : Real; Begin For I := 1 to 25 do Begin Write (`Notas del estudiante: ,I:1); Writeln (`En una misma lnea digite todas las notas); Suma := 0; For J := 1 to 4 do Begin Read (Notas[I,J]); Suma := Suma + Notas[I,J] End; Readln; Prom := Suma/4; Writeln (`La nota promedio del estudiante `,I:1, es `,Prom:1:1) End End.