1 00:00:01,260 --> 00:00:16,460 Vale, pues primero vamos a rellenar los datos reales de los profes. Repito, como desgraciadamente no sabemos volcar de una base de datos los datos de los cuatro profes, pues hay que meterlos directamente por el programa. 2 00:00:16,660 --> 00:00:29,940 Vale, pues en el mismo for que está recorriendo los profesores y los está instanciando, voy a aprovechar ese mismo for para ya dar los datos al que acabo de crear. ¿Vale? ¿Para qué hacer un otro for distinto? 3 00:00:29,940 --> 00:00:33,340 en este mismo for que va recorriendo el array 4 00:00:33,340 --> 00:00:35,280 creo el objeto 5 00:00:35,280 --> 00:00:38,359 esto se llama instanciar 6 00:00:38,359 --> 00:00:41,079 hacer el new 7 00:00:41,079 --> 00:00:44,000 creando el espacio en memoria se llama instanciar 8 00:00:44,000 --> 00:00:46,320 bueno, pues instancio al profesor 9 00:00:46,320 --> 00:00:50,679 que significa creo su espacio en memoria con sus tres casillitas 10 00:00:50,679 --> 00:00:54,020 y ahora ya le doy valor a sus tres casillitas 11 00:00:54,020 --> 00:00:57,000 lo podría hacer por teclado 12 00:00:57,000 --> 00:00:58,820 pero como luego para hacer la prueba es un rollo 13 00:00:58,820 --> 00:01:00,600 pues estoy llamando al primero 14 00:01:00,600 --> 00:01:02,679 pepito cero, al segundo 15 00:01:02,679 --> 00:01:04,780 pepito uno, pepito dos, los DNI 16 00:01:04,780 --> 00:01:06,939 sextos y los sueldos 17 00:01:06,939 --> 00:01:08,120 como luego hacer el máximo 18 00:01:08,120 --> 00:01:10,420 pues 19 00:01:10,420 --> 00:01:12,680 estoy usando esto, que no sé si lo hemos 20 00:01:12,680 --> 00:01:14,280 usado alguna vez para hacer algún ejercicio 21 00:01:14,280 --> 00:01:15,400 yo creo que no 22 00:01:15,400 --> 00:01:18,939 esto es para generar 23 00:01:18,939 --> 00:01:20,560 un número 24 00:01:20,560 --> 00:01:22,579 aleatorio entre cero y uno 25 00:01:22,579 --> 00:01:24,819 decimal, 0,7, 0,12 26 00:01:24,819 --> 00:01:26,400 entonces 27 00:01:26,400 --> 00:01:27,719 ¿vale? 28 00:01:28,819 --> 00:01:35,859 Esto realmente vemos que es como cuando hacemos un stream.charalgo que dijimos ya entenderemos a qué está llamando. 29 00:01:35,859 --> 00:01:42,799 Bueno, ahora mismo nos quedamos con que esto te genera un número aleatorio decimal entre 0 y 1. 30 00:01:43,420 --> 00:01:52,519 Bueno, pues ese número de decimal entre 0 y 1 lo multiplico por 1000 para que me dé un sueldo entre 0 y 1000 y se lo asigno a sueldo. 31 00:01:53,239 --> 00:01:58,799 Entonces estas tres líneas son para darles valores a cada uno de los profesores. 32 00:01:58,819 --> 00:02:00,540 como se hace en un for 33 00:02:00,540 --> 00:02:02,459 se lo daré a los cuatro 34 00:02:02,459 --> 00:02:04,640 al cero, al uno, al dos y al tres 35 00:02:04,640 --> 00:02:06,159 ¿vale? 36 00:02:07,840 --> 00:02:08,960 repito, podría poner ahí 37 00:02:08,960 --> 00:02:10,240 el scan pero luego la prueba 38 00:02:10,240 --> 00:02:11,819 es un rollo que tengo que meter todo 39 00:02:11,819 --> 00:02:14,699 vale, pues aquí en este punto ya están 40 00:02:14,699 --> 00:02:16,520 todos los datos volcados 41 00:02:16,520 --> 00:02:18,060 a las variables 42 00:02:18,060 --> 00:02:21,099 y cuando ya las variables tienen datos 43 00:02:21,099 --> 00:02:23,199 en mi caso la variable array profesores 44 00:02:23,199 --> 00:02:24,199 cuando ya tienen datos 45 00:02:24,199 --> 00:02:26,400 ya tiene sentido operar y hacer cosas 46 00:02:26,400 --> 00:02:27,439 cuando ya tienen los datos 47 00:02:28,379 --> 00:02:29,840 Vale, pues ahora ¿qué tenemos que hacer? 48 00:02:30,599 --> 00:02:34,979 Vamos a calcular el sueldo mayor de todos 49 00:02:34,979 --> 00:02:38,159 para mostrar cuál de estos objetos profesor 50 00:02:38,159 --> 00:02:39,419 tiene el sueldo mayor de todos. 51 00:02:40,439 --> 00:02:42,979 ¿Vale? Pues entonces, ¿nuestro resultado cuál va a ser? 52 00:02:43,060 --> 00:02:45,759 Va a haber un profesor que sea el que tenga el sueldo máximo. 53 00:02:46,580 --> 00:02:48,159 Ese va a ser un objeto... 54 00:02:48,159 --> 00:02:50,840 ¡Silencio, que me distraigo! 55 00:02:51,099 --> 00:02:54,180 O sea, el máximo, el que tenga el máximo 56 00:02:54,180 --> 00:02:55,460 va a ser un objeto profesor. 57 00:02:55,759 --> 00:02:57,400 Pues venga, yo puedo hacer esto. 58 00:02:58,419 --> 00:03:01,319 Profesor, este va a ser el profesor sueldo máximo. 59 00:03:03,979 --> 00:03:09,479 Aquí voy a guardar, en esta variable voy a guardar el profesor que tenga el sueldo máximo. 60 00:03:10,060 --> 00:03:14,379 Porque aquí donde estamos maximizando es en un conjunto de profesores. 61 00:03:15,020 --> 00:03:18,539 Cuando maximizábamos un conjunto de números, pues mi máximo era un número. 62 00:03:19,300 --> 00:03:24,199 Cuando maximizábamos un conjunto de cadenas, el máximo era una cadena que tenía longitud máxima. 63 00:03:24,759 --> 00:03:27,139 Pues aquí el que cumple el máximo es un profesor. 64 00:03:27,439 --> 00:03:28,379 Pues lo voy a guardar aquí. 65 00:03:29,840 --> 00:03:30,080 Vale. 66 00:03:30,659 --> 00:03:31,560 Andoni, cállate. 67 00:03:33,500 --> 00:03:36,180 Tengo tu voz metida en el cerebro a todas horas. 68 00:03:36,419 --> 00:03:37,120 No puedo más. 69 00:03:38,539 --> 00:03:40,520 De verdad, sí, no lo dudo. 70 00:03:40,979 --> 00:03:42,460 Pero necesito un paz, un rato. 71 00:03:43,379 --> 00:03:45,919 Vale, entonces, ahora ya es cuando empieza el algoritmo de máximo. 72 00:03:46,360 --> 00:03:47,259 ¿Cómo funciona ese algoritmo? 73 00:03:47,340 --> 00:03:48,099 Ya lo sabemos de memoria. 74 00:03:49,159 --> 00:03:50,659 El máximo inicial es el primero. 75 00:03:51,539 --> 00:03:52,860 Y ahora empezamos a recorrer. 76 00:03:53,039 --> 00:03:55,020 Si alguno supera el máximo, sustituyo. 77 00:03:55,020 --> 00:03:57,680 vale, pues el máximo, el profesor 78 00:03:57,680 --> 00:03:59,240 máximo inicial, ¿cuál va a ser? 79 00:04:00,080 --> 00:04:01,080 el primero 80 00:04:01,080 --> 00:04:02,780 profesor es 81 00:04:02,780 --> 00:04:05,979 este es el profesor 82 00:04:05,979 --> 00:04:07,419 máximo inicial 83 00:04:07,419 --> 00:04:09,800 y ahora vamos a recorrer el array 84 00:04:09,800 --> 00:04:11,879 para ver si alguno supera 85 00:04:11,879 --> 00:04:12,740 a este profesor 86 00:04:12,740 --> 00:04:26,959 vale, algoritmo de máximo 87 00:04:26,959 --> 00:04:28,019 de siempre, vale 88 00:04:28,019 --> 00:04:30,939 pues el profesor y supera 89 00:04:30,939 --> 00:04:33,000 a este, ahora la única pregunta 90 00:04:33,000 --> 00:04:34,560 es ¿qué significa superarle? 91 00:04:34,560 --> 00:04:37,639 superarle significa que su punto sueldo 92 00:04:37,639 --> 00:04:39,420 sea mayor, eso significa 93 00:04:39,420 --> 00:04:41,220 superarle, pues entonces ahora 94 00:04:41,220 --> 00:04:43,459 hacemos, si profesores 95 00:04:43,459 --> 00:04:44,019 de I 96 00:04:44,019 --> 00:04:46,540 punto sueldo 97 00:04:46,540 --> 00:04:48,139 es mayor 98 00:04:48,139 --> 00:04:50,360 que prof 99 00:04:50,360 --> 00:04:52,439 sueldo 100 00:04:52,439 --> 00:04:54,579 máximo 101 00:04:54,579 --> 00:04:56,040 punto sueldo 102 00:04:56,040 --> 00:05:02,100 ahora superar 103 00:05:02,100 --> 00:05:03,699 significa esto 104 00:05:03,699 --> 00:05:06,560 significa esto 105 00:05:06,560 --> 00:05:13,980 ¿Profesor es de ahí punto sueldo es mayor que el que es máximo hasta ese momento su sueldo? 106 00:05:14,939 --> 00:05:16,740 Esto significa ahora superarle 107 00:05:16,740 --> 00:05:21,259 ¿Vale? Entonces cada vez el máximo, la condición que va dentro del IF 108 00:05:21,259 --> 00:05:24,740 Cada vez será una, depende de lo que significa es superar 109 00:05:24,740 --> 00:05:30,660 En este caso superar significa que tu punto sueldo es mayor que el punto sueldo del que es máximo 110 00:05:30,660 --> 00:05:32,540 Eso significa superar 111 00:05:32,540 --> 00:05:42,540 Ah, pues si me superas, entonces tengo nuevo profesor con sueldo máximo, que es este. 112 00:05:51,810 --> 00:05:52,470 Y ya está. 113 00:05:54,129 --> 00:05:55,970 Entonces, estamos haciendo el algoritmo de siempre. 114 00:05:56,449 --> 00:05:57,649 Pero ahora, ¿qué recorremos? 115 00:05:57,870 --> 00:06:02,910 Recorremos objetos profesor, nos recorremos número, nos recorremos cadenas, recorremos objetos profesor. 116 00:06:03,610 --> 00:06:04,750 Pero todo sigue igual. 117 00:06:05,329 --> 00:06:08,509 El profesor que es máximo es el primero inicialmente. 118 00:06:09,009 --> 00:06:10,350 Y ahora voy en todos los demás. 119 00:06:10,790 --> 00:06:12,449 ¿Alguno de ellos supera el máximo? 120 00:06:12,449 --> 00:06:17,350 Lo que cambia cada vez es que significa superar al máximo. 121 00:06:17,730 --> 00:06:24,029 En este caso, superar al máximo significa que tu punto sueldo sea mayor. 122 00:06:25,310 --> 00:06:30,069 Si estamos haciendo el máximo en otro criterio, pues la condición será otra. 123 00:06:30,649 --> 00:06:33,529 Pero aquí estamos haciendo el criterio de máximo por el sueldo. 124 00:06:34,129 --> 00:06:35,170 Luego la condición es esta. 125 00:06:35,170 --> 00:06:37,990 Bueno, pues cuando este for ha terminado 126 00:06:37,990 --> 00:06:39,250 A ver que 127 00:06:39,250 --> 00:06:41,649 Voy a poner las llaves 128 00:06:41,649 --> 00:06:43,230 Antes de que, aunque bueno 129 00:06:43,230 --> 00:06:44,850 Bueno, está Pedro, está todo más 130 00:06:44,850 --> 00:06:46,110 Relajado 131 00:06:46,110 --> 00:06:48,329 Claro, con las llaves también das mucha guerra 132 00:06:48,329 --> 00:06:52,029 Así, vale 133 00:06:52,029 --> 00:06:54,610 Cuando ya este for ha terminado 134 00:06:54,610 --> 00:06:56,410 Que ha terminado aquí en este punto 135 00:06:56,410 --> 00:06:57,889 Este for del máximo 136 00:06:57,889 --> 00:07:01,290 Ya está, mi profesor máximo está en esa variable 137 00:07:01,290 --> 00:07:02,949 Pues venga, ya podemos 138 00:07:02,949 --> 00:07:03,829 Mostrar su nombre 139 00:07:03,829 --> 00:07:07,290 el que más 140 00:07:07,290 --> 00:07:08,509 gana es 141 00:07:08,509 --> 00:07:10,889 ¿y qué tenemos que mostrar del profesor? 142 00:07:11,069 --> 00:07:13,050 el nombre, pues entonces 143 00:07:13,050 --> 00:07:14,689 ponemos profesor 144 00:07:14,689 --> 00:07:17,129 sueldo máximo 145 00:07:17,129 --> 00:07:18,910 que es donde está la variable 146 00:07:18,910 --> 00:07:20,250 donde está el máximo 147 00:07:20,250 --> 00:07:21,670 punto nombre 148 00:07:21,670 --> 00:07:30,019 entonces 149 00:07:30,019 --> 00:07:32,279 en la variable está todo el objeto enterito 150 00:07:32,279 --> 00:07:34,060 en la variable está todo 151 00:07:34,060 --> 00:07:35,879 y yo extraigo la información que quiera 152 00:07:35,879 --> 00:07:38,060 en este caso quiero mostrar su nombre 153 00:07:38,060 --> 00:07:39,379 pues extraeré punto nombre 154 00:07:39,379 --> 00:07:42,560 y está 155 00:07:42,560 --> 00:07:43,939 con un auxiliar 156 00:07:43,939 --> 00:07:44,480 ¿para qué quieres? 157 00:07:44,660 --> 00:07:45,240 ¿con un auxiliar el qué? 158 00:07:45,540 --> 00:07:46,500 para guardar posición 159 00:07:46,500 --> 00:07:47,459 en vez de 160 00:07:47,459 --> 00:07:51,160 sí, a ver 161 00:07:51,160 --> 00:07:51,800 si lo que tú quieres 162 00:07:51,800 --> 00:07:52,879 es arrastrar la posición 163 00:07:52,879 --> 00:07:53,759 donde está el máximo 164 00:07:53,759 --> 00:07:55,459 pues entonces 165 00:07:55,459 --> 00:07:56,360 in post 166 00:07:56,360 --> 00:07:57,300 donde está el máximo 167 00:07:57,300 --> 00:07:58,379 inicialmente es la cero 168 00:07:58,379 --> 00:07:59,519 y ahora 169 00:07:59,519 --> 00:08:00,360 lo que harías aquí 170 00:08:00,360 --> 00:08:00,980 en este for 171 00:08:00,980 --> 00:08:01,519 sería 172 00:08:01,519 --> 00:08:03,459 post máximo 173 00:08:03,459 --> 00:08:04,480 igual a i 174 00:08:04,480 --> 00:08:06,500 y luego aquí 175 00:08:06,500 --> 00:08:07,339 pues harías 176 00:08:07,339 --> 00:08:08,899 profesores de post máximo 177 00:08:08,899 --> 00:08:11,560 Eso 178 00:08:11,560 --> 00:08:18,629 Entonces aquí 179 00:08:18,629 --> 00:08:22,629 Profesores 180 00:08:22,629 --> 00:08:30,180 Vale, pero a ver 181 00:08:30,180 --> 00:08:31,899 Así también 182 00:08:31,899 --> 00:08:33,019 Uno lo podría hacer 183 00:08:33,019 --> 00:08:35,600 Vale, pero bueno 184 00:08:35,600 --> 00:08:37,340 No nos hace falta arrastrar esa otra variable 185 00:08:37,340 --> 00:08:39,960 No hace falta arrastrar 186 00:08:39,960 --> 00:08:40,679 Esta otra variable 187 00:08:40,679 --> 00:08:42,200 Entonces 188 00:08:42,200 --> 00:08:48,419 Repetimos rápidamente 189 00:08:48,419 --> 00:08:50,240 Yo tengo que iterar en un montón de profesores 190 00:08:50,240 --> 00:08:51,639 vale 191 00:08:51,639 --> 00:08:54,379 el profesor máximo 192 00:08:54,379 --> 00:08:56,340 inicialmente es el primero de todos ellos 193 00:08:56,340 --> 00:08:58,059 una variable de tipo profesor, claro 194 00:08:58,059 --> 00:08:59,220 una variable de tipo profesor 195 00:08:59,220 --> 00:09:00,960 ahora, itero por los demás 196 00:09:00,960 --> 00:09:03,159 si alguno su sueldo 197 00:09:03,159 --> 00:09:06,200 supera el que es máximo hasta ese momento 198 00:09:06,200 --> 00:09:07,919 porque estamos 199 00:09:07,919 --> 00:09:10,220 maximizando en términos 200 00:09:10,220 --> 00:09:10,799 de sueldo 201 00:09:10,799 --> 00:09:13,059 pues ya tengo nuevo profesor máximo 202 00:09:13,059 --> 00:09:16,080 y ahora ya el que más 203 00:09:16,080 --> 00:09:17,620 gana es este 204 00:09:17,620 --> 00:09:19,860 en profesor sueldo máximo tengo todo dentro 205 00:09:19,860 --> 00:09:22,620 lo otro que he añadido es porque me han dicho que si quería 206 00:09:22,620 --> 00:09:24,299 que arrastrara la posición 207 00:09:24,299 --> 00:09:26,879 pero lo he hecho de otra manera, pero bueno, lo podéis por ahora olvidar 208 00:09:26,879 --> 00:09:28,960 pero si está bien que entendáis lo que significa 209 00:09:28,960 --> 00:09:31,100 vale, si ejecutamos esto 210 00:09:31,100 --> 00:09:32,299 pues 211 00:09:32,299 --> 00:09:34,399 a ver, tendríamos que 212 00:09:34,399 --> 00:09:36,600 hacer un for que nos muestre 213 00:09:36,600 --> 00:09:39,139 para ver que lo ha hecho bien, pero bueno, lo habrá hecho bien 214 00:09:39,139 --> 00:09:41,240 vamos a hacer aquí un for rápidamente 215 00:09:41,240 --> 00:09:42,580 que nos muestre los datos 216 00:09:42,580 --> 00:09:46,299 y sea menor 217 00:09:46,299 --> 00:09:48,860 que profesores 218 00:09:48,860 --> 00:09:50,480 punto led 219 00:09:50,480 --> 00:09:54,240 ¿Por qué no me ofrece el punto length? 220 00:09:55,440 --> 00:09:56,519 ¿Es que lo he escrito mal? 221 00:09:58,659 --> 00:09:59,080 No sé 222 00:09:59,080 --> 00:10:02,200 Y más más, vale 223 00:10:02,200 --> 00:10:04,480 Ah, vale 224 00:10:04,480 --> 00:10:05,940 Porque tenía aquí un error de compilación 225 00:10:05,940 --> 00:10:06,480 Vale, vale 226 00:10:06,480 --> 00:10:10,179 Vamos a mostrar todos los datos 227 00:10:10,179 --> 00:10:12,039 De todos rápidamente 228 00:10:12,039 --> 00:10:14,059 Que sería 229 00:10:14,059 --> 00:10:16,039 Profesores 230 00:10:16,039 --> 00:10:20,779 De i.nombre 231 00:10:20,779 --> 00:10:24,419 Y vamos a mostrar el sueldo 232 00:10:24,419 --> 00:10:33,769 Punto sueldo 233 00:10:33,769 --> 00:10:35,049 Vale, entonces 234 00:10:35,049 --> 00:10:37,450 En este programa he rellenado el array 235 00:10:37,450 --> 00:10:39,649 He mostrado los datos 236 00:10:39,649 --> 00:10:41,210 Y ahora vamos a ver el máximo 237 00:10:41,210 --> 00:10:42,090 A ver si lo ha hecho bien 238 00:10:42,090 --> 00:10:44,070 Lo volvemos a ejecutar 239 00:10:44,070 --> 00:10:47,350 El que más gana es Pepito2 240 00:10:47,350 --> 00:10:49,710 Vale, que gana 980 241 00:10:49,710 --> 00:10:51,789 Vale, eso lo vamos a ejecutar 242 00:10:51,789 --> 00:10:53,289 Ahora el que más gana es este 243 00:10:53,289 --> 00:10:55,070 Pepito0, vale, está bien 244 00:10:55,070 --> 00:10:59,090 Vale, pues listo 245 00:10:59,090 --> 00:11:01,230 Eh...