You are on page 1of 7

PROG.

COMPUTACIONAL E
INTRO. AO CLCULO NUMRICO
Aula 16 Python (parte VIII):
Modularizao de Algoritmos

Prof. Marcos Vinicius


E-mail: marcos.vinicius@ufc.br
1/14
Programao Computacional e Introduo ao Clculo Numrico

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.

Programao Computacional e Introduo ao Clculo Numrico

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.

Programao Computacional e Introduo ao Clculo Numrico

3/14

IDEIA: DECOMPOR ALGORITMOS EM


MDULOS OU SUBALGORITMOS OU SUBROTINAS OU FUNES

Programao Computacional e Introduo ao Clculo Numrico

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.

Programao Computacional e Introduo ao Clculo Numrico

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
>>>

Programao Computacional e Introduo ao Clculo Numrico

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
>>>

Programao Computacional e Introduo ao Clculo Numrico

10/14

VAMOS TREINAR UM POUCO?


Faa uma sub-rotina em Python que imprima seu
nome 100 vezes na tela.
Faa uma sub-rotina em Python que imprima seu
nome n vezes na tela.
Faa uma sub-rotina em Python que calcule a
hipotenusa de um tringulo retngulo.
Faa uma sub-rotina em Python que informe a
quantidade de vogais de uma frase.

Programao Computacional e Introduo ao Clculo Numrico

11/14

Programao Computacional e Introduo ao Clculo Numrico

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)

Programao Computacional e Introduo ao Clculo Numrico

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

You might also like