Ir para conteúdo
Fórum Script Brasil

isaiasbd

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre isaiasbd

isaiasbd's Achievements

0

Reputação

  1. É pra criar um algoritmo que leia base e altura de um retangulo, e por meio de funções imprimir o perimetro e a area do retangulo, só que ta dando um erro, ajuda ae! Olha meu código
  2. 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?
  3. Opa, vlw mesmo Marcelo, ajudou muito. Minha dúvida era em criar o menu, mais suas dicas ajudaram, vou tentar fazer aqui agora! Vlw!
  4. Estou com dúvida de fazer o int main não estou conseguindo passar da classe para o programa principal. Alguém pode me ajudar? Segue abaixo o exercício e o código. 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]; B) 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. #ifndef PROTOZOARIOS_H #define PROTOZOARIOS_H #include <stdio.h> #include <stdlib.h> #include <time.h> const int MaxElementos = 512; // máximo de protozoários // definicao dos genes enum Gene { Adenina = 0, //aminoácidos reais representados de 0 a 3 Citosina = 1, Guanina = 2, Timina = 3 }; // classe Principal aqui class Protozoario { private: int Serial; Gene Genotipo[10]; public: Protozoario(); Protozoario(Gene genotipo[10]); void mutate(); Protozoario getClone(); void print(); // criada por mim 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; // uma aminoácido } break; case 1: { return Citosina; // uma aminoácido } break; case 2: { return Guanina; // uma aminoácido } break; case 3: { return Timina; // uma aminoácido } break; default: { return Adenina; // caso algum erro } break; } return Adenina; // impossível chegar aqui, mas está presete } // lista de ponteiros para os protozoários criados Protozoario *Lista[MaxElementos]; } // RunTime namespace // isso vai no .cpp // #include "protozoario.h" 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 } // 7% dos casos tem uma mutação srand(time(NULL)); int esp = rand() % 100; if(esp <= 7) { this->mutate(); } } Protozoario Protozoario::getClone() { Protozoario temp; temp.Serial = RunTime::NovoSerial(); for(int n = 0; n != 10; n++) { temp.Genotipo[n] = this->Genotipo[n]; } return temp; } // retorna um protozoário através de combinação Protozoario Protozoario::GetCopula(Protozoario Parceiro) { Protozoario ret; // retorno bool est = false; srand(time(NULL)); ret.Serial = RunTime::NovoSerial(); // para os genes aleatórios for(int n = 0; n != 10; n++) { est = rand() % 2; // idealiza a randomização de true ou false if(est == true) { ret.Genotipo[n] = this->Genotipo[n]; } else { ret.Genotipo[n] = Parceiro.Genotipo[n]; } } // 7% dos casos tem uma mutação srand(time(NULL)); int esp = rand() % 100; if(esp <= 7) { ret.mutate(); } return ret; } void Protozoario::mutate() { srand(time(NULL)); int GeneAlvo = rand() % 10; // ponteiro-alvo para o gene que se modificará Gene Antigo = this->Genotipo[GeneAlvo]; Gene Novo = RunTime::NovoGene(); while(Antigo == Novo) { Novo = RunTime::NovoGene(); } this->Genotipo[GeneAlvo] = Novo; return; } void Protozoario::print() { // expressão de saída: // Protozoário // Serial: 0 // Genotipo: 0120103012 printf_s("Protozoario:\nSerial: %i\nGenotipo: ", this->Serial); for(int n = 0; n != 10; n++) { switch(this->Genotipo[n]) { case Adenina: { printf_s("%i", 0); } break; case Citosina: { printf_s("%i", 1); } break; case Guanina: { printf_s("%i", 2); } break; case Timina: { printf_s("%i", 3); } break; default: { } break; } } printf_s("\n"); return; } #endif
×
×
  • Criar Novo...