1 00:00:00,000 --> 00:00:08,099 Hola a todos, en este vídeo voy a corregir entonces los ejercicios 41 y 42 que ya hicimos en la última clase 2 00:00:08,099 --> 00:00:15,960 pero bueno, para que queden grabados y los podáis revisar. El 41 es muy sencillo, pero bueno, lo hago ya y los dejamos completos, ¿vale? 3 00:00:16,399 --> 00:00:21,920 Como estamos trabajando ahora con funciones y creando nuestra función main, pues aquí la tenemos, ¿verdad? 4 00:00:21,920 --> 00:00:37,659 Y en este caso tenemos que modificar el ejercicio que había en la página 26 en el que directamente sumaba dos números que ya introducíamos en el programa y en este caso lo que tenemos que hacer es pedirle el número al usuario y hacer un input, ¿de acuerdo? 5 00:00:37,659 --> 00:01:00,409 Entonces, pues le decimos teclea un número, ¿de acuerdo? Y luego, pues que teclea otro, que sería num2. Claro, estas dos variables, num1 y num2, van a contener el valor que yo voy a pasar como argumento a la función, ¿vale? Teclea otro número, ¿de acuerdo? 6 00:01:00,409 --> 00:01:17,430 Estos son dos valores que va a haber ahí, el 5, el 4, el que sea. Una vez que tenemos estos valores, vamos a llamar a la función mostrarSuma, que vamos a definir ahora mismo, con estos dos argumentos, num1 y num2. 7 00:01:17,430 --> 00:01:29,629 ¿De acuerdo? Y ya está, se ejecutará y nos mostrará la suma. Ahora, ¿cómo nos la va a mostrar? Pues fijaos que tenemos que definirla aquí, la función mostrarSuma, tal y como estaba hecha en el ejercicio, ¿verdad? 8 00:01:29,629 --> 00:01:51,370 que tiene dos parámetros, que pueden ser num1 y num2, por no andar enredando, y lo que va a hacer es calcular una variable que vamos a llamar resultado y que contiene la suma de las dos, num1 más num2, y mostrar en pantalla el resultado de esta operación. 9 00:01:51,370 --> 00:02:12,449 Esto es lo que hace la función mostrarSuma. Coger dos números, sumarlos y mostrar el resultado. Vamos a ejecutarlo viendo aquí mail y vamos a ver cómo va. Teclea un número, el 8, teclea otro número, el 7 y el resultado está ahí abajo que es 15. 10 00:02:12,449 --> 00:02:28,270 Bueno, podéis poner el resultado, es 15, lo que queráis, pero bueno, básicamente es esto. Fijaos que yo puedo cambiar, yo no sé dónde, por ejemplo, aquí voy a poner numA, aunque quede un poco feo, y numB, bueno, es más pesado así, pero lo voy a hacer bien, ¿vale? 11 00:02:28,270 --> 00:02:47,870 Y entonces aquí, claro, tendría que poner numA y numB, ¿no? Vale, entonces, si yo lo ejecuto, igualmente puedo poner 9 y 6 y funciona de la misma forma 15. 12 00:02:47,870 --> 00:03:07,370 Lo que os quería mostrar aquí, que ya lo he dicho varias veces, pero lo repito, es que, claro, numA y numB, que serían los parámetros de la función, no tienen por qué coincidir en nombre con las variables que yo utilizo al ejecutar el programa, en este caso num1 y num2, para pasar como argumento a la función, ¿vale? 13 00:03:07,370 --> 00:03:25,729 Pueden tener nombre diferente, lo acabo de cambiar y ahora es así, o pueden tener el mismo nombre como teníamos antes de que lo corrigieran, num1 y num2, tanto en la función con parámetro a la hora de definirla como luego a la hora de ejecutarla como la variable que va a contener el argumento que pasamos a esa función. 14 00:03:25,729 --> 00:03:55,710 Bueno, pues esto es el ejercicio 41, que no tiene más secreto. Vamos a cerrar el ejercicio 42, que sí que es un poquito más largo. Veréis, si os acordáis, en el ejercicio 42 lo que me pedía era que a través de funciones yo desarrollara un programa que pidiera al usuario un sueldo base, las ventas de un empleado, de un trabajador en un mes, una paga adelantada, que se supone que se le da, ya que el sueldo base es muy ajustado, 15 00:03:55,729 --> 00:04:06,569 para que no haya ningún momento en el que el salario quede muy bajo y una comisión que se calcula dependiendo del importe de las ventas. 16 00:04:06,710 --> 00:04:14,969 Así que, bueno, viene en el ejercicio, ahora mismo no lo tengo delante, no me acuerdo, pues para ventas de 8.000 el 20%, de 6.000 a 8.000 el 15%, etcétera, etcétera. 17 00:04:15,030 --> 00:04:19,629 Vale, una serie de porcentajes a aplicar en función de las ventas. 18 00:04:19,629 --> 00:04:45,029 De forma que todo esto me sirve para calcular, y voy a empezar en esto y a ver si así queda más claro, la paga que va a cobrar el trabajador que se calcula con el sueldo, por supuesto, sueldo base, lo vamos a llamar así, o sueldo, da igual, más las ventas que ha hecho, tantos miles de euros por la tasa de comisión, que es la que depende de las ventas, ¿vale? 19 00:04:45,029 --> 00:05:00,430 Si son superiores a 8.000, el 20%, si son de 6.000, 8.000, el 15%, etcétera, etcétera. Y restándole a esto la paga adelantada que ha recibido en el mes anterior, un adelanto de paga que puede haber recibido en el mes anterior. 20 00:05:00,430 --> 00:05:16,430 Entonces, claro, si esta es la fórmula que me permite mostrar la paga, y voy a ir, como digo, en este orden, lo dejo aquí en medio, pero el sueldo de este mes es de... 21 00:05:16,430 --> 00:05:36,370 Tenemos aquí nuestras llavecitas, punto format, para. Hasta aquí todo claro, esto ya lo sabemos. Y ahora la clave es de dónde saco yo el sueldo base, de dónde saco las ventas, de dónde saco la tasa de comisión y de dónde saco la paga adelantada. 22 00:05:36,370 --> 00:05:57,649 ¿De acuerdo? Pues, obviamente, se lo tengo que pedir al usuario para todos los casos, salvo la tasa de comisión, que la tengo que calcular en función de las ventas. ¿De acuerdo? Entonces, como tanto sueldo base como ventas como paga adelantada son las que son, el input que yo meta, esas son funciones que no van a tener parámetro. 23 00:05:57,649 --> 00:06:14,790 Y las voy a ir definiendo aquí debajo. Ya veréis que esto es sencillo. Voy en este orden, como digo, para ver si es más claro. Así que necesito cuatro funciones. La función que obtenga el sueldo base, la función para obtener las ventas, la función para obtener la paga adelantada y estas tres no necesitan parámetros. 24 00:06:14,790 --> 00:06:37,149 Y, por último, la función para obtener la tasa de la comisión. Esta sí que lleva parámetro porque, dependiendo del valor de ventas, será una u otra y el parámetro de esa función obviamente tiene que ser las ventas. Y, además, lo tiene que tomar cuando se ejecute de la función anterior, de la función ventas. Vamos a verlo. 25 00:06:37,149 --> 00:06:52,870 Entonces, voy a llamarlas, las he llamado tal y como lo hicimos ayer, obtener sueldo base, vamos en orden, obtener sueldo base, ¿vale? Y esta función, obtener sueldo base, es muy sencilla, ¿de acuerdo? 26 00:06:52,870 --> 00:07:16,029 Y simplemente consiste en pedirle el sueldo base al usuario en un input. Por supuesto, un float, porque nadie nos dice que no pueda tener decimales. ¿Cuál es el sueldo base? Y luego, muy importante, la función nos tiene que devolver el sueldo base. 27 00:07:16,029 --> 00:07:38,949 Porque si no, no podemos trabajar con… Ah, no había visto ahí abajo las ayudas, me doy cuenta ahora. Bien, pues ya está, esta es la función obtener sueldo base. Vamos a la función obtener ventas, ¿de acuerdo? La función obtener ventas, de nuevo, no tiene parámetros porque simplemente le pide al usuario que le diga cuánto se ha vendido. 28 00:07:38,949 --> 00:07:57,589 Pues ventas. Voy a llamar a todo ventas para no liarnos. Y así lo seguimos. No tienen por qué llamarse igual. Aquí lo puedo llamar ventas mes o ventas total y arriba ventas total o ventas mes o ventas. Pero he decidido ahora ponerle a todo ventas para ver si así hacemos un seguimiento más sencillo. 29 00:07:57,589 --> 00:08:23,129 Entonces, introduzca el importe de las ventas para el mes o mensuales. Y de nuevo, muy importante, la función nos tiene que devolver las ventas. 30 00:08:23,129 --> 00:08:37,649 ¿De acuerdo? Claro, vamos a la siguiente. Otra igualita, muy fácil. Obtener la paga adelantada. Pues de nuevo sin parámetro porque solamente le va a preguntar al usuario la paga adelantada. 31 00:08:37,649 --> 00:09:02,549 Paga adelantada igual float input, teclea el importe de la paga adelantada. Y ahora vamos a la única que sí que tiene un parámetro, que es la función obtener tasa comisión. 32 00:09:02,549 --> 00:09:20,350 Y claro, el parámetro, pues como he dicho, para no liarnos, lo vamos a llamar ventas todo el rato. Ni mes, ni total, nada. El parámetro ventas, porque obviamente depende de las ventas. Y depende de las ventas de la siguiente forma. Tenemos que hacer aquí un condicional un poco largo, si ponemos todas las condiciones del ejercicio, y bueno, pues vamos a hacerlo así. 33 00:09:20,350 --> 00:09:29,590 Si las ventas son menores que 2.000, la tasa va a ser igual a 0,1. 34 00:09:29,590 --> 00:09:49,669 Si las ventas son mayores o iguales que 2.000 y menores que 4.000, 35 00:09:49,669 --> 00:09:56,830 Eso es. En ese caso, la tasa va a ser igual a 0,12. 36 00:09:56,830 --> 00:10:18,000 Vale. El IF ventas mayor o igual que 4.000 y menores que 6.000, pues el porcentaje de la comisión en este caso es del 0.15, ¿verdad? 37 00:10:18,000 --> 00:10:49,600 o del 0,15, creo. El IF, lo que sea, ventas mayor o igual que 6.000 y ventas menores que 8.000. En ese caso, la comisión es del 0,2%, perdón, del 0,2%, del 20%. 38 00:10:49,600 --> 00:11:16,440 Y, por último, ya si las ventas son mayores de 8.000, que es el caso que nos queda, es un 25% la comisión, ¿vale? 0,25, ¿vale? Entonces, ese valor 0,25 lo vamos a… o 0,2 o 0,1 o el que quiera que sea, lo tenemos que usar y, como lo tenemos que usar, necesitamos que la función obtener tasa o comisión nos devuelva la tasa, nos devuelva el valor que tenga la tasa, que será el que sea, ¿de acuerdo? 39 00:11:16,440 --> 00:11:35,559 Y ahora vamos para arriba, de acuerdo, a la primera línea y vamos a utilizar todo lo que acabamos de definir. De acuerdo, lo hacemos con la main y para que no se me olvide, que se me olvida muchas veces a la hora de ejecutarlo, ponemos ahí que la llamamos, ¿vale? 40 00:11:35,559 --> 00:11:53,779 Entonces, definimos la función main. Y en la función main ahora, como ya sabemos, vamos marcando el flujo de trabajo de este programa. ¿Y cómo comienza? Pues primero llamando a la función sueldo base. Vamos a ver cuánto es el sueldo base. 41 00:11:53,779 --> 00:12:15,799 Y como yo necesito hacer un cálculo que está en la línea 8, que es sueldo base más ventas por tasa de comisión menos paga adelantada, necesito una variable que se llame sueldo base, y la voy a crear, sueldo base, que contenga el valor de ejecutar la función obtener sueldo base. 42 00:12:15,799 --> 00:12:28,980 Es decir, aquí la tenemos, en la línea 11, que pregunte al usuario cuál es el sueldo base, que se teclee y que me lo devuelva. Y eso que me devuelve, que también se llama sueldo base, lo almaceno aquí en la variable sueldo base. 43 00:12:28,980 --> 00:12:46,600 Entonces, en definitiva, lo que voy a hacer es llamar a la función obtener sueldo base y andando. Lo mismo voy a hacer para ventas. Necesito que me diga las ventas, con lo cual voy a darle a obtener ventas. 44 00:12:46,600 --> 00:13:14,879 No sé por qué no pone el paréntesis. Ejecuto, llamo la función o ventas para que se ejecute y, como veis, en la línea 16 a 18 me va a retornar lo que el usuario teclee como ventas y lo va a acumular, lo va a asignar como valor a la variable que tengo en la línea 3 y que se llama ventas y que se va a usar en la línea 9 para el cálculo de la paga. 45 00:13:14,879 --> 00:13:49,179 Ahora, seguimos, paga adelantada, pues obviamente para que sepamos la paga adelantada, pues estamos en las mismas, voy a ejecutar la función obtener paga adelantada, que cuando se ejecute, mirad las líneas 21 y 22, por cierto, y 23 que se me ha olvidado, se me ha olvidado aquí el que retorne paga adelantada, si no, no hacemos nada, porque si no, esto que acabo de teclear, paga adelantada, lo necesito para que la línea 4 se retorne. 46 00:13:49,200 --> 00:14:06,080 Ese valor se asigne a la variable paga adelantada. Mantengo los nombres aquí abajo, paga adelantada, paga adelantada. Y ahora, lo único que tiene un poquito de gracia, vamos a ver la tasa de comisión. 47 00:14:06,080 --> 00:14:25,419 La tasa de comisión es la variable que tengo aquí en tercer lugar en el cálculo de la paga, en la línea 12. Y, claro, ¿cómo la voy a hacer la tasa de comisión? Pues voy a ejecutar la función última, la que está desde la línea 27 a la 38, la de obtener tasa de comisión, esta de aquí. 48 00:14:25,419 --> 00:14:49,120 Y ojo, aquí no vale con poner el paréntesis y terminar porque aquí hay un parámetro que yo tengo que utilizar, si no es imposible. ¿Y el parámetro cuál es? El parámetro es ventas, pero no las ventas de aquí abajo, no las ventas de las líneas 27 a 37, que es el nombre del parámetro de la función, sino las ventas de aquí arriba, de la línea 3, la variable ventas. 49 00:14:49,120 --> 00:15:01,620 Está en la línea 3, tiene un valor que es el que haya tecleado y ese valor, el valor de la variable ventas de la línea 3, es el argumento que va a tomar la función en la línea 6 cuando se ejecute. 50 00:15:01,620 --> 00:15:18,299 ¿De acuerdo? Y pues ya con esto tenemos suficiente, porque lo siguiente que toca es lo que ya teníamos escrito aquí abajo. Dejadme que borre un par de líneas, que son estas, y ya lo tenemos. ¿De acuerdo? Vamos a ejecutarla. 51 00:15:18,299 --> 00:15:22,860 Bueno, pues aquí, claro, aquí está el error 52 00:15:22,860 --> 00:15:24,419 que no me he dado cuenta 53 00:15:24,419 --> 00:15:27,820 este, este, o sea, quería que faltaba 54 00:15:27,820 --> 00:15:30,059 claro, esto va dentro de la función main 55 00:15:30,059 --> 00:15:36,399 ¿de acuerdo? y ahora ya sí que funcionará 56 00:15:36,399 --> 00:15:38,100 y esto lo mismo, por supuesto 57 00:15:38,100 --> 00:15:46,490 Ahora vale, venga 58 00:15:46,490 --> 00:15:48,529 Vamos allá, ¿cuál es el sueldo base? 59 00:15:48,529 --> 00:16:10,590 Pues 1.000. Introduzco el importe de las ventas mensuales, 3.000. Y el importe de la paga adelantada, 500. Y este sería el resultado, 860. ¿Vale? Bueno, pues este es el problema 42, ¿de acuerdo? Y, como decía, no es tan complicado, ¿verdad? Simplemente hay que tener en mente qué es lo que buscamos. 60 00:16:10,590 --> 00:16:35,070 Y este juego con las funciones, ¿vale? Y es muy interesante, muy importante que nos fijemos en la función obtener tasa comisión, ¿vale? En su parámetro ventas y luego arriba en cómo al invocarla, al llamarla, al ejecutarla, le paso como argumento la variable ventas que he obtenido previamente al ejecutar a su vez, al llamar a su vez a la función obtener ventas. ¿De acuerdo? Bueno, pues es todo esto. Gracias.