Jump to content
Fórum Script Brasil
  • 0

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


Antonov1
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...