Ajuda com código de Exercício de Lógica de Programação

0 Votos
Estou no curso de Lógica de Programação no Modulo 3 no exercicio complementar do modulo nele pede o seguinte:
“Crie um algoritmo que solicite o número da poltrona. Se a posição estiver vazia então ela passará a ser ocupada. O algoritmo termina quando o usuário digita o valor 0 (zero). Considere que exista 2 fileiras com 5 poltronas e no início todas estejam vazias.”
Eu criei tudo certinho, mas meu código saiu um pouco grande, eu fiz com o que veio vindo em minha cabeça, queria saber se teria com simplificar o código, segue o código abaixo:
————————————————– Código ————————————————–
algoritmo “Aninhamento de Para…Faça”
var
    Matriz: vetor[1..2,1..5] de Caractere
    L,C:inteiro
    x:Inteiro
inicio
para L de 1 ate 2 faca
     para C de 1 ate 5 faca
     Matriz[L,C] <- “v”
     fimpara
fimpara
x <- 1
Enquanto x >= 1 faca
         Enquanto x <= 10 faca
         
Escreval (“Digite o número de poltrona de 1 a 10: “)
Leia (x)
se x = 0 entao
interrompa
fimse
se x = 1 entao
   se Matriz[1,1] = “p” entao
   Escreval (“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   
   se Matriz[1,1] = “v” entao
   Escreval (“Poltrona Vazia”)
    Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
    Escreval (“”)
   Matriz[1,1] <- “p”
   fimse
fimse
//——————————————————————–//
se x = 2 entao
   se Matriz[1,2] = “p”  entao
   Escreval (“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   se Matriz[1,2] = “v” entao
   Escreval (“Poltrona Vazia”)
   Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
   Escreval (“”)
   Matriz[1,2] <- “p”
   fimse
fimse
//——————————————————————–//
se x = 3 entao
   se Matriz[1,3] = “p” entao
   Escreval (“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   se Matriz[1,3] = “v” entao
   Escreval (“Poltrona Vazia”)
   Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
   Escreval (“”)
   Matriz[1,3] <- “p”
   fimse
fimse
//——————————————————————–//
se x = 4 entao
   se Matriz[1,4] = “p”  entao
   Escreval (“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   se Matriz[1,4] = “v” entao
   Escreval (“Poltrona Vazia”)
   Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
   Escreval (“”)
   Matriz[1,4] <- “p”
   fimse
fimse
//——————————————————————–//
se x = 5 entao
   se Matriz[1,5] = “p” entao
   Escreval(“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   se Matriz[1,5] = “v” entao
   Escreval (“Poltrona Vazia”)
   Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
   Escreval (“”)
   Matriz[1,5] <- “p”
   fimse
fimse
//——————————————————————–//
se x = 6 entao
   se Matriz[2,1] = “p”  entao
   Escreval (“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   se Matriz[2,1] = “v” entao
   Escreval (“Poltrona Vazia”)
   Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
   Escreval (“”)
   Matriz[2,1] <- “p”
   fimse
fimse
//——————————————————————–//
se x = 7 entao
   se Matriz[2,2] = “p”  entao
   Escreval (“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   se Matriz[2,2] = “v” entao
   Escreval (“Poltrona Vazia”)
   Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
   Escreval (“”)
   Matriz[2,2] <- “p”
   fimse
fimse
//——————————————————————–//
se x = 8 entao
   se Matriz[2,3] = “p”  entao
   Escreval (“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   se Matriz[2,3] = “v” entao
   Escreval (“Poltrona Vazia”)
   Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
   Escreval (“”)
   Matriz[2,3] <- “p”
   fimse
fimse
//——————————————————————–//
se x = 9 entao
   se Matriz[2,4] = “p”  entao
   Escreval (“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   se Matriz[2,4] = “v” entao
   Escreval (“Poltrona Vazia”)
   Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
   Escreval (“”)
   Matriz[2,4] <- “p”
   fimse
fimse
//——————————————————————–//
se x = 10 entao
   se Matriz[2,5] = “p”  entao
   Escreval (“A poltrona está ocupada”)
   Escreval (“”)
   fimse
   se Matriz[2,5] = “v” entao
   Escreval (“Poltrona Vazia”)
   Escreval (“”)
   Escreval (“A poltrona foi preenchida”)
   Escreval (“”)
   Matriz[2,5] <- “p”
   fimse
fimse
   Fimenquanto
Fimenquanto
fimalgoritmo

Respostas


  1. 0 Votos

    Olá Danilo Chachá,

    Entendi que você está com dificuldades em simplificar o código para um exercício de lógica de programação. Você criou um algoritmo que solicita o número da poltrona e verifica se ela está vazia ou ocupada, mas o código ficou grande e repetitivo.

    Uma forma de simplificar o código é usar uma abordagem mais genérica e evitar a repetição de código. Aqui está uma sugestão de como você pode fazer isso:

    “`pseudocódigo
    // Defina a matriz de poltronas
    var Matriz: vetor[1..2,1..5] de Caractere

    // Inicialize as poltronas como vazias
    para L de 1 ate 2 faca
    para C de 1 ate 5 faca
    Matriz[L,C] <- "v"
    fimpara
    fimpara

    // Loop principal
    enquanto verdadeiro faca
    // Solicite o número da poltrona
    Escreval(“Digite o número de poltrona de 1 a 10: “)
    Leia(x)

    // Verifique se o usuário quer sair
    se x = 0 entao
    interrompa
    fimse

    // Verifique se a poltrona está dentro do range válido
    se x < 1 ou x > 10 entao
    Escreval(“Número de poltrona inválido!”)
    continua
    fimse

    // Calcule a posição da poltrona na matriz
    L <- (x - 1) div 5 + 1
    C <- (x - 1) mod 5 + 1 // Verifique se a poltrona está ocupada ou vazia
    se Matriz[L,C] = “p” entao
    Escreval(“A poltrona está ocupada”)
    senao
    Escreval(“Poltrona Vazia”)
    Escreval(“A poltrona foi preenchida”)
    Matriz[L,C] <- "p"
    fimse
    fimenquanto
    “`

    Esse código faz o mesmo que o seu, mas é mais conciso e fácil de entender. Ele usa uma abordagem mais genérica para verificar a posição da poltrona na matriz e evitar a repetição de código.

    Espero que isso ajude! Se você tiver alguma dúvida ou precisar de mais ajuda, não hesite em perguntar.

    Obrigado por perguntar no Render Respostas!

Cadastre-se ou faça login para responder a esta pergunta.