Mudanças entre as edições de "Mike Igor Camilo Domingues"
Ir para navegação
Ir para pesquisar
Linha 5: | Linha 5: | ||
Exemplo de desenho | Exemplo de desenho | ||
− | ##### | + | ##### |
− | # # | + | # # |
− | ##### | + | # # |
+ | ##### | ||
Olhando para o exemplo acima e analisando linha por linha podemos desenhar ele em 5 etapas. | Olhando para o exemplo acima e analisando linha por linha podemos desenhar ele em 5 etapas. | ||
− | *1º Margem superior | + | *1º Margem superior. |
− | *2º | + | *2º Topo, que é composta por: |
− | margem lateral + (caractere '#')* tamanho_da_base + margem lateral | + | **margem lateral + (caractere '#')* tamanho_da_base + margem lateral. |
− | *3º Meio do desenho, composto por: | + | *3º Meio do desenho, composto por: |
− | margem lateral + caractere '#' + espaços em branco + caractere '#' + margem lateral | + | **margem lateral + caractere '#' + espaços em branco + caractere '#' + margem lateral. |
− | *4º Base | + | *4º Base, composta por: |
− | margem lateral + (caractere '#')* tamanho_da_base + margem lateral | + | **margem lateral + (caractere '#')* tamanho_da_base + margem lateral. |
*5º Margem Inferior. | *5º Margem Inferior. | ||
Linha 30: | Linha 31: | ||
int desenhar_retang(int margem, int base, int altura) { | int desenhar_retang(int margem, int base, int altura) { | ||
− | // 1º Margem superior, um for para a | + | // 1º Margem superior, um for para desenhar a margem |
for (int i = 0; i < margem; ++i) { | for (int i = 0; i < margem; ++i) { | ||
printf("\n"); // Um simples "\n" para quebrar a linha | printf("\n"); // Um simples "\n" para quebrar a linha | ||
} | } | ||
− | // 2.1º | + | // 2.1º Topo - Margem lateral |
for (int i = 0; i < margem; ++i) { | for (int i = 0; i < margem; ++i) { | ||
printf(" "); | printf(" "); | ||
} | } | ||
− | // 2.2º | + | // 2.2º Topo - Linha de caracteres '#' |
for (int i = 0; i < base; ++i) { | for (int i = 0; i < base; ++i) { | ||
printf("#"); | printf("#"); | ||
} | } | ||
− | // 2.3º | + | // 2.3º Topo - Margem Lateral |
for (int i = 0; i < base; ++i) { | for (int i = 0; i < base; ++i) { | ||
printf(" "); | printf(" "); | ||
Linha 70: | Linha 71: | ||
} | } | ||
− | // 4.1º | + | // 4.1º Base - Margem lateral |
for (int i = 0; i < margem; ++i) { | for (int i = 0; i < margem; ++i) { | ||
printf(" "); | printf(" "); | ||
} | } | ||
− | // 4.2º | + | // 4.2º Base - Linha de caracteres |
for (int i = 0; i < base; ++i) { | for (int i = 0; i < base; ++i) { | ||
printf("#"); | printf("#"); | ||
} | } | ||
− | // 4.3º | + | // 4.3º Base - Margem Lateral |
for (int i = 0; i < margem; ++i) { | for (int i = 0; i < margem; ++i) { | ||
printf(" "); | printf(" "); | ||
Linha 97: | Linha 98: | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | ==Podemos melhorar esse código criando algumas funções: == | ||
+ | |||
+ | Função para desenhar a margem lateral que se repete durante o código todo, ela recebe como parâmetro o tamanho da margem. | ||
+ | {{collapse top | Função margem Lateral}} | ||
+ | <syntaxhighlight lang=c> | ||
+ | int margemLateral(int margem){ | ||
+ | for (int i = 0; i < margem; ++i) { | ||
+ | printf(" "); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | Ou podemos criar uma função que receba o caractere e a quantidade de vezes que ele deve aparecer, que no caso abrange todo o nosso exemplo: | ||
+ | |||
+ | {{collapse top | Função desenha caractere}} | ||
+ | <syntaxhighlight lang=c> | ||
+ | int desenhaCaractere(char caractere, int quantidade){ | ||
+ | for (int i = 0; i < quantidade; ++i) { | ||
+ | printf(caractere); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{collapse bottom}} | {{collapse bottom}} |
Edição das 12h59min de 3 de julho de 2021
Desenhando um retângulo no terminal utilizando C
Como estamos trabalhando com o terminal temos que programar a construção do retângulo pensando em linha por linha!
Exemplo de desenho
##### # # # # #####
Olhando para o exemplo acima e analisando linha por linha podemos desenhar ele em 5 etapas.
- 1º Margem superior.
- 2º Topo, que é composta por:
- margem lateral + (caractere '#')* tamanho_da_base + margem lateral.
- 3º Meio do desenho, composto por:
- margem lateral + caractere '#' + espaços em branco + caractere '#' + margem lateral.
- 4º Base, composta por:
- margem lateral + (caractere '#')* tamanho_da_base + margem lateral.
- 5º Margem Inferior.
Código simples |
---|
#include <stdio.h>
int desenhar_retang(int margem, int base, int altura) {
// 1º Margem superior, um for para desenhar a margem
for (int i = 0; i < margem; ++i) {
printf("\n"); // Um simples "\n" para quebrar a linha
}
// 2.1º Topo - Margem lateral
for (int i = 0; i < margem; ++i) {
printf(" ");
}
// 2.2º Topo - Linha de caracteres '#'
for (int i = 0; i < base; ++i) {
printf("#");
}
// 2.3º Topo - Margem Lateral
for (int i = 0; i < base; ++i) {
printf(" ");
}
printf("\n");//
//Aqui temos um for para a quantidade de linhas repetidas e dentro dele a construção de cada linha!
for (int k = 0; k < altura - 2; ++k) {
// 3.1° Meio do desenho - Margem lateral
for (int i = 0; i < margem; ++i) {
printf(" ");
}
// 3.2° Meio do desenho - Caractere '#'
printf("#");
// 3.3° Meio do desenho - Espaços em branco
for (int i = 0; i < base - 2; ++i) {
printf(" ");
}
// 3.4° Meio do desenho - Caractere "#"
printf("#");
// 3.5° Meio do desenho - Margem lateral
for (int i = 0; i < margem; ++i) {
printf(" ");
}
printf("\n");
}
// 4.1º Base - Margem lateral
for (int i = 0; i < margem; ++i) {
printf(" ");
}
// 4.2º Base - Linha de caracteres
for (int i = 0; i < base; ++i) {
printf("#");
}
// 4.3º Base - Margem Lateral
for (int i = 0; i < margem; ++i) {
printf(" ");
}
// 5º Margem superior
for (int i = 0; i < margem; ++i) {
printf("\n");
}
}
int main()
{
desenhar_retang(2,30,10);
return 0;
}
|
Podemos melhorar esse código criando algumas funções:
Função para desenhar a margem lateral que se repete durante o código todo, ela recebe como parâmetro o tamanho da margem.
Função margem Lateral |
---|
int margemLateral(int margem){
for (int i = 0; i < margem; ++i) {
printf(" ");
}
}
|
Ou podemos criar uma função que receba o caractere e a quantidade de vezes que ele deve aparecer, que no caso abrange todo o nosso exemplo:
Função desenha caractere |
---|
int desenhaCaractere(char caractere, int quantidade){
for (int i = 0; i < quantidade; ++i) {
printf(caractere);
}
}
|