Ir para conteúdo
Fórum Script Brasil
  • 0

Algorítimo para calcular imposto


Hedson Ferreira da Silva

Pergunta

Galera, boa noite...

 

então estou desenvolvendo um algorítimo para calcular o imposto de renda... estou indo bem mas travei... vejam o enunciado e o meu prog.

A tabela abaixo foi retirada do site da Receita Federal, e traz as alíquotas do imposto de renda de pessoa física retido na fonte:

Base de Cálculo (R$)
    Alíquota (%)
    Parcela a deduzir do IRPF (R$)

ATÉ 1903,98    -    
De 1903,99 até 2826,65     7,5    142,80
De 2826,66 até 3751,05     15    354,80
De 3751,06 até 4664,68     22,5    636,13
Acima de 4664,68     27,5    869,36

A base de cálculo de imposto é dada pelo salário mensal, com certas deduções, como dependentes e contribuição previdenciária.
Abstraindo estas deduções e outros detalhes, o imposto devido é resumidamente calculado tomando como base de cálculo o salário mensal,
verificando a faixa na qual ele se encontra, aplicando a alíquota correspondente, e reduzindo o valor final da parcela a deduzir.
Por exemplo, se a base de cálculo é um salário de R$10.000,00, a alíquota é de 27,5%, ou seja, R$2750,00.
Deduzimos da alíquota o valor de R$869,36 e obtemos como resultado final R$1993,47 de imposto devido. 

Escreva um programa em linguagem C que receba como dado de entrada a base de cálculo mensal de um trabalhador (seu salário)
e retorne o imposto de renda devido. Imprima na tela um exemplo contendo o salário do trabalhador, o imposto devido e o salário final
já com este desconto.

_____________________________________________________________________________________________________________________

#include <stdio.h>
#include <stdlib.h>
int main(void) 
{
float renda=0, calculo_IMP=0, resultado=0, aliq=0;
int i,x,z;

printf("CALCULAR O IMPOSTO DE RENDA - padrão 2018\n\n");
printf("DIGITE A RENDA MENSAL BRUTA: ");
scanf("%f" , &renda);

calculo_IMP=(renda);
if(calculo_IMP<=1903.98)
{
printf("Isento de imposto de renda");
}
if(calculo_IMP>=1903.99 && calculo_IMP<=2826.65)
{
resultado=calculo_IMP*0.075; 
printf("Isento de imposto de renda");
}
if(calculo_IMP>=2826.66 && calculo_IMP<=3751.05)
{
resultado=calculo_IMP*0.15;
}
if(calculo_IMP>=3751.06 && calculo_IMP<=4664.68)
{
resultado=calculo_IMP*0.225;
}
if (calculo_IMP>=4664.69)
{resultado=calculo_IMP*0.275;
}
printf("O salario liquido sera de: %.2f\n\n",renda-resultado);
system("PAUSE");


return 0;
}IR.thumb.png.ddeb64dd7568086bf0e8b15f48659a5e.png]

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Então, consegui entende apenas o finalzinho o que talvez já seja o mais importante: X% do salário (imposto) é retirado e depois disso devolvido um parte pela redução do importo (%x), a chamada Parcela a deduzir do IRPF:

É intuitiva a seguinte expressão; Salário Líquido= (Salário * (100% - Alíquota%) + Parcela a deduzir do IRPF);

Então um funcionário que recebe 2000.0 segue a expressão acima com Alíquota igual a 7,5   com restituição de  (arcela a deduzir do IRPF) 142,80 ...

SL= (2000 * (100% - 7,5%) + 142,80);
SL= (2000 * (92.5%) + 142,80);
SL= (1850 + 142,80);
SL=  1992,8;

Ou seja, faltou-te apenas a redução do importo para ficar correta a resposta.

Obrigado.

Editado por britivaldo
Link para o comentário
Compartilhar em outros sites

  • 0

obrigado meu amigo, acho que estou entendendo ... mas o professor me falou que preciso  colocar a aliquota e a dedução em uma variável, pra poder imprimir elas de forma dinâmica, utilizando um só printf, mas não entendi como

#include <stdio.h>
#include <stdlib.h>
int main() 
{

float renda=0, calculo_IMP=0, resultado=0, liq1=7.5, aliq2, aliq3, aliq4;

printf("ALGORITIMO PARA O IMPOSTO DE RENDA - Hedson Ferreira R.U. 2411288\n\n Analise e Desenvolvimento de Sistemas - Uninter 2018\n\n""DIGITE A RENDA MENSAL BRUTA: \n\n");
scanf("%f" , &renda);

calculo_IMP=(renda);
if(calculo_IMP<=1903.98)
{
printf("\nIsento de imposto de renda\n\n");
}
else if(calculo_IMP>=1903.99 && calculo_IMP<=2826.65)
{
resultado=(calculo_IMP*0.075)-142.8; 
printf("\n aliq1\nDeducao da parcela RS 142.80\n\n" );
}
else if(calculo_IMP>=2826.66 && calculo_IMP<=3751.05)
{
resultado=(calculo_IMP*0.15)-354.8;
printf("\nAliquota de imposto de renda de 15pp\n\n Deducao da parcela RS 354.80\n\n");
}
else if(calculo_IMP>=3751.06 && calculo_IMP<=4664.68)
{
resultado=(calculo_IMP*0.225)-636.13;
printf("\nAliquota de imposto de renda de 22,5pp\nDeducao da parcela RS 636.13\n\n");
}
if (calculo_IMP>=4664.69)
{
resultado=(calculo_IMP*0.275)-869.36;
printf("\nAliquota de imposto de renda de 27,5pp\n\nDeducao da parcela RS 869.36\n\n");
}
printf("O salario liquido sera de: %.2f\n\n",renda-resultado);
system("PAUSE");


return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • 0

Em acredito ter entendido, Então suponho que ele deseje uma definição só para as duas coisas ( Alíquota e dedução ) que acontece dentro da mesma estrutura de decisão.

 

Isso é implementado numa função que recebe por parâmetro o salário_inicial do trabalhador e retorna o imposto, daí esse retorno é a  Alíquota e ( Parcela a deduzir do IRPF) na condição de um valor retornado.

/* @authr AnsiC

   Base de Cálculo (R$)
   --------------------
   
    Alíquota (%)
    Parcela a deduzir do IRPF (R$)

    Ate 1903,98   
    De  1903,99 até 2826,65   7,5  142,80
    De  2826,66 até 3751,05  15,0  354,80
    De  3751,06 até 4664,68  22,5  636,13
    Acima de 4664,68         27,5  869,36 
    
  Escreva um programa em linguagem C que receba como dado de entrada a base de 
  cálculo mensal de um trabalhador (seu salário) e 
  1- E retorne o imposto de renda devido; 
  2- Imprima na tela um exemplo contendo o salário do trabalhador o imposto 
  devido e o salário final já com este desconto.
*/
float imposto_de_renda( float salario )
{ if( (4664.68 <= salario) )return(salario * 0.275 - 869.36);
  if( (1903.99 <= salario)&&(salario <= 2826.65) )return(salario * 0.075 - 142.80);
  if( (2826.66 <= salario)&&(salario <= 3751.05) )return(salario * 0.150 - 354.80);
  if( (3751.06 <= salario)&&(salario <= 4664.68) )return(salario * 0.225 - 636.13);
  return (0); 
}

 

image.png.c6dc01263f0c26254e7b0576350912bc.png

Obrigado.

Editado por britivaldo
Link para o comentário
Compartilhar em outros sites

  • 0

#include <stdio.h>
#include <stdlib.h>


    int main ()
    {
        
        float roubo_renda,salario;
        
        printf("Informe o valor do seu salario mensal em R$: \n");
        scanf("%f",& salario);
        
        if(salario <= 1637.11)
        {
            printf("Voce é insento de imposto/roubo de renda, porque é um podre fudido \n\n");    
        }else if (salario >= 1637.12 && salario < 2453.50)
        {
            roubo_renda = (salario*0.075) - 122.78;
            printf("Imposto de renda a ser pago R$: %.2f\n", roubo_renda);
        }else if (salario >= 2453.51 && salario < 3271.38)
        {
            roubo_renda = (salario*0.15) - 306.80;
            printf("Imposto de renda a ser pago R$: %.2f\n", roubo_renda);
        }else if (salario >= 3271.39 && salario < 4087.65)
        {
            roubo_renda = (salario*0.225) - 552.15;
            printf("Imposto de renda a ser pago R$: %.2f\n", roubo_renda);
        }else if (salario > 4087.65)
        {
            roubo_renda = (salario*0.275) - 756.53;
            printf("Imposto de renda a ser pago R$: %.2f\n", roubo_renda);
        }else 
        {
            printf("Valor invalido\n");        
        }
    
        system ("pause");
        return 0;
    }

Esse exercicio veio dessa lista... *Lista compilada pelo Prof. Robson R. Linhares – DAINF/CEFET-PR/UTFPR*

(Cortesia do Prof. Bogdan Tomoyuki Nassu) A tabela abaixo foi copiada do website da Receita Federal, e traz as alíquotas do imposto de renda de pessoa física retido na fonte para o exercício de 2013: Base de cálculo mensal em R$ Alíquota % Parcela a deduzir do imposto em R$ Até 1.637,11 - - De 1.637,12 até 2.453,50 7,5 122,78 De 2.453,51 até 3.271,38 15,0 306,80 De 3.271,39 até 4.087,65 22,5 552,15 Acima de 4.087,65 27,5 756,53 A base de cálculo é dada pelo salário mensal, com certas deduções, como dependentes e contribuição previdenciária. Abstraindo estes e outros detalhes, o imposto devido é calculado tomando a base de cálculo mensal, verificando a faixa na qual ela se encontra, aplicando a alíquota correspondente, e reduzindo o valor final da parcela a deduzir. Por exemplo, se a base de cálculo é de R$10.000,00, a alíquota é de 27,5%, ou seja, R$2750,00. Deduzimos R$756,53 da parcela e obtemos como resultado final R$1993,47 de imposto devido. Escreva um programa que receba como entrada a base de cálculo mensal de um trabalhador e retorne o imposto de renda devido.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...