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:  
Igor Emanoel Junqueira

VisualG Calcular valor da hora trabalhada

Recommended Posts

Galera estou com esse trabalho de AED1 na imagem fala tudo que tem que fazer se alguém poder ajudar de preferência em visualg.

Obrigado!

Exercicio AED1.jpeg

Editado por DiF

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 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!

    Editado por Igor Emanoel Junqueira

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @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

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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.

     

    Editado por Simon Viegas

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @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

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @Simon Viegas Obrigado pelas dicas, estava usando do jeito que você mostrou o operador logico ou só que na hora de rodar tava calculando errado ai resolvi fazer um por um mais vou tentar de novo usando essas suas dicas.

    Muito Obrigado me ajudou muito!

    • 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






    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

    ×