Ir ao conteúdo

Posts recomendados

Postado

Faça programa para mostrar 1) o número de aviões que irá decolar de um determinado portão de embarque por dia e 2) a probabilidade de atraso de voos naquele dia. O número de aviões que irá decolar no dia é de conhecimento do usuário. As regras do aeroporto são as seguintes:

O aeroporto possui três portões de embarque (A, B e C);

Se o avião precisar de combustível ou manutenção ele deve decolar do portão A (use o valor 1 se precisar e 0 caso não precisar). Caso contrário, se o número de passageiros for maior do que 100 ele deve decolar do portão B senão ele irá decolar do portão C;

A probabilidade de atraso de voos pode ser calculada de acordo com a razão entre o número de aviões que irá decolar do portão A e o dobro do número de aviões que irá decolar no dia. Contudo, caso a quantidade de aviões que irá decolar do portão A for maior do que a soma dos aviões que irão decolar dos portões B e C, a probabilidade de atraso de voos naquele dia irá aumentar em 20%.

IMPORTANTE 1: a verificação do portão de embarque (A, B e C) deve ser feita para cada avião que irá decolar. Ou seja, uma estrutura de repetição deve ser criada para verificar cada um dos aviões que irá decolar. IMPORTANTE 2: a entrada inicial do programa deve ser a quantidade de aviões, dentro do laço organize as próximas entradas na seguinte ordem: número de passageiros, combustível e manutenção. IMPORTANTE 3: tente usar o maior número possível de funções para a criação do programa.

 

Segue o código abaixo, nao estou conseguindo desenvolver o programa, talvez seja a interpretação e também não consigo criar uma função para calcular a probabilidade

 

#include <stdio.h>

#include <stdlib.h>

#include <math.h>



float calculaProbabilidade(int numAvioes){

return numAvioes/numAvioes * 2;

}



int main() {

int portaoA, portaoB, portaoC, i, numAvioes;

int combustivel, manutencao, numPassageiros;

int contA=0, contB=0,contC=0;



//printf("Informe o numero de avioes para embarque \n");

scanf("%d", &numAvioes);



for(i=1; i<=numAvioes; i++){

//printf("Informe o numero de avioes por dia \n");

scanf("%d", &numAvioes);



if(combustivel == 1 || manutencao == 1){

contA = contA + 1;

}

else{

if(numPassageiros>100)

contB = contB + 1;

}

else{

contC= contC + 1;

}

}



return 0;

}

 

@devaiir1010 ou outro alguém poderia me ajudar neste?

  • Curtir 1
Postado

Vou tentar de explicar uma maneira trivial de resolver...

  • Para cada avião você precisa informar se precisa de combustível (1 se precisa) e o total de passageiros, que pode ou não ser maior que 100. Então não precisa na verdade saber quantos aviões são
  • a probabilidade de atraso está bem descrita aqui:
     
    3 horas atrás, batgirl123 disse:

    a razão entre o número de aviões que irá decolar do portão A e o dobro do número de aviões que irá decolar no dia

    • Não é nada real, não é um modelo, nada. Só uma razão. No popular uma simples divisão: X/Y. Você sabe quantos aviões são, é o primeiro dado que RECEBE no programa: T aviões, digamos. Esse é a metade do denominador Y.
    • as regras vão dizer quantos dos aviões vão decolar de cada portão. Então é só somar... B vão usar o portão B e C vão usar o portão C, T aviões no total então não vejo problema em calcular a probabilidade: (Y - B - C)/2*T como está escrito lá.
    • tem uma ressalva:
       
      3 horas atrás, batgirl123 disse:

      caso a quantidade de aviões que irá decolar do portão A for maior do que a soma dos aviões que irão decolar dos portões B e C, a probabilidade de atraso de voos naquele dia irá aumentar em 20%

      Se por exemplo todos os aviões forem usar o portão A então a conta vai dar T/2T * 1.2 ou seja 0,6, por exemplo. Basta que todos os aviões precisem de combustível... 

De volta ao programa

 

Seu programa parece muito complicado sem razão.

 

Escreva em torno dos dados. Sempre

 

Exemplo:

 

É muito mais fácil ler de um arquivo. Não perca seu tempo com isso de mensagens e leitura do teclado. Só vai perder tempo.

O enunciado nada diz sobre isso e nenhuma pessoa séria iria ler dezenas de valores do teclado de bobeira.

 

Veja esse arquivo:
 

12
1 100 portao A: vai abastecer
0 50  portao C: nao vai abastecer, menos de 100 passageiros
0 150  portao B: nao vai abastecer, mais de 100 passageiros
1 100 portao A: vai abastecer
0 50  portao C: nao vai abastecer, menos de 100 passageiros
0 150  portao B: nao vai abastecer, mais de 100 passageiros
1 100 portao A: vai abastecer
0 50  portao C: nao vai abastecer, menos de 100 passageiros
0 150  portao B: nao vai abastecer, mais de 100 passageiros
1 100 portao A: vai abastecer
0 50  portao C: nao vai abastecer, menos de 100 passageiros
0 150  portao B: nao vai abastecer, mais de 100 passageiros
fim

 

Pode usar para testar: 12 aviões, 4 em cada pista eu acho. Não calculei mas é trivial porque copiei e colei até dar 12. É só um loop. Bem simples: le o total de aviões depois lê uma linha para cada avião. Em cada linha lê DOIS números. Não parece difícil. Os números vão determinar a pista. E você soma em um contador para cada pista. Ao final dos 12

  • você mostra quantos caras usaram cada pista
  • faz a conta X/Y para a probabilidade de atraso
  • verifica se vai ter o aumento de 20%, no popular multiplicar por 1,2.

É só isso.
 

int A = 0;
int B = 0;
int C = 0;

int N = 0; // total de avioes
int abastece = 0; // 1 se vai abastecer
int lotacao = 0; // total de passageiros

FILE* entrada = fopen("naves.txt","r");

 

Não precisa de mais do que essa variáveis eu acho. A média pode ser calculada só na hora de mostrar...

 

Edita no IDE um arquivo com esse nome por exemplo, "naves.txt" e copia o conteúdo que te mostrei acima. Lê o valor de N, Lê as N linhas. Faz a única conta, calcula o possível acréscimo e mostra os totais...

 

  • Curtir 1
  • Obrigado 2
Postado

@arfneto Irei tentar! Agradeço pela explicação

6 minutos atrás, batgirl123 disse:

@arfneto Irei tentar! Agradeço pela explicação

Apenas mais uma pergunta, eu devo criar um estrutura de repetição correto? E eu teria que fazer um estrutura de repetição para cada um dos portões?

  • Curtir 1
Postado
3 horas atrás, batgirl123 disse:

Apenas mais uma pergunta, eu devo criar um estrutura de repetição correto? E eu teria que fazer um estrutura de repetição para cada um dos portões?

 

E porque? Os portões não se repetem. Apenas os aviões tem 3 possibilidades A/B/C nada mais. Apenas verifique cada linha defina o portão acumule os valores. Como eu disse

  • Curtir 1
  • Obrigado 1
Postado

@arfneto Consegui, obrigada

13 horas atrás, batgirl123 disse:

@arfneto Irei tentar! Agradeço pela explicação

Apenas mais uma pergunta, eu devo criar um estrutura de repetição correto? E eu teria que fazer um estrutura de repetição para cada um dos portões?

  • Curtir 1
Postado
3 horas atrás, batgirl123 disse:

@arfneto Consegui, obrigada

Apenas mais uma pergunta, eu devo criar um estrutura de repetição correto? E eu teria que fazer um estrutura de repetição para cada um dos portões?

 

porque repetiu a pergunta? A resposta seria a mesma.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!