Formas geométricas
O objetivo desta atividade é utilizar caracteres simples para desenhar figuras geométricas simples: retângulos e triângulos retângulos isósceles. Essas figuras podem ser preenchidas ou não. O programa deve desenhar as figuras especificadas pela entrada até que uma opção de término do programa seja especificada.
Tipos de Figuras
Retângulos preenchidos: serão dados como entrada a altura e a largura do retângulo. Deve-se desenhar um retângulo com a altura e largura especificada usando apenas o caractere '*'. Um exemplo de retângulo preenchido com altura 3 e largura 5 está abaixo:
***** ***** *****
Retângulos não preenchidos: serão dados como entrada a altura e largura do retângulo. Deve-se desenhar um retângulo com a altura e largura especificada, mas agora o contorno do retângulo dever ser feito com os caracteres '-' (horizontal) e '|' (vertical), e as pontas devem ser feitas com '*'. Os demais pontos internos deverão ser preenchidos com espaços. Um exemplo de retângulo não preenchido de altura 4 e largura 5 está abaixo:
*---* | | | | *---*
Triângulos retângulos preenchidos: será dado como entrada apenas um número que corresponde ao número de caracteres dos catetos. O triângulo deve ser desenhado apenas com o caractere '*'. Um exemplo de triângulo preenchido para a entrada 5 está abaixo:
* ** *** **** *****
Triângulos retângulos não preenchidos: será dado como entrada apenas um número que corresponde ao número de caracteres dos catetos. O primeiro caractere de um lado é sempre um '*' (as pontas são '*'). O cateto mais à esquerda deve ser desenhado com o caracter '|' (barra vertical), o cateto da base com '-' (hífen) e a hipotenusa pela barra '\'. Os pontos internos deverão ser preenchidos com espaços. Um exemplo de triângulo para a entrada 5 está abaixo:
* |\ | \ | \ *---*
Entrada
O programa deve ler primeiramente um caracter como comando inicial. Os caracteres válidos como entrada inicial são 'R', 'r', 'T', 't' ou 's'.
Caso a entrada inicial seja 'R' o programa deverá ler então dois números inteiros positivos e imprimir um retângulo preenchido com altura igual ao valor do primeiro número e largura igual ao valor do segundo número.
Caso a entrada inicial seja 'r' o programa deverá ler então dois números inteiros positivos e imprimir um retângulo não preenchido com altura igual ao valor do primeiro número e largura igual ao valor do segundo número.
Caso a entrada inicial seja 'T' o programa deverá ler então um número inteiro positivo e imprimir um triângulo preenchido com tamanho dos catetos igual ao valor do número digitado.
Caso a entrada inicial seja 't' o programa deverá ler então um número inteiro positivo e imprimir um triângulo não preenchido com tamanho dos catetos igual ao valor do número digitado.
Caso a entrada inicial seja 's' o programa deverá encerrar a execução.
Todos os números inteiros lidos estarão no intervalo de 2 a 50.
Saída
Para cada entrada inicial válida ('R', 'r', 'T', 't') deverá ser impressa a figura geométrica correspondente, seguida de uma linha em branco ('\n'). A entrada 's' não deve imprimir nada na tela.
Exemplos
Teste 01
Entrada
R 5 5 s
Saída
***** ***** ***** ***** *****
Teste 02
Entrada
r 3 3 T 2 s
Saída
*-* | | *-* * **
Teste 03
Entrada
t 7 s
Saída
* |\ | \ | \ | \ | \ *-----*
Observações
O número máximo de submissões é 15;
O seu programa deve estar completamente contido em um único arquivo denominado lab07.c;
Para a realização dos testes do SuSy, a compilação se dará da seguinte forma:
gcc -std=c99 -pedantic -Wall -o lab07 lab07.c;
Você deve incluir, no início do seu programa, uma breve descrição dos objetivos do programa, da entrada e da saída, além do seu nome e do seu RA;
Indente corretamente o seu código e inclua comentários no decorrer do seu programa.
Critérios importantes
Independentemente dos resultados dos testes do SuSy, o não cumprimento dos critérios abaixo implicará em nota zero nesta tarefa de laboratório.
O único header aceito para essa tarefa é o stdio.h.