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
1
Respostas
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!