Vectores matricesi
-
Upload
willian-yanza-chavez -
Category
Documents
-
view
354 -
download
0
Transcript of Vectores matricesi
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 2
VectoresVectores
• 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 3
VectoresVectores
Mi_vector
Nombre de la variable
9 35 4 826
Elementos
Posición : 1Contenido : Mi_vector[1] = 9
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 4
VectoresVectores
• 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 5
VectoresVectores
Ejemplo 1
Muestra resultados
Lectura delarreglo
• Ejemplo 1 - Diagrama de Jackson
Suma de los elementos
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 6
Vectores - Ejemplo1Vectores - Ejemplo1Program Ejemplo1; {Version 1}typesumandos = array[1..10] of integer;varsuma, i : integer;vec_sumandos : sumandos;beginsuma := 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 números es´, suma);end.
Declaración de la variable arreglo
Declaración del tipo del arreglo
Lectura de los elementos del arreglo
Suma de los elementos
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 7
Vectores - Ejemplo1Vectores - Ejemplo1Program Ejemplo1; {Version 2}typesumandos = array[1..10] of integer;varsuma, i : integer;vec_sumandos : sumandos;beginsuma := 0;for i:= 1 to 10 do
beginread(vec_sumandos[i] )suma:= suma +vec_sumandos[i];end;
writeln (´La suma de los números es´, suma);end.
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 8
Vectores - DeclaraciónVectores - 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
typenombre_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 9
Vectores - DeclaraciónVectores - Declaración
• Luego de la declaración del tipo, se declara la variable.
• formato
varnombre_variable: nombre_del_tipo;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 10
Vectores - DeclaraciónVectores - Declaración
• Ejemplos de declaraciones:
• Ej1:
typeValores = array[ -10..10 ] of real;
var
precios: valores;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 11
Vectores - DeclaraciónVectores - Declaración
• Ejemplos de declaraciones:
• Ej2:
const
Max= 500;
typeT_Texto = array[ 1..Max ] of char;
var
Texto: T_Texto;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 12
Vectores - Manejo de índicesVectores - 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 13
Vectores - Manejo de índicesVectores - 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 14
Vectores - Manejo de índicesVectores - 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 15
Vectores - OperacionesVectores - 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 16
Vectores - OperacionesVectores - 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 17
Vectores - OperacionesVectores - 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 18
Vectores - Ejemplos resueltosVectores - 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 19
Vectores - Ejemplos resueltosVectores - Ejemplos resueltosProgram Ej2; constmax = 50;typet_numeros = array[1.. max] of integer;varsuma, i : integer;promedio: real;numeros : t_numeros;beginsuma := 0;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 20
Vectores - Ejemplos resueltosVectores - Ejemplos resueltosfor i:= 1 to max do
beginread(numeros[i] )suma:= suma +numeros[i];end;
Promedio:= suma/max;writeln (´El promedio es ´,Promedio´);for i := 1 to 50 do
if numeros[i] > promediothen
writeln (´El número´, numeros[i], ´es mayor al promedio´);end.
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 21
Vectores - Ejemplos resueltosVectores - Ejemplos resueltosProgram Ej3; constmax = 100;typet_numeros = array[1.. max] of integer;varsuma, i, n : integer;promedio: real;numeros : t_numeros;beginsuma := 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 22
Vectores - Ejemplos resueltosVectores - Ejemplos resueltos
for i:= 1 to n do beginread(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 23
MatricesMatrices
9 35 4 826
9 35 4 826
9 35 4 826
Mi_Matriz
Nombre de la variable
Posición : 3,1Contenido : Mi_vector[3,1] = 9
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 24
Matrices - DeclaracionesMatrices - Declaraciones
• Ejemplos de declaraciones:
• Ej1:
typeT_matriz = array[ 1..10, 1..10 ] of real;
var
Matriz: valores;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 25
Matrices - DeclaracionesMatrices - Declaraciones
• Ejemplos de declaraciones:
• Ej2:
typeT_matriz = array[ 1..10 ] of array [ 1..10 ] of real;
var
Matriz: valores;
Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina 26
Matrices - DeclaracionesMatrices - Declaraciones
• Ejemplos de declaraciones:
• Ej3:
typeT_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 27
Matrices - OperacionesMatrices - 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 28
Matrices - OperacionesMatrices - 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 29
Matrices - Ejemplos resueltosMatrices - 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 30
Matrices - Ejemplos resueltosMatrices - Ejemplos resueltosProgram Ej4; constmax_fila = 6 ;max_col = 30;typet_tabla = array[1.. max_fila,max_col ] of char;vari, j: integer;tabla: t_tabla;suma: integer;prom_al, prom_mat:real;beginfor 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 31
Matrices - Ejemplos resueltosMatrices - Ejemplos resueltos
for i:= 1 to max_fila do beginsuma:=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 beginsuma:=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 32
Matrices - Ejemplos resueltosMatrices - 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.