From 305b9e06faf1d9e9816f86ad04760780a7797928 Mon Sep 17 00:00:00 2001
From: Nicolas Ledesma <ledesma.nicolas91@gmail.com>
Date: Tue, 26 Nov 2024 09:34:11 +0100
Subject: [PATCH] clean up folder

---
 .../exam/automne_machine/README.html          | 226 +++++++++++++++++
 first_quarter/exam/automne_machine/README.md  |  57 +++++
 .../automne_machine/enonces/ex1/README.html   | 208 +++++++++++++++
 .../automne_machine/enonces/ex1/README.md     |  48 ++++
 .../automne_machine/enonces/ex2/README.html   | 236 ++++++++++++++++++
 .../automne_machine/enonces/ex2/README.md     |  69 +++++
 .../automne_machine/enonces/ex3/README.html   | 193 ++++++++++++++
 .../automne_machine/enonces/ex3/README.md     |  27 ++
 .../automne_machine/templates/ex1/Makefile    |  11 +
 .../exam/automne_machine/templates/ex1/ex1.c  |  29 +++
 .../exam/automne_machine/templates/ex1/ex1.h  |  17 ++
 .../exam/automne_machine/templates/ex1/main   | Bin 0 -> 20688 bytes
 .../exam/automne_machine/templates/ex1/main.c |  30 +++
 .../automne_machine/templates/ex2/Makefile    |  12 +
 .../exam/automne_machine/templates/ex2/ex2.c  |  12 +
 .../exam/automne_machine/templates/ex2/ex2.h  |  11 +
 .../exam/automne_machine/templates/ex2/main   | Bin 0 -> 19856 bytes
 .../exam/automne_machine/templates/ex2/main.c |  35 +++
 .../automne_machine/templates/ex3/Makefile    |  15 ++
 .../exam/automne_machine/templates/ex3/ex3.c  |  18 ++
 .../exam/automne_machine/templates/ex3/ex3.h  |  11 +
 .../exam/automne_machine/templates/ex3/main   | Bin 0 -> 35496 bytes
 .../exam/automne_machine/templates/ex3/main.c |  46 ++++
 first_quarter/programs/arrays_manipulation.c  |  48 ++++
 first_quarter/programs/first_e.h              |  31 +++
 first_quarter/programs/helper_function.c      |  27 ++
 first_quarter/programs/main.c                 |   5 +
 first_quarter/programs/math_functions.c       |  45 ++++
 first_quarter/programs/str_manipulation.c     |  26 ++
 first_quarter/subjects/data_strucs/main       | Bin 0 -> 16648 bytes
 .../subjects/data_strucs/static_arrays.c      |  98 ++++++++
 first_quarter/subjects/generals/data_types.c  |  58 +++++
 first_quarter/subjects/generals/main          | Bin 0 -> 16232 bytes
 first_quarter/subjects/generals/main_structs  | Bin 0 -> 16176 bytes
 first_quarter/subjects/generals/struct.c      | 193 ++++++++++++++
 first_quarter/subjects/pointers/main          | Bin 0 -> 26112 bytes
 first_quarter/subjects/pointers/pointers.c    | 108 ++++++++
 37 files changed, 1950 insertions(+)
 create mode 100644 first_quarter/exam/automne_machine/README.html
 create mode 100644 first_quarter/exam/automne_machine/README.md
 create mode 100644 first_quarter/exam/automne_machine/enonces/ex1/README.html
 create mode 100644 first_quarter/exam/automne_machine/enonces/ex1/README.md
 create mode 100644 first_quarter/exam/automne_machine/enonces/ex2/README.html
 create mode 100644 first_quarter/exam/automne_machine/enonces/ex2/README.md
 create mode 100644 first_quarter/exam/automne_machine/enonces/ex3/README.html
 create mode 100644 first_quarter/exam/automne_machine/enonces/ex3/README.md
 create mode 100644 first_quarter/exam/automne_machine/templates/ex1/Makefile
 create mode 100644 first_quarter/exam/automne_machine/templates/ex1/ex1.c
 create mode 100644 first_quarter/exam/automne_machine/templates/ex1/ex1.h
 create mode 100755 first_quarter/exam/automne_machine/templates/ex1/main
 create mode 100644 first_quarter/exam/automne_machine/templates/ex1/main.c
 create mode 100644 first_quarter/exam/automne_machine/templates/ex2/Makefile
 create mode 100644 first_quarter/exam/automne_machine/templates/ex2/ex2.c
 create mode 100644 first_quarter/exam/automne_machine/templates/ex2/ex2.h
 create mode 100755 first_quarter/exam/automne_machine/templates/ex2/main
 create mode 100644 first_quarter/exam/automne_machine/templates/ex2/main.c
 create mode 100644 first_quarter/exam/automne_machine/templates/ex3/Makefile
 create mode 100644 first_quarter/exam/automne_machine/templates/ex3/ex3.c
 create mode 100644 first_quarter/exam/automne_machine/templates/ex3/ex3.h
 create mode 100755 first_quarter/exam/automne_machine/templates/ex3/main
 create mode 100644 first_quarter/exam/automne_machine/templates/ex3/main.c
 create mode 100644 first_quarter/programs/arrays_manipulation.c
 create mode 100644 first_quarter/programs/first_e.h
 create mode 100644 first_quarter/programs/helper_function.c
 create mode 100644 first_quarter/programs/main.c
 create mode 100644 first_quarter/programs/math_functions.c
 create mode 100644 first_quarter/programs/str_manipulation.c
 create mode 100755 first_quarter/subjects/data_strucs/main
 create mode 100644 first_quarter/subjects/data_strucs/static_arrays.c
 create mode 100644 first_quarter/subjects/generals/data_types.c
 create mode 100755 first_quarter/subjects/generals/main
 create mode 100755 first_quarter/subjects/generals/main_structs
 create mode 100644 first_quarter/subjects/generals/struct.c
 create mode 100755 first_quarter/subjects/pointers/main
 create mode 100644 first_quarter/subjects/pointers/pointers.c

diff --git a/first_quarter/exam/automne_machine/README.html b/first_quarter/exam/automne_machine/README.html
new file mode 100644
index 0000000..e4e772b
--- /dev/null
+++ b/first_quarter/exam/automne_machine/README.html
@@ -0,0 +1,226 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+  <meta charset="utf-8" />
+  <meta name="generator" content="pandoc" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+  <title>README</title>
+  <style>
+    html {
+      color: #1a1a1a;
+      background-color: #fdfdfd;
+    }
+    body {
+      margin: 0 auto;
+      max-width: 36em;
+      padding-left: 50px;
+      padding-right: 50px;
+      padding-top: 50px;
+      padding-bottom: 50px;
+      hyphens: auto;
+      overflow-wrap: break-word;
+      text-rendering: optimizeLegibility;
+      font-kerning: normal;
+    }
+    @media (max-width: 600px) {
+      body {
+        font-size: 0.9em;
+        padding: 12px;
+      }
+      h1 {
+        font-size: 1.8em;
+      }
+    }
+    @media print {
+      html {
+        background-color: white;
+      }
+      body {
+        background-color: transparent;
+        color: black;
+        font-size: 12pt;
+      }
+      p, h2, h3 {
+        orphans: 3;
+        widows: 3;
+      }
+      h2, h3, h4 {
+        page-break-after: avoid;
+      }
+    }
+    p {
+      margin: 1em 0;
+    }
+    a {
+      color: #1a1a1a;
+    }
+    a:visited {
+      color: #1a1a1a;
+    }
+    img {
+      max-width: 100%;
+    }
+    svg {
+      height: auto;
+      max-width: 100%;
+    }
+    h1, h2, h3, h4, h5, h6 {
+      margin-top: 1.4em;
+    }
+    h5, h6 {
+      font-size: 1em;
+      font-style: italic;
+    }
+    h6 {
+      font-weight: normal;
+    }
+    ol, ul {
+      padding-left: 1.7em;
+      margin-top: 1em;
+    }
+    li > ol, li > ul {
+      margin-top: 0;
+    }
+    blockquote {
+      margin: 1em 0 1em 1.7em;
+      padding-left: 1em;
+      border-left: 2px solid #e6e6e6;
+      color: #606060;
+    }
+    code {
+      font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
+      font-size: 85%;
+      margin: 0;
+      hyphens: manual;
+    }
+    pre {
+      margin: 1em 0;
+      overflow: auto;
+    }
+    pre code {
+      padding: 0;
+      overflow: visible;
+      overflow-wrap: normal;
+    }
+    .sourceCode {
+     background-color: transparent;
+     overflow: visible;
+    }
+    hr {
+      background-color: #1a1a1a;
+      border: none;
+      height: 1px;
+      margin: 1em 0;
+    }
+    table {
+      margin: 1em 0;
+      border-collapse: collapse;
+      width: 100%;
+      overflow-x: auto;
+      display: block;
+      font-variant-numeric: lining-nums tabular-nums;
+    }
+    table caption {
+      margin-bottom: 0.75em;
+    }
+    tbody {
+      margin-top: 0.5em;
+      border-top: 1px solid #1a1a1a;
+      border-bottom: 1px solid #1a1a1a;
+    }
+    th {
+      border-top: 1px solid #1a1a1a;
+      padding: 0.25em 0.5em 0.25em 0.5em;
+    }
+    td {
+      padding: 0.125em 0.5em 0.25em 0.5em;
+    }
+    header {
+      margin-bottom: 4em;
+      text-align: center;
+    }
+    #TOC li {
+      list-style: none;
+    }
+    #TOC ul {
+      padding-left: 1.3em;
+    }
+    #TOC > ul {
+      padding-left: 0;
+    }
+    #TOC a:not(:hover) {
+      text-decoration: none;
+    }
+    code{white-space: pre-wrap;}
+    span.smallcaps{font-variant: small-caps;}
+    div.columns{display: flex; gap: min(4vw, 1.5em);}
+    div.column{flex: auto; overflow-x: auto;}
+    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
+    /* The extra [class] is a hack that increases specificity enough to
+       override a similar rule in reveal.js */
+    ul.task-list[class]{list-style: none;}
+    ul.task-list li input[type="checkbox"] {
+      font-size: inherit;
+      width: 0.8em;
+      margin: 0 0.8em 0.2em -1.6em;
+      vertical-align: middle;
+    }
+    .display.math{display: block; text-align: center; margin: 0.5rem auto;}
+  </style>
+</head>
+<body>
+<h1 id="test-de-programmation-séquentielle">Test de programmation
+séquentielle</h1>
+<p>Lisez ce texte attentivement et <strong>JUSQU’À LA FIN</strong> !</p>
+<h2 id="énoncés">Énoncés</h2>
+<p>Les énoncés ainsi qu’un exécutable d’exemple des trois exercices de
+ce test se trouvent dans le répertoire <code>enonces</code> et ont la
+structure suivante :</p>
+<pre><code>├── enonces
+│   ├── ex1
+│   │   ├── README.html
+│   │   ├── ex1
+│   ├── ex2
+│   │   ├── README.html
+│   │   ├── ex2
+│   ├── ex3
+│   │   ├── README.html
+│   │   ├── ex3</code></pre>
+<h2 id="templates">Templates</h2>
+<p>Votre projet est à effectuer dans le répertoire
+<code>templates</code>. Votre projet a la structure suivante (il y a un
+template dans le répertoire <code>templates</code>) :</p>
+<pre><code>├── templates
+│   ├── ex1
+│   │   ├── Makefile
+│   │   ├── ex1.c
+│   ├── ex2
+│   │   ├── Makefile
+│   │   ├── ex2.c
+│   ├── ex3
+│   │   ├── Makefile
+│   │   ├── ex3.c</code></pre>
+<h2 id="examen">Examen</h2>
+<p>Le test est composé de trois exercices. Vous n’avez droit qu’à une
+feuille A4 recto-verso de notes, ainsi que les slides des cours de
+programmation séquentielle et d’algorithmique se trouvant dans le
+système de fichier.</p>
+<p>Il y a <strong>trois</strong> exercices, et un seul fichier
+<code>.c</code> par exercice avec son <code>Makefile</code>. La commande
+<code>make</code> doit uniquement permettre de compiler le projet et
+générer un exécutable nommé <code>ex1</code>, <code>ex2</code>,
+<code>ex3</code>. Par soucis de simplicité, nous vous recommendons de
+tout faire dans le fichier <code>.c</code> prévu à cet effet. Si vous
+désirez séparer votre code dans divers fichiers, vous en assumerez
+l’entière responsabilité. Il faudra absolument corriger le
+<code>Makefile</code> pour que tout compile proprement et que nous
+puissions évaluer votre travail.</p>
+<p>Un code qui ne compile pas ne sera <strong>pas évalué</strong> !
+Ainsi, il vaut mieux rendre quelque chose qui compile mais qui donne un
+résultat faux (ou avec des erreurs à l’exécution), plutôt qu’un code qui
+ne compile pas mais que vous pensez plus proche de la solution.</p>
+<p>Le test dure de 18h30 à 21h30.</p>
+<p>Si un exercice ne vous semble pas clair demandez-nous des
+précisions.</p>
+</body>
+</html>
diff --git a/first_quarter/exam/automne_machine/README.md b/first_quarter/exam/automne_machine/README.md
new file mode 100644
index 0000000..5d06591
--- /dev/null
+++ b/first_quarter/exam/automne_machine/README.md
@@ -0,0 +1,57 @@
+# Test de programmation séquentielle
+
+Lisez ce texte attentivement et **JUSQU’À LA FIN** !
+
+## Énoncés
+
+Les énoncés ainsi qu’un exécutable d’exemple des trois exercices de ce test se trouvent dans le répertoire `enonces` et ont la structure suivante :
+
+```
+├── enonces
+│   ├── ex1
+│   │   ├── README.html
+│   │   ├── ex1
+│   ├── ex2
+│   │   ├── README.html
+│   │   ├── ex2
+│   ├── ex3
+│   │   ├── README.html
+│   │   ├── ex3
+```
+
+## Templates
+
+Votre projet est à effectuer dans le répertoire `templates`.
+Votre projet a la structure suivante (il y a un template dans le répertoire `templates`) :
+
+```
+├── templates
+│   ├── ex1
+│   │   ├── Makefile
+│   │   ├── ex1.c
+│   ├── ex2
+│   │   ├── Makefile
+│   │   ├── ex2.c
+│   ├── ex3
+│   │   ├── Makefile
+│   │   ├── ex3.c
+```
+
+## Examen
+
+Le test est composé de trois exercices.
+Vous n’avez droit qu’à une feuille A4 recto-verso de notes, ainsi que les slides des cours de programmation séquentielle et d’algorithmique se trouvant dans le système de fichier.
+ 
+Il y a **trois** exercices, et un seul fichier `.c` par exercice avec son `Makefile`.
+La commande `make` doit uniquement permettre de compiler le projet et générer un exécutable nommé `ex1`, `ex2`, `ex3`.
+Par soucis de simplicité, nous vous recommendons de tout faire dans le fichier `.c` prévu à cet effet.
+Si vous désirez séparer votre code dans divers fichiers, vous en assumerez l’entière responsabilité.
+Il faudra absolument corriger le `Makefile` pour que tout compile proprement et que nous puissions évaluer votre travail.
+
+Un code qui ne compile pas ne sera **pas évalué** !
+Ainsi, il vaut mieux rendre quelque chose qui compile mais qui donne un résultat faux (ou avec des erreurs à l’exécution), plutôt qu’un code qui ne compile pas mais que vous pensez plus proche de la solution.
+
+Le test dure de 18h30 à 21h30.
+
+Si un exercice ne vous semble pas clair demandez-nous des précisions.
+
diff --git a/first_quarter/exam/automne_machine/enonces/ex1/README.html b/first_quarter/exam/automne_machine/enonces/ex1/README.html
new file mode 100644
index 0000000..03f2aeb
--- /dev/null
+++ b/first_quarter/exam/automne_machine/enonces/ex1/README.html
@@ -0,0 +1,208 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+  <meta charset="utf-8" />
+  <meta name="generator" content="pandoc" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+  <title>README</title>
+  <style>
+    html {
+      color: #1a1a1a;
+      background-color: #fdfdfd;
+    }
+    body {
+      margin: 0 auto;
+      max-width: 36em;
+      padding-left: 50px;
+      padding-right: 50px;
+      padding-top: 50px;
+      padding-bottom: 50px;
+      hyphens: auto;
+      overflow-wrap: break-word;
+      text-rendering: optimizeLegibility;
+      font-kerning: normal;
+    }
+    @media (max-width: 600px) {
+      body {
+        font-size: 0.9em;
+        padding: 12px;
+      }
+      h1 {
+        font-size: 1.8em;
+      }
+    }
+    @media print {
+      html {
+        background-color: white;
+      }
+      body {
+        background-color: transparent;
+        color: black;
+        font-size: 12pt;
+      }
+      p, h2, h3 {
+        orphans: 3;
+        widows: 3;
+      }
+      h2, h3, h4 {
+        page-break-after: avoid;
+      }
+    }
+    p {
+      margin: 1em 0;
+    }
+    a {
+      color: #1a1a1a;
+    }
+    a:visited {
+      color: #1a1a1a;
+    }
+    img {
+      max-width: 100%;
+    }
+    svg {
+      height: auto;
+      max-width: 100%;
+    }
+    h1, h2, h3, h4, h5, h6 {
+      margin-top: 1.4em;
+    }
+    h5, h6 {
+      font-size: 1em;
+      font-style: italic;
+    }
+    h6 {
+      font-weight: normal;
+    }
+    ol, ul {
+      padding-left: 1.7em;
+      margin-top: 1em;
+    }
+    li > ol, li > ul {
+      margin-top: 0;
+    }
+    blockquote {
+      margin: 1em 0 1em 1.7em;
+      padding-left: 1em;
+      border-left: 2px solid #e6e6e6;
+      color: #606060;
+    }
+    code {
+      font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
+      font-size: 85%;
+      margin: 0;
+      hyphens: manual;
+    }
+    pre {
+      margin: 1em 0;
+      overflow: auto;
+    }
+    pre code {
+      padding: 0;
+      overflow: visible;
+      overflow-wrap: normal;
+    }
+    .sourceCode {
+     background-color: transparent;
+     overflow: visible;
+    }
+    hr {
+      background-color: #1a1a1a;
+      border: none;
+      height: 1px;
+      margin: 1em 0;
+    }
+    table {
+      margin: 1em 0;
+      border-collapse: collapse;
+      width: 100%;
+      overflow-x: auto;
+      display: block;
+      font-variant-numeric: lining-nums tabular-nums;
+    }
+    table caption {
+      margin-bottom: 0.75em;
+    }
+    tbody {
+      margin-top: 0.5em;
+      border-top: 1px solid #1a1a1a;
+      border-bottom: 1px solid #1a1a1a;
+    }
+    th {
+      border-top: 1px solid #1a1a1a;
+      padding: 0.25em 0.5em 0.25em 0.5em;
+    }
+    td {
+      padding: 0.125em 0.5em 0.25em 0.5em;
+    }
+    header {
+      margin-bottom: 4em;
+      text-align: center;
+    }
+    #TOC li {
+      list-style: none;
+    }
+    #TOC ul {
+      padding-left: 1.3em;
+    }
+    #TOC > ul {
+      padding-left: 0;
+    }
+    #TOC a:not(:hover) {
+      text-decoration: none;
+    }
+    code{white-space: pre-wrap;}
+    span.smallcaps{font-variant: small-caps;}
+    div.columns{display: flex; gap: min(4vw, 1.5em);}
+    div.column{flex: auto; overflow-x: auto;}
+    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
+    /* The extra [class] is a hack that increases specificity enough to
+       override a similar rule in reveal.js */
+    ul.task-list[class]{list-style: none;}
+    ul.task-list li input[type="checkbox"] {
+      font-size: inherit;
+      width: 0.8em;
+      margin: 0 0.8em 0.2em -1.6em;
+      vertical-align: middle;
+    }
+    .display.math{display: block; text-align: center; margin: 0.5rem auto;}
+  </style>
+</head>
+<body>
+<h1 id="exercice-1-lancer-de-dés">Exercice 1 : Lancer de dés</h1>
+<p>Dans cet exercice, il faut simuler un lancer de dé à six faces,
+compter le nombre d’occurrence de chaque résultat et stocker ces nombres
+dans un tableau. À la fin de l’exécution, il faut afficher le nombre de
+fois où chaque nombre est obtenu ainsi que son taux d’apparition. Le
+nombre de lancer de dés est à lire sur la ligne de commande. Ainsi le
+lancement de votre programme doit être</p>
+<pre class="console"><code>./ex1 &lt;N&gt;</code></pre>
+<p>où <code>N</code> est le nombre de fois où le dé est lancé.</p>
+<p><strong>Attention:</strong> Vous devez initialiser votre générateur
+de nombres aléatoire avec la graine <code>0</code>.</p>
+<h2 id="exécutions">Exécutions</h2>
+<p>L’exécution du programme suivant doit donner exactement cette
+solution :</p>
+<pre class="console"><code>./ex1 100
+La face 1 est sortie 17 fois, soit 17.0%.
+La face 2 est sortie 18 fois, soit 18.0%.
+La face 3 est sortie 23 fois, soit 23.0%.
+La face 4 est sortie 18 fois, soit 18.0%.
+La face 5 est sortie 12 fois, soit 12.0%.
+La face 6 est sortie 12 fois, soit 12.0%.</code></pre>
+<pre class="console"><code>./ex1 1000
+La face 1 est sortie 173 fois, soit 17.3%.
+La face 2 est sortie 150 fois, soit 15.0%.
+La face 3 est sortie 179 fois, soit 17.9%.
+La face 4 est sortie 181 fois, soit 18.1%.
+La face 5 est sortie 155 fois, soit 15.5%.
+La face 6 est sortie 162 fois, soit 16.2%.</code></pre>
+<pre class="console"><code>./ex1 10001
+La face 1 est sortie 1651 fois, soit 16.5%.
+La face 2 est sortie 1622 fois, soit 16.2%.
+La face 3 est sortie 1743 fois, soit 17.4%.
+La face 4 est sortie 1673 fois, soit 16.7%.
+La face 5 est sortie 1693 fois, soit 16.9%.
+La face 6 est sortie 1619 fois, soit 16.2%.</code></pre>
+</body>
+</html>
diff --git a/first_quarter/exam/automne_machine/enonces/ex1/README.md b/first_quarter/exam/automne_machine/enonces/ex1/README.md
new file mode 100644
index 0000000..c163d32
--- /dev/null
+++ b/first_quarter/exam/automne_machine/enonces/ex1/README.md
@@ -0,0 +1,48 @@
+# Exercice 1 : Lancer de dés
+
+Dans cet exercice, il faut simuler un lancer de dé à six faces, compter le nombre d'occurrence de chaque résultat et stocker ces nombres dans un tableau.
+À la fin de l'exécution, il faut afficher le nombre de fois où chaque nombre est obtenu ainsi que son taux d’apparition.
+Le nombre de lancer de dés est à lire sur la ligne de commande.
+Ainsi le lancement de votre programme doit être
+```console
+./ex1 <N>
+```
+où `N` est le nombre de fois où le dé est lancé.
+
+**Attention:** Vous devez initialiser votre générateur de nombres aléatoire avec la graine `0`.
+
+## Exécutions
+
+L'exécution du programme suivant doit donner exactement cette solution :
+
+```console
+./ex1 100
+La face 1 est sortie 17 fois, soit 17.0%.
+La face 2 est sortie 18 fois, soit 18.0%.
+La face 3 est sortie 23 fois, soit 23.0%.
+La face 4 est sortie 18 fois, soit 18.0%.
+La face 5 est sortie 12 fois, soit 12.0%.
+La face 6 est sortie 12 fois, soit 12.0%.
+```
+
+```console
+./ex1 1000
+La face 1 est sortie 173 fois, soit 17.3%.
+La face 2 est sortie 150 fois, soit 15.0%.
+La face 3 est sortie 179 fois, soit 17.9%.
+La face 4 est sortie 181 fois, soit 18.1%.
+La face 5 est sortie 155 fois, soit 15.5%.
+La face 6 est sortie 162 fois, soit 16.2%.
+```
+
+```console
+./ex1 10001
+La face 1 est sortie 1651 fois, soit 16.5%.
+La face 2 est sortie 1622 fois, soit 16.2%.
+La face 3 est sortie 1743 fois, soit 17.4%.
+La face 4 est sortie 1673 fois, soit 16.7%.
+La face 5 est sortie 1693 fois, soit 16.9%.
+La face 6 est sortie 1619 fois, soit 16.2%.
+```
+
+
diff --git a/first_quarter/exam/automne_machine/enonces/ex2/README.html b/first_quarter/exam/automne_machine/enonces/ex2/README.html
new file mode 100644
index 0000000..f21135c
--- /dev/null
+++ b/first_quarter/exam/automne_machine/enonces/ex2/README.html
@@ -0,0 +1,236 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+  <meta charset="utf-8" />
+  <meta name="generator" content="pandoc" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+  <title>README</title>
+  <style>
+    html {
+      color: #1a1a1a;
+      background-color: #fdfdfd;
+    }
+    body {
+      margin: 0 auto;
+      max-width: 36em;
+      padding-left: 50px;
+      padding-right: 50px;
+      padding-top: 50px;
+      padding-bottom: 50px;
+      hyphens: auto;
+      overflow-wrap: break-word;
+      text-rendering: optimizeLegibility;
+      font-kerning: normal;
+    }
+    @media (max-width: 600px) {
+      body {
+        font-size: 0.9em;
+        padding: 12px;
+      }
+      h1 {
+        font-size: 1.8em;
+      }
+    }
+    @media print {
+      html {
+        background-color: white;
+      }
+      body {
+        background-color: transparent;
+        color: black;
+        font-size: 12pt;
+      }
+      p, h2, h3 {
+        orphans: 3;
+        widows: 3;
+      }
+      h2, h3, h4 {
+        page-break-after: avoid;
+      }
+    }
+    p {
+      margin: 1em 0;
+    }
+    a {
+      color: #1a1a1a;
+    }
+    a:visited {
+      color: #1a1a1a;
+    }
+    img {
+      max-width: 100%;
+    }
+    svg {
+      height: auto;
+      max-width: 100%;
+    }
+    h1, h2, h3, h4, h5, h6 {
+      margin-top: 1.4em;
+    }
+    h5, h6 {
+      font-size: 1em;
+      font-style: italic;
+    }
+    h6 {
+      font-weight: normal;
+    }
+    ol, ul {
+      padding-left: 1.7em;
+      margin-top: 1em;
+    }
+    li > ol, li > ul {
+      margin-top: 0;
+    }
+    blockquote {
+      margin: 1em 0 1em 1.7em;
+      padding-left: 1em;
+      border-left: 2px solid #e6e6e6;
+      color: #606060;
+    }
+    code {
+      font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
+      font-size: 85%;
+      margin: 0;
+      hyphens: manual;
+    }
+    pre {
+      margin: 1em 0;
+      overflow: auto;
+    }
+    pre code {
+      padding: 0;
+      overflow: visible;
+      overflow-wrap: normal;
+    }
+    .sourceCode {
+     background-color: transparent;
+     overflow: visible;
+    }
+    hr {
+      background-color: #1a1a1a;
+      border: none;
+      height: 1px;
+      margin: 1em 0;
+    }
+    table {
+      margin: 1em 0;
+      border-collapse: collapse;
+      width: 100%;
+      overflow-x: auto;
+      display: block;
+      font-variant-numeric: lining-nums tabular-nums;
+    }
+    table caption {
+      margin-bottom: 0.75em;
+    }
+    tbody {
+      margin-top: 0.5em;
+      border-top: 1px solid #1a1a1a;
+      border-bottom: 1px solid #1a1a1a;
+    }
+    th {
+      border-top: 1px solid #1a1a1a;
+      padding: 0.25em 0.5em 0.25em 0.5em;
+    }
+    td {
+      padding: 0.125em 0.5em 0.25em 0.5em;
+    }
+    header {
+      margin-bottom: 4em;
+      text-align: center;
+    }
+    #TOC li {
+      list-style: none;
+    }
+    #TOC ul {
+      padding-left: 1.3em;
+    }
+    #TOC > ul {
+      padding-left: 0;
+    }
+    #TOC a:not(:hover) {
+      text-decoration: none;
+    }
+    code{white-space: pre-wrap;}
+    span.smallcaps{font-variant: small-caps;}
+    div.columns{display: flex; gap: min(4vw, 1.5em);}
+    div.column{flex: auto; overflow-x: auto;}
+    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
+    /* The extra [class] is a hack that increases specificity enough to
+       override a similar rule in reveal.js */
+    ul.task-list[class]{list-style: none;}
+    ul.task-list li input[type="checkbox"] {
+      font-size: inherit;
+      width: 0.8em;
+      margin: 0 0.8em 0.2em -1.6em;
+      vertical-align: middle;
+    }
+    .display.math{display: block; text-align: center; margin: 0.5rem auto;}
+  </style>
+</head>
+<body>
+<h1 id="exercice-2-occurrences-dune-sous-chaine">Exercice 2 :
+occurrences d’une sous-chaine</h1>
+<p>On souhaite écrire un programme qui permet de compter le nombre
+d’occurrences d’une sous-chaine de caractères dans une chaine de
+caractères.</p>
+<p>Votre détection ne doit pas être sensible à la casse (c’est à dire il
+ne doit pas y avoir de différence entre les minuscules et les
+majuscules).</p>
+<p>Ainsi pour la chaine <code>Neeeeed</code> :</p>
+<ul>
+<li>et la sous-chaine <code>eee</code> le résultat est
+<code>3</code> ;</li>
+<li>et la sous-chaine <code>ne</code> le résultat est
+<code>1</code> ;</li>
+<li>et la sous-chaine <code>Pierre</code> le résultat est
+<code>0</code>.</li>
+</ul>
+<h2 id="paramètres">Paramètres</h2>
+<p>Les deux chaines doivent être passées au programme comme paramètres
+de la fonction <code>main</code>. Le lancement de votre programme doit
+être :</p>
+<pre class="console"><code>./ex2 &lt;mot&gt; &lt;sous-chaine&gt;</code></pre>
+<p><em>Pensez à contrôler ces paramètres.</em></p>
+<h2 id="affichage">Affichage</h2>
+<p>Votre programme doit afficher le résultat en fin d’exécution.</p>
+<h2 id="indications">Indications</h2>
+<p>La table des caractères <a
+href="https://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange">ASCII</a>
+peut vous être utile.</p>
+<pre><code> Dec  Char     Dec  Char     Dec  Char     Dec  Char
+----------    ---------     ---------     ----------
+  0  NUL        32  SPACE     64  @         96  `
+  1  SOH        33  !         65  A         97  a
+  2  STX        34  &quot;         66  B         98  b
+  3  ETX        35  #         67  C         99  c
+  4  EOT        36  $         68  D        100  d
+  5  ENQ        37  %         69  E        101  e
+  6  ACK        38  &amp;         70  F        102  f
+  7  BEL        39  &#39;         71  G        103  g
+  8  BS         40  (         72  H        104  h
+  9  TAB        41  )         73  I        105  i
+ 10  LF         42  *         74  J        106  j
+ 11  VT         43  +         75  K        107  k
+ 12  FF         44  ,         76  L        108  l
+ 13  CR         45  -         77  M        109  m
+ 14  SO         46  .         78  N        110  n
+ 15  SI         47  /         79  O        111  o
+ 16  DLE        48  0         80  P        112  p
+ 17  DC1        49  1         81  Q        113  q
+ 18  DC2        50  2         82  R        114  r
+ 19  DC3        51  3         83  S        115  s
+ 20  DC4        52  4         84  T        116  t
+ 21  NAK        53  5         85  U        117  u
+ 22  SYN        54  6         86  V        118  v
+ 23  ETB        55  7         87  W        119  w
+ 24  CAN        56  8         88  X        120  x
+ 25  EM         57  9         89  Y        121  y
+ 26  SUB        58  :         90  Z        122  z
+ 27  ESC        59  ;         91  [        123  {
+ 28  FS         60  &lt;         92  \        124  |
+ 29  GS         61  =         93  ]        125  }
+ 30  RS         62  &gt;         94  ^        126  ~
+ 31  US         63  ?         95  _        127  DEL</code></pre>
+</body>
+</html>
diff --git a/first_quarter/exam/automne_machine/enonces/ex2/README.md b/first_quarter/exam/automne_machine/enonces/ex2/README.md
new file mode 100644
index 0000000..106ae20
--- /dev/null
+++ b/first_quarter/exam/automne_machine/enonces/ex2/README.md
@@ -0,0 +1,69 @@
+# Exercice 2 : occurrences d’une sous-chaine
+
+On souhaite écrire un programme qui permet de compter le nombre d’occurrences d’une sous-chaine de caractères dans une chaine de caractères.
+
+Votre détection ne doit pas être sensible à la casse (c’est à dire il ne doit pas y avoir de différence entre les minuscules et les majuscules).
+
+Ainsi pour la chaine `Neeeeed` :
+
+- et la sous-chaine `eee` le résultat est `3` ;
+- et la sous-chaine `ne` le résultat est `1` ;
+- et la sous-chaine `Pierre` le résultat est `0`.
+
+## Paramètres
+
+Les deux chaines doivent être passées au programme comme paramètres de la fonction `main`.
+Le lancement de votre programme doit être :
+```console
+./ex2 <mot> <sous-chaine>
+```
+
+*Pensez à contrôler ces paramètres.*
+
+## Affichage
+
+Votre programme doit afficher le résultat en fin d’exécution.
+
+## Indications
+
+La table des caractères [ASCII](https://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange) peut vous être utile.
+
+```
+ Dec  Char     Dec  Char     Dec  Char     Dec  Char
+----------    ---------     ---------     ----------
+  0  NUL        32  SPACE     64  @         96  `
+  1  SOH        33  !         65  A         97  a
+  2  STX        34  "         66  B         98  b
+  3  ETX        35  #         67  C         99  c
+  4  EOT        36  $         68  D        100  d
+  5  ENQ        37  %         69  E        101  e
+  6  ACK        38  &         70  F        102  f
+  7  BEL        39  '         71  G        103  g
+  8  BS         40  (         72  H        104  h
+  9  TAB        41  )         73  I        105  i
+ 10  LF         42  *         74  J        106  j
+ 11  VT         43  +         75  K        107  k
+ 12  FF         44  ,         76  L        108  l
+ 13  CR         45  -         77  M        109  m
+ 14  SO         46  .         78  N        110  n
+ 15  SI         47  /         79  O        111  o
+ 16  DLE        48  0         80  P        112  p
+ 17  DC1        49  1         81  Q        113  q
+ 18  DC2        50  2         82  R        114  r
+ 19  DC3        51  3         83  S        115  s
+ 20  DC4        52  4         84  T        116  t
+ 21  NAK        53  5         85  U        117  u
+ 22  SYN        54  6         86  V        118  v
+ 23  ETB        55  7         87  W        119  w
+ 24  CAN        56  8         88  X        120  x
+ 25  EM         57  9         89  Y        121  y
+ 26  SUB        58  :         90  Z        122  z
+ 27  ESC        59  ;         91  [        123  {
+ 28  FS         60  <         92  \        124  |
+ 29  GS         61  =         93  ]        125  }
+ 30  RS         62  >         94  ^        126  ~
+ 31  US         63  ?         95  _        127  DEL
+```
+
+
+
diff --git a/first_quarter/exam/automne_machine/enonces/ex3/README.html b/first_quarter/exam/automne_machine/enonces/ex3/README.html
new file mode 100644
index 0000000..6cc89b3
--- /dev/null
+++ b/first_quarter/exam/automne_machine/enonces/ex3/README.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+  <meta charset="utf-8" />
+  <meta name="generator" content="pandoc" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+  <title>README</title>
+  <style>
+    html {
+      color: #1a1a1a;
+      background-color: #fdfdfd;
+    }
+    body {
+      margin: 0 auto;
+      max-width: 36em;
+      padding-left: 50px;
+      padding-right: 50px;
+      padding-top: 50px;
+      padding-bottom: 50px;
+      hyphens: auto;
+      overflow-wrap: break-word;
+      text-rendering: optimizeLegibility;
+      font-kerning: normal;
+    }
+    @media (max-width: 600px) {
+      body {
+        font-size: 0.9em;
+        padding: 12px;
+      }
+      h1 {
+        font-size: 1.8em;
+      }
+    }
+    @media print {
+      html {
+        background-color: white;
+      }
+      body {
+        background-color: transparent;
+        color: black;
+        font-size: 12pt;
+      }
+      p, h2, h3 {
+        orphans: 3;
+        widows: 3;
+      }
+      h2, h3, h4 {
+        page-break-after: avoid;
+      }
+    }
+    p {
+      margin: 1em 0;
+    }
+    a {
+      color: #1a1a1a;
+    }
+    a:visited {
+      color: #1a1a1a;
+    }
+    img {
+      max-width: 100%;
+    }
+    svg {
+      height: auto;
+      max-width: 100%;
+    }
+    h1, h2, h3, h4, h5, h6 {
+      margin-top: 1.4em;
+    }
+    h5, h6 {
+      font-size: 1em;
+      font-style: italic;
+    }
+    h6 {
+      font-weight: normal;
+    }
+    ol, ul {
+      padding-left: 1.7em;
+      margin-top: 1em;
+    }
+    li > ol, li > ul {
+      margin-top: 0;
+    }
+    blockquote {
+      margin: 1em 0 1em 1.7em;
+      padding-left: 1em;
+      border-left: 2px solid #e6e6e6;
+      color: #606060;
+    }
+    code {
+      font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
+      font-size: 85%;
+      margin: 0;
+      hyphens: manual;
+    }
+    pre {
+      margin: 1em 0;
+      overflow: auto;
+    }
+    pre code {
+      padding: 0;
+      overflow: visible;
+      overflow-wrap: normal;
+    }
+    .sourceCode {
+     background-color: transparent;
+     overflow: visible;
+    }
+    hr {
+      background-color: #1a1a1a;
+      border: none;
+      height: 1px;
+      margin: 1em 0;
+    }
+    table {
+      margin: 1em 0;
+      border-collapse: collapse;
+      width: 100%;
+      overflow-x: auto;
+      display: block;
+      font-variant-numeric: lining-nums tabular-nums;
+    }
+    table caption {
+      margin-bottom: 0.75em;
+    }
+    tbody {
+      margin-top: 0.5em;
+      border-top: 1px solid #1a1a1a;
+      border-bottom: 1px solid #1a1a1a;
+    }
+    th {
+      border-top: 1px solid #1a1a1a;
+      padding: 0.25em 0.5em 0.25em 0.5em;
+    }
+    td {
+      padding: 0.125em 0.5em 0.25em 0.5em;
+    }
+    header {
+      margin-bottom: 4em;
+      text-align: center;
+    }
+    #TOC li {
+      list-style: none;
+    }
+    #TOC ul {
+      padding-left: 1.3em;
+    }
+    #TOC > ul {
+      padding-left: 0;
+    }
+    #TOC a:not(:hover) {
+      text-decoration: none;
+    }
+    code{white-space: pre-wrap;}
+    span.smallcaps{font-variant: small-caps;}
+    div.columns{display: flex; gap: min(4vw, 1.5em);}
+    div.column{flex: auto; overflow-x: auto;}
+    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
+    /* The extra [class] is a hack that increases specificity enough to
+       override a similar rule in reveal.js */
+    ul.task-list[class]{list-style: none;}
+    ul.task-list li input[type="checkbox"] {
+      font-size: inherit;
+      width: 0.8em;
+      margin: 0 0.8em 0.2em -1.6em;
+      vertical-align: middle;
+    }
+    .display.math{display: block; text-align: center; margin: 0.5rem auto;}
+  </style>
+</head>
+<body>
+<h1 id="exercice-3-fusion-de-tableaux">Exercice 3 : fusion de
+tableaux</h1>
+<p>On désire implémenter une fonction <code>fusion</code> qui prend deux
+chaînes de caractères en argument et renvoie une chaîne de caractères
+dans laquelle les lettres sont prises alternativement de la première et
+de la seconde chaîne. Lorsque toutes les lettres d’une des deux chaînes
+ont été prises, on copie simplement toutes les lettres restantes dans la
+chaîne finale.</p>
+<p>Toutes les <strong>allocations de mémoire de tableaux</strong>
+doivent être faites <strong>dynamiquement</strong>. Pensez donc à bien
+libérer la mémoire.</p>
+<p>Ainsi pour les exécutions suivantes, on aura comme résultat :</p>
+<pre><code>./ex3 Mary Louise
+Chaîne fusionnée: MLaoruyise</code></pre>
+<pre><code>./ex3 Wollstonecraft Michel
+Chaîne fusionnée: WMoilclhsetlonecraft</code></pre>
+<h2 id="compilation">Compilation</h2>
+<p>Vous noterez que le <em>Makefile</em> fourni contient les options de
+compilation suivantes :</p>
+<pre><code>-g -fsanitize=address -fsanitize=undefined -fsanitize=leak</code></pre>
+</body>
+</html>
diff --git a/first_quarter/exam/automne_machine/enonces/ex3/README.md b/first_quarter/exam/automne_machine/enonces/ex3/README.md
new file mode 100644
index 0000000..af7f3ee
--- /dev/null
+++ b/first_quarter/exam/automne_machine/enonces/ex3/README.md
@@ -0,0 +1,27 @@
+# Exercice 3 : fusion de tableaux
+
+On désire implémenter une fonction `fusion` qui prend deux chaînes de caractères en argument et renvoie une chaîne de caractères dans laquelle les lettres sont prises alternativement de la première et de la seconde chaîne.
+Lorsque toutes les lettres d’une des deux chaînes ont été prises, on copie simplement toutes les lettres restantes dans la chaîne finale.
+
+Toutes les **allocations de mémoire de tableaux** doivent être faites **dynamiquement**.
+Pensez donc à bien libérer la mémoire.
+
+Ainsi pour les exécutions suivantes, on aura comme résultat :
+
+```
+./ex3 Mary Louise
+Chaîne fusionnée: MLaoruyise
+```
+
+```
+./ex3 Wollstonecraft Michel
+Chaîne fusionnée: WMoilclhsetlonecraft
+```
+
+## Compilation
+
+Vous noterez que le *Makefile* fourni contient les options de compilation suivantes :
+
+```
+-g -fsanitize=address -fsanitize=undefined -fsanitize=leak
+```
diff --git a/first_quarter/exam/automne_machine/templates/ex1/Makefile b/first_quarter/exam/automne_machine/templates/ex1/Makefile
new file mode 100644
index 0000000..6103d2b
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex1/Makefile
@@ -0,0 +1,11 @@
+CC = gcc -std=c11 -g
+CFLAGS = -Wall -Wextra -Wpedantic
+
+main: main.c ex1.c ex1.h
+	$(CC) $(CFLAGS) -o $@ main.c ex1.c
+
+run: main
+	./main 100
+
+clean:
+	rm -f main
\ No newline at end of file
diff --git a/first_quarter/exam/automne_machine/templates/ex1/ex1.c b/first_quarter/exam/automne_machine/templates/ex1/ex1.c
new file mode 100644
index 0000000..9ad4f9d
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex1/ex1.c
@@ -0,0 +1,29 @@
+#include "ex1.h"
+
+//Helper functions
+int rand_gen(int max_faces){
+	return rand() % max_faces + 1;
+}
+
+void int_to_array(int *tab, int size){
+	for(int i = 0;i < size;i++){
+		tab[i] = rand_gen(MAX_FACES);
+	}
+}
+
+void count_occ(int *tab, int size){
+	int occ[MAX_FACES] = {0};
+	//count
+	for(int i = 0;i < size;i++){
+		if(tab[i] >= 1 && tab[i] < MAX_FACES){
+			occ[tab[i]- 1]++;
+		}
+	}
+	//Print
+	for(int i = 1; i <= MAX_FACES;i++){
+		double percentage = (occ[i-1])/((double)size) * 100.0;
+		printf("Face %d: %d occurences, %.2f%%\n", i, occ[i -1], percentage); 
+	}
+
+}
+
diff --git a/first_quarter/exam/automne_machine/templates/ex1/ex1.h b/first_quarter/exam/automne_machine/templates/ex1/ex1.h
new file mode 100644
index 0000000..573fb22
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex1/ex1.h
@@ -0,0 +1,17 @@
+#ifndef EX1_H
+#define EX1_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+#define MAX_FACES 6
+
+int rand_gen(int max_faces);
+
+void int_to_array(int *tab, int size);
+
+void count_occ(int *tab, int size);
+
+
+#endif
\ No newline at end of file
diff --git a/first_quarter/exam/automne_machine/templates/ex1/main b/first_quarter/exam/automne_machine/templates/ex1/main
new file mode 100755
index 0000000000000000000000000000000000000000..c6e9992768e2a361094bcee8598552cf70351008
GIT binary patch
literal 20688
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

literal 0
HcmV?d00001

diff --git a/first_quarter/exam/automne_machine/templates/ex1/main.c b/first_quarter/exam/automne_machine/templates/ex1/main.c
new file mode 100644
index 0000000..d82f3be
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex1/main.c
@@ -0,0 +1,30 @@
+#include "ex1.h"
+
+int main(int argc, char *argv[]) {
+    if(argc != 2){
+        fprintf(stderr,"Usage:<%s><number of tries>", argv[0]);
+        return EXIT_FAILURE;
+    }
+
+    srand(time(NULL));
+
+    int num_tries = atoi(argv[1]);
+    if (num_tries <= 0) {
+        fprintf(stderr, "Number of tries must be positive\n");
+        return EXIT_FAILURE;
+    }
+
+    int *tab = (int *)malloc(num_tries * sizeof(int));
+    if (tab == NULL) {
+        fprintf(stderr, "Memory allocation failed\n");
+        return EXIT_FAILURE;
+    }
+
+    int_to_array(tab,num_tries);
+    count_occ(tab, num_tries);
+
+    free(tab);
+
+
+	return EXIT_SUCCESS;
+}
diff --git a/first_quarter/exam/automne_machine/templates/ex2/Makefile b/first_quarter/exam/automne_machine/templates/ex2/Makefile
new file mode 100644
index 0000000..8bbd40b
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex2/Makefile
@@ -0,0 +1,12 @@
+CC        = gcc -std=c11 -g
+CFLAGS    = -Wall -Wextra -Wpedantic
+
+main: main.c ex2.c ex2.h 
+	${CC} ${CFLAGS} -o $@ main.c ex2.c
+
+run: main
+	./main Neeeeed eee
+
+clean:
+	rm -f main
+
diff --git a/first_quarter/exam/automne_machine/templates/ex2/ex2.c b/first_quarter/exam/automne_machine/templates/ex2/ex2.c
new file mode 100644
index 0000000..10d219b
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex2/ex2.c
@@ -0,0 +1,12 @@
+#include "ex2.h"
+
+int sub_string_occ(char *s_str, char *str){
+	int count = 0;
+	char *tmp_str = str;
+	while((tmp_str = strstr(tmp_str,s_str)) != NULL){
+		count ++;
+		tmp_str ++;
+	}
+	return count;
+}
+
diff --git a/first_quarter/exam/automne_machine/templates/ex2/ex2.h b/first_quarter/exam/automne_machine/templates/ex2/ex2.h
new file mode 100644
index 0000000..3f0ab60
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex2/ex2.h
@@ -0,0 +1,11 @@
+#ifndef EX2_H
+#define EX2_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdbool.h>
+
+int sub_string_occ(char *s_str, char *str);
+
+#endif
\ No newline at end of file
diff --git a/first_quarter/exam/automne_machine/templates/ex2/main b/first_quarter/exam/automne_machine/templates/ex2/main
new file mode 100755
index 0000000000000000000000000000000000000000..2ad53fe5531e88fee418d7d31028fd85c49367d4
GIT binary patch
literal 19856
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
Rm>7tD1g%iA&@`ZN834Cov3dXi

literal 0
HcmV?d00001

diff --git a/first_quarter/exam/automne_machine/templates/ex2/main.c b/first_quarter/exam/automne_machine/templates/ex2/main.c
new file mode 100644
index 0000000..29a3af8
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex2/main.c
@@ -0,0 +1,35 @@
+#include "ex2.h"
+
+int main(int argc, char *argv[]) {
+    if(argc != 3){
+        fprintf(stderr,"Usage:<%s><string><sub-string>\n",argv[0]);
+        return EXIT_FAILURE;
+    }
+
+    char *str = (char *)malloc((strlen(argv[1]) + 1) * sizeof(char));
+    if(str == NULL){
+        fprintf(stderr,"Memory allocation error\n");
+    }
+    char *s_str = (char *)malloc((strlen(argv[2]) + 1) * sizeof(char)); 
+    if(str == NULL){    
+        fprintf(stderr,"Memory allocation error\n");
+        free(str);
+    }
+
+
+    
+
+    str = argv[1];
+    s_str = argv[2];
+
+
+    int count_s_str = sub_string_occ(s_str,str);
+
+    printf("For sub-string (%s) there are (%d) occurences in string (%s) \n",argv[2], count_s_str, argv[1]);
+
+    //free(str);
+    //free(s_str);
+
+
+	return EXIT_SUCCESS;
+}
diff --git a/first_quarter/exam/automne_machine/templates/ex3/Makefile b/first_quarter/exam/automne_machine/templates/ex3/Makefile
new file mode 100644
index 0000000..b557fb4
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex3/Makefile
@@ -0,0 +1,15 @@
+CC        = gcc -std=c11 -g
+CFLAGS    = -Wall -Wextra -Wpedantic
+SANITIZER = -fsanitize=leak -fsanitize=undefined -fsanitize=address
+
+main: main.c ex3.c ex3.h
+	${CC} ${CFLAGS} ${SANITIZER} -o $@ main.c ex3.c
+
+run: main
+	./main Mary Louise
+
+clean:
+	rm -f main
+
+
+
diff --git a/first_quarter/exam/automne_machine/templates/ex3/ex3.c b/first_quarter/exam/automne_machine/templates/ex3/ex3.c
new file mode 100644
index 0000000..7260fd4
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex3/ex3.c
@@ -0,0 +1,18 @@
+#include "ex3.h"
+
+char *fusion(char *str1, char *str2, char *tmp_str){
+	int len_1 = strlen(str1);
+	int len_2 = strlen(str2);
+	int len =  len_1 + len_2;
+	int i_1 = 0, i_2 = 0;
+	for(int i = 0;i < len;i++){
+		if(i % 2 == 0 && i_1 < len_1){
+			tmp_str[i] = str1[i_1++];
+		}else if(i_2 < len_2){
+			tmp_str[i] = str2[i_2++];
+		}
+	}	
+	tmp_str[len] = '\0';
+	return tmp_str;
+}
+
diff --git a/first_quarter/exam/automne_machine/templates/ex3/ex3.h b/first_quarter/exam/automne_machine/templates/ex3/ex3.h
new file mode 100644
index 0000000..2e166c7
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex3/ex3.h
@@ -0,0 +1,11 @@
+#ifndef EX3_H
+#define EX3_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+char *fusion(char *str1, char *str2, char *tmp_str);
+
+#endif
diff --git a/first_quarter/exam/automne_machine/templates/ex3/main b/first_quarter/exam/automne_machine/templates/ex3/main
new file mode 100755
index 0000000000000000000000000000000000000000..a3a9f6615fee68a9591cdcf40151b02b0fb82933
GIT binary patch
literal 35496
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

literal 0
HcmV?d00001

diff --git a/first_quarter/exam/automne_machine/templates/ex3/main.c b/first_quarter/exam/automne_machine/templates/ex3/main.c
new file mode 100644
index 0000000..d81cc83
--- /dev/null
+++ b/first_quarter/exam/automne_machine/templates/ex3/main.c
@@ -0,0 +1,46 @@
+#include "ex3.h"
+
+int main(int argc, char *argv[]) {
+    if(argc != 3){
+        fprintf(stderr, "Usage:<%s><first string><Second string>\n", argv[0]);
+        return EXIT_FAILURE;
+    }
+
+    int len_1 = strlen(argv[1]);
+    int len_2 = strlen(argv[2]);
+
+    char *str1 = (char *)malloc((len_1 + 1) * sizeof(char));
+    if(str1 == NULL){
+        fprintf(stderr,"Memory allocation error\n");
+        return EXIT_FAILURE;
+    }
+    strcpy(str1,argv[1]);
+
+    char *str2 = (char *)malloc((len_2 + 1) * sizeof(char));
+    if(str2 == NULL){
+        fprintf(stderr,"Memory allocation error\n");
+        free(str1);
+        return EXIT_FAILURE;
+    }
+    strcpy(str2,argv[2]);
+
+    char *tmp_str = (char *)malloc((len_1 +len_2 + 1) * sizeof(char));
+    if(tmp_str == NULL){
+        fprintf(stderr,"Memory allocation error\n");
+        free(str1);
+        free(str2);
+        return EXIT_FAILURE;
+    }
+
+    tmp_str = fusion(str1,str2,tmp_str);
+
+    free(str1);
+    free(str2);
+
+    printf("merge string: %s\n", tmp_str);
+
+    free(tmp_str);
+
+
+	return EXIT_SUCCESS;
+}
\ No newline at end of file
diff --git a/first_quarter/programs/arrays_manipulation.c b/first_quarter/programs/arrays_manipulation.c
new file mode 100644
index 0000000..72efd22
--- /dev/null
+++ b/first_quarter/programs/arrays_manipulation.c
@@ -0,0 +1,48 @@
+#include "first_e.h"
+
+int disaggregate_int(int a, int *tab, int *tab_counts){
+    //1. Memory allocation
+    int size = sizeof(tab)/sizeof(tab[0]);
+    tab = (int *)malloc(size * sizeof(int));
+    tab_counts = (int *)calloc(size, sizeof(int));
+
+    //2. GREEDY ALGO
+    for(int i = 0; i < size; i++){
+        while(a >= tab[i]){
+            a -= tab[i];
+            tab_counts[i]++;
+        }
+    }
+    return EXIT_SUCCESS;
+}
+
+void erathosthene(int size, bool *tab){
+    for(int i = 0; i < size; i++){
+        tab[i] = true;
+    }
+
+    tab[0] = false;
+    tab[1] = false;
+
+    for(int i = 2; i <= sqrt(size)  ;i++){
+        if(tab[i]){
+            for(int j = i*i;j < size;j+=i){
+                tab[j] = false;
+            }
+        }
+    }
+}
+
+int erathosthene_2_tab(int size, int *tab){
+
+    bool primes[size];
+    erathosthene(size,primes);
+    int count = 0;
+
+    for(int i = 0; i < size; i++){
+        if(primes[i]){
+            tab[count++] = i;
+        }
+    }
+    return count; 
+}
\ No newline at end of file
diff --git a/first_quarter/programs/first_e.h b/first_quarter/programs/first_e.h
new file mode 100644
index 0000000..85e5bde
--- /dev/null
+++ b/first_quarter/programs/first_e.h
@@ -0,0 +1,31 @@
+#ifndef FIRST_E_H
+#define FIRST_E_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <time.h>
+#include <string.h>
+
+//1. Math functions
+float weighted_average(int *a, int *coeff, int size);
+float perimeter(float r);
+bool is_prime(int num);
+int gcd(int a, int b);
+int lcm(int a, int b);
+
+//2. Array maniputation
+int disaggregate_int(int a, int *tab, int *tab_counts);
+void erathosthene(int size, bool *tab);
+int erathosthene_2_tab(int size, int *tab);
+
+//3. Helper functions
+void swap(int *a, int *b);
+void select_sort(char *str);
+void revert(char *str1, char *str2);
+
+//4. String manipulation
+bool is_anagram(char *str1, char *str2);
+bool is_palindrom(char *str);
+
+#endif
\ No newline at end of file
diff --git a/first_quarter/programs/helper_function.c b/first_quarter/programs/helper_function.c
new file mode 100644
index 0000000..26e3dd6
--- /dev/null
+++ b/first_quarter/programs/helper_function.c
@@ -0,0 +1,27 @@
+void swap(int *a, int *b){
+    *a = *a ^ *b;
+    *b = *b ^ *a;
+    *a = *a ^ *b;
+}
+
+void select_sort(char *str){
+    int n = strlen(str);
+    for(int i = 0; i < n -1; i++){
+        for(int j = 0;j < n - i - 1;j++){
+            if(str[j] > str[j + 1]){
+                char temp = str[j];
+                str[j] = str[j + 1];
+                str[j + 1] = temp;
+            }
+        }
+    }
+}
+
+void revert(char *str1, char *str2){
+    int size = strlen(str1);
+    for(int i = 0;i < size;i++){
+        str2[i] = str2[size - i - 1];        
+    }
+    str2[size] = '\0';
+    return;
+}
\ No newline at end of file
diff --git a/first_quarter/programs/main.c b/first_quarter/programs/main.c
new file mode 100644
index 0000000..a7db6cd
--- /dev/null
+++ b/first_quarter/programs/main.c
@@ -0,0 +1,5 @@
+#include "first_e.h"
+
+int main(int argc, char *argv[]){
+    return EXIT_SUCCESS;
+}
\ No newline at end of file
diff --git a/first_quarter/programs/math_functions.c b/first_quarter/programs/math_functions.c
new file mode 100644
index 0000000..bdde1c2
--- /dev/null
+++ b/first_quarter/programs/math_functions.c
@@ -0,0 +1,45 @@
+#include "first_e.h"
+
+#define Pi 3.14159265359
+
+float weighted_average(int *a, int *coeff, int size){
+    int total_weight = 0;
+    int total_coeff = 0;
+
+    for(int i = 0; i < size;i++){
+        total_weight += a[i] * coeff[i];
+        total_coeff += coeff[i];
+    }
+    return (float)total_weight/total_coeff;
+}
+
+float perimeter(float r){
+    float d = 2 * r;
+    float prmt = Pi * d;
+    return prmt;
+}
+
+bool is_prime(int num){
+    if(num < 2){
+        return false;
+    }
+    for(int i = 2; i * i <= num; i++){
+        if(num % i == 0){
+            return false;
+        }
+    }
+    return true;
+}
+
+int gcd(int a, int b){
+    while(b != 0){
+        int temp = b;
+        b = a % b;
+        a = temp;
+    }
+    return a;
+}
+
+int lcm(int a, int b){
+    return (a * b)/gcd(a, b);
+}
\ No newline at end of file
diff --git a/first_quarter/programs/str_manipulation.c b/first_quarter/programs/str_manipulation.c
new file mode 100644
index 0000000..9301efe
--- /dev/null
+++ b/first_quarter/programs/str_manipulation.c
@@ -0,0 +1,26 @@
+#include "first_e.h"
+
+
+
+bool is_anagram(char *str1, char *str2){
+    if(strlen(str1) != strlen(str2)){
+        return false;
+    }
+    
+    select_sort(str1);
+    select_sort(str2);
+
+    if(memcmp(str1,str2, strlen(str1)) == 0){
+        return true;
+    }else {
+        return false;
+    }
+}
+
+
+bool is_palindrom(char *str){
+    int SIZE = strlen(str);
+    char temp[SIZE + 1];
+    revert(str, temp);
+    return strcmp(str,temp);
+}
\ No newline at end of file
diff --git a/first_quarter/subjects/data_strucs/main b/first_quarter/subjects/data_strucs/main
new file mode 100755
index 0000000000000000000000000000000000000000..678a74f7fccd7efc09f621ec51ab56c9b91547b1
GIT binary patch
literal 16648
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
QppCT*3=C3e8ql~50CLTBhyVZp

literal 0
HcmV?d00001

diff --git a/first_quarter/subjects/data_strucs/static_arrays.c b/first_quarter/subjects/data_strucs/static_arrays.c
new file mode 100644
index 0000000..db45b7d
--- /dev/null
+++ b/first_quarter/subjects/data_strucs/static_arrays.c
@@ -0,0 +1,98 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <string.h>
+#include <stdbool.h>
+
+#define size 10 //i n static arrays size must be knonw
+
+void init_tab(int tab[size]){
+    for(int i = 0;i < size;i++){
+        tab[i] = rand() % size;// % size init from 0 to size - 1; 
+    }
+}
+
+void print_tab(int tab[size]){
+    for(int i = 0;i < size;i++){
+        printf("%d ", tab[i]);
+    }
+    printf("\n");
+}
+
+void s_str_in_str(char *s_str,char *str){
+    char *pos = strstr(str,s_str);
+    if (pos != NULL) { 
+        printf("Substring (%s) found at position: %ld\n",s_str, pos - str); 
+    } else { 
+        printf("Substring not found.\n"); 
+    }
+}
+
+void split_str(char *str){
+    char *token = strtok(str, " ");
+    while(token != NULL){
+        printf("%s\n", token);
+        token = strtok(NULL, " ");
+    }
+}
+
+int main(){
+    //1. Array of ints
+    //1.1 Declaration
+    printf("1. Array of INTS\n");
+    int tab[size];
+
+    //1.2 Initialization
+    //1.2.1 Declaration and Initialization at he same time
+    printf("1.1. Declaration and Init together\n");
+    int tab2[] = {1,2,3,4,5,6,7,8,9,10};
+    print_tab(tab2);
+    printf("\n");
+    //1.2.2 Initialization with random values using function
+    srand(time(NULL));//plants the seed
+    printf("1.2. Init with rand vals using function\n");
+    init_tab(tab);
+    print_tab(tab);
+    printf("\n");
+    printf("\n");
+
+    //2. Array of chars a.i String lib
+    printf("2. Array of CHARS\n");
+    //2.1 Declaration and Initialization using a pointer to a string literal(stored in read-only memory)
+    printf("2.1 Declaration and Initialization using a pointer\n");
+    char *str = "Hello, world";
+    printf("String literal POINTED is: %s\n", str);
+    //2.2 Declaration and Initialization using the content of the string literal
+    printf("2.2 Declaration and Initialization using the content\n");
+    char str_char_array[] = "Array Char";
+    printf("String literal CONTENT is: %s\n", str);
+    printf("\n");
+    //2.3 String operations
+    printf("2.3. String operationsa\n");
+    printf("\n");
+    printf("2.3.1. String length\n");
+    int len = strlen(str);
+    printf("%s contains %d chars\n", str, len);
+    printf("2.3.2. String copy\n");
+    char *str2 = (char *)malloc((len + 1) * sizeof(char));//requires memory allocation
+    strcpy(str2,str);
+    printf("Second string(%s) in now = to first string(%s)\n", str2,str);
+    printf("2.3.3. String comparison\n");
+    bool are_equal = strcmp(str2,str);
+    printf("Are second and first string equal ? if strcmp is %d then it's true", are_equal);
+    free(str2);//memory allocated must be freed
+    printf("\n");
+    //2.4 String operations with functions
+    printf("2.4. String operationsa using functions\n");
+    //2.4.1. Find sub_string in string
+    printf("2.4.1. Find substring in string\n");
+    char *s_str = "world";
+    s_str_in_str(s_str,str);
+    printf("\n");
+    //2.4.2. Split string
+    printf("2.4.2. Split string\n");  
+    split_str(str_char_array);
+
+
+    return EXIT_SUCCESS;
+}
\ No newline at end of file
diff --git a/first_quarter/subjects/generals/data_types.c b/first_quarter/subjects/generals/data_types.c
new file mode 100644
index 0000000..1c081aa
--- /dev/null
+++ b/first_quarter/subjects/generals/data_types.c
@@ -0,0 +1,58 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+#define typename(x) _Generic((x),            \
+	             _Bool: "_Bool",             \
+	     unsigned char: "unsigned char",     \
+	              char: "char",              \
+	       signed char: "signed char",       \
+	         short int: "short int",         \
+	unsigned short int: "unsigned short int",\
+	               int: "int",               \
+	      unsigned int: "unsigned int",      \
+	          long int: "long int",          \
+	 unsigned long int: "unsigned long int", \
+	             float: "float",             \
+	            double: "double",            \
+	       long double: "long double",       \
+	           default: "other")
+
+/*This macro allows to manipulate better data types using the keyword: _Generic
+
+Sytax: _Generic(<expression>, <type>, <result>, <type>, <result> ... default:<result>)
+
+<expression>: variable data type we are checking
+<type>: type we compare agains
+<result>: what we do if type match
+default: what we do if types do not match
+
+    n + q: Evaluates to the sum of n and q.
+
+    typename(n + q): Determines the type of the result of n + q and returns it as a string.
+
+    %s: Prints the type name string.
+
+    %ld: Intended to print a long integer, but should be corrected to %f for floating-point numbers.
+*/
+
+
+int main(void) {
+	int   n = 10;
+	int   p = 4;
+	long  q = 2;
+	float x = 1.75;
+	printf("n + q => %s : %ld\n", typename(n + q), n + q);
+	printf("n + x => %s : %f\n", typename(n + x), n + x);
+	printf("n %% p + q => %s : %ld\n", typename(n % p + q), n % p + q);
+	printf("n < p => %s : %d\n", typename(n < p), n < p);
+	printf("n >= p => %s : %d\n", typename(n >= p), n >= p);
+	printf("n > q => %s : %d\n", typename(n > q), n > q);
+	printf("q + 3 * (n > p) => %s : %ld\n", typename(q + 3 * (n > p)), q + 3 * (n > p));
+	printf("q && n => %s : %d\n", typename(q && n), q && n);
+	printf("(q - 2) && (n - 10) => %s : %d\n", typename((q - 2) && (n - 10)), (q - 2) && (n - 10));
+	printf("x * (q==2) => %s : %f\n", typename(x*(q==2)), x*(q==2));
+	printf("x * (q=5) => %s : %f\n", typename(x*(q=5)), x*(q=5));
+	
+	return EXIT_SUCCESS;
+}
diff --git a/first_quarter/subjects/generals/main b/first_quarter/subjects/generals/main
new file mode 100755
index 0000000000000000000000000000000000000000..d51f09193d4964f24ef853b5212f692d7268b618
GIT binary patch
literal 16232
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

literal 0
HcmV?d00001

diff --git a/first_quarter/subjects/generals/main_structs b/first_quarter/subjects/generals/main_structs
new file mode 100755
index 0000000000000000000000000000000000000000..ae65e602eba28dfc88ff9763c1e832a180658fb4
GIT binary patch
literal 16176
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

literal 0
HcmV?d00001

diff --git a/first_quarter/subjects/generals/struct.c b/first_quarter/subjects/generals/struct.c
new file mode 100644
index 0000000..4fa8f1b
--- /dev/null
+++ b/first_quarter/subjects/generals/struct.c
@@ -0,0 +1,193 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+//1. Conditional statements
+
+int if_alone(int a, int b){
+    int res = 0;
+    if(a != b){
+        res = a + b;
+    }
+    printf("if condition is not meet then the following statement executer\n");
+    return res;
+}
+
+int if_else(int a, int b){
+    int res = 0;
+    if (a == b){
+        res = a + b;
+    } else if(a <= b){
+        res = a - b + 1;
+    } else{
+        res = a * b;
+    }
+    printf("following statement always execute\n");
+    return res;
+}
+
+void switch_stmt(int a, int b, int cases){
+    int res = 0;
+
+    switch (cases)
+    {
+    case 1:
+        res = a + b;
+        printf("case 1: %d\n",res);
+        break;
+    case 2:
+        res = a - b;
+        printf("case 2: %d\n",res);
+    default:
+        printf("default: %d\n",res);
+        break;
+    }
+}
+
+int tern(int a, int b){
+    return a < b ? a + b : a - b;
+}
+
+int main(){
+    // 1. Conditional statement
+
+    //1.1 if alone
+    //1.1.1 when true
+    printf("1.1 IF ALONE\n");
+    int a = 2;
+    int b = 4;
+    int res = if_alone(a,b);
+    printf("code execute if condition is true: %d\n", res);
+    //1.1.2 when false
+    int c = 5;
+    int d = 5;
+    int res2 = if_alone(c,d);
+    printf("code execute if condition is false: %d\n", res2);
+    printf("\n");
+
+    //1.2 if-else
+    printf("1.2 IF ELSE\n");
+    int w = 10;
+    int x = 10;
+    int res3 = if_else(w,x);
+    printf("code execute if condition is true: %d\n", res3);
+    int y = 2;
+    int z = 4;
+    int res4 = if_else(y,z);
+    printf("code execute else if condition is true: %d\n", res4);
+    int aa = 4;
+    int bb = 2;
+    int res5 = if_else(aa,bb);
+    printf("code execute not if nor else if condition is true: %d\n", res5);
+    printf("\n");
+
+    //1.3 Switch
+    printf("1.3 SWITCH \n");
+    int aaa = 2;
+    int bbb = 3;
+    int cases = 1;
+    switch_stmt(aaa,bbb,cases);
+    printf("\n");
+
+    //1.4 Ternary 
+    printf("1.3 TERNARY \n");
+    int xx = 3;
+    int yy = 4;
+    int res6 = tern(xx,yy);
+    printf("statement if true: %d\n", res6);
+    printf("\n");
+
+
+    //2. Loops
+    //2.1 Number of iterations known, FOR loop
+    printf("2.1 FOR loop \n");
+    int tab[] = {1,2,3,4,5};
+    int size = 5;
+    for(int i = 0;i < size;i++){
+        tab[i] = tab[i + 1];
+    }
+    printf("first element in array is not longer 1 but 1 + 1: %d\n", *tab);
+    printf("\n");
+
+    //2.2 based on condition that might change during iteration, WHILE loop
+    printf("2.2 WHILE loop \n");
+    int desired_first_val = 4;
+    int count = 0;
+    while(tab[0] != desired_first_val){
+        *tab = *tab + 1;
+        count++;
+    }
+    printf("iterate until the value in first index is 4: there were %d iteration to get to %d\n",count, *tab);
+    printf("\n");
+
+    //2.3 Ensures at least one execution
+    printf("2.2 DO-WHILE loop \n");
+    int count_2 = 0;
+    do{
+        *tab -= 1;
+        count_2++;
+    }while (tab[0] >= tab[1]);
+    printf("iterate until the value in first index is bigger or qeual than value of second index: there were %d iteration\n",count_2);
+    printf("first index is %d, sencond index is %d",tab[0],tab[1]);
+    printf("\n");
+
+    
+
+
+
+
+
+
+
+
+/*
+    printf("IF ELSE CAN BE: \n");
+    printf("Simple\n");
+    printf("        start          ");
+    printf("          |            ");
+    printf("    if-consition       ");
+    printf("          |            ");
+    printf("  -------------------  ");
+    printf("  |                 |  ");
+    printf("true              flase");
+    printf("if-body       else-body");
+    printf("  |                 |  ");
+    printf("  -------------------  ");
+    printf("          |            ");
+    printf("   statement berlow    ");
+    printf("          |            ");
+    printf("         end           ");
+    printf("\n");
+    printf("Nested\n");
+    printf("                              start          ");
+    printf("                                |            ");
+    printf("                          if-consition       ");
+    printf("                                |            ");
+    printf("          --------------------------------------    ");
+    printf("          |                                    |    ");
+    printf("        true                                flase   ");
+    printf("    condition 1                         else-body   ");
+    printf("         |                                    |     ");
+    printf(" -------------------               ---------------------    ");
+    printf(" |                 |               |                   |    ");
+    printf("true              false          true                false  ");
+    printf("st1                st2           str3                 st4   ");
+    printf(" |                  |             |                    |    ");
+    printf(" -------------------------------------------------------    ");
+    printf("                                |            ");
+    printf("                               end           ");
+    printf("\n");
+    printf("Laddered\n");
+    printf("start          ");
+    printf("  |          ");
+    printf("condition 1----------------statement 1--------------");
+    printf("  |                                                |");
+    printf("  no                                               |");
+    printf("  |                                                |");
+    printf("condition 2----------------statement 2--------------");
+    printf("  |                                                |");
+    printf("  no-----------------------else body----------------");
+    printf("                                                   |");
+    printf("                                                  end");
+    printf("\n");
+*/
+}   
\ No newline at end of file
diff --git a/first_quarter/subjects/pointers/main b/first_quarter/subjects/pointers/main
new file mode 100755
index 0000000000000000000000000000000000000000..c9286f758b5c0752f558283d3e53be2cf2a9adcb
GIT binary patch
literal 26112
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
I1~e`M07_*XZ2$lO

literal 0
HcmV?d00001

diff --git a/first_quarter/subjects/pointers/pointers.c b/first_quarter/subjects/pointers/pointers.c
new file mode 100644
index 0000000..3c9c2d8
--- /dev/null
+++ b/first_quarter/subjects/pointers/pointers.c
@@ -0,0 +1,108 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdbool.h>
+#include <time.h>
+
+void tab_init(int *tab, int size){
+    for(int i = 0;i < size;i++){
+        tab[i] = rand() % size; 
+    }
+}
+
+void print_tab(int *tab, int size){
+    printf("index | Value \n");
+    for(int i = 0;i < size;i++){
+        
+        printf("%d     | %d\n", i, tab[i]);
+    }
+}
+
+void linear_search_val(int *tab, int size, int i_search){
+    for(int i = 0;i < size;i++){
+        if(i == i_search){
+            printf("in index %d value is %d\n",i, tab[i]);
+        }
+    }
+}
+
+
+
+
+
+int main(int argc, char *argv[]){
+    //Arguments check
+    if(argc != 2){
+        fprintf(stderr,"Usage:<%s><size>\n", argv[0]);
+        return EXIT_FAILURE;
+    }
+    int size = atoi(argv[1]);
+    if(size <= 0){
+        fprintf(stderr,"Size most be a positive integer\n");
+        return EXIT_FAILURE;
+    }
+    //1. Ponter to an integer(dynamically allocated arrey of ints)
+    printf("1. Pointer to INT\n");
+    //1.1 Declaration and Memory allocation
+    printf("1.1 Declaration and Memory allocation\n");
+    
+    int *tab = (int *)malloc(size * sizeof(int));
+    if(tab == NULL){
+        fprintf(stderr,"Allocation Error\n");
+        return EXIT_FAILURE;
+    }
+    printf("the array is of size(in bytes) %ld\n", size * sizeof(int));
+    //1.2 Initialization using fonctions
+    printf("1.2 Init with rand vals using fonciton\n");
+    srand(time(NULL));
+    tab_init(tab,size);
+    print_tab(tab,size);
+    //1.3 Search value based on index (linear search)
+    printf("1.3 Access index unsing linear search \n");
+    int i_mid_tab = (size/2);
+    linear_search_val(tab,size,i_mid_tab);
+    printf("\n");
+
+    //2. Malloc vs Calloc
+    printf("2. Calloc vs Malloc\n");
+    int *tab_m = (int *)malloc(size * sizeof(int));
+        if(tab == NULL){
+        fprintf(stderr,"Allocation Error\n");
+        free(tab);
+        return EXIT_FAILURE;
+    }
+    printf("2.1 Malloc init with garbage vals therefore need initialization\n");
+    tab_init(tab_m,size);
+    print_tab(tab_m,size);
+    printf("2.2 Malloc init with 0\n");
+    int *tab_c = (int *)calloc(size, sizeof(int));
+        if(tab == NULL){
+        fprintf(stderr,"Allocation Error\n");
+        free(tab);
+        free(tab_m);
+        return EXIT_FAILURE;
+    }
+    print_tab(tab_c,size);
+    printf("\n");
+    
+    //3. Realloc
+    printf("3. Realloc\n");
+    int size_2 = 6;
+    int *new_tab = realloc(tab, size_2 * sizeof(int));
+        if(tab == NULL){
+        fprintf(stderr,"Reallocation Error\n");
+        free(tab);
+        free(tab_c);
+        free(tab_m);
+
+        return EXIT_FAILURE;
+    }
+    tab = new_tab;
+    tab_init(tab,size_2);
+    print_tab(tab,size_2);
+    
+    free(tab_c);
+    free(tab_m);
+    free(tab);
+    return EXIT_SUCCESS;
+}
\ No newline at end of file
-- 
GitLab