Profesores PHM/DCP 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
Pro
fesore
s
PH
M/D
CP
Pontificia Universidad Católica de Valparaíso
Facultad de Ingeniería
Escuela de Ingeniería Inform
ática
“Algoritm
os y Arreglos”
Asignatura
INF 140 –
Inform
ática I
Profesores
Pamela Herm
osilla M
onckton
Daniel Cabrera Paniagua
Pro
fesore
s
PH
M/D
CP
-U
n array
es u
n c
onju
nto
fin
ito y
ord
ena
do d
e e
lem
ento
s h
om
ogé
neos
Cada elemento puede ser identificado
Son del mismo tipo de datos
-U
n arrayunidim
ensional o vector
es e
l tipo d
e a
rra
ym
ás s
imple
Subíndice designa la posición
del elemento en el vector
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysUnidimensionales (Vectores)
notas[1] = 70
notas[2] = 65
notas[3] = 62
notas[4] = 60
nota
s[n
]
70
65
62
60
58
55
50
Arreglo notas
Pro
fesore
s
PH
M/D
CP
-Las operaciones
que s
e p
ueden r
ealiz
ar
con v
ecto
res s
on:
asig
nació
n,
lectu
ra,
escritu
ra,
recorr
ido,
actu
aliz
ació
n (
añ
adir,
borr
ar,
insert
ar)
, ord
enació
n,
búsqued
a.
-La n
ota
ció
n a
lgorí
tmic
a q
ue u
tiliz
are
mos e
s la s
iguie
nte
:
<tipo de dato> :<nombre_del_arreglo>[1..dim
ension]
entero: numero[1..100]
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysUnidimensionales (Vectores)
Pro
fesore
s
PH
M/D
CP
sin
array
…
(muchas v
ari
able
s)
var re
al: n
ota
1,n
ota
2,
nota
3,
sum
… escribir(“
nota
1 =
“)
leer(
nota
1)
… sum
�nota
1 +
nota
2 +
nota
3
con array
…
var re
al: n
ota
[1..
3],
sum
… desde
i �
1hasta
3hacer
escribir(“
nota
”,i,
“=
”)
leer(
nota
[i])
fin_desd
e
sum
�0
desde
i �
1hasta
3hacer
sum
�sum
+ n
ota
[i]
fin_desd
e
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysUnidimensionales (Vectores)
Pro
fesore
s
PH
M/D
CP
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]
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysUnidimensionales (Ejemplos)
Pro
fesore
s
PH
M/D
CP
algoritm
o ejemplo
const
max_alumnos= 50
var entero: n, i
real: prom, nota[1.. m
ax_alumnos]
inicio
repetir
escribir(“Ingrese la cantidad de alumnos. El máxim
o de alumnos es cincuenta”)
leer(n)
hasta_que((n > 0) ∧ ∧∧∧(n <= m
ax_alumnos))
escribir(“Ingresar notas de alumnos”)
desde i � ���
1 hasta n
hacer
escribir(“Nota alumno ”,i,“= ”)
leer(nota[i])
fin_desde
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
Ejemplo
Pro
fesore
s
PH
M/D
CP
algoritm
o m
alo
var entero: n, temp[1.. n]
inicio
repetir
escribir(“n = “)
leer(n)
hasta_quen > 0
desde i � ���
1 hasta n hacer
…
MAL � ��� IN
F 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
Pro
fesore
s
PH
M/D
CP
Asignación:
<nombre del array> [subindice] � ���
<valor>
numero[2] � ���
5
desdei � ���
1hasta
5hacer
numero[i] � ���
8
fin_desde
numero[x] � ���
x + y
numero[a] � ���
temp[5] + 2
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysUnidimensionales (Vectores)
Pro
fesore
s
PH
M/D
CP
Lectura:
leer (<nombre del array>[subindice])
leer (numero[4])
Escritura:
escribir (<nombre del array>[subindice])
escribir (“el número es: ”,numero[3])
leer (numero[x])
leer (numero[a+b])
escribir (“el número es: ”,numero[a])
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysUnidimensionales (Vectores)
Pro
fesore
s
PH
M/D
CP
Inserción:
/* Se desea insertarnuevo_elemento
en la posición p */
/* i corresponde al índice del penúltim
o elemento*/
mientras(i >= p)hacer
autos[i+1] � ���
autos[i]
i � ���
i –1
fin_mientras
autos[p] � ���
nuevo_elemento
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysUnidimensionales (Vectores)
Pro
fesore
s
PH
M/D
CP
Eliminar:
/* Se desea eliminar elemento en la posición j */
/* n corresponde al índice del últim
o elemento*/
desde(i � ���
j) hasta n-1
hacer
autos[i] � ���
autos[i+1]
fin_desde
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysUnidimensionales (Vectores)
Pro
fesore
s
PH
M/D
CP
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 m
isma línea
saltar_linea� ���
especifica que habrá
un salto de línea
desde i � ���
1 hasta 4 hacer
escribir(nombre[i],“”)
fin_desde
saltar_linea
desde i � ���
1 hasta 4 hacer
escribir(edad[i],“”)
fin_desde
ana pedro luis
felipe
22 19 26 21
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysUnidimensionales (Vectores)
Pro
fesore
s
PH
M/D
CP
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
Ejercicio
Desa
rro
llar
un
a
lgo
ritm
o
qu
e
pe
rmita
re
cib
ir
50
nú
me
ros
en
u
n
arr
eg
lo
un
idim
ensio
na
l,
y
lue
go
los
liste
.
Desa
rro
llar
un
a
lgo
ritm
o
qu
e
pe
rmita
re
cib
ir
50
nú
me
ros e
n u
n a
rre
glo
un
idim
en
sio
na
l, y
lu
eg
o los lis
te
(en
am
bos s
en
tid
os).
Desa
rro
llar
un
a
lgo
ritm
o
qu
e
pe
rmita
re
cib
ir
50
nú
me
ros e
n u
n a
rre
glo
un
idim
en
sio
na
l, y
lu
eg
o los lis
te
(en
am
bos s
en
tid
os).
Utiliz
ar
pro
ce
dim
ien
tos.
Pro
fesore
s
PH
M/D
CP
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
Algoritm
o 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
Pro
fesore
s
PH
M/D
CP
Un arraybidim
ensional
se p
ued
e c
onsid
era
r com
o u
n v
ecto
r de v
ecto
res.
Es
por
consig
uie
nte
, un c
onju
nto
de e
lem
ento
s h
om
og
éne
os y
ord
ena
dos e
n e
l que
se n
ecesita e
specific
ar
dos s
ubín
dic
es p
ara
poder
identificar
cada e
lem
ento
del
arr
ay.
Fila 1
notas[1,1]notas[1,2]
..............
notas[1,n]
notas[2,1]notas[2,2]
............
notas[2,n]
notas[i,1]notas[i,2]
.............
notas[i,n]
.............
notas[m,1]notas[m,2]
..............
.............
notas[m,n]
Fila 2 Columna 1
Columna 2
Fila i
Columna n
Fila m
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysBidimensionales (Matrices)
Pro
fesore
s
PH
M/D
CP
Las operaciones que se pueden realizar con m
atrices son: asignación,
lectura, escritura, recorrido, actualización (añadir, borrar, insertar),
ordenación, búsqueda.
La notación algorítm
ica 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> [subindicefila,subindicecolumna] � ���
<valor>
numero[1,1] � ���
5
desdei � ���
1hasta
3hacer
desdej � ���
1hasta
5hacer
numero[i,j] � ���
0
fin_desde
fin_desde
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysBidimensionales (Matrices)
Pro
fesore
s
PH
M/D
CPLlenado 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
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysBidimensionales (Matrices)
Pro
fesore
s
PH
M/D
CP
Lectura:
leer (<nombre del array> [subindicefila, subindicecolumna])
leer (numero[2,4])
Escritura:
escribir (<nombre del array>)[subindicefila, subindicecolumna])
escribir (“la contidad es: ”, numero[6,7])
leer (numero[a,b])
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
ArraysBidimensionales (Matrices)
Pro
fesore
s
PH
M/D
CP
Un
o d
e lo
s re
sto
rante
sm
ás im
po
rta
nte
s d
el
pa
ís se
en
cu
en
tra
e
n u
n p
roceso
d
e re
no
vació
n te
cn
oló
gic
a,
po
r e
llo
req
uie
re
de
u
n
so
ftw
are
q
ue
ge
stio
ne
los
dis
tin
tos p
lato
s q
ue
tie
ne
al se
rvic
io d
e s
us c
lien
tes.
El
ge
ren
te d
e e
ste
esta
ble
cim
ien
to t
ien
e p
len
a c
on
fia
nza
en
lo
s e
stu
dia
nte
s d
e la
PU
CV
, ra
zó
n p
or
la c
ua
l le
ha
so
licita
do
a lo
s a
lum
no
s d
e I
NF
-14
0 q
ue c
on
str
uyan
un
alg
oritm
o q
ue
re
alic
e lo
sig
uie
nte
:
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
Ejercicio
Pro
fesore
s
PH
M/D
CP
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática
Ejercicio
1)
Ing
reso
de
lo
s p
lato
s o
fre
cid
os a
l pú
blic
o,
para
ello
deb
e
alm
ace
na
r e
l n
om
bre
de
l p
lato
, su
s in
gre
die
nte
s y
el pre
cio
. H
aga
un
bo
sq
uejo
de
lo
s a
rra
ys
utiliz
ad
os d
escrib
ien
do
cla
ram
en
te los
da
tos q
ue
se
alm
ace
na
n e
n e
llos.
2)
Elim
ina
ció
n d
e u
n p
lato
ele
gid
o p
or
el u
su
ario.
Su
po
ng
a q
ue n
o
se
in
gre
sa
n p
lato
s r
ep
etid
os.
3)
Cu
an
tos p
lato
s t
ien
en
al m
en
os 3
in
gre
die
nte
s e
n c
om
ún
. L
os 3
ing
red
ien
tes d
eb
en
se
r in
gre
sa
do
s p
or
el u
su
ario.
4)
Cu
an
tos p
lato
s t
ien
en
“N
”in
gre
die
nte
s.
“N”
de
be s
er
ingre
sad
o
po
r e
l u
su
ario
.
Pro
fesore
s
PH
M/D
CPse pueden definir & usar …
arreglos multidimensionales
¿?
☺
INF 140 –Inform
ática I
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Inform
ática