-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathEspecie.hh
92 lines (60 loc) · 2.47 KB
/
Especie.hh
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
/** @file Especie.hh
@brief Especificació de la clase especie.
*/
#ifndef _ESPECIE_HH_
#define _ESPECIE_HH_
#include "Especie.hh"
#ifndef NO_DIAGRAM
#include <iostream>
#include <vector>
#endif
using namespace std;
/** @class Especie
@brief Representa una espècie.
Permet llegir i consultar les dades inicials del programa i consultar-ne els valors posteriorment.
*/
class Especie {
public:
/** @brief Creadora por defecte.
S'executa automàticament al declarar una especie.
\pre <em>Cert</em>.
\post El resultat és una espècie sense genetica inicial.
*/
Especie();
/** @brief Lectora de les dades que determinen la genètica d'una espècie.
\pre Es preparen pel canal d'entrada els valors de <em>N</em>, (N+1) elements corresponents a la longitud de cada parell de cromosomes, la longitud del cromosoma x i la del y. <em>iparell</em> és el número del parell al que volem accedir (1 <= i <= N).
\post El resultat és la llargada dels cromosomes x.
*/
void establir_genetica();
/** @brief Consultora del nombre de cromosomes normals.
\pre El paràmetre implicit està inicialitzat.
\post El resultat és el nombre de cromosomes normals.
*/
int consultar_n() const;
/** @brief Consultora de la llargada dels cromosomes X.
\pre El paràmetre implicit està inicialitzat.
\post El resultat és la llargada dels cromosomes X.
*/
int consultar_lx() const;
/** @brief Consultora de la llargada dels cromosomes Y.
\pre El paràmetre implicit està inicialitzat.
\post El resultat és la llargada dels cromosomes Y.
*/
int consultar_ly() const;
/** @brief Consultora de la longitud d'un determinat parell de cromosomes.
\pre El paràmetre implicit està inicialitzat, nparell conté el subindex del parell que es vol consultar.
\post El resultat és la llargada del parell de cromosomes corresponent a nparell.
*/
int consultar_ln(int iparell) const;
private:
/** @brief Número de cromosomes no sexuals (normals) */
int n;
/** @brief Llargada dels cromosomes sexuals X */
int lx;
/** @brief Llargada dels cromosomes sexuals Y */
int ly;
/** @brief Llargada de cada parell de cromosomes
Cada posició del vector correspon a la llargada del número de parell de cromosomes corresponent a aquesta */
vector<int> l;
};
#endif