



E ai pessoal do Show Delphi, tudo belezoca? rsrsrs
Vamos a um novo exercício de algoritmos com testes e seleções.
Como de costume, vamos dividir o exercício em partes para facilitar o entendimento. Então vamos a ele:
Informações Iniciais – Formulas e constantes
A jornada de trabalho semanal de um funcionário é de 40 horas.
O funcionário que trabalhar mais de 40 horas receberá hora extra,
cujo cálculo é o valor da hora regular com um acréscimo de 50%.
Parte 1
Escreva um algoritmo que leia
o número de horas trabalhadas em um mês,
o salário por hora
Parte 3
e escreva
o salário total do funcionário, que deverá ser acrescido das horas extras,
caso tenham sido trabalhadas.
(considere que o mês possua 4 semanas exatas).
Coloque mesmo parte 1 a parte 3 porque a parte 2 será calcular o salário.
Legal, agora que dividimos o problema vamos a uma sugestão de resposta em Lazarus, Pascal, Delphi
Lembrando que vou explicando nos comentários o que os comandos vão fazendo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | program project34; uses SysUtils; var numeroHorasTrabalhadasUmMes: integer; salarioPorHora: double; salarioTotal: double; salario: double; valorHoraExtra: double; qtdHorasExtras: integer; salarioExtras: double; begin { Parte 1 - Solicitando as informações ao usuário } Write(Utf8ToAnsi('Informe o número de horas trabalhadas em um mês: ')); ReadLn(numeroHorasTrabalhadasUmMes); Write(Utf8ToAnsi('Informe o salário por hora: ')); ReadLn(salarioPorHora); { Parte 2, calculando o salário } if numeroHorasTrabalhadasUmMes <= 160 then begin { Calcula o salário normal } salario := numeroHorasTrabalhadasUmMes * salarioPorHora; { Não tem horas extras } valorHoraExtra := 0; end else begin { Calcula o salário normal que é referencia a 160 horas - 40 horas * 4 semanas } salario := 160 * salarioPorHora; { Calculando as horas extras } qtdHorasExtras := numeroHorasTrabalhadasUmMes - 160; { Valor normal + 50% } valorHoraExtra := salarioPorHora + (salarioPorHora * 50) / 100; { Valor total em horas extras } salarioExtras := valorHoraExtra * qtdHorasExtras; end; { Calculando o salário total } salarioTotal := salario + salarioExtras; { Por fim a parte 3, escrevendo na tela os valores } { Exibindo o salário total } Writeln(Utf8ToAnsi('O salário total do funcionário acrescido com horas extras foi de: '), FormatFloat('#0.00', salarioTotal)); WriteLn('Enter para fechar o programa.'); ReadLn; end. |
Referência do exercício: https://fit.faccat.br/~fpereira/apostilas/exerc_resp_alg_mar2007.pdf
Certo pessoal, no exemplo acima fizemos a leitura das horas trabalhadas em um mês juntamente com o valor pago por hora.
Depois efetuamos o calculo do salário, primeiro verificando se havia horas extras.
Se o número de horas trabalhadas no mês for inferior ou igual a 160, significa que não houve horas extras, logo o salário final será o número de horas trabalhadas multiplicado pelo valor a hora.
Agora se o número de horas trabalhadas for maior que 160, precisamos calcular um pouco mais e fizemos assim:
Primeiro, calculamos o salário normal: 160 horas multiplicados pelo valor a hora.
Segundo, calculamos a quantidade de horas extras: Horas trabalhadas no mês menos 160.
Terceiro, calculamos o valor de uma hora extra: Que é hora normal + (hora normal * 50 / 100)
Quarto, calculamos o valor que será pago pelas horas extras: Valor da Hora extra multiplicado pelo número de horas extras.
Por fim em quinto, calculamos o salário final que é o salário normal adicionado do valor em horas extras.
Como relatório escrevemos na tela o salário total do funcionário acrescido com horas.
Para facilitar o entendimento, o professor Giovani gravou uma vídeo aula mostrando como implementar no Lazarus.
Segue a vídeo aula
Pessoal, acredito que tenha ficado bem explicado, qualquer dúvida ou sugestão, por favor, deixe nos comentários.
Caso queiram exemplos em outras linguagens, também indiquem nos comentários.
Aquele abraço pessoal e até a próxima.
Você precisa fazer o login para publicar um comentário.
Cara não sei se entende c++, porém se entender, pode me falar se esse código está correto?
#include
using namespace std;
int main(){
double hora_trabalhada, salario_hora, salario, hora_regular;
cout<>hora_trabalhada;
cout<>salario_hora;
salario = hora_trabalhada * salario_hora;
if(hora_trabalhada > 160){
hora_regular = ((hora_trabalhada * 50) / 100) + (hora_trabalhada * salario_hora);
cout<<"Salário com Extra: "<<hora_regular;
}else{
salario = hora_trabalhada * salario_hora;
cout<<"Salário sem Extra: "<<salario;
}
}