Buscar

INF 100 - Introdução à programação (UFV) - Aula 07 - Funções (Parte 1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1
Un
ive
rsid
ade
 Fe
der
al d
e V
iço
sa
Universidade Federal de Viçosa
Centro de Ciências Exatas e Tecnológicas
Departamento de Informática
INF 100 – Introdução à Programação
Funções
(parte 1)
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
22
Departamento de Informática
Motivação
• Exemplo de cálculo de usando o algoritmo proposto
por Heron de Alexandria (Método de Newton):
1. Leia x
2. Faça r = x/2 # chute inicial para a raiz
3. Faça r = (r + x/r) / 2
4. Se |r² - x| > , retorne ao passo 3
5. Escreva r
onde  = um erro estabelecido qualquer, por exemplo, 10-10.
x
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
33
Departamento de Informática
Motivação
• Possível implementação em Python:
x = float( input('Entre com o valor de x: '))
r = x/2 # chute inicial para a raiz
while abs( r*r - x ) > 1e-10:
r = (r + x/r) / 2
print('Raiz de', x, '=', r )
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
4
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
44
Departamento de Informática
Motivação
• Imagine se tivéssemos que usar o Método de
Newton sempre que fosse preciso calcular uma
raiz quadrada!
– Código confuso.
– Difícil reusar em outros programas.
– Fácil cometer erros.
– Por que preciso saber como calcular raiz (ou seno,
cosseno, logaritmo etc.) sempre que precisar disso?
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
5
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
55
Departamento de Informática
Funções em Python
• Por isso usamos funções:
import math
x = float( input('Entre com o valor de x: '))
r = math.sqrt( x )
print('Raiz de', x, '=', r )
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
6
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
66
Departamento de Informática
Funções em Python
• Outros exemplos de funções da biblioteca math:
– log(x)
– log10(x)
– exp(x)
– sqrt(x)
– tan(x)
– sin(x)
– cos(x)
– …
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
7
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
77
Departamento de Informática
# Este programa calcula o dia e mês do
# domingo de páscoa entre um ano inicial
# e um ano final fornecidos pelo usuário
ano1 = int( input('Digite o ano inicial (1582 a 2499): '))
while ano1 < 1582 or ano1 > 2499:
ano1 = int( input('Digite o ano inicial (1582 a 2499): '))
print()
ano2 = int( input('Digite o ano final (1582 a 2499) : '))
while ano2 < 1582 or ano2 > 2499:
ano2 = int( input('Digite o ano final (1582 a 2499) : '))
print('\nAno Data da Páscoa')
print('----------------------')
ano = ano1
while ano <= ano2:
...
Identificando oportunidades
para reuso de código...
Prática 05
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
8
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
88
Departamento de Informática
# Este programa calcula o dia e mês do
# domingo de páscoa entre um ano inicial
# e um ano final fornecidos pelo usuário
ano1 = int( input('Digite o ano inicial (1582 a 2499): '))
while ano1 < 1582 or ano1 > 2499:
ano1 = int( input('Digite o ano inicial (1582 a 2499): '))
print()
ano2 = int( input('Digite o ano final (1582 a 2499) : '))
while ano2 < 1582 or ano2 > 2499:
ano2 = int( input('Digite o ano final (1582 a 2499) : '))
print('\nAno Data da Páscoa')
print('----------------------')
ano = ano1
while ano <= ano2:
...
Identificando oportunidades
para reuso de código...
Prática 05
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
9
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
99
Departamento de Informática
while True:
n = int( input('Entre com a quantidade de alunos: '))
if n < 2 or n > 50:
print('Valor deve estar entre 2 e 50')
else:
break
soma = 0
for i in range(0, n):
while True:
x = int( input('Entre com a nota do próximo aluno: '))
if x < 0 or x > 100:
print('Valor deve estar entre 0 e 100')
else:
break
soma = soma + x
media = soma / n
print('Média das notas:', media )
Identificando oportunidades
para reuso de código...
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
10
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1010
Departamento de Informática
...
while True:
n = int( input('Entre com a quantidade de alunos: '))
if n < 2 or n > 50:
print('Valor deve estar entre 2 e 50')
else:
break
soma = 0
for i in range(0, n):
while True:
x = int( input('Entre com a nota do próximo aluno: '))
if x < 0 or x > 100:
print('Valor deve estar entre 0 e 100')
else:
break
soma = soma + x
media = soma / n
Identificando oportunidades
para reuso de código...
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
11
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1111
Departamento de Informática
Funções em Python
O código para a função leiaInt será apresentado mais adiante...
# Este programa calcula o dia e mês do
# domingo de páscoa entre um ano inicial
# e um ano final fornecidos pelo usuário
ano1 = leiaInt('Digite o ano inicial (1582 a 2499): ', 1582, 2499)
print()
ano2 = leiaInt('Digite o ano final (1582 a 2499) : ', 1582, 2499)
print('\nAno Data da Páscoa')
print('----------------------')
ano = ano1
while ano <= ano2:
...
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
12
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1212
Departamento de Informática
Funções em Python
O código para a função leiaInt será apresentado mais adiante...
n = leiaInt('Entre com a quantidade de alunos: ', 2, 50)
soma = 0
for i in range(0, n):
x = leiaInt('Entre com a nota do próximo aluno: ', 0, 100)
soma = soma + x
media = soma / n
print('Média das notas:', media )
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
13
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1313
Departamento de Informática
Funções em Python
• Vantagens do uso de funções:
– Modularidade e clareza do código fonte.
– Reuso de software.
– Menores chances de erros.
– Separar o uso da função de seus detalhes de
implementação.
– Permitem pensar no algoritmo em mais alto nível
primeiro, para depois ir refinando ao nível de
comandos da linguagem de programação.
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
14
INF
 10
0–
Int
rod
ução à
 Pr
ogr
am
açã
o
1414
Departamento de Informática
Funções em Python
• Para criar uma função, devemos conhecer bem as
suas necessidades:
– A função necessita de dados de entrada (parâmetros)?
– Se sim, quais dados?
– Espera-se que a função responda com alguma
informação?
– Se sim, qual ou quais?
• Essas perguntas devem ser respondidas enquanto se
projeta a função, e elas estarão especificadas na
declaração da mesma.
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
15
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1515
Departamento de Informática
Definição de uma função em Python
def nome( lista_de_parâmetros ):
<comandos>
return <valor(es) de retorno>
• nome: nome usado para chamar (usar) a função.
• lista_de_parâmetros: dados (constantes,
variáveis) passados para a função.
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
16
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1616
Departamento de Informática
Funções em Python
• Para se trabalhar com funções deve-se
– Declarar a função;
– Programar a função;
– Evocar (chamar, usar) a função.
• Exemplo: definição da função leiaInt()...
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
17
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1717
Departamento de Informática
# Este programa calcula o dia e mês do
# domingo de páscoa entre um ano inicial
# e um ano final fornecidos pelo usuário
def leiaInt( msg, vmin, vmax ):
v = int( input( msg ))
while v < vmin or v > vmax:
v = int( input( msg ))
return v
ano1 = leiaInt('Digite o ano inicial (1582 a 2499): ', 1582, 2499)
print()
ano2 = leiaInt('Digite o ano final (1582 a 2499) : ', 1582, 2499)
print('\nAno Data da Páscoa')
print('----------------------')
ano = ano1
while ano <= ano2:
...
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
18
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1818
Departamento de Informática
Funções em Pythondef leiaInt( msg, vmin, vmax ):v = int( input( msg ))
while v < vmin or v > vmax:
print('Valor deve estar entre', vmin, 'e', vmax )
v = int( input( msg ))
return v
n = leiaInt('Entre com a quantidade de alunos: ', 2, 50)
soma = 0
for i in range(0, n):
x = leiaInt('Entre com a nota do próximo aluno: ', 0, 100)
soma = soma + x
media = soma / n
print('Média das notas:', media )
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
19
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
1919
Departamento de Informática
Exercício
• Defina uma função chamada abs() que aceita
como parâmetro um valor x qualquer e retorna o
módulo ou valor absoluto de x.
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
20
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2020
Departamento de Informática
Exercício
def abs( x ):
if x < 0:
return -x
else:
return x
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
21
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2121
Departamento de Informática
Exercício – programa completo
def abs( x ):
if x < 0:
return -x
else:
return x
x1 = float( input('Entre com o x1: '))
x2 = float( input('Entre com o x2: '))
print('|x1 - x2| =', abs( x1-x2 ))
print('|x1| =', abs( x1 ))
print('|x2| =', abs( x2 ))
1
2
3
4
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
22
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2222
Departamento de Informática
Passagem de parâmetro – por valor
1. A expressão é avaliada (uma constante, umavariável ou uma expressão / fórmula);
2. O valor-resultado é copiado para dentro doparâmetro da função, obedecendo a mesma ordemde chamada e de declaração;
3. A execução do programa é desviada para o início dafunção;
4. Ao encontrar um comando return, o programaretorna a execução para o local de onde a funçãofoi chamada, juntamente com o valor de retorno,se houver.
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
23
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2323
Departamento de Informática
def leiaInt( msg, vmin, vmax ):
v = int( input( msg ))
while v < vmin or v > vmax:
v = int( input( msg ))
return v
def leiaInt( msg, vmin, vmax ):
v = int( input( msg ))
while v < vmin or v > vmax:
print('Valor deve estar entre', vmin, 'e', vmax )
v = int( input( msg ))
return v
Esta função não mostra uma
mensagem de erro quando o
usuário entra com um valor fora
do intervalo.
Esta função mostra!
Como implementar uma função mais genérica, que pode mostrar ou não
a mensagem de erro, de acordo com a minha necessidade?
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
24
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2424
Departamento de Informática
def leiaInt( msg, vmin, vmax, mostraErro ):
v = int( input( msg ))
while v < vmin or v > vmax:
if mostraErro:
print('Valor deve estar entre', vmin, 'e', vmax )
v = int( input( msg ))
return v
ano1 = leiaInt('Ano inicial (1582 a 2499): ', 1582, 2499, False)
print()
ano2 = leiaInt('Ano final (1582 a 2499) : ', 1582, 2499, False)
...
n = leiaInt('Entre com a quantidade de alunos: ', 2, 50, True)
soma = 0
for i in range(0, n):
x = leiaInt('Entre com a nota do próximo aluno: ', 0, 100, True)
soma = soma + x
media = soma / n
print('Média das notas:', media )
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
25
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2525
Departamento de Informática
def leiaInt( msg, vmin, vmax, mostraErro=True ):
v = int( input( msg ))
while v < vmin or v > vmax:
if mostraErro:
print('Valor deve estar entre', vmin, 'e', vmax )
v = int( input( msg ))
return v
ano1 = leiaInt('Ano inicial (1582 a 2499): ', 1582, 2499, False)
...
n = leiaInt('Entre com a quantidade de alunos: ', 2, 50 )
Parâmetros podem assumir valores ”default”:
mostraErro=False
mostraErro=True
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
26
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2626
Departamento de Informática
Funções em Python
• Nos casos anteriores, as funções abs() e
leiaInt() retornam um resultado.
• Podemos ter funções que executam alguma
tarefa específica mas não retornam nenhum
valor como resultado. Ex.:
sound( frequencia, duracao_ms )
Propósito: emitir um som com determinada frequência
em hertz e duração em ms pelo autofalante do
computador.
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
27
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2727
Departamento de Informática
Funções em Python
def sound( frequencia, duracao_ms ):
...
...
...def sound( frequencia, duracao_ms ):
...
...
return
Nesse caso não precisa ter o comando return. A
execução da função terminará quando o último
comando da função for executado.
Ou pode ter o comando return, mas sem o
valor de retorno.
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
28
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2828
Departamento de Informática
Funções em Python
• Também podemos ter funções que não
recebem nenhum parâmetro:
def beep():
...
def pi():
return 3.1415926535897
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
29
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
2929
Departamento de Informática
Funções em Python
• Exemplos de uso:
beep()
sound( 200, 1000 )
print( pi() )
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
30
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3030
Departamento de Informática
Mais exemplos
...
def media( a, b ):
m = (a + b) / 2
return m
m = media( 5.5, 7.8 )
print('Média =', m )
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
31
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3131
Departamento de Informática
Mais exemplos
...
def media( a, b ):
return (a + b) / 2
m = media( 5.5, 7.8 )
print('Média =', m )
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
32
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3232
Departamento de Informática
Mais exemplos
...
def maior( a, b ):
if a > b:
return a
else:
return b
x = float( input('x = '))
y = float( input('y = '))
print('Maior valor =', maior( x, y ))
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
33
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3333
Departamento de Informática
Funções em Python
• Erros comuns:
def f( x, y ):
r = x*x + y
def funcao( x, y ):
return x*x + y
def pi():
return 3.1415926535897
print( pi )
print( funcao( 12 ))
(esqueceu do return)
pi()
(faltou um parâmetro)
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
34
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3434
Departamento de Informática
Exercício 1
• Implemente uma função que recebe como
parâmetros três valores reais a, b e c, e retorna o
maior deles. Use duas abordagens:
a) Uma função maior3( a, b, c ) totalmente
independente;
b) Uma função maior3( a, b, c ) que usa a
função maior( a, b ) já feita antes.
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
35
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3535
Departamento de Informática
Exercício 1a
def maior3( a, b, c ):
if a > b and a > c:
return a
else:
if b > c:
return b
else:
return c
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
36
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3636
Departamento de Informática
Exercício 1a
def maior3( a, b, c ):
m = a
if b > m: m = b
if c > m: m = c
return m
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
37
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3737
Departamento de Informática
Exercício 1b
def maior( a, b ):
if a > b: return a
else: return b
def maior3( a, b, c ):
return maior( maior( a, b ), c )
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
38
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3838
Departamento de Informática
Exercício 2
• Implemente uma função que recebe como
parâmetro um valor inteiro n e retorna o valor de
n!. A função pode supor que n será sempre
inteiro e não negativo, sem ter que verificar essa
condição.
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
39
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
3939
Departamento de Informática
Exercício 2
# versão 1
def fatorial( n ):
fat = 1
while n > 1:
fat = fat * n
n = n - 1
return fat
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
40
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
4040
Departamento de Informática
Exercício 2
# versão 2
def fatorial( n ):
fat = 1
for i in range(2, n+1):
fat = fat * i
return fat
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
41
INF
 10
0–
Int
rod
uçã
o à
 Pr
ogr
am
açã
o
4141
Departamento de Informática
Para Casa
Faça pelo menos 5 (cinco) dos exercícios E.01, E.05
até E.17, E.21, E.22 do run.codes.

Continue navegando