diff --git a/test~coding~readingCppPrograms.fr/INDEX b/test~coding~readingCppPrograms.fr/INDEX
index 9f495c42fa9204bb8e57b74410d2863beee658db..4bc9d251db1d02c24ba284608ffab34b154d37de 100644
--- a/test~coding~readingCppPrograms.fr/INDEX
+++ b/test~coding~readingCppPrograms.fr/INDEX
@@ -2,10 +2,10 @@
 # Do not edit by hand.
 
 title=Exercices de programmation C++
-description=quelques exercices de lecture et interprétation de programmes en C++.
+description=quelques exercices de lecture et interprétation de programmes en C++
 language=fr
 category=oef, exercise
-domain=programming, 
+domain=programming,
 level=U1
 keywords=C++
 require=
diff --git a/test~coding~readingCppPrograms.fr/Makefile b/test~coding~readingCppPrograms.fr/Makefile
index c89cd5311ddd7dc984f1ad2b59112dce4e7809b3..b854647dbe91e3927b9770e9240303f970a865d7 100644
--- a/test~coding~readingCppPrograms.fr/Makefile
+++ b/test~coding~readingCppPrograms.fr/Makefile
@@ -1,7 +1,7 @@
 PROGRAMS=$(wildcard data/*.cpp)
-OUTPUT=$(PROGRAMS:%=%.output)
-TARGETS=variable if loop function
-all: data/index $(OUTPUT)
+ANSWER=$(PROGRAMS:%=%.answer)
+TARGETS=$(shell cd data; ls *.cpp | cut -d '_' -f 1 - | sort | uniq)
+all: data/index $(ANSWER)
 
 data/index: $(PROGRAMS)
 	cd data; \
@@ -10,18 +10,22 @@ data/index: $(PROGRAMS)
 	    (echo "$$target: "`ls -m $${target}_*.cpp`) >> index; \
 	done
 
-data/%.output: data/%.bin
-	./$< > $@
+data/%.answer: data/%.bin
+	if echo $< | grep -q _input.cpp; then \
+	    for i in `seq 0 99`; do if [ x`echo $$i | $<` = 'x42' ]; then echo $$i; fi; done > $@;           \
+	else           \
+	    ./$< > $@; \
+	fi
 
 data/%.cpp.bin: data/%.cpp
-	g++ $< -o $@
+	g++ -Wall -Wno-sign-compare -Wno-unused-value -pedantic -std=c++11 $< -o $@
 
 clean:
-	rm data/*.bin data/*.output data/index
+	rm data/*.bin data/*.answer data/index
 
 # Pour restauration
 archive:
-	cd ..; tar zcvf /tmp/modtool-test~coding~readingCppPrograms.fr.tgz test~coding~readingCppPrograms.fr
+	cd ..; tar zcf /tmp/modtool-test~coding~readingCppPrograms.fr.tgz test~coding~readingCppPrograms.fr
 
 #main.oef: header.oef programs/guess-output/*.cpp footer.oef Makefile
 #	cd programs/guess-output; make all.oef
diff --git a/test~coding~readingCppPrograms.fr/README b/test~coding~readingCppPrograms.fr/README
index 2c3ad741a30876a4371ca08224c32735455ff6ab..853af47d5aaa6d277e37af6434935f7b9eb6e0f3 100644
--- a/test~coding~readingCppPrograms.fr/README
+++ b/test~coding~readingCppPrograms.fr/README
@@ -28,3 +28,16 @@ en changeant le nom.
    doit être répétée à chaque fois que les fichiers sources sont modifiés). 
 
 
+%%%%
+
+Le répertoire data/ contient des programmes C++. Le nom des programmes
+est de la forme <theme>_nom.cpp ou <theme>_nom_input.cpp.
+
+Dans le premier cas, l'utilisateur doit deviner la sortie du
+programme. Dans le second cas, le programme doit lire un entier entre
+0 et 99 sur l'entrée standard, et l'utilisateur doit deviner lequel
+donne 42; pour l'instant il doit être unique.
+
+Mise à jour de l'exercice sur WIMS:
+
+wims.u-psud.fr -> serveur de l'université -> Accueil WIMS -> modtools -> login -> Restauration
diff --git a/choose_input/data/io-basic.cpp b/test~coding~readingCppPrograms.fr/data/io_basic_input.cpp
similarity index 100%
rename from choose_input/data/io-basic.cpp
rename to test~coding~readingCppPrograms.fr/data/io_basic_input.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_1.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_1.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_1.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_1.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_2.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_2.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_2.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_2.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_3.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_3.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_3.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_3.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_4.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_4.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_4.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_4.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_5.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_5.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_5.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_5.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_6.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_6.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_6.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_6.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_det.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_det.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_det.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_det.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_loop_1.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_loop_1.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_loop_1.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_loop_1.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_loop_2.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_loop_2.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_loop_2.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_loop_2.cpp
diff --git a/test~coding~readingCppPrograms.fr/data/tableaux_doubles_loop_3.cpp b/test~coding~readingCppPrograms.fr/data/vector2D_loop_3.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/data/tableaux_doubles_loop_3.cpp
rename to test~coding~readingCppPrograms.fr/data/vector2D_loop_3.cpp
diff --git a/test~coding~readingCppPrograms.fr/src/cpp/guess_output.cpp b/test~coding~readingCppPrograms.fr/src/cpp/read_program.cpp
similarity index 100%
rename from test~coding~readingCppPrograms.fr/src/cpp/guess_output.cpp
rename to test~coding~readingCppPrograms.fr/src/cpp/read_program.cpp