1 00:00:00,000 --> 00:00:10,000 Vale, pues esto es una utilidad que el que diseñó la aplicación dijo a me viene muy bien si yo tengo un punto, calcular la distancia con otro. 2 00:00:10,000 --> 00:00:15,000 Y así si tengo una trayectoria como un conjunto de puntos, por favor calcular la longitud total mediante una suma. 3 00:00:15,000 --> 00:00:23,000 Vale, pues estupendo, entonces como vio que le venía muy bien tener esa funcionalidad, ahí metió ese método. 4 00:00:24,000 --> 00:00:31,000 Bueno, pues alguna duda sobre... vale, pues este método ya está. 5 00:00:31,000 --> 00:00:35,000 ¿Qué más métodos nos dice la aplicación que hagamos? 6 00:00:35,000 --> 00:00:44,000 Hemos hecho este, la clase punto tendrá un método al que se le pase como parámetro otro objeto punto y una distancia entre los puntos, vale. 7 00:00:44,000 --> 00:00:48,000 Y luego nos dice. Ahora, la clase vehículo. 8 00:00:48,000 --> 00:01:01,000 La clase vehículo además de lo que tiene, vamos a meterle un método que recibe una trayectoria y ahora tiene que devolver lo que ha gastado el vehículo en esa trayectoria. 9 00:01:01,000 --> 00:01:14,000 Vale, entonces si esta aplicación servía precisamente para eso, para dar un conjunto de puntos, porque una trayectoria es un conjunto de puntos, devolver el consumo del coche, pues ya está. 10 00:01:15,000 --> 00:01:20,000 Entonces el sitio para meter esta funcionalidad es dentro del vehículo. 11 00:01:20,000 --> 00:01:25,000 El vehículo es el que consume. Sobre un vehículo es sobre el que yo quiero ver su consumo. 12 00:01:25,000 --> 00:01:33,000 Vale, pues dentro de la clase vehículo me hago un método al que pasándole una trayectoria me diga cuánto ha consumido ese vehículo. 13 00:01:33,000 --> 00:01:35,000 ¿No? 14 00:01:35,000 --> 00:01:38,000 Porque esta es una funcionalidad relacionada con el vehículo, lo que ha consumido. 15 00:01:38,000 --> 00:01:41,000 Por eso su sitio es meterlo ahí, en vehículo. 16 00:01:41,000 --> 00:01:46,000 Igual que lo otro, el método anterior era una distancia entre un punto y otro. 17 00:01:46,000 --> 00:01:50,000 Luego ahí lo involucrado eran los puntos, era una distancia entre puntos, ahí los vehículos tienen nada que ver. 18 00:01:50,000 --> 00:01:52,000 Por eso es un método que va a punto. 19 00:01:52,000 --> 00:01:55,000 Sin embargo esto es lo que ha consumido en vehículo. 20 00:01:55,000 --> 00:01:59,000 Daniel, lo que ha consumido un vehículo. 21 00:01:59,000 --> 00:02:02,000 Entonces el sitio para meter esta funcionalidad es en la clase vehículo. 22 00:02:02,000 --> 00:02:06,000 Vale, todo esto que os digo son elementos de diseño. 23 00:02:06,000 --> 00:02:09,000 Uno tiene que ir interiorizando para diseñar una aplicación. 24 00:02:10,000 --> 00:02:16,000 Bueno, pues venga, vamos a hacer un método que me devuelva el consumo dada una trayectoria. 25 00:02:16,000 --> 00:02:19,000 Entendiendo como trayectoria un conjunto de puntos. 26 00:02:19,000 --> 00:02:21,000 ¿Vale? 27 00:02:21,000 --> 00:02:24,000 Porque una trayectoria es precisamente un conjunto de puntos. 28 00:02:24,000 --> 00:02:27,000 Esta trayectoria de aquí, esa trayectoria serían ocho puntos. 29 00:02:27,000 --> 00:02:30,000 Este, esta, esta, esta, este, este y este y este. 30 00:02:30,000 --> 00:02:33,000 Eso sería esa trayectoria. 31 00:02:33,000 --> 00:02:36,000 Esta otra de aquí, esta serían dos puntos solo. 32 00:02:36,000 --> 00:02:38,000 Esa trayectoria tiene solo dos. 33 00:02:38,000 --> 00:02:43,000 Cada trayectoria se puede definir como un conjunto de puntos. 34 00:02:43,000 --> 00:02:46,000 Bueno, pues venga, vamos a hacer este método. 35 00:02:46,000 --> 00:02:50,000 Ya hemos decidido que el sitio para ubicarlo es la clase vehículo. 36 00:02:50,000 --> 00:02:54,000 Es una decisión de diseño que también hay que hacer bien. 37 00:02:54,000 --> 00:02:58,000 Porque si no una aplicación, si está mal diseñada, eso es un carajo que nadie se entera. 38 00:02:58,000 --> 00:03:01,000 Pues no, el que consume, ¿quién es el vehículo? 39 00:03:01,000 --> 00:03:04,000 Pues el método para hacer el consumo que esté en vehículo. 40 00:03:05,000 --> 00:03:09,000 Pues hala, pues venga, nos hacemos aquí un método. 41 00:03:09,000 --> 00:03:11,000 Nombre del método. 42 00:03:11,000 --> 00:03:13,000 El más bonito posible, el más explicativo. 43 00:03:13,000 --> 00:03:15,000 Pues venga, obtener gasto. 44 00:03:17,000 --> 00:03:19,000 Obtener gasto en la trayectoria. 45 00:03:20,000 --> 00:03:21,000 Hala. 46 00:03:26,000 --> 00:03:27,000 Hasta luego. 47 00:03:27,000 --> 00:03:28,000 Vale. 48 00:03:30,000 --> 00:03:34,000 Aquí de nuevo me empiezo a hacer, ya he puesto el nombre, 49 00:03:34,000 --> 00:03:37,000 me empiezo a hacer el resto de preguntas. 50 00:03:37,000 --> 00:03:39,000 ¿Quién va a llamar a este método? 51 00:03:39,000 --> 00:03:43,000 Un objeto vehículo, porque este método está en la clase vehículo. 52 00:03:43,000 --> 00:03:46,000 Luego los datos del vehículo que llame al método, 53 00:03:46,000 --> 00:03:49,000 es decir, lo que ese vehículo consume por kilómetro, ya están. 54 00:03:49,000 --> 00:03:52,000 En el objeto vehículo, en el DIS, ya están. 55 00:03:52,000 --> 00:03:54,000 No tengo que pasarlo como parámetro. 56 00:03:54,000 --> 00:03:58,000 A este método lo va a llamar un objeto vehículo y lo que consuma está aquí arriba. 57 00:03:58,000 --> 00:04:00,000 Hay acceso directo. 58 00:04:00,000 --> 00:04:01,000 Ya están. 59 00:04:01,000 --> 00:04:02,000 Vale. 60 00:04:02,000 --> 00:04:04,000 Pero además del consumo por kilómetro, 61 00:04:04,000 --> 00:04:11,000 ¿qué otro dato necesita el método para calcular la trayectoria, la distancia, la trayectoria? 62 00:04:11,000 --> 00:04:15,000 Y la trayectoria viene dada por un conjunto de puntos. 63 00:04:15,000 --> 00:04:17,000 ¿No es lo que nos dice el enunciado? 64 00:04:17,000 --> 00:04:20,000 Que la trayectoria es un conjunto de puntos. 65 00:04:20,000 --> 00:04:25,000 Luego a este método hay que pasarle muchos objetos punto. 66 00:04:25,000 --> 00:04:29,000 Entonces la forma de pasar muchos objetos punto, 67 00:04:29,000 --> 00:04:32,000 para nosotros es un array de puntos. 68 00:04:32,000 --> 00:04:38,000 No hay otra forma para nosotros ahora mismo de pasar muchos de algo. 69 00:04:39,000 --> 00:04:45,000 A este array llamadle trayectoria, puntos, como más os guste. 70 00:04:47,000 --> 00:04:48,000 Vale. 71 00:04:48,000 --> 00:04:52,000 Luego si yo tengo que pasar muchos de algo y no sé cuántos, 72 00:04:52,000 --> 00:04:55,000 pues le paso un array. 73 00:04:55,000 --> 00:04:59,000 ¿Que todas las trayectorias tienen tres puntos? 74 00:04:59,000 --> 00:05:05,000 Pues hombre, podría ser vago y pasar punto P1, punto P2, punto P3. 75 00:05:05,000 --> 00:05:08,000 Todas las trayectorias tienen tres, yo paso tres puntos. 76 00:05:08,000 --> 00:05:13,000 Pero yo puedo pasar trayectorias genéricas de cualquier cantidad de puntos, de cualquiera. 77 00:05:13,000 --> 00:05:17,000 Entonces este método recibirá un array de objetos punto. 78 00:05:17,000 --> 00:05:23,000 Los que sean, a veces recibirá un array de siete, a veces recibirá un array de doce, los que sean. 79 00:05:23,000 --> 00:05:25,000 Vale, recibe su array de objetos. 80 00:05:25,000 --> 00:05:30,000 Vale, y ya está, con esta información va a poder hacerlo todo. 81 00:05:30,000 --> 00:05:33,000 Porque calculará las distancias entre los puntos. 82 00:05:33,000 --> 00:05:35,000 Calculará las distancias. 83 00:05:35,000 --> 00:05:41,000 Y luego multiplicará esa distancia por esto de aquí arriba. 84 00:05:42,000 --> 00:05:47,000 Entonces, eso de aquí arriba, por la distancia entre todos estos puntos, 85 00:05:47,000 --> 00:05:53,000 que eso es lo que tendrá que calcular el método usando el método distancia entre dos puntos, etc. 86 00:05:53,000 --> 00:05:56,000 Pues esa cantidad es la que devolverá. 87 00:05:56,000 --> 00:06:01,000 Y eso pues vendrá en un dabble, claro, porque será una multiplicación de dabble. 88 00:06:01,000 --> 00:06:09,000 Porque la distancia será un dabble, porque será una suma de distancias sencillas que son dabble, 89 00:06:09,000 --> 00:06:12,000 y el gasto es dabble también. 90 00:06:12,000 --> 00:06:17,000 Vale, pues eso será lo que me devuelva. 91 00:06:17,000 --> 00:06:26,000 Dar el result. 92 00:06:26,000 --> 00:06:30,000 Esta será lo que yo tengo que calcular, lo que yo tengo que calcular. 93 00:06:30,000 --> 00:06:33,000 Lo calcularemos aquí. 94 00:06:33,000 --> 00:06:37,000 Y ahora aquí, cuando ya lo tengamos calculado, 95 00:06:37,000 --> 00:06:41,000 hacemos un retun result. 96 00:06:41,000 --> 00:06:48,000 Vale, pues entonces aquí hay que calcular la suma de las distancias entre todos estos puntos. 97 00:06:48,000 --> 00:06:52,000 Y una vez que tenga la suma de las distancias entre todos esos puntos, 98 00:06:52,000 --> 00:06:54,000 lo multiplico por esto. 99 00:06:54,000 --> 00:06:56,000 Y eso ya para afuera. 100 00:06:56,000 --> 00:06:58,000 Y ya tendré este método. 101 00:06:58,000 --> 00:07:00,000 Esto lo vais a hacer vosotros ahora. 102 00:07:00,000 --> 00:07:03,000 Luego lo miramos. 103 00:07:03,000 --> 00:07:06,000 Entonces, lo que hay que entender aquí es que ¿qué vamos a pasar? 104 00:07:06,000 --> 00:07:08,000 Una raíz de puntos, por ejemplo. 105 00:07:08,000 --> 00:07:10,000 Imaginaos que la trayectoria es esta. 106 00:07:10,000 --> 00:07:14,000 Puntos 0 será este, puntos 1 será este, puntos 2 será este, puntos 3. 107 00:07:14,000 --> 00:07:16,000 Entonces habrá que hacer una suma. 108 00:07:16,000 --> 00:07:18,000 Habrá que recorrer el array, 109 00:07:18,000 --> 00:07:24,000 y para cada punto sumar la distancia con su siguiente. 110 00:07:24,000 --> 00:07:27,000 Pero calcular la distancia entre un punto y otro 111 00:07:27,000 --> 00:07:30,000 lo podemos hacer fácilmente llamando a este método, 112 00:07:30,000 --> 00:07:31,000 porque para eso sirve. 113 00:07:31,000 --> 00:07:34,000 Este método lo llama a un punto, 114 00:07:34,000 --> 00:07:36,000 y calcula la distancia con otro. 115 00:07:37,000 --> 00:07:39,000 Pues tendremos que llamar a este método 116 00:07:39,000 --> 00:07:42,000 para todos y cada uno de los elementos de este array. 117 00:07:42,000 --> 00:07:45,000 Para este, y para ese, y para ese, 118 00:07:45,000 --> 00:07:48,000 e ir haciendo una suma acumulativa que vaya sumando. 119 00:07:48,000 --> 00:07:51,000 Lo que pasa es que el recorrido del array nos quedaremos en el penúltimo, 120 00:07:51,000 --> 00:07:53,000 porque en cada parada que hacemos del array 121 00:07:53,000 --> 00:07:56,000 calculamos la distancia entre este y su siguiente. 122 00:07:56,000 --> 00:07:58,000 Entonces nos paramos en el penúltimo, 123 00:07:58,000 --> 00:08:01,000 lo aviamos al penúltimo y vemos la distancia entre este y su siguiente. 124 00:08:01,000 --> 00:08:03,000 Entonces si nos paramos en el último, 125 00:08:03,000 --> 00:08:05,000 tendríamos que calcular la distancia entre este y el siguiente, 126 00:08:05,000 --> 00:08:06,000 y no tiene siguiente. 127 00:08:06,000 --> 00:08:08,000 Entonces nos pararíamos en el penúltimo. 128 00:08:08,000 --> 00:08:11,000 Habrá que recorrer el array para cada punto del array, 129 00:08:11,000 --> 00:08:14,000 punto cero, llamar a ese método 130 00:08:14,000 --> 00:08:17,000 para que calcule la distancia con su siguiente, 131 00:08:17,000 --> 00:08:20,000 que es el de posición, más uno, 132 00:08:20,000 --> 00:08:22,000 y haciendo una suma acumulativa, 133 00:08:22,000 --> 00:08:24,000 diferente de array y de sumas, 134 00:08:24,000 --> 00:08:26,000 que hayamos hecho. 135 00:08:26,000 --> 00:08:29,000 Venga, pues programad este método ahora vosotros.