Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Vectores y Matrices
Vectores y Matrices
40 Algoritmos y Programacin I
Sntesis Terica
Ctedra: Ing. Domingo T. Mandrafina
Sntesis Terica
Ctedra: Ing. Domingo T. Mandrafina
Indice
Vectores y Matrices
Algoritmos y
Vectores y Matrices
Vectores: Introduccin
Con lo aprendido hasta ahora resolvamos los
siguientes problemas:
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.
Algoritmos y
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
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.
Algoritmos y
Vectores y Matrices
Simples
Tipos de
Estructuras
Estticas
Complejas
Dinmicas (punteros)
Algoritmos y
Reales
Enteros
Char
Boolean
Enumerados
String
arrays
set
record
file
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
Algoritmos y
Vectores
Elementos
Mi_vector 9 5 6 2 4 8 3
Nombre de
la variable
Posicin : 1
Contenido : Mi_vector[1] = 9
Algoritmos y
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
Algoritmos y
10
Vectores
Ejemplo 1 - Diagrama de Jackson
Ejemplo 1
Lectura del
arreglo
Algoritmos y
Suma de
los elementos
Muestra
resultados
11
Vectores - Ejemplo1
Program Ejemplo1; {Version 1}
type
sumandos = array[1..10] of integer;
var
suma, i : integer;
vec_sumandos : sumandos;
begin
suma := 0;
for i:= 1 to 10 do
read(vec_sumandos[i] )
for i := 1 to 10 do
suma:= suma +vec_sumandos[i];
writeln (La suma de los nmeros es, suma);
end.
Algoritmos y
12
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
13
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
14
Vectores - Declaracin
Luego de la declaracin del tipo, se declara la
variable.
formato
var
nombre_variable: nombre_del_tipo;
Algoritmos y
15
Vectores - Declaracin
Ejemplos de declaraciones:
Ej1:
type
Valores = array[ -10..10 ] of real;
var
precios: valores;
Algoritmos y
16
Vectores - Declaracin
Ejemplos de declaraciones:
Ej2:
const
Max= 500;
type
T_Texto = array[ 1..Max ] of char;
var
Texto: T_Texto;
Algoritmos y
17
Algoritmos y
18
Algoritmos y
19
Algoritmos y
20
Vectores - Operaciones
Con la siguiente declaracin:
type
T_Notas = array [1..30] of integer;
var
Notas: T_Notas;
Lectura de un vector
for i:= 1 to 30 do
read(Notas[i] )
Algoritmos y
21
Vectores - Operaciones
Escritura de un vector
for i:= 1 to 30 do
writeln(Notas[i] )
Algoritmos y
22
Vectores - Operaciones
Con la siguiente declaracin:
type
T_Notas = array [1..30] of integer;
var
Notas, Aux_Notas: T_Notas;
Copia de vectores
for i:= 1 to 30 do
Aux_Notas[i]:= Notas[i];
o bien: Aux_Notas:=Notas;
Algoritmos y
23
Algoritmos y
24
Algoritmos y
25
Algoritmos y
26
Algoritmos y
27
Algoritmos y
28
Algoritmos y
29
Matrices
Resolvamos el siguiente problema:
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.
Algoritmos y
30
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)
Algoritmos y
31
Matrices
Mi_Matriz 9 5 6 2 4 8 3
9 5 6 2 4 8 3
9 5 6 2 4 8 3
Nombre de
la variable
Posicin : 3,1
Contenido : Mi_vector[3,1] = 9
Algoritmos y
32
Matrices - Declaraciones
Ejemplos de declaraciones:
Ej1:
type
T_matriz = array[ 1..10, 1..10 ] of real;
var
Matriz: valores;
Algoritmos y
33
Matrices - Declaraciones
Ejemplos de declaraciones:
Ej2:
type
T_matriz = array[ 1..10 ] of array [ 1..10 ] of real;
var
Matriz: valores;
Algoritmos y
34
Matrices - Declaraciones
Ejemplos de declaraciones:
Ej3:
type
T_filas = array[ 1..10 ] of of real;
T_Matriz = array[ 1..10 ] of of T_filas;
var
Matriz: valores;
Algoritmos y
35
Matrices - Operaciones
Con la siguiente declaracin:
type
T_matriz = array[ 1..10 ] of array [ 1..10 ] of real;
var
Matriz: valores;
Algoritmos y
36
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.
Algoritmos y
37
Algoritmos y
38
Algoritmos y
39
Algoritmos y
40
Algoritmos y
41
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.
Algoritmos y
42