Advertisement
Trow_Games

Uber - Linguagem de Baixo Nível C

Nov 18th, 2019
417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. typedef struct{
  5.     int pontoAtual;
  6.     int pontosPodeIr[3];
  7.     int distanciaEntrePontos[3]; // em quilometros
  8. }Ponto;
  9.  
  10. int main(){
  11.     int pontoLocalizacaoAtual = -1;
  12.     int pontoAlvo = -1;
  13.     float valorPagoPorKm = 0.5;
  14.     float velocidadeDeSeguranca = 40;
  15.     float valorMinimoPorCorrida = 4;
  16.     do{
  17.         printf("Escolha o ponto onde o carro devera passar:\n");
  18.         printf("Digite um dos numeros abaixo para indicar o ponto onde você está! \n");
  19.         printf("#0 - Sai do aplicativo.\n");
  20.         printf("#1 - Praça do Mato Alto \n");
  21.         printf("#2 - Av. das 12 Pistas \n");
  22.         printf("#3 - Av. Praça das Galinhas \n");
  23.         printf("#4 - Center Shopping \n");
  24.         scanf("%d",&pontoLocalizacaoAtual);
  25.         if(pontoLocalizacaoAtual>0){
  26.             for(int j=1;j<=4;j++){
  27.                 if(j==pontoLocalizacaoAtual){
  28.                     char strLocalAtual[80];
  29.                     if(j==1){
  30.                         strcpy(strLocalAtual,"Praça do Mato Alto");
  31.                     }else if(j==2){
  32.                         strcpy(strLocalAtual,"Av. das 12 Pistas");
  33.                     }else if(j==3){
  34.                         strcpy(strLocalAtual,"Av. Praças das Galinhas");
  35.                     }else if(j==4){
  36.                         strcpy(strLocalAtual,"Center Shopping");
  37.                     }
  38.                     printf("Você está no(a) %s. \nPara onde você quer ir?!\n",strLocalAtual);
  39.                     printf("Escolha uma das opções abaixo: \n");
  40.                     Ponto p;
  41.                     switch(j){
  42.                         case 1:
  43.                         p.pontosPodeIr[0] = 2;
  44.                         p.pontosPodeIr[1] = 3;
  45.                         p.pontosPodeIr[2] = 4;
  46.                         p.distanciaEntrePontos[0] = 5;
  47.                         p.distanciaEntrePontos[1] = 10;
  48.                         p.distanciaEntrePontos[2] = 15;
  49.                         printf("#2 - Av. das 12 Pistas \n");
  50.                         printf("#3 - Av. Praça das Galinhas \n");
  51.                         printf("#4 - Center Shopping \n");
  52.                         break;
  53.                         case 2:
  54.                         p.pontosPodeIr[0] = 1;
  55.                         p.pontosPodeIr[1] = 3;
  56.                         p.pontosPodeIr[2] = 4;
  57.                         p.distanciaEntrePontos[0] = 5;
  58.                         p.distanciaEntrePontos[1] = 11;
  59.                         p.distanciaEntrePontos[2] = 7;
  60.                         printf("#1 - Praça do Mato Alto \n");
  61.                         printf("#3 - Av. Praça das Galinhas \n");
  62.                         printf("#4 - Center Shopping \n");
  63.                         break;
  64.                         case 3:
  65.                         p.pontosPodeIr[0] = 1;
  66.                         p.pontosPodeIr[1] = 2;
  67.                         p.pontosPodeIr[2] = 4;
  68.                         p.distanciaEntrePontos[0] = 10;
  69.                         p.distanciaEntrePontos[1] = 11;
  70.                         p.distanciaEntrePontos[2] = 4;
  71.                         printf("#1 - Praça do Mato Alto \n");
  72.                         printf("#2 - Av. das 12 Pistas \n");
  73.                         printf("#4 - Center Shopping \n");
  74.                         break;
  75.                         case 4:
  76.                         p.pontosPodeIr[0] = 1;
  77.                         p.pontosPodeIr[1] = 2;
  78.                         p.pontosPodeIr[2] = 3;
  79.                         p.distanciaEntrePontos[0] = 15;
  80.                         p.distanciaEntrePontos[1] = 7;
  81.                         p.distanciaEntrePontos[2] = 4;
  82.                         printf("#1 - Praça do Mato Alto \n");
  83.                         printf("#2 - Av. das 12 Pistas \n");
  84.                         printf("#3 - Av. Praça das Galinhas \n");
  85.                         break;
  86.                         default:
  87.                         pontoLocalizacaoAtual=-1;
  88.                         break;
  89.                     }
  90.                     if(pontoLocalizacaoAtual>0){
  91.                         do{
  92.                             scanf("%d",&pontoAlvo);
  93.                             for(int i=0;i<3;i++){
  94.                                 if(p.pontosPodeIr[i]==pontoAlvo){
  95.                                     int distanciaEntreLocalAtualeLocalAlvo = p.distanciaEntrePontos[i]; // quilometros
  96.                                     /*
  97.                                     formula para achar o tempo de viagem:
  98.                                     Velocidade Media = Distancia / Tempo.
  99.                                     40               = distanciaEntreLocalAtualeLocalAlvo / tempoDeViagem.
  100.                                     tempoDeViagem    = distanciaEntreLocalAtualeLocalAlvo / 40.
  101.                                     tempoDeViagem sera dado em HORAS.
  102.                                     */
  103.                                     float tempoDeViagem = distanciaEntreLocalAtualeLocalAlvo / velocidadeDeSeguranca;
  104.                                     float minutosDeViagem = tempoDeViagem*60;
  105.                                     float valorProjetadoParaCorrida = (distanciaEntreLocalAtualeLocalAlvo*valorPagoPorKm*tempoDeViagem)+valorMinimoPorCorrida;
  106.                                     char local[80];
  107.                                     if(pontoAlvo==1){
  108.                                         strcpy(local,"Praça do Mato Alto");
  109.                                     }else if(pontoAlvo==2){
  110.                                         strcpy(local,"Av. das 12 Pistas");
  111.                                     }else if(pontoAlvo==3){
  112.                                         strcpy(local,"Av. Praça das Galinhas");
  113.                                     }else if(pontoAlvo==4){
  114.                                         strcpy(local,"Center Shopping");
  115.                                     }
  116.                                     char msgLocal[150] = "Você está indo para %s \n";
  117.                                     char tempoDuracaoViagem[255] = "Sua viagem vai levar aproximadamente %.2f minutos\n";
  118.                                     char valorAproximadoDaViagem[255] = "O valor aproximado para sua corrida e de R$ %.2f\n";
  119.                                     printf(msgLocal,local);
  120.                                     printf(tempoDuracaoViagem,minutosDeViagem);
  121.                                     printf(valorAproximadoDaViagem,valorProjetadoParaCorrida);
  122.                                 }
  123.                             }
  124.                         }while(pontoAlvo<1);
  125.                     }
  126.                 }
  127.             }
  128.         }else if(pontoLocalizacaoAtual==0){
  129.             printf("Fechando o app... \n Agradecemos sua preferencia!\n");
  130.         }
  131.     }while(pontoLocalizacaoAtual<0);
  132.     return 0;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement