Jump to content
Fórum Script Brasil
  • 0

Algorítimo para calcular imposto


Hedson Ferreira da Silva

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

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

Edited by britivaldo
Link to comment
Share on other 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 to comment
Share on other 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.

Edited by britivaldo
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...