Ir ao conteúdo

Posts recomendados

Postado

Boa noite! estou com dificuldade no desenvolvimento de um script. Mais especificamente, na parte do mapa de ocupação. Como faço para que seja mostrado corretamente no mapa as poltronas livres e ocupadas?

 

Abaixo está 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.

 

Em anexo está o código que fiz:

 

# Criando listas
janela = [item*0 for item in range(24)]
corredor = [item*0 for item in range(24)]

# Criando menu
for i in range(1, 49):
        print("\n1 -Vender passagem")
        print("\n2 -Mapa de ocupacão")
        print("\n3 -Encerrar")
        opcao = int(input("\nQual operação você deseja realizar?"))

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

        if opcao == 1:
            print("\n----------------------------------")
            print("\nCompra de passagens")
            print("\n__________________________________")
            opcao_local = input("\n [j] Para janela ou [c] para corredor: ")
            opcao_poltrona = int(input("\n Número da poltrona: "))

#Condiçoes para poltrona livre e poltrona ocupada

            if opcao_local == "j" and janela[opcao_poltrona] == 0:
                print("\n** Venda efetivada!")
                janela.insert(opcao_poltrona, 1)
            elif opcao_local == "j" and janela[opcao_poltrona] == 1:
                print("\n** Poltrona ocupada!")
            if opcao_local == "c" and corredor[opcao_poltrona] == 0:
                print("\n** Venda efetivada!")
                corredor.insert(opcao_poltrona, 1)
            elif opcao_local == "c" and corredor[opcao_poltrona] == 1:
                print("\n** Poltrona ocupada!")
            print("------------------------------------------")

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

            print("\n\t\t----------------------------------")
        print("\n\n\n")
        while opcao == 3:
            break

 

 

Postado

@Hada12 Deixe o loop principal infinito em vez do range. Assim o programa será encerrado apenas na opção 3, p.ex

while True:
    print("\n1 -Vender passagem")
    print("\n2 -Mapa de ocupacão")
    print("\n3 -Encerrar")
    opcao = int(input("\nQual operação você deseja realizar? "))

    if opcao == 3:
        break

 

Se criar funções acho que vai ficar mais fácil de resolver. Poderia ser uma para mostrar o mapa e outra referente a venda para verificar e marcar uma poltrona como ocupada. A do mapa poderia ser algo assim (veja que considero a lista do índice 0 a 23)

def mapa(janela, corredor):
    for i in range(24):
        j = 'Livre'
        c = 'Livre'
        if janela[i] != 0:
            j = 'Ocupada'
        if corredor[i] != 0:
            c = 'Ocupada'
        j = '- '+j
        c = '- '+c
        print(str(i + 1),j,str(i + 1),c)

 

Para mostrar passe as listas como argumento.

  • 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!