20241114 ProgrEstruct-Funciones_ejer_2 - 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:
Venga, pues ejercicio 6
00:00:00
Vale, pues entonces
00:00:03
El ejercicio 6 nos pide una función
00:00:18
Entonces hacemos nuestra función
00:00:19
Y luego ya si queremos probarla
00:00:21
Ya nos vamos al main y probamos lo que queramos
00:00:24
Pero nosotros vamos a programar nuestra función
00:00:26
Que la función es independiente
00:00:28
De cualquier main que la llame
00:00:30
Es independiente, va por libre
00:00:32
Vale, esta función, ¿qué requisitos tiene?
00:00:33
Va a recibir
00:00:37
Muchos números enteros
00:00:38
No sé cuántos
00:00:40
entonces lo más cómodo es que le pase un array
00:00:40
y ese array ya que tenga el tamaño que sea
00:00:44
entonces vamos a hacer que esta función le paso yo un array
00:00:46
ese array tendrá los números que sean
00:00:51
y me va a devolver el valor máximo de todos ellos
00:00:53
con lo cual si el array es de enteros
00:00:57
lo que me va a devolver es un entero
00:01:00
entonces tengo ya tanto el valor de retorno como el parámetro
00:01:01
pues venga, si hacemos la
00:01:05
la función
00:01:07
me va a devolver un numerito entero
00:01:10
que es el mayor de todos
00:01:13
luego al devolver un numerito entero
00:01:14
tipo de dato del valor que me devuelvo
00:01:16
en entero
00:01:19
la función es el máximo, el máximo de que
00:01:19
repito
00:01:23
si yo quiero que sea
00:01:24
el máximo de cualquier cantidad
00:01:27
de enteros
00:01:29
no tiene sentido que yo lo plante de esta manera
00:01:29
porque en algún momento tendría que parar
00:01:33
tendría que decidir cuantos le paso
00:01:34
le paso 3, le paso 5, le paso 7
00:01:36
entonces no lo sé
00:01:38
le puedes pasar cualquier cantidad de números enteros
00:01:40
pues entonces no tengo más alternativa
00:01:42
que decir, ah, pues quita
00:01:44
le paso un array
00:01:46
y ya está, y en ese array
00:01:47
que vayan los que sean
00:01:50
y ahora
00:01:51
este array que tamaño tendrá
00:01:52
no lo sé, depende
00:01:55
habrá veces que llamemos a la función
00:01:58
habrá veces que llamemos a la función
00:02:00
pasando un array de 7
00:02:03
Bueno, pero habrá veces que la llamemos
00:02:05
Pasando un array de 5
00:02:08
Bueno, no lo sé
00:02:09
Aquí lo único que hemos comprometido
00:02:10
Es que cuando llamemos a máximo
00:02:12
Desde el main
00:02:14
Cuando llamemos a máximo
00:02:15
Le pasemos un array
00:02:17
Es lo único que hemos comprometido
00:02:19
Cuando llamemos a máximo
00:02:21
Lo que le pasemos ahí tiene que ser un array
00:02:22
El tamaño, pues el que sea
00:02:24
Una vez será uno, de tres será otro
00:02:26
Pero lo que está claro es
00:02:27
Que el tamaño de ese array
00:02:29
Aquí lo podemos averiguar
00:02:30
Porque para eso tenemos esto
00:02:32
Entonces, nosotros aquí dentro sabemos que el tamaño de ese array lo puedo obtener de esta manera.
00:02:33
Vale, pues entonces, ahora, con este array, ¿qué tenemos que hacer?
00:02:42
Ver cuál es el valor máximo de todas las posiciones que tiene.
00:02:46
Entonces, el algoritmo para ver el máximo de un conjunto de valores, ya lo vimos.
00:02:50
Ese ya lo vimos y ya lo tenemos aprendido.
00:02:55
¿Qué es?
00:02:57
Bueno, el resultado final mío, ¿cuál va a ser?
00:02:58
Pues el resultado final mío va a ser este valor, que es el que yo voy a querer devolver.
00:03:00
Este es el resultado final mío, un valor que tengo que averiguar y que luego va a ser el que devuelva.
00:03:07
¿Cómo averiguo este valor?
00:03:13
Siguiendo el algoritmo de máximo, que ya nos sabemos qué es.
00:03:14
El máximo inicial, el primero de todos.
00:03:18
Y ahora empezamos a hacer un recorrido, o lo que es lo mismo, un bucle.
00:03:22
porque para hacer un recorrido
00:03:27
sobre un conjunto de valores
00:03:29
necesito un bucle
00:03:30
un recorrido o un bucle que pase por todos
00:03:31
en cada uno de ellos
00:03:35
si supera al que es máximo
00:03:37
hasta ese momento
00:03:39
lo sobrescribe
00:03:40
entonces ese algoritmo como ya nos lo sabemos
00:03:42
lo único que tenemos que hacer es aplicarlo
00:03:45
a este caso
00:03:46
aquí mi conjunto de valores me van llegando
00:03:48
por teclado, no, los tengo ya en el array
00:03:51
luego es facilísimo
00:03:53
inicializar máximo al primero de todos
00:03:55
es facilísimo
00:03:57
porque será este
00:03:58
y ahora me hago un recorrido
00:04:00
para todos y cada uno de los valores
00:04:03
del array
00:04:05
¿cómo recorremos un array?
00:04:05
pues ya lo sabemos
00:04:09
un array lo recorremos siempre de esta manera
00:04:11
vale, y ahora este for
00:04:13
¿qué me hace para cada
00:04:19
posición del array?
00:04:21
para cada elemento
00:04:23
pues aplica el algoritmo de máximo
00:04:24
Que es, oye, si este elemento en el que estamos parados, este elemento números de i resulta que es mayor que el que sea máximo hasta ese momento, tienes nuevo máximo.
00:04:27
Así que actualiza.
00:04:38
Y este es el algoritmo de máximo que ya lo explicamos y ya lo tenemos aprendido.
00:04:41
Entonces, gracias a que lo tenemos aprendido, lo podemos aplicar rápidamente a cualquier situación en la que lo necesitemos.
00:04:47
De ahí la importancia en que lo tengáis todo en la cabeza.
00:04:53
porque si tenéis que partir de cero en cada ejercicio
00:04:57
es imposible aprender, os he dicho lo mismo mil veces
00:05:01
no se construye un aprendizaje desde cero
00:05:04
se construye desde sucesivos ladrillos que se van poniendo
00:05:07
vale, entonces el algoritmo ya está aplicado
00:05:11
recorremos todos los valores
00:05:14
el que supere al máximo
00:05:19
se convierte en el nuevo máximo
00:05:22
y así todos y cada uno de ellos
00:05:24
Cuando el for ha terminado
00:05:25
Y solo cuando el for ha terminado
00:05:27
Solo en ese momento
00:05:30
Cuando el for ha terminado ya
00:05:31
Tenemos el valor máximo
00:05:33
¿Y qué tenemos que hacer con él?
00:05:35
Devolverlo
00:05:37
Oye, devuelve el valor que tú quieres
00:05:38
Es el que acabo de averiguar
00:05:40
Lo devolvemos y ya está
00:05:41
Pues ya está nuestra función
00:05:42
¿Vale?
00:05:44
Y ahora ya esta función
00:05:47
La usa quien quiera donde quiera
00:05:48
Por ejemplo, nosotros en nuestro main
00:05:50
Por ejemplo, vamos a hacernos un array de enteros
00:05:53
Para no leerlo por teclado
00:05:55
Y no perder mucho tiempo
00:05:59
Pues vamos a hacérnoslo inicializándolo
00:06:00
Directamente desde aquí
00:06:02
Que lo podíamos hacer así, ¿verdad?
00:06:04
Que también lo tenéis memorizado y aprendido
00:06:06
Pues venga, este
00:06:08
Menos
00:06:10
¿Eh?
00:06:12
No, el new int no hace falta
00:06:14
No, no, esto
00:06:16
A la vez te hace
00:06:20
Te lo hace todo, ya
00:06:22
Porque si no el new de antes
00:06:24
Se queda sobrescrito por este
00:06:27
Con el primer new habilita una dirección de memoria
00:06:29
Y con esto habilita otra que sobrescribe la anterior
00:06:31
Claro
00:06:33
Y ahora aquí ya podríamos mostrar
00:06:35
Podríamos
00:06:37
¿Qué vamos a mostrar aquí?
00:06:39
Le pasamos
00:06:42
Máximo de nums
00:06:43
¿Vale?
00:06:45
Entonces
00:06:49
Esta llamada
00:06:49
cada vez que lleguemos a máximo
00:06:52
hay que pasarle un array
00:06:55
no hay tutía, hay que pasarle un array
00:06:56
cada vez que lleguemos a máximo, hay que pasarle un array
00:06:59
bueno, pues nums es un array
00:07:01
pues le paso nums
00:07:02
nada de pasarle cosas raras ni cosas que os inventáis
00:07:04
el nombre del array es nums
00:07:07
por eso es lo que le paso, nums, el nombre del array
00:07:09
y ahora
00:07:11
esta función lo que ocurre es que me devuelve
00:07:12
un valor, se lo podríamos asignar
00:07:15
a una variable y mostrar
00:07:17
el contenido de la variable
00:07:19
pero bueno, me ahorro ese paso
00:07:20
directamente se lo paso al system out
00:07:22
y system out me va a mostrar
00:07:24
lo que esta función
00:07:26
me devuelve
00:07:29
¿no? pero está claro, ¿no? que me da igual
00:07:29
hacer esto, a lo mejor así lo veis más claro
00:07:32
guardo el resultado
00:07:35
aquí
00:07:36
un momento
00:07:37
y lo muestro, me da lo mismo
00:07:42
hacerlo así, guardarlo
00:07:45
en una variable, mostrar la variable
00:07:47
que directamente pasarle al
00:07:48
system out esto, porque eso
00:07:50
se evalúa
00:07:52
como ese valor, se evalúa como ese valor
00:07:54
se lo paso ya directamente al system out
00:07:56
me da lo mismo
00:07:58
con una variable intermedia
00:07:59
que ahorrándomela directamente
00:08:01
¿qué ibas a preguntar?
00:08:03
porque ese es el algoritmo
00:08:08
de máximo que tienes que tener estudiado
00:08:10
el algoritmo de máximo
00:08:12
o mínimo es, tienes un conjunto de valores, tienes que ver
00:08:14
cuál es el máximo
00:08:16
lo inicializas al primero de todos
00:08:16
y luego ya te pones a ver los demás
00:08:19
a ver, me he vuelto a ver el primero otra vez
00:08:22
pero da igual, a lo mismo, podría empezar desde uno
00:08:24
el algoritmo es así
00:08:26
tú tienes un conjunto de valores
00:08:27
y aquí la cajita donde vas a guardar el máximo
00:08:30
inicialmente la cajita es uno de ellos
00:08:32
el primero, por ejemplo, uno de ellos
00:08:34
y ahora ya empiezas a mirar los demás
00:08:36
uno tras otro en secuencia
00:08:38
si alguno de ellos supera el que es máximo
00:08:40
lo sobrescribe
00:08:43
y así vas uno tras otro
00:08:43
¿Vale? Entonces tenéis que tener
00:08:45
Todo lo demás estudiado porque si no
00:08:48
Se produce mucho atasco
00:08:50
Entonces nada, pues si ejecutamos esto
00:08:53
Pues el máximo es 7
00:08:55
¿Vale?
00:08:56
Venga, pues nos piramos
00:08:59
- 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:
- 8
- Fecha:
- 17 de noviembre de 2024 - 17:30
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 09′ 03″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 33.64 MBytes