dgadelha / Portugol-Webstudio

IDE online para o Portugol
https://portugol.dev
GNU General Public License v3.0
259 stars 51 forks source link

reservas #220

Closed coli34 closed 4 months ago

coli34 commented 4 months ago

Descrição do problema

o programa não roda

Código

programa {}
inicio
    const MAX_AVIOES = 4
    const MAX_RESERVAS = 20

    tipo TReserva = registro
        numero_aviao: inteiro
        nome_passageiro: caractere
    fimregistro

    funcao inicio()

        inteiro avioes[MAX_AVIOES]
        inteiro assentos[MAX_AVIOES]
        TReserva reservas[MAX_RESERVAS]
        inteiro opcao, i, num_reservas = 0
        logico aviao_existente, assento_disponivel

        para(i = 0; i < MAX_AVIOES; i++){
            avioes[i] = 0
            assentos[i] = 0
        }

        faca{
            limpa_tela()
            escreva("Menu de Opções:\n")
            escreva("1. Registrar o número de cada avião\n")
            escreva("2. Registrar o quantitativo de assentos disponíveis em cada avião\n")
            escreva("3. Reservar passagem aérea\n")
            escreva("4. Realizar consulta por avião\n")
            escreva("5. Realizar consulta por passageiro\n")
            escreva("6. Encerrar\n")
            escreva("Escolha uma opção: ")
            leia(opcao)

            escolha(opcao){
                caso 1:
                    para(i = 0; i < MAX_AVIOES; i++){
                        escreva("Informe o número do avião ", (i+1), ": ")
                        leia(avioes[i])
                    }
                caso 2:
                    para(i = 0; i < MAX_AVIOES; i++){
                        escreva("Informe o número de assentos disponíveis para o avião ", avioes[i], ": ")
                        leia(assentos[i])
                    }
                caso 3:
                    se(num_reservas < MAX_RESERVAS){
                        escreva("Informe o número do avião para a reserva: ")
                        leia(reservas[num_reservas].numero_aviao)
                        aviao_existente = falso
                        para(i = 0; i < MAX_AVIOES; i++){
                            se(avioes[i] == reservas[num_reservas].numero_aviao){
                                aviao_existente = verdadeiro
                                se(assentos[i] > 0){
                                    escreva("Informe o nome do passageiro: ")
                                    leia(reservas[num_reservas].nome_passageiro)
                                    assentos[i] = assentos[i] - 1
                                    escreva("Reserva realizada com sucesso!\n")
                                    num_reservas++
                                } senao {
                                    escreva("Não há assentos disponíveis para este avião!\n")
                                }
                            }
                        }
                        se(nao aviao_existente){
                            escreva("Este avião não existe!\n")
                        }
                    } senao {
                        escreva("Limite de reservas atingido!\n")
                    }
                caso 4:
                    inteiro num_aviao
                    escreva("Informe o número do avião para consulta: ")
                    leia(num_aviao)
                    aviao_existente = falso
                    para(i = 0; i < MAX_AVIOES; i++){
                        se(avioes[i] == num_aviao){
                            aviao_existente = verdadeiro
                            inteiro cont_reservas = 0
                            para(inteiro j = 0; j < num_reservas; j++){
                                se(reservas[j].numero_aviao == num_aviao){
                                    escreva("Passageiro: ", reservas[j].nome_passageiro, "\n")
                                    cont_reservas++
                                }
                            }
                            se(cont_reservas == 0){
                                escreva("Não há reservas realizadas para este avião!\n")
                            }
                        }
                    }
                    se(nao aviao_existente){
                        escreva("Este avião não existe!\n")
                    }
                caso 5:
                    caractere nome_passageiro[50]
                    escreva("Informe o nome do passageiro para consulta: ")
                    leia(nome_passageiro)
                    inteiro cont_reservas = 0
                    para(i = 0; i < num_reservas; i++){
                        se(reservas[i].nome_passageiro == nome_passageiro){
                            escreva("Reserva no avião ", reservas[i].numero_aviao, "\n")
                            cont_reservas++
                        }
                    }
                    se(cont_reservas == 0){
                        escreva("Não há reservas realizadas para este passageiro!\n")
                    }
                caso 6:
                    escreva("Encerrando o algoritmo.\n")
            }
        } enquanto(opcao != 6)

Comentários adicionais

No response

dgadelha commented 4 months ago

Olá, o Portugol (padrão UNIVALI) não possui registros (no seu código, TReserva) na linguagem. Infelizmente, não há o que possa ser feito.