/* Je ne sais pas encore ce que doit faire ce programme. En gros. Cela pourrait s'appliquer à la chimie, mais peut-être à n'importe quoi. Si on prend une molécule. Disons H2 et qu'on le met en contact et O2 et qu'on déclenche une réaction, on obtient de la chaleur de l'eau (H2O). Est-ce possible de prendre les caractéristiques de base de H2 et les caractéristiques de base de O2 et de placer tout cela dans une matrice, faire une opération quelquoncque et on obtient les caractéristique de base du H20 et un quatrième colonne fournit d'autres caractéristiques tel la chaleur dégagée. Après avoir obtenu la colonne 3, on utilise un module de recherche pour trouver quel composé aurait les caractéristiques de la colonne 3. On peut alors prédire le résultat de la réaction. On peut aussi laisser la colonne 2 vide et remplir la colonne 3. En appliquant une solution inverse, on peut déduire la colonne 2 à partir de 1 et 3 et 4. Connaissant les caractéristiques de 2, on peut alors rechercher le composé qui a ces caractéristiques. Il faudrait que la solution fonctionne pour N composés produisant N résultats. Le programme actuel est passablement sans but ni idée. On va commencer à écrire un programme de solution matriciel et on va l'appliquer à l'écriture de musique (oui oui) et on verra où ça nous mènera. Une colonne est en fait une matrice. Dans le cas de la musique, chaque ligne commence par la durée en 1/64 suivit d'une ou plusieurs notes. Pour rendre les choses plus compliquée, le nombre de ligne dans chaque colonne est variable. Dans le cas de la musique, la somme des durées pour toutes les colonnes est la même, mais chaque ligne d'une colonne peut avoir une valeur différente. */ #include #include #include #include using namespace std; struct SAMPLE{ int v[4]; SAMPLE (const int _v[4]){ memcpy (v,_v,sizeof(v)); } }; struct COLUMN { vector vs; }; int main (int argc, char *argv[]) { glocal int ret = 0; glocal.ret = (argc,argv); setproginfo ("protide","0","Solutionneur générique"); int ret = -1; glocal vector cols; for (int i=0; i(argv[i],true); int duration, v[4]; memset (v,0,sizeof(v)); int n = sscanf (line,"%d %d %d %d %d",&duration,&v[0],&v[1],&v[2],&v[3]); if (n < 2){ tlmp_error ("File %s, line %d, not enough values\n",info.filename,noline); }else{ for (int i=0; i glocal.cols.push_back(glocal.col); } unsigned size = glocal.cols[0].vs.size(); bool some_errors = false; for (unsigned i=1; i %u\n",i,size,i_size); some_errors = true; } } if (!some_errors){ for (unsigned i=0; i return glocal.ret; }