Ir ao conteúdo
  • Cadastre-se

VisualG Calcular valor da hora trabalhada


Posts recomendados

  • Moderador

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

Link para o comentário
Compartilhar em outros sites

3 horas atrás, Simon Viegas disse:

Olá @Igor Emanoel Junqueira.
 

 

 

obs.: ao postar um código, clique antes no botão <>, e cole o código.

 

No aguardo.

Algoritmo "FolhaDePagamento"
// Descrição   : Programa para calcular folha de pagamento
// Autor(a)    : Igor Emanoel .G. Junqueira
// Data atual  : 04/09/2017
Var
cod: inteiro   //codigo
nhoratrab: inteiro // número de horas trabalhadas
turno: caracter
catg: caracter //categoria
salam: real  // salario minimo
salain: real  // salario inicial
i: inteiro //i do comando de repetição
sl:real // variavel para receber salario minimo
sli:real //  variavel para receber salario inicial
slf: real // salario final
Inicio
      para i <-1 ate 400 faca
           escreval ("Informe seu codigo:")
           leia (cod)
           escreval ("Informe o numero de horas trabalhadas:")
           leia (nhoratrab)
           Escreval ("Digite M para Matutino e V para Vespertino N para Noturno")
           Escreval ("Informe seu Turno:")
           leia (turno)
           Escreval ("Digite G para gerente e F para funcionario")
           Escreval ("Informe sua categoria:")
           leia (catg)
           Escreval ("Informe o Salario Minimo:")
           leia (salam)
           Escolha (turno) e (catg)
                        Caso "G" e "N"
                        sl <- salam * 0.06
                        Escreva  (sl)
                                 caso "G" e "M" ou "V"
                                      sl <- salam * 0.04
                                    caso "F" e "N"
                                         sl <- salam * 0.02
                                       caso "F" e "M" ou "V"
                                            sl <- salam * 0.01
                                          casocontrario // não consegui fazer o caso contrario
                                            Escreva ("Opção Invalida")
                        fimescolha
           Escreval ("Informe seu salario Inicial:")
           leia (salain)
                se (salain<=800.00)então
                   sli <- salain * 0.25
                fimse
                     se (salain>800.00) ou (salain<=1.200)então
                        sli <- salain * 0.20
                     fimse
                          se (salain>1.200)então
                             sli <- salain * 0.15
                          fimse
                slf <- salain + sli
      fimpara
                          
           Escreval (cod, nhoratrab, sl, salain , sli , slf)
Fimalgoritmo

Ficou mais ou menos assim porque fiz no caderno ai passei para o VisualG mais não precisa rodar no VISUALG tem que entregar no papel mesmo, só me fala se tem algo errado e se ta certo esses metodos que usei

Obrigado!

Link para o comentário
Compartilhar em outros sites

@Simon Viegas dei mais uma mexida no algoritmo ficou assim

Algoritmo "FolhaDePagamento"
// Descrição   : Programa para calcular folha de pagamento
// Autor(a)    : Igor Emanoel .G. Junqueira
// Data atual  : 04/09/2017
Var
cod: inteiro   //codigo
nhoratrab: inteiro // número de horas trabalhadas
turno: caracter
catg: caracter //categoria
salam: real  // salario minimo
salain: real  // salario inicial
i: inteiro //i do comando de repetição
sl:real // variavel para receber salario minimo
sli:real //  variavel para receber salario inicial
slf: real // salario final
Inicio
      para i <-1 ate 400 faca
           escreval ("Informe seu codigo:")
           leia (cod)
           escreval ("Informe o numero de horas trabalhadas:")
           leia (nhoratrab)
           Escreval ("Digite G para gerente e F para funcionario")
           Escreval ("Informe sua categoria:")
           leia (catg)
           Escreval ("Digite M para Matutino e V para Vespertino N para Noturno")
           Escreval ("Informe seu Turno:")
           leia (turno)
           Escreval ("Informe o Salario Minimo:")
           leia (salam)
           Escolha (turno) e (catg)
                        Caso "G" e "N"
                        sl <- salam * 0.06
                        Escreva  (sl)
                                 caso "G" e "M" ou "V"
                                      sl <- salam * 0.04
                                    caso "F" e "N"
                                         sl <- salam * 0.02
                                       caso "F" e "M" ou "V"
                                            sl <- salam * 0.01
                        fimescolha
           Escreval ("Informe seu salario Inicial:")
           leia (salain)
                se (salain<=800.00)então
                   sli <- salain * 0.25
                fimse
                     se (salain>800.00) ou (salain<=1.200)então
                        sli <- salain * 0.20
                     fimse
                          se (salain>1.200)então
                             sli <- salain * 0.15
                          fimse
                slf <- salain + sli
           Escreval ("Codigo:",cod," Horas Trabalhadas:", nhoratrab)
           Escreval ("Valor da Hora Trabalhada:",sl," Salario Inicial:", salain)
           Escreval ("Auxilio Alimentação:", sli ," Salario Final:", slf)
      fimpara
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Igor Emanoel Junqueira. Desculpe pela demora...

 

Vamos lá:
 

1) NOMENCLATURAS DE VARIÁVEIS

Sugiro utilizar nomenclaturas mais sugestíveis... ex.:

var
   codigo      :inteiro  //codigo do funcionário
   horas_trab  :inteiro  //número de horas trabalhadas
   turno       :caracter //turno de trabalho
   categoria   :caracter //categoria do funcionário
   sal_minimo  :real     //salario minimo
   
   valor_hora  :real     //valor da hora trabalhada
   sal_inicial :real     //valor salario inicial
   aux_aliment :real     //valor do auxílio alimentação
   sal_final   :real     //valor do salário final

   i: inteiro     //i do comando de repetição

 

 

2) ESTRUTURAS DE SELEÇÃO

Ou "estrutura condicional'... no seu enunciando ele sugere utilizar os dois... o "se..então..senão" e "escolha..caso".

 

Então, a sintaxe do desse escolha não é válida... pois o ele só aceita uma variável, mas você está utilizando duas.

Em 07/09/2017 às 15:08, Igor Emanoel Junqueira disse:

Escolha (turno) e (catg)

 

Você poderia utilizar um escolha dentro do outro, mas acho mais conveniente usar o se, ex.:

   se (categoria="G") e (turno="N") ENTÃO

 

Além disso, as opções seriam separadas por "," (não por "e".. Obs.: o correto seria "ou", já que um caractere não pode ser duas coisas ao mesmo tempo)...  ou para número, é possível usar uma faixa, ex:

caso 800 ate 1200

Dê uma olhada na sintaxe do escolha aqui.
 

Logo, use o se..então..senão para calcular o valor da hora trabalhada e escolha..caso para calcular o valor de auxílio alimentação. (obs.: mas dá para inverter também, usar escolha..caso primeiro e se..senão depois... importante que use os 2...)

 

 

 

3) FÓRMULAS PARA CÁLCULO

 

O salário inicial é calculado por você, mas você está pedindo:

Em 06/09/2017 às 14:51, Igor Emanoel Junqueira disse:

           Escreval ("Informe seu salario Inicial:")
           leia (salain)

 

Ou seja, com o escolha..caso você preparar para calcular o "salário inicial", e vai usar esse valor para calcular o "auxílio alimentação".

 

***

 

Para te ajudar dei uma reformulada... qualquer adapte ao seu gosto:
 

inicio
para i <-1 ate 400 faca
   //leitura de dados do funcionário
   Escreval("Informe seu codigo:")
   Leia(codigo)
   Escreval("Informe o numero de horas trabalhadas no mês:")
   Leia(horas_trab)
   Escreval("Digite M para Matutino e V para Vespertino N para Noturno")
   Escreval("Informe seu Turno:")
   Leia(turno)
   Escreval("Digite G para gerente e F para funcionario")
   Escreval("Informe sua categoria:")
   Leia(categoria)
   Escreval("Informe o Salario Minimo:")
   Leia(sal_minimo)

   //processamento do valor da hora trabalhada
   
      {aqui você vai usar o escolha..caso}
    
   //processamento do valor do salário inicial
   
      {aqui só fazer a conta}

   //processamento do valor do auxílio alimentação

      {aqui vai usar o se..então..senão}

   Escreval("Codigo:",codigo," Horas Trabalhadas:",horas_trab)
   Escreval("Valor da Hora Trabalhada:",valor_hora," Salario Inicial:",sal_inicial)
   Escreval("Auxilio Alimentação:",aux_aliment," Salario Final:",sal_final)
fimPara
fimAlgoritmo

 

 

Clique aqui para dar uma olhada na referência do VisuAlg;

Clique aqui para ver uma tabela de salário mínimo. (mais pra frente você poderia fazer outro programa que solicita o estado, daí o programa calculará sozinho).

 

No aguardo.

 

Link para o comentário
Compartilhar em outros sites

@Simon Viegas Obrigado! achei mais fácil usar o SE primeiro e o escolha caso por ultimo da uma olhada se esta certo e da uma olhada pra mim se a tabulação do código esta correta porque minha professora também cobra muito isso,o senao não achei necessário usar, você acha que devo colocar ? muito obrigado mano ta me ajudando muito 

Algoritmo "FolhaDePagamento"
// Descrição   : Programa para calcular folha de pagamento
// Autor(a)    : Igor Emanoel .G. Junqueira
// Data atual  : 04/09/2017
Var

codigo      :inteiro  //codigo do funcionário
horas_trab  :inteiro  //número de horas trabalhadas
turno       :caracter //turno de trabalho
categoria   :caracter //categoria do funcionário
sal_minimo  :real     //salario minimo
valor_hora  :real     //valor da hora trabalhada
sal_inicial :real     //valor salario inicial
aux_aliment :real     //valor do auxílio alimentação
sal_final   :real     //valor do salário final

   i: inteiro     //i do comando de repetição
Inicio
      para i <-1 ate 400 faca
           //leitura de dados do funcionário
           Escreval("Informe seu codigo:")
           Leia(codigo)
           Escreval("Informe o numero de horas trabalhadas no mês:")
           Leia(horas_trab)
           Escreval("Digite G para gerente e F para funcionario")
           Escreval("Informe sua categoria:")
           Leia(categoria)
           Escreval("Digite M para Matutino e V para Vespertino N para Noturno")
           Escreval("Informe seu Turno:")
           Leia(turno)
           Escreval("Informe o Salario Minimo:")
           Leia(sal_minimo)
           Se (categoria = "G") e (turno = "N")então
              valor_hora <- sal_minimo * 0.06
           fimse
                se (categoria = "G") e (turno = "M")então
                valor_hora <- sal_minimo * 0.04
                fimse
                     se (categoria = "G") e (turno = "V")então
                     valor_hora <- sal_minimo * 0.04
                fimse
                     se (categoria = "F") e (turno = "N")então
                     valor_hora <- sal_minimo * 0.02
                     fimse
                          se (categoria = "F") e (turno = "M")então
                          valor_hora <- sal_minimo * 0.01
                          fimse
                               se (categoria = "F") e (turno = "V")então
                               valor_hora <- sal_minimo * 0.01
                               fimse

           //formula para calcular o salario inicial
           sal_inicial <- horas_trab * valor_hora

           escolha (sal_inicial)
               Caso 1 ate 800
                   aux_aliment <- sal_inicial * 0.25
                     Caso 801 ate 1200
                        aux_aliment <- sal_inicial * 0.20
                        Caso 1201 ate 9999999
                           aux_aliment <- sal_inicial * 0.15
                         outrocaso
                         escreval ("Opção Invalida")
           fimescolha
                sal_final  <- sal_inicial + aux_aliment
Escreval("Codigo:",codigo," Horas Trabalhadas:",horas_trab)
Escreval("Valor da Hora Trabalhada:",valor_hora," Salario Inicial:",sal_inicial)
Escreval("Auxilio Alimentação:",aux_aliment," Salario Final:",sal_final)
      fimpara
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Igor Emanoel Junqueira.

 

1) INDENTAÇÃO

Esses se e os caso deveriam ficar alinhados, ou seja, no mesmo "dente", pois eles estão no mesmo nível em relação ao outro.

 

Exemplo de código indentado:

   Algoritmo "FolhaDePagamento"
// Descrição   : Programa para calcular folha de pagamento
// Autor(a)    : Igor Emanoel .G. Junqueira
// Data atual  : 04/09/2017
Var
   codigo      :inteiro  //codigo do funcionário
   horas_trab  :inteiro  //número de horas trabalhadas
   turno       :caracter //turno de trabalho
   categoria   :caracter //categoria do funcionário
   sal_minimo  :real     //salario minimo
   valor_hora  :real     //valor da hora trabalhada
   sal_inicial :real     //valor salario inicial
   aux_aliment :real     //valor do auxílio alimentação
   sal_final   :real     //valor do salário final

i: inteiro     //i do comando de repetição
Inicio
para i <-1 ate 400 faca
   //leitura de dados do funcionário
   Escreval("Informe seu codigo:")
   Leia(codigo)
   Escreval("Informe o numero de horas trabalhadas no mês:")
   Leia(horas_trab)
   Escreval("Digite G para gerente e F para funcionario")
   Escreval("Informe sua categoria:")
   Leia(categoria)
   Escreval("Digite M para Matutino e V para Vespertino N para Noturno")
   Escreval("Informe seu Turno:")
   Leia(turno)
   Escreval("Informe o Salario Minimo:")
   Leia(sal_minimo)

   Se (categoria = "G") e (turno = "N")então
      valor_hora <- sal_minimo * 0.06
   fimse
   se (categoria = "G") e (turno = "M")então
      valor_hora <- sal_minimo * 0.04
   fimse
   se (categoria = "G") e (turno = "V")então
      valor_hora <- sal_minimo * 0.04
   fimse
   se (categoria = "F") e (turno = "N")então
      valor_hora <- sal_minimo * 0.02
   fimse
   se (categoria = "F") e (turno = "M")então
      valor_hora <- sal_minimo * 0.01
   fimse
   se (categoria = "F") e (turno = "V")então
      valor_hora <- sal_minimo * 0.01
   fimse

   //formula para calcular o salario inicial
   sal_inicial <- horas_trab * valor_hora

   escolha (sal_inicial)
      {Caso 1 ate 800} //creio que seja a partir do 0
      Caso 0 ate 800
         aux_aliment <- sal_inicial * 0.25
      Caso 801 ate 1200
         aux_aliment <- sal_inicial * 0.20
      Caso 1201 ate 9999999
         aux_aliment <- sal_inicial * 0.15
      outrocaso
         escreval ("Opção Invalida")
   fimescolha
   sal_final  <- sal_inicial + aux_aliment
   Escreval("Codigo:",codigo," Horas Trabalhadas:",horas_trab)
   Escreval("Valor da Hora Trabalhada:",valor_hora," Salario Inicial:",sal_inicial)
   Escreval("Auxilio Alimentação:",aux_aliment," Salario Final:",sal_final)
fimpara
Fimalgoritmo

 

Obs.: Recomendo que desabilite a "Tabulação inteligente" lá em "Manutenção/Configurações". Sugiro usar 3 espaços.

 

 

 

2) ESTRUTURA CONDICIONAL SE

Cada um dos se são mutualmente excludentes, ou seja, se for um das opções, não poderá ser mais uma outra, logo, deve-se usar o SENÃO neles. E o enunciado pede ele.

 

Exemplo de estrutura:

   se <expressão-lógica-1> então
      <seqüência-de-comandos-1>
   senao
      se <expressão-lógica-2> então
         <seqüência-de-comandos-2>
      senao
         se <expressão-lógica-3> então
            <seqüência-de-comandos-3>
         {senao  //pode usar ou não}
            {<seqüência-de-comandos-4>}
         fimse
      fimse
   fimse

Repare que nesse caso, cada senão está vinculado ao se anterior, a linha que vem depois, está "dentro" do senão, por isso vai um dente pra frente. O terceiro se está dentro do senão do segundo se, logo, vai um dente pra frente também.. por ai vai...

  

 

 

3) COMBINAÇÃO DE EXPRESSÕES

Creio que o que eu vou citar agora não seja tão trivial, mas também não é complicado... veja:

Na tabela diz que se "G" e "N" então é 6%... você já está tratando como uma conjunção, e usando o seu respectivo operador lógico para relacionar essas condições. Mas da mesma forma, para o 4% existe, além de outra conjunção, uma disjunção para a condição do turmo, ou seja, é possível relacionar diretamente, não precisando dividir em duas condições. Ex.:

 

//               conjunção         disjunção
se (categoria = "G") e ((turno = "M") ou (turno = "V")) então
   valor_hora <- sal_minimo * 0.04

Perceba que antes tinha:

se A e B então

agora temos:

se C e D

mas D é um:

se E ou F

Logo, podendo ficar:

se C e (E ou F) então

Veja que o parênteses é fundamental...

 

Qualquer coisa é só postar.

No aguardo.

  • Curtir 1
  • Obrigado 1
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...