Ir ao conteúdo

Posts recomendados

Postado

Opa tudo bom estou com problema no meu código, que esta aparecendo dois resultados  mas na verdade é só é pra aparecer um. O exercício fala  Escreva um algoritmo, em pseudocodigo, que calcule o salário semanal de um trabalhador. As entradas são o número de
horas trabalhadas na semana e o valor da hora. Até 40h por semana não se acrescenta nenhum adicional. Acima de 40h e
até 60h há um bônus de 50% para essas horas. Acima de 60h há um bônus de 100% para essas horas. 

 

Insira o seu nome: Aguinaldo 
 Informe o total de horas da semana trabalhado: 78
 Informe o valor da sua hora: 4,26
 Esta pessoa recebe o bonus de 50% e seu salario é:  166.14 esta pessoa recebe o bonus de 100% e seu salario é: 332.28
>>> Fim da execução do programa !

Ele deveria aparecer só um bonus que de 100% e não o de 50% 

Var
N:caractere
hora,valorh:real
salario:real


Inicio
      Escreva(" Insira o seu nome: ")
      leia(N)
      Escreva(" Informe o total de horas da semana trabalhado: ")
      leia(hora)
      Escreva(" Informe o valor da sua hora: ")
      leia(valorh)
      se(hora < 40)então
         salario <- (hora * valorh)
      escreva(" O seu salario semanal é: ",salario)
      senao(hora > 40)
            salario <- (hora * valorh) * 0.50
      escreva(" Esta pessoa recebe o bonus de 50% e seu salario é: ",salario)
      se(hora > 60)então
         salario <- (hora * valorh) * 1.0
      escreva(" esta pessoa recebe o bonus de 100% e seu salario é:",salario)
      fimse
      fimse

Fimalgoritmo

 

 

  • Curtir 1
  • Membro VIP
Postado

@Aguinaldo Sobothe Lopes, seja bem vindo ao Fórum do Clube do Hardware.

 

  1. Você está lendo um nome, mas não está utilizando para algo. De qualquer forma não é solicitado no enunciado (só pedem duas entradas), logo, não precisa;
  2. faltou o se após o primeiro senao;
  3. a condição para o segundo se (que seria o citado acima) estaria incompleta, pois faltou inserir o limite superior da faixa salarial do contexto;
  4. os cálculos das horas extras estão errados;

Segue um esboço:

algoritmo "FCdH"
var
   horasTrabalhadas, valorHora : real
   salario : real

inicio
   escreva (" Número de horas trabalhadas na semada: ")
   leia(horasTrabalhadas)
   escreva (" Valor da hora R$: ")
   leia(valorHora)

   escreval("")
   se (horasTrabalhadas <= 40) entao
      salario <- horasTrabalhadas * valorHora
   senao
      se (horasTrabalhadas > 40) e (horasTrabalhadas <= 60) entao
         escreval(" Bonus de 50% sobre as horas extras")
         salario <- (horasTrabalhada * valorHora) * 0.50 //este cálculo está errado
      senao
         se (horasTrabalhadas > 60) entao
            escreval(" Bonus de 100% sobre as horas extras")
            salario <- (horasTrabalhadas * valorHora) * 1.0 //este cálculo está errado
         fimse
      fimse

      escreva(" Salario da semana : R$", salario:1:2)
fimAlgoritmo

Analise o código acima e compare com o teu. Daí complete ou complete o que está faltando nele, ou reajuste o teu código. Qualquer dúvida é só se esforçar e tentar resolver, caso não consiga, posta o código completo atual e onde está com dúvidas.

 

Para complementar o código, caso tenha hora extra, coloque também para exibir qual o seu (da hora extra) valor.

 

No aguardo.

 

  • Obrigado 1
Postado

@Simon Viegas Obrigado consegui resolver consertei o calculo  , tenho que aprender executar somente o que esta no enunciado obrigado pelas dicas. 

Var
   hora,valorh:real
   salario:real

Inicio
   Escreva(" Informe o total de horas da semana trabalhado: ")
   leia(hora)
   Escreva(" Informe o valor da sua hora: ")
   leia(valorh)
   se (hora <= 40)entao
      salario <- (hora * valorh)
      escreva(" O seu salario semanal é: ",salario)
   senao
      se (hora > 40 ) e (hora <= 60) entao
         escreval("Bonus de 50% sobre as horas extras")
         salario <- (hora * valorh) * 50/100
      senao
         se (hora > 60) entao
            escreval("Bonus de 100% sobre as horas entras")
            salario <- (hora * valorh) * 100/100
         fimse
      fimse
   fimse
   escreva(" Salário Semanal : R$",salario)
Fimalgoritmo

 

  • Curtir 1
  • Membro VIP
Postado

@Aguinaldo Sobothe Lopes, o cálculo do bônus continua errado...

Estava assim:

Em 21/04/2020 às 02:50, Aguinaldo Sobothe Lopes disse:

salario <- (hora * valorh) * 0.50

 

Agora está assim:

5 horas atrás, Aguinaldo Sobothe Lopes disse:

salario <- (hora * valorh) * 50/100

 

Você trocou 6 por meia dúzia, 😆... resumidamente: o "erro" não é na representação do valor da porcentagem, mas sim na lógica do cálculo das horas extras em si.

 

Existem 2 erros nessa no teu cálculo:

  1. você está calculando o bônus sobre o tempo total, mas o correto seria calcular sobre apenas o tempo extra! Se trabalhou 50h, será 40h normais + 10h extras. O bônus é apenas sobre as 10h.
  2. ainda sim, você está atribuído o que seria o valor do extra como sendo o valor total, ou seja: está ignorando o valor normal. Resumindo: Se o cara trabalhar 45h, vai receber metade do que receberia se não existisse bônus?

 

Basicamente precisaria fazer algo assim:

<salário> = <horas normais> * <valor da hora normal> + <horas extras> * <valor da hora extra>

Sendo essas horas normais de 40h para baixo e horas extras apenas o que está acima de 40.

 

Só para ficar mais claro:

Em 21/04/2020 às 02:50, Aguinaldo Sobothe Lopes disse:

Escreva um algoritmo, em pseudocodigo, que calcule o salário semanal de um trabalhador. As entradas são o número de horas trabalhadas na semana e o valor da hora. Até 40h por semana não se acrescenta nenhum adicional. Acima de 40h e até 60h há um bônus de 50% para essas horas. Acima de 60h há um bônus de 100% para essas horas

 

Essas "essas horas" se referem ao "Acima de 40h e até 60h" e "Acima de 60h" respectivamente, ou seja: apenas as horas  extras (que começa a contar a partir de 40h).

 

Para fica ainda mais claro, veja um exemplo demonstrando que não faz muito sentido o bônus ser em relação ao salário total:

Trabalhador 1:

Horas trabalhadas = 40
Valor da hora = R$10
Logo,
Salário semanal = $400

 

Sem bônus.

Trabalhador 2:

Horas trabalhadas = 41
Valor da hora = R$10
Logo,
Salário semanal = $635,50

Bônus de 55% sobre o salário total, ou seja: R$410 + R$225,50.

Faria algum sentido um patrão pagar R$225,50 por uma hora de trabalho, sendo a hora custa apenas R$10? assim a empresa vai para falência 😅.

 

Daí, o correto seria:

Horas trabalhadas = 41
Valor da hora = R$10
Logo,
Salário semanal = $415,50 (+55% do sobre 1h extra. Ganharia R$5,50 a mais)

 

 

adicionado 8 minutos depois

Segue um exemplo:
 

algoritmo "Calculadora de salário semanal"
// Disciplina  : xxxxxxxxx
// Professor   : xxxxxxxxx
// Descrição   : Programa que calcula o salário semanal (enunciado abaixo)
// Autor(a)    : Aguinaldo Sobothe Lopes
// Data atual  : 22/4/2020

//ENUNCIADO COMPLETO:
//
//Escreva um algoritmo, em pseudocodigo, que calcule o salário semanal de um
//trabalhador. As entradas são o número de horas trabalhadas na semana e o
//valorda hora. Até 40h por semana não se acrescenta nenhum adicional. Acima de
//40h e até 60h há um bônus de 50% para essas horas. Acima de 60h há um bônus
//de 100% para essas horas.

var
   horasTrabalhadas, horasNormais, horasExtras : real
   valorHora, valorHoraExtra : real
   salario : real
   valorAdicional : real

inicio
   escreval("")
   escreval(" *** CÁLCULO DE SALÁRIO SEMANAL *** ")
   escreval("")

   escreva (" Horas trabalhadas: ")
   leia(horasTrabalhadas)
   escreva (" Valor da hora    : ")
   leia(valorHora)

   se (horasTrabalhadas <= 40 ) entao
      horasNormais <- horasTrabalhadas
      horasExtras  <- 0
   senao
      horasNormais <- 40
      horasExtras  <- horasTrabalhadas - 40

      se (horasTrabalhadas <= 60) entao
         valorHoraExtra <- valorHora * (1.50)
      senao
         valorHoraExtra <- valorHora * (2.00)
      fimSe
   fimSe

   salario <- (horasNormais * valorHora) + (horasExtras * valorHoraExtra)

   escreval("")
   escreva(" Salário Semanal : R$", salario:1:2)
   escreval("")
fimAlgoritmo

 

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