Buscar

Exercícios de Programação em Python

Prévia do material em texto

Universidade Federal do Rio de Janeiro 
Turma EP1 
3ª Prova de Computação I 
30 de junho de 2017 
 
Questão 1: Conta palavras (peso 1.0) 
Escreva uma função chamada contaPalavras(frase) que recebe uma string como parâmetro e retorna o 
número de palavras na string. Uma palavra é uma sequência de um mais caracteres diferentes de espaço (o 
caractere ' '). Por exemplo, a chamada contaPalavras('Olá, como vai você?') deveria retornar 
4, e a chamada contaPalavras('Socorram-me! Subi no ônibus em Marrocos!') deveria 
retornar 6. 
Restrições: Você não pode usar em sua solução o método split() da classe String. 
 
 
Questão 2: Círculo saltante (peso 1.0) 
Escreva um programa Tkinter que tenha a funcionalidade descrita a seguir: 
Aparência inicial: 
Crie um canvas de dimensões 500x400 com um fundo lightyellow. Quando o programa rodar, desenhe 
no canvas cinco quadrados brancos de lado aleatório, no intervalo [20px, 100px]. A posição dos 
quadrados no canvas é também aleatória com a restrição de que todos os quadrados devem ser inteiramente 
visíveis no canvas. Não se preocupe se houver quadrados superpostos. A figura a seguir mostra um exemplo 
de execução do programa, mas a cada vez que você executá-lo obterá resultados diferentes. 
 
 
Movimento do mouse: 
Se o usuário mover o mouse no interior de um dos quadrados, um círculo vermelho deve ser desenhado 
inscrito nesse quadrado. Se o usuário mover o mouse novamente para fora do quadrado, o círculo deve ser 
apagado. 
 
 
O seguinte trecho de código deve deixar clara sua tarefa: 
 
 
 
from Tkinter import * 
from random import * 
 
LARGURA = 500 
ALTURA = 400 
 
def moveu(e): 
 # seu código aqui... 
 
canvas = Canvas(bg = 'lightyellow', width=LARGURA, height=ALTURA) 
canvas.pack() 
 
# seu código aqui... 
 
canvas.bind("<Motion>", moveu) 
mainloop() 
 
 
Questão 3: Começa e termina (peso 1.0) 
Escreva uma função comeca_e_termina_com(ch) que recebe como parâmetro um caractere ch e, 
repetidamente, pede ao usuário para que digite novas palavras até que o usuário digite duas palavras 
seguidas que comecem e terminem com o caractere ch. Por exemplo, a palavra "santos" começa e termina 
com a letra 's'. Ao final do processamento, antes de retornar, a função deve imprimir uma mensagem 
indicando o fim do algoritmo. 
Seu código não deve distinguir letras maiúsculas de minúsculas; por exemplo, se o caractere passado for a 
letra minúscula 's', você deve considerar como um teste positivo palavras que comecem por um 'S' e 
terminem por um 's'. Se o usuário fornecer uma palavra de uma única letra, você deve considerar esta 
palavra como começando e terminando com a mesma letra. Por exemplo, a palavra "A" começa e termina 
com o caractere 'a' (provavelmente seu algoritmo dará conta disso sem você ter de incluir nenhum 
processamento adicional). 
A saída a seguir mostra uma possível execução do programa. As entradas digitadas pelo usuário são 
mostradas em itálico. 
Digite uma palavra: Eu 
Digite uma palavra: amo 
Digite uma palavra: Computacao 
Digite uma palavra: sacos 
Digite uma palavra: PROGRAMAS 
Digite uma palavra: TESOURAS 
Digite uma palavra: melancia 
Digite uma palavra: canetas 
Digite uma palavra: Q 
Digite uma palavra: sacolas 
Digite uma palavra: SOS 
Fim 
Hipóteses: Você pode assumir que o parâmetro passado para a função é uma letra minúscula. Você pode 
ainda assumir que, cada vez que solicitado, o usuário digitará uma única palavra contendo pelo menos uma 
letra. 
Observação: Apesar de termos combinado não usar os comandos print e raw_input em funções, você 
pode fazê-lo aqui.

Continue navegando