Nesta tarefa iremos exercitar o uso estruturas bidimencionais em Python utilizando como tema o passatempo de buscar palavras em um diagrama.
As primeiras linhas da entrada conterão um diagrama com letras separadas por espaços em branco. A próxima linha indicará o número de palavras a serem procuradas. Em seguida, cada linha conterá uma palavra. Observe o exemplo abaixo:
v e d j n a e o
i p y t h o n u
s u e w e t a e
1
python
Note que as palavras poderão estar nas direções horizontal, vertical e nas diagonais. Cada palavra ocorrerá no máximo uma vez no diagrama. Nem todas as palavras a serem procuradas estarão nos diagramas.
O diagrama de saída conterá as palavras encontradas
nas suas respectivas posições e
caracteres "."
nas demais posições. Observe
a saída esperada para o exemplo acima:
. . . . . . . .
. p y t h o n .
. . . . . . . .
Veja, como exemplo, os testes 2, 6 e 7. Para verificar o conteúdo dos outros testes, favor consultar diretamente os arquivos.
arq2.in |
|
|
arq2.res |
---|---|---|---|
arq6.in |
|
|
arq6.res |
arq7.in |
|
|
arq7.res |
Esta tarefa inclui três testes fechados.
Os diagramas de entrada e saída poderão ser armazenados como uma lista de lista de caracteres.
O código abaixo lê uma lista de caracteres da entrada:
l = input().split()
O código abaixo cria um diagrama vazio e em seguida
adiciona a lista l
a este diagrama:
diagrama_entrada = []
diagrama_entrada.append(l)
Você poderá utilizar a
função isdigit()
para verificar se uma linha da
entrada é um número ou uma lista de caracteres:
l = input()
if l.isdigit() :
n = int(l)
else :
l = l.split()
Para criar um diagrama base para a saída de
dimensões largura × altura
você pode
utilizar:
diagrama_saida = [["." for x in range(largura)] for y in range(altura)]
Recomenda-se a escrita de funções para estruturar o seu programa.
O uso de outras bibliotecas padrĂ£o Python para resolver esta tarefa é permitido, mas não é necessário.
Veja aqui
a página de submissão da tarefa. Lembre-se que o
arquivo a ser submetido deve se chamar main.py. No
link Arquivos
auxiliares há um
arquivo arqs-08.zip
que
contém todos os arquivos de testes abertos e seus respectivos
resultados compactados. Os arquivos executa-testes.py
e executa-testes-windows.py
também estão
neste pacote.
Observe o limite máximo de 20 submissões
A nota final é proporcional ao número de testes que executaram corretamente. A submissão de um código que não implementa o algoritmo solicitado, mas que exibe as saídas esperadas dos testes abertos a partir da comparação de trechos da entrada será considerada fraude e acarretará a atribuição de nota zero à média final da disciplina.
O peso desta tarefa é 2.
O prazo final para submissão é 17/06/2018.