Nesta aula iremos construir um programa em Portugol para simular a reserva de assentos em uma sala de cinema.
Exercício: Faça um programa para reservar assentos em uma sala de cinema. A sala possui 25 filas com 30 assentos cada fila. O programa deve funcionar enquanto houver assentos vagos ou não for digitadas duas coordenadas negativas.
Como a sala de cinema possui 25 filas com 30 assentos cada fila, já imaginamos que precisaremos de uma matriz com 25 linhas e 30 colunas.
Precisamos representar cada posição da matriz (poltrona) como vendida ou disponível. Para isso podemos utilizar os números 0 e 1 (0 – disponível, 1 – vendida).
Antes de efetuar qualquer venda precisamos inicializar nossa matriz, ou seja, dizer que todas as poltronas estão vagas. Isso pode ser feito facilmente atribuindo o valor zero (0) a cada posição de nossa matriz.
Em seguida, teremos uma repetição do tipo faça enquanto que irá repetir enquanto houver poltronas vagas e não for digitado uma coordenada negativa. Pediremos ao usuário qual poltrona ele deseja comprar (índice de linha e coluna), validaremos a coordenada, afinal pode ser uma coordenada inválida, e por fim, se for uma coordenada válida e a poltrona estiver disponível (posição igual a zero), então efetuamos a venda da poltrona, atribuindo 1 à posição escolhida.
Código completo para o exercício do cinema.
programa{ /* Aula 95: Faça um programa para reservar assentos em uma sala de cinema. * A sala possui 25 filas com 30 assentos cada fila. O programa deve funcionar * enquanto houver assentos vagos ou não for digitadas duas coordenadas negativas. * * Escrito por: Wagner Gaspar * Março de 2021 */ funcao inicio(){ inteiro l, c, linha, coluna, reservas = 0, sala[25][30] para(l = 0; l < 25; l++){ para(c = 0; c < 30; c++){ sala[l][c] = 0 } } faca{ escreva("0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29\n") para(l = 0; l < 25; l++){ para(c = 0; c < 30; c++){ escreva(sala[l][c], " ") } escreva(" ", l, "\n") } escreva("Digie linha e coluna da poltrona desejada: ") leia(linha, coluna) se(linha < 0 ou linha > 24){ escreva("\nLinha inválida. Digite outra linha válida!\n") } senao{ se(coluna < 0 ou coluna > 29){ escreva("\nColuna inválida. Digite outra coluna válida!\n") } senao{ se(sala[linha][coluna] == 1){ escreva("\nPoltrona já reservada. Escolha outra!\n") } senao{ sala[linha][coluna] = 1 escreva("\nReserva realizada com sucesso!!!\n") reservas++ } } } }enquanto(reservas < 750 e linha >= 0 ou coluna >= 0) } }