Buscar

Fundamentos de Programação - Aula 18 (Teórica)


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

Continue navegando


Prévia do material em texto

FUNDAMENTOS DE 
PROGRAMAÇÃO I
AULA 18: TEÓRICA
Aprofundamento em 
Repetição e Modularização
Prof. Janderson
Universidade Federal de Lavras
Departamento de Ciência da Computação
Exemplo 1
Modularização - Números Harshad
Na matemática, um número Harshad é um número 
inteiro que é divisível pela soma dos seus dígitos. O 
número 81, por exemplo, é um número Harshad pois 8 + 
1 = 9, e 81 % 9 = 0. 
Escreva uma função que receba um inteiro, e retorne um 
valor lógico que diz se ele é um número Harshad ou 
não. O processamento dessa função deverá chamar 
outra função que receberá um inteiro e deverá retornar 
a soma de seus dígitos. 
Exemplo 1
Utilize ambas funções em um programa que terá como 
entrada um número (inteiro e positivo), e deverá exibir 
como saída o valor lógico retornado pela função. 
Dica: transforme o número em uma string para obter a 
soma dos dígitos. 
Exemplo de Entrada:
81
Exemplo de Saída:
True
Exemplo de Entrada:
143
Exemplo de Saída:
False
def somar_digitos(num):
num = str(num)
soma = 0
for i in range(len(num)):
soma += int(num[i])
return soma
def harshad(num):
soma = somar_digitos(num)
if num % soma == 0:
return True
return False
def principal():
numero = int(input())
print(harshad(numero))
principal()
Exemplo 2
Modularização - Condensação de strings
Escreva uma função que receba como parâmetro duas 
strings e retorne uma string formada pela condensação 
das duas. As strings "guitarra" e "raio" virariam 
"guitarraio", por exemplo. Caso não seja possível 
condensar as duas strings em uma só string, sua função 
deverá retornar a palavra "impossivel". 
Essa função deverá fazer parte de um programa 
principal que terá como entrada duas strings, e deverá 
exibir como saída o retorno da função.
Exemplo 2
Exemplo de Entrada:
estrela elastico
Exemplo de Saída:
estrelastico
Exemplo de Entrada:
star wars
Exemplo de Saída:
impossivel
def iguais(A,B,quant):
iguais = True
contA = len(A)-1-quant
contB = 0
while contA < len(A) and iguais:
if A[contA] != B[contB]:
iguais = False
contA += 1
contB += 1
return iguais
def condensar(A, B):
contA = 0
quant = -1
while contA < len(A):
tentativa = iguais(A,B,contA)
if tentativa:
quant = contA
contA += 1
if quant != -1:
saida = A
for i in range(quant+1,len(B)):
saida += B[i]
return saida
else:
return "impossivel"
def principal():
 palavra1, palavra2 = input().split()
 print(condensar(palavra1,palavra2))
principal()
Exemplo 3
Modularização - Tiro ao alvo
Faça um programa que calcule sua probabilidade de 
acertar um alvo distante. Você deve receber a distância do 
alvo em metros, e em seguida o alvo desenhado com a 
seguinte convenção: "." representa espaços em branco, 
"#" representa um pedaço do alvo, caractere "0" indica 
que terminou de ler o alvo.
A probabilidade será calculada considerando a 
porcentagem que o alvo ocupa em relação a todo o espaço 
e a distância, sendo que cada metro de distância diminui 
8% da chance de acerto. O cálculo da porcentagem do alvo 
deve ser feita através de uma função.
Exemplo 3
Exemplo de entrada:
2
0
Exemplo de saída:
51
def prob(rel,dist):
for i in range(dist):
rel = rel - 0.08*rel
return rel * 100
def espaco(alvo):
total = len(alvo)
area = 0
for i in range(total):
if alvo[i] == "#":
area += 1
return area/total
def principal():
dist = int(input())
alvo = ""
linha = ""
while linha != "0":
linha = input()
if linha != "0":
alvo += linha
relEsp = espaco(alvo)
print(round(prob(relEsp,dist)))
principal()
	Slide 1
	Passagem de Parâmetros
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10