quinta-feira, 24 de setembro de 2015

Uma empresa de entregas tem um determinado percurso a ser seguido pelos caminhões e estes devem voltar pelo mesmo caminho. Faça um programa capaz de cadastrar estes caminhos e extrair o caminho de volta na ordem inversa. O dado a ser armazenado corresponde a quantos quilometros foram percorridos. Na saida do programa deve ser impressa a media de quilometros que foram percorridos por trecho.


#include <stdio.h>
#include <stdlib.h>

#define QUANTIDADE 3

void menu();
void imprimir();
float voltaItinerario(float km);
float itinerario(float km);
float mediatotal;
float media();
float contador=0;
float soma=0;
float km;

float pilha[QUANTIDADE];
int posicao;
int opcao;
float percurso;


int main()
{
    opcao = 0;
    while(opcao!=5)
    {
        menu();
        if(opcao == 1)
        {
            printf("Digite a Distancia a Percorrer : ");
            scanf("%f", &percurso);
            itinerario(percurso);
        }
        if(opcao == 2)
        {
            percurso = media();
            printf("\nTotal %4.0f Intinerario com Média %4.2f Kms por Percurso.\n\n", contador, mediatotal);
            imprimir();
        }
        if (opcao == 3){
            percurso = voltaItinerario(km);
            printf("\nVolta de ** %4.2f Kms ** do Intineriario ja Percorrido.\n\n",percurso);
            imprimir();
        }
        if(opcao == 4)
        {
            posicao=0;
            contador = 0;
            soma = 0;
        }
        if (opcao == 5)
        {
            printf("\nSistema Finalizado!!!\n");
            break;
        }
        if((opcao>5)||(opcao<1)){
         printf(" \n*** Opcao Invalida ***\n");
    }
    }
}

void menu()
{
    printf("\n1 - Inserir Distancia do Intinerario a Percorrer  \n");
    printf("2 - Calcular Media do Intinerario\n");
    printf("3 - Voltar o Intinerario ja Percorrido\n");
    printf("4 - Novo Intinerario\n");
    printf("5 - Sair\n");
    printf("\nDigite a opcao: ");
    scanf("%d", &opcao);
}

void imprimir()
{
    int i;
    for(i = posicao - 1; i >=0; i--)
    {
        printf("  %d ° Percurso = %2.2f kms\n ", i+1,pilha[i]);
    }
    printf(" \nTotal de %4.2f Kms Percorridos\n",soma);
}

float itinerario(float km)
{
    if(posicao == QUANTIDADE)
        printf("\nLimite Intinerario Esgotado!!!\n");
    else
    {
        pilha[posicao] = km;
        posicao++;
        contador++;
        soma=soma+km;
   }
}

float voltaItinerario(float km)
{
    if(posicao == 0){
        printf("\nFim dos Intinerarios Percorridos!!!\n");
        return 0;
    }else{
        posicao--;
        contador++;
        soma= soma+pilha[posicao];
        return pilha[posicao];
    }
}

float media()
{
    if(posicao == 0)
    {
        printf("\nSem Intinerario , Vazio!!!\n");
        return 0;
    }
    mediatotal=soma/contador;
}

Nenhum comentário:

Postar um comentário