20241119 ProgrEstruct-EjerRepaso_1 - 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 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
Uy
00:10:27
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
sí
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