MC102 - Algoritmos e Programação de Computadores

      .o.        .ooooooo.    .oooooo. ooooo ooooo         .o.       ooooooooo.   oooooooo        
     .ooo.      .ooo'   ooo  .ooo  ooo  .oo   .oo         .ooo.       .oo   ooo.  o .oo  o
    .ooooo.     .oooo.      .ooo        .oo   .oo        .ooooo.      .oo  'ooo.    .oo
   .oo  ooo.      .ooo.     .ooo        .oo   .oo       .oo  ooo.     .ooooooo.     .oo
  .ooooooooo.       .oooo.  .ooo        .oo   .oo      .ooooooooo.    .oo.oo.       .oo
 .oo      ooo.  ooo   'ooo.  .ooo  ooo  .oo   .oo     .oo      ooo.   .oo   ooo.    .oo
oooo     oooooo  .ooooooo.    .oooooo. ooooo ooooo   oooo     oooooo ooooo  ooooo  ooooo
Formas geométricas simples

Nesta tarefa, vamos praticar comandos repetitivos fazendo desenhos com caracteres ASCII. As formas irão variar de acordo com dois parâmetros:


Triângulo Retângulo: a primeira linha contém 1 caractere, a segunda 3 e assim por diante até atingir o valor base.

Triângulo Retângulo
base = 3 base = 5 base = 7
.
...
o 
ooo
ooooo
h  
hhh   
hhhhh
hhhhhhh

Triângulo Retângulo Invertido: a primeira linha contém o número base caracteres, a segunda base-2 e assim por diante até atingir 1 caractere.

Triângulo Retângulo Invertido
base = 3 base = 5 base = 7
$$$ 
$
&&&&&  
&&&   
&
0000000
00000
000    
0

Triângulo Isósceles: o número de caracteres varia da mesma forma que no triângulo retângulo, mas a ponta do triângulo está centralizada com relação à base.

Triângulo Isósceles
base = 3 base = 5 base = 7
 c  
ccc
  w  
 www
wwwww
   A  
  AAA   
 AAAAA
AAAAAAA

Triângulo Isósceles Invertido: o número de caracteres varia da mesma forma que no triângulo retângulo invertido, mas a ponta do triângulo está centralizada com relação à base.

Triângulo Isósceles Invertido
base = 3 base = 5 base = 7
mmm  
 m
xxxxx
 xxx   
  x
lllllll
 lllll
  lll
   l

Ampulheta: une um triângulo isósceles invertido a um triângulo isósceles, ambos de mesma base, sendo que os triângulos compartilham a linha com apenas um caractere.

Ampulheta
base = 3 base = 5 base = 7
iii
 i
iii
!!!!!
 !!!
  !
 !!!
!!!!!
8888888
 88888
  888
   8
  888
 88888
8888888

Estrela: uma estrela de seis pontas combina um triângulo isósceles, duas ampulhetas e um triângulo isósceles invertido, todos com tamanho base. Observe os exemplos abaixo.

Estrela
base = 3 base = 5 base = 7
    %
%%%%%%%%%
 %     %
%%%%%%%%%
    %
       #
      ###
###############
 ###       ###
  #         #
 ###       ###
###############
      ###
       #
          *
         ***
        *****
*********************
 *****         *****
  ***           ***
   *             *
  ***           ***
 *****         *****
*********************
        *****
         ***
          *

Descrição da entrada:

A entrada para o programa será da seguinte forma:

<tipo_do_objeto>
<base>
<caractere> 

As letras que identificarão os tipos dos objetos serão as seguintes:

Caso o tipo_do_objeto lido não corresponda a um destes, deve ser emitida a mensagem Objeto inválido.

O valor para a base deve ser um número ímpar e maior ou igual a 3. Caso o número lido não tenha estas características deve ser emitida a mensagem Base inválida.

Testes para o SuSy

Entrada Resultado
arq1.in TR
5
@
@
@@@
@@@@@
arq1.res
arq2.in TRI
11
m
mmmmmmmmmmm
mmmmmmmmm
mmmmmmm
mmmmm
mmm
m
arq2.res
arq3.in TI
9
A
    A
   AAA
  AAAAA
 AAAAAAA
AAAAAAAAA
arq3.res
arq4.in TII
7
l
lllllll
 lllll
  lll
   l
arq4.res
arq5.in A
5
8
88888
 888
  8
 888
88888
arq5.res
arq6.in E
3
%
    %
%%%%%%%%%
 %     %
%%%%%%%%%
    %
arq6.res
arq7.in E
7
*
          *
         ***
        *****
*********************
 *****         *****
  ***           ***
   *             *
  ***           ***
 *****         *****
*********************
        *****
         ***
          *
arq7.res
arq8.in X
3
*
Objeto inválido.
arq8.res
arq9.in TI
2
.
Base inválida.
arq9.res

Atenção: Não imprima caracteres em branco ao final das linhas!

Esta tarefa inclui mais três testes fechados, que são variações de alguns dos testes já apresentados.

Dicas de Python 3 para esta tarefa:

Orientações para submissão

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-04.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.

Todos os alunos matriculados até 29 de março estão inscritos. Se você entrou depois e/ou não estiver cadastrado corretamente, envie email para .

Observe o limite máximo de 20 submissões e que a nota final é proporcional ao número de testes que executaram corretamente.

O peso desta tarefa é 3.

O prazo final para submissão é 22/04/2018. Recomenda-se a realização desta tarefa antes da Prova 1.