1 00:00:02,480 --> 00:00:18,160 Bueno, pues en este vídeo vamos a corregir los ejercicios 43 y 44, ¿vale? Y en el siguiente, para que no se alarguen y no ocupen demasiado, correjo ya los ejercicios 45 y 46, ¿vale? 2 00:00:18,160 --> 00:00:27,620 El ejercicio 43 es el del cálculo de la energía potencial y cinética para alturas decrecientes de metro en metro desde 10 hasta 0. 3 00:00:27,620 --> 00:00:50,899 ¿De acuerdo? Lo vamos a hacer de la siguiente forma, calculando la energía inicial total, es decir, la energía que tiene el cuerpo a una altura h, la energía potencial, que vamos a considerar como el total de energía para después, restándole la energía potencial a cada una de las alturas, obtener la energía cinética por diferencia. 4 00:00:50,899 --> 00:01:07,260 Vale, pues venga, lo que voy a hacer es crear abajo las funciones como antes para que sea más fácilmente comprensible y vamos a crear una función que se llame total, ¿de acuerdo?, con tres parámetros, más aceleración de la gravedad y altura. 5 00:01:07,260 --> 00:01:20,560 Ahora vamos a decirle que en esa función lo que queremos es que calcule el producto de esos tres parámetros, m, g y h, y que nos devuelva el resultado. 6 00:01:22,560 --> 00:01:31,500 Y vamos a definir ahora otra función que va a ser exactamente igual, pero que vamos a llamar energía potencial. 7 00:01:31,500 --> 00:01:50,769 Vale, tenemos dos iguales que hacen lo mismo, pero los vamos a usar de diferente forma, porque tengo que restar una a otra, para eso necesito las dos. Ahora lo vamos a ver. 8 00:01:50,769 --> 00:02:06,450 ¿De acuerdo? Entonces, la primera, la energía total, corresponde a la energía potencial en el estado inicial y es efectivamente la energía total, por eso le damos ese nombre, mientras que reservaremos la función de energía potencial para calcularla en el resto de alturas. 9 00:02:06,450 --> 00:02:24,129 ¿De acuerdo? E ir restando en todas las alturas, desde 10 hasta 0. En la primera altura, para una altura de 10 metros, lo que vamos a hacer es obtener una energía total de X y una energía potencial que va a valer X igualmente. 10 00:02:24,129 --> 00:02:27,729 Y la diferencia va a ser cero porque toda la energía va a ser energía potencial. 11 00:02:28,310 --> 00:02:34,689 Únicamente cuando vaya decreciendo la altura habrá un valor de energía potencial menor que la energía total inicial 12 00:02:34,689 --> 00:02:41,409 y por tanto esa diferencia será igual a la energía cinética para esa altura. 13 00:02:41,729 --> 00:02:47,169 Pues venga, vamos ahora a definir aquí la función principal y vamos con ella. 14 00:02:47,270 --> 00:02:50,569 Lo primero que hacemos es asignar el valor de la sedación de la gravedad. 15 00:02:50,569 --> 00:03:00,569 Después vamos a pedir al usuario un input con la masa, teclee la masa del cuerpo, ¿vale? 16 00:03:01,849 --> 00:03:04,650 Vamos a ponerle dos puntitos, que siempre queda mejor, ¿vale? 17 00:03:05,030 --> 00:03:13,729 Y ahora vamos a hacer un bucle for. ¿Para qué? Pues para que me haga los cálculos para cada una de las alturas, desde 10 hasta 0. 18 00:03:13,729 --> 00:03:24,830 Para eso lo que hacemos es utilizar estos parámetros en range. ¿Os acordáis? 10 menos 1 menos 1 y así irá de 1 en 1 en sentido decreciente y hasta 0. 19 00:03:24,830 --> 00:03:44,250 Vale, pues para cada una de las alturas, para cada uno de los valores de i, que va a ser la altura, vamos a mostrar aquí un mensaje que diga para una altura de tanto, para una altura de i metros, format i, ¿vale? 20 00:03:44,250 --> 00:04:08,129 Pues ahora, bueno, yo creo que esto es un poco redundante, voy a ponerlo todo directamente, ¿vale? Esperad, porque tenía puestas dos líneas de tantos metros, coma, un cuerpo de masa M, ¿vale? 21 00:04:08,129 --> 00:04:22,560 Tendrá una energía potencial de tantos julios 22 00:04:22,560 --> 00:04:24,519 Y ahora empezamos con el format, ¿vale? 23 00:04:33,100 --> 00:04:33,720 Format 24 00:04:33,720 --> 00:04:38,160 Entonces, la altura es I, ¿verdad? 25 00:04:39,100 --> 00:04:41,819 La masa es M 26 00:04:41,819 --> 00:04:43,939 Y muy importante, aquí viene la clave 27 00:04:43,939 --> 00:04:51,319 La energía potencial es lo que yo tenga de llamar a la función energía potencial 28 00:04:51,319 --> 00:05:00,079 con los argumentos m, g, m es el input, g es 1,8 y ahora la altura es i, ¿de acuerdo? 29 00:05:00,199 --> 00:05:01,800 Porque estamos dentro de un bucle, ¿de acuerdo? 30 00:05:01,899 --> 00:05:06,779 Si hemos puesto como variable i, así que mg i, ¿de acuerdo? 31 00:05:07,459 --> 00:05:12,439 Bien, ahora en la siguiente línea vamos a calcular la energía cinética, 32 00:05:12,439 --> 00:05:20,810 como hemos dicho, simplemente una variable y por diferencia entre la energía total, ¿vale? 33 00:05:20,810 --> 00:05:44,079 Y, esto sí, aquí viene la clave calculada con los siguientes argumentos. La masa que ha introducido el usuario, 9,8, y una altura de 10, siempre una altura de 10, ¿de acuerdo? Menos energía potencial para Mg, y de nuevo la altura es I, ¿de acuerdo? En el bucle. 34 00:05:44,079 --> 00:06:08,110 Porque una vez que la tenemos, pues la mostramos igualmente y decimos la energía cinética para esa altura es de tanto julio. Format, paréntesis, energía cinética. ¿De acuerdo? Y ya lo tendríamos. Así de fácil. 35 00:06:08,110 --> 00:06:24,490 Vamos a quitar un golpe más para que no quede separado. Y ya lo tenemos. Así que si yo ahora ejecuto este programa y en la masa doy un valor de 10, pues vamos a ver que la energía total va a ser de 980. 36 00:06:24,490 --> 00:06:40,069 La energía potencial para una altura de 10 va a ser de 980, porque coinciden, ¿de acuerdo? Y la energía cinética va a ser 0. Para 9 metros, la energía total va a ser de nuevo 980, porque es la que es, ¿verdad? 980 julios. 37 00:06:40,069 --> 00:06:56,670 La energía potencial, sin embargo, ahora va a ser menor porque la altura va a ser 9 y va a dar 882 julios, si no me acuerdo mal. Y la energía cinética, por diferencia, es pues 980 menos 892, 98 julios. 38 00:06:56,670 --> 00:07:17,389 Y así sucesivamente. Vamos a comprobarlo. Vaya, ¿qué he hecho yo aquí? ¿Qué es lo que pasa? Me faltará un paréntesis, supongo. No, uno, dos, sí, me falta un paréntesis. 39 00:07:17,389 --> 00:07:35,959 Ahí vamos allá, teclea la masa del cuerpo, 10, y aquí lo tenemos todo seguido, ¿de acuerdo? Para una altura de 10 metros, un cuerpo de masa 10, que me he olvidado poner kilogramos, tendrá una energía potencial de 980 julios, de masa no sé cuántos kilogramos vamos a poner, ¿vale? Que queda más bonito. 40 00:07:35,959 --> 00:07:51,720 Vale, pues para una altura de 10 metros, un cuerpo de masa de 10 kilogramos tendrá una energía potencial de 980. La energía cinética para esa altura es de 0 julios. Para una altura de 9 metros, un cuerpo de masa de 10 kilogramos, 882 julios. La energía cinética para esa altura, 98. 41 00:07:51,720 --> 00:08:05,240 Y si vamos abajo del todo, para esa altura, justo al final, para una altura de cero metros, un cuerpo de masa, bueno, cero metros no, justo antes de cero metros, ya lo entendéis, un cuerpo de masa de 10 kilogramos tendrá una energía potencial de cero julios. 42 00:08:05,240 --> 00:08:21,360 La energía cinética para esa altura es de 980 julios. Como digo, no en la altura cero, sino justo antes de que choque en la altura cero, pues ya se disipará esa energía cinética en forma de vibración, de ruido, de un rebote, de romper el suelo, de lo que sea. 43 00:08:21,360 --> 00:08:34,159 Pero justo antes de tocar el suelo ponemos cero porque si no va a ser un lío y justo en ese momento toda la energía potencial es energía cinética. Se ha transformado en energía cinética. 44 00:08:34,159 --> 00:08:49,740 Bueno, pues esto es el ejercicio 43. Vamos a pasar ahora a hacer el ejercicio siguiente, que es el ejercicio 44. Este ejercicio está aquí en el apartado de funciones, pero para usar funciones externas. 45 00:08:49,740 --> 00:09:00,799 una función que ya existe y que la tenemos en el módulo random, que es lo que vamos a hacer, 46 00:09:00,960 --> 00:09:06,940 utilizar el módulo random para importar el módulo random para utilizar una función que ya conocemos, 47 00:09:07,039 --> 00:09:10,019 que hemos usado en muchos ejercicios, la función rampInt, ¿de acuerdo? 48 00:09:10,620 --> 00:09:13,059 Pero bueno, un ejercicio con algunas cosas más. 49 00:09:13,059 --> 00:09:18,200 Entonces, lo que dice 44 es que escribamos un programa que genere 100 números aleatorios, 50 00:09:18,200 --> 00:09:25,840 comprendidos entre 1 y 100, que los muestre en pantalla y que además cuente cuántos son pares y cuántos son impares, ¿de acuerdo? 51 00:09:26,139 --> 00:09:33,360 Bueno, pues si va a contar cuántos son pares y cuántos son impares, pues lo que vamos a hacer es, bueno, antes vamos a importar el módulo random, 52 00:09:33,360 --> 00:09:47,100 por supuesto, y ahora lo que vamos a hacer es crear dos contadores, dos acumuladores, ¿vale? Total P que valdrá 0 y total imp de impares que valdrá 0 también, ¿de acuerdo? 53 00:09:47,100 --> 00:09:57,220 Para utilizarlos luego en el recuento de los pares y de los impares, ¿de acuerdo? Ahora voy a poner un input sin texto que se ejecutará cuando yo pulse intro, ¿de acuerdo? 54 00:09:57,220 --> 00:10:24,279 Entonces, fijaos, cuando pulses Enter se va a generar una lista de 100 números comprendidos, como todo el rollo, lo que pone el ejercicio, entre el 1 y el 100 de forma aleatoria. 55 00:10:24,279 --> 00:10:41,049 Y ya está, ¿no? Yo creo que con eso ya hemos metido bastante rollo. Y ahora ponemos print. Esta es la lista de números. Dos puntos. 56 00:10:41,049 --> 00:11:01,320 Bueno, y ahora que tenemos ya esto, lo que nos falta es el núcleo del programa, que sería generar 100 números aleatorios, con lo cual tengo un bucle con 100 iteraciones, 57 00:11:01,320 --> 00:11:14,779 Y en ese bucle, en cada iteración, me va a generar, haciendo uso de la función runInt del módulo random, un número comprendido entre el 1 y el 100. 58 00:11:15,759 --> 00:11:20,259 Y una vez generado el número, me va a hacer lo siguiente. 59 00:11:20,259 --> 00:11:29,679 Si el resultado de aplicar el operador módulo entre 2 es 0, significa que ese número es par. 60 00:11:29,679 --> 00:11:35,720 verdad luego entonces añadimos a ese acumulador una unidad 61 00:11:35,720 --> 00:11:41,120 de lo contrario el número sin par luego añadimos 62 00:11:41,120 --> 00:11:49,039 a total una unidad y una vez que hemos hecho este esto 63 00:11:49,039 --> 00:11:55,799 simplemente vamos a mostrar en pantalla 64 00:11:55,799 --> 00:12:05,879 generado, por ejemplo, se han generado un total de tantos números pares, ¿vale? 65 00:12:06,620 --> 00:12:14,120 Punto format, pues total de, y para los impares es el mismo mensaje, pero para impares, ¿vale? 66 00:12:14,120 --> 00:12:30,250 Se han generado un total de tantos números impares, format total imp, ¿dónde está 67 00:12:30,250 --> 00:12:49,679 Aquí. Y ya estaría, ¿vale? Vamos a probarlo. Vale, pues cuando pulse Enter se va a generar. Voy a pulsar Enter. Ay, se me ha olvidado, por supuesto, mostrar y si no, pues no lo puedo ver. 68 00:12:49,679 --> 00:12:51,779 vale, sí que me dice cuánto se ha generado 69 00:12:51,779 --> 00:12:53,940 de cada tipo, pero no me los muestra 70 00:12:53,940 --> 00:12:54,980 ahora sí, ¿verdad? 71 00:12:55,279 --> 00:12:57,000 esta es la lista de números, pues aquí la tenemos 72 00:12:57,000 --> 00:12:59,460 se ha generado un total de 49 números pares 73 00:12:59,460 --> 00:13:01,179 y de 51 impares 74 00:13:01,179 --> 00:13:03,659 le doy otra vez y me genera una lista 75 00:13:03,659 --> 00:13:05,559 diferente, porque son números 76 00:13:05,559 --> 00:13:07,399 aleatorios, en este caso 43 pares 77 00:13:07,399 --> 00:13:08,799 y 57 impares 78 00:13:08,799 --> 00:13:11,440 y este es el resultado 79 00:13:11,440 --> 00:13:13,340 así que recapitulando 80 00:13:13,340 --> 00:13:15,320 es un bucle for 81 00:13:15,320 --> 00:13:17,179 con acumulador, no es más 82 00:13:17,179 --> 00:13:19,620 va aquí en funciones para que recordéis 83 00:13:19,620 --> 00:13:25,860 que cuando quiero utilizar una función de un módulo tengo que importar el módulo y después utilizar esta sintaxis 84 00:13:25,860 --> 00:13:30,679 o bien otro tipo de otras formas de importar que ahora no vamos a ver. 85 00:13:31,559 --> 00:13:35,620 Y luego ya simplemente es un programa convencional como tantos que hemos hecho. 86 00:13:37,460 --> 00:13:39,679 Muy bien, pues eso es todo.