Buscar

P1 (Gabarito)

Prévia do material em texto

Universidade Federal do Rio de Janeiro 
Turma EP1 
1ª Prova de Computação I 
2 de outubro de 2017 
 
Questão 1: Sistema de Caixa. (peso 1.0) 
total = 0 
voucher = 0 
 
while True: 
 item = raw_input('Item: ') 
 if item == '': break 
 quantidade = input('quantidade: ') 
 valor = input('valor unitário R$: ') 
 
 if voucher < valor * quantidade: 
 total += quantidade * valor - voucher 
 
 voucher = 0.1 * valor * quantidade 
 print 'Voce ganhou um voucher de R$ %.2f para a sua próxima compra!' \ 
 % (voucher) 
 print 
 
print 
print "Total: R$ %.2f" % total 
 
 
Questão 2: Reeborg o fazendeiro (peso 1.0) 
def turn_right(): 
 for i in range(3): 
 turn_left() 
 
def turn_around(): 
 for i in range(2): 
 turn_left() 
 
def move_to_wall(): 
 while front_is_clear(): 
 move() 
 
''' 
 pre-condicao: 
 Reeborg de frente para o Leste com pelo menos uma rua acima dele 
 pos-condicao: 
 Reeborg de frente para o Leste na rua acima 
''' 
def proxima_linha(): 
 turn_left() 
 move() 
 turn_right() 
 
''' 
 pre-condicao: 
 Reeborg sobre um beeper, de frente para o Leste 
 pos-condicao: 
 Reeborg na avenida 1 da mesma rua de frente para o Leste, 
 
 
 O beeper que ele carregava esta agora na Avenida 1 
''' 
def leva_beeper_para_casa(): 
 pick_beeper() 
 turn_around() 
 move_to_wall() 
 turn_around() 
 put_beeper() 
 
''' 
 pre-condicao: 
 Reeborg nao estah de frente para uma parede 
 pos-condicao: 
 Reeborg andou ate encontrar um beeper ou uma parede 
''' 
def procura_beeper(): 
 move() 
 while front_is_clear() and not on_beeper(): 
 move() 
 
''' 
 pre-condicao: 
 Reeborg de frente para o Leste, no inicio de uma rua 
 pos-condicao: 
 Reeborg na mesma posicao, mas todos os beepers 
 na rua foram trazidos para a avenida 1 
''' 
def arruma_linha(): 
 procura_beeper() 
 while on_beeper(): 
 leva_beeper_para_casa() 
 procura_beeper() 
 turn_around() 
 move_to_wall() 
 turn_around() 
 
arruma_linha() 
while left_is_clear(): 
 proxima_linha() 
 arruma_linha() 
turn_off() 
 
 
 
Questão 3: Tkinter (peso 1.0) 
from Tkinter import * 
from time import * 
 
LARGURA = 600 
ALTURA = 400 
DX = 5 
PAUSA = 0.03 
 
canvas = Canvas(bg='yellow', width=LARGURA, height=ALTURA) 
canvas.pack() 
 
 
carroceria = canvas.create_rectangle(10, 30, 110, 80, fill='blue') 
roda1 = canvas.create_oval(20, 70, 40, 90, fill='red') 
roda2 = canvas.create_oval(80, 70, 100, 90, fill='red') 
parabrisa = canvas.create_rectangle(80, 40, 110, 60, fill='cyan') 
 
while True: 
 canvas.update() 
 sleep(PAUSA) 
 canvas.move(carroceria, DX, 0) 
 canvas.move(roda1, DX, 0) 
 canvas.move(roda2, DX, 0) 
 canvas.move(parabrisa, DX, 0) 
 
 x0, y0, x1, y1 = canvas.coords(carroceria) 
 if x1 >= LARGURA: 
 canvas.delete(ALL) 
 carroceria = canvas.create_rectangle(10, 30, 110, 80, fill='blue') 
 roda1 = canvas.create_oval(20, 70, 40, 90, fill='red') 
 roda2 = canvas.create_oval(80, 70, 100, 90, fill='red') 
 parabrisa = canvas.create_rectangle(80, 40, 110, 60, fill='cyan') 
 
mainloop()

Continue navegando