Você está na página 1de 33

22/04/2020 https://sagahcm.sagah.com.

br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

MODULARIZAÇÃO


Olá!
APRESENTAÇÃO

À medida que um so ware vai aumentando em tamanho e complexidade, a sua


manutenibilidade vai tornando-se mais di cil e dispendiosa. Dentre as várias técnicas que
você pode u lizar para ajudar a resolver esse problema, destaca-se a modularização, que
consiste na divisão do código em pequenos módulos, chamados de procedimentos e
funções.

Nesta Unidade de Aprendizagem, você aprenderá as vantagens da modularização, a


diferença entre funções e procedimentos, como criar as chamadas e u lizar variáveis
locais e globais.

Bons estudos.

Bons estudos.

Ao nal desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:


Iden ficar as diferenças entre funções e procedimentos.

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 1/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

Pra car a criação e chamada de funções e procedimentos.

Usar variáveis locais e globais.

 DESAFIO

Quando dividimos um programa em pequenas partes, cada uma delas tem seu papel bem
definido na execução. Como vantagens de dividir o programa em pequenas partes,
podemos citar:

- Facilita a detecção de erros, pois verificar qual é o módulo responsável pelo erro é em
princípio simples.
- Facilita o teste dos módulos individualmente.
- Facilita a manutenção no programa.

Imagine que você faz parte de uma equipe de desenvolvimento de uma empresa de
soluções na área financeira. Você tem um grande desafio: promover a modularização do
algoritmo que lista os clientes devedores em ordem decrescente.

Nesse algoritmo, você deve u lizar os conceitos de modularização aprendidos nesta


Unidade de Aprendizagem.

Crie um procedimento para ler os valores digitados a seguir pelo usuário:

algoritmo "Bolha" var valores:

var

valores:vetor[0..3] de real

aux:real
i, j:inteiro

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 2/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

inicio

para i de 0 ate 3 faca

escreval("digite o ", i+1,"º numero")

leia (valores[i])

fimpara

Crie um procedimento para ler os valores digitados a seguir pelo usuário:

para i de 0 ate 3 faca

para j de 0 ate 3 faca

se valores[i] > valores[j] então

aux

 INFOGRÁFICO

A modularização é a técnica de quebrar um algoritmo em pequenas partes, às quais


damos o nome de métodos (funções e procedimentos).

Na prá ca, temos um módulo principal que faz a chamada dos métodos
(funções/procedimentos).
Lembrando que um método (funções/procedimentos) pode chamar um outro método
(funções/procedimentos) e só após voltar ao módulo principal.

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 3/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 4/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 5/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

 CONTEÚDO DO LIVRO

Conforme um problema torna-se mais complexo, surge uma série de situações a serem
resolvidas para que ele seja solucionado. Podemos dizer que passamos a ter uma série de
"probleminhas", que, muitas vezes, afetam a legi midade e a clareza de um algoritmo,
fazendo com que uma consulta ou manutenção futura da lógica aplicada a ele seja uma
tarefa di cil de realizar.

No capítulo Modularização, do livro Estrutura de dados, você vai, justamente, descobrir


como é possível evitar essa situação.

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 6/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 7/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 8/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 9/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 10/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 11/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 12/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 13/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 14/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 15/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 16/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 17/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 18/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 19/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 20/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 21/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 22/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 23/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 24/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 25/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

 DICA DO PROFESSOR

Mesmo sendo implementados de forma diferente, os conceitos da modularização


con nuam valendo para todas as linguagens de programação. Saiba mais sobre o assunto
no vídeo.

Conteúdo disponível na plataforma virtual de ensino. Con ra!

 EXERCÍCIOS

1) Observe as alterna vas e assinale a que representa uma das vantagens de se usar a
modularização.

a) É mais fácil testar os módulos individualmente do que o programa completo.

b) A modularização deixa o algoritmo menor, o que facilita a detecção de erros no


código.

c) Dividindo o algoritmo em partes menores, não há necessidade de indentar o


código. Com isso, ganhamos em produ vidade.

d) Com a modularização, a declaração de variáveis globais passa a ser


desnecessária.

e) A modularização facilita a elaboração de critérios obje vos de divisão de


módulos.

2) Sobre funções e procedimentos, assinale a alterna va correta.

a) Uma função é um módulo que produz um único valor de saída, e um


procedimento é um po de módulo usado para várias tarefas, não produzindo
valores de saída.

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 26/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

b) Funções e procedimentos são diferentes apenas na forma como são


implementados. A realização da chamada é igual para os dois.

c) As variáveis definidas no escopo de cada função são acessíveis em todo o


programa.

d) As variáveis locais são declaradas no escopo do programa inteiro.

e) A passagem de parâmetros para um subalgoritmo pode ser somente por valor.

3) O algoritmo, a seguir, foi escrito para ler três números e retornar o maior deles. Dentre
as alterna vas a seguir, qual delas contém a linha de código com declaração de variável
local? 1. algoritmo "maior modularizado" 2. var 3. numero1, numero2, numero3: inteiro
4. 5.funcao maior(valor1, valor2, valor3: inteiro): inteiro 6.var 7.aux:inteiro 8.inicio 9.se
(valor1 > valor2) e (valor1 > valor3) entao 10.aux 11.senao 12.se (valor2 > valor3) entao
13.aux 14.senao 15.aux 16.fimse 17.fimse 18.retorne aux 19.fimfuncao 20. 21. 22.inicio
23. 24.escreva("Digite o 1. número: ") 25.leia(numero1) 26. 27.escreva("Digite o 2.
número: ") 28.leia(numero2) 29. 30.escreva("Digite o 3. número: ") 31.leia(numero3) 32.
33.escreva("O maior é ", maior(numero1, numero2, numero3)) 34. 35.fimalgoritmo

a) Linha 3

b) Linha 4

c) Linha 7

d) Linha 9

e) Linha 12

4) Há duas maneiras de se passar argumentos ou parâmetros para funções: por valor e


por referência. Sobre passagem de parâmetros por valor e por referência, assinale a
alterna va correta.

a) Na passagem por referência, o que é passado como argumento no parâmetro


formal é o valor da variável.

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 27/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

b) Na passagem por valor, o valor é copiado do argumento para o parâmetro


formal da função.

c) Por exemplo, quando duas variáveis inteiras i1 e i2 são passadas por valor à
função troca() chamada pelo programa principal, elas também são alteradas no
programa principal.

d) Na passagem por referência, dentro da função, o argumento real u lizado na


chamada é acessado por meio do seu endereço; sendo assim, ele não é alterado.

e) Na passagem por valor, quaisquer alterações feitas nesses parâmetros dentro da


função irão afetar as variáveis usadas como argumentos para chamá-la.

5) Baseado no que foi visto nesta Unidade de Aprendizagem sobre modularização, e


analisando o algoritmo a seguir, marque a alterna va correta. algoritmo "triangulo" var
lado1, lado2, lado3:inteiro po:caracter valido:logico procedimento lerDados() inicio
escreva("Digite o 1. lado: ") leia(lado1) escreva("Digite o 2, lado: ") leia(lado2)
escreva("Digite o 3, lado: ") leia(lado3) fimprocedimento funcao ehTriangulo(lado1,
lado2, lado3: inteiro): logico inicio se (lado1 < (lado2 + lado3)) e < (lado1 (lado3 lado2))
entao> retorne verdadeiro senao retorne falso fimse fimfuncao funcao
qualTriangulo(lado1, lado2, lado3:inteiro): caracter inicio se (lado1 = lado2) e (lado1 =
lado3) e (lado2 = lado3) entao retorne "equilátero" senao se (lado1 lado2) e (lado1 lado3)
e (lado2 lado3) entao retorne "escaleno" senao retorne "isósceles" fimse fimse fimfuncao
inicio lerDados() valido se (valido) entao po escreval("Triângulo ", po) senao
escreval("Os lados informados não formam um triâgulo") fimse fimalgoritmo

a) O algoritmo compila e executa corretamente.

b) O algoritmo compila, mas não executa corretamente, pois, se o usuário entrar


com os valores "20", "20" e "30", é mostrada a mensagem "os lados informados
não formam um triâgulo", ao invés da mensagem "triângulo isósceles".

c) O algoritmo não compila, pois o procedimento "lerDados" não recebe nenhum


parâmetro, e procedimentos devem, obrigatoriamente, receber parâmetros.

d) O algoritmo não está modularizado, pois está todo escrito em um único arquivo.

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 28/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

e) O algoritmo não compila, pois as funções "ehTriangulo" e "qualTriangulo"


possuem parâmetros com o mesmo nome, o que não é permi do.

 NA PRÁTICA

Um item importante dentro da modularização é a declaração de variáveis. E as variáveis


podem ser locais e globais.

As variáveis globais são declaradas antes das funções/procedimentos, e as variáveis locais


dentro das funções/procedimentos. Evite declarar variáveis globais com o mesmo nome
das variáveis locais, pois poderá gerar confusão nos momentos de manutenção do código.

Veja o exemplo de codificação de um sistema de emprés mo de livros em uma biblioteca,


no qual podemos inden ficar declaração de funções, procedimentos, variáveis globais,
variáveis locais, estruturas de repe ção e estruturas condicionais.

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 29/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 30/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 31/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 32/33
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361

 SAIBA +

Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do
professor:

Leia o ar go Modularização de programas usando a Linguagem C, que traz conceitos sobre


o tema:
Conteúdo disponível na plataforma virtual de ensino. Con ra!

Leia o texto Trabalhando com métodos em Java, para saber mais sobre cada um deles e
como ajudam no design do sistema:
Conteúdo disponível na plataforma virtual de ensino. Con ra!

Assista ao vídeo Modularização de Programas - Lógica de Programação, sobre as vantagens


da modularização, passagem de parâmetros e a documentação de funções:
Conteúdo disponível na plataforma virtual de ensino. Con ra!

https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16245361 33/33

Você também pode gostar