Voltar Lista de Tópicos

Editar | Versões | Fórum de Discussão

Prazos para Envio


Prática de Programas Sequenciais 1

Introdução

Nesta etapa daremos início ao nosso estudo sobre a linguagem de programação C, que é uma das principais linguagens de desenvolvimento de aplicações profissionais hoje. Iniciaremos a partir de um problema, passando pelas etapas de Descrição Narrativa, Desenho do Fluxograma e Escrita do Programa. Na etapa de Escrita do Programa primeiro analisaremos a instrução em linguagem algoritmica e, finalmente, o seu equivalente em linguagem C. Aprenderemos como declarar variáveis com seus tipos, como utilizar as funções de entrada e saída scanf() e printf() e os operadores de atribuição e matemáticos para resolver o problema proposto.

Considere o seguinte problema abaixo:

Crie um programa que leia o salário bruto e calcule o salário líquido baseado na seguinte fórmula: sl = sb - (inss + irrf), onde, sb é o salário bruto, inss é a contribuição para o INSS e irrf é o valor do imposto de renda para pessoa física. O cálculo do IRRF deve ser feito tendo como base o salário bruto deduzido do INSS (sb - inss). O programa deve escrever o salário bruto, o valor em R$ de desconto do INSS, o valor em R$ descontado do IRRF e o salário líquido calculado. Considere que não há dependentes e as porcentagens de contribuição do INSS e do IRRF são respectivamente 11% e 27,5%.

Para solucionar o problema acima siga os seguintes passos:

  1. Inicie o processo de solução do problema criando uma descrição narrativa identificando a entrada, o processamento e a saída;
  2. Crie um fluxograma a partir da descrição narrativa;
  3. Desenvolva um programa em linguagem C.

Descrição Narrativa

Para o problema proposto na introdução, vamos escrever uma descrição narrativa do programa para resolvê-lo. Veja abaixo.

Entrada: o programa deve ler o salário bruto de uma pessoa física;

Processamento:  o programa deverá calcular

  • o desconto do INSS subtraindo 11% do salário bruto
  • o desconto do IRRF subtraindo 27,5% do salário bruto deduzido do INSS
  • o salário líquido subtraindo a soma dos descontos do INSS e do IRRF do salário bruto

Saída: ​​​​​​O programa deve apresentar três informações:

  • o desconto do INSS,
  • o desconto do IRRF
  • o salário líquido 

Nesse ponto, vamos desenhar o nosso fluxograma para descrevermos os fluxo de execução das intruções.

Fluxograma

Escrevendo o Programa

Nesta etapa, trabalharemos com duas linguagens para facilitar o entendimento. Inicialmente, mostraremos o código em linguagem algoritmica e seu equivalente em linguagem C. Siga os passos abaixo e leia atentamente as explicações.

1. Adicionando as bibliotecas padrão.

Quando criamos nossos programas em C, nós nunca começamos do zero. Sempre reutilizamos funções desenvolvidas por outras pessoas mais experientes e bondosas que as disponibilizam para nós. Essas funções estão armazenadas em arquivos com extensão .h que devemos incluir no nosso programa. Elas são as famosas Bibliotecas de funções!

Inclua três bibliotecas comuns a todos os programas usando a diretiva de compilação #include
 

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

As bibliotecas incluídas com a diretiva #include são incluídas ao código do programa pelo Ligador (Linker) para formar o aplicativo executável. Veja a imagem abaixo.

Na imagem acima, temos o compilador que transforma os códigos escritos em C em códigos binários. Após isso, o Ligador (Linker) entra em ação anexando os arquivos das bibliotecas que declaramos ao código objeto. Finalmente, o código objeto unido ao código das bibliotecas forma o arquivo executável do nosso programa.

2. Escrevendo a função principal.
Todo programa C deve ser escrito dentro de uma função principal main(). Essa função é a primeira a ser executada quando o programa entra em execução. Escreva o código da função principal abaixo.

int main()
{

    return 0;
}

O código da função principal equivale as marcações de inicio e fimalgoritmo em linguagem algoritmica.

A partir do fluxograma identifique as variáveis, seus respectivos tipos e as declare na primeira linha do corpo da função principal. Como todas as variáveis devem armazenar números Reais, devemos declarar o seu tipo como float. Veja abaixo os códigos em linguagem algoritmica e seu equivalente em Linguagem C.

Em linguagem algoritmica:

Var
    salario_bruto: real
    salario_liquido: real
    inss: real
    irrf: real

Em linguagem C:

float salario_bruto; //armazena o salário bruto (tipo fracionário)
float salario_liquido; //armazena o salário líquido (tipo fracionário)
float inss; //armazena o valor em R$ do desconto do INSS (fracionário)
float irrf; //armazena o valor em R$ do desconto do IR (fracionário)

Repare que quando escrevemos em C, colocamos os tipos das variáveis antes de seus nomes.

Atenção!! O operador "//" informa que tudo o que vem depois é apenas um comentário e deve ser ignorado pelo compilador.

Na primeira linha do corpo da função principal (linha após o " { " ), utilize a função setlocale(<Escopo>, <Linguagem>), da biblioteca locale.h para modificar o idioma do terminal para português;

setlocale(LC_ALL, "Portuguese");

Dúvidas sobre essa função? Veja aqui

Após aprontar o esqueleto do programa, devemos implementar as etapas de Entrada, Processamento e Saída do programa.

3. Implementando a Entrada de Dados

Como podemos observar através do fluxograma, precisamos implementar a entrada de um único dado: o salário bruto!

Em linguagem algoritmica o nosso código seria o seguinte:

escreval("Informe o valor do salário bruto em R$: ")
leia(salario_bruto)

A função de entrada que mais utilizaremos na linguagem C é a scanf() que é equivalente a função leia() da linguagem algoritmica. Em contrapartida, temos a função de saída de dados printf(), equivalente a função escreval(). Do mesmo modo que na linguagem algoritmica, utilizaremos a função printf() para mostrar uma mensagem na tela informando o que esperamos que o usuário digite como informação de entrada.Em seguida utilizaremos a função scanf() para lermos um dado do teclado e armazenarmos em uma variável declarada.

Veja o código para entrada de dados em linguagem C:

printf("Informe o valor do salário bruto em R$: ");
scanf("%f", &salario_bruto); 

Vamos olhar a função scanf mais aprofundadamente. 

scanf("<codigo_tipo>", &<variavel>);

A função scanf recebe como argumentos um código referente ao tipo da variável a ser lida (%f) e o nome da variável (salario_bruto) precedido do operador &. O código do tipo "%f" informa que a função scanf deve esperar o usuário digitar um valor do tipo float (real) e armazenar no endereço da variável salario_bruto. O operador extrai o endereço de memória da variável salario_bruto. Por isso, escrevemos &salario_bruto. De posse do código do tipo e do endereço da variável, a função scanf pode fazer a leitura adequada do valor digitado pelo usuário =D. Veja abaixo uma tabela com códigos para cada tipo de variável:
Código Tipo da Variável
%c char
%s Strings
%d int
%f float

 

Dúvidas sobre as funções printf e scanf? Clique aqui

Terminada a etapa da entrada de dados, compile, execute e teste o programa para capturar possíveis erros;

4. Implementando as Operações de Processamento

Em seguida, escreva o código da etapa de processamento utilizando uma linha para cada caixa de processamento do fluxograma.

Vamos iniciar pela primeira caixa, que calcula a contribuição para o INSSBasta calcularmos 11% do salário bruto e armazenarmos o resultado na variável inss. Veja os códigos em linguagem algoritmica e em linguagem C abaixo:

Em linguagem algoritmica:

inss <- 0.11 * salario_bruto

Em linguagem C: 

inss = 0.11 * salario_bruto; // onde "=" é o operador de atribuição em C

Neste ponto, vamos calcular a contribuição para o imposto de renda (IRRF). Para isso, como já estabelecido no fluxograma, calcularemos 27% da diferença entre o salário bruto e o valor do INSS.

Em linguagem algoritmica:

irrf <- 0.27 * (salario_bruto - inss)

em linguagem C:

irrf = 0.27 * (salario_bruto - inss);

Importante! Repare  que os parênteseses indicam que a subtração deverá ser efetuada antes da multiplicação.

A última etapa do processamento é obter o valor do salário líquido, que é o objeto do nosso programa.

Em linguagem algoritmica:

salario_liquido <- salario_bruto - (inss + irrf)

Em linguagem C:

salario_liquido = salario_bruto - (inss + irrf);

5. Implementando a Etapa de Saída

De acordo com nosso fluxograma, temos três informações de saída, o valor da contribuição para o INSS, o valor da contribuição para o imposto de renda (IRRF) e o valor do salário líquido, todos calculados na etapa de processamento.

Veja abaixo os códigos para saída do valor do INSS.

Em linguagem algoritmica

escreval("O desconto para o INSS é de R$", inss, ".")

Em linguagem C:

printf("O desconto para o INSS é de R$ %.2f.\n", inss);

A função printf acima admite um texto com caracteres coringas, ou seja, partes que serão substituídas durante a execução para formar o texto que será mostrado na tela. Por exemplo, os caracteres %.2f serão substituídos pelo valor float da variável inss, listada logo após a vírgula. O .2 indica que o inss será mostrado com apenas duas casas decimais. Sem isso, o valor float seria mostrado com mais de dez números na parte fracionária! Repare que se quiséssemos mostrar um número com três ou quatro casas decimais, basta mudar para %.3f ou %.4f

Ainda na função printf acima, repare no \n ao final do texto entre aspas. Este caractere informa que, ao terminar de escrever o texto na tela, a função printf deve mover o cursor para a próxima linha. Dessa forma, as próximas mensagem serão colocadas na linha de baixo e não na mesma linha do texto do INSS.

De forma bem similar, vamos escrever os códigos para a saída do imposto de renda e do salário líquido.

Em linguagem algoritmica:

escreval("O desconto do imposto de renda é de R$", irrf, ".")
escreval("Seu salário líquido será de R$", salario_liquido, ".")

Em linguagem C:

printf("O desconto do imposto de renda é de R$ %.2f.\n", irrf);
printf("Seu salário líquido será de R$ %.2f.\n", salario_liquido);

Agora basta testar o seu programa para alguns valores de salário bruto e observar o resultado!! Anexe o seu programa na primeira questão dessa etapa para finalizar.

 


Questões

Questão 1
Questão 2
Questão 3
Questão 4
Questão 5

Comentários...

Não há comentários ainda... Seja o primeiro!