Ir para conteúdo
Fórum Script Brasil
  • 0

Uma função com vários parâmetros


Giovanna Cóppola

Pergunta

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.

gato-esboco.png

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:

gato-programa.png

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á!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Consegui, consegui! :rolleyes:

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";
      }
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...