Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação de Computadores Modularização Prof. Dr. Erivelton Geraldo Nepomuceno Depto. Engenharia Elétrica Sala 4.23 EL – Prédio do DEPEL http://www.ufsj.edu.br/nepomuceno nepomuceno@ufsj.edu.br 1/17 UM PROBLEMA DECORRENTE DO AVANÇO DA COMPUTAÇÃO (60’) → DESENVOLVIMENTO DE SOFTWARE SEM METODOLOGIA → MUITOS ERROS, CONSTANTE RETRABALHO E MANUTENÇÃO COMPLEXA: SOFTWARE ONEROSOS METODOLOGIAS PARA DESENVOLVIMENTO DE SOFTWARE: PROGRAMAÇÃO ESTRUTURADA! 2/17 Programação estruturada ● Desenvolvimento do algoritmo por refinamentos sucessivos ● Sistematização de estruturas de dados ● Uso sistematizado de um número limitado de estruturas de controle ● Transformação de refinamentos sucessivos em módulos → modularização ○ Decomposição do algoritmo em módulos ○ Dominar a complexidade ○ Organizar o processo de programação 3/17 Módulo ● Grupo de comandos com função bem definida e independente ● Trecho do algoritmo ● Muito útil quando ○ Usado repetidamente ○ É independente EXEMPLO (PÁGINA 175) Elaborar um algoritmo para calcular o salário líquido de um empregado 4/17 MÓDULO PRINCIPAL MÓDULO VANTAGENS MÓDULO DEDUÇÕES MODULARIZAÇÃO DO EXEMPLO DA PÁG. 175 5/17 Vantagens da modularização ● Manutenção mais simples sem efeitos colaterais no resto do código ● Independência na elaboração dos módulos ● Testes e correções dos módulos podem ser feitos separadamente ● Uniformidade no processo de desenvolvimento de software ● Reutilização do código (trabalho) ● Legibilidade do código ● Em síntese: ○ Maior qualidade ○ Maior eficiência 6/17 Objetos globais x locais ● Escopo de acesso às entidades (variáveis, arquivos, etc.) do algoritmo ● Módulos secundários “herdam” os objetos do módulo principal → o contrário não se dá A B C 7/17 MÓDULO PRINCIPAL MÓDULO VANTAGENS MÓDULO DEDUÇÕES Ferramentas para modularização ● Tipos ○ Sub-rotinas ■ Código modularizado ○ Funções ■ Código modularizado que retorna um valor ● Módulos hierarquicamente subordinados ao algoritmo ● Objetivos destes módulos: ○ Evitar repetição de seqüências de comandos ○ Dividir e estruturar o algoritmo ○ Aumentar a legibilidade 8/17 Múltiplos níveis de modularização MP S1 S2 F1 F2 S3 F3 S4 F4 9/17 S3 S3 S3 S3 10/17 MP S1 S2 F1 F2 S3 F3 S4 F4 Sintaxe da sub-rotina EXEMPLO Leia dado com uma pergunta ao usuário 11/17 EXEMPLO (PÁGINA 180) Dados 3 valores distintos, colocá-los em ordem REPETIÇÕES (MUDAM AS VARIÁVES) MODULARIZAÇÃO! 12/17 13/17 Passagem de dados ● Transferência de dados entre MP e módulos ● Vinculação dos módulos ● Depende da linguagem de programação ● Tipos nas linguagens de programação ○ Por valor ■ Parâmetros são do tipo “de entrada” ○ Por resultado ■ Parâmetros são do tipo “de saída” ○ Por referência ■ Parâmetros são do tipo “de entrada-saída” 14/17PORTUGOL Função ● Sub-rotinas que retornam valores ● Relação com funções matemáticas ○ ABS(A) ○ RESTO(A, B) ○ QUOCIENTE(A, B) ○ LOG(A,B) ○ … ● É necessário declarar o tipo retornado 15/17 Sintaxe da Função 16/17 EXEMPLO (PÁGINA 184) Escrever um algoritmo que leia as medidas dos três lados A, B e C de um paralelepípedo, calcule e escreva o valor de sua diagonal Fim algoritmo Algoritmo 17/17
Compartilhar