MC102 - Algoritmos e Programação de Computadores
MC102 Oferecimento anterior

      .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
Tarefa de laboratório 03

Nesta tarefa, vamos praticar comandos repetitivos fazendo desenhos com caracteres ASCII. As formas irão variar de acordo com as dimensões estabelecidas e o caractere especificado para contorno. Observe os exemplos.

Quadrado: Deve ser desenhado o contorno de um quadrado, a partir da medida, em termos de número de caracteres, do lado deste quadradado.

Quadrado
lado = 3 lado = 5 lado = 7
***
* *
***
XXXXX
X   X
X   X
X   X
XXXXX
&&&&&&&
&     &
&     &
&     &
&     &
&     &
&&&&&&&

Retângulo: Deve ser escrito o contorno de um retângulo a partir da medida em número de caracteres da largura e altura deste retângulo.

Retângulo
largura = 4
altura = 3
largura = 10
altura = 5
largura = 3
altura = 7
largura = 5
altura = 5
****
*  *
****
oooooooooo
o        o
o        o
o        o
oooooooooo
&&&
& &
& &
& &
& &
& &
&&&
XXXXX
X   X
X   X
X   X
XXXXX

Paralelogramo: Deve ser escrito o contorno de um paralelogramo a partir da medida em número de caracteres da largura e altura deste paralelogramo. Observe que a inclinação da lateral do paralelogramo é de 1 caractere à direita por linha.

Paralelogramo
largura = 4
altura = 3
largura = 8
altura = 4
largura = 4
altura = 8
largura = 5
altura = 5
****
 *  *
  ****
########
 #      #
  #      #
   ########
%%%%
 %  %
  %  %
   %  %
    %  %
     %  %
      %  %
       %%%%
ooooo
 o   o
  o   o
   o   o
    ooooo

Losango: Deve ser escrito o contorno de um losango a partir da medida em número de caracteres do lado deste losango.

Losango
lado = 3 lado = 5 lado = 6
  *
 * *
*   *
 * *
  * 
    &
   & &
  &   &
 &     &
&       &
 &     &
  &   &
   & &
    &
     @
    @ @
   @   @
  @     @
 @       @
@         @
 @       @
  @     @
   @   @
    @ @
     @

Cruz: Desenha uma cruz formada pela junção de 5 contornos de quadrados de mesmo tamanho de lado.

Cruz
lado = 3 lado = 4 lado = 5
   ***
   * *
*********
* ** ** *
*********
   * *
   ***
    ++++
    +  +
    +  +
++++++++++++
+  ++  ++  +
+  ++  ++  +
++++++++++++
    +  +
    +  +
    ++++
     XXXXX
     X   X
     X   X
     X   X
XXXXXXXXXXXXXXX
X   XX   XX   X
X   XX   XX   X
X   XX   XX   X
XXXXXXXXXXXXXXX
     X   X
     X   X
     X   X
     XXXXX

Descrição da entrada

Para todos os objetos será indicado:

<tipo_do_objeto>
<caractere> 

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

Para os objetos Quadrado, Losango e Cruz deverá ser lida a medida do lado.

<medida_do_lado>

Para os objetos Retângulo e Paralelogramo deverão ser lidas as medidas da largura e da altura.

<medida_da_largura>
<medida_da_altura>

O valor para as dimensões deverá ser um número maior ou igual a 3.

Exemplo:

P
:
4
5

Descrição da saída

Caso a entrada tenha dados de acordo com a especificação, um desenho como os descritos na primeira seção deverá ser exibido. Para o exemplo de entrada fornecido, a saída será:

::::
 :  :
  :  :
   :  :
    ::::

Importante:Não acrescente caracteres em branco ao final das linhas!

Caso o tipo_do_objeto lido não corresponda a um dos elencados acima, deve ser emitida a mensagem Objeto incorreto.

Caso algum número lido seja menor do que 3, deve ser emitida a mensagem Dimensao incorreta. (propositalmente sem acentuação). Caso o tipo do objeto seja inválido, não é necessário ler ou verificar a validade das dimensões.

Testes para o SuSy

Esta tarefa contém 16 testes abertos que exercitam todas as possibilidades com entradas válidas e também inválidas. Esta tarefa inclui mais quatro testes fechados, que são variações de alguns dos testes abertos.

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 lab03.py. No link Arquivos auxiliares há um arquivo aux-03.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, desde que o código faça os desenhos solicitados para uma conjunto amplo de possibilidades da entrada. A submissão de um código que não implementa o algoritmo requisitado no enunciado, 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 é 3.

O prazo final para submissão é 09/09/2018.