Ir ao conteúdo
  • Cadastre-se

C++ dificuldades para a resolução do algoritmo


Danrlei Kemper

Posts recomendados

Boa noite!

Alguém poderia me ajudar na resolução do algoritmo abaixo?

Está dando os seguintes  problemas na execução:

trabalho algoritmos.cpp    In function 'void VenderPassagem(int**, int**)':

trabalho algoritmos.cpp    [Error] expected primary-expression before ')' token

trabalho algoritmos.cpp    [Error] expected '}' before 'else'

trabalho\trabalho algoritmos.cpp    At global scope:

trabalho\trabalho algoritmos.cpp    [Error] expected declaration before '}' token

 

PODEM UTILIZAR 2 VETORES OU 1 MATRIZ PARA RESOLVER O PROBLEMA.

1. Uma empresa possui ônibus com 48 lugares (24 nas janelas e 24 no corredor). Faça um programa que utilize dois vetores / ou uma matriz para controlar as poltronas ocupadas no corredor e nas janelas. Considere que 0 (zero) representa poltrona desocupada e 1, poltrona ocupada.

Janela

0

1

0

0

...

1

1

0

          0               1                   2                    3                    .....                21                   22               23

 

Corredor

0

1

0

0

...

1

1

0

       0                      1                   2                    3                    .....           21                        22               23

                       

Inicialmente, todas as poltronas estarão livres. Depois disso, o programa deverá apresentar as seguintes opções:

      M E N U

 1-Vender passagem

2- Mostrar mapa de ocupação do ônibus

3- Encerrar

Quando a opção escolhida for Vender Passagem, deverá ser perguntado se o usuário deseja janela ou corredor e o número de poltrona. O programa deverá então, dar uma das seguintes mensagens:

Venda efetivada – se a poltrona solicitada estiver livre, marcando-a como ocupada.

Poltrona ocupada – se a poltrona solicitada não estiver disponível para venda.

Ônibus lotado – quando todas as poltronas já estiverem ocupadas. Se no ato da venda o ônibus já estiver lotado, não deve deixar solicitar se quer Janela ou Corredor, já deve mostrar a mensagem de "Onibus Lotado".

 

Quando a opção escolhida for Mostrar Mapa de Ocupação do Ônibus, deverá ser mostrada uma listagem conforme a seguir:

JANELA                                            CORREDOR

1-      Ocupada                             1- Ocupada

2-      Ocupada                             2- Livre

3-      Livre                                     3- Livre

4-      Livre                                     4- Ocupada

5-      Ocupada                             5 – Livre

......

Quando for escolhida a opção encerrar, a execução do programa deverá ser finalizada.

               

O programa deverá ter os seguintes módulo(como sugestão-pode ter mais):

inicializaronibus – que libera todas as poltronas de todo o ônibus que deverá ser chamado já no inicio do programa no main.

mostramapa – imprime na tela a disponibilidade do ônibus, conforme código 1(Ocupada), 0 ( Livre) - ou crie uma codificação que desejar para gerenciar.

venderpassagem – efetua a venda e reserva da passagem do ônibus, conforme escolha do cliente.

 

Algoritmo:

 

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

/*Trabalho de algoritmos G1
Nomes: Danrlei Kemper */


void VenderPassagem(int *AssentoCorredor[],int *AssentoJanela[]){ //modulo para vender a passagem
    int opcao, numero, i, lotado;
    lotado=0;
    
    printf("\nEscolha:\n1 - Corredor\n2 - Janela");
    scanf("%d",&opcao);
    printf("\nNumero do Assento(1 a 24):");
    scanf("%d",&numero);
    
    //verificação se o ônibus está lotado
    for(i=0;i<24;i++){
        if((*AssentoCorredor)[i]==1 && (*AssentoJanela)[i]==1){
            lotado++;
        }else{
            break;
        }
    }
    
    //se valor de lotado for menor que 24, terá assentos livres
    if(lotado){
        //assentos do corrdor
        if(opcao==1){
            //verifica se o assento solicitado está vazio
            if((*AssentoCorredor)[numero]==0){
                //marca o assento como acupado
                (*AssentoCorredor)[numero]=1;
                printf("\nAssento %d vendido\n",numero);
            }else{
                printf("\nAssento %d ocupado\n",numero);
            }
        }else{
            if(opcao==2){
                //verifica se o assento solicitado está vazio
                if((*AssentoJanela)[numero]==0)){
                    //marca o assento como acupado
                    (*AssentoJanela)[numero]==1)
                    printf("\nAssento %d vendido\n",numero);                
                }else{
                    printf("\nAssento %d ocupado\n",numero);
                }
            }
        }else{
            printf("\nOnibus esta lotado\n");
        }
    }
}

void MostrarMapa(int *AssentoCorredor[],int *AssentoJanela []){
    int i;*AssentoJanela;
    printf("\nAssentos do Corredor:\nAssentos da janela:\n");
    for(i=0;i<24;i++){
        for((*AssentoCorredor)[i]==0){
            printf("\nAssento %d esta livre\n", i+1);
        }else{
            printf("\nAssento %d esta ocupado\n", i+1);
        }
        
        if((*AssentoJanela)[i]==0){
            printf("\nAssento %d esta livre\n", i+1);
        }else{
            printf("\nAssento %d esta ocupado\n", i+1);
        }
    }
}

main (void){
    int AssentoCorredor[24];
    int AssentoJanela[24];
    int Encerrar;
    int opcao;
    
    printf("Faca sua escolha:\n1 - Vender passagem\n2 - Mostrar mapa\n3 - Encerrar");
    scanf("%d",&opcao);
    
    switch(opcao){
        case 1:
            VenderPassagem(&AssentoCorredor,&AssentoJanela);
            break;
        case 2:
            MostrarMapa(&AssentoCorredor,&AssentoJanela);
            break;
        case 3:
            Encerar;
            break;        
    }
    
    system("pause");
    
}

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

if(opcao==2){
                //verifica se o assento solicitado está vazio
                if((*AssentoJanela)[numero]==0)){ //tem um paretese a mais				
                    //marca o assento como acupado
                    (*AssentoJanela)[numero]==1) // parentese no lugar do ponto e vígula
                    printf("\nAssento %d vendido\n",numero);                
                }else{
                    printf("\nAssento %d ocupado\n",numero);
                }
            }

(...)
printf("\nAssentos do Corredor:\nAssentos da janela:\n");
    for(i=0;i<24;i++){
        for((*AssentoCorredor)[i]==0){ //for no lugar do if

Achei esses erros no seu código

Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!