Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1687 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Concours No 3] A vos cerveaux !

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Page Précédente
Auteur Sujet :

[Concours No 3] A vos cerveaux !

n°773791
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 09:33:21  profilanswer
 

Je propose un nouveau petit concours du code le plus rapide. Plus simple que le précédent pour que tout le monde puisse y participer.
Ce topic est posté dans les zones : C, C++ et ASM.
D'ailleurs, pendant que j'y pense, ce serait bien d'avoir une sous-catégorie Concours !
Y a-t-il un modo dans la salle ?
 
ça m'aurait permis d'éviter de flooder en zone C et ASM. Désolé.
 
 
On dispose d'un générateur de nombre aléatoire générant une suite de 5.000.000 valeurs entières (positives) allant de 0 à 2^31-1 suivant :

Code :
  1. for (i=0,lValue=0;i<5000000;i++)
  2. {
  3.     lValue = ( ( 1664525 * lValue ) + 1013904223 ) & 0x7FFFFFFF;
  4.    
  5.     //La valeur aléatoire est dans lValue
  6.     //...
  7. }


Il s'agit de comptabiliser l'occurence des chiffres composants les nombres. Attention, on ne comptera pas le zéro précédent la valeur !
 
Un exemple pour 3 nombres : 484230, 6232, 89054620

Durée de traîtement : 32ms
0 - 3 occurences
1 - 0 occurence
2 - 4 occurences
3 - 2 occurences
4 - 3 occurences
5 - 1 occurence
6 - 2 occurences
7 - 0 occurence
8 - 2 occurences
9 - 1 occurence


 
Limitation dans le programme
- Tout est possible, la mesure de temps doit se faire entre le début du main et juste avant l'affichage des résultats.
Pour les résultats, un tableau de 10 entiers (de longueur 4 ou 8 octets) doit être rempli.
 
Limitation en mémoire
- Mémoire occupée limitée à 64Mo.
 
Limitation pour le langage
1 - Uniquement en C ou C++ sans aucune optimisation de la part du compilateur.
2 - Uniquement en C ou C++ avec les optimisations maximales du compilateur.
3 - Pour ceux qui veulent faire de l'assembleur (avec ou sans C/C++ mélangé), il faudra également fournir un code en C ou C++ (voir 1 ou 2). Donc sortir au moins 2 programmes (ASM et C/C++).
 
La cible
- Pour ma part, j'ai a ma disposition deux AthlonXP (Un Thoroughbred à 180MHz*12 avec 512Mo et un Barton à 180MHz*12 avec 1Go) sous Windows XP et un Pentium III-600 (133MHz*4 avec 128Mo).
- Il est possible de tester sur d'autres configurations.
- J'ai a ma disposition Visual C++ Service Pack 6 + Processor Pack 2 et DJGPP 2.01 (uniquement sous Windows 98SE).
 
Les performances
- Je ferais un récap pour les 3 cibles pour ceux qui sortirons en C/C++ sans optimisation et avec.
- Pour les programmes en assembleur, j'essayerais de les faire tourner sur les 3 plate-formes.
 
A vos cerveaux !


Message édité par christophe_d13 le 23-06-2004 à 09:53:48
mood
Publicité
Posté le 23-06-2004 à 09:33:21  profilanswer
 

n°773797
black_lord
Truth speaks from peacefulness
Posté le 23-06-2004 à 09:34:45  profilanswer
 

[:abnocte invictus]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°773801
skeye
Posté le 23-06-2004 à 09:35:24  profilanswer
 

t'as oublié un 0!:o


---------------
Can't buy what I want because it's free -
n°773804
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 09:36:55  profilanswer
 

skeye> Bien vue ! T'as été plus rapide que moi pour la relecture.

n°773817
Taz
bisounours-codeur
Posté le 23-06-2004 à 09:39:40  profilanswer
 

«  Uniquement en C ou C++ sans aucune optimisation de la part du compilateur. » c'est complètement bidon ton truc ... si tu désactives l'inlining, c'est même pas là peine de faire quoi que ce soit, sans parler des noop que rajoute les compilos dans tous les sens en mode debug

n°773826
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 09:41:23  profilanswer
 

Taz> On a tous des compilateurs différents. Cela montrera les performance de l'analyse et pas forcément du code.
Pour l'optimisation, il reste l'assembleur !

n°773833
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-06-2004 à 09:43:48  profilanswer
 

christophe_d13 a écrit :


D'ailleurs, pendant que j'y pense, ce serait bien d'avoir une sous-catégorie Concours !
Y a-t-il un modo dans la salle ?
 


 
non, pas assez de topic à ce sujet


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°773835
docmaboul
Posté le 23-06-2004 à 09:44:11  profilanswer
 

christophe_d13 a écrit :

Taz> On a tous des compilateurs différents. Cela montrera les performance de l'analyse et pas forcément du code.
Pour l'optimisation, il reste l'assembleur !


 
Cela n'a aucun sens de parler d'assembleur tout en désactivant les optimisations du compilo pour le C ou le C++.

n°773837
Taz
bisounours-codeur
Posté le 23-06-2004 à 09:44:38  profilanswer
 

christophe_d13 a écrit :

Taz> On a tous des compilateurs différents. Cela montrera les performance de l'analyse et pas forcément du code.
Pour l'optimisation, il reste l'assembleur !

ça montrera rien du tout. c'est bidon ton truc

n°773844
jagstang
Pa Capona ಠ_ಠ
Posté le 23-06-2004 à 09:46:49  profilanswer
 

[:drapo] quand même


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
mood
Publicité
Posté le 23-06-2004 à 09:46:49  profilanswer
 

n°773850
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 09:48:29  profilanswer
 

C'est ouvert à tout le monde... Et je n'oblige personne a participer. Si cela ne t'interresse pas, libre à toi de faire ton choix.
Mais tu peux toujours nous sortir un code avec les optimisations si cela peut te faire plaisir.
 
Rien que pour vous faire plaisir, j'élargi la cible.

n°773856
blackgodde​ss
vive le troll !
Posté le 23-06-2004 à 09:50:56  profilanswer
 

Pour les résultats, un tableau de 8 entiers doit être rempli.
 
8 entiers ? pas 10 ?


---------------
-( BlackGoddess )-
n°773861
Taz
bisounours-codeur
Posté le 23-06-2004 à 09:53:25  profilanswer
 

ce que tu comprends pas c'est que ton histoire bidon de désactiver les optimisations est pire : certains compilateurs ne considère pas certaine choses comme des optimisations, donc si tu laisses pas sa chance à chaque compilateur de faire son mieux, tu accrois encore plus les différences. à jamais

n°773863
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 09:54:52  profilanswer
 

BlackGoddess> Bien lu ! Corrigé, merci. Je m'étais trompé, Désolé.

n°773870
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 09:57:02  profilanswer
 

Taz> Sors-nous un programme et on verra la différence entre o0 et o3 sous DJGPP et entre Od et O2 sous Visual C++.

n°773878
el muchach​o
Comfortably Numb
Posté le 23-06-2004 à 09:59:59  profilanswer
 

Bizarre, j'ai l'impression d'avoir déjà vu ça qq part...
 
http://forum.hardware.fr/forum2.ph [...] =0&subcat=
 :pfff:
edit : j'avais pas vu qu'on ne compte que les chiffres. L'algo est trivial, donc ça n'a aucun intérêt.


Message édité par el muchacho le 23-06-2004 à 10:27:44
n°773882
black_lord
Truth speaks from peacefulness
Posté le 23-06-2004 à 10:01:41  profilanswer
 

christophe_d13 a écrit :

Taz> Sors-nous un programme et on verra la différence entre o0 et o3 sous DJGPP et entre Od et O2 sous Visual C++.


 
taz utilise GCC [:aloy]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°773887
kadreg
profil: Utilisateur
Posté le 23-06-2004 à 10:03:18  profilanswer
 

black_lord a écrit :

taz utilise GCC [:aloy]


 
d'ailleurs, à cause de taz, gcc de faire du C++


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°773890
skeye
Posté le 23-06-2004 à 10:03:41  profilanswer
 

kadreg a écrit :

d'ailleurs, à cause de taz, gcc de faire du C++


[:xp1700]


---------------
Can't buy what I want because it's free -
n°773922
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 10:15:30  profilanswer
 

el muchaco> Il ne marche pas le lien...
Mais si c'est à quoi je pense, j'ai repris l'idée du générateur de Knutz et j'ai fais un problème plus simple. Peut-être trop simple puisque dans le problème, ce qui va causer la lenteur ne sera pas forcément l'analyse, mais la bande passante... Cela dit, l'algo doit quand même être bien fait.
 
Sous VC++ 6.0 SP5 avec un Barton à 180x12 et WinAmp en tâche de fond : (4 essais et j'ai pris le temps le plus court)
- Debug = 7047ms (/Od)
- Release = 5781ms (/O2)
 
Up> Le code est très simple, mais sans aucune analyse.


Message édité par christophe_d13 le 23-06-2004 à 10:19:09
n°773930
black_lord
Truth speaks from peacefulness
Posté le 23-06-2004 à 10:18:32  profilanswer
 

kadreg a écrit :

d'ailleurs, à cause de taz, gcc de faire du C++


 
 :lol: le niveau vient de grimper d'un coup là !


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°773933
blackgodde​ss
vive le troll !
Posté le 23-06-2004 à 10:19:48  profilanswer
 

(jme suis juste permis de mettre une windowserie pour mesurer le temps.)
 
compilé sous vc++7.1, p4 2.4 :
 

Code :
  1. #include <windows.h>
  2. #include <iostream>
  3. using namespace std;
  4. class time
  5. {
  6. DWORD ticks;
  7. public:
  8. time()
  9. {
  10.  ticks = GetTickCount();
  11. }
  12. friend ostream & operator << (ostream & os, const time & t);
  13. };
  14. ostream & operator << (ostream & os, const time & t)
  15. {
  16. os << GetTickCount() - t.ticks << " ms";
  17. return os;
  18. }
  19. int main()
  20. {
  21. time t;
  22. int i;
  23. unsigned long lValue;
  24. unsigned long val;
  25. int tab[10] = {0};
  26. for (i=0,lValue=0;i<5000000;i++)
  27. {
  28.  lValue = ( ( 1664525 * lValue ) + 1013904223 ) & 0x7FFFFFFF;
  29.  val = lValue;
  30.  while(val > 0)
  31.  {
  32.   ++tab[val % 10];
  33.   val /= 10;
  34.  }
  35. }
  36. cout << "temps écoulé : " << t << '\n';
  37. for(int i=0; i<10; ++i)
  38. {
  39.  cout << i << " : " << tab[i] << " occurences\n";
  40. }
  41. cin.ignore();
  42. }


 
résultats :  
 
debug :
 
temps ÚcoulÚ : 3421 ms
0 : 4454792 occurences
1 : 6919549 occurences
2 : 4821073 occurences
3 : 4474832 occurences
4 : 4473815 occurences
5 : 4457929 occurences
6 : 4454968 occurences
7 : 4451157 occurences
8 : 4450771 occurences
9 : 4455972 occurences
 
release :
 
temps ÚcoulÚ : 1109 ms
0 : 4454792 occurences
1 : 6919549 occurences
2 : 4821073 occurences
3 : 4474832 occurences
4 : 4473815 occurences
5 : 4457929 occurences
6 : 4454968 occurences
7 : 4451157 occurences
8 : 4450771 occurences
9 : 4455972 occurences


---------------
-( BlackGoddess )-
n°773943
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 10:24:45  profilanswer
 

C'est bien partie...
Je repasserai plus tard. Je crois que tout le monde a compris; BlackGoddess en a fait la preuve.


Message édité par christophe_d13 le 23-06-2004 à 10:24:57
n°773946
el muchach​o
Comfortably Numb
Posté le 23-06-2004 à 10:26:15  profilanswer
 

christophe_d13 a écrit :

el muchaco> Il ne marche pas le lien...
Mais si c'est à quoi je pense, j'ai repris l'idée du générateur de Knutz et j'ai fais un problème plus simple. Peut-être trop simple puisque dans le problème, ce qui va causer la lenteur ne sera pas forcément l'analyse, mais la bande passante... Cela dit, l'algo doit quand même être bien fait.
 
Sous VC++ 6.0 SP5 avec un Barton à 180x12 et WinAmp en tâche de fond : (4 essais et j'ai pris le temps le plus court)
- Debug = 7047ms (/Od)
- Release = 5781ms (/O2)
 
Up> Le code est très simple, mais sans aucune analyse.


Tu ne trouves pas que la ressemblance est frappante ?
http://forum.hardware.fr/forum2.ph [...] =0&subcat=
 
(lien corrigé)


Message édité par el muchacho le 23-06-2004 à 10:27:12
n°773969
the real m​oins moins
Posté le 23-06-2004 à 10:43:30  profilanswer
 

et comment tu fais pour valider que les resultats sont corrects si tes 5000000 valeurs de départ sont aléatoires? ^^


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°773977
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 10:47:02  profilanswer
 

el muchacho> Le problème est quand même différent puisque l'on ne compte pas l'occurence des nombres, mais des chiffres.
J'en avais un autre dans l'idée, mais je voulais faire simple et proche de ce qui avait déjà été fait. Au prochain, je poserais mon idée. Simple mais avec un très fort potentiel d'analyse.
 
the real moins moins> La valeur de départ est de 0 (lValue=0 dans le for).


Message édité par christophe_d13 le 23-06-2004 à 10:48:25
n°773983
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-06-2004 à 10:52:15  profilanswer
 

J'pige pas en quoi la valeur va être aléatoire, perso :??:
Elle est 0 au début. OK. Tout ce que tu fais ensuite c'est des opérations dessus, donc tu finiras avec des constantes fixes et pas aléatoires, non ?
(ce que je veux dire c'est : pourquoi pas faire un bête rand() ?)


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°774002
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 11:01:31  profilanswer
 

Cela permet à tous d'avoir la même série de nombres et une bonne rapidité de fabrication du nombre aléatoire.
Le travail d'analyse peut également inclure la fabrication même de ce nombre aléatoire...

n°774005
the real m​oins moins
Posté le 23-06-2004 à 11:03:16  profilanswer
 

ouais enfin en bref ton input est pas aléatoire du tout


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°774015
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-06-2004 à 11:08:38  profilanswer
 

Bon alors comme chu con et que j'voulais absolument de l'aléatoire, voici mes résultats :

Citation :


e:\>java -cp E:\dev\ConcoursALaCon -Xnoclassgc ConcoursALaCon
1454 ms
Debug :
chiffres [0] = 59353
chiffres [1] = 48133
chiffres [2] = 78841
chiffres [3] = 49116
chiffres [4] = 69692
chiffres [5] = 49218
chiffres [6] = 30814
chiffres [7] = 90477
chiffres [8] = 29730
chiffres [9] = 59458


Utilisation de la JVM IBM 1.3.0 sur Windows 2000, avec un P4 2.4 GHz (y a plein de progs qui tournent en tâche de fond, j'vais pas vous faire la liste mais entre autres y a un clien DB2 et un serveur WebSphere).
Vala [:itm]


Message édité par Taiche le 23-06-2004 à 11:08:49

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°774027
darkoli
Le Petit Dinosaure Bleu
Posté le 23-06-2004 à 11:11:56  profilanswer
 

Os          : Linux Debian testing
Processeur  : Intel(R) Pentium(R) 4 CPU 1.70GHz
Compilateur :  gcc 3.3.4
 
Compilation sans paramètre (taille 12650 octets) :

Duree du traitement : 4300ms (~5s).
0 - 4454792 occurences.
1 - 6919549 occurences.
2 - 4821073 occurences.
3 - 4474832 occurences.
4 - 4473815 occurences.
5 - 4457929 occurences.
6 - 4454968 occurences.
7 - 4451157 occurences.
8 - 4450771 occurences.
9 - 4455972 occurences.


 
Compilation avec le paramètre "-O3" (taille 12482 octets) :

Duree du traitement : 1980ms (~2s).
0 - 4454792 occurences.
1 - 6919549 occurences.
2 - 4821073 occurences.
3 - 4474832 occurences.
4 - 4473815 occurences.
5 - 4457929 occurences.
6 - 4454968 occurences.
7 - 4451157 occurences.
8 - 4450771 occurences.
9 - 4455972 occurences.


:D

n°774037
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 11:17:03  profilanswer
 

the real moins moins> C'est le générateur congruentiel de Knutz. Tu trouveras via google plein d'infos sur l'aléatoire. Mais ce n'est pas le sujet ici.
Taiche> Peux-tu ajouter le code du générateur, sinon je ne pourrais pas le prendre en compte. Egalement, c'est 5 millions de répétitions.

n°774047
black_lord
Truth speaks from peacefulness
Posté le 23-06-2004 à 11:21:19  profilanswer
 

christophe_d13 a écrit :

the real moins moins> C'est le générateur congruentiel de Knutz. Tu trouveras via google plein d'infos sur l'aléatoire. Mais ce n'est pas le sujet ici.
Taiche> Peux-tu ajouter le code du générateur, sinon je ne pourrais pas le prendre en compte. Egalement, c'est 5 millions de répétitions.


 
comment il parle à [:greg2] :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°774050
darkoli
Le Petit Dinosaure Bleu
Posté le 23-06-2004 à 11:23:11  profilanswer
 

Taiche a écrit :

Bon alors comme chu con et que j'voulais absolument de l'aléatoire, voici mes résultats :

Citation :


e:\>java -cp E:\dev\ConcoursALaCon -Xnoclassgc ConcoursALaCon
1454 ms
Debug :
chiffres [0] = 59353
chiffres [1] = 48133
chiffres [2] = 78841
chiffres [3] = 49116
chiffres [4] = 69692
chiffres [5] = 49218
chiffres [6] = 30814
chiffres [7] = 90477
chiffres [8] = 29730
chiffres [9] = 59458


Utilisation de la JVM IBM 1.3.0 sur Windows 2000, avec un P4 2.4 GHz (y a plein de progs qui tournent en tâche de fond, j'vais pas vous faire la liste mais entre autres y a un clien DB2 et un serveur WebSphere).
Vala [:itm]

Oui mais tu ne l'as pas faut sur une série de 5 000 000 valeurs variant entre 0 et (2^31)-1 ?

n°774063
the real m​oins moins
Posté le 23-06-2004 à 11:29:35  profilanswer
 

on ne teste que la compilation :??:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°774065
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-06-2004 à 11:30:48  profilanswer
 

the real moins moins a écrit :

on ne teste que la compilation :??:


Ba côté algo, j'vois pas trop c'qu'il y a de si marquant... non ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°774076
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-06-2004 à 11:35:35  profilanswer
 

Or donc, après un copier/coller d'un code foireux, voici la version "faussement aléatoire" :

Code :
  1. public class ConcoursALaCon
  2. {
  3. public static void main(String[] args)
  4. {
  5.  long start = System.currentTimeMillis();
  6.  long lValue = 0;
  7.  int[] chiffres = new int[10];
  8.  for (int i = 0;i < 5000000; i++) 
  9.  {
  10.   //lValue = new Random().nextLong();
  11.   lValue = ( ( 1664525 * lValue ) + 1013904223 ) & 0x7FFFFFFF;
  12.   long gron = lValue;
  13.   while(gron > 0)
  14.   {
  15.    ++chiffres[(int)(gron % 10)];
  16.    gron = gron / 10;
  17.   }
  18.  }
  19.  long end = System.currentTimeMillis();
  20.  System.out.println(end - start + " ms" );
  21.  System.out.println("Debug :" );
  22.  for(int i = 0;i < 10; i++)
  23.   System.out.println("chiffres [" + i + "] = " + chiffres[i]);
  24. }
  25. }


Compilation avec jikes 1.21 et l'option -target 1.3.
 
Résultats :

Citation :


e:\>java -cp E:\dev\ConcoursALaCon -Xnoclassgc ConcoursALaCon
1891 ms
Debug :
chiffres [0] = 4454792
chiffres [1] = 6919549
chiffres [2] = 4821073
chiffres [3] = 4474832
chiffres [4] = 4473815
chiffres [5] = 4457929
chiffres [6] = 4454968
chiffres [7] = 4451157
chiffres [8] = 4450771
chiffres [9] = 4455972


Désolé pour le faux résultat précédent qui était dû à un code foireux :jap:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°774165
christophe​_d13
L'efficacité à tout prix.
Posté le 23-06-2004 à 12:39:44  profilanswer
 

Différence entre mon premier algo et le dernier :
Le source est en C pur sans aucune ligne en assembleur.
 

Algo de test (nul mais juste)
- Debug : 7047ms
- Release : 5781ms


Initial
- Debug : 1578ms
- Release : 343ms


Dernier (23/06/04 à 12h38)
- Debug : 1094ms
- Release : 281ms


 
Cible : AthlonXP Barton 12*180/1Go/nForce2 et WindowsXP avec WinAmp en tâche de fond.


Message édité par christophe_d13 le 23-06-2004 à 13:04:19
n°774168
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-06-2004 à 12:41:50  profilanswer
 

[:cupra]

n°774174
Evadream -​jbd-
Posté le 23-06-2004 à 12:44:58  profilanswer
 
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Concours No 3] A vos cerveaux !

 

Sujets relatifs
Le concours de programmation ICFP 2004 a commencé[Concours] Recherche de doublons dans une séquence
[java/algo] Concours - implémenter une itf simple de gestion d'agenda.[IA] petite idée de concours
concours de code[C++] Concours de code : new test en cours, proposez votre solution !
Concours programmation[PHP] Comment organiser un concours
organiser un concours .[Concours] Votre Requête MySQL la plus complexe
Plus de sujets relatifs à : [Concours No 3] A vos cerveaux !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR