SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Pontificia Universidad Católica de Valparaíso
                         Facultad de Ingeniería
                   Escuela de Ingeniería Informática




              “Algoritmos y Arreglos”


                               Asignatura
                        INF 140 – Informática I
                               Profesores
                     Pamela Hermosilla Monckton
                       Daniel Cabrera Paniagua




Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                Escuela de Ingeniería Informática



 Arrays Unidimensionales (Vectores)

- Un array es un conjunto finito y ordenado de elementos homogéneos

Cada elemento puede ser identificado                            Son del mismo tipo de datos

- Un array unidimensional o vector es el tipo de array más simple

 Arreglo notas

                 70      65        62         60           58         55     50

             notas[1] = 70
             notas[2] = 65
                                                           notas[n]
             notas[3] = 62
             notas[4] = 60
                                           Subíndice designa la posición
                                           del elemento en el vector


Profesores
                                                                            INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                               Escuela de Ingeniería Informática



 Arrays Unidimensionales (Vectores)
- Las operaciones que se pueden realizar con vectores son: asignación, lectura,
escritura, recorrido, actualización (añadir, borrar, insertar), ordenación, búsqueda.
- La notación algorítmica que utilizaremos es la siguiente:


<tipo de dato> : <nombre_del_arreglo> [1..dimension]

entero: numero[1..100]




Profesores
                                                                         INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                      Escuela de Ingeniería Informática



   Arrays Unidimensionales (Vectores)

sin array …                                         con array …

(muchas variables)                                     var
                                                          real: nota[1..3], sum
 var                                                   …
   real: nota1,nota2, nota3, sum                       desde i      1 hasta 3 hacer
                                                           escribir(“nota ”,i, “ = ”)
               …                                           leer(nota[i])
               escribir(“nota 1 = “)                    fin_desde
               leer(nota1)
               …                                        sum     0
               sum      nota1 + nota2 + nota3           desde i   1 hasta 3 hacer
                                                              sum    sum + nota[i]
                                                        fin_desde




  Profesores
                                                                                INF 140 – Informática I
  PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                   Escuela de Ingeniería Informática



 Arrays Unidimensionales (Ejemplos)


     var
             entero: temp[1..24],min, max, i
             real: prom, nota[1..45]




                     const
                       max_hora = 24
                       total = 45
                     var
                       entero: temp[1..max_hora],min, max, i
                       real: prom, nota[1..total]



Profesores
                                                                             INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                               Escuela de Ingeniería Informática



                                      Ejemplo

algoritmo ejemplo
const
  max_alumnos = 50
var
  entero: n, i
  real: prom, nota[1.. max_alumnos]
inicio
   repetir
     escribir(“Ingrese la cantidad de alumnos. El máximo de alumnos es cincuenta”)
     leer(n)
   hasta_que ((n > 0) ∧ (n <= max_alumnos))

  escribir(“Ingresar notas de alumnos”)
  desde i     1 hasta n hacer
    escribir(“Nota alumno ”,i,“= ”)
    leer(nota[i])
  fin_desde



 Profesores
                                                                         INF 140 – Informática I
 PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                 Escuela de Ingeniería Informática



algoritmo malo
var
  entero: n, temp[1.. n]
inicio
  repetir
     escribir(“n = “)
     leer(n)
   hasta_que n > 0

 desde i      1 hasta n hacer
   …



                                                       MAL


 Profesores
                                                                           INF 140 – Informática I
 PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                Escuela de Ingeniería Informática



 Arrays Unidimensionales (Vectores)


  Asignación:

 <nombre del array> [subindice]         <valor>


  numero[2]      5


  numero[x]      x+y


  numero[a]      temp[5] + 2

 desde i      1 hasta 5 hacer
             numero[i]   8
 fin_desde


Profesores
                                                                          INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                              Escuela de Ingeniería Informática



 Arrays Unidimensionales (Vectores)

Lectura:
leer (<nombre del array>[subindice])

leer (numero[4])

leer (numero[x])

leer (numero[a+b])

Escritura:
escribir (<nombre del array>[subindice])

escribir (“el número es: ”,numero[3])

escribir (“el número es: ”,numero[a])




Profesores
                                                                        INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                      Escuela de Ingeniería Informática



 Arrays Unidimensionales (Vectores)

Inserción:
 /* Se desea insertar nuevo_elemento en la posición p */
 /* i corresponde al índice del penúltimo elemento*/
 mientras (i >= p) hacer
   autos[i+1]        autos[i]
   i         i–1
 fin_mientras
 autos[p]          nuevo_elemento




Profesores
                                                                                INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                 Escuela de Ingeniería Informática



 Arrays Unidimensionales (Vectores)

Eliminar:
 /* Se desea eliminar elemento en la posición j */
 /* n corresponde al índice del último elemento*/
 desde (i     j) hasta n-1 hacer
   autos[i]   autos[i+1]
 fin_desde




Profesores
                                                                           INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                               Escuela de Ingeniería Informática



 Arrays Unidimensionales (Vectores)

  Imprimir - Escribir
hasta el momento se ha asumido
que cada <escribir> escribe en una línea nueva
...de ahora en adelante…
se asume que todo es escrito en la misma línea
saltar_linea    especifica que habrá un salto de línea



desde i     1 hasta 4 hacer
                                                    ana pedro luis felipe
  escribir(nombre[i],“ ”)
                                                    22 19 26 21
fin_desde
saltar_linea
desde i     1 hasta 4 hacer
   escribir(edad[i],“ ”)
fin_desde




Profesores
                                                                         INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                      Escuela de Ingeniería Informática



                             Ejercicio

Desarrollar un algoritmo que permita recibir 50
números en un arreglo unidimensional, y luego los
liste.

Desarrollar un algoritmo que permita recibir 50
números en un arreglo unidimensional, y luego los liste
(en ambos sentidos).

Desarrollar un algoritmo que permita recibir 50
números en un arreglo unidimensional, y luego los liste
(en ambos sentidos). Utilizar procedimientos.

Profesores
                                                                INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                               Escuela de Ingeniería Informática



Algoritmo listar_numeros
Var
  entero: contador, numeros[1.. 50]
Inicio
   contador <- 1
   repetir
     escribir(“Ingrese un número”)
     leer(numeros[contador])
     contador <- contador + 1
   hasta_que (contador = 51)

    contador <- 1
    escribir(“Se listan los números ingresados”)
    saltar_linea

    repetir
      escribir(numeros[contador])
      saltar_linea
      contador <- contador + 1
    hasta_que (contador = 51)

Fin
Profesores
                                                                         INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                            Escuela de Ingeniería Informática



     Arrays Bidimensionales (Matrices)
   Un array bidimensional se puede considerar como un vector de vectores. Es
   por consiguiente, un conjunto de elementos homogéneos y ordenados en el que
   se necesita especificar dos subíndices para poder identificar cada elemento del
   array.

                 notas[1,1] notas[1,2]               ..............         notas[1,n]

                 notas[2,1] notas[2,2]                ............         notas[2,n]
Fila 1
                                                      .............
Fila 2
                 notas[i,1]   notas[i,2]              .............        notas[i,n]
                                                      .............
Fila i
                 notas[m,1] notas[m,2]               ..............        notas[m,n]

Fila m



                                                                      Columna n
     Columna 1          Columna 2

    Profesores
                                                                                         INF 140 – Informática I
    PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                       Escuela de Ingeniería Informática



 Arrays Bidimensionales (Matrices)
Las operaciones que se pueden realizar con matrices son: asignación,
lectura, escritura, recorrido, actualización (añadir, borrar, insertar),
ordenación, búsqueda.
La notación algorítmica que utilizaremos es la siguiente:
 <tipo de dato> : <nombre_del_arreglo> [1..dim_fila,1..dim_columna]
 real: venta[1..3,1..5]

Asignación:
 <nombre del array> [subindice fila,subindice columna]               <valor>

 numero[1,1]         5

 desde i       1 hasta 3 hacer

   desde j         1 hasta 5 hacer
     numero[i,j]         0
   fin_desde
 fin_desde
Profesores
                                                                                 INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                    Escuela de Ingeniería Informática



 Arrays Bidimensionales (Matrices)
       Llenado por filas

       desde i     1 hasta m hacer
         escribir(“datos fila ”,i)
         saltar_linea
         desde j     1 hasta n hacer
            escribir(“dato posición ”,i, “ – ”,j, “ = ”)
            leer(nota[i,j])
          fin_desde
       fin_desde

                     Llenado por columnas

                     desde a     1 hasta n hacer
                       escribir(“datos columna “,a)
                       saltar_linea
                       desde b      1 hasta m hacer
                          escribir(“dato posición ”,b,“ –”,a, “ = ”)
                          leer(nota[b,a])
                        fin_desde
                     fin_desde
Profesores
                                                                              INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                                   Escuela de Ingeniería Informática



 Arrays Bidimensionales (Matrices)

Lectura:
leer (<nombre del array> [subindice fila, subindice columna])

leer (numero[2,4])

leer (numero[a,b])



Escritura:
escribir (<nombre del array>)[subindice fila, subindice columna])

escribir (“la contidad es: ”, numero[6,7])




Profesores
                                                                             INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                       Escuela de Ingeniería Informática



                              Ejercicio

Uno de los restorantes más importantes del país se
encuentra en un proceso de renovación tecnológica,
por ello requiere de un software que gestione los
distintos platos que tiene al servicio de sus clientes. El
gerente de este establecimiento tiene plena confianza
en los estudiantes de la PUCV, razón por la cual le ha
solicitado a los alumnos de INF-140 que construyan un
algoritmo que realice lo siguiente:




Profesores
                                                                 INF 140 – Informática I
PHM/DCP
Pontificia Universidad Católica de Valparaíso
                          Escuela de Ingeniería Informática



                                 Ejercicio

1) Ingreso de los platos ofrecidos al público, para ello debe
almacenar el nombre del plato, sus ingredientes y el precio. Haga
un bosquejo de los arrays utilizados describiendo claramente los
datos que se almacenan en ellos.

2) Eliminación de un plato elegido por el usuario. Suponga que no
se ingresan platos repetidos.

3) Cuantos platos tienen al menos 3 ingredientes en común. Los 3
ingredientes deben ser ingresados por el usuario.

4) Cuantos platos tienen “N” ingredientes. “N” debe ser ingresado
por el usuario.


 Profesores
                                                                    INF 140 – Informática I
 PHM/DCP
Pontificia Universidad Católica de Valparaíso
                    Escuela de Ingeniería Informática




       se pueden definir & usar …

    arreglos multidimensionales
                  ¿?

                                   ☺

Profesores
                                                              INF 140 – Informática I
PHM/DCP

Más contenido relacionado

Más de Daniel Barraza

[Pauta] [Inf 140] Control Ii
[Pauta] [Inf 140]   Control Ii[Pauta] [Inf 140]   Control Ii
[Pauta] [Inf 140] Control IiDaniel Barraza
 
[Pauta] [Inf 140] Control I
[Pauta] [Inf 140]   Control I[Pauta] [Inf 140]   Control I
[Pauta] [Inf 140] Control IDaniel Barraza
 
[Pauta] [Inf 140] Certamen Ii
[Pauta] [Inf 140]   Certamen Ii[Pauta] [Inf 140]   Certamen Ii
[Pauta] [Inf 140] Certamen IiDaniel Barraza
 
[Pauta] [Inf 140] Certamen I
[Pauta] [Inf 140]   Certamen I[Pauta] [Inf 140]   Certamen I
[Pauta] [Inf 140] Certamen IDaniel Barraza
 
Pauta Guia 1(1) Bloc De Notas
Pauta Guia 1(1)   Bloc De NotasPauta Guia 1(1)   Bloc De Notas
Pauta Guia 1(1) Bloc De NotasDaniel Barraza
 
[Pauta] Trabajo Grupal
[Pauta] Trabajo Grupal[Pauta] Trabajo Grupal
[Pauta] Trabajo GrupalDaniel Barraza
 
[Inf 140] Programacion De Presentaciones
[Inf 140] Programacion De Presentaciones[Inf 140] Programacion De Presentaciones
[Inf 140] Programacion De PresentacionesDaniel Barraza
 
[Inf 140] Procedimientos Y Funciones (4 X Hoja)
[Inf 140] Procedimientos Y Funciones (4 X Hoja)[Inf 140] Procedimientos Y Funciones (4 X Hoja)
[Inf 140] Procedimientos Y Funciones (4 X Hoja)Daniel Barraza
 
[Inf 140] Guia4 2008 01
[Inf 140]   Guia4 2008 01[Inf 140]   Guia4 2008 01
[Inf 140] Guia4 2008 01Daniel Barraza
 
[Inf 140] Guia1 2008 01
[Inf 140]   Guia1 2008 01[Inf 140]   Guia1 2008 01
[Inf 140] Guia1 2008 01Daniel Barraza
 
[Inf 140] Estructuras Repetitivas Y Selectivas (6 X Hoja)
[Inf 140]   Estructuras Repetitivas Y Selectivas (6 X Hoja)[Inf 140]   Estructuras Repetitivas Y Selectivas (6 X Hoja)
[Inf 140] Estructuras Repetitivas Y Selectivas (6 X Hoja)Daniel Barraza
 

Más de Daniel Barraza (20)

Lista
ListaLista
Lista
 
[Pauta] [Inf 140] Control Ii
[Pauta] [Inf 140]   Control Ii[Pauta] [Inf 140]   Control Ii
[Pauta] [Inf 140] Control Ii
 
Lista
ListaLista
Lista
 
[Pauta] [Inf 140] Control I
[Pauta] [Inf 140]   Control I[Pauta] [Inf 140]   Control I
[Pauta] [Inf 140] Control I
 
[Pauta] [Inf 140] Certamen Ii
[Pauta] [Inf 140]   Certamen Ii[Pauta] [Inf 140]   Certamen Ii
[Pauta] [Inf 140] Certamen Ii
 
[Pauta] [Inf 140] Certamen I
[Pauta] [Inf 140]   Certamen I[Pauta] [Inf 140]   Certamen I
[Pauta] [Inf 140] Certamen I
 
Ayudantia 1
Ayudantia 1Ayudantia 1
Ayudantia 1
 
Pauta Guia 1(1) Bloc De Notas
Pauta Guia 1(1)   Bloc De NotasPauta Guia 1(1)   Bloc De Notas
Pauta Guia 1(1) Bloc De Notas
 
Suma Numeros
Suma NumerosSuma Numeros
Suma Numeros
 
Pauta Guia 3
Pauta Guia 3Pauta Guia 3
Pauta Guia 3
 
Inf 140 Programa
Inf 140   ProgramaInf 140   Programa
Inf 140 Programa
 
Inf 140 Guia3 2008 01
Inf 140   Guia3 2008 01Inf 140   Guia3 2008 01
Inf 140 Guia3 2008 01
 
Inf 140 Guia2 2008 01
Inf 140   Guia2 2008 01Inf 140   Guia2 2008 01
Inf 140 Guia2 2008 01
 
Ejercicio Extra 1
Ejercicio Extra 1Ejercicio Extra 1
Ejercicio Extra 1
 
[Pauta] Trabajo Grupal
[Pauta] Trabajo Grupal[Pauta] Trabajo Grupal
[Pauta] Trabajo Grupal
 
[Inf 140] Programacion De Presentaciones
[Inf 140] Programacion De Presentaciones[Inf 140] Programacion De Presentaciones
[Inf 140] Programacion De Presentaciones
 
[Inf 140] Procedimientos Y Funciones (4 X Hoja)
[Inf 140] Procedimientos Y Funciones (4 X Hoja)[Inf 140] Procedimientos Y Funciones (4 X Hoja)
[Inf 140] Procedimientos Y Funciones (4 X Hoja)
 
[Inf 140] Guia4 2008 01
[Inf 140]   Guia4 2008 01[Inf 140]   Guia4 2008 01
[Inf 140] Guia4 2008 01
 
[Inf 140] Guia1 2008 01
[Inf 140]   Guia1 2008 01[Inf 140]   Guia1 2008 01
[Inf 140] Guia1 2008 01
 
[Inf 140] Estructuras Repetitivas Y Selectivas (6 X Hoja)
[Inf 140]   Estructuras Repetitivas Y Selectivas (6 X Hoja)[Inf 140]   Estructuras Repetitivas Y Selectivas (6 X Hoja)
[Inf 140] Estructuras Repetitivas Y Selectivas (6 X Hoja)
 

[Inf 140] Algoritmos Y Arreglos (1 X Hoja)

  • 1. Pontificia Universidad Católica de Valparaíso Facultad de Ingeniería Escuela de Ingeniería Informática “Algoritmos y Arreglos” Asignatura INF 140 – Informática I Profesores Pamela Hermosilla Monckton Daniel Cabrera Paniagua Profesores PHM/DCP
  • 2. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Unidimensionales (Vectores) - Un array es un conjunto finito y ordenado de elementos homogéneos Cada elemento puede ser identificado Son del mismo tipo de datos - Un array unidimensional o vector es el tipo de array más simple Arreglo notas 70 65 62 60 58 55 50 notas[1] = 70 notas[2] = 65 notas[n] notas[3] = 62 notas[4] = 60 Subíndice designa la posición del elemento en el vector Profesores INF 140 – Informática I PHM/DCP
  • 3. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Unidimensionales (Vectores) - Las operaciones que se pueden realizar con vectores son: asignación, lectura, escritura, recorrido, actualización (añadir, borrar, insertar), ordenación, búsqueda. - La notación algorítmica que utilizaremos es la siguiente: <tipo de dato> : <nombre_del_arreglo> [1..dimension] entero: numero[1..100] Profesores INF 140 – Informática I PHM/DCP
  • 4. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Unidimensionales (Vectores) sin array … con array … (muchas variables) var real: nota[1..3], sum var … real: nota1,nota2, nota3, sum desde i 1 hasta 3 hacer escribir(“nota ”,i, “ = ”) … leer(nota[i]) escribir(“nota 1 = “) fin_desde leer(nota1) … sum 0 sum nota1 + nota2 + nota3 desde i 1 hasta 3 hacer sum sum + nota[i] fin_desde Profesores INF 140 – Informática I PHM/DCP
  • 5. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Unidimensionales (Ejemplos) var entero: temp[1..24],min, max, i real: prom, nota[1..45] const max_hora = 24 total = 45 var entero: temp[1..max_hora],min, max, i real: prom, nota[1..total] Profesores INF 140 – Informática I PHM/DCP
  • 6. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Ejemplo algoritmo ejemplo const max_alumnos = 50 var entero: n, i real: prom, nota[1.. max_alumnos] inicio repetir escribir(“Ingrese la cantidad de alumnos. El máximo de alumnos es cincuenta”) leer(n) hasta_que ((n > 0) ∧ (n <= max_alumnos)) escribir(“Ingresar notas de alumnos”) desde i 1 hasta n hacer escribir(“Nota alumno ”,i,“= ”) leer(nota[i]) fin_desde Profesores INF 140 – Informática I PHM/DCP
  • 7. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática algoritmo malo var entero: n, temp[1.. n] inicio repetir escribir(“n = “) leer(n) hasta_que n > 0 desde i 1 hasta n hacer … MAL Profesores INF 140 – Informática I PHM/DCP
  • 8. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Unidimensionales (Vectores) Asignación: <nombre del array> [subindice] <valor> numero[2] 5 numero[x] x+y numero[a] temp[5] + 2 desde i 1 hasta 5 hacer numero[i] 8 fin_desde Profesores INF 140 – Informática I PHM/DCP
  • 9. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Unidimensionales (Vectores) Lectura: leer (<nombre del array>[subindice]) leer (numero[4]) leer (numero[x]) leer (numero[a+b]) Escritura: escribir (<nombre del array>[subindice]) escribir (“el número es: ”,numero[3]) escribir (“el número es: ”,numero[a]) Profesores INF 140 – Informática I PHM/DCP
  • 10. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Unidimensionales (Vectores) Inserción: /* Se desea insertar nuevo_elemento en la posición p */ /* i corresponde al índice del penúltimo elemento*/ mientras (i >= p) hacer autos[i+1] autos[i] i i–1 fin_mientras autos[p] nuevo_elemento Profesores INF 140 – Informática I PHM/DCP
  • 11. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Unidimensionales (Vectores) Eliminar: /* Se desea eliminar elemento en la posición j */ /* n corresponde al índice del último elemento*/ desde (i j) hasta n-1 hacer autos[i] autos[i+1] fin_desde Profesores INF 140 – Informática I PHM/DCP
  • 12. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Unidimensionales (Vectores) Imprimir - Escribir hasta el momento se ha asumido que cada <escribir> escribe en una línea nueva ...de ahora en adelante… se asume que todo es escrito en la misma línea saltar_linea especifica que habrá un salto de línea desde i 1 hasta 4 hacer ana pedro luis felipe escribir(nombre[i],“ ”) 22 19 26 21 fin_desde saltar_linea desde i 1 hasta 4 hacer escribir(edad[i],“ ”) fin_desde Profesores INF 140 – Informática I PHM/DCP
  • 13. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Ejercicio Desarrollar un algoritmo que permita recibir 50 números en un arreglo unidimensional, y luego los liste. Desarrollar un algoritmo que permita recibir 50 números en un arreglo unidimensional, y luego los liste (en ambos sentidos). Desarrollar un algoritmo que permita recibir 50 números en un arreglo unidimensional, y luego los liste (en ambos sentidos). Utilizar procedimientos. Profesores INF 140 – Informática I PHM/DCP
  • 14. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Algoritmo listar_numeros Var entero: contador, numeros[1.. 50] Inicio contador <- 1 repetir escribir(“Ingrese un número”) leer(numeros[contador]) contador <- contador + 1 hasta_que (contador = 51) contador <- 1 escribir(“Se listan los números ingresados”) saltar_linea repetir escribir(numeros[contador]) saltar_linea contador <- contador + 1 hasta_que (contador = 51) Fin Profesores INF 140 – Informática I PHM/DCP
  • 15. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Bidimensionales (Matrices) Un array bidimensional se puede considerar como un vector de vectores. Es por consiguiente, un conjunto de elementos homogéneos y ordenados en el que se necesita especificar dos subíndices para poder identificar cada elemento del array. notas[1,1] notas[1,2] .............. notas[1,n] notas[2,1] notas[2,2] ............ notas[2,n] Fila 1 ............. Fila 2 notas[i,1] notas[i,2] ............. notas[i,n] ............. Fila i notas[m,1] notas[m,2] .............. notas[m,n] Fila m Columna n Columna 1 Columna 2 Profesores INF 140 – Informática I PHM/DCP
  • 16. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Bidimensionales (Matrices) Las operaciones que se pueden realizar con matrices son: asignación, lectura, escritura, recorrido, actualización (añadir, borrar, insertar), ordenación, búsqueda. La notación algorítmica que utilizaremos es la siguiente: <tipo de dato> : <nombre_del_arreglo> [1..dim_fila,1..dim_columna] real: venta[1..3,1..5] Asignación: <nombre del array> [subindice fila,subindice columna] <valor> numero[1,1] 5 desde i 1 hasta 3 hacer desde j 1 hasta 5 hacer numero[i,j] 0 fin_desde fin_desde Profesores INF 140 – Informática I PHM/DCP
  • 17. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Bidimensionales (Matrices) Llenado por filas desde i 1 hasta m hacer escribir(“datos fila ”,i) saltar_linea desde j 1 hasta n hacer escribir(“dato posición ”,i, “ – ”,j, “ = ”) leer(nota[i,j]) fin_desde fin_desde Llenado por columnas desde a 1 hasta n hacer escribir(“datos columna “,a) saltar_linea desde b 1 hasta m hacer escribir(“dato posición ”,b,“ –”,a, “ = ”) leer(nota[b,a]) fin_desde fin_desde Profesores INF 140 – Informática I PHM/DCP
  • 18. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Arrays Bidimensionales (Matrices) Lectura: leer (<nombre del array> [subindice fila, subindice columna]) leer (numero[2,4]) leer (numero[a,b]) Escritura: escribir (<nombre del array>)[subindice fila, subindice columna]) escribir (“la contidad es: ”, numero[6,7]) Profesores INF 140 – Informática I PHM/DCP
  • 19. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Ejercicio Uno de los restorantes más importantes del país se encuentra en un proceso de renovación tecnológica, por ello requiere de un software que gestione los distintos platos que tiene al servicio de sus clientes. El gerente de este establecimiento tiene plena confianza en los estudiantes de la PUCV, razón por la cual le ha solicitado a los alumnos de INF-140 que construyan un algoritmo que realice lo siguiente: Profesores INF 140 – Informática I PHM/DCP
  • 20. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática Ejercicio 1) Ingreso de los platos ofrecidos al público, para ello debe almacenar el nombre del plato, sus ingredientes y el precio. Haga un bosquejo de los arrays utilizados describiendo claramente los datos que se almacenan en ellos. 2) Eliminación de un plato elegido por el usuario. Suponga que no se ingresan platos repetidos. 3) Cuantos platos tienen al menos 3 ingredientes en común. Los 3 ingredientes deben ser ingresados por el usuario. 4) Cuantos platos tienen “N” ingredientes. “N” debe ser ingresado por el usuario. Profesores INF 140 – Informática I PHM/DCP
  • 21. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática se pueden definir & usar … arreglos multidimensionales ¿? ☺ Profesores INF 140 – Informática I PHM/DCP