Ir ao conteúdo

Posts recomendados

Postado

Olá a todos, estou com uma duvida.

Estou a fazer um trabalho final para uma disciplina e é sobre a gestão de uma marina.

Nessa gestão tenho que fazer a disponibilidade em cada cais e estes cais estão divididos para diferentes tamanhos de barcos.

Exemplo: Barco A tem 8 metros vai para o Cais 1 que tem 40 lugares disponiveis.

A duvida basicamente é como eu faço um código para dizer a disponibilidade do cais. o código até então é assim:

if(opcao=1){
        printf("Insira os dados do seu barco.\n");
        printf("Matricula: ");
        scanf("%d", &matric);
        printf("Nome do proprietario: \n");
        scanf("%s", &propr);
        printf("Nome capitao: ");
        scanf("%s", &capitao);
        printf("Numero de passageiros: ");
        scanf("%d", &n_passageiro);
        printf("Data de entrada: ");
        scanf("%d", &d_entrada);
        printf("Data de saida: ");
        scanf("%d", &d_saida);
        printf("Tamanho: ");
        scanf("%f", &tam );
    
        if(tam<=7.99){
        cais_a(tam ,lug_a = lug_a-1);
        printf("")
        }
        else{
            if(8<tam<=9.99){
            cais_b(tam ,lug_b = lug_b-1);
            }
            else{
                if(10<tam<11.99){
                    cais_c(tam ,lug_c = lug_c-1);
                }
                else{
                    if(12<tam<14.99)
                    cais_d(tam, lug_d = lug_d -1);
                }
            }
        }
        }

 

  • Obrigado 1
  • Membro VIP
Postado

Permita-me aplicar minha tradicional visão minimalista superficial.. Acho que você pode simplificar pra algo como...
 

if((tam>8) && (tam<12) cais_8_12--; menos uma vaga
if((tam>12) && (tam<16) cais_12_16--; menos uma vaga
// ...

Nem sei se entendi muito but hope this helps

  • Curtir 1
Postado

Use o botão code como explicado com exemplos no primeiro post do forum:

 

if(opcao=1){
        printf("Insira os dados do seu barco.\n");
        printf("Matricula: ");
        scanf("%d", &matric);
        printf("Nome do proprietario: \n");
        scanf("%s", &propr);
        printf("Nome capitao: ");
        scanf("%s", &capitao);
        printf("Numero de passageiros: ");
        scanf("%d", &n_passageiro);
        printf("Data de entrada: ");
        scanf("%d", &d_entrada);
        printf("Data de saida: ");
        scanf("%d", &d_saida);
        printf("Tamanho: ");
        scanf("%f", &tam );
    
        if(tam<=7.99){
        cais_a(tam ,lug_a = lug_a-1);
        printf("")
        }
        else{
            if(8<tam<=9.99){
            cais_b(tam ,lug_b = lug_b-1);
            }
            else{
                if(10<tam<11.99){
                    cais_c(tam ,lug_c = lug_c-1);
                }
                else{
                    if(12<tam<14.99)
                    cais_d(tam, lug_d = lug_d -1);
                }
            }
        }
        }

 

Use uma tabela, como uma planilha. O simples. Pode até usar uma planilha primeiro para ver como ficaria.

 

E NUNCA escreva um programa interativo.

 

Não misture leitura de dados com a lógica. Isso torna claro um INFERNO testar o programa. Com por exemplo 8 dados para cada barco vai MESMO  digitar 80 coisas CADA VEZ que for testar o programa com 10 barquinhos?

 

  • Leia de arquivos. É muito mais simples em C.
  • Leia o manual: scaf() retorna um int. TESTE. É ingênuo seguir sem testar
  • Consuma os '\n' que encerram cada scanf...

 

 

  • Obrigado 1
Postado

Escreva em torno dos dados

 

Veja a diferença

 

image.png.7cf24b88e6b77665891cfbee2ab3c6a4.png

 

Uma tabela com os barcos

 

image.png.baa8e9e2384e317adbbabfe432344403.png

 

Uma tabela com os cais

 

Comece assim. É muito mais simples.

 

Crie um arquivo com os barcos ou gere em uma função factory() que retorna um barco.

 

Faça a mesma coisa com o cais.

 

E defina funções de entrada e saída de barcos e as óbvias para listar os barcos e a ocupação das marinas. 

 

Depois pense em programar, em C ou qualquer linguagem.

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...