Ir ao conteúdo
  • Cadastre-se
rmatsubara88

VisualG execício: nome, idade, sexo, reajuste salarial

Recommended Posts

Boa noite galera, sou novo no grupo, e gostaria de saber se alguem saberia informar como fazer este procedimento no Visualg?

 

Construa um Algoritmo que solicite o nome, o sexo, o salário e a idade da pessoa. Em seguida, reajuste o seu salário de acordo com a regra abaixo:
- Homem com idade entre 18 a 30 anos com salário entre 800,00 a 1.120,00, reajuste de 7%. Valide os dados de entrada (quando possível)
- Homem com idade entre 31 a 50 anos e qualquer salário, reajuste de 9%
- Homem com idade acima de 50 anos e qualquer salário, reajuste de 11,5%
- Mulher com idade entre 18 a 30 anos e salário entre 800 a 1.050,00, reajuste de 7,5%
- Mulher com idade acima de 30 anos e qualquer salário, reajuste de 11,6%

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça as linhas para entrada manual e use comandos como "caso" ou "se" para escolher o sexo, uma sub função para escolher as idades e depois faça a conta do reajuste salário*porcentagem do bloco.

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 horas atrás, Lourran disse:

Faça as linhas para entrada manual e use comandos como "caso" ou "se" para escolher o sexo, uma sub função para escolher as idades e depois faça a conta do reajuste salário*porcentagem do bloco.

Lourran,

 

Fiz desse método, porém não deu certo ao executar.

var
   nome, sexo: caractere
   idade, x: inteiro
   salario: real
   reajuste: real

inicio
   escreva("Digite o nome do funcionário: ")
   leia(nome)
   x <- 1
   enquanto x = 1 faca
      escreva("Digite o sexo (F/M): ")
      leia(sexo)
      se sexo <> "F" então
         se sexo <> "M" então
            x <- 1
         senao
            x <- 0
         fimse
      senao
         x <- 0
      fimse
   fimenquanto
   escreva("Digite a idade: ")
   leia(idade)
   escreva("Digite o salário: ")
   leia(salario)
   se sexo = "M" então
      se idade <= 30 então
         salario <- salario*0.7/10+salario
      senao
         se idade >= 50 então
            salario <- salario*0.9/10+salario
         senao
            se idade > 50
               salario <- salario*0.115/10+salario
            senao
               se sexo = "F" então
                  se idade <= 30 então
                     salario <- salario*0.0075/10+salario
                  senao
                     se idade >= 30
                        salario <- salario*0.116/10+salario
                     fimse
                     limpatela
                     escreval(">>> Nome: ",nome)
                     escreval(">>> Salário: ",salario)
fimalgoritmo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente esse, diminui um pouco as linhas.

Ah, tem algum problema ser usado o "Caso" ?

É uma função mais fácil de ser trabalha.

Algoritmo "Aumento_Salarial"
var
   nome, sexo: caractere
   idade: inteiro
   salario: real
   reajuste: real
   x: logico //A variavel x deve ser usada como logico//

inicio
   escreva("Digite o nome do funcionário: ")
   leia(nome)
   x <- Verdadeiro
   enquanto x = verdadeiro faca
      escreva("Digite o sexo (F/M): ")
      leia(sexo)
      se (sexo <> "F") e (sexo <> "M") então
         x <- verdadeiro
      senao
         x <- falso
      fimse
   fimenquanto
   escreva("Digite a idade: ")
   leia(idade)
   escreva("Digite o salário: ")
   leia(salario)
   //----------------------------------------------------//

caso(sexo = "M") E (idade <=30)
   salario <- salario*0.7/10+salario
caso(sexo = "M") E (idade >= 50)
   salario <- salario*0.9/10+salario
caso(sexo = "M") E (idade > 50)
   salario <- salario*0.115/10+salario

caso(sexo = "F") E (idade <= 30)
   salario <- salario*0.0075/10+salario
caso(sexo = "F") E (idade >= 30)
   salario <- salario*0.116/10+salario

   limpatela
   escreval(">>> Nome: ",nome)
   escreval(">>> Salário: ",salario)

Fimalgoritmo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 horas atrás, Lourran disse:

Tente esse, diminui um pouco as linhas.

Ah, tem algum problema ser usado o "Caso" ?

É uma função mais fácil de ser trabalha.


Algoritmo "Aumento_Salarial"
var
   nome, sexo: caractere
   idade: inteiro
   salario: real
   reajuste: real
   x: logico //A variavel x deve ser usada como logico//

inicio


   escreva("Digite o nome do funcionário: ")
   leia(nome)
   x <- Verdadeiro
   enquanto x = verdadeiro faca
      escreva("Digite o sexo (F/M): ")
      leia(sexo)
      se (sexo <> "F") e (sexo <> "M") então
         x <- verdadeiro
      senao
         x <- falso
      fimse
   fimenquanto
   escreva("Digite a idade: ")
   leia(idade)
   escreva("Digite o salário: ")
   leia(salario)
   //----------------------------------------------------//


caso(sexo = "M") E (idade <=30)
   salario <- salario*0.7/10+salario
caso(sexo = "M") E (idade >= 50)
   salario <- salario*0.9/10+salario
caso(sexo = "M") E (idade > 50)
   salario <- salario*0.115/10+salario

caso(sexo = "F") E (idade <= 30)
   salario <- salario*0.0075/10+salario
caso(sexo = "F") E (idade >= 30)
   salario <- salario*0.116/10+salario

   limpatela
   escreval(">>> Nome: ",nome)
   escreval(">>> Salário: ",salario)

Fimalgoritmo

 

Lourran,

 

Deu certo cara, muito obrigado.

  • Confuso 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos.

 

@rmatsubara88, sobre:

 

8 horas atrás, rmatsubara88 disse:

Deu certo cara, muito obrigado.

Testei aqui e não deu certo. :(

 

Tem alguns pontos que precisam ser verificados.

 

 

Vamos lá:

 

1) SINTAXE DO VISUALG

Inicialmente vamos analisar esse trecho:

9 horas atrás, Lourran disse:

caso(sexo = "M") E (idade <=30)
   salario <- salario*0.7/10+salario
caso(sexo = "M") E (idade >= 50)
   salario <- salario*0.9/10+salario
caso(sexo = "M") E (idade > 50)
   salario <- salario*0.115/10+salario

caso(sexo = "F") E (idade <= 30)
   salario <- salario*0.0075/10+salario
caso(sexo = "F") E (idade >= 30)
   salario <- salario*0.116/10+salario

 

Até onde consta, essa sintaxe "não existe" no Visualg, ou seja, apesar de não dá erro de compilação, está errada (não dá erro pois os Visualg tem algumas limitações/bugs). De qualquer sorte, o comando case na verdade pertence a estrutura escolha. Dê uma olhadinha aqui para ver como funcionaria.

 

Fazendo um ajuste para estrutura se, ficaria algo assim:

   se (sexo = "M") E (idade <=30) ENTÃO
      salario <- salario*0.7/10+salario
   fimse
   se (sexo = "M") E (idade >= 50) ENTÃO
      salario <- salario*0.9/10+salario
   fimse
   se (sexo = "M") E (idade > 50) ENTÃO
      salario <- salario*0.115/10+salario
   fimse
   se (sexo = "F") E (idade <= 30) ENTÃO
      salario <- salario*0.0075/10+salario
   fimse
   se (sexo = "F") E (idade >= 30) ENTÃO
      salario <- salario*0.116/10+salario
   fimse

 

Pronto.. Teoricamente isso corrigiria a questão da sintaxe, ou seja, respeitaria as regras da linguagem.

O código ficaria mais ou menos assim:

Algoritmo "Aumento_Salarial"
var
   nome, sexo: caractere
   idade: inteiro
   salario: real
   reajuste: real
   x: logico //A variavel x deve ser usada como logico//

inicio
   escreva("Digite o nome do funcionário: ")
   leia(nome)
   x <- Verdadeiro
   enquanto x = verdadeiro faca
      escreva("Digite o sexo (F/M): ")
      leia(sexo)
      se (sexo <> "F") e (sexo <> "M") ENTÃO
         x <- verdadeiro
      senao
         x <- falso
      fimse
   fimenquanto
   escreva("Digite a idade: ")
   leia(idade)
   escreva("Digite o salário: ")
   leia(salario)
   //----------------------------------------------------//

   //caso(sexo = "M") E (idade <=30)
   //   salario <- salario*0.7/10+salario
   //caso(sexo = "M") E (idade >= 50)
   //   salario <- salario*0.9/10+salario
   //caso(sexo = "M") E (idade > 50)
   //   salario <- salario*0.115/10+salario
   //
   //caso(sexo = "F") E (idade <= 30)
   //   salario <- salario*0.0075/10+salario
   //caso(sexo = "F") E (idade >= 30)
   //   salario <- salario*0.116/10+salario

   se (sexo = "M") E (idade <=30) ENTÃO
      salario <- salario*0.7/10+salario
   fimse
   se (sexo = "M") E (idade >= 50) ENTÃO
      salario <- salario*0.9/10+salario
   fimse
   se (sexo = "M") E (idade > 50) ENTÃO
      salario <- salario*0.115/10+salario
   fimse
   se (sexo = "F") E (idade <= 30) ENTÃO
      salario <- salario*0.0075/10+salario
   fimse
   se (sexo = "F") E (idade >= 30) ENTÃO
      salario <- salario*0.116/10+salario
   fimse

   limpatela
   escreval(">>> Nome: ",nome)
   escreval(">>> Salário: ",salario)
Fimalgoritmo

 

Se for incluir o senao, o trecho poderia ficar assim:

   se (sexo = "M") E (idade <=30) ENTÃO
      salario <- salario*0.7/10+salario
   senao
      se (sexo = "M") E (idade >= 50) ENTÃO
         salario <- salario*0.9/10+salario
      senao
         se (sexo = "M") E (idade > 50) ENTÃO
            salario <- salario*0.115/10+salario
         senao
            se (sexo = "F") E (idade <= 30) ENTÃO
               salario <- salario*0.0075/10+salario
            senao
               se (sexo = "F") E (idade >= 30) ENTÃO
                  salario <- salario*0.116/10+salario
               fimse
            fimse
         fimse
      fimse
   fimse

 

 

 

2) LÓGICA DO ENUNCIADO

Então, ao desenvolver um algoritmo, é necessário que siga rigorosamente* o que está se pedindo, ou seja, quando as "regras do jogo" são estipuladas, o desenvolvedor tem que segui-las, caso contrário, estaria na melhor das hipóteses "fazendo certo algo errado"... mas o que se deseja e é o "o certo feito de modo certo". Entende?

 

Enunciado diz.

9 horas atrás, rmatsubara88 disse:

Construa um Algoritmo que solicite o nome, o sexo, o salário e a idade da pessoa. Em seguida, reajuste o seu salário de acordo com a regra abaixo:

- Homem com idade entre 18 a 30 anos com salário entre 800,00 a 1.120,00, reajuste de 7%. Valide os dados de entrada (quando possível)
- Homem com idade entre 31 a 50 anos e qualquer salário, reajuste de 9%
- Homem com idade acima de 50 anos e qualquer salário, reajuste de 11,5%
- Mulher com idade entre 18 a 30 anos e salário entre 800 a 1.050,00, reajuste de 7,5%
- Mulher com idade acima de 30 anos e qualquer salário, reajuste de 11,6%

 

Para o primeiro item, existem 5 condições: "Sexo do funcionário"; Limite inferior da idade" e "Limite superior da idade"; "Limite inferior do salário" e "Limite superior do salário".

 

Para o segundo item, existem 3: "Sexo do funcionário"; e "Limite inferior da idade" e "Limite superior da idade"

 

Etc.

 

O seu código não está tratando esses limites. (ou seja, estava falhando tanto na sintaxe do case, tanto nas sentenças de cada uma delas)

 

 

 

3) SUGESTÕES DE IMPLEMENTAÇÃO

 

Ou você implementa cada se/senao individualmente, como estava fazendo.. só que se atentando a cada "regra" deles.. com citado no item 2 acima. Sugiro inicialmente fazer assim.

 

Ou  pode selecionar inicialmente os Homens e Mulheres, ou seja, primeiro verifica se é homem ou se é mulher, ai depois verifica as outras características. Algo assim:

 

Ex.:

   se (sexo="F") ENTÃO
      //aqui tudo relacionado as mulheres
      
      
      
      
      
      
      
   senao
        se (sexo="M") ENTÃO //obs.: tecnicamente não precisa desse se, já que
                            //seria M. Mas também é válido criar uma "proteção"
                            // a mais
           //aqui tudo relacionado ao homens
           
           
           
           
           
           
        fimse
   fimse

Daí, como já sabe o sexo, basta verificar a idade e, caso necessário, também o salário.

 

 

***

 

No aguardo.

  • Curtir 1

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

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

×