1 00:00:01,139 --> 00:00:21,980 Vale, pues proceso mental que seguimos. Primero, leemos el enunciado y nos aseguramos de que entendemos lo que hay que hacer. Leer por teclado dos variables, si entiendo, dos variables enteras, dos números. Mostrar el valor de la variable que tenga el mayor número. Bueno, entendemos lo que hay que hacer. Vale, lo entendemos. 2 00:00:21,980 --> 00:00:26,679 Entonces, ahora podemos ya empezar a programar 3 00:00:26,679 --> 00:00:29,879 Ya poco a poco las partes que sepamos haciendo 4 00:00:29,879 --> 00:00:31,620 Entonces, normalmente 5 00:00:31,620 --> 00:00:34,880 Un programa lo podemos estructurar en la cabeza 6 00:00:34,880 --> 00:00:36,039 En tres partes 7 00:00:36,039 --> 00:00:39,840 Datos de entrada, recogida de datos de entrada 8 00:00:39,840 --> 00:00:43,100 Mostrar mi resultado 9 00:00:43,100 --> 00:00:45,179 Y entre medias de las dos partes 10 00:00:45,179 --> 00:00:47,880 Todas las operaciones necesarias 11 00:00:47,880 --> 00:00:50,719 Para obtener el resultado desde los datos de entrada 12 00:00:50,719 --> 00:00:53,500 Como tres partes estructuradas 13 00:00:53,500 --> 00:00:58,179 Recogida de datos, procesamiento de los datos, mostrar el resultado 14 00:00:58,179 --> 00:01:01,780 La parte complicada, lógicamente, es el procesamiento de los datos 15 00:01:01,780 --> 00:01:06,799 La parte de recogida de datos, en nuestro caso, que es leer del teclado 16 00:01:06,799 --> 00:01:09,379 No sabemos recoger de otra manera, es sencilla también 17 00:01:09,379 --> 00:01:11,760 Vale, vamos a hacer esa primera parte 18 00:01:11,760 --> 00:01:14,560 Recogida de datos del teclado 19 00:01:14,560 --> 00:01:19,859 Para eso ya sabemos de memoria que tenemos que usar esto de aquí 20 00:01:19,859 --> 00:01:31,560 ¿Vale? Sabemos que tenemos que usar esto para leer del teclado 21 00:01:31,560 --> 00:01:34,680 No entendemos muy bien por qué hacemos este niño y todo esto 22 00:01:34,680 --> 00:01:35,819 Pero bueno, ya lo entenderemos 23 00:01:35,819 --> 00:01:38,060 Ahora, mis datos de entrada 24 00:01:38,060 --> 00:01:39,640 Dos números enteros 25 00:01:39,640 --> 00:01:42,659 ¿Dónde guardamos los números enteros? 26 00:01:42,760 --> 00:01:44,200 En variables enteras 27 00:01:44,200 --> 00:01:46,379 Pues venga, me voy a declarar yo aquí 28 00:01:46,379 --> 00:01:48,700 Mis variables enteras 29 00:01:48,700 --> 00:01:51,780 Número 1, número 2 30 00:01:51,780 --> 00:01:56,540 Aquí van a ir a parar los datos que lea del teclado 31 00:01:56,540 --> 00:02:25,000 Vamos a solicitarlos. Primero mensajito. Para solicitar el primero, introduzca primer número. Y ahora, una sentencia de asignación donde a esta variable le asignamos el resultado de leer del teclado, que ya sabemos que se consigue así. 32 00:02:25,000 --> 00:02:36,430 ¡Hala! Ya tenemos el primer dato leído del teclado y asignado a la variable número 1 33 00:02:36,430 --> 00:02:37,469 ¿Vale? 34 00:02:38,310 --> 00:02:40,129 Vamos a leer el segundo dato 35 00:02:40,129 --> 00:02:48,080 Lo mismo, pero el número 2 36 00:02:48,080 --> 00:02:52,580 Introduzca segundo número 37 00:02:52,580 --> 00:02:55,939 ¡Hala! La lectura de datos ya está hecha 38 00:02:55,939 --> 00:03:05,120 ¿Vale? Ahora, ¿qué tenemos que hacer con estos números? 39 00:03:05,120 --> 00:03:14,780 Hacer algo, lo que sea, lo que toque, de tal manera que el resultado final del programa sea mostrar un mensaje. 40 00:03:16,300 --> 00:03:29,400 Luego el resultado final de mi programa, o sea aquí habrá que hacer un procesamiento, lo que sea, pero el resultado final de mi programa será esto. 41 00:03:29,400 --> 00:03:31,400 como tiene que terminar es así 42 00:03:31,400 --> 00:03:32,919 mostrar 43 00:03:32,919 --> 00:03:35,699 el mayor 44 00:03:35,699 --> 00:03:37,680 valor es 45 00:03:37,680 --> 00:03:39,520 y 46 00:03:39,520 --> 00:03:41,500 el mayor valor 47 00:03:41,500 --> 00:03:43,280 ¿cuál será? lo sello a tiro fijo 48 00:03:43,280 --> 00:03:44,900 es 7, es 15, es 20 49 00:03:44,900 --> 00:03:46,900 no sé cuál es el mayor valor 50 00:03:46,900 --> 00:03:49,139 ¿estará en alguna variable? 51 00:03:49,740 --> 00:03:51,460 en la variable que tenga el resultado 52 00:03:51,460 --> 00:03:52,560 lo que yo quiero mostrar 53 00:03:52,560 --> 00:03:54,379 bueno pues 54 00:03:54,379 --> 00:03:56,939 ¿vale? 55 00:03:56,939 --> 00:04:00,259 bueno pues el resultado de mi programa 56 00:04:00,259 --> 00:04:01,080 tiene que ser 57 00:04:01,080 --> 00:04:03,039 mostrar un mensaje 58 00:04:03,039 --> 00:04:04,699 el mayor valor es 59 00:04:04,699 --> 00:04:06,439 y el resultado final 60 00:04:06,439 --> 00:04:08,259 el que sea el mayor de los dos 61 00:04:08,259 --> 00:04:09,180 que yo habré metido ahí 62 00:04:09,180 --> 00:04:10,020 ¿cómo? no lo sé 63 00:04:10,020 --> 00:04:11,039 no lo sé 64 00:04:11,039 --> 00:04:12,620 pero ese tiene que ser el resultado final 65 00:04:12,620 --> 00:04:14,740 luego 66 00:04:14,740 --> 00:04:16,139 esta variable 67 00:04:16,139 --> 00:04:18,459 la voy a declarar 68 00:04:18,459 --> 00:04:21,300 porque ya voy previendo 69 00:04:21,300 --> 00:04:22,519 que la voy a usar 70 00:04:22,519 --> 00:04:24,519 para guardar mi resultado final 71 00:04:24,519 --> 00:04:28,439 vale, pues esta variable vamos a declararla 72 00:04:28,439 --> 00:04:29,899 porque si no, no podemos usarla 73 00:04:29,899 --> 00:04:32,519 pues venga, la declaramos aquí 74 00:04:32,519 --> 00:04:34,139 resultado 75 00:04:34,139 --> 00:04:37,509 vale, pues 76 00:04:37,509 --> 00:04:40,209 mi programa va a terminar en este punto 77 00:04:40,209 --> 00:04:42,290 mostrando el mayor valor de los dos 78 00:04:42,290 --> 00:04:44,490 que yo habré guardado previamente aquí 79 00:04:44,490 --> 00:04:46,790 habré guardado previamente aquí 80 00:04:46,790 --> 00:04:48,629 y ahora nos viene lo complicado 81 00:04:48,629 --> 00:04:49,589 que es, vamos a ver 82 00:04:49,589 --> 00:04:52,310 resultado de donde lo saco 83 00:04:52,310 --> 00:04:54,829 de donde saco resultado 84 00:04:54,829 --> 00:05:15,189 ¿Qué es lo que tengo que mostrar? Pues tengo dos posibilidades. Resultado o bien es número uno o bien es número dos. Uno de los dos será. Entonces, ¿resultado qué le hago? ¿Resultado es número uno o resultado es número dos? 85 00:05:15,189 --> 00:05:22,269 ¿cuál de las dos sentencias 86 00:05:22,269 --> 00:05:23,610 tengo que hacer? 87 00:05:24,550 --> 00:05:26,250 ¿esta asignación o esta otra? 88 00:05:26,970 --> 00:05:28,029 no lo sé, depende 89 00:05:28,029 --> 00:05:30,910 haré esta asignación 90 00:05:30,910 --> 00:05:32,949 si número uno es mayor que número dos 91 00:05:32,949 --> 00:05:35,269 y haré esta en caso contrario 92 00:05:35,269 --> 00:05:37,069 entonces 93 00:05:37,069 --> 00:05:39,209 aquí estoy identificando 94 00:05:39,209 --> 00:05:40,930 que tengo una 95 00:05:40,930 --> 00:05:42,850 asignación condicionada 96 00:05:42,850 --> 00:05:44,129 o bien es esta 97 00:05:44,129 --> 00:05:48,949 o bien es esta la asignación 98 00:05:48,949 --> 00:05:49,709 que tengo que hacer 99 00:05:49,709 --> 00:06:03,930 O bien es esta otra, no sé cuál de las dos. ¿De qué depende? Depende de una condición. ¿De qué condición? De si número 1 es mayor que número 2. Ya tengo la condición hecha. 100 00:06:03,930 --> 00:06:07,370 entonces si número 1 es mayor que número 2 101 00:06:07,370 --> 00:06:09,350 es esto lo que quiero hacer 102 00:06:09,350 --> 00:06:11,149 pero si número 1 103 00:06:11,149 --> 00:06:12,850 no es mayor que número 2 104 00:06:12,850 --> 00:06:13,829 o si esto es falso 105 00:06:13,829 --> 00:06:15,810 es esto lo que tengo que hacer 106 00:06:15,810 --> 00:06:17,949 si es true hago lo de arriba 107 00:06:17,949 --> 00:06:20,149 y si es falso hago lo de abajo 108 00:06:20,149 --> 00:06:22,810 luego mi programa 109 00:06:22,810 --> 00:06:23,790 consta de 110 00:06:23,790 --> 00:06:26,029 hacer esta o hacer esta 111 00:06:26,029 --> 00:06:27,769 una de las dos, de que depende 112 00:06:27,769 --> 00:06:29,389 de si esto es true o esto es falso 113 00:06:29,389 --> 00:06:32,029 entonces esto que yo estoy 114 00:06:32,029 --> 00:06:33,910 identificando aquí después de pensarlo 115 00:06:33,910 --> 00:06:35,949 que tengo que hacer, esto ya tengo 116 00:06:35,949 --> 00:06:37,730 una manera de escribirlo que ya conozco 117 00:06:37,730 --> 00:06:40,069 porque ya me he estudiado y ya la he visto 118 00:06:40,069 --> 00:06:42,230 del otro día, y la manera de escribir 119 00:06:42,230 --> 00:06:43,550 este proceso mental 120 00:06:43,550 --> 00:06:45,850 o bien esta asignación o bien esta otra 121 00:06:45,850 --> 00:06:47,850 depende de una condición, la forma 122 00:06:47,850 --> 00:06:49,970 de escribirla, pues es el operador 123 00:06:49,970 --> 00:06:51,970 ternario que ya conocemos, ahora lo único que tengo que hacer 124 00:06:51,970 --> 00:06:53,889 es, como yo ya me lo sé y me lo he 125 00:06:53,889 --> 00:06:55,769 aprendido y me lo he estudiado y ya lo tengo en la cabeza 126 00:06:55,769 --> 00:06:57,949 digo, ah vale, eso es 127 00:06:57,949 --> 00:06:59,269 lo que yo quiero expresar 128 00:06:59,269 --> 00:07:01,569 ¿tengo alguna herramienta para expresarlo? 129 00:07:02,069 --> 00:07:03,290 claro que la tengo, esta 130 00:07:03,290 --> 00:07:09,129 Pues la utilizo para expresar, ¿vale? Pero para eso me tengo que saber las cosas. 131 00:07:11,430 --> 00:07:16,649 Vale, pues ¿cómo era la herramienta de expresar una o la otra en función de la condición? 132 00:07:17,670 --> 00:07:21,009 Pues vamos a hacer esta asignación condicionada. 133 00:07:21,149 --> 00:07:23,550 A resultado, ¿qué le asignamos? 134 00:07:24,629 --> 00:07:28,910 Depende, depende de si número 1 es mayor que número 2. 135 00:07:28,910 --> 00:07:30,430 depende 136 00:07:30,430 --> 00:07:32,930 si número 1 es mayor que número 2 137 00:07:32,930 --> 00:07:34,410 le asignamos número 1 138 00:07:34,410 --> 00:07:36,790 y si no, le asignamos 139 00:07:36,790 --> 00:07:37,509 número 2 140 00:07:37,509 --> 00:07:41,029 y ya está 141 00:07:41,029 --> 00:07:44,610 ¿vale? que lo queremos dejar separado 142 00:07:44,610 --> 00:07:45,509 para que se vea mejor 143 00:07:45,509 --> 00:07:52,750 bueno, pues ya hemos expresado lo que queríamos 144 00:07:52,750 --> 00:07:54,470 o una o la otra 145 00:07:54,470 --> 00:07:56,589 o asigno número 1 146 00:07:56,589 --> 00:07:58,050 o asigno número 2 147 00:07:58,050 --> 00:07:59,750 depende de esta condición 148 00:07:59,750 --> 00:08:04,519 ¿vale? entonces como siempre 149 00:08:04,519 --> 00:08:06,480 hemos ido de atrás a adelante 150 00:08:06,480 --> 00:08:08,399 bueno, la lectura de datos va por libre 151 00:08:08,399 --> 00:08:10,519 leer los datos, uno ya sabe leerlos, lo sabemos hacer 152 00:08:10,519 --> 00:08:12,100 los leemos, luego 153 00:08:12,100 --> 00:08:13,839 automáticamente nos ponemos en 154 00:08:13,839 --> 00:08:16,379 ¿qué tengo yo que hacer? ¿cuál es mi 155 00:08:16,379 --> 00:08:18,560 parte final? ¿cuál es el final de mi programa? 156 00:08:19,459 --> 00:08:20,519 el final de tu 157 00:08:20,519 --> 00:08:22,279 programa es mostrar el contenido 158 00:08:22,279 --> 00:08:24,279 de una variable, ese es el final 159 00:08:24,279 --> 00:08:26,180 de tu programa, mostrar el contenido de una variable 160 00:08:26,180 --> 00:08:28,379 vale, pues ahora ya vuelvo atrás 161 00:08:28,379 --> 00:08:30,480 y digo, muy bien, pero esa variable 162 00:08:30,480 --> 00:08:31,800 ¿cómo le doy valor? 163 00:08:32,700 --> 00:08:34,179 ¿cómo le doy valor a esa variable 164 00:08:34,179 --> 00:08:36,460 que tengo que mostrar? pues ahora ya pensamos 165 00:08:36,460 --> 00:08:40,440 Pues el valor es o este o este, no lo sé, uno de los dos. 166 00:08:41,899 --> 00:08:45,179 Si es uno u otro, dependerá de alguna condición. 167 00:08:45,919 --> 00:08:48,659 ¿Y cuál es la condición? Ah, pues la condición es esta. 168 00:08:49,580 --> 00:08:52,700 Pues ya está, entonces ya tengo automáticamente 169 00:08:52,700 --> 00:08:57,259 identificado lo que tengo que hacer. 170 00:09:01,460 --> 00:09:03,759 Que luego uno quiera ahorrar y decir, 171 00:09:04,340 --> 00:09:07,100 uy, ¿para qué usar esta variable intermedia resultado? 172 00:09:07,100 --> 00:09:10,379 planto todo esto, que es lo que quiero mostrar 173 00:09:10,379 --> 00:09:13,080 todo esto, que es lo que quiero mostrar 174 00:09:13,080 --> 00:09:14,559 lo planto aquí abajo 175 00:09:14,559 --> 00:09:16,299 y ya está 176 00:09:16,299 --> 00:09:17,919 pero bueno, no nos liemos ahora 177 00:09:17,919 --> 00:09:19,580 vamos haciéndolo en variables separadas 178 00:09:19,580 --> 00:09:22,139 para que sea más claro y ya está 179 00:09:22,139 --> 00:09:22,899 ¿vale? 180 00:09:24,899 --> 00:09:25,860 vamos a probarlo 181 00:09:25,860 --> 00:09:27,919 antes de decir nada más 182 00:09:27,919 --> 00:09:29,659 no vaya a ser que hayamos escrito algo mal 183 00:09:29,659 --> 00:09:32,220 entonces 184 00:09:32,220 --> 00:09:33,860 si mi primer número es 185 00:09:33,860 --> 00:09:36,580 54 y mi segundo número es 23 186 00:09:36,580 --> 00:09:38,399 el mayor valor es 54 187 00:09:38,399 --> 00:09:41,000 pero si mi primer 188 00:09:41,000 --> 00:09:43,460 número es 12 y mi segundo es 78 189 00:09:43,460 --> 00:09:45,179 el mayor valor es 78 190 00:09:45,179 --> 00:09:49,039 ¿está depurado este 191 00:09:49,039 --> 00:09:50,919 programa? no muy 192 00:09:50,919 --> 00:09:51,759 depurado porque 193 00:09:51,759 --> 00:09:54,059 el usuario 194 00:09:54,059 --> 00:09:57,080 me podría decir, uy te he pasado un caso de prueba 195 00:09:57,080 --> 00:09:57,700 que te he pillado 196 00:09:57,700 --> 00:10:00,659 te he pasado 34 y 34 197 00:10:00,659 --> 00:10:02,539 me estás diciendo que el mayor valor es 34 198 00:10:02,539 --> 00:10:04,659 está funcionando perfecto 199 00:10:04,659 --> 00:10:06,000 está funcionando como yo le he dicho 200 00:10:06,000 --> 00:10:10,519 En este caso, ¿número 1 que es 34 es mayor que número 2? 201 00:10:10,879 --> 00:10:11,960 No, no es mayor 202 00:10:11,960 --> 00:10:15,379 Entonces al dar false te muestra número 2 203 00:10:15,379 --> 00:10:17,539 Entonces mi programa hace lo que yo le he dicho 204 00:10:17,539 --> 00:10:20,639 Si el primero no es mayor que el segundo 205 00:10:20,639 --> 00:10:22,200 Te muestra el segundo 206 00:10:22,200 --> 00:10:26,480 Y si son iguales, efectivamente el primero no es mayor que el segundo 207 00:10:26,480 --> 00:10:28,879 Entonces ¿qué ocurre? 208 00:10:29,440 --> 00:10:31,059 Que si yo quiero depurar esto 209 00:10:31,059 --> 00:10:33,120 Se me complica la vida 210 00:10:33,120 --> 00:10:36,220 porque tengo tres posibilidades 211 00:10:36,220 --> 00:10:37,460 ahora, no solo dos 212 00:10:37,460 --> 00:10:40,179 o mostrar el mayor 213 00:10:40,179 --> 00:10:42,059 valor es número uno, o mostrar 214 00:10:42,059 --> 00:10:43,580 el mayor valor es número dos 215 00:10:43,580 --> 00:10:45,899 o una tercera posibilidad, que es decir 216 00:10:45,899 --> 00:10:47,179 son iguales 217 00:10:47,179 --> 00:10:49,940 pero esa tercera posibilidad fue el operador 218 00:10:49,940 --> 00:10:51,779 ternario del icono que conocemos hasta ahora 219 00:10:51,779 --> 00:10:54,360 pues no la podemos habilitar 220 00:10:54,360 --> 00:10:55,700 entonces vamos a dejarlo por ahora 221 00:10:55,700 --> 00:10:58,259 en practicar con dos posibilidades solamente 222 00:10:58,259 --> 00:10:59,899 y ya está 223 00:10:59,899 --> 00:11:03,870 ¿alguna duda? 224 00:11:05,129 --> 00:11:07,629 Vale, pues con esto 225 00:11:07,629 --> 00:11:11,769 Esto lo sabríais hacer seguro 226 00:11:11,769 --> 00:11:13,090 El 14 nos lo saltamos 227 00:11:13,090 --> 00:11:21,389 A ver, el 15, ¿qué significa? 228 00:11:22,029 --> 00:11:23,529 Porque muy bien expresado no está 229 00:11:23,529 --> 00:11:27,269 Programa que lea dos variables decimales 230 00:11:27,269 --> 00:11:30,669 Y muestre la resta 231 00:11:30,669 --> 00:11:33,070 Pero muestre la resta 232 00:11:33,070 --> 00:11:36,570 Asegurándote de que el valor no sea negativo 233 00:11:36,570 --> 00:11:37,629 ¿Qué quiere decir eso? 234 00:11:38,490 --> 00:11:40,090 Que te muestre siempre 235 00:11:40,090 --> 00:11:43,190 el mayor menos el más pequeño 236 00:11:43,190 --> 00:11:45,509 es la única forma de asegurarse que el resultado es negativo 237 00:11:45,509 --> 00:11:46,710 ¿vale? 238 00:11:46,730 --> 00:11:48,590 si tú le das 37 y 12 239 00:11:48,590 --> 00:11:51,230 te tiene que restar 37 menos 12 240 00:11:51,230 --> 00:11:53,350 pero si el mayor es el 241 00:11:53,350 --> 00:11:55,129 primero, si el mayor es el segundo 242 00:11:55,129 --> 00:11:56,830 37 y 40 243 00:11:56,830 --> 00:11:59,190 entonces la resta que tiene que hacer es la contraria 244 00:12:00,070 --> 00:12:00,690 ¿vale? luego 245 00:12:00,690 --> 00:12:03,529 es un programa de nuevo que se mueve entre dos posibilidades 246 00:12:03,529 --> 00:12:05,009 el resultado 247 00:12:05,009 --> 00:12:06,669 es uno o es otro 248 00:12:06,669 --> 00:12:09,649 en función de una condición que es fácil de evaluar 249 00:12:09,649 --> 00:12:21,389 Pues venga, este 15 que sería la misma idea que el 13, hacerlo ahora en unos minutos y lo corregimos.