dgadelha / Portugol-Webstudio

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

erro #255

Closed caldasoff closed 1 month ago

caldasoff commented 1 month ago

Descrição do problema

Não to conseguindo achar o erro

Código

programa {
  funcao inicio() {
      cadeia quartos[10]
      inteiro numQuartos
      cadeia ocupacao
      real estado

        // Inicializa todos os quartos como livres ('L')
        para (inteiro i = 0; i < 10; i++)
        {
            quartos[i] = 'L'
        } 

        real continuar = 'S'
        enquanto (continuar == 'S')
        {
            // Solicita o número do quarto
            inteiro numeroQuarto
            escreva("Digite o número do quarto (1 a 10): ")
            leia(numeroQuarto)

            // Ajusta o índice para manipulação correta do vetor
            inteiro indice = numeroQuarto - 1

            // Solicita o estado do quarto (L/O)

            escreva("O quarto está livre ou ocupado? (L/O): ")
            leia(estado)

            // Verifica e atualiza o estado do quarto conforme as regras
            se (quartos[indice] == 'L' e estado == 'L')
            {
                escreva("O quarto já está livre\n")
            }
            senao se (quartos[indice] == 'L' e estado == 'O')
            {
                quartos[indice] = 'O'
                escreva("O quarto foi ocupado\n")
            }
            senao se (quartos[indice] == 'O' e estado == 'L')
            {
                quartos[indice] = 'L'
                escreva("O quarto foi liberado\n")
            }
            senao se (quartos[indice] == 'O' e estado == 'O')
            {
                escreva("O quarto já está ocupado\n")
            }

            // Pergunta se o usuário deseja continuar
            escreva("Deseja continuar? (S/N): ")
            leia(continuar)
        }

        // Exibe o estado final de todos os quartos
        para (inteiro i = 0; i < 10; i++)
        {
            escreva((i + 1), "-", quartos[i], "\n")
        }
     }
   }

Comentários adicionais

No response

dgadelha commented 1 month ago

Olá,

Acredito que houve alguns erros na declaração de algumas variáveis, sendo elas a quartos, estado e continuar, que eram para ser caracter e não cadeia/real:

programa {
  funcao inicio() {
      caracter quartos[10]
      inteiro numQuartos
      cadeia ocupacao
      caracter estado

        // Inicializa todos os quartos como livres ('L')
        para (inteiro i = 0; i < 10; i++)
        {
            quartos[i] = 'L'
        } 

        caracter continuar = 'S'
        enquanto (continuar == 'S')
        {
            // Solicita o número do quarto
            inteiro numeroQuarto
            escreva("Digite o número do quarto (1 a 10): ")
            leia(numeroQuarto)

            // Ajusta o índice para manipulação correta do vetor
            inteiro indice = numeroQuarto - 1

            // Solicita o estado do quarto (L/O)

            escreva("O quarto está livre ou ocupado? (L/O): ")
            leia(estado)

            // Verifica e atualiza o estado do quarto conforme as regras
            se (quartos[indice] == 'L' e estado == 'L')
            {
                escreva("O quarto já está livre\n")
            }
            senao se (quartos[indice] == 'L' e estado == 'O')
            {
                quartos[indice] = 'O'
                escreva("O quarto foi ocupado\n")
            }
            senao se (quartos[indice] == 'O' e estado == 'L')
            {
                quartos[indice] = 'L'
                escreva("O quarto foi liberado\n")
            }
            senao se (quartos[indice] == 'O' e estado == 'O')
            {
                escreva("O quarto já está ocupado\n")
            }

            // Pergunta se o usuário deseja continuar
            escreva("Deseja continuar? (S/N): ")
            leia(continuar)
        }

        // Exibe o estado final de todos os quartos
        para (inteiro i = 0; i < 10; i++)
        {
            escreva((i + 1), "-", quartos[i], "\n")
        }
     }
   }