Advertisement
Luis_Pedro

Untitled

Dec 7th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. void encontraArmazemMaisProximo(Encomenda *encomenda){
  2.     int i=0;
  3.     int j=0;
  4.     int k=0;
  5.  
  6.     //alldrone
  7.     printf("entrei no encontraArmazemMaisProximo\n");
  8.     double caminhoMinimo=100000.00;
  9.     Armazem *armazemEscolhido;
  10.     Drone *droneEscolhifo;
  11.     for (int i=0;i<config->numero_armazens_sistema;i++)
  12.     {
  13.         for (k=0;k<config->numero_drones;k++)
  14.         {
  15.             if(alldrones[k].busy==false)
  16.             {
  17.                 if(calculaDistanciaTotal(encomenda->posClientX,encomenda->posClientY,memoriaPartilhada[i].posX,memoriaPartilhada[i].posY,alldrones[k].x,alldrones[k].y) < (caminhoMinimo)){
  18.                     for(int j=0;j<10;j++)
  19.                     {
  20.                         if(strcmp(memoriaPartilhada[i].produtos[j].nome,encomenda->nomeProduto) == 0)
  21.                         {
  22.                             if(memoriaPartilhada[i].produtos[j].quantidade > encomenda->quantidade)
  23.                             {
  24.                                 armazemEscolhido=&memoriaPartilhada[i];
  25.                                 droneEscolhifo=&alldrones[k];
  26.                                 caminhoMinimo=calculaDistanciaTotal(encomenda->posClientX,encomenda->posClientY,memoriaPartilhada[i].posX,memoriaPartilhada[i].posY,alldrones[k].x,alldrones[k].y);
  27.                             }
  28.                         }
  29.                     }
  30.                 }
  31.             }
  32.         }
  33.     }
  34.     printf("escolhido o drone %d\n",&droneEscolhifo->id);
  35.     printf("escolhido o armazem %s\n",&armazemEscolhido->nome);
  36.   }
  37.  
  38.  
  39.  double calculaDistanciaTotal(double clientX, double clientY, double armazemX, double armazemY, double droneX, double droneY){
  40.     double distanciaDroneArmazem=0.0;
  41.     double distanciaArmazemCliente=0.0;
  42.     double total=0.0;
  43.     distanciaDroneArmazem=distance(armazemX,armazemY, droneX, droneY);
  44.     distanciaArmazemCliente=distance(armazemX,armazemY, clientX, clientY);
  45.     total=distanciaArmazemCliente+distanciaDroneArmazem;
  46.     return (total);
  47.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement