Mudanças entre as edições de "Usuário:Mike.icd"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Código simples desenho terminal)
 
(Limpou toda a página)
Etiqueta: anulando
 
Linha 1: Linha 1:
= 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
 
  
{{collapse top | Código simples}}
 
<syntaxhighlight lang=c>
 
#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 base!
 
    }
 
 
    // 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;
 
}
 
 
</syntaxhighlight>
 
 
{{collapse bottom}}
 

Edição atual tal como às 12h00min de 3 de julho de 2021