diff --git a/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_0_entrainement.cpp b/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_0_entrainement.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..03c531ff8deab8c0382e9f79e5f533f85687019c
--- /dev/null
+++ b/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_0_entrainement.cpp
@@ -0,0 +1,33 @@
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+int g(int n) {
+    int i, r = 0;
+    for (i = 1; i <=n; i++)
+        r += i;
+    return r;
+}
+
+void f(vector<int> &t, int a, int b) {
+    int c;
+    if (a < t.size() && b < t.size()) {
+        c = g(t[a]); 
+        t[a] = g(t[b]);
+        t[b] = c;
+    }
+}
+    
+int main() {
+    int i;
+    vector<int> tab = {2, 4, 5, 8};
+    
+    f(tab, 2, 3);
+    
+    for (i = 0; i < tab.size(); i++) 
+        cout << tab[i] << " ";
+    cout << endl;
+    
+    return 0;
+}
\ No newline at end of file
diff --git a/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_0_examen.cpp b/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_0_examen.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5a101c0c9d481c8616561fd72a4afbc71677fd51
--- /dev/null
+++ b/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_0_examen.cpp
@@ -0,0 +1,33 @@
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+int g(int n) {
+    int i, r = 0;
+    for (i = 1; i <=n; i++)
+        r += i;
+    return r;
+}
+
+void f(vector<int> &t, int a, int b) {
+    int c;
+    if (a < t.size() && b < t.size()) {
+        c = g(t[a]); 
+        t[a] = g(t[b]);
+        t[b] = c;
+    }
+}
+    
+int main() {
+    int i;
+    vector<int> tab = {3, 1, 2, 6};
+    
+    f(tab, 1, 3);
+    
+    for (i = 0; i < tab.size(); i++) 
+        cout << tab[i] << " ";
+    cout << endl;
+    
+    return 0;
+}
\ No newline at end of file
diff --git a/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_1_entrainement.cpp b/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_1_entrainement.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a7b652f309a8a9d53191e6abdf2cc4f591f617b1
--- /dev/null
+++ b/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_1_entrainement.cpp
@@ -0,0 +1,37 @@
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+int g(int n) {
+    return (n + 1) * (n - 1);
+}
+
+void f(vector<int> t, int a, int b, bool &c, int &d) {
+    if (a == b || t[a] == t[b]) c = false;
+    else {
+        if (t[a] < t[b]) {
+            c = true;
+            d = g(t[b] - t[a]);
+        } else {
+            c = false;
+            d = g(t[a] - t[b]);
+        }
+    }
+}
+    
+int main() {
+    int i;
+    vector<int> tab = {2, 4, 5, 8};
+    bool b;
+    int r = -1;
+    int x = 2;
+    int y = 3;
+    
+    f(tab, x, y, b, r);
+    
+    cout << tab[x] << (b ? " < " : " >= ") << tab[y] << 
+        ", r = " << r << endl;
+    
+    return 0;
+}
\ No newline at end of file
diff --git a/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_1_examen.cpp b/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_1_examen.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..04b280046281ff9eb37477b957bc8a6f51096ae0
--- /dev/null
+++ b/test~coding~readingCppPrograms.fr/data/procedure_calling_procedure_1_examen.cpp
@@ -0,0 +1,37 @@
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+int g(int n) {
+    return (n + 1) * (n - 1);
+}
+
+void f(vector<int> t, int a, int b, bool &c, int &d) {
+    if (a == b || t[a] == t[b]) c = false;
+    else {
+        if (t[a] < t[b]) {
+            c = true;
+            d = g(t[b] - t[a]);
+        } else {
+            c = false;
+            d = g(t[a] - t[b]);
+        }
+    }
+}
+    
+int main() {
+    int i;
+    vector<int> tab = {3, 1, 2, 6};
+    bool b;
+    int r = -1;
+    int x = 0;
+    int y = 2;
+    
+    f(tab, x, y, b, r);
+    
+    cout << tab[x] << (b ? " < " : " >= ") << tab[y] << 
+        ", r = " << r << endl;
+    
+    return 0;
+}
\ No newline at end of file