Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Francisco Berto Melniski

IRRF

Recommended Posts

boa tarde, 

 

Sou novo aqui, estou no primeiro semestre de Sistemas de Informação, estou cm dificuldades em um código aqui.

 

Calcule o imposto de renda de um grupo de dez contribuintes, considerando que os dados de cada contribuinte, número do CPF, número de dependentes
e renda mensal são valores fornecidos pelo usuário. Para cada contribuinte será feito um desconto de 5% do salário mínimo por dependente.
Os valores da alíquota para cálculo do imposto são:
    Renda líquida                    Alíquota
Até 2 salários mínimos                Isento
2 a 3 salários mínimos                  5%
3 a 5 salários mínimos                  10%
5 a 7 salários mínimos                  15%
Acima de 7 salários mínimos             20%
Observe que deve ser fornecido o valor atual do salário mínimo para que o algoritmo calcule os valores corretamente.

 

meu código só esta calculando qndo isento, segue abaixo

 

 

#include<stdio.h>
#include<locale.h>
void main(){
    setlocale(LC_ALL, "Portuguese");
    float ndp=0, minimo=0, salario=0, irrf=0, irrfs=0, irrfd=0, cpf, cont;  //ndp=numero de dependentes, irrf= imposto devido, irrfs= imposto sobre o salário, irrfd= imposto sobre dependente
   
 printf("Informe o salário mínimo atual: ");
    scanf("%f", &minimo);
    for(cont=1; cont <=10; cont++){
        printf("\nInforme o CPF: ");
        scanf("%f", &cpf);
        printf("Informe o número de dependentes: ");
        scanf("%f", &ndp);
        printf("Informe o Salário: ");
        scanf("%f", &salario);
        renda=salario/minimo;
        if (renda<=2){
            irrf=0;
            printf("IRRF= ISENTO.\n");
        }else if (renda<=3){
            irrfs=salario*0,05;
            irrfd=ndp*(minimo*0,05);
            irrf=irrfs-irrfd;
            printf("IRRF= %.2f", irrf);
        }else if (renda<=5){
            irrfs=salario*0,10;
            irrfd=ndp*(minimo*0,05);
            irrf=irrfs-irrfd;
            printf("IRRF= %.2f", irrf);
        }else if (renda<=7){
            irrfs=salario*0,15;
            irrfd=ndp*(minimo*0,05);
            irrf=irrfs-irrfd;
            printf("IRRF= %.2f", irrf);
        }else if (renda>7){
            irrfs=salario*0,20;
            irrfd=ndp*(minimo*0,05);
            irrf=irrfs-irrfd;
            printf("IRRF= %.2f", irrf);
        }
    }
    system("PAUSE");
}


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1- o tipo de retorno de main é int, não void.

2- não vi a declaração da variável renda

3- cpf normalmente se lê como string (zeros à esquerda, problemas de representação com float)

4- não há motivo algum p/ dependentes ser float. Não se tem 3.19 dependentes.

5- note que nas multiplicações você utilizou vírgula nas constantes ao invés de ponto decimal.

Normalmente não se compara float/double diretamente. Usa-se uma margem de erro.
 

#include<stdio.h>
#include <math.h>
int main(){
    const float EPSILON = 0.000001;
    float minimo, salario, irrf, irrfs, irrfd, cpf, cont; 
    float renda;
    int ndp = 0;
    minimo = irrf = irrfs = irrfd = 0.0;
    
    printf("Informe o salário mínimo atual: ");
    scanf("%f", &minimo);
    for(cont=1; cont <=10; cont++){
      
        printf("\nInforme o CPF: ");
        scanf("%f", &cpf);
        printf("Informe o número de dependentes: ");
        scanf("%d", &ndp);
        printf("Informe o Salário: ");
        scanf("%f", &salario);

        renda= salario/minimo;

        if (fabs(renda - 2.00) < EPSILON){
            irrf=0;
            printf("IRRF= ISENTO.\n");
        } else if (fabs(renda - 3.00) < EPSILON){
            irrfs=salario*0.05;
            irrfd=ndp*(minimo*0.05);
            irrf=irrfs-irrfd;
            printf("IRRF= %.2f", irrf);
        }else if (fabs(renda - 5.00) < EPSILON){
            irrfs=salario*0.10;
            irrfd=ndp*(minimo*0.05);
            irrf=irrfs-irrfd;
            printf("IRRF= %.2f", irrf);
        }else if (fabs(renda -7.00) < EPSILON){
            irrfs=salario*0.15;
            irrfd=ndp*(minimo*0.05);
            irrf=irrfs-irrfd;
            printf("IRRF= %.2f", irrf);
        }else {
            irrfs=salario*0.20;
            irrfd=ndp*(minimo*0.05);
            irrf=irrfs-irrfd;
            printf("IRRF= %.2f", irrf);
        }
    }
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na faculdade usamos codeblocks p implementação d códigos e o retorno utilizado é void. A var renda: salário. Dependentes já alterei p int. Qto a vírgula qdo utilizado a biblioteca<locale.h> ele reconhece assim cm reconhece os acentos. Ja consegui implementar o cód daqui a pouco posto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na faculdade usamos codeblocks p implementação d códigos e o retorno utilizado é void.

 

 

Pois é,mas está errado. O padrão da linguagem diz que é int. Tem até um tópico sobre isso aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include<stdio.h>
#include<locale.h>

void main(){

    setlocale(LC_ALL, "Portuguese");

    float minimo=0, salario=0, irrf=0, irrfs=0, irrfd=0, renda;
    int ndp=0, cpf, cont;
    /*mdp= numero de dependentes, minimo= salário mínimo atual, salário= salário do contribuinte
    irrf= imposto a ser pago, irrfs= imposto sob o salário recebido, irrfd= imposto a ser restituido
    renda= cálculo para descobrir o equivalente do salário mínimo*/

    printf("\n**********************************************\n");
    printf("\n\t PROGRAMA PARA CÁLCULO DE IRRF\n");
    printf("\n**********************************************\n");

    printf("\nInforme o salário mínimo atual:R$ ");
    scanf("%f", &minimo);

    printf("\n\n**********************************************\n");

    for(cont=1; cont <=10; cont++){
        printf("\nInforme o CPF: ");
        scanf("%f", &cpf);
        printf("Informe o número de dependentes: ");
        scanf("%f", &ndp);
        printf("Informe o Salário:R$ ");
        scanf("%f", &salario);

        renda=salario/minimo;

        if (renda<=2){
            irrf=0;
            printf("IRRF= ISENTO.\n");

        }else if (renda<=3){
            irrfs=salario*5/100;
            printf("Imposto sob salário é de 5%% que equivale à: R$%.2f", irrfs);
            irrfd=ndp*(minimo*0,05);
            printf("\nO valor a ser restituido é de:R$ %.2f", irrfd);
            irrf=irrfs-irrfd;
            printf("\nIRRF= R$%.2f\n", irrf);

        }else if (renda<=5){
            irrfs=salario*10/100;
            printf("Imposto sob salário é de 10%% que equivale à: R$%.2f", irrfs);
            irrfd=ndp*(minimo*0,05);
            printf("\nO valor a ser restituido é de:R$ %.2f", irrfd);
            irrf=irrfs-irrfd;
            printf("\nIRRF= R$%.2f\n", irrf);

        }else if (renda<=7){
            irrfs=salario*15/100;
            printf("Imposto sob salário é de 15%% que equivale à: R$%.2f", irrfs);
            irrfd=ndp*(minimo*0,05);
            printf("\nO valor a ser restituido é de:R$ %.2f", irrfd);
            irrf=irrfs-irrfd;
            printf("\nIRRF= R$%.2f\n", irrf);

        }else if (renda>7){
            irrfs=salario*20/100;
            printf("Imposto sob salário é de 20%% que equivale à: R$%.2f", irrfs);
            irrfd=ndp*(minimo*0,05);
            printf("\nO valor a ser restituido é de:R$ %.2f", irrfd);
            irrf=irrfs-irrfd;
            printf("\nIRRF= R$%.2f\n", irrf);
        }

    }

    system("PAUSE");

}

cód implementado q funcionou

3 - IRRF.exe

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por paulopoxoreo1234@gmail.com
      Dado o trecho de código em C listado abaixo responda as perguntas a seguir.
      Cont = result = 1;
      For ( i=0; i<5; i= i+0.1){
            Cont = cont+i;
            Result  *= cont;
            Printf(“%f", result);
      }
      a)      O que será impresso depois da primeira iteração deste código?
      b)      Quantas vezes este laço precisará ser executado para que encontre a condição de término ?
      c)      Faça um trecho de código em C para quebrar esse laço na decima quinta iteração.
    • Por ednan
      estou precisando de ajuda neste trabalho se alguem souber e puder ajudar agradeço de coraçao
       
    • Por Hokage1
      Boa Tarde estou quebrando a cabeça com um trabalho, podem me ajudar ?:
       
      ara execução do projeto final siga as instruções: 
       
      (Tarefa 1) Elaborar um programa em Linguagem de Programação C com 2 interfaces (telas); uma para o cadastro dos 10 estudantes e outra para os dados analíticos. (Tarefa 2) Somente após finalizar a Tarefa 1, faça uma investigação para identificar quais recursos (não abordados nesta disciplina), em Linguagem de Programação C, que poderiam tornar a construção desta aplicação mais sofisticada e, até mesmo, mais fácil de implementar? Explique (não há necessidade de implementar o novo recurso). Enviar a resposta da Tarefa 1 (código-fonte escrito em Linguagem de Programação C) e da Tarefa 2 para avaliação em um arquivo no formato MS-Word com nome no seguinte padrão: LCC-IA-2020-3-Mod3-Projeto-Seu_Nome.docx (Arquivos nomeados fora deste padrão serão descartados). Use o fórum do Módulo 03 para postar suas dúvidas e/ou colaborar com os colegas.  
      TAREFA 1 – Programa de cadastro e análise de dados de 10 Estudantes:
      1.Tela: Criar a tela a seguir que permita a entrada de dados de 10 estudantes diferentes. Assim que o usuário digitar os dados do último estudante, o programa deverá ir para a 2.tela.
      Tela 1 – Interface (Tela) para cadastro de 10 estudantes
      2.Tela: Criar a tela a seguir que apresente os dados analíticos, a partir dos dados digitados na Tela 1. Na sequência, encerrar o programa.
       
      tela 2 – Interface (Tela) do quadro analítico
      OBSERVAÇÕES:
      Todos indicadores do Quadro Analítico deverão ser calculados (nenhum digitado pelo usuário);
       
      A “Maior Nota Individual” deverá ser a maior nota obtida por um estudante em qualquer uma das 2 avaliações; A “Menor Nota Individual” deverá ser a menor nota obtida por um estudante em qualquer uma das 2 avaliações; A “Média da Sala” deverá ser a média das médias dos 10 estudantes; A “Melhor Média da Sala” deverá ser a maior média obtida por 1 estudante; A “Pior Média da Sala” deverá ser a menor média obtida por 1 estudante.
    • Por sidius
      ei galera, minha professora pediu para que eu calculasse matrizes utilizando a linguagem c, poderiam me dar uma luz ae?? ficaria grato, tenho grande dificuldade no assunto

    • Por juliaKrunker
      1- O comando typedef pode ser utilizado para criar novos comandos, ou simplesmente novas formas de escrever
      determinados comandos em linguagem C. Por exemplo, toda vez que você quiser criar uma variável do tipo struct
      declarado acima, terá que escrever o nome completo do tipo, isto é struct lista. Usando o comando typedef, defina um
      tipo alternativo, chamado Lista, que possa ser usado em lugar de struct lista.

      2-  Usando o tipo Lista que você criou na questão 3, declare uma variável chamada myList que possa ser utilizada para
      construir uma lista encadeada.
       
      3- (0,5) Usando o tipo Lista que você criou na questão 3, declare uma variável chamada novo que possa ser utilizada para criar
      um novo elemento para a lista declarada na questão 4.

      4- Escreva uma linha de código que aloque espaço na memória para a variável novo declarada na questão 5, de forma
      que a variável possa ser utilizada para inserir um novo elemento na lista myList declarada na questão 4.

      5 -Considerando a variável myList declarada na questão 4 e a variável novo declarada na questão 5 e alocada na questão
      6, atribua os valores 1 para o atributo id e 9.1 para o atributo valor e insira-a na lista myList.
       
      6- O trecho de código apresentado a seguir, refere-se a uma função que receberá como parâmetro um ponteiro para
      uma lista do tipo Lista e deverá calcular e retornar a média dos valores existentes na lista. Escreva o corpo da função.

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.