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
| string text = "";
text += "\nMaximize";
text += "\nobj: 5x0 + 8x1 + 8x2 + 45x3 + 89x4";
text += "\nSubject To";
text += "\nc1: 27x0 + 98x1 + 14x2 + 27x3 + 49x4 <= 242";
text += "\nBinaries";
text += "\nx0 x1 x2 x3 x4 End";
// pour stocker le coefficient courrant sous forme de string
string string_coefficient = "";
// on parcourt la chaîne
for(int iString1 = 0; iString1 < text.length(); iString1++)
{
// charactere courant
string character = text.substr(iString1,1);
// on vide la chaine si on le charactere courant n'est ni un chiffre ni un x
// et on continue avec le charactere suivant
// (là les pros du c++ vont sûrement hurler)
if((character != "0") &&
(character != "1") &&
(character != "2") &&
(character != "3") &&
(character != "4") &&
(character != "5") &&
(character != "6") &&
(character != "7") &&
(character != "8") &&
(character != "9") &&
(character != "x"))
{
string_coefficient = "";
continue;
}
// si on a un "x"
if(character == "x")
{
// si la chaine n'est pas vide, on tient un coefficient
if(string_coefficient != "")
// ... a remplacer par un int coeff = str2int(string_coefficient) puis
// a stocker dans un vector<int> par exemple
ShowMessageAnsiString(string_coefficient.c_str()));
// on vide la chaine pour accueillir un nouveau coefficient
string_coefficient = "";
// et on continue avec le charactere suivant
continue;
}
// à ce stade character est forcément un chiffre on l'ajoute donc à notre chaine
string_coefficient += character;
} |
Partager