.0. .0000000. .000000. 00000 00000 .0. 000000000. 00000000
.000. .000' 000 .000 000 .00 .00 .000. .00 000. 0 .00 0
.00000. .0000. .000 .00 .00 .00000. .00 '000. .00
.00 000. .000. .000 .00 .00 .00 000. .0000000. .00
.000000000. .0000. .000 .00 .00 .000000000. .00.00. .00
.00 000. 000 '000. .000 000 .00 .00 .00 000. .00 000. .00
0000 000000 .0000000. .000000. 00000 00000 0000 000000 00000 00000 00000
Desenhando com númerosNesta tarefa, vamos praticar o comando repetitivo for
e o método range
produzindo algumas figuras geométricas. O desenho mais elaborado será um losango com o maior número ao centro e com sequências decrescentes
levando até as bordas. Veja os exemplos:
Losango | ||
---|---|---|
|
|
Antes de lidarmos com esta complexidade, desenharemos partes mais simples do objetivo principal. A primeira divisão será vertical e desenharemos os triângulos à esquerda e à direita, mantendo a coluna central.
Triângulo Esquerdo | Triângulo Direito | ||
---|---|---|---|
|
|
|
|
A segunda divisão será horizontal e desenharemos o triângulo superior e o triângulo inferior, mantendo a linha central.
Triângulo Superior | Triângulo Inferior | ||
---|---|---|---|
|
|
|
|
A primeira linha da entrada indicará o objeto a ser desenhado, de acordo com o seguinte código:
TE
: Triângulo Esquerdo
TD
: Triângulo Direito
TS
: Triângulo Superior
TI
: Triângulo Inferior
L
: Losango
A segunda linha indicará o número máximo que aparecerá no desenho. Deve ser um número entre 1
e 9
.
A saída deverá ser o desenho solicitado, de acordo com os exemplos da primeira seção desta página. Adicionalmente, deverá ser feita uma validação dos valores da entrada. Caso a primeira linha não contenha um dos objetos descritos acima deverá ser emitida a mensagem:
Objeto invalido.
Caso a segunda linha não contenha um valor entre 1
e 9
deverá ser emitida a mensagem:
Numero maximo invalido.
Caso as duas linhas contenham erro, apenas a primeira mensagem deverá ser emitida. Ou seja, em caso de objeto inválido, não é necessário verificar se o número máximo está dentro do intervalo esperado.
Criamos um conjunto de testes com arquivos de entrada arq<i>.in
e para cada um deles temos uma saída esperada arq<i>.res
. Consulte os arquivos para ver os dados dos testes abertos. Teremos treze
testes abertos e dois testes fechados.
Releia, se necessário, as instruções para fazer os testes em Testes com o SuSy.
O Triângulo Direito é o objeto mais fácil de ser desenhado, pois você só precisa se preocupar em escrever os números. Para os outros objetos, você deverá escrever espaços em branco à esquerda dos números para obter a forma desejada. Nenhum espaço em branco deve ser escrito à direita da figura, caso contrário o SuSy acusará um erro na comparação entre a entrada e a saída. Observe abaixo quais são os caracteres que devem ser escritos para o Losango com máximo 4:
0
010
01210
0123210
012343210
0123210
01210
010
0
Veja aqui a
página de submissão da tarefa. O arquivo a ser
submetido deve se chamar lab07.py. No
link Arquivos
auxiliares há um
arquivo aux07.zip
que
contém todos os arquivos de testes abertos, seus respectivos
resultados compactados e scripts para facilitar os testes.
O limite máximo será de 20 submissões. Serão considerados os resultados da última submissão.
O peso desta tarefa é 3.
O prazo final para submissão é 12/05/2019. Sugerimos que esta tarefa seja realizada antes da Prova 1.
A nota desta tarefa é proporcional ao número de testes que executaram corretamente, desde que o código esteja coerente com o enunciado. A submissão de um código que não implementa o algoritmo requisitado, 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.