20241105 ProgrEstruct-Arrays-ejercicios_11 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Vale, pues a ver
00:00:00
Un array auxiliar de notas
00:00:03
¿De cuántas posiciones?
00:00:05
Lo que vosotros habéis hecho ahora
00:00:11
Pues vamos a escribirlo aquí
00:00:13
Y ya lo damos por cerrado, ¿no?
00:00:14
Un array auxiliar de notas
00:00:17
¿Con cuántas posiciones?
00:00:19
Con una menos
00:00:21
Que las de notas
00:00:22
Con una menos
00:00:24
Y ahora copiamos
00:00:25
del array nuestro de notas
00:00:27
y sea menor que notas
00:00:33
incrementando
00:00:35
y
00:00:40
no me no
00:00:41
copiamos
00:00:43
en aux de notas, ¿en dónde?
00:00:47
pues tenemos el mismo problema del ejercicio anterior
00:00:49
¿en dónde?
00:00:51
claro, copiamos la posición
00:00:54
y
00:00:56
¿dónde? pues lo mismo
00:00:56
vamos a hacer un contador que empiece valiendo 0
00:00:59
de hecho este mismo, post aux alumnos
00:01:01
le podríamos usar si le hubiera puesto un nombre
00:01:03
más genérico, pero bueno, para dejarlo
00:01:05
así todo más claro
00:01:07
posición de la
00:01:08
auxiliar de notas
00:01:11
inicialmente en la 0
00:01:12
inicialmente en la 0
00:01:15
copiamos
00:01:20
y una vez que este for ha terminado
00:01:25
que ha terminado aquí, hemos
00:01:27
copiado todas las notas del original
00:01:29
en el definitivo, pero
00:01:31
pero que
00:01:33
pero no lo hemos acabado
00:01:35
Nos falta hacer la excepción
00:01:36
Si la I es diferente
00:01:39
De la posición que toca eliminar
00:01:43
Bien
00:01:46
Nos falta esto
00:01:48
La posición a eliminar
00:01:51
Esta
00:01:52
Vale
00:01:53
Dígame
00:02:00
Un segundito
00:02:02
Seguimos
00:02:05
Ahora ya sí, ¿no?
00:02:07
Hemos copiado
00:02:11
En el array auxiliar de notas
00:02:12
Las notas de i
00:02:15
En la que toque
00:02:17
Incrementando
00:02:18
Cuando hemos copiado
00:02:19
Pero solamente aquellas posiciones
00:02:21
Que no sean las que hay que eliminar
00:02:24
Solamente
00:02:25
Cuando este for ya ha terminado
00:02:26
Cuando este for ya ha terminado
00:02:30
Sustituimos notas por aux de notas
00:02:32
Y ya está
00:02:35
Podríamos haber metido estos dos
00:02:37
Para haber hecho las dos copias en uno
00:02:41
Etcétera, mil cosas, pero lo que importa es que quede claro
00:02:43
Bueno, pues
00:02:45
Eliminar alumno en este caso
00:02:48
Más o menos
00:02:51
¿A dónde me quedo?
00:02:51
Ahí
00:02:55
Vale, pues ahora ya
00:02:55
Los otros casos con esta versión
00:03:18
Son iguales en realidad
00:03:20
Lo que pasa es que ahora ya no recorreremos hasta post
00:03:22
Sino hasta el tamaño de la RAI
00:03:24
¿Así?
00:03:26
Vale
00:03:37
Bueno, pues vamos a revisar los otros casos
00:03:38
Que estos ya son muy fáciles de modificar
00:03:44
Y ahora
00:03:46
Nota que queremos poner a un alumno
00:03:48
¿Qué es lo que cambian?
00:03:52
A ver, ¿por qué lloras?
00:03:54
Que te lo he quitado antes de tiempo
00:03:55
bueno, vamos a acabar
00:03:57
las modificaciones
00:04:03
esta y luego ya
00:04:05
con una visión global nos relajamos
00:04:07
entonces
00:04:09
el caso 3, poner nota a un alumno
00:04:11
aquí sí que no cambia nada, lo que cambia
00:04:13
es que en lugar de recorrer
00:04:15
el array hasta esa variable
00:04:17
pos, ya no hay que recorrer el array
00:04:19
hasta esa variable pos, hay que recorrer el array
00:04:21
en toda su longitud
00:04:23
porque el array tiene exactamente
00:04:24
los alumnos que hay. Luego
00:04:27
el caso 3 solo cambia
00:04:29
en esto.
00:04:31
Espera, vamos a revisar
00:04:35
todos los casos. El caso 4
00:04:37
del listado, lo único que cambia es que en lugar de
00:04:39
post, pues alumnos.lenz
00:04:41
Sí.
00:04:43
Pero bueno, no hay muchos más.
00:04:49
Y el contar
00:04:51
los suspensos, pues en lugar de esto
00:04:53
esto de aquí, bueno, sí, sí había unos cuantos
00:04:55
número de suspensos
00:04:57
entre alumnos de LED
00:05:04
todos los post se cambian
00:05:05
ahora ya no tenemos post alumnos
00:05:10
sino alumnos.led
00:05:12
y ya está
00:05:13
la aplicación se acabó en esta nueva versión
00:05:16
que es mucho más bonita
00:05:18
a ver, nos ha quedado larguísima
00:05:19
porque claro
00:05:24
todavía no sabemos sacar código
00:05:25
para ponerlo en otra parte con otro nombre
00:05:27
y ahora ya desde aquí llamarlo con su nombre
00:05:30
y nos quedan ficheros más cortitos
00:05:32
librerías, pero no os preocupéis que eso ya
00:05:34
lo vemos el jueves
00:05:35
no, no, no, el jueves
00:05:37
porque
00:05:40
sí, a ver, su nombre
00:05:41
genérico es librerías
00:05:44
claro
00:05:46
sí, sí, sí
00:05:46
pero librerías que haces tú
00:05:49
no, hemos hecho un cambio Estefano y yo
00:05:50
porque ahora
00:05:54
pero las librerías ya pasan un trimestre
00:05:55
Para el segundo trimestre, objetos.
00:05:57
Que es que no me voy a empezar.
00:06:01
No te pongas nervioso, no os pongáis nervioso a nadie.
00:06:02
Relajaos.
00:06:05
No os pongáis nerviosos.
00:06:07
A ver, primero, espera, por partes.
00:06:09
Caso 3.
00:06:11
Caso 3.
00:06:12
Sí, esta tarde.
00:06:17
O mañana por la tarde, como muy tarde.
00:06:18
El ejercicio y las grabaciones que faltan.
00:06:20
Ah, que me mandabas a mí.
00:06:23
Porque tú le mandas a cualquiera.
00:06:25
Venga, caso 3.
00:06:27
Para la derecha
00:06:28
Vale, ¿qué quieres ver de Lee?
00:06:30
Dos
00:06:44
Pero ya me has dicho que lo habías copiado
00:06:44
Venga, ¿dónde estás?
00:06:49
Ya está, dos
00:06:55
Vale, pues entonces, revisión general de cómo nos ha quedado esta versión
00:06:57
Esta versión ya sí que está muy guay, porque el array inicialmente tiene cero alumnos, perfecto, no ocupa nada.
00:07:05
Inicialmente tiene cero alumnos, perfecto.
00:07:15
Y ahora ya simplemente, funcionalidad de insertar, creamos un array de una posición más,
00:07:17
copiamos el antiguo
00:07:32
en el nuevo y en la
00:07:35
posición adicional que nos hemos inventado
00:07:37
el que acabamos de leer
00:07:39
y luego sustituimos
00:07:41
y con las notas lo mismo, eso es por encima
00:07:42
de lo que hemos hecho, luego ya en detalle
00:07:45
el que todavía tenga dudas pues lo mira en detalle en casa
00:07:46
luego lo va a ejecutar, etc.
00:07:49
el caso de eliminar, pues creamos
00:07:50
un auxiliar con una posición
00:07:53
menos del original
00:07:55
¿vale?
00:07:56
recorremos el array
00:08:00
antiguo y copiamos
00:08:01
en el nuevo salvo
00:08:03
exceptuando el nombre eliminar
00:08:05
aquí lo crítico es
00:08:07
que en qué posición del nuevo
00:08:09
copiamos, pues en una posición que empieza
00:08:11
valiendo cero y la vamos incrementando
00:08:13
cada vez que hacemos una copia
00:08:15
de tal forma que cuando no copiemos no la
00:08:16
incrementamos, solo incrementamos cuando
00:08:19
realmente hacemos una copia en esa posición
00:08:21
esto mismo con la nota
00:08:23
y luego ya lo otro
00:08:27
Pues era lo más sencillo
00:08:30
Lo otro ya lo habíamos hecho
00:08:32
Vale, pues vamos a probarla
00:08:33
Porque cuando ya hay tantas líneas
00:08:42
Algo lo podemos haber escrito mal
00:08:45
Y no es plan de que subamos mal las cosas
00:08:46
Venga
00:08:48
Hemos insertado un alumno
00:08:50
Ah, ya le he dado a eliminar directamente
00:08:52
Venga, pues vamos a eliminar a
00:08:55
Pepito, que es el que acabo de insertar
00:08:57
Vale, he probado
00:08:59
a propósito un caso límite, que es
00:09:06
en mi array solo hay
00:09:08
un alumno y voy a eliminar ese
00:09:10
y voy a eliminar ese
00:09:12
entonces me dice
00:09:14
en algún momento me he salido
00:09:15
del array
00:09:18
index 0 en un array
00:09:18
de longitud 0, lógicamente no existe
00:09:22
en algún momento
00:09:24
me he salido del array cuando solo tengo
00:09:26
una posición
00:09:28
vale, vamos a irnos
00:09:28
al código, a ver, en ese caso extremo
00:09:32
cuando mi array solo tiene 1
00:09:33
¿qué ha pasado?
00:09:35
vamos a ver
00:09:37
hemos insertado un alumno
00:09:38
eso ha funcionado correctamente
00:09:42
hemos creado un array
00:09:43
con una posición ahora mismo
00:09:44
tenía cero
00:09:46
pues un array de una posición
00:09:47
y ahora desde la cero hasta la uno
00:09:48
o sea en la cero solamente
00:09:51
perdón
00:09:52
hemos insertado un alumno
00:09:55
se ha insertado correctamente
00:09:57
alumnos tenía cero
00:09:59
con lo cual esto no se ejecuta
00:10:00
luego no estamos haciendo ninguna copia
00:10:01
y en la posición 0 copiamos el nuevo
00:10:03
vale, y sustituimos
00:10:06
y en notas lo mismo
00:10:07
de hecho si miramos el listado
00:10:10
después de haber insertado 1
00:10:11
tendrá que salir bien
00:10:13
o sea, insertar un alumno está bien
00:10:14
vamos a ver, listado de notas, 4
00:10:17
Pepito que tiene un 0
00:10:19
insertar está bien
00:10:21
vale, vamos a ver el eliminar que está ocurriendo
00:10:22
cuando solo tenemos un alumno en el array
00:10:25
cuando solo tenemos uno parece que está fallando
00:10:27
vamos a ver si tuviéramos dos
00:10:30
a ver si es ese caso el que falla
00:10:31
vamos a insertar otro más
00:10:32
introducimos nombre del alumno
00:10:34
Juan, vamos a sacar
00:10:36
el listado, pues ahí están los dos
00:10:38
Pepito y vamos a eliminar
00:10:40
ahora a Pepito
00:10:42
vale, pues también nos sale
00:10:44
entonces, en la parte de eliminar, algo raro
00:10:46
estamos haciendo
00:10:48
y si eliminamos el segundo
00:10:49
en lugar del primero, a ver qué ocurre
00:10:52
porque a lo mejor ahí ya podemos en las pruebas
00:10:54
acotar y decir, a ver, oye, que mi error
00:10:56
es cuando elimino el primero siempre
00:10:58
Vamos a ver
00:10:59
Vamos a probar a hacer una ejecución
00:11:01
Con dos alumnos
00:11:03
Y vamos a eliminar
00:11:05
El segundo
00:11:09
Bueno
00:11:10
Hemos hecho una cosa muy burra
00:11:13
Que no la sé
00:11:16
No era a propósito
00:11:17
Vamos a ver
00:11:18
Claro, pero
00:11:21
¿Qué es lo mejor que te puede ocurrir
00:11:25
Cuando haces un código largo?
00:11:27
Que te dé errores y arreglarlos
00:11:29
porque esa es la manera de aprender
00:11:31
vamos a ver, no hay nada más divertido
00:11:32
que arreglar un error, venga, eliminar
00:11:35
¿sí?
00:11:36
nombre alumno, vale
00:11:39
hacemos un alumno de una posición, hacemos un array
00:11:40
de una posición menos, hasta ahí no parece
00:11:43
que haya problemas
00:11:45
entonces, si el alumno
00:11:46
tiene una posición solo
00:11:49
vamos a hacer un array de posición 0
00:11:50
bueno, eso ya suena raro, pero vamos a ver
00:11:53
también nos ha fallado cuando teníamos un array
00:11:54
de posición 2
00:11:57
Entonces, claro
00:11:58
Entonces, tenemos una raíz de posición 2
00:11:59
Vamos a eliminar el primero
00:12:02
Hacemos una raíz de posición
00:12:04
De una posición 1
00:12:06
Vale, esto tiene pinta de que está bien
00:12:07
Y ahora
00:12:09
Desde i igual a 0
00:12:09
Menos la raíz de posición originales
00:12:15
Mientras
00:12:17
Ese alumno no sea igual a nombre
00:12:19
Copiamos
00:12:22
En esta
00:12:26
En la posición 0
00:12:30
El alumno
00:12:31
Que esté en la posición
00:12:33
Y
00:12:36
Pero, a ver, ¿no?
00:12:37
Yo lo veo bien, a ver
00:12:40
O es en notas donde sale el error, vamos a ver
00:12:42
Porque no veo, no veo por qué sale un problema
00:12:44
Vamos a ver
00:12:46
Pepe, venga
00:12:48
Uno
00:12:51
Juan, vale, ahí están los dos
00:12:53
Cuatro, bien
00:12:55
Y ahora, eliminamos al segundo
00:12:57
O al primero, da igual
00:12:59
Pepe
00:13:01
Vale, entonces
00:13:03
El error está en las notas
00:13:04
Vale, algo hemos hecho raro aquí
00:13:06
Vamos a ver, aus de notas
00:13:09
Notas.length
00:13:15
Menos uno
00:13:17
Si no es la posición
00:13:19
Que tengo que eliminar
00:13:25
Notas, la posición que empieza siendo cero
00:13:27
Notas de i
00:13:33
A ver si es que hemos sacado
00:13:37
Aquí mal la posición
00:13:39
Este
00:13:40
¿Eh? ¿Dónde está Kimielse?
00:13:42
A ver, es que el post
00:13:49
Claro, es que post eliminar
00:13:51
Me falta aquí el... ¿Pero si esto lo había escrito?
00:13:52
Se lo han borrado
00:13:55
¡Eh! Cuando habéis venido aquí a tocar cosas
00:13:56
Me lo habéis borrado a propósito para que dé un error
00:13:58
Y humillarme, ¿a que sí?
00:14:00
¿Reconoce?
00:14:03
Claro, es que me falta ese Else si lo hemos escrito antes
00:14:04
Claro, el de sacar la posición
00:14:07
Estaba en menos uno, con razón salía
00:14:09
Reinders Bound Exception porque la menos uno no existe
00:14:11
tú lo has visto
00:14:14
a ver si
00:14:16
y está grabado
00:14:16
sí, sí, sí
00:14:17
que yo lo había metido
00:14:19
al principio en el live
00:14:20
bueno, no, efectivamente
00:14:21
en el ELSE
00:14:22
vale, vamos a ver
00:14:22
vamos a ver
00:14:24
pero con esto daba seguro
00:14:25
porque trataba de hacer
00:14:26
a la menos uno
00:14:27
a ver, vamos a ver
00:14:27
espera, vamos a ver
00:14:31
vale
00:14:32
no
00:14:37
vale, entonces
00:14:38
si no es el nombre
00:14:42
en contra de la oposición
00:14:43
de eliminar
00:14:43
pues eliminar
00:14:44
igual ahí
00:14:45
Y ya está, alumnos.led
00:14:45
Vale, y ahora vamos a volver a probarlo
00:14:48
A ver si siguen dando errores
00:14:50
Vamos a ver si siguen dando errores
00:14:52
Venga
00:14:54
Introducimos uno
00:14:55
Pepito
00:14:58
Insertamos alumno
00:15:00
Juan
00:15:02
Vamos a eliminar a
00:15:03
Pepito
00:15:06
Vamos a sacar el listado
00:15:07
De notas
00:15:10
Juan, vale, vamos a eliminar
00:15:11
lo único que me queda, que este ya es un caso límite
00:15:14
otra vez, a ver qué pasa
00:15:16
vamos a eliminar a Juan
00:15:17
listado de notas
00:15:20
vale, la aplicación estaba
00:15:22
perfecta, me habéis borrado eso
00:15:24
vale
00:15:25
vamos
00:15:30
¿qué parte?
00:15:33
¿ya?
00:15:42
que lo gire a la derecha
00:15:43
¿así?
00:15:46
no sé cómo eres tú
00:15:50
Gira a la derecha, que me vaya a la derecha, quieres decir
00:15:51
A la derecha izquierda
00:15:53
A ver, ¿qué derecha?
00:15:55
La única izquierda
00:15:57
No, pero
00:15:58
No, pero
00:16:00
¿Me estás tomando el pelo?
00:16:03
Ahí
00:16:09
Ahí, ¿está bien?
00:16:09
¿Te gusta ahí?
00:16:12
Te lo suplico en lo propio
00:16:13
¿Por qué no te lo pongo?
00:16:14
Ah
00:16:20
Súbelo
00:16:20
hay alguien que no le funcione
00:16:22
y no encuentre por qué
00:16:26
súbelo
00:16:27
que verás que rápido te lo encuentran tus compañeros
00:16:30
venga
00:16:32
lo que significa una aplicación más grande
00:16:35
es que hay que ser más cuidadoso
00:16:38
porque unas partes dependen de otras
00:16:40
entonces hay que ser más cuidadoso
00:16:43
en los detalles, pero es más fácil en realidad
00:16:44
una aplicación grandota
00:16:46
estás haciendo lo mismo una y otra vez
00:16:47
pero claro, tienes que revisar muy bien
00:16:49
que todo encaje, que todos los detalles
00:16:52
los hayas puesto bien
00:16:54
y se hace pesado revisarlo porque son muchas líneas
00:16:55
¿vale?
00:16:59
pues por eso
00:17:00
hemos lo que
00:17:01
como vamos a continuar
00:17:04
en el módulo es
00:17:05
vamos a sacar el listado que teníamos
00:17:08
a ver
00:17:10
el listado terrible
00:17:15
vale, bueno pues aquí
00:17:22
estamos haciendo unos y otros así
00:17:25
según nos va apeteciendo
00:17:26
¿vale?
00:17:27
el 28
00:17:29
está un poco hecho a nuestra manera
00:17:31
entonces
00:17:34
esto de aquí, estas dos partes
00:17:34
esto último de aquí
00:17:39
se vuelve un poco un galimatías
00:17:41
si uno no lo hace con
00:17:44
arrays multidimensionales, ¿vale?
00:17:46
que es lo que me ha preguntado William antes
00:17:47
entonces, esto de aquí
00:17:49
vamos a hacer una cosa
00:17:52
que es, ¡pa!
00:17:54
eso, fuera, a tomar por saco
00:17:55
¿vale? ahora subo el
00:17:59
listado nuevo sin eso
00:18:01
porque eso sin arrays multidimensionales
00:18:03
hace un poco pesado
00:18:06
vale, entonces haremos alguna de las idiomas de aquí
00:18:06
por supuesto
00:18:09
y de arrays multidimensionales
00:18:10
en realidad es hacer arrays de arrays
00:18:13
es la misma idea extendida
00:18:15
¿qué ocurre?
00:18:16
que luego realmente
00:18:18
no son estructuras de datos que se usen mucho
00:18:20
en algunas situaciones son muy prácticas
00:18:23
pues cuando uno tiene que simular
00:18:26
algo bidimensional como un tablero de ajedrez
00:18:27
lo que sea pueden ser prácticos
00:18:29
Pero no son estructuras que luego se usen demasiado. Entonces, como ya sí empezamos a necesitar para poder organizar códigos largos en partes el tema de las funciones, lo siguiente que vamos a contar es cómo sacar código a funciones, que es sencillo.
00:18:30
Vamos a contar cómo sacar código de funciones.
00:18:47
Y arrays multidimensionales, que son arrays y arrays,
00:18:50
lo vamos a dejar para que salga a través de algún ejercicio
00:18:53
más adelante, pero ahora mismo lo vamos a dejar ahí aparcado
00:18:57
hasta que hayamos visto sacar código de funciones, ¿vale?
00:19:00
Y en el examen no va a entrar nada de arrays multidimensionales,
00:19:04
¿vale?
00:19:09
Entonces, ¿qué va a entrar en el examen?
00:19:11
Lo que hemos visto hasta aquí y esto de hacer funciones,
00:19:12
que veremos a partir del jueves, que es sencillo, pero claro, es sencillo repitiendo lo mismo.
00:19:17
Si todo lo anterior no solo lo habéis entendido, que entendido pues lo damos por hecho,
00:19:23
sino además lo habéis estudiado y metido todo en la cabeza desde el principio,
00:19:28
porque si no, luego no hay de dónde tirar, cuando uno tiene que hacer algo no hay de dónde tirar.
00:19:33
La idea es fundamental, tienes que tener la idea, pero una vez que tienes la idea,
00:19:38
para ya concretarla, como no tengas de dónde tirar en la memoria, no hay manera.
00:19:42
vale, bueno pues entonces
00:19:47
lo de las funciones de librería hemos dicho que
00:19:49
desde el jueves
00:19:51
y esto de arrays multidimensionales por ahora lo vamos a dejar
00:19:52
aparcadito
00:19:54
tú tres en raya, tú tranquilo y volvemos a él
00:19:55
ya está, ¿lo tienes terminado?
00:19:59
bueno pues cuando lo termines me lo enseñas
00:20:01
y lo, vale
00:20:03
pues a ver
00:20:05
el 28
00:20:06
hemos hecho una versión
00:20:08
que no son exactamente estas funcionalidades
00:20:10
pero podéis hacer estas mismas
00:20:13
es un poco lo mismo, no tiene más historia
00:20:14
De lo anterior, ¿qué no hemos hecho?
00:20:16
Hay unas cuantas cosas que no hemos hecho, ¿verdad?
00:20:19
Ya es la hora
00:20:26
Ya es la hora 14.08
00:20:27
¿Alguna otra pregunta?
00:20:30
Me voy a echar el canso, hombre
00:20:34
Esa es la pregunta
00:20:35
Vale
00:20:36
Venga, me gustaría muchísimo
00:20:39
Que me hicierais el 27
00:20:45
Me gusta
00:20:50
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 3
- Fecha:
- 11 de noviembre de 2024 - 12:11
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 20′ 58″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 98.17 MBytes