Não estou conseguindo fazer o programa principal, o exercício pede:
Exercício:
Um protozoário é um animal simples, porém completo. A partir do seu nascimento, cada protozoário tem um número ****** único, conhecido como individualidade, que nunca pode mudar e nunca poderá ser associado a outro protozoário. O genótipo de um protozoário é composto por 10 genes, sendo que cada um pode ter valores de 0 a 3. Um protozoário pode se reproduzir por replicação ou por cópula com outro protozoário*. Um protozoário nascido através da replicação de outro é uma cópia idêntica do pai, exceto por sua individualidade. Já se for gerado por cópula, receberá os genes randomicamente de cada indivíduo, com uma chance de 50% do gene vir de um ou de outro. De vez em quando (em 7% dos casos), pode haver mutação no genótipo, que altera um único gene no protozoário.
Modele a classe Protozoario, que deve possuir os seguintes métodos:
a) public Protozoario(): cria um protozoário com o genótipo [0,0,0,0,0,0,0,0,0,0];
public Protozoario(int[] genotipo): cria um protozoário com o genótipo fornecido;
c) public void mutate(): causa uma mutação no genótipo;
d) public Protozoario getClone(): retorna um novo protozoário criado por replicação;
e) public void print(): imprime uma representação do protozoário;
f) Permita que o usuário saiba quantos objetos protozoários estão em memória em um dado momento.
Eu n estou conseguindo fazer o programa principal, alguém poderia ajudar?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int MaxElementos = 512; // máximo de protozoários
// definicao dos genes
enum Gene { //aminoácidos reais representados de 0 a 3
Adenina = 0,
Citosina = 1,
Guanina = 2,
Timina = 3
};
// classe Principal aqui
class Protozoario
{
private:
int Serial;
Gene Genotipo[10];
public:
Protozoario();
Protozoario(Gene genotipo[10]);
void print();
void mutate();
Protozoario getClone();
Protozoario GetCopula(Protozoario Parceiro);
};
namespace RunTime {
int LastSerial = 0;
int NovoSerial()
{
// se quiser randômico é só implementar, porém tome cuidado:
// cada serial é único
return ++LastSerial;
}
Gene NovoGene()
{
srand(time(NULL));
int select = rand() % 4;
switch(select) {
case 0: return Adenina; break; // uma aminoácido
case 1: return Citosina; break; // uma aminoácido
case 2: return Guanina; break; // uma aminoácido
case 3: return Timina ; break; // uma aminoácido
}
return Adenina; // Se algo der errado, retorna Adenina
}
// lista de ponteiros para os protozoários criados
Protozoario *Lista[MaxElementos];
} // RunTime namespace
#endif
Protozoario::Protozoario()
{
this->Serial = RunTime::NovoSerial();
for(int n = 0; n != 10; n++) {
this->Genotipo[n] = Adenina;
}
}
Protozoario::Protozoario(Gene genotipo[10])
{
this->Serial = RunTime::NovoSerial();
for(int n = 0; n != 10; n++) {
this->Genotipo[n] = genotipo[n]; //cópia do genótipo como parâmetro
Pergunta
isaiasbd
Não estou conseguindo fazer o programa principal, o exercício pede:
Exercício:
Um protozoário é um animal simples, porém completo. A partir do seu nascimento, cada protozoário tem um número ****** único, conhecido como individualidade, que nunca pode mudar e nunca poderá ser associado a outro protozoário. O genótipo de um protozoário é composto por 10 genes, sendo que cada um pode ter valores de 0 a 3. Um protozoário pode se reproduzir por replicação ou por cópula com outro protozoário*. Um protozoário nascido através da replicação de outro é uma cópia idêntica do pai, exceto por sua individualidade. Já se for gerado por cópula, receberá os genes randomicamente de cada indivíduo, com uma chance de 50% do gene vir de um ou de outro. De vez em quando (em 7% dos casos), pode haver mutação no genótipo, que altera um único gene no protozoário.
Modele a classe Protozoario, que deve possuir os seguintes métodos:
a) public Protozoario(): cria um protozoário com o genótipo [0,0,0,0,0,0,0,0,0,0];
public Protozoario(int[] genotipo): cria um protozoário com o genótipo fornecido;
c) public void mutate(): causa uma mutação no genótipo;
d) public Protozoario getClone(): retorna um novo protozoário criado por replicação;
e) public void print(): imprime uma representação do protozoário;
f) Permita que o usuário saiba quantos objetos protozoários estão em memória em um dado momento.
Eu n estou conseguindo fazer o programa principal, alguém poderia ajudar?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.