Saltar navegación

20241119 ProgrEstruct-EjerRepaso_1 - 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 19 de noviembre de 2024 por Raquel G.

11 visualizaciones

Descargar la transcripción

vale, pues nuestra función 00:00:00
va a ser una función 00:00:03
que reciba dos números 00:00:05
enteros 00:00:08
esto 00:00:09
porque el 00:00:11
el máximo común divisor 00:00:13
es de enteros, ¿verdad? 00:00:22
el máximo común divisor 00:00:24
vale, entonces 00:00:26
silencio 00:00:29
uno tiene que codificar este código 00:00:30
bueno, pues entonces 00:00:33
tiene que pensar en un algoritmo 00:00:35
o bien lo piensa de cero, de partida 00:00:37
y a ver cómo se le ocurre 00:00:39
o bien pues si se acuerda 00:00:42
porque luego dice, ah, pero si Euclides 00:00:44
ya tenía una ley 00:00:46
un principio matemático 00:00:47
que me va a ayudar a hacer esto 00:00:49
bueno, pues entonces el principio 00:00:51
matemático que tenía 00:00:53
Euclides 00:00:55
para ayudarle a obtener rápidamente 00:00:56
el máximo común divisor entre dos números 00:00:59
era este. 00:01:01
Pues que si uno tiene dos números, 00:01:02
A y B, 00:01:04
siendo A el mayor de ellos, 00:01:07
los ponemos siempre en este orden, 00:01:10
siendo A el mayor de ellos, 00:01:11
pues el máximo común divisor 00:01:13
entre estos dos números 00:01:15
es igual, 00:01:16
es exactamente igual 00:01:17
que el máximo común divisor 00:01:19
de este número 00:01:20
y del resto de dividir A entre B. 00:01:22
esto es una ley 00:01:24
matemática que es así 00:01:27
y ahora gráficamente lo vamos a 00:01:29
entender porque hacer una demostración 00:01:31
matemática no tiene sentido 00:01:33
pero este es uno de los principios 00:01:34
de Euclides 00:01:37
por llamarlo así, que el máximo común divisor 00:01:38
de dos numeritos A y B es el mismo 00:01:41
que el máximo común divisor 00:01:43
de el menor de esos números 00:01:45
y el resto de dividir el mayor 00:01:47
entre el menor 00:01:49
entonces uno podría decir, vale, pues esto lo creo 00:01:50
porque Euclide lo dice 00:01:53
y ahora ya uso esta idea 00:01:55
uso esta idea para hacer el programa 00:01:57
¿vale? 00:01:59
entonces que esto es así 00:02:01
es relativamente 00:02:02
fácil de ver 00:02:05
que esto es así 00:02:07
¿y si da resto cero? 00:02:08
vale, ahora lo 00:02:12
si da resto cero es que entonces 00:02:12
el máximo común divisor ya es este numerito 00:02:15
ahora lo vamos a ver, entonces ya lo tienes 00:02:17
¿cómo? 00:02:19
¿cómo se va a hacer? 00:02:20
tienes 00:02:26
entonces imaginemos 00:02:26
que este numerito es A 00:02:39
que es el más grandote 00:02:41
y este numerito es B 00:02:43
que es a lo mejor 00:02:46
uno más pequeñito 00:02:47
este numerito es B 00:02:49
el máximo común divisor ¿cuál es? 00:02:50
el máximo común divisor es un número 00:02:53
que divide de forma exacta a los dos, ¿verdad? 00:02:55
Es divisor de ambos. 00:02:59
Vamos a imaginar que el máximo común divisor es este cuadradito, esta unidad. 00:03:01
Luego, este divide de forma exacta a B porque cabe tres veces en él. 00:03:06
Eso es dividir de forma exacta un número, ¿no? 00:03:10
Caber en él exactamente una cantidad de veces. 00:03:13
Este sería ese máximo común divisor 00:03:16
porque divide de forma exacta a B 00:03:19
Y también divide de forma exacta 00:03:22
A a 00:03:25
Estas porciones que estoy poniendo 00:03:26
Que no lo parezca, se supone que son idénticas 00:03:30
Todas ellas, ¿no? 00:03:32
Vale, entonces 00:03:34
El máximo común divisor 00:03:35
Es algo como esto 00:03:38
Es algo que divide de forma exacta 00:03:39
A a b, porque cabe en él exactamente 00:03:42
Un número de veces 00:03:44
Y divide de forma exacta a a 00:03:45
Porque cabe en él un número exacto de veces 00:03:47
Vale, entonces 00:03:50
y ahora, y si hacemos ahora el resto 00:03:52
de dividir A entre B 00:03:55
¿qué numerito 00:03:57
tenemos? Pues el resto de A entre B sería 00:03:59
vamos a ver cuántas veces cabe 00:04:01
B en A, que sería la división 00:04:03
y vamos a ver lo que sobra. Bueno, pues 00:04:05
B, el resto de dividir 00:04:07
B entre A, perdón, A entre B 00:04:09
sería esto de aquí, ¿no? 00:04:11
Porque aquí tenemos un B 00:04:13
que ya ha cabido 00:04:15
aquí tenemos otro B 00:04:15
enterito que ya ha cabido 00:04:19
Aquí tenemos otro B enterito 00:04:20
Que ya ha cabido 00:04:22
Y aquí tenemos el resto 00:04:23
Con lo cual, esto sería 00:04:26
El cociente de dividida entre B sería 3 00:04:28
Porque B cabe 3 veces en A 00:04:31
Y el resto sería esto 00:04:33
Esto sería aquí 00:04:35
Luego 00:04:37
Ahora ya 00:04:39
Estas dos cuantidades, ¿cuáles serían? 00:04:41
Esta B 00:04:44
Y el resto de dividida entre B 00:04:45
Que son estas dos porciones que me han quedado aquí 00:04:47
estas dos, pues efectivamente 00:04:49
el máximo común divisor 00:04:52
este de aquí, sigue 00:04:54
siendo el máximo común divisor de estas dos 00:04:56
cosas, lo sigue siendo 00:04:58
porque divide de forma exacta a este 00:05:00
y divide de forma exacta a este 00:05:02
luego el máximo común divisor 00:05:04
de A y B, que es esta porcioncita 00:05:06
también es el máximo 00:05:08
común divisor de B y el resto 00:05:10
de dividida entre B, que son estas dos 00:05:12
¿verdad? luego eso 00:05:13
se cumple, si volvemos a hacer la división 00:05:15
ahora, el resto de 00:05:18
dividir, ahora 00:05:20
esto entre esto 00:05:22
¿el resto cuál da? este de aquí 00:05:24
luego ahora, si volvemos 00:05:26
a hacer la división, esta de aquí 00:05:28
tendríamos, este como 00:05:30
el numerito grande 00:05:32
este sería 00:05:33
este numerito de aquí, que ahora para el algoritmo 00:05:35
este 00:05:38
le llamamos A, pasa a convertirse A 00:05:39
y este pasa a convertirse en el nuevo B 00:05:42
¿verdad? este se convierte 00:05:44
en el nuevo A, que es el grande 00:05:46
y este se convierte en el nuevo b, que es el pequeño. 00:05:48
Vale, pues nuestro a sería este y ahora, perdón, 00:05:51
ahora vamos a hacer el resto de dividir, este entre este, 00:05:57
el cociente es 1 porque este cabe una vez aquí 00:06:02
y el resto es una unidad que me sobra. 00:06:04
Luego ahora, el numerito grande ahora sería este, 00:06:07
este es el nuevo a, 00:06:11
y el resto es el numerito pequeño que sería este de aquí, 00:06:13
que este sería el nuevo b. 00:06:16
Y efectivamente el máximo común divisor de este y este sigue siendo el mismo. 00:06:18
Ahora volvemos a hacer la operación de hacer el resto de dividir este entre este. 00:06:28
El resto dividido entre este y este. 00:06:34
Pues este te cabe una vez aquí, no, ahora ya dos veces y resto cero, efectivamente. 00:06:36
Entonces este te cabe dos veces y te sale resto cero. 00:06:44
Luego ahora, el numerito grande sería este, este sería el grande, y el resto ya es cero. 00:06:46
¿Qué ha ocurrido? Que el último de los restos es precisamente ese máximo común divisor que estamos buscando. 00:06:53
O sea, el último de los restos, el último de los restos. 00:06:59
El resto ya es, bueno. 00:07:03
Sí, el último de los restos, que es el último de los cocinados, o sea, el penúltimo de los restos, porque el último es cero. 00:07:04
Luego el último A grande, porque este ya se ha quedado cero, es el máximo común divisor. 00:07:11
Pues es el algoritmo de Euclides 00:07:15
¿Vale? 00:07:17
Partimos de que el máximo común divisor 00:07:19
Es un numerito que cabe de forma exacta en todos 00:07:21
Si vamos haciendo 00:07:23
Sucesivos restos 00:07:25
Este es el nuevo resto 00:07:27
Que pasa aquí 00:07:29
Este se convierte en el número grande y este el pequeño 00:07:30
Y comprobamos efectivamente a la vista 00:07:33
Que el máximo común divisor 00:07:35
Entre este y este es el mismo, es la misma porción 00:07:36
Seguimos operando 00:07:39
Ahora hacemos 00:07:41
El resto de dividir, esto entre este 00:07:42
me da cociente 1, resto 1 00:07:45
el nuevo grande es este, el resto es 1 00:07:47
el que me ha sobrado 00:07:49
tengo nuevo grande y nuevo pequeño 00:07:50
y ahora la siguiente operación 00:07:52
en bucle, siguiente operación 00:07:55
cociente y resto dividen 00:07:57
entre este y este, cociente 2 00:07:59
resto que es el que me interesa, 0 00:08:00
este ya es 0 00:08:03
pues el último resto 00:08:04
que es este, el último 00:08:07
grande, es exactamente la porción 00:08:09
que estaba buscando, es exactamente la porción 00:08:11
que busco, que es el máximo común divisor 00:08:13
eso sería una forma para saberlo 00:08:15
si no sabes que la caja 00:08:18
es la que entra en el A y en el B 00:08:20
como si no sabes, a ver 00:08:22
tú lo que quieres averiguar es precisamente el valor 00:08:23
de esta caja 00:08:26
a ver, lo que queremos es precisamente 00:08:27
averiguar este valor 00:08:31
este es nuestro resultado, este valor 00:08:33
lo que has hecho al principio 00:08:35
de separar el A en caja 00:08:38
será para que lo viésemos 00:08:39
claro, claro, para que lo viésemos 00:08:41
Para que viésemos que el máximo común divisor de esto es igual que este. 00:08:43
Para que viéramos que esta igualdad se cumple, que matemáticamente se cumple. 00:08:49
Para en lugar de demostrarla matemáticamente, verlo en gráfico. 00:08:52
Verlo en gráfico. 00:08:57
Entonces aquí lo vemos claro, que el máximo común divisor entra de forma exacta aquí o aquí. 00:08:58
Pues toda esta operación, este valor va a seguir entrando de forma exacta en las dos porciones. 00:09:02
Luego va a ser también el máximo común divisor. 00:09:07
entonces, viendo que esto se cumple 00:09:09
ya podemos hacer el algoritmo 00:09:12
que el algoritmo será 00:09:14
un montón de iteraciones en las cuales 00:09:15
divides el grande 00:09:18
entre el pequeño 00:09:20
te quedas con el resto 00:09:21
y ahora tienes un nuevo grande 00:09:23
que es el pequeño anterior 00:09:25
y un nuevo pequeño que es el resto 00:09:27
eso otra vez al bucle 00:09:29
divides el grande entre el pequeño 00:09:31
tienes un nuevo grande 00:09:34
que es el pequeño anterior 00:09:35
y un nuevo pequeño que es el resto, ¿vale? 00:09:36
O sea, el pequeño anterior en cada iteración 00:09:40
se convierte en el nuevo grande 00:09:43
y el resto se convierte en el nuevo pequeño, ¿vale? 00:09:45
Bueno, ¿cuándo acabará esto? 00:09:51
Cuando hayamos encontrado ya un resto cero. 00:09:56
Y cuando hemos encontrado un resto cero, 00:09:59
el último resto, 00:10:02
no, el último cociente no porque habría sido dos, 00:10:04
el último resto que no fue cero, 00:10:07
El último resto que no fue cero 00:10:09
Es el máximo común divisor 00:10:11
¿Vale? 00:10:13
Será el último resto que no ha sido cero 00:10:14
Ese es el máximo común divisor 00:10:16
¿Vale? Pues ahora es programar esto 00:10:19
Un bucle es programar directamente esto 00:10:20
Que es lo que habréis 00:10:22
Hecho ahí 00:10:23
Entonces 00:10:26
Que no te gusta, ¿por qué? 00:10:29
pero largo es 00:10:46
una línea, es un par de líneas 00:10:50
pero 00:10:52
tú más o menos 00:10:57
de lo que 00:10:59
hemos dicho ahí te ha cuadrado y has dicho 00:11:02
uy si esto tiene sentido más o menos 00:11:04
lo entiendo y algo veo 00:11:06
porque si la respuesta 00:11:08
es sí, has avanzado 00:11:10
lo que tienes que avanzar, que es que tu cerebro 00:11:12
se mueva 00:11:14
de verdad, tenéis que estar listos 00:11:15
eso es lo único que 00:11:18
tenéis que estar listos 00:11:19
además 00:11:22
vale, pues entonces, vamos a programar esto 00:11:25
venga, va 00:11:28
ejercicios de que era 00:11:31
esto de repaso 00:11:34
y este que numerito era, ¿se acuerda alguien? 00:11:36
pero, ¿veis? 00:11:39
¿veis como? 00:11:40
os estoy espabilando mucho 00:11:41
y vais a salir de aquí muy currados. 00:11:43
Venga, pues vamos a hacer esta función. 00:11:53
A ver si pongo alguna tontería o no. 00:11:55
Si la pongo, vosotros ya la habéis mirado. 00:11:57
Vale, pues venga, vamos a hacer la función 00:11:59
que me da el máximo común divisor entre dos numeritos. 00:12:01
A y B. 00:12:06
Vale, podemos partir ya de la base 00:12:11
de que A es mayor que B 00:12:14
o no, mejor no 00:12:16
y si no lo son los intercambiamos 00:12:18
y ya está 00:12:20
entonces, si A resulta 00:12:21
que es menor que B 00:12:24
vamos a intercambiarlos 00:12:26
y ya está 00:12:28
vamos a intercambiarlos, pero bueno, esto ya sabíamos 00:12:29
que es fácil de intercambiar de esta manera 00:12:32
ala, ya está, ya están los valores 00:12:34
intercambiados 00:12:42
ahora ya A tiene el valor 00:12:43
mayor de los dos 00:12:46
¿Vale? Hemos intercambiado el contenido de A por el contenido de B, ¿verdad? 00:12:47
Vale. 00:12:53
Ahora ya que están intercambiados, ahora ya vamos a hacer un bucle 00:12:54
que está continuamente haciendo lo que decimos ahí. 00:12:57
Sacamos el resto de dividir A entre B. 00:13:04
Vale. Una vez que hemos sacado el resto, 00:13:13
A, que es el nuevo grande, el nuevo grande es el pequeño anterior, 00:13:16
el que era B. 00:13:21
Y B, que es el pequeño actual, es el resto que acabamos de sacar. 00:13:22
Es justo lo que acabamos de programar, ¿vale? 00:13:28
Estamos todo el rato haciendo el resto. 00:13:31
El resto se convierte en el nuevo pequeño. 00:13:33
Y el nuevo grande es el que era el pequeño antes. 00:13:39
Es lo que teníamos dibujado en la pizarra. 00:13:42
Este bucle, ¿hasta cuándo se ejecuta? 00:13:48
Hemos dicho, mientras B sea diferente de 0. 00:13:49
este bucle va a estar ahí ejecutándose 00:13:53
hasta que no me llegue un resto cero 00:13:55
cuando me llega un resto cero, es que de hecho 00:13:58
si me metiera aquí con b igual a cero 00:13:59
me saldría aquí un pedazo de 00:14:01
arithmetic exception, ¿verdad? 00:14:03
porque no puede ser 00:14:06
porque al hacer el cociente 00:14:07
él internamente hace la división para sacar el resto 00:14:10
y estaríamos dividiendo por cero 00:14:12
vale, pues una vez que hemos llegado 00:14:13
a resto cero ya sacamos 00:14:16
y el máximo común divisor, ¿cuál es? 00:14:17
el último resto que no fue cero 00:14:19
¿Y ese dónde está guardado? En A, ¿verdad? 00:14:21
Ese se ha quedado en A, el último grandote 00:14:23
Entonces ahora ya 00:14:25
Podríamos hacer esto y se acabó nuestra función 00:14:27
Claro, el resto sería cero 00:14:30
Y ya se ha quedado con el resto de la operación 00:14:34
Anterior, la última que 00:14:36
Vale, y ya está 00:14:38
Es la manera más limpia de hacerlo 00:14:45
Esto admite una expresión 00:14:47
Recursiva, pero no vamos a meter con recursividad 00:14:49
Por ahora, por lo menos no antes del examen 00:14:51
Si no hago el examen te convierto en un flojo 00:14:54
¿Tú quieres ser un flojo? 00:15:00
que ni te sabrá 00:15:01
en el resto de tu vida, que no 00:15:02
pues ya está 00:15:03
tú quieres ser 00:15:04
un triunfador 00:15:10
querrás ser, no, pues ya está 00:15:14
dime Jesús 00:15:16
bueno, a ver, esto es solamente 00:15:17
para hacer el intercambio de A y B 00:15:24
si A fuera menor, es solo para eso 00:15:26
con lo cual la variable auxiliar es local 00:15:28
aquí a estas llaves porque no la quiero 00:15:30
para nada, solo la quiero para hacer el intercambio 00:15:32
esto 00:15:34
Python como es más para tontos 00:15:35
tiene una sentencia que haces esto 00:15:38
y ya te hace el intercambio 00:15:40
es muy espabilado, pero eso en Java 00:15:42
no existe 00:15:44
a ver, Java es un 00:15:44
lenguaje para que las cosas funcionen 00:15:49
Python es sobre todo 00:15:52
para aprender, da mucha flexibilidad 00:15:54
entonces para aprender a programar está muy bien 00:15:56
pero como admite meter tanto 00:15:58
pues las aplicaciones 00:15:59
es muy fácil que casquen si no las has 00:16:02
programado muy, muy, muy cuidadosamente. 00:16:04
Java te pone muchas más 00:16:07
restricciones, entonces cagarla es más difícil. 00:16:08
Venga, pues ya está. 00:16:11
Leemos los dos números. 00:16:13
A ver si lo hemos 00:16:17
programado bien. 00:16:17
Y ya está. Y ahora mostramos 00:16:32
el máximo común divisor de A y B. 00:16:33
Y nos da igual que nos 00:16:38
hayan dado primero el grande o luego 00:16:40
nos da igual porque ya la función se encargará de 00:16:42
cambiarlo para hacer su 00:16:44
algoritmo, entonces si ejecutamos 00:16:46
esto, pues si le ponemos 00:16:48
primero a algunos de los que sabríamos el resultado 00:16:50
pues el máximo común divisor 00:16:52
de 6 y 12 00:16:54
será 6, precisamente 00:16:55
de 6 y 12 sería 6 00:16:57
¿verdad? 00:17:02
00:17:03
o sea, has copiado bien esta vez 00:17:03
y el máximo común divisor 00:17:13
de estos dos 00:17:17
pues es 00:17:18
el 1, son primos 00:17:20
entre sí 00:17:23
el máximo condición que tienes 00:17:23
es que 167 ya era raro, ¿verdad? 00:17:27
vale, bueno, pues nada 00:17:31
a ver, alguno 00:17:33
de los ejercicios que teníamos 00:17:37
es interesante 00:17:38
es que no sé si ponéis alguno más gordo 00:17:40
espera 00:17:42
¿ves? a que te has venido 00:17:44
arriba y... vamos a hacer el 00:17:46
4 de string 00:17:48
Que dé tiempo, ya 00:17:49
Vale, lo que pasa es que este es complicadete 00:17:57
Sí, vamos a hacer uno de esos, ¿vale? 00:18:01
Vale, es que estoy dudando 00:18:10
Sobre si de cara al examen 00:18:23
Igual mejor uno más fácil 00:18:24
Venga, no, si vais a hacer vosotros solitos 00:18:26
El 6, que el 4 es un poco complicado 00:18:34
Empezamos con el 6, venga 00:18:36
El 6 vosotros 00:18:39
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:
11
Fecha:
19 de noviembre de 2024 - 17:34
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
18′ 41″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
386.35 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid