Escolar Documentos
Profissional Documentos
Cultura Documentos
Professores:
Jefersson dos Santos - jefersson@dcc.ufmg.br
Guilherme Maia - jgmm@dcc.ufmg.br
Monitores:
Guilherme Pereira - guilhermepereira@dcc.ufmg.br
Igor Patricio dos Santos - igorp@ufmg.br
Igor Muzetti Pereira - igormuzetti@ufmg.br
Questão 1) Escreva um programa que calcula o fatorial de um valor n (n!) dado pelo usuário.
Exemplo: 5! = 5 ∗ 4 ∗ 3 ∗ 2 ∗ 1 = 120
In [ ]:
print(result)
Questão 2) Escreva um programa que leia um valor inteiro e imprima a soma de todos os inteiros pares de
zero até esse valor.
Exemplo:
Entrada:
11
Saída:
30
Entrada:
121
Saída:
3660
localhost:8888/notebooks/Documents/2019-2/Code-2019-2/Monitoria/04-lista-gabarito.ipynb 1/8
10/15/2019 04-lista-gabarito - Jupyter Notebook
In [ ]:
for i in range(0,num,2):
result += i
print(result)
Questão 3) Escreva um programa para ler n valores inteiros e calcular a média apenas dos valores positivos
(ignorando qualquer valor negativo).
Nota: O valor de n não será informado, implemente um laço que realize leituras até que o usuário digite um
valor flag (flag: 0). A flag é apenas um valor pré-definido que indica o fim das entradas, interrompendo o laço
de leitura.
Exemplo:
Entrada:
7
-5
63
-27
0
Saída:
35
In [ ]:
total = 0
n = 0
while True:
num = int(input('Digite um inteiro: '))
if num == 0:
break
else:
continue
if n == 0:
print('Nenhum número positivo foi informado')
else:
print('A média é:', total/n)
Questão 4) Crie uma função menu() que imprima na tela o menu de opções a seguir e retorne o valor digitado
pelo usuário. Sua função deve verificar se o valor digitado é válido, e caso não seja, pedir que o usuário digite
um novo valor.
1. Adição
localhost:8888/notebooks/Documents/2019-2/Code-2019-2/Monitoria/04-lista-gabarito.ipynb 2/8
10/15/2019 04-lista-gabarito - Jupyter Notebook
2. Subtração
3. Multiplicação
4. Divisão
5. Saída
Ao retornar da chamada da função, você deve solicitar do usuário os números que serão operados, exibir o
resultado da expressão escolhida e retornar ao menu de opções. O programa só termina quando for escolhida
a opção 5 (saída).
In [ ]:
def menu():
print("1. Adição \n2. Subtração \n3. Multiplicação \n4. Divisão \n5. Saída")
while True:
op = int(input('Escolha uma opção: '))
if op < 1 or op > 5:
print('Escolha uma opção válida!')
else:
return op
while True:
op = menu()
if op == 5:
break
if op == 1:
print(num1 + num2,'\n')
elif op == 2:
print(num1 - num2,'\n')
elif op == 3:
print(num1 * num2,'\n')
else:
print(num1 / num2,'\n')
Questão 5) Escreva uma função intitulada floyd que recebe um número positivo N e imprime N linhas do
triângulo de Floyd. Escreva também o programa principal para ler N do usuário.
Nota: O triângulo de Floyd é um triângulo retângulo formado por números naturais. Para criá-lo, basta iniciar a
primeira linha com o número 1 e incrementar a quantidade de elementos das linhas subsequentes, bem como
os valores contidos nas linhas.
Exemplo:
localhost:8888/notebooks/Documents/2019-2/Code-2019-2/Monitoria/04-lista-gabarito.ipynb 3/8
10/15/2019 04-lista-gabarito - Jupyter Notebook
Entrada:
6
Saida:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
In [ ]:
def floyd(n):
k = 1
print()
Questão 6) Escreva uma função chamada escalas que recebe três parâmetros: inicio, fim e passo, referentes
a um intervalo de temperatura em graus Celsius. Sua função deve imprimir n linhas contendo uma tabela de
conversão de graus Celsius para Fahrenheit e Kelvin nessa ordem. Escreva também o código principal (fora
da função) onde os valores inicio, fim e passo serão lidos do usuário.
𝑇𝐹 = 𝑇𝐶 ∗ 95 + 32
Nota: A conversão de Celsius para Fahrenheit é dada por:
A conversão de Celsius para Kelvin é dada por: 𝑇𝐾 = 𝑇𝐶 + 273
Exemplo
Entrada:
50
100
10
Saida:
50 122 323
60 140 333
70 158 343
80 176 353
90 194 363
100 212 373
localhost:8888/notebooks/Documents/2019-2/Code-2019-2/Monitoria/04-lista-gabarito.ipynb 4/8
10/15/2019 04-lista-gabarito - Jupyter Notebook
In [ ]:
Questão 7) Escreva a função mdc4(a,b,c,d) que retorna o máximo divisor comum entre a, b, c e d.
Exemplo
Entrada:
156
182
429
Saida:
13
Entrada:
6
12
15
Saida:
3
In [ ]:
def mdc4(a,b,c,d):
def mdc(x,y):
resto = None
return x
mdc4(6,12,15,18)
Questão 8) Um funcionário recebe aumento anual. Em 1995 foi contratado por 2000 reais. Em 1996 recebeu
aumento de 1.5%. A partir de 1997, os aumentos sempre correspondem ao dobro do ano anterior. Faça um
programa que determine o salário atual do funcionário.
localhost:8888/notebooks/Documents/2019-2/Code-2019-2/Monitoria/04-lista-gabarito.ipynb 5/8
10/15/2019 04-lista-gabarito - Jupyter Notebook
In [ ]:
salario = 2000
aumento = 0.015
print(salario)
Nota: O valor de n não será informado, implemente um laço que realize leituras até que o usuário digite um
valor flag (flag: 0). A flag é apenas um valor pré-definido que indica o fim das entradas, interrompendo o laço
de leitura.
localhost:8888/notebooks/Documents/2019-2/Code-2019-2/Monitoria/04-lista-gabarito.ipynb 6/8
10/15/2019 04-lista-gabarito - Jupyter Notebook
In [ ]:
lista = []
while True:
num = int(input('Digite um inteiro: '))
if num == 0:
break
lista.append(num)
n = 0
total = 0
nprimos = 0
for i in lista:
primo = True
if i % 2 == 0:
total += i
n += 1
if i <= 1:
primo = False
for j in range(2,i):
if i % j == 0:
primo = False
break
if primo == True:
nprimos += 1
Questão 10) Se os numeros de 1 a 5 são escritos em palavras: um, dois, três, quatro, cinco, então há 2 + 4 +
4 + 6 + 5 = 21 letras usadas no total. Faça um programa que conte quantas letras seriam utilizadas se todos os
números de 1 a 1000 (mil) fossem escritos em palavras. OBS: Nao conte espaços ou hifens.
localhost:8888/notebooks/Documents/2019-2/Code-2019-2/Monitoria/04-lista-gabarito.ipynb 7/8
10/15/2019 04-lista-gabarito - Jupyter Notebook
In [ ]:
def listaNum(num):
return list(str(num))
caracteres = { 1:2, 2:4, 3:4, 4:6, 5:5, 6:4, 7:4, 8:4, 9:4, 10:3,
11:4, 12:4, 13:5, 14:7, 15:6, 16:9, 17:9, 18:7, 19:8,
20:5, 30:5, 40:8, 50:8, 60:8, 70:7, 80:7, 90:7, '100single':3,
100:5, 200:8, 300:9, 400:11, 500:10, 600:9, 700:9, 800:9,
900: 9, 1000:3 }
total = 0
for i in range(1,1001):
lista = listaNum(i)
if i <= 20:
total += caracteres[i]
if int(lista[1]) is not 0:
total += caracteres[int(lista[1])] + 1
elif i == 100:
total += caracteres['100single']
if int(lista[1]) is not 0:
total += caracteres[int(lista[1])* 10] + 1
if int(lista[2]) is not 0:
total += caracteres[int(lista[2])] + 1
else:
total += caracteres[i]
localhost:8888/notebooks/Documents/2019-2/Code-2019-2/Monitoria/04-lista-gabarito.ipynb 8/8