Ir ao conteúdo

Posts recomendados

Postado

Faça um programa para mostrar 1) o número de aviões que irá decolar de um determinado portão de embarque por dia

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.

 

 

 

COMO EU POSSO INICIAR ESTRUTURANDO ESSE CÓDIGO? AINDA ESTOU COM MUITO DUVIDA DE COMO O PROGRAMA VAI PASSAR PELOS AVIÕES E PORTÕES, É COMPLETAMENTE OBRIGATORIO O PROGRAMA POSSUIR UMA ESTRUTURA DE REPETIÇÃO E PELO MENOS UMA FUNÇÃO... O PROFESSOR INSTRUIU DANDO OS CONDICIONAIS PRESENTES NO CÓDIGO, MAS NÃO SEI COMO COMEÇO A DESENVOLVER!!

 

 

include <stdio.h>

#include <stdlib.h>

#include <math.h>

 

int main() {

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

int i,combustivel, manutencao;

 

//printf("Informe o numero de avioes que irao decolar \n");

scanf("%d",&numAvioes);

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

//printf("Informe o numero de passageiros para cada aviao

scanf("%d",&numPassageiros);

}

if(numPassageiros>100){

contB = contB + 1;

}

if(numPassageiros<100){

contC = contC + 1;

}

return 0;

}

Postado

 

Eu te expliquei com detalhes como fazer isso, ontem. E abriu novo tópico no mesmo forum com o mesmo problema. Para que?

 

Qual sua dúvida afinal?

 

Um for para ler os aviões é um loop. Já está lá.

 

 

  • Curtir 1
Postado

@arfneto porque ainda não consigo desenvolver o problema?! Estou pedindo mais exemplos para outras pessoas! você explica bem, mas ainda sim é muito complexo para alguém que não tem experiência em criar programas baseado em funções etc..

2 minutos atrás, batgirl123 disse:

@arfneto porque ainda não consigo desenvolver o problema?! Estou pedindo mais exemplos para outras pessoas! você explica bem, mas ainda sim é muito complexo para alguém que não tem experiência em criar programas baseado em funções, criar programas e etc.. Quando eu coloco meu programa na plataforma ele nem compila da forma que você disse! você não precisa me responder novamente, deixe que outras pessoas que talvez vejam me expliquem de forma mais clara. 

 

Postado
59 minutos atrás, batgirl123 disse:

mas ainda sim é muito complexo para alguém que não tem experiência em criar programas baseado em funções etc..

 

?? Mas você não me fez uma única pergunta. Ou uma pergunta naquele tópico de modo que alguém pudesse talvez ajudar no que eu não pude. E apenas abriu outra vez a mesma questão no mesmo lugar ;) 

 

1 hora atrás, batgirl123 disse:

você explica bem, mas ainda sim é muito complexo

 

:) se eu explicasse bem talvez você tivesse entendido 

 

1 hora atrás, batgirl123 disse:

Quando eu coloco meu programa na plataforma ele nem compila da forma que você disse! você não precisa me responder novamente, deixe que outras pessoas que talvez vejam me expliquem de forma mais clara

 

Pois é. Então de fato não expliquei bem. E soa um pouco grosseiro de sua parte. Não estou impedindo outras pessoas de explicar de forma mais clara. De um modo claro posso dizer, por outro lado, que não gostei de sua atitude para com alguém que tenta te ajudar de graça apesar de eu não me importar muito ou teria denunciado à moderação.

 

1 hora atrás, batgirl123 disse:

muito complexo para alguém que não tem experiência em criar programas baseado em funções, criar programas

 

Programar criando funções é muito mais simples do que programar sem elas.

 

Você está superestimando seu problema...
 

Citação

IMPORTANTE 3: tente usar o maior número possível de funções para a criação do programa.

 

Exemplo 1:

 

Em português:

 

Citação


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;

 

 

Em C
 

//
// retorna A B ou C conforme a pista
// p = passageiros
// c = 1 se precisa abastecer
// m = 1 se precisa de manutencao
//
char pista( int p, int c, int m )
{
    if (( c != 0 ) || ( m != 0)) return 'A';
    if ( p > 100 ) return 'B';
    return 'C';
};

 

Sim, apenas transcrever o que está escrito lá. Retorna 'A' 'B' ou 'C' e acho que dá pra entender que seja a pista. Talvez alguém possa explicar de modo mais claro...

 

Exemplo 2:

Em Português:

 

Citação

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%

 

Em C

//
// retorna a probabilidade de atraso
// Total, A B e C sao o obvio, o total de avioes e o total por pistas
//
// A probabilidade de atraso de voos pode ser calculada de acordo com a razao
// entre o numero de avioes que ira decolar do portão A e o dobro do numero de
// avioes que ira decolar no dia. 
//
// Contudo, caso a quantidade de avioes que ira decolar do portao A for maior do que a soma dos 
// avioes que irao decolar dos portoes B e C, a probabilidade de atraso de voos naquele dia ira
// aumentar em 20%
//
float       prob_atraso( int Total, int A, int B, int C)
{
    float p = (float)(A) / (float)(Total + Total);
    if( A > (B+C) ) return p * 1.2;
    return p;
};

 

Eu já havia te explicado isso com detalhes e exemplos no outro tópico. De todo modo são 3 linhas. Poderia ser uma linha só mas deixei assim para ter uma referência direta a cada um dos DOIS parágrafos do enunciado. Mas, repito, poderia ser uma linha só.

 

Repetindo o que já expliquei:
 

Citação

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.

 

O enunciado praticamente descreve o que deveria escrever no programa linha a linha, função por função. Acima diz até a ordem de ler os camos no ÚNICO loop do programa.

 

É muito mais fácil ler de um arquivo, como já expliquei. Veja esse
 

12
100  0 0    portao A: vai abastecer sem manutencao
101  0 0    portao C: nao vai abastecer, menos de 100 passageiros sem nautencao
150  0 0   150 passageiros vai abastecer, sem mautencao
100  0 0 
50   0 0  
150  0 0 
99   0 0 99  pass comb nao manut nao
50   0 0  
150  0 0  
1    0 0      so um cara com abast e manutencap
50   0 0  
150  0 0  
fim

 

12 aviões, para ler antes, depois COMO DESCRITO, os passageiros, 0 ou 1 conforme vá precisar de combustível ou manutenção

 

Como ler um trem desses?

 

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

int main(int argc, char** argv)
{
    const char* usaA[2] = { "NAO", "SIM" };
    char arquivo[50] = "in-naves.txt";
    unsigned n = 1;
    unsigned comb = 0;
    unsigned man = 0;
    unsigned pass = 0;
    int res = 0;
    printf("Arquivo de Entrada: '%s'\n", arquivo);
    FILE* um = fopen(arquivo, "r");
    if (um == NULL) return -1;
    // ok: tem o arquivo pronto
    res = fscanf(um, "%d%*[^\n]", &n ); // avioes
    if ( res != 1) return -1; // vazio
    printf( "%u avioes\n", n);
    for( unsigned i = 0; i<n; i+= 1)
    {   // enunciado
        // dentro do laço organize as próximas entradas na seguinte ordem:
        // número de passageiros, combustível e manutenção.
        res = fscanf(um, "%d %d %d%*[^\n]", &pass, &comb, &man );
        if ( res != 3 )
        {
            printf("Nao conseguiu ler todos os dados\n");
            break;
        };
        printf( "Aviao%4d: %3d Passageiros\tComb.: %s\tManut.: %s \n",
          1+i, pass, usaA[comb], usaA[man] );
    };  // for()
    printf("\nfim\n");
    fclose(um);
    return 0;
}

 

E se gravar o arquivo exemplo com esse nome "in-naves.txt" e o programa como tsimp.c veja só o que a realidade do seu computador provavelmente diria:
 

toninho@DSK-2009:/mnt/c/Users/toninho/projects/um$ cat in-naves.txt
12
100 1 0    portao A: vai abastecer sem manutencao
101 0 0    portao C: nao vai abastecer, menos de 100 passageiros sem nautencao
150 1 0   150 passageiros vai abastecer, sem mautencao
100 1 1 
50  0 0  
150 1 1 
99  0 0 99  pass comb nao manut nao
50  1 1 
150 0 1 
1   1 1     so um cara com abast e manutencap
50  0 0  
150 1 1 
fimtoninho@DSK-2009:/mnt/c/Users/toninho/projects/um$ gcc -o tsimp -Wall -std=c17  tsimp.c
toninho@DSK-2009:/mnt/c/Users/toninho/projects/um$ ./tsimp
Arquivo de Entrada: 'in-naves.txt'
12 avioes
Aviao   1: 100 Passageiros      Comb.: SIM      Manut.: NAO 
Aviao   2: 101 Passageiros      Comb.: NAO      Manut.: NAO 
Aviao   3: 150 Passageiros      Comb.: SIM      Manut.: NAO 
Aviao   4: 100 Passageiros      Comb.: SIM      Manut.: SIM 
Aviao   5:  50 Passageiros      Comb.: NAO      Manut.: NAO 
Aviao   6: 150 Passageiros      Comb.: SIM      Manut.: SIM 
Aviao   7:  99 Passageiros      Comb.: NAO      Manut.: NAO 
Aviao   8:  50 Passageiros      Comb.: SIM      Manut.: SIM 
Aviao   9: 150 Passageiros      Comb.: NAO      Manut.: SIM 
Aviao  10:   1 Passageiros      Comb.: SIM      Manut.: SIM 
Aviao  11:  50 Passageiros      Comb.: NAO      Manut.: NAO 
Aviao  12: 150 Passageiros      Comb.: SIM      Manut.: SIM 

fim
toninho@DSK-2009:/mnt/c/Users/toninho/projects/um$ 


Pois é.

 

 

 

 

 

 

 

 

 

  • Curtir 1

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!