Ir para conteúdo

Arquivado

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

mewdex

[Resolvido] Trabalho VIsuALG

Recommended Posts

Olá galera, esses dias vi por aqui um tópico com um carinha pedindo ajuda em um programa lá e agora chegou a minha vez hehe ... preciso fazer um trabalho para sexta feira e tá f***, não tô conseguindo terminar... falta pouca coisa... mas é a parte mais difícil e vim pedir ajuda pra galera que sabe tudo aqui rsrs ...

 

é o seguinte, o trabalho é você construir um programa em VisuALG, montando um hotel em que voce tem certa quantidade de quartos e quer ocupar/desocupar, saber qntos quartos estao ocupados e qntos estao ocupados por andar, e alem disso, ocupar um quarto automaticamente de acordo com o andar mais cheio...

 

é uma bagunça hehe ... vou deixar meu algoritmo aqui e o pdf do trabalho, se alguem estiver disposto a me ajudar nesse final ^^ ....

 

algumas duvidas:

1) o Hotel tem 120 quartos, como faço para mostrar apenas 10 por linha ? ( ele tá mostrando todos na mesma linha )

2)Nao to conseguindo fazer a quantidade de ocupados Por andar, apenas ao todo...

3) nao tenho nem ideia de como fazer esse negocio de automatico.....

 

 

 

algoritmo "semnome"
// Função :
// Autor :
// Data : 06/07/2010
// Seção de Declarações 
procedimento msg(a:caracter)
var
inicio
escreva("Aperte ENTER para continuar")
leia(a)
fimprocedimento

var
quarto: vetor[1..120] de inteiro
qnt_andar: vetor[0..5] de inteiro
reserva: vetor[1..120] de logico
acao: caractere
i, andar, apt: inteiro
tx: real  // taxa ocupacao
x: caractere               // procedimento
maior, maior_andar: inteiro // reserva automatica

inicio
reserva[4] <- verdadeiro
andar <- 0
tx <- 0

repita
escreval("===========================")
escreval("Hotel Da Engenharia Quimica")
escreval("===========================")
escreval("")
escreval("")

escreval("Dispnibilidade dos quartos:")
para i de 1 ate 120 faca
se reserva[i]=verdadeiro entao
escreva("Q",i:3 ," X ")
senao
escreva("Q ",i:3 ,"  ")
fimse
fimpara


escreval("")
escreval("")
escreval("Menu")
escreval("r - para reservar um determinado quarto")
escreval("a - para reserva automática de quartos")
escreval("d - para liberar um quarto")
escreval("t - para mostrar a taxa de ocupação do hotel")
escreval("x - uma funcao pra mim definir")
escreval("q - para sair")
leia(acao)

se acao="r" entao                      // Reservas
escreval("== Setor de Reservas ==")
escreva("Digite o quarto: ")
leia(apt)
         se reserva[apt]=verdadeiro entao
         escreval("")
         escreval("----------------------")
         escreval("Esse quarto já está reservado")
         escreval("----------------------")
         msg(x)
         escreval("")
         escreval("")
         senao
         reserva[apt] <- verdadeiro
         fimse
fimse

se acao="d" entao                           // Liberar Quartos
escreval("== Setor de Liberacao ==")
escreva("Digite o quarto: ")
leia(apt)
         se reserva[apt]=verdadeiro entao
         reserva[apt] <- falso
         senao
              se reserva[apt]=falso entao
              escreval("")
              escreval("---------------------------")
              escreval("Esse quarto já estava livre")
              escreval("---------------------------")
              escreval("")
              msg(x)
              fimse
         fimse
fimse

para i de 1 ate 120 faca                 // numero de andares ocupados
se reserva[i]=verdadeiro entao
andar <- andar + 1
fimse
fimpara                            // tx <- andar*100/120


 para apt de 0 ate 5 faca
 para i de 1 ate 120 faca
      se (reserva[i]=verdadeiro) entao
      qnt_andar[apt] <- qnt_andar[apt] + 1
      fimse
 fimpara
 fimpara
 

tx <- andar*100/120


se acao="t" entao                        // taxa de ocupacao
   escreval("=== Taxa de Ocupação===")
   escreval(andar, " quarto(s) ocupado(s). Ocupação de ", tx:2:2, "%")
   escreval("")
   escreval("===Taxa de Ocupação por andar===")
   para apt de 0 ate 5 faca
   escreval(apt+1, "º. Andar :",qnt_andar[apt], " quarto(s). Ocupação de % no andar.")
   fimpara
   msg(x)
fimse






ate acao="q"





// Seção de Comandos 
fimalgoritmo
agradeço quem puder me ajudar ^^

 

Trabalho

Faça um programa em VisuAlg para controlar a ocupação de quartos de um hotel com 120
quartos. O programa deve ter as seguintes características:
· Um menu deve ser fornecido para o usuário com as seguintes opções:
o r – para reservar um determinado quarto
o a – para reserva automática de quartos
o d – para liberar um quarto;
o t – para mostrar a taxa de ocupação do hotel
o x – Uma função que vocês vão definir
o q - para sair.
· Acima do menu deve ser mostrado uma lista de todos os quartos e se eles
estão ocupados: se ocupado, mostrar um ”X” na frente do número do quarto;
caso contrário mostrar um espaço em branco “ ”.
· Se o usuário tentar reservar um quarto que já está reservado, uma mensagem
de erro deve ser exibida, indicando que o quarto já está ocupado.
· Sempre que ocorrer uma reserva ou liberação de quarto, a lista de quartos
deve ser atualizada. Inicialmente todos os quartos devem estar desocupados.
· Mostrar quantos quartos estão ocupados juntamente com a porcentagem de
ocupação. Mostrar também a taxa de ocupação por andar. . Cada andar tem
20 quartos.
· Reserva automática: esse tipo de reserva faz com que o programa escolha
automaticamente um quarto para reserva. O programa deve dar preferência
para os quartos que estão nos andares que estão com maior ocupação. Crie
um procedimento para lidar com as mensagens de erro. Após uma mensagem
de erro peça para o usuário pressionar a tecla ENTER para continuar. Isso pode
ser feito pelo comando leia(x), onde x é uma variável do tipo caracter
· Invente uma nova operação para o programa – essa operação deve estar
relacionada com alguma funcionalidade do hotel.
Dicas:
· Use VARIAVEL:3 para garantir que a variável seja escrita dentro de 3 espaços
· Para obter a parte inteira de um número use a função int(VARIÁVEL)

 

 

Exemplos de saida:

 

===========================
Hotel da Engenharia Química
===========================
Disponibilidade dos quartos:
Q 1 Q 2 Q 3 Q 4 Q 5 Q 6 Q 7 Q 8 Q 9 Q 10
Q 11 Q 12 Q 13 Q 14 Q 15 Q 16 Q 17 Q 18 Q 19 Q 20
Q 21 X Q 22 Q 23 Q 24 Q 25 Q 26 Q 27 Q 28 Q 29 Q 30
Q 31 Q 32 Q 33 Q 34 Q 35 Q 36 Q 37 Q 38 Q 39 Q 40
Q 41 Q 42 Q 43 Q 44 Q 45 Q 46 Q 47 Q 48 Q 49 Q 50
Q 51 Q 52 Q 53 Q 54 Q 55 Q 56 Q 57 Q 58 Q 59 Q 60
Q 61 X Q 62 Q 63 Q 64 Q 65 Q 66 Q 67 Q 68 Q 69 Q 70
Q 71 Q 72 Q 73 Q 74 Q 75 Q 76 Q 77 Q 78 Q 79 Q 80
Q 81 Q 82 Q 83 Q 84 Q 85 Q 86 Q 87 Q 88 Q 89 Q 90
Q 91 Q 92 Q 93 Q 94 Q 95 Q 96 Q 97 Q 98 Q 99 Q100
Q101 X Q102 X Q103 Q104 Q105 Q106 Q107 Q108 Q109 Q110
Q111 X Q112 Q113 Q114 Q115 Q116 Q117 Q118 Q119 Q120
Menu
r - para reserva de quarto
a - reserva automática
d - para disponibilizar um quarto
t - taxa de ocupação do hotel
q - para sair
Digite uma opção: t
====Taxa de ocupação====
5 quarto(s) ocupado(s). Ocupação de 4.17%.
====Taxa de ocupação por andar====
1o. Andar: 0 quarto(s). Ocupação de 0% no andar.
2o. Andar: 1 quarto(s). Ocupação de 5% no andar.
3o. Andar: 0 quarto(s). Ocupação de 0% no andar.
4o. Andar: 1 quarto(s). Ocupação de 5% no andar.
5o. Andar: 0 quarto(s). Ocupação de 0% no andar.
6o. Andar: 3 quarto(s). Ocupação de 15% no andar.
Pressione ENTER para continuar
===========================
Hotel da Engenharia Química
===========================
Disponibilidade dos quartos:
Q 1 Q 2 Q 3 Q 4 Q 5 Q 6 Q 7 Q 8 Q 9 Q 10
Q 11 Q 12 Q 13 Q 14 Q 15 Q 16 Q 17 Q 18 Q 19 Q 20
Q 21 X Q 22 Q 23 Q 24 Q 25 Q 26 Q 27 Q 28 Q 29 Q 30
Q 31 Q 32 Q 33 Q 34 Q 35 Q 36 Q 37 Q 38 Q 39 Q 40
Q 41 Q 42 Q 43 Q 44 Q 45 Q 46 Q 47 Q 48 Q 49 Q 50
Q 51 Q 52 Q 53 Q 54 Q 55 Q 56 Q 57 Q 58 Q 59 Q 60
Q 61 X Q 62 Q 63 Q 64 Q 65 Q 66 Q 67 Q 68 Q 69 Q 70
Q 71 Q 72 Q 73 Q 74 Q 75 Q 76 Q 77 Q 78 Q 79 Q 80
Q 81 Q 82 Q 83 Q 84 Q 85 Q 86 Q 87 Q 88 Q 89 Q 90
Q 91 Q 92 Q 93 Q 94 Q 95 Q 96 Q 97 Q 98 Q 99 Q100
Q101 X Q102 X Q103 Q104 Q105 Q106 Q107 Q108 Q109 Q110
Q111 X Q112 Q113 Q114 Q115 Q116 Q117 Q118 Q119 Q120
Menu
r - para reserva de quarto
a - reserva automática
d - para disponibilizar um quarto
t - taxa de ocupação do hotel
q - para sair
Digite uma opção: k
----------------------------------------------------
ERRO: Opção inválida!
----------------------------------------------------
Pressione ENTER para continuar

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom galera, consegui terminar o algoritmo...descobri que nada melhor que uma cerveja para abrir a mente e te ajudar a terminar o trabalho haha ....

 

ainda bem que meu professor passou esse metodo ( no pdf ) de como pegar o quarto automaticamente pois eu nao tinha nem ideia como fazia e mesmo fazendo agora, acho que nao conseguiria fazer denovo depois pq é f*** rsrs ...

 

só ficou faltando alinhar apenas 10 quartos em 1 linha, pois eu n entendo mto de matriz ai preferi nao mexer.. vou ver se olho com meu professor se tem jeito de fazer isso sem matriz, apenas com vetor... eu tenho quase certeza que tem, mas eu procurei nos meus arquivos e nao consegui achar, mas lembro de ler algo parecido....

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.