Академический Документы
Профессиональный Документы
Культура Документы
40 Algoritmos y Programacin I
Sntesis Terica
Ctedra: Ing. Domingo T. Mandrafina
Indice
Vectores y Matrices 4
33
Vectores y Matrices
Vectores: Introduccin
Dados 50 nmeros enteros, obtener el promedio de ellos. Mostrar por pantalla dicho promedio y los nmeros ingresados que sean mayores que l. Dados n nmeros, obtener e imprimir la suma de todos ellos. A continuacin mostrar por pantalla todos los sumandos.
44
Vectores y Matrices
Es posible resolver estos problemas? Por qu? Una de las principales dificultades que se observan con estos problemas es que para la resolucin de ambos es necesario almacenar la totalidad de los datos a procesar. No sera eficiente crear n cantidad de variables para guardar estos datos. Para realizar programas y/o algoritmos que nos permitan resolver los problemas planteados, usaremos una nueva estructura de datos denominada vectores.
Algoritmos y Programacin I - Ctedra: 55
Vectores y Matrices
Una estructura de datos es un conjunto de datos con un cierto orden. Las estructuras de datos pueden ser dinmicas o estticas.
Estticas: aquellas a las que se le asigna una cantidad fija de memoria de acuerdo a lo definidio en la declaracin de la variable. Dinmicas: son aquellas cuyo tamao en memoria aumenta o disminuye en tiempo de ejecucin de acuerdo a las necesidades del programa.
66
Vectores y Matrices
Reales Enteros Char Boolean Enumerado s String arrays set recor d file
Estticas
Compleja s
Algoritmos y Programacin I - Ctedra:
Dinmicas (punteros)
77
Vectores
Qu es un vector? Un vector (o arreglo unidimensional) es una estructura de datos en la cual se almacena un conjunto de datos de un mismo tipo. Es decir que un arreglo es una lista de n elementos que posee las siguientes caractersticas:
se identifica por un nico nombre de variable sus elementos se almacenan en posiciones contiguas de memoria se accede a cada uno de sus elementos en forma aleatoria
88
Vectores
Elementos
Mi_vector
9 5 6 2 4 8 3
Nombre de la variable
99
Vectores
Ejemplos:
Ejemplo 1. Resolvamos este primer ejemplo: Cargar 10 elementos en un vector, sumarlos y mostrar el resultado por pantalla. Pasos para resolver este problema:
Leer un vector de 10 elementos Sumar los elementos Mostrar el resultado de la suma por pantalla
1010
Vectores
Ejemplo 1 - Diagrama de Jackson
Ejemplo 1
Muestra resultados
1111
Vectores - Ejemplo1
Program Ejemplo1; {Version 1} Declaracin del tipo del arreglo type sumandos = array[1..10] of integer; var suma, i : integer; Declaracin de la variable arreglo vec_sumandos : sumandos; begin suma := 0; for i:= 1 to 10 do read(vec_sumandos[i] ) Lectura de los elementos del arreglo for i := 1 to 10 do suma:= suma +vec_sumandos[i]; writeln (La suma de los nmeros es, suma); end. Suma de los elementos Algoritmos y Programacin I - Ctedra: 1212
Vectores - Ejemplo1
Program Ejemplo1; {Version 2} type sumandos = array[1..10] of integer; var suma, i : integer; vec_sumandos : sumandos; begin suma := 0; for i:= 1 to 10 do begin read(vec_sumandos[i] ) suma:= suma +vec_sumandos[i]; end; writeln (La suma de los nmeros es, suma); end. Algoritmos y Programacin I - Ctedra: 1313
Vectores - Declaracin
Como ya dijimos anteriormente, los arreglos son estructuras de datos, por lo tanto las mismas deben ser declaradas. Esta operacin se realiza en la secccin 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
Algoritmos y Programacin I - Ctedra: 1414
Vectores - Declaracin
var
nombre_variable: nombre_del_tipo;
1515
Vectores - Declaracin
type var
precios: valores;
1616
Vectores - Declaracin
type
T_Texto = array[ 1..Max ] of char;
1717
Texto[3] := a;
Precios[0] := 23.50;
Como ya dijimos, los ndices de un arreglo pueden ser: entero, lgico, caracter, enumerado o subrango.
1818
2020
Vectores - Operaciones
Con la siguiente declaracin:
T_Notas = array [1..30] of integer; var Notas: T_Notas;
type
Lectura de un vector
for i:= 1 to 30 do read(Notas[i] )
2121
Vectores - Operaciones
Escritura de un vector
for i:= 1 to 30 do writeln(Notas[i] )
2222
Vectores - Operaciones
type
Copia de vectores
for i:= 1 to 30 do Aux_Notas[i]:= Notas[i]; o bien: Aux_Notas:=Notas; Algoritmos y Programacin I - Ctedra: 2323
2424
2525
2626
2727
2828
Dos o ms arreglos que utilizan el mismo subndice para acceder a elementos de distintos arreglos, se denominan arreglos paralelos. Estos arreglos pueden procesarse simultneamente. Ejercicio:
Se tienen dos arreglos. El primero contiene nombres de personas y el segundo contiene los sexos de las personas del primer arreglo, codificados como f femenino y m masculino. Obtener a partir de estos otros dos arreglos, el primero de los cuales debe contener todos los nombres de los varones y el segundo, el nombre de todas las mujeres
2929
Matrices
Un instituto desea controlar los resultados de los alumnos en las distintas asignaturas de la facultad de Ingeniera. El programa debe ingresar las calificaciones de los alumnos y visualizar en pantalla la media de notas por alumno y la media de notas por asignatura. Las asignaturas estn codificadas de 1 a 6 y hay 30 alumnos.
3030
Matrices
Es posible resolver este problema con lo visto hasta ahora? Para realizar el anterior programa , debemos trabajar con una tabla (o matriz o arreglo bidimensional)
3131
Matrices
Mi_Matriz
Nombre de la variable
9 5 6 2 4 8 3 9 5 6 2 4 8 3 9 5 6 2 4 8 3
3232
Matrices - Declaraciones
type var
Matriz: valores;
3333
Matrices - Declaraciones
type var
Matriz: valores;
3434
Matrices - Declaraciones
type
3535
Matrices - Operaciones
type
3636
Matrices - Operaciones
Escritura de una matriz
for i:= 1 to 10 do for j:= 1 to 10 do writeln(Matriz[i,j] ) El recorrido de las matrices puede realizarse tanto por filas como por columnas, de acuerdo al problema a resolver.
3737
3838
4141
Arreglos multidimesionales
As como hemos trabajado con vectores (arreglos unidemsionales) y matrices (arreglos unideimesionales), es posible trabajar con arreglos de ms de dos dimensiones, los que son denominados arreglos multidimensionales.
4242