You are on page 1of 4

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

Pontificia Universidad Católica de Valparaíso


Facultad de Ingeniería Arrays Unidimensionales (Vectores)
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

Asignatura notas[1] = 70
INF 140 – Informática I
notas[2] = 65
Profesores
notas[n]
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
PHM/DCP PHM/DCP INF 140 – Informática I

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.
- La notación algorítmica que utilizaremos es la siguiente: (muchas variables) 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
entero: numero[1..100] 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 Profesores
PHM/DCP INF 140 – Informática I PHM/DCP INF 140 – Informática I

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
var max_alumnos = 50
var
entero: temp[1..24],min, max, i
entero: n, i
real: prom, nota[1..45] real: prom, nota[1.. max_alumnos]
inicio
repetir
escribir(“Ingrese la cantidad de alumnos. El máximo de alumnos es cincuenta”)
const leer(n)
max_hora = 24 hasta_que ((n > 0) ∧ (n <= max_alumnos))

total = 45 escribir(“Ingresar notas de alumnos”)


var desde i  1 hasta n hacer
escribir(“Nota alumno ”,i,“= ”)
entero: temp[1..max_hora],min, max, i leer(nota[i])
real: prom, nota[1..total] fin_desde

Profesores Profesores
PHM/DCP INF 140 – Informática I PHM/DCP INF 140 – Informática I
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

algoritmo malo
Arrays Unidimensionales (Vectores)
var
entero: n, temp[1.. n]
inicio Asignación:
repetir
escribir(“n = “)
leer(n) <nombre del array> [subindice]  <valor>
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
PHM/DCP INF 140 – Informática I PHM/DCP INF 140 – Informática I

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:
leer (<nombre del array>[subindice]) /* Se desea insertar nuevo_elemento en la posición p */
/* 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]) ii–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
PHM/DCP INF 140 – Informática I PHM/DCP INF 140 – Informática I

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)

Eliminar: Imprimir - Escribir

/* Se desea eliminar elemento en la posición j */ hasta el momento se ha asumido


/* n corresponde al índice del último elemento*/ que cada <escribir> escribe en una línea nueva
...de ahora en adelante…
desde (i  j) hasta n-1 hacer se asume que todo es escrito en la misma línea
autos[i]  autos[i+1] saltar_linea  especifica que habrá un salto de línea
fin_desde

desde i  1 hasta 4 hacer


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

Profesores Profesores
PHM/DCP INF 140 – Informática I PHM/DCP INF 140 – Informática I
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
PHM/DCP INF 140 – Informática I PHM/DCP INF 140 – Informática I

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] ............. notas[i,n] <nombre del array> [subindice fila,subindice columna]  <valor>
.............
Fila i numero[1,1]  5
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 1 Columna 2 Columna n fin_desde
Profesores Profesores
PHM/DCP INF 140 – Informática I PHM/DCP INF 140 – Informática I

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
escribir(“datos fila ”,i) leer (<nombre del array> [subindice fila, subindice columna])
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
PHM/DCP INF 140 – Informática I PHM/DCP INF 140 – Informática I
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
encuentra en un proceso de renovación tecnológica, almacenar el nombre del plato, sus ingredientes y el precio. Haga
por ello requiere de un software que gestione los un bosquejo de los arrays utilizados describiendo claramente 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
algoritmo que realice lo siguiente: 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 Profesores
PHM/DCP INF 140 – Informática I PHM/DCP INF 140 – Informática I

Pontificia Universidad Católica de Valparaíso


Escuela de Ingeniería Informática

se pueden definir & usar …

arreglos multidimensionales
¿?

Profesores
PHM/DCP INF 140 – Informática I

You might also like