aula 95

Faça um programa em Portugol para simular a reserva de assentos em uma sala de cinema

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)
		
	}
}

Deixe um comentário

dezesseis + vinte =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.