Apostila Lógica de Programação
86 pág.

Apostila Lógica de Programação


DisciplinaDesenvolvimento de Sistemas141 materiais578 seguidores
Pré-visualização14 páginas
os comandos 
(instruções) novamente, mas se a resposta for 'N' (não), o algoritmo deve ser 
finalizado escrevendo a mensagem 'Fim dos Cálculos'. 
 
3) Escreva um algoritmo para ler a nota de 5 alunos e contar quantos foram 
aprovados, sendo que, para ser aprovado, a nota deve ser maior ou igual a 6,0. 
Escrever o número de aprovados. 
 
4) Escreva um algoritmo que solicite um número e apresente todos os números de 0 
(zero) até o número digitado. 
 
 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
76 
Aula 7 
MODULARIZAÇÃO DE ALGORITMOS 
Objetivos da aula 
 
Ao final desta aula, você deverá ser capaz de: 
 
\u2022 Simplificar algoritmos muito grandes, usando o método da modularização; 
\u2022 Entender o uso de subrotinas e seus tipos de construção. 
Conteúdos da aula 
 
Acompanhe os assuntos desta aula, se preferir, ao 
término, assinale o conteúdo já estudado. 
\ufffd Modularização 
\ufffd Módulos 
\ufffd Funções 
\ufffd Passagem de parâmetros 
 
Chegamos na última aula do curso. Você percebeu que a cada aula, 
os conhecimentos obtidos foram sendo relacionados e evoluindo a 
complexidade de um algoritmo. 
Nesta aula, vamos ver uma abordagem para simplificar algoritmos e 
melhorar a manutenção de nossos programas. Este assunto é parte importante e 
também comum na construção de programas. 
Boa aula e vamos em frente! 
 
 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
77 
1 MODULARIZAÇÃO 
 
 A abordagem famosa \u201cdividir para conquistar\u201d é muito utilizada na programação 
de computadores. Há um estudo psicológico afirmando que o ser humano consegue 
resolver problemas contendo menos de sete variáveis simultâneas. Se um problema 
possui acima de nove variáveis simultâneas, é considerado um problema complexo, 
desta forma, a técnica de \u201cdividir para conquistar\u201d é utilizada para quebrar um 
problema complexo em vários pedaços, ou pequenos problemas simples. 
 Neste sentido, à medida que construímos um algoritmo, as necessidades e os 
problemas são resolvidos complementando cada vez mais a solução original. É 
comum que um algoritmo seja extenso e proporcional à complexidade que o 
problema apresenta, pois o conjunto de instruções é ampliado para atender à 
complexidade exigida, apresentando-se um tamanho cada vez maior. 
 Em resumo, problemas complexos normalmente exigem algoritmos extensos. 
 Em contrapartida, o principal objetivo da programação de computadores é 
escrever um programa o menor possível, para que se utilize um menor número de 
recursos (memória, espaço no disco rígido, etc.), enquanto se resolve o problema de 
forma objetiva. 
 Nesse cenário, o volume de instruções e estruturas condicionais no algoritmo 
geram grande dificuldade de leitura e, em caso de problema, levará muito tempo 
para localizar sua origem. A solução é quebrar ou dividir o algoritmo em várias e 
pequenas partes que, juntas, formarão um grande algoritmo. 
 Esses pedaços de instruções de programação são conhecidos por módulos 
ou subalgoritmos. Ao modularizar um algoritmo, buscamos aumentar a 
funcionalidade das partes do conjunto, facilitando o seu entendimento e 
possibilitando a reutilização das partes. 
 Todo programa modularizado contém um algoritmo principal (figura 26), o 
primeiro conjunto de instruções que serão executadas quando o programa for 
iniciado. A partir do algoritmo principal, são chamados os demais módulos que 
compõem o programa. 
 Um subalgoritmo normalmente resolve problemas simples, como a operação 
aritmética específica ou verifica se uma determinada entrada de dados foi realizada 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
78 
pelo usuário. Um subalgoritmo pode ser chamado pelo algoritmo principal ou por 
outros subalgoritmos que compõem o programa. Quando ocorre a chamada ao 
subalgoritmo, as instruções contidas serão executadas e, após sua execução, o 
processamento do programa retornará para o ponto de chamada. 
 Algumas características de um algoritmo refletem a abordagem de 
modularização: 
\u2022 Confiabilidade: pela divisão do problema em pequenas partes simples, 
aumenta a possibilidade da solução correta; 
\u2022 Legibilidade: o programa é fácil de ser lido e entendido por um programador 
de nível médio; 
\u2022 Facilidade de manutenção: o programa é fácil de ser modificado. Quando 
houver necessidade de mudança, a alteração será facilmente implementada. 
Na verdade, apenas pequenas partes receberão modificações; 
\u2022 Flexibilidade: o programa é fácil de ser reutilizado. 
 Por exemplo: 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
79 
 
 Figura 26 \u2013 Chamando um subalgoritmo 
 
Os programadores utilizam subalgoritmos por dois motivos: 
\u2022 Para facilitar a construção de algoritmos grandes: com a quebra do 
problema, usando pequenos conjuntos de instruções, é mais fácil 
realizar a manutenção no programa; 
\u2022 Para armazenar instruções repetitivas em uma única localização: 
algumas vezes você precisará realizar uma tarefa mais de uma vez em 
seu algoritmo. Ao invés de escrever as instruções repetidas vezes, 
você pode escrevê-las em um subalgoritmo, que fará parte do seu 
programa e poderá ser chamado várias vezes, em pontos diferentes do 
algoritmo; 
\u2022 Para delimitar o escopo (nível de abrangência) de variáveis: 
através da modularização, uma variável poderá consumir recursos do 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
80 
computador somente em determinados momentos do programa, 
otimizando a execução do mesmo. 
Existem dois tipos de subalgoritmos: módulos (ou procedimentos) e funções. 
Vamos conhecer cada um deles. 
2 MÓDULOS 
 
 Conforme vimos, ao dividirmos um algoritmo em pequenas partes 
interdependentes, esses pedaços são chamados subalgoritmos, mas a 
identificação dos subalgoritmos pode variar de acordo com a linguagem em uso. 
Algumas linguagens chamam subalgoritmos de módulos e outras chamam de 
procedimentos (podem também ser referenciados como desvios). Neste curso, 
vamos utilizar o termo módulo ao pedaço de programa que contém instruções que 
aceitam dados e utilizam estes dados para executar tarefas específicas. 
 Os módulos podem ser chamados em qualquer parte do algoritmo principal, 
como também podem ser chamados por outros módulos que estejam presentes no 
mesmo programa. 
 A chamada ao módulo representa a execução das ações contidas, em 
seguida, a execução retorna ao ponto da chamada (poderá ser o módulo principal ou 
outros módulos). Não existe ordem para definição dos módulos. 
 Um módulo é composto por duas ou três partes: 
\u2022 Nome do módulo; 
\u2022 Uma ou mais instruções que deverão ser executadas no módulo; 
\u2022 (Opcional) Dados fornecidos pelo algoritmo de origem, que serão utilizados 
para o processamento e execução das instruções contidas no módulo. (Este 
assunto será tratado no tópico Passagem de Parâmetros.) 
 
Veja na figura 27 um exemplo de construção de algoritmo com subalgoritmos, 
usando módulo. 
SOCIESC \u2013 Sociedade Educacional de Santa Catarina 
Algoritmos 
81 
 
Figura 27 \u2013 Pseudocódigo para chamar um módulo 
 
 
3 FUNÇÕES 
 
 As funções compreendem as mesmas características de um módulo. A 
diferença está no retorno do processamento do subalgoritmo. Em um módulo, o 
processamento ocorre manipulando variáveis do algoritmo principal e pode realizar 
várias transformações ao retornar ao ponto principal de chamada. As funções 
permitem o retorno de apenas um resultado e podem ser utilizadas como parte de 
uma expressão no algoritmo. 
 Dessa forma, uma função é um bloco de instruções que computa e devolve 
um valor, semelhante às funções matemáticas. 
Veja na figura 28 um exemplo de construção de algoritmo com subalgoritmos, 
neste caso usando Função. 
SOCIESC \u2013 Sociedade