Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Vinezof2

VisualG Variáveis sendo lidas duas vezes

Recommended Posts

Olá, estou fazendo um curso de informática e neste curso foi proposta uma atividade de desenvolver um algoritmo para dar bônus a 4 funcionários dependendo dos dependentes desse funcionário, enfim, fiz o programa e ele funcionou o problema é que o cônjuge pode ser um dependente então eu fiz uma condição para que se o funcionário fosse solteiro ele não pudesse receber o bônus do cônjuge, mas sempre que o funcionário é solteiro a idade dos dependentes é lida duas vezes, não altera o fluxo do programa simplesmente muda o valor da variável, mas considero isso um erro e li e re-li o algoritmo e não consegui resolver isso.

 

Parte do algoritmo que contém o erro:

enquanto (quant_dependentes>contador) faca
      repita
         escreva ("Tipo do Dependente  (C= Cônjuge | X= Outros): ")
         leia (tipo_dependente)
      ate (tipo_dependente="C") ou (tipo_dependente="X")
      se (tipo_dependente="C") e (estado_civil="C") então
         enquanto (contador_conjuge<1) faca
            escreva ("Idade do Cônjuge: ")
            leia (idade_conjuge)
            bonus_funcionario1 := bonus_funcionario1 + 20
            contador_conjuge := contador_conjuge + 1
            contador := contador + 1
         fimenquanto
      senao
         repita
            escreva ("Idade do Dependente: ")
            leia (idade_dependente)
         ate (idade_dependente>0)
         contador := contador + 1
         se (idade_dependente<=17) então
            bonus_funcionario1 := bonus_funcionario1 + 15
         fimse
      fimse
   fimenquanto

  

Algoritmo inteiro:

algoritmo "Bônus Funcionário"
// Função : Dar bônus aos funcionários
// Autor :  João Vitor de A. Vinezof
// Data : 10/11/2017
// Seção de Declarações 
var
   funcionario1, funcionario2, funcionario3, funcionario4: literal
   idade_conjuge, dependente, tipo_dependente, idade_dependente, estado_civil: literal
   bonus_funcionario1, bonus_funcionario2, bonus_funcionario3, bonus_funcionario4: inteiro
   contador, contador_conjuge, quant_dependentes: inteiro
   
inicio
// Seção de Comandos
//Definindo os valores dos acumuladores e contadores
   bonus_funcionario1 := 40
   bonus_funcionario2 := 40
   bonus_funcionario3 := 40
   bonus_funcionario4 := 40
   contador := 0
   contador_conjuge := 0
//Funcionário 01
   escreval ("Dados do funcionário 1:")
   escreva ("Nome: ")
   leia (funcionario1)
   repita
      escreva ("Estado Civil  (C= Casado | S= Solteiro): ")
      leia (estado_civil)
   ate (estado_civil="C") ou (estado_civil="S")
   repita
      escreva ("Possuí Dependentes?  (N= Não | S= Sim): ")
      leia (dependente)
   ate (dependente="N") ou (dependente="S")
   se (dependente="S") então
      repita
         escreva ("Quantos? ")
         leia (quant_dependentes)
      ate (quant_dependentes>0)
   fimse
   enquanto (quant_dependentes>contador) faca
      repita
         escreva ("Tipo do Dependente  (C= Cônjuge | X= Outros): ")
         leia (tipo_dependente)
      ate (tipo_dependente="C") ou (tipo_dependente="X")
      se (tipo_dependente="C") e (estado_civil="C") então
         enquanto (contador_conjuge<1) faca
            escreva ("Idade do Cônjuge: ")
            leia (idade_conjuge)
            bonus_funcionario1 := bonus_funcionario1 + 20
            contador_conjuge := contador_conjuge + 1
            contador := contador + 1
         fimenquanto
      senao
         repita
            escreva ("Idade do Dependente: ")
            leia (idade_dependente)
         ate (idade_dependente>0)
         contador := contador + 1
         se (idade_dependente<=17) então
            bonus_funcionario1 := bonus_funcionario1 + 15
         fimse
      fimse
   fimenquanto
   escreval
   contador := 0
   contador_conjuge := 0
   quant_dependentes := 0
//Funcionário 02
   escreval ("Dados do Funcionário 2:")
   escreva ("Nome: ")
   leia (funcionario2)
   repita
      escreva ("Estado Civil  (C= Casado | S= Solteiro): ")
      leia (estado_civil)
   ate (estado_civil="C") ou (estado_civil="S")
   repita
      escreva ("Possuí Dependentes?  (N= Não | S= Sim): ")
      leia (dependente)
   ate (dependente="N") ou (dependente="S")
   se (dependente="S") então
      repita
         escreval ("Quantos? ")
         leia (quant_dependentes)
      ate (quant_dependentes>0)
   fimse
   enquanto (quant_dependentes>contador) faca
      repita
         escreva ("Tipo do dependente (C= Cônjuge | X= Outros): ")
         leia (tipo_dependente)
      ate (tipo_dependente="C") ou (tipo_dependente="X")
      se (tipo_dependente="C") e (estado_civil="C") então
         enquanto (contador_conjuge<1) faca
            repita
               escreva ("Idade do Cônjuge: ")
               leia (idade_conjuge)
            ate (idade_conjuge>0)
            bonus_funcionario2 := bonus_funcionario + 20
            contador_conjuge := contador_conjuge + 1
            contador := contador + 1
         fimenquanto
      senao
         repita
            escreva ("Idade do Dependente: ")
            leia (idade_dependente)
         ate (idade_dependente>0)
         contador := contador + 1
         se (idade_dependente<=17) então
            bonus_funcionario2 := bonus_funcionario2 + 15
         fimse
      fimse
   fimenquanto
   contador := 0
   contador_conjuge := 0
   quant_dependentes := 0
   escreval
//Funcionário 03
   escreval ("Dados do Funcionário 3: ")
   escreva ("Nome: ")
   leia (funcionario3)
   repita
      escreva ("Estado Civil  (C= Cônjuge | S= Solteiro): ")
      leia (estado_civil)
   ate (estado_civil="C") ou (estado_civil="S")
   repita
      escreva ("Possuí Dependentes?  (N= Não | S= Sim): ")
      leia (dependente)
   ate (dependente="N") ou (dependente="S")
   se (dependente="S") então
      repita
         escreva ("Quantos? ")
         leia (quant_dependentes)
      ate (quant_dependentes>0)
   fimse
   enquanto (quant_dependentes>contador) faca
      repita
         escreva ("Tipo do Dependente  (C= Cônjuge | X= Outros): ")
         leia (tipo_dependente)
      ate (tipo_dependente="C") ou (tipo_dependente="X")
      se (tipo_dependente="C") e (estado_civil="C") então
         enquanto (contador_conjuge<1) faca
            repita
               escreva ("Idade do Cônjuge: ")
               leia (idade_conjuge)
            ate (idade_conjuge>0)
            bonus_funcionario3 := bonus_funcionario3 + 20
            contador_conjuge := contador_conjuge + 1
            contador := contador + 1
         fimenquanto
      senao
         repita
            escreva ("Idade do Dependente: ")
            leia (idade_dependente)
         ate (idade_dependente>0)
         contador := contador + 1
         se (idade_dependente<=17) então
            bonus_funcionario3 := bonus_funcionario3 + 15
         fimse
      fimse
   fimenquanto
   contador := 0
   contador_conjuge := 0
   quant_dependentes := 0
   escreval
//Funcionário 04
   escreval ("Dados do Funcionário 4:")
   escreva ("Nome: ")
   leia (funcionario4)
   repita
      escreva ("Estado Civil  (C= Casado | S= Solteiro): ")
      leia (estado_civil)
   ate (estado_civil="C") ou (estado_civil="S")
   repita
      escreva ("Possuí Dependentes?  (N= Não | S= Sim): ")
      leia (dependente)
   ate (dependente="N") ou (dependente="S")
   se (dependente="S") então
      repita
         escreva ("Quantos? ")
         leia (quant_dependentes)
      ate (quant_dependentes>0)
   fimse
   enquanto (quant_dependentes>contador) faca
      repita
         escreva ("Tipo do Dependente  (C= Cônjuge | X= Outros): ")
         leia (tipo_dependente)
      ate (tipo_dependente="C") ou (tipo_dependente="X")
      se (tipo_dependente="C") e (estado_civil="C") então
         enquanto (contador_conjuge<1) faca
            repita
               escreva ("Idade do Cônjuge: ")
               leia (idade_conjuge)
            ate (idade_conjuge>0)
            bonus_funcionario4 := bonus_funcionario4 + 20
            contador_conjuge := contador_conjuge + 1
            contador := contador + 1
         fimenquanto
      senao
         repita
            escreva ("Idade do Dependente: ")
            leia (idade_dependente)
         ate (idade_dependente>0)
         contador := contador + 1
         se (idade_dependente<=17) então
            bonus_funcionario4 := bonus_funcionario4 + 15
         fimse
      fimse
   fimenquanto
   limpatela
   escreval (funcionario1,": Benefício de R$",bonus_funcionario1)
   escreval (funcionario2,": Benefício de: R$",bonus_funcionario2)
   escreval (funcionario3,": Benefício de: R$",bonus_funcionario3)
   escreval (funcionario4,": Benefício de: R$",bonus_funcionario4)
fimalgoritmo

 

Desde já, Obrigado.

Editado por DiF
Remover uma citação inexistênte
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Vinezof2    ele está lendo essa variável dependendo de quantos dependentes tem ,  se quando ele perguntar quantos dependentes, você  colocar 2 então ele vai ler duas vezes pois serão dois dependentes, mas se você colocar que é um dependente então ele não repetirá e segue com o programa .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×