1 Algoritmos e Estruturas de Dados IModularização Prof. Fabio Henrique N. Abe
2 Como Modularizar Identificar as tarefas de cada MóduloPensar quais subproblemas podem ser resolvidos Escolher o tipo de Módulo Procedimento ou Função Determinar os parâmetros de cada Módulo O que precisa ser informado para o Módulo e se ele precisa devolver alguma informação para o programa principal
3 Tipos de Módulos FunçãoÉ um bloco de instruções (sub-algoritmo) que realiza uma tarefa e retorna um valor para o bloco que a chamou. Procedimento É um bloco de instruções (sub-algoritmo) que realiza uma tarefa e volta ao bloco chamador sem devolver um valor específico.
4 Tipos de Variáveis Variáveis GlobaisTem visibilidade para o módulo principal e quaisquer outros módulos existentes Variáveis Locais Tem visibilidade apenas no módulo no qual foi declarada.
5 Sintaxe Função função
6 Sintaxe Procedimento procedimento
7 retorne(...) função media_e_soma (real: x, y, z) : real { real media, soma; soma ← x + y + z; media ← soma / 3; retorne (media); } O que fazer se a função precisar devolver ao bloco chamador o resultado de soma?
8 retorne(...) função media_e_soma (real: x, y, z; real: var soma) : real { real media; soma ← x + y + z; media ← soma / 3; retorne (media); } A função receberá mais uma variável como parâmetro e ao fim da execução o conteúdo de soma será copiado na variável passada como parâmetro.
9 Exercícios (Refinamentos Sucessivos)01) Escreva um algoritmo que faça a leitura de 3 notas (real de 0 a 10) e de três pesos (real de 1 a 10). O algoritmo deve calcular a média aritmética e a média ponderada do estudante. Crie uma função que receba as três notas, os três pesos e uma letra. Se a letra for “A”, a função deve retornar a média aritmética, se a letra for “P” a mesma função deve retornar a média ponderada. Realize o máximo de refinamentos que você conseguir (Mínimo 4).
10 Exercícios (Refinamentos Sucessivos)02) Faça um algoritmo que receba dois números inteiros (de 0 a 1000) e que calcule a média dos números ímpares e a média dos números pares do intervalo. Os dois números podem ser digitados em qualquer ordem. Realize o máximo de refinamentos que você conseguir (Mínimo 5).
11 Exercícios (Refinamentos Sucessivos)03) Escreva um algoritmo que receba dois números inteiros não negativos (de 0 a ) e mostre qual dos dois números possui a maior quantidade de divisores primos. Por exemplo, o número 26. É divisível por 1, 2, 13 e 26. Destes números, somente 1, 2 e 13 são primos. Realize o máximo de refinamentos que você conseguir (Mínimo 6).