Ir para conteúdo
Fórum Script Brasil
  • 0

Exercício de Python (Programa para uma empresa de ônibus)


Antonov1

Pergunta

Boa noite! Estou começando a aprender Python. Fiz um código para uma empresa de ônibus (exercício) e só falta uma coisa, a qual não estou conseguindo fazer. Não consigo fazer o programa guardar a informação de que o número 1 representa "poltrona ocupada" e mostrar isso no mapa. Como faço?

Esta é a questão:

Uma empresa possui ônibus com 48 lugares (24 nas janelas e 24 no corredor). Faça um programa que utilize duas listas do Python para controlar as poltronas ocupadas no corredor e nas janelas. Considere que “0” representa poltrona desocupada e “1” poltrona ocupada. Inicialmente, todas as poltronas estarão livres. Depois disso, o programa deverá apresentar as seguintes opções:

- Vender passagem

-Mostrar mapa de ocupação do ônibus

-Encerrar.

Quando a opção escolhida for “Vender passagem”, deverá ser perguntado se o usuário deseja janela ou corredor e o número da poltrona. O programa deverá então, ar 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 Quando a opção escolhida for “Mostrar mapa de ônibus”, o programa 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-Livre

5-Ocupada  5-Livre

Quando a opção escolhida for “Encerrar”, a execução do programa deverá finalizar.

 

Este é o código que fiz:

janela = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
corredor = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
opcao = 0
c = 0
i=0
opcao_poltrona=0
disponivel = 0
opcao_local=0

# Criando menu
for i in range(1, 49):
    while opcao != 3:
        janela[i]=0
        corredor[i]=0
        print("\n1 -Vender passagem")
        print("\n2 -Mapa de ocupacao")
        print("\n3 -Encerrar")
        opcao = int(input("\nQual operação voce deseja realizar?"))

# Operação com as opções janela e corredor

        if (opcao == 1):
            print("\n----------------------------------")
            print("\nCompra de passagens")
            print("\n____________________________________")
            opcao_local = str(input("\n [j] Para janela ou [c] para corredor: "))
            if opcao_local == "j" or opcao_local == "c":
                opcao_poltrona = int(input("\nNumero da poltrona: "))
            if opcao_local == "j" and opcao_poltrona in janela:
                print("\n** Venda efetivada!")
                index = janela.index(opcao_poltrona)
                removido = janela.pop(index)
                janela[i]=1
            elif opcao_local == "j" and opcao_poltrona == removido:
                print("\n** Poltrona ocupada!")
            elif opcao_local == "c" and opcao_poltrona  in corredor:
                print("\n** Venda efetivada!")
                index = corredor.index(opcao_poltrona)
                removido = corredor.pop(index)
                corredor[i]=1
            elif opcao_local == "c" and opcao_poltrona == removido:
                 print("\n** Poltrona ocupada!")


# Mostrar o mapa
        if opcao == 2:
            print("\n\t\t----------------------------------")
            print("\n\t\t JANELA \t\t CORREDOR")
            print("\n\t\t----------------------------------")
            for c in range(1, 25):
                if (janela[i] == 0 and corredor[i] == 0):
                    print("\n\t\t", c, "- Livre \t", c, "- Livre")
                elif (janela[i] == 0 and corredor[i] == 1):
                    print("\n\t\t", c, "- Livre \t", c, "- Ocupada")
                elif (janela[i] == 1 and corredor[i] == 0):
                    print("\n\t\t", c, "- Ocupada \t", c, "- Livre")
                elif (janela[i] == 1 and corredor[i] == 1):
                    print("\n\t\t", c, "- Ocupada \t", c, "- Ocupada")
            print("\n\t\t----------------------------------")
        print("\n\n\n")
        while opcao == 3:
            break
 


Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 1

algumas coisa que estão sobrando no seu script:

linhas 4, 5, 6, 7, 8. essas variaveis não precisão de inicialização

c = 0
i=0
opcao_poltrona=0
disponivel = 0
opcao_local=0

as duas listas (janela e corredor) podem ser inicializadas com zero em todas as posições, recomendo procurar listcompreensions para facilitar

com as listas já inicializadas com zero vai poder tambem  tirar as linhas: 13 e 14

        janela[i]=0
        corredor[i]=0

na linha 26 esta sobrando um str() na saida do input(), input() naturalmente já tem a saida em str

            opcao_local = str(input("\n [j] Para janela ou [c] para corredor: "))#mude para a linhas de baixo
            opcao_local = input("\n [j] Para janela ou [c] para corredor: ")#exatamente o mesmo resultado da linha acima

o if da linha 29 poderia ter na segunda parte uma validação de grandesas(supondo que você altere a lista janela para iniciar zerada)

0 <= n < len(janela)

e ao invez de você fazer o .pop(index) na linha 32, pode apenas trocar o valor de zero para 1

desculpe se apontei para outros pontos alem doque você pediu

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...