Jump to content
Fórum Script Brasil
  • 0

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


Giovanna Cóppola

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...