Ir ao conteúdo
  • Cadastre-se

Portugol Como atribuir hospede a um quarto


Posts recomendados

Olá, boa noite! Essa atividade que estou fazendo no portugol.

 

São 7 partes no total:

  • primeira : construir menu
  • segunda: cadastrar hospedes
  • terceira:  exibir hospedes
  • quarta: exibir quartos
  • quinta: adicionar hospedes a um quarto

 

Obs: todas até a quarta estão feitas.

Estou com dúvida nessa parte de adicionar hospedes 

 

clube1.png

 

escreva("*** CADASTRO DE HÓSPEDE ***\n\n")
			
				
		escreva(" Nome   : ") leia(nomes[i]) 	
			 
		escreva(" CPF    : ") leia(cpfs[i])
		
		escreva(" Diárias: ") leia(qtdDiarias[i]) 
		
		     
		
			escreva("Os dados estão corretos? : ")
          leia(aux)
			se(aux =="sim"){
          	
          	hospedeCadastrado++	
          	valorgasto[i] = 100*qtdDiarias[i]
               escreva("Valor Gasto: ", valorgasto[i],"R$","\n")
               i++
			}senao{ escreva("fim")
			hospedeCadastrado--
			i--
			inicio()
          	
			}enquanto(hospedeCadastrado==3){
			escreva("cadastrosLotados")
			inicio()
			
			
			}
	
	}
	
	
	
	funcao exibirHospede()
	{
		
		para (inteiro posicaoVetor = 0; posicaoVetor <= i; posicaoVetor++){
		
		escreva("*** DADOS DE HÓSPEDE ***\n")
		escreva("\n Nome   : ", nomes[posicaoVetor]) 
        escreva("\n CPF    : ", cpfs[posicaoVetor]) 
        escreva("\n Diárias: ", qtdDiarias[posicaoVetor], "\n")
		}
	}
	funcao exibirQuartos(){
	
      para(inteiro i = 0; i<4; i++){
			quartos[i] = "Livre"
			escreva("Quarto ", i+1, " - ", quartos[i] , "\n")
      
			
			
			
      }	
		
			
		

		
	}
	funcao atribuirHospede(){
		inteiro auxinteiro1 = 0
         exibirHospede()
         escreva("indice do Hospede? ")
         leia(nomes[i])
         para(i = 0; i<4;i++){
         	quartos[i] = "Livre"
         	se(quartos[i] == "Livre"){
         		quartos[i] = "Ocupado"
         		
         		escreva("Quarto", i+1,quartos[i] = nomes[i]) 
         		
         		pare
         	}
         	
         }
         
	}
	
	
	funcao inicio()
	{
		faca {
			escreva("\n Digite \n 1 – Cadastrar Hospedes \n 2 – Exibir Hospedes Cadastrados\n 3 – Exibir Quartos\n 4 – Atribuir Hospede a um quarto\n 5 – Reservar Área de Lazer\n 6 – Calcular Total a Pagar\n 0 – Sair\n ")
			leia(opcao)
		
		         escolha (opcao) {
			
			     caso 1:
				     
					cadastrarHospede()								
					pare
				caso 2: //Exibir Hospedes Cadastrados
					exibirHospede()
					pare
				caso 3: //Exibir Quartos
					exibirQuartos()
					pare
				caso 4: //Atribuir Hospede a um quarto
					atribuirHospede()
					pare
				caso 5: //Reservar Área de Lazer
					escreva("\nOPCAO 5")
					pare
				caso 6: //Calcular Total a Pagar
					escreva("\nOPCAO 6")
					pare
				caso 0: //Sair
					escreva("\nOPCAO 0")
					escreva("\n----Volte sempre----")
					pare	
		         	
			} //opcao  
		} enquanto (opcao != 0)
		  
	}

 

ATIVIDADE 5 - Instruções.pdf

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Simon Viegas alterou o título para Como atribuir hospede a um quarto
  • Membro VIP
Em 13/07/2023 às 20:23, Ramon2023n disse:

Estou com dúvida nessa parte de adicionar hospedes 

 

Ok!. Qual dúvida? Seria interessante citar qual parte não está entendendo e postar o código completo.

 

 

Vamos lá:

 

Segue o que foi implementado:

Em 13/07/2023 às 20:23, Ramon2023n disse:
	funcao atribuirHospede() {
		inteiro auxinteiro1 = 0
		
		exibirHospede()
		escreva("Índice do Hospede? ")
		leia(nomes[i])
		
		para(i = 0; i<4;i++) {
			quartos[i] = "Livre"
			
			se (quartos[i] == "Livre"){
				quartos[i] = "Ocupado"
				escreva("Quarto", i+1, quartos[i] = nomes[i]) 
			pare
			}
		}
	}

 

 

Comece ajustando a nomenclatura da função de exibir os hóspedes. 

 

Em 13/07/2023 às 20:23, Ramon2023n disse:

image.png

 

O nome da função seria no plural.

 

Ajuste de:

Em 13/07/2023 às 20:23, Ramon2023n disse:
	funcao exibirHospede()
	{

 

Para 

	funcao exibirHospedes()
	{

 

Adendo: não confundir o que foi postado lá no outro tópico. Veja:

Em 06/05/2023 às 17:50, Simon Viegas disse:
	funcao exibirHospede()
	{
		escreva("*** DADOS DE HÓSPEDE ***\n")
		escreva("\n Nome   : ", nome) 
		escreva("\n CPF    : ", cpf) 
		escreva("\n Diárias: ", qtdDiarias)
	}

 

Lá estávamos trabalhando com variáveis simples. Tratando a demanda como se fosse um único cadastro. Veja que não tem vetor ainda! (Analise o contexto do código lá.)

 

Outro detalhe que esquecemos de exibir o índice. É o que está sendo exigido lá na parte 3.

image.png

 

Algo como:

	funcao exibirHospedes()
	{
		para (inteiro posicaoVetor = 0; posicaoVetor < i; posicaoVetor++) {
			escreva("*** DADOS DO HÓSPEDE ***\n")
			escreva("\n Índice: ", posicaoVetor) 
			escreva("\n Nome: ", nomes[posicaoVetor]) 
			escreva("\n CPF: ", cpfs[posicaoVetor]) 
			escreva("\n Quantidade de Dias: ", qtdDiarias[posicaoVetor], "\n")
		}
	}
	

 

 

 

 

 

 

Seguimos com a leitura do índice que consta lá:

 

Em 13/07/2023 às 20:23, Ramon2023n disse:
		escreva("Índice do Hospede? ")
		leia(nomes[i])

 

Índice e nome são coisas distintas.

 

Que tal?:

		escreva("Índice do Hospede? ")
		leia(indiceHospede)

 

 

 

 

Daí vai seguindo o que está determinado no enunciado.

 

image.png

 

 

Deixe essa parte em vermelho para depois. Faça como sempre fosse digitado valores ideais, ou seja, que não validariam esses se. Depois de testar direitinha, para para inserir essas condicionais.

 

Segue esboço:

	funcao atribuirHospede() {
		inteiro indiceHospede, numeroQuarto
		
		exibirHospedes()
		escreva("Índice do Hospede? ")
		leia(indiceHospede)
		escreva("Número do Quarto? ")
		leia(numeroQuarto)
		
		


		}
	}

 

Termine de implementar a função para atribuir o nome do usuário lá no vetor dos quartos.

 

No caso, o nome dele estará na posição correspondente. Algo como:

nomes[indiceHospede]

 

Joga lá no vetor de quartos.

 

 

Tente dar continuidade. Caso tenha dúvidas, poste o código completo e qual dúvida tem.

Link para o comentário
Compartilhar em outros sites

@Simon Viegas Entendi , só que to achando que o meu vetor na função exibir quartos deve está errado! pois para poder armazenar na variável quartos o nome do hospede, na hora que aperto exibir hospedes ele reseta!

 

quartos.png.b41e47956892eae9bb7bcd10a73c569f.png

@Simon Viegas Não sei se está no caminho certo! jogar no vetor de quartos.

tentando1.png

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

 

Pelo visto não teve respostas... e desculpe pela demora...

 

Então, poste o código completo e em forma de texto...

 

 

 

Sobre:

Em 15/07/2023 às 22:01, Ramon2023n disse:

image.png

 

Está invertido. O vetor de quartos que recebe o nome do hóspede. Só apague essa linha! (Vai usar a outra de baixo.)

 

 

Sobre:

Em 15/07/2023 às 22:01, Ramon2023n disse:

image.png

 

Conforme o item 4, você vai exibir o nome do hóspede, e não "Ocupado". Cada posição do vetor quarto já começa com o texto "LIVRE". Daí, ao atribuir um hóspede, o programa deve jogar o nome do cliente na posição desejada, ou seja, em vez de "Ocupado", use nomes[indiceHospede]. Abaixo detalhes:

 

image.png

 

O vetor quartos vai armazenar ou "LIVRE" ou "<O nome do hóspede>", daí simplesmente vai exibir o que está lá no vetor. Ao iniciar o programa, todos os quartos devem ter o texto "LIVRE". A medida que for cadastrando um hóspede no quarto, esse texto vai ser substituído pelo nome cliente.

 

Lembrar de postar o código completo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

 

@Simon Viegas, Um problema que estou tendo é que sempre que eu atribuo o hospede para o quarto, quando chamo a função exibir quartos() por causa do laço "para" , todos os quartos ficam "Livre".

 

meu problema está mais nessa parte! segue meu código

 

programa {

    inteiro opcao, i = 0
    //DADOS DOS HÓSPEDES
    cadeia nomes  [10]  
    cadeia cpfs  [10]
    inteiro qtdDiarias  [10]
    cadeia quartos[10]  
    real  valorgasto[10] 
    real totalDespesas = 0.0
     inteiro  hospedeCadastrado = 0
     cadeia aux
     inteiro numquarto = 4
     inteiro auxquarto = 0
        caractere ocupquarto = ' '
        
    
     
     
    
    
    funcao cadastrarHospede()
    {
        
        
        
        inteiro auxInt = 0
        
        
            escreva("*** CADASTRO DE HÓSPEDE ***\n\n")
            
                
        escreva(" Nome   : ") leia(nomes[i])     
             
        escreva(" CPF    : ") leia(cpfs[i])
        
        escreva(" Diárias: ") leia(qtdDiarias[i]) 
        
             
        
            escreva("Os dados estão corretos? : ")
          leia(aux)
            se(aux =="sim"){
              
              hospedeCadastrado++    
              valorgasto[i] = 100*qtdDiarias[i]
               escreva("Valor Gasto: ", valorgasto[i],"R$","\n")
               i++
            }senao{ escreva("fim")
            hospedeCadastrado--
            i--
            inicio()
              
            }enquanto(hospedeCadastrado==9){
            escreva("cadastrosLotados")
            inicio()
            
            
            }
    
    }
    
    
    
    funcao exibirHospedes()
    {
        para (inteiro posicaoVetor = 0; posicaoVetor < i; posicaoVetor++) {
            escreva("*** DADOS DO HÓSPEDE ***\n")
            escreva("\n Índice: ", posicaoVetor) 
            escreva("\n Nome: ", nomes[posicaoVetor]) 
            escreva("\n CPF: ", cpfs[posicaoVetor]) 
            escreva("\n Quantidade de Dias: ", qtdDiarias[posicaoVetor], "\n")
        }
    }
    funcao exibirQuartos(){
    
      para(inteiro i = 0; i<10; i++){
          
             quartos[i] = "Livre"

             escreva("Quarto ",i+1," - ", quartos[i],"\n")
                 
            
            
            
            
            
           
            
            
            
      }    
        
            
        

        
    }
    funcao atribuirHospede() {
        inteiro indiceHospede, numeroQuarto 
        
        exibirHospedes()
        escreva("Índice do Hospede? ")
        leia(indiceHospede)
        escreva("Número do Quarto? ")
        leia(numeroQuarto)
          
        
        para(inteiro i = 0; i<10; i++){
          
            

             escreva("Quarto ",numeroQuarto," - ",nomes[indiceHospede],"\n")
        
        }
          
        }funcao ReservarLazer(){
            
            escreva("Qual opção irá escolher")
            
            
                cadeia continuar
               inteiro indiceHospede = 0
               caractere opcao 
               cadeia nome
            
            escolha(opcao){

                caso 'A':
                escreva("Qual o seu indice ? ")
                leia(indiceHospede)
                escreva("Qual o seu nome? ")
                leia(nome)
                
                escreva("Obrigado",nome," a academia está reservada e o valor foi adcionado a sua conta total")
                
                    escreva("Quer continuar?")
                    (continuar)
                
            }enquanto(continuar == "sim")
        {
        

                   }funcao liberarQuarto(cadeia nomeLiberado)               {
            

para(inteiro i = 0; i < 10; i++)
{
se(nomeLiberado == quartos[i])
{
quartos[i] = "livre"
}
}

        }

    
    funcao inicio()
    {
        faca {
            escreva("\n Digite \n 1 – Cadastrar Hospedes \n 2 – Exibir Hospedes Cadastrados\n 3 – Exibir Quartos\n 4 – Atribuir Hospede a um quarto\n 5 – Reservar Área de Lazer\n 6 – Calcular Total a Pagar\n 0 – Sair\n ")
            leia(opcao)
        
                 escolha (opcao) {
            
                 caso 1:
                     
                    cadastrarHospede()                                
                    pare
                caso 2: //Exibir Hospedes Cadastrados
                    exibirHospedes()
                    pare
                caso 3: //Exibir Quartos
                    exibirQuartos()
                    pare
                caso 4: //Atribuir Hospede a um quarto
                    atribuirHospede()
    
                      
                    pare
                caso 5: //Reservar Área de Lazer
                    ReservarLazer()
                    pare
                caso 6: //Calcular Total a Pagar
                    escreva("\nOPCAO 6")
                    pare
                caso 0: //Sair
                    escreva("\nOPCAO 0")
                    escreva("\n----Volte sempre----")
                    pare    
                     
            } //opcao  
        } enquanto (opcao != 0)
          
    }
}

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Em 20/07/2023 às 20:11, Ramon2023n disse:

@Simon Viegas, um problema que estou tendo é que sempre que eu atribuo o hospede para o quarto, quando chamo a função exibir quartos() por causa do laço "para" , todos os quartos ficam "Livre".

 

Perfeito. O detalhe está aqui:

 

image.png

Ou seja: só precisa inicializar uma vez... no início do programa. Algo como:

 

	funcao inicio()
	{
		inicializarQuartos()
		
		faca {
			escreva("\n Digite \n 1 – Cadastrar Hospedes \n 2 – Exibir Hospedes Cadastrados\n 3 – Exibir Quartos\n 4 – Atribuir Hospede a um quarto\n 5 – Reservar Área de Lazer\n 6 – Calcular Total a Pagar\n 0 – Sair\n ")
			
			leia(opcao)
			escolha (opcao) {
				caso 1:

 

A função deve se limitar ao seu escopo, ou seja, a função exibir deve servir apenas para exibir... Zerar os quartos é algo externo.

Link para o comentário
Compartilhar em outros sites

@Simon Viegas Boa noite! consegui atribuir o hospede! agora minha dúvida é sobre a reserva da área de lazer , tentei fazer porém o valor total da diaria e da entrada não é somado com o valor da reserva da área de lazer , talvez porque as variáveis como indice do hospede e valortotal gasto não estejam no escopo global!

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
17 horas atrás, Ramon2023n disse:

@Simon Viegas Boa noite! consegui atribuir o hospede! agora minha dúvida é sobre a reserva da área de lazer , tentei fazer porém o valor total da diaria e da entrada não é somado com o valor da reserva da área de lazer , talvez porque as variáveis como indice do hospede e valortotal gasto não estejam no escopo global!

 

Com apenas essas informações fica mei difícil tentar ajudar... Dá uma arrumada na estrutura do teu código. Remove esse excesso de linhas em branco e faz a indentação. Após, posta o código completo e em qual parte está com dúvidas. 

 

 

 

 

Sobre especificamente a "área de lazer"..

image.png

 

 

Basicamente você vai encontrar os dados do hóspede pelo nome, e vai somar o valor do item lá no campo que tem o "valor total das despesas do hotel", que consta na parte 2.

 

image.png

 

 

Provavelmente algo como:

valorgasto[indiceHospede] = valorgasto[indiceHospede] + valorDoItem  

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

 

22 horas atrás, Ramon2023n disse:

Resolvi a parte da área de lazer

 

Cadê?

 

 

 

 

22 horas atrás, Ramon2023n disse:

 

Só tá faltando conseguir liberar o quarto! 

 

Tem uma função para liberar já está pronta lá na parte 7. Qual a dúvida?

 

 

 

 

Adendo: e sobre o que sugeri?

 

Em 26/07/2023 às 16:01, Simon Viegas disse:

Dá uma arrumada na estrutura do teu código. Remove esse excesso de linhas em branco e faz a indentação. Após, posta o código completo e em qual parte está com dúvidas. 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!