estou com dificuldade para fazer essa parte do ir-imposto de renda
IR – IMPOSTO DE RENDA
No caso do imposto de renda o dependente tem vários critérios para ser considerado. Vamos considerar aqui todos os dependentes citados que tenham até 21 anos. O cálculo do IR é realizado com base na seguinte regra:
* Salário bruto + gratificações – valor INSS – valor de dedução por dependente.
Eletrônica Digital II 4
Com base nesse cálculo é analisado em qual linha da Base de cálculo se encontra esse valor. A partir disso, calcula-se com base na alíquota a ser aplicada e o valor obtido é deduzido da última coluna.
Por exemplo:
Um funcionário que recebe 3.500,00 com gratificação de 250,00: Bruto + gratificação: 3.500,00 + 250,00 = 3.750,00;
Valor INSS: 11% de 3,750,00 = 412,50
Dedução por dependente: supondo dois filhos – 189,59 * 2 = 379,18.
Sendo assim a base de cálculo será: 3.750,00 – 412,50 – 379,18 = 2.958,32
Aplicar a alíquota correspondente sobre esse valor: 2.958,32 * 15% = 443, 75
Desse valor será deduzido o valor indicado na tabela: 443,65 - 354,80 = 88,85
Ou seja, o valor pago de IR será de 88,85.
#include<stdio.h>
#include<math.h>
void main()
{
int dep, escolha, opcaosaude, idade, dep14, dep21, depirpf;
int opcao1, opcao2, opcao3, opcao4, opcao5, opcao6, opcao7, opcao8;
float bruto, grati, bruto_grati, inss, vt, saude, vtmax, vttotal, descontovt, vtutilizado, fgts, salario_familia, aliquotair, parcelairpf, inss_irpf, insstotal_irpf, deptotal_irpf, base_calculo_irpf, aliq_correspondente, deducao_irpf;
//Entrada dos dados
printf("Posuui dependentes? \n");
printf("\tDigite 1 para SIM\n");
printf("\tDigite 2 para não\n");
scanf("%d", &opcao6);
if (opcao6 == 1)
{
printf("Quantos dependentes possui?\n");
scanf("%d", &dep);
printf("Possui dependentes menores do que 14 anos?\n");
printf("\tDigite 1 para SIM\n");
printf("\tDigite 2 para não\n");
scanf("%d", &opcao7);
if (opcao7 == 1)
{
printf("Quantos dependentes menores de 14 anos possui?\n");
scanf("%d", &dep14);
}
printf("Possui dependentes ate 21 anos?\n");
printf("\tDigite 1 para SIM\n");
printf("\tDigite 2 para não\n");
scanf("%d", &opcao8);
if (opcao8 == 1)
{
printf("Quantos dependentes ate 21 anos?\n");
scanf("%d", &dep21);
}
}
printf("Qual o valor do salario bruto? ","\n");
scanf("%f", &bruto);
printf("Possui gratificacao?\n");
printf("\t1 - sim\n");
printf("\t2 - não\n");
scanf("%d", &opcao1);
if (opcao1 == 1)
{
printf("Qual o valor da gratificacao?\n");
scanf("%f", &grati);
}
printf("Utiliza VT.\n");
printf("\t1 - sim\n");
printf("\t2 - não\n");
scanf("%d", &opcao2);
if (opcao2 == 1)
{
printf("Quantas passagens utiliza mensalmente? ","\n");
scanf("%f", &vtutilizado);
}
printf("Utiliza plano de saude.\n");
printf("\t1 - sim\n");
printf("\t2 - não\n");
scanf("%d", &opcao3);
if (opcao3 == 1)
{
printf("\tDigite 1 para plano enfermaria\n");
printf("\tDigite 2 para quarto\n");
scanf("%d", &opcaosaude);
}
bruto_grati = bruto + grati;
//Opções desejadas
while(opcao4 <= 0 || opcao4 >=8 )
{
printf("Qual demanda ira calcular?\n");
printf("\tDigite 1 para calcular VT\n");
printf("\tDigite 2 para calcular plano de saude\n");
printf("\tDigite 3 para calcular FGTS\n");
printf("\tDigite 4 para calcular INSS\n");
printf("\tDigite 5 para calcular salario familia\n");
printf("\tDigite 6 para calcular IR\n");
printf("\tDigite 7 para calcular salario liquido\n");
scanf("%d", &opcao4);
if (opcao4 <= 0)
{
printf("Opcao invalida.\n");
}
else if (opcao4 >=
{
printf("Opcao invalida.\n");
}
}
//Cálculo do vale transporte
switch (opcao4)
{
case 1:
if (opcao2 == 2)
{
printf("voce não optou pela utilizacao do vale transporte!");
break;
}
if (opcao4 == 1)
{
vttotal = vtutilizado * 4.50;
vtmax = bruto * 0.06;
if (vttotal >= vtmax)
{
printf("Desconto de %.2f", vtmax);
}
else if (vttotal <= vtmax)
{
printf("Desconto de %.2f", vttotal);
}
}
break;
//Cálculo do plano de saúde
case 2:
if (opcao3 == 2)
{
printf("voce optou por não utilizar o plano de saude!");
break;
}
if (opcao4 == 2)
{
if (opcaosaude == 1)
{
saude = dep * 89.90;
printf("voce optou por enfermaria, o valor total do desconto com os dependentes = %.2f", saude);
}
else if (opcaosaude == 2)
{
saude = dep * 119.90;
printf("voce optou pelo quarto, o valor total do desconto com os dependentes = %.2f", saude);
}
}
break;
//Cálculo do FGTS
case 3:
fgts = bruto_grati * 0.08;
printf("O valor do FGTS sera %.2f reais", fgts);
break;
//Cálculo INSS
case 4:
if (bruto_grati <= 1100.00)
{
inss = bruto_grati * 0.075;
}
if (bruto_grati >= 1100.01 || bruto_grati <= 2203.48)
{
inss = bruto_grati * 0.09;
}
if (bruto_grati >= 2203.49 || bruto_grati <= 3305.22)
{
inss = bruto_grati * 0.12;
}
if (bruto_grati >= 3305.23)
{
inss = bruto_grati * 0.14;
}
printf("O valor do INSS sera de %.2f reais", inss);
break;
//Cálculo salário família.
case 5:
if (opcao7 == 2 || opcao6 == 2)
{
printf("voce não possui dependentes menores de 14 anos.");
break;
}
if (bruto_grati <= 1503.25)
{
salario_familia = dep14 * 51.27;
printf("Salario familia para %d dependentes menores de 14 anos e de %.2f reais", dep14, salario_familia);
}
if (bruto_grati >= 1503.26)
{
printf("Esse salario atual não permite a utilizacao do salario familia.");
}
//Cálculo do IR
case 6:
if (bruto_grati <= 1903.98)
{
printf("voce não paga Imposto de Renda.\n");
break;
}
if(bruto_grati >= 1903.99 || bruto_grati <= 2826.65)
{
aliquotair = 0.075;
parcelairpf = 142.80;
}
if (bruto_grati >= 2826.66 || bruto_grati <= 3751.05)
{
aliquotair = 0.15;
parcelairpf = 354.80;
}
if (bruto_grati >= 3751.06 || bruto_grati <= 4664.68)
{
aliquotair = 0.225;
parcelairpf = 636.13;
}
if (bruto_grati >= 4664.68)
{
aliquotair = 0.275;
parcelairpf = 869.36;
}
inss_irpf = 0.11;
insstotal_irpf = bruto_grati * inss_irpf;
if (opcao8 == 1)
{
deptotal_irpf = 189.59 * dep21;
}
if (opcao6 == 2 || opcao8 == 2)
{
deptotal_irpf = 0;
}
base_calculo_irpf = bruto_grati - insstotal_irpf - deptotal_irpf;
printf("Base de calculo para IRPF de %.2f reais.\n", base_calculo_irpf);
aliq_correspondente = base_calculo_irpf * aliquotair;
deducao_irpf = aliq_correspondente - parcelairpf;
printf("O valor a ser pago referente ao IRPF foi de %.2f reais.\n", deducao_irpf);
}
}
T 01 - Folha de Pagamento .pdf