Escolar Documentos
Profissional Documentos
Cultura Documentos
Matrícula:________________ Nome:______________________________________________
OBSERVAÇÕES:
As questões podem ser resolvidas a lápis.
Entende-se por algoritmo refinado completo um algoritmo contendo a
representação do código em português, de forma clara, não ambígua, de
modo que cada instrução do algoritmo possa ser traduzida em uma
instrução da linguagem de programação.
Para a leitura de dados, basta usar instruções em formato algorítmico
como “Leia n”, “Leia A, B, C” etc. Não precisa se preocupar com as
mensagens escritas antes dessas leituras.
1 ** x ** 3
2 - (unário) -x
3 * / // % x / y
4 + - x - y
5 < <= > >= == != x < y
6 not not x > 0
7 and x < y and x > 0
8 or x < y or x == 0
9 = x = 2
Página 1 de 6
Questão 1 (8 pontos)
a=7
b=-1
c=a+2*b
print('a = %d, b = %d, c = %d'%(a,b,c))
b=2
print('c =',c)
while a>0:
if a>5 or b==2:
print('saída 1:',a,b,c)
b=b+1
elif a>0 and b>=a:
print('saída 2:',a,b,c)
c=c+1
a=a-2
print('saída 3:',a,b,c)
a = 7, b = -1, c = 5
c = 5
saída 1: 7 2 5
saída 2: 3 3 5
saída 2: 1 3 6
saída 3: -1 3 7
Página 2 de 6
Questão 2 (10 pontos)
Escreva um programa em Python ou um algoritmo refinado completo que lê
uma data e informa qual foi o dia anterior. Por simplicidade, considere que a
data lida será do ano atual, 2019 (ano não bissexto). Dessa forma:
o mês de 2 (fevereiro) tem 28 dias;
os meses 4 (abril), 6 (junho), 9 (setembro) e 11 (novembro) têm 30 dias;
os demais meses têm 31 dias.
DICA: Não é necessário ler e nem exibir o ano, apenas o dia e mês. Assim, se
a data fornecida for 1 de janeiro, basta exibir 31/12 (31 de dezembro) como
dia anterior.
Não é necessário validar as datas digitadas. Considere que os valores para dia
e mês serão sempre válidos, ou seja, a data lida nunca será, por exemplo,
30/2.
Veja abaixo alguns exemplos das mensagens exibidas pelo programa. Para
melhor compreensão, os valores fornecidos pelo usuário se encontram
destacados.
Exemplo 1: Exemplo 3: Exemplo 5:
dia: 2 dia: 1 dia: 31
mês: 1 mês: 3 mês: 12
1/1 28/2 30/12
Exemplo 2: Exemplo 4: Exemplo 6:
dia: 21 dia: 1 dia: 1
mês: 9 mês: 5 mês: 1
20/9 30/4 31/12
SOLUÇÃO:
d=int(input('dia: '))
m=int(input('mês: '))
if d>1:
d-=1
else:
if m==1:
m=12
else:
m-=1
if m==2:
d=28
elif m== 4 or m==6 or m==9 or m==11:
d=30
else:
d=31
print('%d/%d'%(d,m))
Página 3 de 6
Questão 3 (8 pontos)
Escreva um programa em Python ou um algoritmo refinado completo que
mostra todos os números dentro de um intervalo que são divisíveis por um
número N lido do teclado.
Inicialmente, o programa deve ler o número inteiro N e, na sequência, deve
ler o inteiro que representa o início do intervalo. Finalmente, o programa deve
ler o número inteiro correspondente ao final do intervalo, que deve sempre
ser maior ou igual ao valor fornecido para o início do intervalo, para ser
considerado válido. Caso o valor lido para o final seja inválido, o programa
deve ler novamente até que um valor final válido seja fornecido. Em seguida, o
programa deve imprimir todos os números inteiros dentro do intervalo que
são divisíveis por N.
Veja abaixo alguns exemplos das mensagens exibidas pelo programa. Para
melhor compreensão, os valores fornecidos pelo usuário se encontram
destacados.
Exemplo 1: Exemplo 3:
Mostrar números divisíveis por: 7 Mostrar números divisíveis por: 10
Início do intervalo: 0 Início do intervalo: 15
Final do intervalo: 14 Final do intervalo: 5
0 Final do intervalo: 0
7 Final do intervalo: 13
14 Final do intervalo: 14
Final do intervalo: 20
Exemplo 2:
20
Mostrar números divisíveis por: 8
Início do intervalo: 9
Final do intervalo: 15
SOLUÇÃO:
## ABORDAGEM 1 ##
while ini <= fim:
if ini%d==0:
print(ini)
ini+=1
## OU ##
## ABORDAGEM 2 ##
ini=(ini-1)//d + 1
while ini*d <= fim:
print(ini*d)
ini+=1
Página 4 de 6
Questão 4 (9 pontos)
Escreva um programa em Python ou um algoritmo refinado completo que faz a
contagem de votos em uma eleição com 2 chapas concorrentes. Os votos são
representados apenas pelos números 1 (voto na chapa 1) ou 2 (voto na chapa
2). Números maiores que 2 ou negativos significam que o voto foi anulado.
O programa deverá ler vários votos até que o número 0 (zero) seja digitado,
significando que todos os votos já foram lidos. Em seguida, deverá apresentar
o número de votos em cada chapa, o número de votos nulos, o total de votos e
a chapa vencedora.
Veja abaixo alguns exemplos das mensagens exibidas pelo programa. Para
melhor compreensão, os valores fornecidos pelo usuário se encontram
destacados.
Exemplo 1: Exemplo 2:
Contagem de votos: Contagem de votos:
Digite a chapa (0 para terminar): 1 Digite a chapa (0 para terminar): 1
Digite a chapa (0 para terminar): 1 Digite a chapa (0 para terminar): -
Digite a chapa (0 para terminar): 2 1
Digite a chapa (0 para terminar): 1 Digite a chapa (0 para terminar): 3
Digite a chapa (0 para terminar): 2 Digite a chapa (0 para terminar): 2
Digite a chapa (0 para terminar): 0 Digite a chapa (0 para terminar): 0
SOLUÇÃO:
Página 5 de 6
c1=c2=nulos=0
print('Contagem de votos')
v=float(input('Digite a chapa (0 para terminar): '))
while v != 0:
if v==1:
c1+=1
elif v==2:
c2+=1
else:
nulos+=1
v=float(input('Digite a chapa (0 para terminar): '))
if c1>c2:
print('\nVencedor: chapa 1')
elif c1<c2:
print('\nVencedor: chapa 2')
else:
print('\nNão houve vencedor')
Página 6 de 6