Está en la página 1de 4

Modularização

Conceito:
O uso de uma técnica de refinamentos sucessivos nos possibilita, já nas etapas iniciais
do desenvolvimento
de uma solução para um problema computacional, certas abstrações sobre as tarefas a
serem executadas
no algoritmo. Estas abstrações são definidas apenas pelo seu efeito e constituem uma
definição funcional
da tarefa. Nas etapas posteriores, cada descrição funcional é substituída por trechos
mais elaborados que
especificam as etapas do processo: os módulos.
Identificado também por Programação Top - Down, temos nessa técnica uma estratégia
que busca a solução
de um problema a partir "do todo" observando em seguida as "particularidades"
necessárias à resolução.
Quando desenvolvemos um algoritmo por refinamentos sucessivos procuramos dividir o
algoritmo em unidades
que representam as tarefas mais elementares, que se possa detectar e, para compor a
solução do problema.
Um algoritmo projetado dessa forma será composto de módulos, que representam
grupos de comandos que
executam uma tarefa específica: no corpo do algoritmo ou espalhados em módulos
independentes.

Vejamos um exemplo com a solução do problema em pseudocódigo e depois sua tradução


para Linguagem C:

Problema: "elaborar um programa para cálculo da Folha de Pagamento de uma Empresa"


Solução:

1ªetapa: um algoritmo simples seria

PROGRAMA Folha
LEIA "dados do funcionário"
Determine o Salário
ESCREVA "Salário Calculado"
FIM

Precisamos refinar o comando "Determine o Salário", resultando:

PROGRAMA Determine o salário


Calcule os proventos
Calcule as deduções
Calcule o Salário Líquido
FIM

Ao elaborar o refinamento não houve preocupação de como o processo de cálculo dos


proventos
e das deduções seria efetuado. Essas ações constituem funções bem definidas no
programa e
serão executadas por módulos específicos. Nessa fase podemos optar pelo
desenvolvimento de módulos
para o cálculo dos proventos e das deduções. Obtemos:

PROGRAMA Determine o salário


proventos
deduções
Calcule o Salário Líquido
FIM

Correspondendo aos módulos:

PROGRAMA proventos
Determina o Salário Bruto
FIM

PROGRAMA deduções
Determina as deduções salariais
FIM

Vejamos como ficam esses módulos sabendo que:


- o cálculo dos proventos junta o salário bruto (horas trabalhadas * salário-hora)
com o salário família
- as deduções representam os descontos de INSS e IRPF a partir dos cálculos:
. desconto INSS = salário bruto * alíquota
. desconto IRPF = (salário bruto - desconto INSS) * alíquota - desconto
tabela IRPF
. tabelas com alíquotas e descontos baseados nas faixas de salário:
INSS IRPF tabela
descontos -IRPF
faixa de salário alíquota faixa de salário alíquota faixa de
salário valor
<= 1000 8% <= 1000 0% <=
1000 0
1000 < s <= 2500 10% 1000 < s <= 2500 15% 1000 < s <=
2500 100
> 2500 12% > 2500 27% >
2500 300

PROGRAMA proventos
Salário Bruto ← horas trabalhadas * salário-hora
Salário Família ← número de filhos * valor referência de salário - família
Proventos ← Salário Bruto + Salário Família
FIM

PROGRAMA deduções
INSS ← Salário Bruto * alíquota INSS
IRPF ← (Salário Bruto - INSS) * alíquota IRPF - desconto_IRPF
Deduções ← INSS + IRPF
FIM

detalhando os cálculos de alíquotas e descontos;

PROGRAMA alíquota INSS


SE Salário Bruto <= 1000
ENTÃO Alíquota ← 8%
SENÃO SE Salário Bruto <= 2500
ENTÃO Alíquota ← 10%
SENÃO Alíquota ← 12%
FIM

PROGRAMA alíquota IRPF


SE (Salário Bruto - INSS) <= 1000
ENTÃO Alíquota ← 0%
SENÃO SE (Salário Bruto - INSS) <= 2500
ENTÃO Alíquota ← 15%
SENÃO Alíquota ← 27%
FIM

PROGRAMA desconto_IRPF
SE (Salário Bruto - INSS) <= 1000
ENTÃO Desconto ← 0
SENÃO SE (Salário Bruto - INSS) <= 2500
ENTÃO Desconto ← 100
SENÃO Desconto ← 300
FIM

Assim, completamos nosso desenvolvimento obtendo:

... módulos para cálculo de alíquotas e descontos


... módulos para cálculo de proventos e deduções

PROGRAMA Determine o salário


proventos
deduções
Salário Líquido ← Proventos - Deduções
FIM

PROGRAMA Folha
LEIA "dados do funcionário"
Determine o Salário
ESCREVA "Salário Calculado"
FIM
Em anexo temos a implementação em linguagem C, onde empregamos funções
simples e também uma simulação.

Poderíamos ter uma solução mais "enxuta" com o uso de variáveis globais e assim
realizar uma só chamada da
função salário_bruto... confira no anexo 2 !

Exercício E10

Escreva um programa em linguagem C, para controlar as vendas de uma loja atendendo as


ações:
1. A cada venda deverá:
1.1 ler o código do cliente - com valores entre “101” e “550” - que em geral já está cadastrado,
ou usa-se
“666” para clientes novos ou não cadastrados.
1.2 ler a quantidade de itens (produtos) vendidos ao cliente;
1.3 ler o código e a quantidade de cada produto vendido
1.4 calcular o valor total de cada item (produto) a partir do preço unitário obtido na tabela-1;
1.5 calcular o valor total da nota fiscal – somando-se todos os itens vendidos;
1.6 calcular o valor do desconto, seguindo a tabela-2 e aplicado sobre o total de vendas na nota
fiscal;
1.7 calcular o valor líquido a receber após o desconto;
1.8 mostrar o resultado de todos os cálculos.

2. O programa deverá acumular o total de vendas do dia registrando o valor total antes e depois
dos
descontos concedidos. No final do dia, deverá calcular o valor médio dos totais de vendas
acumulados.

3. O programa é encerrado quando foi lido um código de cliente de valor “999”, mostrando então
os valores
totais acumulados e os valores médios calculados.

4. Escreva funções para atender os itens 1.4 e 1.4 acima.

tabela - 1 tabela - 2
código preço R$ preço total R$ Desconto
01 a 10 10,00 até 250,00 5%
11 a 20 15,00 entre 250,01 e 500,00 10%
21 a 30 20,00 maior que 500,00 15%
31 a 40 25,00

También podría gustarte