Jump to content


Photo

Uma Função Com Vários Parâmetros


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 Giovanna Cóppola

Giovanna Cóppola

    Normal

  • Usuários
  • 116 posts
  • Sexo:Feminino
  • Localidade:São Paulo

Posted 31/08/2011, 18:09

Pessoal,

Preciso desenhar um gato através de apenas uma função para o corpo todo do gato, que chama vários parâmetros para as diferentes partes do corpo, sendo assim, cada parte do corpo deve ser formada por caracteres distintos.

Nessa imagem, há um esboço do gato que fiz no bloco de notas.

Posted Image

Esse é o código do meu programa:

/*
PROGRAMA QUE DESENHA UM GATO NA TELA
DESENVOLVIDO POR GIOVANNA CÓPPOLA
*/

#include <iostream>
using namespace std;

void desenha (int qtdespacos1, int qtdletrasE1, int qtdletrasmeio1, int qtdletrasD1,
int qtdespacos2, int qtdletrasE2, int qtdletrasmeio2, int qtdletrasD2, int qtdlinhas, string letra);

int main()
{  
    cout << "\n\n\n\n";
    
    //orelhas
    desenha (14, 1, 10, 1, 0, 0, 0, 0, 1, "X");
    desenha (13, 3, 8, 3, 0, 0, 0, 0, 1, "X");
    desenha (12, 5, 6, 5, 0, 0, 0, 0, 1, "X");

    //cabeça
    desenha (11, 9, 0, 9, 0, 0, 0, 0, 1, "o");
    desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o");
    desenha (10, 5, 2, 6, 2, 5, 0, 0, 1, "o");
    desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o");
    desenha (10, 9, 2, 9, 0, 0, 0, 0, 1, "o");
    desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o");
    desenha (10, 7, 6, 7, 0, 0, 0, 0, 1, "o");
    desenha (11, 8, 2, 8, 0, 0, 0, 0, 1, "o");
    desenha (12, 8, 0, 8, 0, 0, 0, 0, 1, "o");
    desenha (13, 7, 0, 7, 0, 0, 0, 0, 1, "o");
    
    //rabo

    
    //corpo
    desenha (16, 21, 0, 21, 0, 0, 0, 0, 8, "O");
    
    //pernas
    desenha (20, 4, 4, 4, 10, 4, 4, 4, 7, "U");
 
    //finaliza
    cout << "\n\n\n\n" << endl;
    system ("PAUSE");
    return 0;
}

void desenha (int qtdespacos1, int qtdletrasE1, int qtdletrasmeio1, int qtdletrasD1,
int qtdespacos2, int qtdletrasE2, int qtdletrasmeio2, int qtdletrasD2, int qtdlinhas, string letra)
{
     
     string espaco = " ";
      for (int a = 1; a<=qtdlinhas; a++)
      {
          for (int a = 1; a<= qtdespacos1; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasE1; a++) cout << letra;
          for (int a = 1; a<= qtdletrasmeio1; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasD1; a++) cout << letra;
          for (int a = 1; a<= qtdespacos2; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasE2; a++) cout << letra;
          for (int a = 1; a<= qtdletrasmeio2; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasD2; a++) cout << letra;
          cout << "\n";
      }
}

O programa está gerando a seguinte imagem:

Posted Image

Como podem ver no esboço, o rabo do gato pega algumas linhas da cabeça. Estou tendo dificuldades em desenhá-lo, já que preciso inserir novos parâmetros para o programa desenhar o rabo com a letra "V". Como posso fazer isso nas mesmas linhas da cabeça?

Obrigada desde já!


EDITANDO:

Consegui, consegui!

Resolvi o problema com inserções de variáveis. Aproveitei e dei uma inclinada no rabo do bichano. ;)

/*
PROGRAMA QUE DESENHA UM GATO NA TELA
DESENVOLVIDO POR GIOVANNA CÓPPOLA
*/

#include <iostream>
using namespace std;

void desenha (int qtdespacos1, int qtdletrasE1, int qtdletrasmeio1, int qtdletrasD1,
int qtdespacos2, int qtdletrasE2, int qtdletrasmeio2, int qtdletrasD2, int qtdlinhas, string letra,
int qtdespacos1a, int qtdletrasE1a, int qtdletrasmeio1a, int qtdletrasD1a,
int qtdespacos2a, int qtdletrasE2a, int qtdletrasmeio2a, int qtdletrasD2a, int qtdlinhasa, string letraa);

int main()
{  
    cout << "\n\n\n\n";
    
    //orelhas
    desenha (14, 1, 10, 1, 0, 0, 0, 0, 1, "X", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO");
    desenha (13, 3, 8, 3, 0, 0, 0, 0, 1, "X", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO");
    desenha (12, 5, 6, 5, 0, 0, 0, 0, 1, "X", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO");

    //cabeça e rabo
    desenha (11, 9, 0, 9, 0, 0, 0, 0, 1, "o", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO"); 
    desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO");
    desenha (10, 5, 2, 6, 2, 5, 0, 0, 1, "o", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO");
    desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V");
    desenha (10, 9, 2, 9, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V");
    desenha (10, 10, 0, 10, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V");
    desenha (10, 7, 6, 7, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V");
    desenha (11, 8, 2, 8, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V");
    desenha (12, 8, 0, 8, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V");
    desenha (13, 7, 0, 7, 0, 0, 0, 0, 1, "o", 29, 1, 0, 1, 0, 0, 0, 0, 1, "V");
    
    //corpo
    desenha (16, 21, 0, 21, 0, 0, 0, 0, 8, "O", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO");
    
    //pernas
    desenha (20, 4, 4, 4, 10, 4, 4, 4, 7, "U", 0, 0, 0, 0, 0, 0, 0, 0, 0, "NULO");
 
    //finaliza
    cout << "\n\n\n\n" << endl;
    system ("PAUSE");
    return 0;
}

void desenha (int qtdespacos1, int qtdletrasE1, int qtdletrasmeio1, int qtdletrasD1,
int qtdespacos2, int qtdletrasE2, int qtdletrasmeio2, int qtdletrasD2, int qtdlinhas, string letra,
int qtdespacos1a, int qtdletrasE1a, int qtdletrasmeio1a, int qtdletrasD1a,
int qtdespacos2a, int qtdletrasE2a, int qtdletrasmeio2a, int qtdletrasD2a, int qtdlinhasa, string letraa)
{
     
     string espaco = " ";
      for (int a = 1; a<=qtdlinhas; a++)
      {
          for (int a = 1; a<= qtdespacos1; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasE1; a++) cout << letra;
          for (int a = 1; a<= qtdletrasmeio1; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasD1; a++) cout << letra;
          for (int a = 1; a<= qtdespacos2; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasE2; a++) cout << letra;
          for (int a = 1; a<= qtdletrasmeio2; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasD2; a++) cout << letra;
          for (int a = 1; a<= qtdespacos1a; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasE1a; a++) cout << letraa;
          for (int a = 1; a<= qtdletrasmeio1a; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasD1a; a++) cout << letraa;
          for (int a = 1; a<= qtdespacos2a; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasE2a; a++) cout << letraa;
          for (int a = 1; a<= qtdletrasmeio2a; a++) cout << espaco;
          for (int a = 1; a<= qtdletrasD2a; a++) cout << letraa;
          cout << "\n";
      }
}

Edição feita por: Giovanna Cóppola, 31/08/2011, 18:10.

Pandartt | Redação SEO, Marketing Digital, Sites e Fotos




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq