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

Ajuda com funções - urgente

Recommended Posts

Desenvolvi um programa em C++ e preciso "transformá-lo" em Pascal, porém não sei como utilizar funções e ponteiros em pascal.

Segue abaixo o codigo em C++

#include<iostream.h>

void faltas (float *sal_hora, float *desc_faltas);
void horas_extras (float *sal_hora, float *extras, float *dsr_total);
void INSS (float *salario, float *desc_inss);
void vale (float *salario, float *desc_vale);
void DSR (float *extras_cinq, float *extras_cem, float *dsr_total, float *sal_hora);

main()
{
float salario, desc_vale, sal_hora, desc_faltas, extras, desc_inss, sal_liq, dsr_total, sal_inss;

cout<<"\nDigite o salario do funcionario: ";
cin>>salario;

sal_hora = salario / 220;

vale (&salario, &desc_vale);

faltas (&sal_hora,&desc_faltas);

horas_extras (&sal_hora, &extras, &dsr_total);

sal_inss = salario + extras + dsr_total - desc_faltas;

INSS (&sal_inss, &desc_inss);

sal_liq = sal_inss - desc_vale - desc_inss;

cout<<"\nSalario base: "<<salario<<"\nVale: "<<desc_vale<<"\nHoras extras: "<<extras<<"\nDSR: "<<dsr_total<<"\nFaltas: "<<desc_faltas<<"\nINSS: "<<desc_inss;
cout<<"\n\nSalario liquido: "<<sal_liq;


system("pause>null");
}

void vale (float *salario, float *desc_vale)
{
*desc_vale = *salario * 0.4;
}

void INSS (float *sal_inss, float *desc_inss)
{
if (*sal_inss <= 911.70)
*desc_inss = *sal_inss * 0.08;
else if (*sal_inss > 911.71 && *sal_inss <=1519.50)
*desc_inss = *sal_inss * 0.09;
else
*desc_inss = *sal_inss * 0.11;
}


void faltas (float *sal_hora, float *desc_faltas)
{
float total_faltas;
cout<<"\nDigite o total de faltas do funcionario: ";
cin>>total_faltas;
*desc_faltas = *sal_hora * total_faltas;
}

void horas_extras (float *sal_hora, float *extras, float *dsr_total)
{

float extras_cem, extras_cinq, total_cem, total_cinq;
cout<<"\nDigite o total de horas extras 50 % do funcionario: ";
cin>>extras_cinq;
cout<<"\nDigite o total de horas extras 100 % do funcionario: ";
cin>>extras_cem;
total_cinq = (*sal_hora * 1.5 )* extras_cinq;
total_cem = (*sal_hora * 2) * extras_cem;
*extras = total_cinq + total_cem;

DSR (&extras_cinq, &extras_cem, dsr_total, sal_hora);
}

void DSR (float *extras_cinq, float *extras_cem, float *dsr_total, float *sal_hora)
{
float dsr_cinq, dsr_cem, total;
int uteis, dom_fer;

cout<<"\nDigite o total de dias uteis do mes (incluindo sabados): ";
cin>>uteis;
cout<<"\nDigite o total de domingos e feriados do mes: ";
cin>>dom_fer;

dsr_cinq = ((*extras_cinq / uteis) * dom_fer) * (*sal_hora * 1.5);
dsr_cem = ((*extras_cem / uteis) * dom_fer) * (*sal_hora * 2);
*dsr_total= dsr_cinq + dsr_cem;
}

E o que eu consegui fazer em Pascal até agora:

program salario_func;

var salario, desc_vale, sal_hora, desc_faltas, extras,dsr_total, sal_inss, desc_inss, sal_liq : real;
(*variaveis que deveriam existir apenas nas funções*)
total_faltas, extras_cem, extras_cinq, total_cem, total_cinq, dsr_cinq, dsr_cem :real;
uteis, dom_fer : integer;

begin
writeln ('Digite o salario do funcionario: ');
readln (salario);

sal_hora := salario / 220;

(*utilizar função vale*)
desc_vale := salario * 0.4;

(*utilizar função faltas*)
writeln ('Digite o total de faltas do funcionario: ');
readln (total_faltas);
desc_faltas := sal_hora * total_faltas;

(*utilizar função horas extras*)
writeln ('Digite o total de horas extras 50 % do funcionário: ');
readln (extras_cinq);
writeln ('Digite o total de horas extras 100 % do funcionário: ');
readln (extras_cem);
total_cinq := (sal_hora * 1.5) * extras_cinq;
total_cem := (sal_hora * 2) * extras_cem;
extras := total_cinq + total_cem;

(*utilizar a função DSR*)
writeln ('Digite o total de dias uteis do mês (incluindo sábado)');
readln(uteis);
writeln ('Digite o total de domingos e feriados do mês');
readln(dom_fer);

dsr_cinq := ((extras_cinq / uteis) * dom_fer) * (sal_hora * 1.5);
dsr_cem := ((extras_cem / uteis) * dom_fer) * (sal_hora * 2);

dsr_total := dsr_cinq + dsr_cem;

sal_inss := salario + extras + dsr_total - desc_faltas;

(*utilizar função inss*)

if (sal_inss <= 911.70) then
desc_inss := sal_inss * 0.08
else if (sal_inss > 911.71) and (sal_inss<=1519.50) then
desc_inss := sal_inss * 0.09
else
desc_inss := sal_inss * 0.11;

sal_liq := sal_inss - desc_vale - desc_inss;

writeln ('Salario base: ', salario);
writeln ('Vale: ', desc_vale);
writeln ('Horas extras: ', extras);
writeln ('DSR: ', dsr_total);
writeln ('Faltas: ', desc_faltas);
writeln ('INSS: ', desc_inss);
writeln ('Salario liquido: ', sal_liq);
readln;

end.

Editado por Mog.Lucas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o [*code] pra posta o algoritimo =x

E si quiser eu ajudo mas você tem que posta as condições do programa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, não entendi, como assim as condições?

O programa tem que utilizar as funções que foram declaradas antes da main, e para facilitar utilizei ponteiros para passar os valores.

Não sei como fazer isso em pascal...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele deve solicitar que o usuário digite o salario de um funcionário, o total de faltas que esse funcionário teve e o total de horas extras 50% e 100%.

Então ele deve calcular o vale desse funcionário atraves de uma função especifica, o valor a ser descontado em faltas, o valor a ser pago em horas extras e dentro da função de horas extras deve clacular o DSR (que é um beneficio), depois disso ele clacula qual será o slario para o calculo do inss, e chama a função INSS para ver quanto será o desconto. Por fim faz o calculo do salario que o funcionário tem a receber, e apresenta todos os valores...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que posta Dados mais expecificos

ex

Valor do beneficio, conidção do beneficio, como se calcula o INSS (Eu nãos ei como faz isso ^^)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consegui concluir o código, usei procedimentos...

Obrigado mesmo assim :)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eu consegui concluir o código, usei procedimentos...

Obrigado mesmo assim :)

Olá,

Se possível poste aqui o código para analisarmos...

No aguardo

Abraços

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

×