Mudanças entre as edições de "Mike Igor Camilo Domingues"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 11: Linha 11:
 
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º A base superior, que é composta por:
+
*2º A base superior, que é composta por:
margem lateral + (caractere '#')vezes o tamanho da base + margem lateral.
+
margem lateral + (caractere '#')vezes o 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
 
Fazemos a multiplicação desse passo pela (altura) -2, esse -2 aparece porque separamos o desenho em
 
Fazemos a multiplicação desse passo pela (altura) -2, esse -2 aparece porque separamos o desenho em
algumas partes, ele fica completo com a base superior e inferior.
+
algumas partes, ele fica completo com a base superior e inferior;
 
      
 
      
4º Base inferior, que é igual a base superior;
+
*4º Base inferior, que é igual a base superior;
 
      
 
      
5º Margem Inferior
+
*5º Margem Inferior.
  
 
{{collapse top | Código simples}}
 
{{collapse top | Código simples}}

Edição das 12h03min 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º A base superior, que é composta por:

margem lateral + (caractere '#')vezes o tamanho da base + margem lateral;

  • 3º Meio do desenho, composto por:

margem lateral + caractere '#' + espaços em branco + caractere '#' + margem lateral Fazemos a multiplicação desse passo pela (altura) -2, esse -2 aparece porque separamos o desenho em algumas partes, ele fica completo com a base superior e inferior;

  • 4º Base inferior, que é igual a base superior;
  • 5º Margem Inferior.
Código simples
#include <stdio.h>

int desenhar_retang(int margem, int base, int altura) {
    
    // 1º Margem superior
    for (int i = 0; i < margem; ++i) {
        printf("\n"); // Um simples "\n" para quebrar a linha
    }

    // 2.1º Base superior - Margem lateral
    for (int i = 0; i < margem; ++i) {
        printf(" ");
    }
    // 2.2º Base superior - Linha de caracteres '#'
    for (int i = 0; i < base; ++i) {
        printf("#");
    }
    // 2.3º Base superior - 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 - Caractér '#'
        printf("#");
        // 3.3° Meio do desenho - Espaços em branco
        for (int i = 0; i < base - 2; ++i) {
            printf(" ");
        }
        // 3.4° Meio do desenho - Caractér "#"
        printf("#");
        // 3.5° Meio do desenho - Margem lateral
        for (int i = 0; i < margem; ++i) {
            printf(" ");
        }
        printf("\n");
    }

    // 4.1º Linha superior - Margem lateral
    for (int i = 0; i < margem; ++i) {
        printf(" ");
    }
    // 4.2º Linha superior - Linha de caracteres
    for (int i = 0; i < base; ++i) {
        printf("#");
    }
    // 4.3º Linha superior - Margem Lateral
    for (int i = 0; i < margem; ++i) {
        printf(" ");
    }

    // 5º Margem superior
    for (int i = 0; i < margem; ++i) {
        printf("\n"); // Um simples \n para quebrar base!
    }

}


int main()
{
    desenhar_retang(2,30,10);
    return 0;
}