SlideShare una empresa de Scribd logo
Algoritmos y Programación
Síntesis Práctico Teórica

Arreglos Unidimensionales y Bidimensionales

Elaboración, montaje y diseño: Lcdo. Carlos A.Dechtiar B.

                                            Octubre 2011
Vectores y Matrices
   Vectores: Introducción
      Con lo aprendido hasta ahora resolvamos los
       siguientes problemas:
         Dados 50 números enteros, obtener el promedio de
          ellos. Mostrar por pantalla dicho promedio y los
          números ingresados que sean mayores que él.
         Dados n números, obtener e imprimir la suma de todos
          ellos. A continuación mostrar por pantalla todos los
          sumandos.




                                                                 2
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 resolución de
   ambos es necesario almacenar la totalidad de los
   datos a procesar.
  No sería 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.



                                                           3
Vectores y Matrices
  Una estructura de datos es un conjunto de datos con
   un cierto orden.
  Las estructuras de datos pueden ser dinámicas o
   estáticas.
    Estáticas: aquellas a las que se le asigna una cantidad fija
     de memoria de acuerdo a lo definidio en la declaración
     de la variable.
    Dinámicas: son aquellas cuyo tamaño en memoria
     aumenta o disminuye en tiempo de ejecución de
     acuerdo a las necesidades del programa.




                                                                    4
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


                                                        5
Vectores
                  Elementos

  Mi_vector    9 5 6 2 4 8 3


 Nombre de
 la variable            Posición : 1
                Contenido : Mi_vector[1] = 9




                                               6
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




                                                         7
Vectores
 Ejemplo 1 - Diagrama de Jackson


                       Ejemplo 1




        Lectura del   Suma de         Muestra
        arreglo       los elementos   resultados




                                                   8
Vectores - Ejemplo1
 Program Ejemplo1; {Version 1}
 type                                         Declaración del tipo del arreglo
 sumandos = array[1..10] of integer;
 var
 suma, i : integer;
 vec_sumandos : sumandos;                  Declaración de la variable arreglo
 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 números es´, suma);
 end.

                                                 Suma de los elementos



                                                                            9
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.




                                                10
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


                                                               11
Vectores - Declaración
   Luego de la declaración del tipo, se declara la
    variable.
   formato
    var
      nombre_variable: nombre_del_tipo;




                                                      12
Vectores - Declaración
   Ejemplos de declaraciones:
   Ej1:
     type
      Valores = array[ -10..10 ] of real;
    var
          precios: valores;




                                            13
Vectores - Declaración
   Ejemplos de declaraciones:
   Ej2:
    const
           Max= 500;
    type
       T_Texto = array[ 1..Max ] of char;
    var
           Texto: T_Texto;




                                            14
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.




                                                           15
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




                                             16
Vectores - Manejo de índices
 Ej4:
 type
   DiasSemana = (Lunes, Martes, Miercoles,Jueves, Viernes,
   Sabado, Domingo );
   T_Dias = array [DiasSemana] of integer;
 var
   Dias: T_Dias;




                                                             17
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] )




                                               18
Vectores - Operaciones
 Escritura de un vector
      for i:= 1 to 30 do
                 writeln(Notas[i] )




                                      19
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;




                                                 20
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.




                                                                   21
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;




                                           22
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.




                                                                           23
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);




                                                                      24
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.




                                                    25
Vectores - Vectores Paralelos
  Dos o más arreglos que utilizan el mismo subíndice
   para acceder a elementos de distintos arreglos, se
   denominan arreglos paralelos. Estos arreglos pueden
   procesarse simultáneamente.
  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




                                                                26
Matrices
  Resolvamos el siguiente problema:
     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.




                                                            27
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)




                                                    28
Matrices
     Mi_Matriz     9 5 6 2 4 8 3
                   9 5 6 2 4 8 3
    Nombre de      9 5 6 2 4 8 3
     la variable


                            Posición : 3,1
                   Contenido : Mi_vector[3,1] = 9




                                                    29
Matrices - Declaraciones
  Ejemplos de declaraciones:
  Ej1:
    type
     T_matriz = array[ 1..10, 1..10 ] of real;
   var
         Matriz: valores;




                                                 30
Matrices - Declaraciones
  Ejemplos de declaraciones:
  Ej2:
    type
     T_matriz = array[ 1..10 ] of array [ 1..10 ] of real;
   var
         Matriz: valores;




                                                             31
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;




                                                32
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] )




                                                               33
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.




                                                                          34
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.




                                                                            35
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);




                                                                                  36
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;




                                   37
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.




                                                                          38

Más contenido relacionado

PPTX
ANIDAMIENTO DE ESTRUCTURAS DE CONTROL SIMPLE
PDF
Estructuras de datos en Introducción a la Programación
DOC
Vectores en programacion
PPTX
arboles avl con codigo en java
PDF
Ejercicios condicional-if
PPTX
Listas de adyacencia
PPTX
Estructuras de control algoritmos dq
ANIDAMIENTO DE ESTRUCTURAS DE CONTROL SIMPLE
Estructuras de datos en Introducción a la Programación
Vectores en programacion
arboles avl con codigo en java
Ejercicios condicional-if
Listas de adyacencia
Estructuras de control algoritmos dq

La actualidad más candente (20)

PPTX
Ordenamiento con árbol binario
PDF
Inversa, transpuesta y determinante de una matriz
PDF
Transformaciones lineales
PPTX
Vectores tangente unitario y normal unitario
PPT
48690471 redes-neuronales
PPSX
Arreglos unidimensionales
PDF
Espacios vectoriales
PPT
Diagramas De Flujo
PDF
Solucionario guía 1 unidad i algebra lineal
PPTX
Arboles presentacion
PPTX
Teoria de la probabilidad
PPTX
Espacios vectoriales y subespacios vectoriales(19 09-2012)
PDF
Matemáticas discretas- Teoría de Conjuntos
PPTX
adyacencia en un grafo
PDF
Ejercicios de arreglo
PPTX
Conjuntos generadores e independencia lineal
DOCX
Taller algoritmos ciclo repetir
PDF
Arreglos programacion
PDF
Estructuras De Datos-Arreglos
PDF
Estructuras de Datos (Arreglos)
Ordenamiento con árbol binario
Inversa, transpuesta y determinante de una matriz
Transformaciones lineales
Vectores tangente unitario y normal unitario
48690471 redes-neuronales
Arreglos unidimensionales
Espacios vectoriales
Diagramas De Flujo
Solucionario guía 1 unidad i algebra lineal
Arboles presentacion
Teoria de la probabilidad
Espacios vectoriales y subespacios vectoriales(19 09-2012)
Matemáticas discretas- Teoría de Conjuntos
adyacencia en un grafo
Ejercicios de arreglo
Conjuntos generadores e independencia lineal
Taller algoritmos ciclo repetir
Arreglos programacion
Estructuras De Datos-Arreglos
Estructuras de Datos (Arreglos)
Publicidad

Destacado (20)

PDF
Reporte metodos de busqueda y ordenamiento
PPTX
Pilas, colas, y listas estructura de datos
PPTX
Estructura de datos listas, pilas y colas
PPT
Estructura datos pilas y colas
PPTX
Algoritmo divide y vencerás
PPT
Estructura De Datos Registro
PPT
Vectores Matrices I
PPTX
Estructura de Datos - Unidad 5 metodos de ordenamiento
PPT
Vectores Matrices I
PPT
ESTRUCTURAS REPETITIVAS
PDF
Estructura Repetitiva MIENTRAS (While) con PSeInt
PPT
Estructuras repetitivas - pseudocodigo
DOCX
Pseint taller 1
PDF
Fundamentos Divide Y Venceras
PPT
IC - Estructuras de Secuencia - Ejercicios
DOCX
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
PPT
Colas
PDF
Logica y algoritmos 6. vectores y matrices
PDF
Unidad1 2 Lenguajes y automatas
Reporte metodos de busqueda y ordenamiento
Pilas, colas, y listas estructura de datos
Estructura de datos listas, pilas y colas
Estructura datos pilas y colas
Algoritmo divide y vencerás
Estructura De Datos Registro
Vectores Matrices I
Estructura de Datos - Unidad 5 metodos de ordenamiento
Vectores Matrices I
ESTRUCTURAS REPETITIVAS
Estructura Repetitiva MIENTRAS (While) con PSeInt
Estructuras repetitivas - pseudocodigo
Pseint taller 1
Fundamentos Divide Y Venceras
IC - Estructuras de Secuencia - Ejercicios
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Colas
Logica y algoritmos 6. vectores y matrices
Unidad1 2 Lenguajes y automatas
Publicidad

Similar a Vectores y Matrices (20)

PPT
VectoresMatricesI.ppt
PPT
VectoresMatricesI.ppt
PPT
Vectores matricesi
PPT
Vectores matricesi
PPT
Estructura de Datos: Arreglos
PPTX
Introducción y Desarrollo de la Estructura de Datos en Programación: Estudio ...
PDF
Arreglos
PPTX
Arreglos Unidimensionales - Vectores.pptx
PDF
Areglos y registros
PDF
Unidad5
PPTX
Tipo de Arreglos
PPTX
Arrays unidimensionales
PDF
Documento de apoyo_vectores
PDF
Cap06 arreglos y vectores.
PPT
Intro Java 3
PPT
Intro Java 3
PPS
Uso vectores
PDF
Semana 4 arreglos simples (1)
PPT
Clase 09
PDF
Estructuras_de_datos_(11-12).pdf- power point arrays
VectoresMatricesI.ppt
VectoresMatricesI.ppt
Vectores matricesi
Vectores matricesi
Estructura de Datos: Arreglos
Introducción y Desarrollo de la Estructura de Datos en Programación: Estudio ...
Arreglos
Arreglos Unidimensionales - Vectores.pptx
Areglos y registros
Unidad5
Tipo de Arreglos
Arrays unidimensionales
Documento de apoyo_vectores
Cap06 arreglos y vectores.
Intro Java 3
Intro Java 3
Uso vectores
Semana 4 arreglos simples (1)
Clase 09
Estructuras_de_datos_(11-12).pdf- power point arrays

Último (20)

PDF
TOMO II - LITERATURA.pd plusenmas ultras
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
PDF
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
PPTX
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
DOC
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
PDF
Los10 Mandamientos de la Actitud Mental Positiva Ccesa007.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Esc. Sab. Lección 7. El pan y el agua de vida.pdf
PDF
Modelo Educativo SUB 2023versión final.pdf
PDF
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
PPTX
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
PPTX
Clase 3 del silabo-gestion y control financiero
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PPTX
T2 Desarrollo del SNC, envejecimiento y anatomia.pptx
PDF
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
PDF
IPERC...................................
TOMO II - LITERATURA.pd plusenmas ultras
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
La lluvia sabe por qué: una historia sobre amistad, resiliencia y esperanza e...
TEMA 1ORGANIZACIÓN FUNCIONAL DEL CUERPO, MEDIO INTERNO Y HOMEOSTASIS (3) [Aut...
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
Los10 Mandamientos de la Actitud Mental Positiva Ccesa007.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Esc. Sab. Lección 7. El pan y el agua de vida.pdf
Modelo Educativo SUB 2023versión final.pdf
Texto Digital Los Miserables - Victor Hugo Ccesa007.pdf
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
Escuelas Desarmando una mirada subjetiva a la educación
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
Clase 3 del silabo-gestion y control financiero
PLAN DE CASTELLANO 2021 actualizado a la normativa
T2 Desarrollo del SNC, envejecimiento y anatomia.pptx
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
IPERC...................................

Vectores y Matrices

  • 1. Algoritmos y Programación Síntesis Práctico Teórica Arreglos Unidimensionales y Bidimensionales Elaboración, montaje y diseño: Lcdo. Carlos A.Dechtiar B. Octubre 2011
  • 2. Vectores y Matrices  Vectores: Introducción  Con lo aprendido hasta ahora resolvamos los siguientes problemas:  Dados 50 números enteros, obtener el promedio de ellos. Mostrar por pantalla dicho promedio y los números ingresados que sean mayores que él.  Dados n números, obtener e imprimir la suma de todos ellos. A continuación mostrar por pantalla todos los sumandos. 2
  • 3. 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 resolución de ambos es necesario almacenar la totalidad de los datos a procesar.  No sería 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. 3
  • 4. Vectores y Matrices  Una estructura de datos es un conjunto de datos con un cierto orden.  Las estructuras de datos pueden ser dinámicas o estáticas.  Estáticas: aquellas a las que se le asigna una cantidad fija de memoria de acuerdo a lo definidio en la declaración de la variable.  Dinámicas: son aquellas cuyo tamaño en memoria aumenta o disminuye en tiempo de ejecución de acuerdo a las necesidades del programa. 4
  • 5. 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 5
  • 6. Vectores Elementos Mi_vector 9 5 6 2 4 8 3 Nombre de la variable Posición : 1 Contenido : Mi_vector[1] = 9 6
  • 7. 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 7
  • 8. Vectores  Ejemplo 1 - Diagrama de Jackson Ejemplo 1 Lectura del Suma de Muestra arreglo los elementos resultados 8
  • 9. Vectores - Ejemplo1 Program Ejemplo1; {Version 1} type Declaración del tipo del arreglo sumandos = array[1..10] of integer; var suma, i : integer; vec_sumandos : sumandos; Declaración de la variable arreglo 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 números es´, suma); end. Suma de los elementos 9
  • 10. 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. 10
  • 11. 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 11
  • 12. Vectores - Declaración  Luego de la declaración del tipo, se declara la variable.  formato var nombre_variable: nombre_del_tipo; 12
  • 13. Vectores - Declaración  Ejemplos de declaraciones:  Ej1: type Valores = array[ -10..10 ] of real; var precios: valores; 13
  • 14. Vectores - Declaración  Ejemplos de declaraciones:  Ej2: const Max= 500; type T_Texto = array[ 1..Max ] of char; var Texto: T_Texto; 14
  • 15. 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. 15
  • 16. 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 16
  • 17. Vectores - Manejo de índices Ej4: type DiasSemana = (Lunes, Martes, Miercoles,Jueves, Viernes, Sabado, Domingo ); T_Dias = array [DiasSemana] of integer; var Dias: T_Dias; 17
  • 18. 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] ) 18
  • 19. Vectores - Operaciones  Escritura de un vector for i:= 1 to 30 do writeln(Notas[i] ) 19
  • 20. 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; 20
  • 21. 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. 21
  • 22. 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; 22
  • 23. 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. 23
  • 24. 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); 24
  • 25. 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. 25
  • 26. Vectores - Vectores Paralelos  Dos o más arreglos que utilizan el mismo subíndice para acceder a elementos de distintos arreglos, se denominan arreglos paralelos. Estos arreglos pueden procesarse simultáneamente.  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 26
  • 27. Matrices  Resolvamos el siguiente problema:  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. 27
  • 28. 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) 28
  • 29. Matrices Mi_Matriz 9 5 6 2 4 8 3 9 5 6 2 4 8 3 Nombre de 9 5 6 2 4 8 3 la variable Posición : 3,1 Contenido : Mi_vector[3,1] = 9 29
  • 30. Matrices - Declaraciones  Ejemplos de declaraciones:  Ej1: type T_matriz = array[ 1..10, 1..10 ] of real; var Matriz: valores; 30
  • 31. Matrices - Declaraciones  Ejemplos de declaraciones:  Ej2: type T_matriz = array[ 1..10 ] of array [ 1..10 ] of real; var Matriz: valores; 31
  • 32. 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; 32
  • 33. 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] ) 33
  • 34. 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. 34
  • 35. 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. 35
  • 36. 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); 36
  • 37. 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; 37
  • 38. 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. 38