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