Professional Documents
Culture Documents
COMPUTACIONAL E
INTRO. AO CLCULO NUMRICO
Aula 16 Python (parte VIII):
Modularizao de Algoritmos
INTRODUO
Um problema complexo pode ser simplificado quando
dividido em vrios problemas menores.
Decomposio
Reduo de complexidade;
Permite focalizar a ateno em um problema
pequeno de cada vez;
Produz melhor compreenso do todo.
2/14
DECOMPOSIO
Analogia com o corpo humano:
Decomposio em sistemas (digestivo,
respiratrio, nervoso, cardiovascular, etc.)
Sistemas por sua vez so decompostos em rgos
Processo de decomposio tambm chamado de
refinamentos sucessivos:
Parte-se de um problema complexo e abrangente,
que sucessivamente dividido at resultar em
problemas mais simples e especficos.
3/14
4/14
PROCESSO DE DECOMPOSIO
Analisar a
diviso obtida
para garantir
coerncia.
Se alguma
parte ainda
permanecer
complexa,
decomp-la
tambm.
Analisar o
resultado para
garantir
entendimento
e coerncia
Dividir o
problema em
suas partes
principais.
Programao Computacional e Introduo ao Clculo Numrico
5/14
SUB-ROTINAS, SUBALGORITMOS
(FUNES OU PROCEDIMENTOS)
Depois de decompor um problema complexo em
subproblemas, podemos construir um subalgoritmo
(funo ou procedimento) para cada subproblema.
Os programas em geral so executados linearmente,
uma linha aps a outra, at o fim.
As funes e procedimentos permitem a realizao
de desvios na execuo dos programas.
Desvios so efetuados quando uma funo ou
procedimento chamado pelo programa principal.
6/14
PROCEDIMENTOS EM PYTHON
A linguagem Python possibilita a modularizao de
programas por meio de funes ou procedimentos.
Uma definio de procedimento tem a seguinte forma
abstrata:
def <nome>(<par 1>, ..., <par n>):
<comando 1>
<comando 2>
...
<comando m>
onde:
<nome> o nome da funo (com as mesmas restries de
um nome de varivel)
<par 1>, ..., <par n> uma lista de parmetros
<comando ...> o corpo da funo, uma lista de comandos
Programao Computacional e Introduo ao Clculo Numrico
7/14
EXEMPLO DE PROCEDIMENTO
>>> def helloworld(nome):
print("Ol,%s" %nome)
>>> helloworld(Marcos)
Ol, Marcos
>>>
8/14
FUNO EM PYTHON
Uma definio de funo tem a seguinte forma
abstrata:
def <nome>(<par 1>, ..., <par n>):
<comando 1>
<comando 2>
...
<comando m>
return <algo>
onde:
<nome> o nome da funo (com as mesmas restries de
um nome de varivel)
<par 1>, ..., <par n> uma lista de parmetros
<comando ...> o corpo da funo, uma lista de comandos
return <algo> o comando que faz a funo retornar um
valor
Programao Computacional e Introduo ao Clculo Numrico
9/14
EXEMPLO DE FUNO
>>> def quadrado(x):
return x*x
>>> a = 2
>>> print(quadrado(a+3))
25
>>>
10/14
11/14
12/14
HORA DE TRABALHAR
1) Modularize o programa abaixo:
numero = int(input(Entre com um nmero: ))
resto = numero % 2
if resto == 0:
print(Nmero %d par % numero)
else:
print(Nmero %d mpar % numero)
13/14
HORA DE TRABALHAR
2) Modularize o programa abaixo:
nota1 = float(input(Nota 01: ))
nota2 = float(input(Nota 02: ))
media = (nota1 + nota2)/2
if media >= 7:
print(Aluno aprovado)
elif 4 < media < 7:
print(AF)
else:
print(Aluno reprovado)
Programao Computacional e Introduo ao Clculo Numrico
14/14