Saltar navegación

20241105 ProgrEstruct-Arrays-ejercicios_11 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 11 de noviembre de 2024 por Raquel G.

3 visualizaciones

Descargar la transcripción

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
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
¿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
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
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
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

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid