OVH Cloud OVH Cloud

reduction du prog

4 réponses
Avatar
giovanni
comment simplifierai vous ce morceau de prg?

{if (nb_11==nb_1 || nb_11==nb_2 || nb_11==nb_3 || nb_11==nb_4 ||
nb_11==nb_5)
{if (nb_22==nb_1 || nb_22==nb_2 || nb_22==nb_3 || nb_22==nb_4 ||
nb_22==nb_5)
{if (nb_33==nb_1 || nb_33==nb_2 || nb_33==nb_3 || nb_33==nb_4 ||
nb_33==nb_5)
t123=t123+1;}}}
ce que j'ai fais ne semble pas marche en plus helas pour moi mais pas
compris pourquoi ca me semble juste pourtant
le prg doit voir si dans nb_11 il y a nombre egal a nb_1 ou nb_2 ou nb_3 ou
nb_4 ou nb_5
si non arete et continue le prg normal
si oui passe a nb_22 et fais le meme test et si oui fais encore le test
nb_33 il y a cestrois valeur me additione dans t123
sinon arete et continue le test si pas egal
au fait je doit faire nb_11=1 nb_22=2 nb_33=3
si cest chiffre sont dans la combinaison nb_1 nb_2 nb_3 nb_4 nb_5

ce que j'ai fais ne semble pas marche

4 réponses

Avatar
James Kanze
giovanni wrote:
comment simplifierai vous ce morceau de prg?

{if (nb_11==nb_1 || nb_11==nb_2 || nb_11==nb_3 || nb_11== nb_4 ||
nb_11==nb_5)
{if (nb_22==nb_1 || nb_22==nb_2 || nb_22==nb_3 || nb_22 ==nb_4 ||
nb_22==nb_5)
{if (nb_33==nb_1 || nb_33==nb_2 || nb_33==nb_3 || nb_3 3==nb_4 ||
nb_33==nb_5)
t123=t123+1;}}}
ce que j'ai fais ne semble pas marche en plus helas pour moi mais pas
compris pourquoi ca me semble juste pourtant
le prg doit voir si dans nb_11 il y a nombre egal a nb_1 ou nb_2 ou nb_3 ou
nb_4 ou nb_5
si non arete et continue le prg normal
si oui passe a nb_22 et fais le meme test et si oui fais encore le test
nb_33 il y a cestrois valeur me additione dans t123
sinon arete et continue le test si pas egal
au fait je doit faire nb_11=1 nb_22=2 nb_33=3
si cest chiffre sont dans la combinaison nb_1 nb_2 nb_3 nb_4 nb_5


Un peu d'information sur ce que tu essaies de faire réelement
aiderait. Est-ce que nb_[1-5] ne seraient pas un ensemble, et ce
que tu cherches, c'est quelque chose du genre :

if ( nb.contains( nb_11 )
&& nb.contains( nb_22 )
&& nb.contains( nb_33 ) ) {
++ t124 ;
}

Ensuite, en fonction des valeurs réelement utilisées et les
opérations les plus fréquentes, on choisira soit un bitmap, soit
un vecteur (éventuellement trié) soit std::set pour
l'implémenter.

ce que j'ai fais ne semble pas marche


Là, en revanche, je ne sais pas trop quoi te dire. Au moins
qu'il y a un typo que je ne vois pas, le code que tu as posté,
même si c'est lourd, est correct, et doit faire à peu près ce
que tu as décrit.

--
James Kanze (Gabi Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Avatar
loufoque
comment simplifierai vous ce morceau de prg?

{if (nb_11==nb_1 || nb_11==nb_2 || nb_11==nb_3 || nb_11==nb_4 ||
nb_11==nb_5)
{if (nb_22==nb_1 || nb_22==nb_2 || nb_22==nb_3 || nb_22==nb_4 ||
nb_22==nb_5)
{if (nb_33==nb_1 || nb_33==nb_2 || nb_33==nb_3 || nb_33==nb_4 ||
nb_33==nb_5)
t123=t123+1;}}}


std::tr1::array<int, 5> a = {...};
std::tr1::array<array<int, 3> 3> b = {{...}, {...}, ...}; // ou un
multi_array

bool found = false;
for(size_t i=0; i<b.size(); ++i)
{
for(size_t j=0; i<a.size(); ++i)
{
if(b[i][i] == a[j])
{
found = true;
break;
}
}
if(found)
break;

}
if(!found)
var++;

Avatar
Sylvain
loufoque wrote on 29/10/2006 01:29:

std::tr1::array<int, 5> a = {...};
std::tr1::array<array<int, 3> 3> b = {{...}, {...}, ...}; // ou un
multi_array

bool found = false;
for(size_t i=0; i<b.size(); ++i){
for(size_t j=0; i<a.size(); ++i){
j? j?

if(b[i][i] == a[j]){
ou i,j ou j,i ??

}


j'ai l'impression que ta boucle interne n'es pas vraiment l'équivalent
du 'contains' de James, la "matrice" à vérifier (nb_ii) étant d'ailleurs
de dimension 1.

Sylvain.

Avatar
loufoque

j'ai l'impression que ta boucle interne n'es pas vraiment l'équivalent
du 'contains' de James


Oui mon code est erroné.
L'idée principale c'était de remplacer ces variables à indice par des
tableaux et ces enchaînements de tests par des boucles.