Saltar navegación

20241108 ProgrEstruct-Funciones_5 - 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.

8 visualizaciones

Descargar la transcripción

Otra que dijimos es, bueno, otra forma a lo mejor más sencilla. 00:00:00
Vamos a asumir, ¿qué ocurre cuando un número es primo? 00:00:04
Que no tiene ningún divisor, no tiene ninguno, entre 2 y 1 menos que el mismo, ¿verdad? 00:00:08
Eso es por definición, no hay ningún divisor. 00:00:14
Vale, pues entonces es más fácil decir, voy a asumir de partida que lo es, que efectivamente no tiene ninguno. 00:00:17
Y ahora voy a buscar un contraejemplo. 00:00:24
voy a buscar entre todos los números 00:00:26
entre 2 y 1 inferior a él 00:00:28
voy a buscar uno que me haga cambiar de opinión 00:00:29
en cuanto encuentre uno 00:00:32
que me hace cambiar de opinión 00:00:34
ya puedo concluir que es primo 00:00:35
es falso 00:00:38
es otra forma en la que lo pensamos 00:00:39
bueno, pues esa forma es esta 00:00:41
de partida asumo realmente que 00:00:43
no tiene ninguno 00:00:45
no tiene ningún divisor 00:00:47
eso es lo mismo que decir que de partida 00:00:49
asumimos que es primo es true 00:00:51
y ahora vamos a comprobar 00:00:53
con todos los números entre 2 00:00:55
¿vale? 00:00:57
y num-1 00:01:00
¿vale? a lo mejor se ve mejor 00:01:01
si en lugar de poner menor que num 00:01:04
ponemos menor o igual que num-1 00:01:05
vamos a comprobar 00:01:08
todos los números entre 2 y num-1 00:01:11
en cuanto encuentre 1 00:01:13
en cuanto encuentre 1 00:01:16
que es divisor 00:01:17
ya está, ya puedo cambiar de opinión 00:01:18
¿vale? es como lo hicimos en su momento 00:01:21
entonces luego además 00:01:22
incorporamos y dijimos 00:01:25
a ver, en cuanto haya encontrado 00:01:26
ya uno que me hace cambiar de opinión 00:01:29
claro, ya el resto 00:01:31
del for me da exactamente igual 00:01:33
pues entonces por eso añadimos aquí 00:01:35
esta condición 00:01:37
dijimos, le voy a añadir 00:01:39
además, para que el 00:01:41
for entre 00:01:43
solamente 00:01:44
si es primo sigue siendo true 00:01:46
porque en cuanto lo he cambiado a false 00:01:49
en cuanto lo he cambiado a false es que ya no me interesa 00:01:51
seguir buscando divisores, ya no me interesa 00:01:53
en cuanto he encontrado el primer divisor 00:01:55
ya está, pues pongo esto a 00:01:57
falso, esto como es un and 00:01:59
el total será falso y ya no entrará 00:02:01
más, vale 00:02:03
entonces esto es 00:02:05
el código más sencillo 00:02:07
más fácil, más cómodo y más 00:02:09
eficiente para ver si un número es primo o no 00:02:11
vale 00:02:13
y a 00:02:14
vale 00:02:21
entonces de hecho hasta 00:02:24
podríamos cambiarlo, hacerlo 00:02:26
esto está claro, lo que hemos hecho, es lo mismo 00:02:28
que hicimos hace un mes y pico, es igual. 00:02:30
¿Está claro, no? 00:02:33
Y ahora ya, 00:02:35
aprovechando que estamos trabajando con funciones, 00:02:36
podríamos decir, bueno, lo puedo hacer 00:02:38
hasta más cortito, incluso. 00:02:40
Más cortito en código no significa... 00:02:43
Es decir, que es, en cuanto yo 00:02:46
encuentro un divisor, 00:02:48
en cuanto encuentro un divisor, es que 00:02:51
ya sé el resultado de mi función, ya sé que es 00:02:52
falso. Pues en ese momento 00:02:54
planto el retún. En ese momento 00:02:56
planto el retún. Lo podríamos poner así, 00:02:58
¿verdad? Por ejemplo, voy a ponerla 00:03:00
en otra parte 00:03:02
para que no pisar 00:03:03
esta. Por ejemplo, 00:03:06
imagínate, es primo, versión 2. 00:03:11
Entonces, 00:03:14
en cuanto 00:03:15
yo he encontrado un divisor, 00:03:17
en cuanto yo he encontrado, ya sé cuál es 00:03:18
el resultado de mi función. Que sé que es 00:03:21
falso. Y ya no me hace falta 00:03:23
hacer nada más. 00:03:25
Entonces, podría aquí en el mismo if 00:03:27
plantarle ya un return 00:03:29
falso. Y punto pelota. 00:03:30
¿Vale? Porque en cuanto ya he encontrado 00:03:33
Un divisor, retun falso 00:03:36
Sal por falso y ya está 00:03:38
Que no encuentras ningún divisor 00:03:39
El for termina 00:03:42
El for ha terminado, no has encontrado 00:03:43
Ningún divisor, con lo cual no has salido 00:03:45
Con retun, si no has salido con retun 00:03:47
Llegarás aquí 00:03:50
Entonces si llegas aquí, ¿qué tienes que devolver? 00:03:50
True 00:03:54
Tienes que devolver true 00:03:54
A ver 00:03:56
Es que esto te lo ahorras, por ejemplo 00:03:58
Esto lo puedes quitar, entonces se queda más claro 00:04:01
Esto ya no te hace falta 00:04:03
Y esto te lo quitas, esto te sobra 00:04:04
Entonces el código te queda así 00:04:07
Te has ahorrado una variable local 00:04:09
Te has ahorrado esta condición 00:04:12
¿Vale? 00:04:14
La variable local esta no te hace falta 00:04:17
Ni esto de aquí 00:04:19
¿Vale? 00:04:21
Entonces nos limitamos a hacer un for 00:04:23
Entre todos los números 00:04:25
Entre 2 y num-1 00:04:26
En cuanto encontramos 00:04:28
1 que es divisor 00:04:30
Ahí ya sabemos que la función puede terminar 00:04:32
Porque ya tengo el resultado 00:04:34
Que es false, ya lo tengo 00:04:36
Por return false 00:04:37
Que no 00:04:38
Que no encuentro ninguno 00:04:41
Entonces mi for termina 00:04:43
Termina, los ha comprobado todos 00:04:44
Y nunca salió por return 00:04:47
Nunca salió por return 00:04:48
Entonces si nunca salió por return 00:04:50
Ha llegado a este punto 00:04:52
Que tendré que devolver ahí, true 00:04:53
Porque no encontró ninguno 00:04:55
Entonces esto es lo más corto 00:04:57
Lo más cómodo, lo más fácil 00:05:02
y de alguna manera también relaciona tu pregunta 00:05:03
Pablo, mucho mejor 00:05:06
que usar una librería externa porque 00:05:08
más ese QRT tiene dentro 00:05:09
vete a saber cuánta complejidad 00:05:12
qué necesidad 00:05:13
si lo podemos hacer de forma sencilla 00:05:15
bueno 00:05:17
las dos versiones de Esprimo 00:05:20
¿están claras? 00:05:22
sí, incluso esta segunda 00:05:23
bueno 00:05:26
pues ahora 00:05:30
vamos a apoyarnos en esta función 00:05:32
para hacer otra 00:05:35
Esta ya es más complicadita 00:05:35
Vamos a 00:05:38
Hacer 00:05:40
Una función 00:05:42
Que recibe 00:05:45
Un array 00:05:49
De números 00:05:51
Enteros 00:05:54
Y devuelve 00:05:56
Otro array 00:05:59
Conteniendo 00:06:00
Solo los que son primos del primer array 00:06:03
Estamos en el ejercicio 27 00:06:05
No, estamos 00:06:10
No sé lo que estamos haciendo 00:06:12
Poner ejemplos 00:06:14
Luego ya 00:06:17
Podemos hacer ejercicios concretos 00:06:18
Vale, otra vez conteniendo solo los primos 00:06:22
Del array 00:06:24
Pasado como parámetro 00:06:25
Vale, entonces 00:06:27
Vamos a suponer 00:06:34
Que llamamos a esta función getPrimos 00:06:40
Por ejemplo, es una función que me saca 00:06:43
Los primos de un array, me los saca 00:06:45
Y me los devuelve en otro 00:06:47
GetPrimos 00:06:48
Si hacemos la cabecera 00:06:49
¿Qué va a recibir la función? 00:06:51
Un array de enteros 00:06:55
Pues no pasa nada 00:06:56
Un array de enteros 00:06:57
Eso recibe 00:06:58
Un array de enteros 00:06:59
Y ahora 00:07:00
Tipo de dato de retorno 00:07:02
Un array de enteros 00:07:05
¿Cómo es el tipo de datos 00:07:08
Array de enteros? 00:07:09
Inti los corchetes 00:07:11
Pues hala 00:07:12
Inti los corchetes 00:07:13
Y ya está 00:07:14
Ya tengo la cabecera 00:07:15
Y ahora aquí ya 00:07:15
Me las apaño 00:07:17
Para construir un array 00:07:18
Que contenga solo los primos 00:07:20
Que hay aquí 00:07:22
Y una vez construido 00:07:23
Lo devuelve a guarderetorno 00:07:26
Y para averiguar si un número es primo o no 00:07:27
Pues tenemos esto 00:07:30
Tenemos este método 00:07:32
O este, cualquiera de los dos 00:07:33
Que lo hace 00:07:35
Venga, pues ahora ya 00:07:36
Si que hacemos esto 00:07:42
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:
11 de noviembre de 2024 - 12:19
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
07′ 47″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
28.15 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid