2. 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
características:
– 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 Programación I - Cátedra: Ing. Domingo T. Mandrafina
2
4. 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 Programación I - Cátedra: Ing. Domingo T. Mandrafina
4
5. Vectores
• Ejemplo 1 - Diagrama de Jackson
Ejemplo 1
Lectura del
arreglo
Suma de
los elementos
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
Muestra
resultados
5
6. Vectores - Ejemplo1
Program Ejemplo1; {Version 1}
type
Declaración del tipo del arreglo
sumandos = array[1..10] of integer;
var
suma, i : integer;
Declaración de la variable arreglo
vec_sumandos : sumandos;
begin
suma := 0;
for i:= 1 to 10 do
Lectura de los elementos del arreglo
read(vec_sumandos[i] )
for i := 1 to 10 do
suma:= suma +vec_sumandos[i];
writeln (´La suma de los números es´, suma);
Suma de los elementos
end.
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
6
7. 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 números es´, suma);
end. y Programación I - Cátedra: Ing. Domingo T. Mandrafina
Algoritmos
7
8. Vectores - Declaración
• Como ya dijimos anteriormente, los arreglos son
estructuras de datos, por lo tanto las mismas deben
ser declaradas. Esta operación se realiza en la
seccción “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 Programación I - Cátedra: Ing. Domingo T. Mandrafina
8
9. Vectores - Declaración
• Luego de la declaración del tipo, se declara la
variable.
• formato
var
nombre_variable: nombre_del_tipo;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
9
10. Vectores - Declaración
• Ejemplos de declaraciones:
• Ej1:
type
Valores = array[ -10..10 ] of real;
var
precios: valores;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
10
11. Vectores - Declaración
• Ejemplos de declaraciones:
• Ej2:
const
Max= 500;
type
T_Texto = array[ 1..Max ] of char;
var
Texto: T_Texto;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
11
12. Vectores - Manejo de índices
• Asignación de valores
Texto[3] := ´a´;
Precios[0] := 23.50;
Como ya dijimos, los índices de un arreglo pueden ser:
entero, lógico, caracter, enumerado o subrango.
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
12
13. Vectores - Manejo de índices
Ej3:
const
longitud = 40;
altura = 30;
type
horizontal = 1..Longitud;
T_Línea = Array [ horizontal ] of char;
var
Linea: T_Linea
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
13
14. Vectores - Manejo de índices
Ej4:
type
DiasSemana = (Lunes, Martes, Miercoles,Jueves,
Viernes, Sabado, Domingo );
T_Dias = array [DiasSemana] of integer;
var
Dias: T_Dias;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
14
15. Vectores - Operaciones
• Con la siguiente declaración:
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 Programación I - Cátedra: Ing. Domingo T. Mandrafina
15
16. Vectores - Operaciones
• Escritura de un vector
for i:= 1 to 30 do
writeln(Notas[i] )
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
16
17. Vectores - Operaciones
• Con la siguiente declaración:
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 Programación I - Cátedra: Ing. Domingo T. Mandrafina
17
18. Vectores - Ejemplos resueltos
Ej2- Dados 50 números enteros, obtener el promedio de
ellos. Mostrar por pantalla dicho promedio y los números
ingresados que sean mayores que el mismo.
Ej3 - Dados n números, obtener e imprimir la suma de todos
ellos. A continuación mostrar por pantalla todos los
sumandos.
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
18
19. Vectores - Ejemplos resueltos
Program Ej2;
const
max = 50;
type
t_numeros = array[1.. max] of integer;
var
suma, i : integer;
promedio: real;
numeros : t_numeros;
begin
suma := 0;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
19
20. Vectores - Ejemplos resueltos
for i:= 1 to max do
begin
read(numeros[i] )
suma:= suma +numeros[i];
end;
Promedio:= suma/max;
writeln (´El promedio es ´,Promedio´);
for i := 1 to 50 do
if numeros[i] > promedio
then
writeln (´El número´, numeros[i], ´es mayor al promedio´);
end.
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
20
21. Vectores - Ejemplos resueltos
Program Ej3;
const
max = 100;
type
t_numeros = array[1.. max] of integer;
var
suma, i, n : integer;
promedio: real;
numeros : t_numeros;
begin
suma := 0;
write (´Ingrese la cantidad de números a sumar. (Como máximo, 100
números´);
readln(n);
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
21
22. Vectores - Ejemplos resueltos
for i:= 1 to n do
begin
read(numeros[i] )
suma:= suma +numeros[i];
end;
writeln (´La suma es ´,suma´);
for i := 1 to n do
writeln (´El sumando´, i, ´es´, numeros[i]);
end.
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
22
23. 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
Posición : 3,1
Contenido : Mi_vector[3,1] = 9
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
23
24. Matrices - Declaraciones
• Ejemplos de declaraciones:
• Ej1:
type
T_matriz = array[ 1..10, 1..10 ] of real;
var
Matriz: valores;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
24
25. Matrices - Declaraciones
• Ejemplos de declaraciones:
• Ej2:
type
T_matriz = array[ 1..10 ] of array [ 1..10 ] of real;
var
Matriz: valores;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
25
26. 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 Programación I - Cátedra: Ing. Domingo T. Mandrafina
26
27. Matrices - Operaciones
• Con la siguiente declaración:
type
T_matriz = array[ 1..10 ] of array [ 1..10 ] of real;
var
Matriz: valores;
• Lectura de una matriz
for i:= 1 to 10 do
for j:= 1 to 10 do
readln(Matriz[i,j] )
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
27
28. 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 Programación I - Cátedra: Ing. Domingo T. Mandrafina
28
29. Matrices - Ejemplos resueltos
Ej4. Un instituto desea controlar los resultados de los alumnos en
las distintas asignaturas de la facultad de Ingeniería. 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 están codificadas de 1 a 6 y hay 30 alumnos.
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
29
30. Matrices - Ejemplos resueltos
Program Ej4;
const
max_fila = 6 ;
max_col = 30;
type
t_tabla = array[1.. max_fila,max_col ] of char;
var
i, j: integer;
tabla: t_tabla;
suma: integer;
prom_al, prom_mat:real;
begin
for i:= 1 to max_fila do
for j:= 1 to max_fila do
writeln(´Ingrese la nota para la materia´, i, ´del alumno´, j);
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
30
31. Matrices - Ejemplos resueltos
for i:= 1 to max_fila do
begin
suma:=0;
for j:= 1 to max_col do
suma:= suma + tabla[i,j];
prom_mat [i] : =suma /i;
end;
for i:= 1 to max_col do
begin
suma:=0;
for j:= 1 to max_fila do
suma:= suma + tabla[i,j];
prom_al [i] : =suma /i;
end;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
31
32. Matrices - Ejemplos resueltos
writeln (´La suma es ´,suma´);
for i := 1 to max_fila do
writeln (´El promedio de calificaciones para la asignatura´, i, ´es´,
prom_mat[i]);
end.
for j := 1 to max_col do
writeln (´El promedio de calificaciones para el alumno´, j, ´es´,
prom_al[j]);
end.
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina
32