Programação de Computadores

Propaganda
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
[email protected]
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
MODULARIZAÇÃO DO EXEMPLO DA PÁG. 175
MÓDULO
PRINCIPAL
MÓDULO
VANTAGENS
MÓDULO
DEDUÇÕES
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á
MÓDULO
PRINCIPAL
MÓDULO
VANTAGENS
B
C
A
MÓDULO
DEDUÇÕES
7/17
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
S3
S2
F3
F1
S4
F2
F4
9/17
MP
S1
S2
F1
F2
S3
S3
F3
S4
F4
S3
S3
S3
10/17
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”
PORTUGOL
14/17
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
Algoritmo
Fim algoritmo
17/17
Download