1 00:00:00,300 --> 00:00:14,529 Vale, pues aquí tenemos, silencio, ya tenemos nuestro array de 10 rellenado en lugar de teclado con números aleatorios para no hacer la prueba ahí desde el teclado todo el rato. 2 00:00:14,529 --> 00:00:29,210 Ahora, el enunciado me dice que tengo que ver si los números están ordenados de forma decreciente o no, silencio, ordenados de forma decreciente o si están desordenados. 3 00:00:29,210 --> 00:00:34,850 Es decir, el programa me tiene que decir si algo ocurre o si algo no ocurre. 4 00:00:35,609 --> 00:00:41,310 O sea, son tres cosas en realidad, pero son tres cosas que reproducen el mismo patrón. 5 00:00:41,549 --> 00:00:42,850 Si algo pasa o no pasa. 6 00:00:45,369 --> 00:00:47,770 ¿Pasa que están ordenados de forma creciente o no pasa? 7 00:00:48,549 --> 00:00:51,130 ¿Pasa que están ordenados de forma decreciente o no pasa? 8 00:00:51,689 --> 00:00:53,710 ¿Pasa que están desordenados o no pasa? 9 00:00:54,490 --> 00:00:56,670 Es decir, es ver si algo ocurre o no ocurre. 10 00:00:56,670 --> 00:00:59,810 lo que pasa es que tres situaciones distintas 11 00:00:59,810 --> 00:01:00,950 pero bueno, las puedo ir 12 00:01:00,950 --> 00:01:03,590 en el mismo programa, yo puedo mirar 13 00:01:03,590 --> 00:01:05,290 las tres situaciones y 14 00:01:05,290 --> 00:01:06,609 verlas por libre incluso 15 00:01:06,609 --> 00:01:09,430 pues por ejemplo, vamos a plantearnos la primera 16 00:01:09,430 --> 00:01:11,609 imaginaos que eso lo tenemos que hacer 17 00:01:11,609 --> 00:01:13,969 ver si está ordenado de forma creciente 18 00:01:13,969 --> 00:01:15,349 o no lo está 19 00:01:15,349 --> 00:01:16,989 bueno, pues 20 00:01:16,989 --> 00:01:19,390 mi aplicación entonces es 21 00:01:19,390 --> 00:01:21,629 yo de partida asumo 22 00:01:21,629 --> 00:01:23,049 una de las dos cosas 23 00:01:23,049 --> 00:01:25,989 que si lo están o que no lo están 24 00:01:25,989 --> 00:01:39,689 En función del problema ya veo cuál me interesa asumir. Y ahora me empiezan a llegar los datos. ¿Cuáles van a ser las posiciones del array? Bueno, pues yo de partida voy a asumir que están ordenados de forma creciente. 25 00:01:39,689 --> 00:01:42,049 ahora me empiezan a llegar los datos 26 00:01:42,049 --> 00:01:44,650 en este caso, ¿cómo encuentro un contraejemplo? 27 00:01:44,750 --> 00:01:45,870 encuentro un contraejemplo 28 00:01:45,870 --> 00:01:48,829 si cada número que me llega 29 00:01:48,829 --> 00:01:50,049 si encuentro uno 30 00:01:50,049 --> 00:01:52,810 que es menor 31 00:01:52,810 --> 00:01:54,489 que el anterior, acabo de encontrar 32 00:01:54,489 --> 00:01:56,689 un contraejemplo, ya está, ya puedo cambiar 33 00:01:56,689 --> 00:01:58,849 la idea de partida, es imposible que estén ordenados 34 00:01:58,849 --> 00:02:00,849 de forma creciente, pero acabo de encontrar uno 35 00:02:00,849 --> 00:02:03,090 que es más pequeño que el de atrás 36 00:02:03,090 --> 00:02:05,109 luego ya he encontrado el contraejemplo 37 00:02:05,109 --> 00:02:06,810 y ya está, pues ya está 38 00:02:06,810 --> 00:02:07,349 entonces 39 00:02:07,349 --> 00:02:09,949 yo asumo de partida 40 00:02:09,949 --> 00:02:12,289 que están ordenados 41 00:02:12,289 --> 00:02:13,289 de forma creciente 42 00:02:13,289 --> 00:02:16,250 y ahora voy a recorrer 43 00:02:16,250 --> 00:02:18,050 el array a ver si algún número 44 00:02:18,050 --> 00:02:20,569 de los que me van llegando en el recorrido 45 00:02:20,569 --> 00:02:22,210 me hace que cambie 46 00:02:22,210 --> 00:02:25,979 de idea, pues venga 47 00:02:25,979 --> 00:02:31,530 si recorremos el array así sin más 48 00:02:31,530 --> 00:02:33,710 sin pensar, pues haríamos esto 49 00:02:33,710 --> 00:02:38,110 ¿verdad? y ahora 50 00:02:38,110 --> 00:02:40,129 con cada numerito, ¿qué voy a hacer yo? 51 00:02:40,229 --> 00:02:40,889 voy a ver 52 00:02:40,889 --> 00:02:43,330 si es un contraejemplo 53 00:02:43,330 --> 00:02:45,650 ¿Qué significaría ser un contraejemplo? 54 00:02:46,030 --> 00:02:48,490 Que es más pequeño que el que tiene detrás 55 00:02:48,490 --> 00:02:49,629 Más pequeño que el anterior 56 00:02:49,629 --> 00:02:52,069 Porque si es más pequeño que el anterior 57 00:02:52,069 --> 00:02:56,530 Ya el array es imposible que esté ordenado de forma creciente 58 00:02:56,530 --> 00:02:59,330 O sea, que vayan todos de pequeño a grande 59 00:02:59,330 --> 00:03:00,090 Es imposible 60 00:03:00,090 --> 00:03:03,330 Porque he encontrado uno que es más pequeño que el que tiene antes 61 00:03:03,330 --> 00:03:07,270 Entonces, ese contraejemplo lo podría expresar así 62 00:03:07,270 --> 00:03:12,849 Si mi número de i resulta que es mayor 63 00:03:12,849 --> 00:03:15,009 que mi número 64 00:03:15,009 --> 00:03:16,490 de i menos 1 65 00:03:16,490 --> 00:03:18,750 pues ya está 66 00:03:18,750 --> 00:03:21,889 esto automáticamente 67 00:03:21,889 --> 00:03:23,050 lo puedo poner en falso 68 00:03:23,050 --> 00:03:24,449 y acabo de encontrar un contra ejemplo 69 00:03:24,449 --> 00:03:27,409 y el primer problema ya estaría 70 00:03:27,409 --> 00:03:28,110 resuelto 71 00:03:28,110 --> 00:03:31,750 puedo hacer lo mismo para creciente 72 00:03:31,750 --> 00:03:33,810 o para decreciente 73 00:03:33,810 --> 00:03:34,610 puedo hacer lo mismo 74 00:03:34,610 --> 00:03:36,789 lo único es que bueno, ahora si uno prueba 75 00:03:36,789 --> 00:03:37,870 esto 76 00:03:37,870 --> 00:03:40,490 vamos a suponer 77 00:03:40,490 --> 00:03:43,389 Ahora, ¿qué haríamos? 78 00:03:45,169 --> 00:03:49,520 Si creciente 79 00:03:49,520 --> 00:03:53,680 Vamos a quedarnos por ahora solo con el primer problema 80 00:03:53,680 --> 00:03:59,409 Están de forma creciente 81 00:03:59,409 --> 00:04:06,409 Y el else de este sería no están de forma creciente 82 00:04:06,409 --> 00:04:08,729 Todavía no sé si están de creciente o desordenados 83 00:04:08,729 --> 00:04:10,189 Es que esa parte no la he resuelto 84 00:04:10,189 --> 00:04:20,319 Pero bueno, como primera aproximación hay problema 85 00:04:20,319 --> 00:04:21,120 Esto estaría bien 86 00:04:21,120 --> 00:04:22,879 asumo de partida que cada uno 87 00:04:22,879 --> 00:04:25,019 es más grande que el anterior 88 00:04:25,019 --> 00:04:27,420 cada uno es más grande que el anterior 89 00:04:27,420 --> 00:04:30,850 entonces, bueno 90 00:04:30,850 --> 00:04:32,889 entonces aquí estoy, lo he hecho al revés 91 00:04:32,889 --> 00:04:35,089 menor, ¿no? o sea, he puesto esto al revés 92 00:04:35,089 --> 00:04:36,949 de partida asumo 93 00:04:36,949 --> 00:04:39,029 que cada uno es más pequeño que el anterior 94 00:04:39,029 --> 00:04:40,589 perdón, porque es de forma creciente 95 00:04:40,589 --> 00:04:42,649 cada uno más pequeño que el anterior 96 00:04:42,649 --> 00:04:44,350 entonces 97 00:04:44,350 --> 00:04:47,009 voy número 98 00:04:47,009 --> 00:04:49,110 por número, si alguno me contradice 99 00:04:49,110 --> 00:04:51,050 esa idea, porque alguno resulta 100 00:04:51,050 --> 00:04:52,430 que es más pequeño que el anterior 101 00:04:52,430 --> 00:04:54,949 imposible, ese ya no es creciente 102 00:04:54,949 --> 00:04:57,370 imposible, ya no es creciente porque es más pequeño 103 00:04:57,370 --> 00:04:57,990 que el anterior 104 00:04:57,990 --> 00:05:00,850 tengo ya el único contraejemplo que necesito 105 00:05:00,850 --> 00:05:03,209 para cambiar de idea, porque ya con haber encontrado 106 00:05:03,209 --> 00:05:04,949 uno que es más pequeño 107 00:05:04,949 --> 00:05:06,889 que el anterior, que el que le precede 108 00:05:06,889 --> 00:05:10,610 ya estaría, entonces si ejecutamos 109 00:05:10,610 --> 00:05:11,069 esto 110 00:05:11,069 --> 00:05:14,269 ¿alguien puede prever lo que va a ocurrir? 111 00:05:17,810 --> 00:05:18,769 claro, me va a salir 112 00:05:18,769 --> 00:05:20,670 un out of bound exception porque yo estoy partiendo 113 00:05:20,670 --> 00:05:22,490 desde la 0, porque he puesto esto así 114 00:05:22,490 --> 00:05:24,629 de corrida, no, cuidado 115 00:05:24,629 --> 00:05:26,129 tengo que partir desde el primero 116 00:05:26,129 --> 00:05:28,769 porque lo que hago con cada número es comparar 117 00:05:28,769 --> 00:05:30,790 con el anterior, entonces el cero no tiene 118 00:05:30,790 --> 00:05:32,269 sentido que lo compare con el anterior 119 00:05:32,269 --> 00:05:33,889 entonces voy a partir 120 00:05:33,889 --> 00:05:36,449 con el elemento en la segunda posición 121 00:05:36,449 --> 00:05:38,670 y ahora ya sí, el que está 122 00:05:38,670 --> 00:05:40,689 en la primera posición no me interesa, lo ignoro 123 00:05:40,689 --> 00:05:42,829 en el segundo, oye 124 00:05:42,829 --> 00:05:45,050 tú, eres más pequeño 125 00:05:45,050 --> 00:05:45,750 que el anterior 126 00:05:45,750 --> 00:05:48,930 eres un contraejemplo, cambio de idea, se acabó 127 00:05:48,930 --> 00:05:50,629 siguiente 128 00:05:50,629 --> 00:05:51,850 así uno por uno 129 00:05:51,850 --> 00:05:53,709 Entonces 130 00:05:53,709 --> 00:05:56,269 Ahora, bueno, vamos a mostrar los números 131 00:05:56,269 --> 00:05:57,689 Para 132 00:05:57,689 --> 00:06:01,860 Para ver si realmente 133 00:06:01,860 --> 00:06:03,319 Esto ha funcionado bien o mal 134 00:06:03,319 --> 00:06:04,040 Entonces 135 00:06:04,040 --> 00:06:09,540 Voy a mostrar los números en una sola línea 136 00:06:09,540 --> 00:06:13,100 Para que 137 00:06:13,100 --> 00:06:18,290 Print el numerito 138 00:06:18,290 --> 00:06:19,649 Que acabo de generar 139 00:06:19,649 --> 00:06:22,730 Concatenado 140 00:06:22,730 --> 00:06:24,389 Con un espacio 141 00:06:24,389 --> 00:06:27,389 Vale, con un guion 142 00:06:27,389 --> 00:06:31,089 Venga, aquí voy a mostrar los números 143 00:06:31,089 --> 00:06:33,430 Que se van generando para luego ver si están 144 00:06:33,430 --> 00:06:35,250 Crecientes o no 145 00:06:35,250 --> 00:06:37,730 Entonces voy a poner aquí un system.out.println 146 00:06:37,730 --> 00:06:39,129 Para meter el salto de línea 147 00:06:39,129 --> 00:06:52,399 Vale, vamos a ver 148 00:06:52,399 --> 00:07:00,519 Vale, pues no están 149 00:07:00,519 --> 00:07:01,600 De forma creciente 150 00:07:01,600 --> 00:07:03,480 Lo que pasa es que claro, tendríamos que 151 00:07:03,480 --> 00:07:07,300 Voy a forzar 152 00:07:07,300 --> 00:07:09,300 uno que están de forma creciente 153 00:07:09,300 --> 00:07:11,740 que es en lugar de meterle los aleatorios 154 00:07:11,740 --> 00:07:13,579 que me van a salir siempre 155 00:07:13,579 --> 00:07:15,720 desordenados 156 00:07:15,720 --> 00:07:16,439 y es un rollo 157 00:07:16,439 --> 00:07:19,500 voy a forzar un array que me lo vaya 158 00:07:19,500 --> 00:07:21,420 rellenando con el propio valor de i 159 00:07:21,420 --> 00:07:23,399 que estos van a estar de forma creciente seguro 160 00:07:23,399 --> 00:07:25,319 a ver este ejemplo 161 00:07:25,319 --> 00:07:27,519 que este me los va a ir rellenando con 0, 1, 2 162 00:07:27,519 --> 00:07:29,120 a ver este 163 00:07:29,120 --> 00:07:31,399 0, 1, 2, 3 164 00:07:31,399 --> 00:07:32,540 están de forma creciente 165 00:07:32,540 --> 00:07:37,910 vale, bueno, pues parece que funciona 166 00:07:37,910 --> 00:07:40,910 ahora podríamos aplicar la misma idea 167 00:07:40,910 --> 00:07:43,050 pero en decreciente 168 00:07:43,050 --> 00:07:44,910 que es lo que cambia, de nuevo un boolean 169 00:07:44,910 --> 00:07:46,750 asumo que están de forma decreciente 170 00:07:46,750 --> 00:07:48,790 de partida, y ahora este mismo 171 00:07:48,790 --> 00:07:50,730 for, pero este 172 00:07:50,730 --> 00:07:52,689 este me cambia, en lugar de menor que, mayor que 173 00:07:52,689 --> 00:07:54,589 en cuanto encuentre uno que es mayor que 174 00:07:54,589 --> 00:07:56,730 el anterior, no están en 175 00:07:56,730 --> 00:07:57,370 decreciente 176 00:07:57,370 --> 00:08:00,649 entonces sería, esto me puedo 177 00:08:00,649 --> 00:08:01,910 hacer aquí un copia y pega 178 00:08:01,910 --> 00:08:07,100 y ahora, voy a asumir 179 00:08:07,100 --> 00:08:08,240 decreciente true 180 00:08:08,240 --> 00:08:10,939 en cuanto uno sea mayor 181 00:08:10,939 --> 00:08:13,100 que el anterior 182 00:08:13,100 --> 00:08:15,319 decreciente, cambio de idea 183 00:08:15,319 --> 00:08:17,459 entonces ya tengo los dos Boolean 184 00:08:17,459 --> 00:08:19,019 pueden estar creciente o no 185 00:08:19,019 --> 00:08:21,220 decreciente o no, y en el caso de que 186 00:08:21,220 --> 00:08:22,660 ninguno de los dos desordenados 187 00:08:22,660 --> 00:08:27,540 sí, pero bueno 188 00:08:27,540 --> 00:08:29,300 lo voy más o menos separando para 189 00:08:29,300 --> 00:08:30,639 si va 190 00:08:30,639 --> 00:08:33,539 para ir aclarándonos las ideas 191 00:08:33,539 --> 00:08:40,820 entonces ahora ya el programa 192 00:08:40,820 --> 00:08:42,279 podría quedar así 193 00:08:42,279 --> 00:08:44,659 desordenado 194 00:08:44,659 --> 00:08:46,679 Sería la tercera opción 195 00:08:46,679 --> 00:08:48,399 Desordenados 196 00:08:48,399 --> 00:08:50,100 Si no están creciente 197 00:08:50,100 --> 00:08:52,539 Ni están decreciente, están desordenados 198 00:08:52,539 --> 00:08:54,340 Tengo dos opciones, o están creciente 199 00:08:54,340 --> 00:08:56,539 O están decreciente 200 00:08:56,539 --> 00:08:59,220 O están desordenados 201 00:08:59,220 --> 00:09:02,669 Ya está 202 00:09:02,669 --> 00:09:05,049 Si le pongo en aleatorio 203 00:09:05,049 --> 00:09:07,429 Me van a salir 204 00:09:07,429 --> 00:09:08,809 Desordenados, claro 205 00:09:08,809 --> 00:09:10,250 Pero bueno, vamos a probarlo así 206 00:09:10,250 --> 00:09:17,149 Están desordenados 207 00:09:17,149 --> 00:09:19,210 Voy a forzarle el decreciente 208 00:09:19,210 --> 00:09:21,470 Para ver si lo saca 209 00:09:21,470 --> 00:09:22,490 En lugar de aleatorio 210 00:09:22,490 --> 00:09:25,570 Que lo haga 211 00:09:25,570 --> 00:09:26,769 Con números 212 00:09:26,769 --> 00:09:31,330 Por ejemplo 213 00:09:31,330 --> 00:09:32,950 45 menos 214 00:09:32,950 --> 00:09:35,070 Así me va a dar 45, 46 215 00:09:35,070 --> 00:09:37,450 Perdón, 45, 44, 43 216 00:09:37,450 --> 00:09:39,009 Con esto 217 00:09:39,009 --> 00:09:40,830 Fuerzo que estén decreciente 218 00:09:40,830 --> 00:09:41,870 A ver si así lo hace 219 00:09:41,870 --> 00:09:45,539 Ah bueno, es que 220 00:09:45,539 --> 00:09:46,899 No están 221 00:09:46,899 --> 00:09:49,940 Perdón, es que este el seguir no lo he puesto mal 222 00:09:49,940 --> 00:09:52,580 Están 223 00:09:52,580 --> 00:09:54,940 De forma decreciente 224 00:09:54,940 --> 00:09:58,700 Pero vamos, me había entrado en ese el save 225 00:09:58,700 --> 00:10:00,000 Con lo cual lo había hecho bien 226 00:10:00,000 --> 00:10:02,779 En este caso están de forma decreciente 227 00:10:02,779 --> 00:10:03,519 Efectivamente 228 00:10:03,519 --> 00:10:06,139 Decreciente 229 00:10:06,139 --> 00:10:08,120 Vale 230 00:10:08,120 --> 00:10:10,500 Bueno, pues ya está 231 00:10:10,500 --> 00:10:12,539 Entonces, como digo siempre 232 00:10:12,539 --> 00:10:15,120 Ante una cosa 233 00:10:15,120 --> 00:10:16,580 Pues que uno no sabe 234 00:10:16,580 --> 00:10:18,580 Cómo hacer de partida, porque puede ser muy fácil 235 00:10:18,580 --> 00:10:19,299 Puede no serlo 236 00:10:19,299 --> 00:10:22,360 Pues siempre tratad de organizar vuestra cabeza 237 00:10:22,360 --> 00:10:24,759 las formas de trabajar que hemos hecho 238 00:10:24,759 --> 00:10:26,779 pasa o no pasa 239 00:10:26,779 --> 00:10:28,840 bueno, pues asumo que pasa 240 00:10:28,840 --> 00:10:29,919 y busco un contraejemplo 241 00:10:29,919 --> 00:10:31,320 y eso lo reproduzco para 242 00:10:31,320 --> 00:10:34,860 todas las situaciones, creciente, decreciente 243 00:10:34,860 --> 00:10:36,480 venga, pues ahora ya sí que