Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wind

[AJUDA] Algoritmo cinema - Matriz

Recommended Posts

Bom dia.

 

Estou com um problema para gerar uma matriz 10x10 dos assentos de um exercício.

 

[O Exercício]

Uma empresa de Cinema possui uma sala para apresentação de seus filmes e oferece diariamente duas sessões (18:00 e 21:00 horas), sendo que a sala possui 100 lugares, representada a seguir

Faça um algoritmo que utilize matrizes 10x10 para controlar os assentos nas duas sessões. Os assentos serão referenciados conforme sua numeração (fileira e assento), por exemplo: A1, B2, B8, ... Os assentos ocupados serão apresentados na tela com um X e os disponíveis em branco. Inicialmente todos os assentos estarão livres. O algoritmo deve mostrar ao usuário as seguintes opções: 1- Mostrar assentos (a – Assentos da sessão das 18:00 ou b – Assentos da sessão das 21:00) 2- Vender Ingressos: Sessão: 18:00 ou das 21:00 horas; Tipo do ingresso: inteiro ou meia. 3- Total arrecadado por sessão; 4- Sair

 

OBSERVAÇÕES: - A opção 1 mostra todos os assentos da sessão selecionada (a ou b). Os assentos já reservados estarão preenchidas com um X e os outros em branco;

- A opção 2 permite a venda de ingressos. Quando o cliente comprar um ingresso, o sistema colocará um X no assento selecionado e atualizará o total arrecadado por sessão, conforme o tipo do ingresso;

- A opção 3 apresenta o total arrecadado por sessão até o momento; - Quando selecionada a opção 4, o algoritmo deverá mostrar o total arrecadado em cada sessão, a quantidade de pessoas que assistiram cada sessão e finalizar o sistema;

 

_____________________________________________________________________________________________________________

 

Minha primeira dúvida é: como gerar os assentos numa relação 10x10?

Sempre que eu coloco para cont1 <- de 1 ate 9 - ele cria 97 assentos no A e depois 99 assentos no B

Quando eu coloco de 1 ate 10 - ele cria 118 no A e 120 assentos no B

Como eu faço pra ter essa relação de 100 assentos no A e 100 assentos no B?

Outra coisa que preciso de ajuda também é sobre como eu faço pra calcular o quanto arracadei em cada sessão.

 

Segue meu código:

 

algoritmo "INGRESSOS"
// Função : Venda de ingressos
// Autor : Phillip
// Data : 21/06/2016
// Seção de Declarações
var
polt1, polt2: vetor[1..9,1..9] de inteiro
cont1, cont2, num1, num2, op, poltVendida: inteiro
inicio
//Preenche a primeira fileira;
num1 <- 1
para cont1 de 1 ate 9 faca
para cont2 de 1 ate 9 faca
polt1[cont1,cont2] <- num1
num1 <- num1+1
fimpara
num1 <- num1+2
fimpara
//Completando os lugares da segunda fileira
num2 <- 3
para cont1 de 1 ate 9 faca
para cont2 de 1 ate 9 faca
polt2[cont1,cont2] <- num2
num2 <- num2+1
fimpara
num2 <- num2+2
fimpara
//Depois de preenchidas as matrizes começa o menu
escreval("Escolha uma opção do menu:")
escreval("1 - Mostrar poltronas")
escreval("2 - Vender ingressos")
escreval("3 - Total arrecadado por sessão")
escreval("4 - Sair")
leia(op)
enquanto op <> 4 faca
//Listagem de poltronas
se(op = 1)entao
para cont1 de 1 ate 9 faca
para cont2 de 1 ate 9 faca
escreva(polt1[cont1,cont2])
fimpara
escreva(" ---- ")
para cont2 de 1 ate 9 faca
escreva(polt2[cont1,cont2])
fimpara
escreval("")
fimpara
fimse
//Venda de poltrona
se(op = 2)entao
escreval("Digite o número da poltrona:")
leia(poltVendida)
para cont1 de 1 ate 9 faca
para cont2 de 1 ate 9 faca
se(polt1[cont1,cont2] = poltVendida)entao
polt1[cont1,cont2] <- 0
fimse
se(polt2[cont1,cont2] = poltVendida)entao
polt2[cont1,cont2] <- 0
fimse
fimpara
fimpara
fimse
se(op = 4)entao
limpatela
fimse
//Refazendo as perguntas
escreval("Escolha uma opção do menu:")
escreval("1 - Mostrar poltronas")
escreval("2 - Vender ingressos")
escreval("3 - Total arrecadado por sessão")
escreval("4 - Sair")
leia(op)
fimenquanto
escreval("Muito obrigado por utilizar o meu sistema!")
fimalgoritmo

 

 

______________________________________________

 

Muito obrigado por quem ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma matriz 10x10 vai ter 10 colunas numeradas de 0 a 9 e 10 linhas, também numeradas de 0 a 9, ao invés de criar um modelo grande de primeira eu aconselho fazer um "teste" com um modelo. Crie uma tabela 10x10 e teste os laços de 0 a 9, e vá printando para ver se ele gera tudo certinho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei criar no modelo de 0 a 9 mas obtive isso na impressão:

 

1 2 3 4 5 6 7 8 9 10 ---- 1 2 3 4 5 6 7 8 9 10
12 13 14 15 16 17 18 19 20 21 ---- 12 13 14 15 16 17 18 19 20 21
23 24 25 26 27 28 29 30 31 32 ---- 23 24 25 26 27 28 29 30 31 32
34 35 36 37 38 39 40 41 42 43 ---- 34 35 36 37 38 39 40 41 42 43
45 46 47 48 49 50 51 52 53 54 ---- 45 46 47 48 49 50 51 52 53 54
56 57 58 59 60 61 62 63 64 65 ---- 56 57 58 59 60 61 62 63 64 65
67 68 69 70 71 72 73 74 75 76 ---- 67 68 69 70 71 72 73 74 75 76
78 79 80 81 82 83 84 85 86 87 ---- 78 79 80 81 82 83 84 85 86 87
89 90 91 92 93 94 95 96 97 98 ---- 89 90 91 92 93 94 95 96 97 98
100 101 102 103 104 105 106 107 108 109 ---- 100 101 102 103 104 105 106 107 108 109

 

 

Este é o jeito que estou fazendo a listagem das poltronas

 

//Listagem de poltronas
se(op = 1)entao
para cont1 de 0 ate 9 faca
para cont2 de 0 ate 9 faca
escreva(polt1[cont1,cont2])
fimpara
escreva(" ---- ")
para cont2 de 0 ate 9 faca
escreva(polt2[cont1,cont2])
fimpara
escreval("")
fimpara
fimse
E preenchendo as fileiras
//Preenche a primeira fileira;
num1 <- 1
para cont1 de 0 ate 9 faca
para cont2 de 0 ate 9 faca
polt1[cont1,cont2] <- num1
num1 <- num1+1
fimpara
num1 <- num1+1
fimpara
//Completando os lugares da segunda fileira
num2 <- 1
para cont1 de 0 ate 9 faca
para cont2 de 0 ate 9 faca
polt2[cont1,cont2] <- num2
num2 <- num2+1
fimpara
num2 <- num2+1
fimpara
Eu até tentei criar uma tabela 10x10 mas obtive o mesmo resultado :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.