CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
commit f742889bc29a6c6e66d89f37eeb4e66f871a6925
parent 256b9c4c9ee2f8b04e14d275b8111ded43a60a28
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Sun, 23 Jun 2024 13:25:15 -0300

use local function `getDistancia` in `paradaMasCercanaPorCoordenada`

Diffstat:
Mmenu.cpp | 38++++++++++++++++----------------------
1 file changed, 16 insertions(+), 22 deletions(-)
diff --git a/menu.cpp b/menu.cpp
@@ -9,6 +9,8 @@
 #include <cmath>
 #include <iomanip>
 
+double getDistancia(double x1, double y1, double x2, double y2);
+
 void Menu::imprimirCantidadDeParadasPorBarrio() {
     Barrio *barrio;
 
@@ -34,40 +36,32 @@ void Menu::imprimirCantidadDeParadasPorBarrio() {
 }
 
 Parada *Menu::paradaMasCercanaPorCoordenada(double coordX, double coordY) {
-    double distanciaMinima;
+    double distanciaMin;
     double distancia;
 
-    Parada *paradaResultado = NULL;
-    Parada *paradaActual = NULL;
+    Parada *res, *parada;
+    Barrio *barrio;
 
+    res = NULL;
     this->barrios->startCursor();
     while(this->barrios->forwardCursor()) {
-        Barrio *barrioAux = this->barrios->getCursorData();
-
-        if(paradaResultado == NULL) {
-            paradaResultado = barrioAux->paradaMasCercana(
-                    coordX, coordY, barrioAux->getParadas());
+        barrio = this->barrios->getCursorData();
 
-            distanciaMinima = barrioAux->getDistancia(
-                    coordX, coordY,
-                    paradaResultado->getCoordX(),paradaResultado->getCoordY());
+        if(res == NULL) {
+            res = barrio->paradaMasCercana(coordX, coordY, barrio->getParadas());
+            distanciaMin = getDistancia(coordX, coordY, res->getCoordX(), res->getCoordY());
         }
         else {
-            paradaActual= barrioAux->paradaMasCercana(
-                    coordX, coordY, barrioAux->getParadas());
-
-            distancia = barrioAux->getDistancia(
-                    coordX, coordY,
-                    paradaActual->getCoordX(), paradaActual->getCoordY());
+            parada = barrio->paradaMasCercana(coordX, coordY, barrio->getParadas());
+            distancia = getDistancia(coordX, coordY, parada->getCoordX(), parada->getCoordY());
 
-            if(distanciaMinima > distancia) {
-                distanciaMinima = distancia;
-                paradaResultado = paradaActual;
+            if(distanciaMin > distancia) {
+                distanciaMin = distancia;
+                res = parada;
             }
         }
     }
-
-    return paradaResultado;
+    return res;
 }
 
 void Menu::agregarElementosDeLista(List<Parada*>* listaAux, List<Parada*>* listaResultado) {