-
Notifications
You must be signed in to change notification settings - Fork 1
/
Lignee_L.cpp
executable file
·114 lines (72 loc) · 2.12 KB
/
Lignee_L.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//==============================
// INCLUDES
//==============================
#include "Lignee_L.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
using std::cout;
using std::endl;
//==============================
// DEFINITION STATIC ATTRIBUTES
//==============================
int Lignee_L::compteur_L = 0; //On initialise notre compteur à 0
//==============================
// CONSTRUCTORS
//==============================
Lignee_L::Lignee_L(){
compteur_L++;
type='L';
Raa=0.1;
Rab=0.1;
}
Lignee_L::Lignee_L(float a, float b, float c){
compteur_L++;
type='L';
A_int=a;
B_int=b;
C_int=c;
Raa=0.1;
Rab=0.1;
}
//==============================
// DESTRUCTOR
//==============================
Lignee_L::~Lignee_L(){
compteur_L--;
}
//==============================
// PUBLIC METHODS
//==============================
void Lignee_L::Describe(){
cout<< "Cette bactérie de type "<<type<<" présente une concentration interne en A: "<<A_int<<", en B: "<<B_int<<" et en C: "<<C_int<<" ainsi qu'une fitness de "<<w<<endl;
}
Bacterie* Lignee_L::Division(){
A_int = A_int/2.0; //les individus fils héritent de la moitié des concentrations internes du parent
B_int = B_int/2.0;
C_int = C_int/2.0;
Lignee_L* newcell = new Lignee_L(A_int,B_int,C_int); //nouvelle bactérie de type A qui récupère les nouvelles concentrations intra suite à la division
return newcell;
}
int Lignee_L::Death(){return Bacterie::Death();}
char Lignee_L::Gettype(){return Bacterie::Gettype();}
int Lignee_L::Mute(){return Bacterie::Mute();}
float Lignee_L::GetA_int(){return A_int;}
float Lignee_L::GetB_int(){return B_int;}
float Lignee_L::GetC_int(){return C_int;}
float& Lignee_L::Getw(){return w;}
int Lignee_L::nombre_L()
{
return compteur_L; // renvoie la valeur du compteur
}
float Lignee_L::absorb(float c, float h){ // système qui régit le réseau métabolique des individus de type Ga
float newa=c;
float newbint=B_int;
float newaint=A_int;
newa+=h*(-Raa*c);
newaint+=h*(Raa*c-Rab*A_int);
newbint+=h*(Rab*A_int);
B_int=newbint;
A_int=newaint;
return newa;
}