aboutsummaryrefslogtreecommitdiff
path: root/exam_final/subjects
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-07-26 23:17:36 +0200
committerCharles <sircharlesaze@gmail.com>2019-07-26 23:17:36 +0200
commit264ae2f047a53ffac92271e4609038d17605738e (patch)
tree480c68814f822439850029df0e0249a2cafb8177 /exam_final/subjects
parentad9867052d496f2c2a7f120a512208fb4dd4e787 (diff)
downloadpiscine-264ae2f047a53ffac92271e4609038d17605738e.tar.gz
piscine-264ae2f047a53ffac92271e4609038d17605738e.tar.bz2
piscine-264ae2f047a53ffac92271e4609038d17605738e.zip
exam final
Diffstat (limited to 'exam_final/subjects')
-rw-r--r--exam_final/subjects/0-0-aff_z/examples.txt8
-rw-r--r--exam_final/subjects/0-0-aff_z/subject.en.txt21
-rw-r--r--exam_final/subjects/0-0-aff_z/subject.fr.txt22
-rw-r--r--exam_final/subjects/1-0-ft_putstr/subject.en.txt13
-rw-r--r--exam_final/subjects/1-0-ft_putstr/subject.fr.txt12
-rw-r--r--exam_final/subjects/10-0-count_alpha/subject.en.txt25
-rw-r--r--exam_final/subjects/10-0-count_alpha/subject.fr.txt24
-rw-r--r--exam_final/subjects/11-0-ord_alphlong/examples.txt18
-rw-r--r--exam_final/subjects/11-0-ord_alphlong/subject.en.txt40
-rw-r--r--exam_final/subjects/11-0-ord_alphlong/subject.fr.txt41
-rw-r--r--exam_final/subjects/12-0-brainfuck/examples.txt6
-rw-r--r--exam_final/subjects/12-0-brainfuck/subject.en.txt32
-rw-r--r--exam_final/subjects/12-0-brainfuck/subject.fr.txt32
-rw-r--r--exam_final/subjects/13-0-infin_add/examples.txt7
-rw-r--r--exam_final/subjects/13-0-infin_add/subject.en.txt24
-rw-r--r--exam_final/subjects/13-0-infin_add/subject.fr.txt25
-rw-r--r--exam_final/subjects/2-0-aff_last_param/subject.en.txt18
-rw-r--r--exam_final/subjects/2-0-aff_last_param/subject.fr.txt17
-rw-r--r--exam_final/subjects/3-0-rotone/examples.txt12
-rw-r--r--exam_final/subjects/3-0-rotone/subject.en.txt28
-rw-r--r--exam_final/subjects/3-0-rotone/subject.fr.txt31
-rw-r--r--exam_final/subjects/4-0-ft_strrev/subject.en.txt12
-rw-r--r--exam_final/subjects/4-0-ft_strrev/subject.fr.txt12
-rw-r--r--exam_final/subjects/5-0-last_word/examples.txt11
-rw-r--r--exam_final/subjects/5-0-last_word/subject.en.txt25
-rw-r--r--exam_final/subjects/5-0-last_word/subject.fr.txt27
-rw-r--r--exam_final/subjects/6-0-ft_atoi/subject.en.txt13
-rw-r--r--exam_final/subjects/6-0-ft_atoi/subject.fr.txt12
-rw-r--r--exam_final/subjects/7-0-ft_itoa/subject.en.txt11
-rw-r--r--exam_final/subjects/7-0-ft_itoa/subject.fr.txt12
-rw-r--r--exam_final/subjects/8-0-ft_split/subject.en.txt14
-rw-r--r--exam_final/subjects/8-0-ft_split/subject.fr.txt16
-rw-r--r--exam_final/subjects/9-0-sort_list/list.h19
-rw-r--r--exam_final/subjects/9-0-sort_list/subject.en.txt32
-rw-r--r--exam_final/subjects/9-0-sort_list/subject.fr.txt32
35 files changed, 704 insertions, 0 deletions
diff --git a/exam_final/subjects/0-0-aff_z/examples.txt b/exam_final/subjects/0-0-aff_z/examples.txt
new file mode 100644
index 0000000..f15ada3
--- /dev/null
+++ b/exam_final/subjects/0-0-aff_z/examples.txt
@@ -0,0 +1,8 @@
+$> ./aff_z "abc" | cat -e
+z$
+$> ./aff_z "dubO a POIL" | cat -e
+z$
+$> ./aff_z "zaz sent le poney" | cat -e
+z$
+$> ./aff_z | cat -e
+z$
diff --git a/exam_final/subjects/0-0-aff_z/subject.en.txt b/exam_final/subjects/0-0-aff_z/subject.en.txt
new file mode 100644
index 0000000..e11a0b3
--- /dev/null
+++ b/exam_final/subjects/0-0-aff_z/subject.en.txt
@@ -0,0 +1,21 @@
+Assignment name : aff_z
+Expected files : aff_z.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Write a program that takes a string, and displays the first 'z'
+character it encounters in it, followed by a newline. If there are no
+'z' characters in the string, the program writes 'z' followed
+by a newline. If the number of parameters is not 1, the program displays
+'z' followed by a newline.
+
+Example:
+
+$> ./aff_z "abc" | cat -e
+z$
+$> ./aff_z "RaInB0w d4Sh!" | cat -e
+z$
+$> ./aff_z "ThE C4k3 Is a L|3" | cat -e
+z$
+$> ./aff_z | cat -e
+z$ \ No newline at end of file
diff --git a/exam_final/subjects/0-0-aff_z/subject.fr.txt b/exam_final/subjects/0-0-aff_z/subject.fr.txt
new file mode 100644
index 0000000..196702e
--- /dev/null
+++ b/exam_final/subjects/0-0-aff_z/subject.fr.txt
@@ -0,0 +1,22 @@
+Assignment name : aff_z
+Expected files : aff_z.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Écrire un programme qui prend en paramètre une chaîne de caractères, et qui
+affiche sur la sortie standard le premier caractère 'z' rencontré dans
+cette chaîne, suivi de '\n'. Si aucun 'z'
+n'est rencontré dans la chaîne, le programme affiche 'z' suivi de
+'\n'. Si le nombre de paramètres est différent de 1, le
+programme affiche 'z' suivi de '\n'.
+
+Exemple:
+
+$> ./aff_z "abc" | cat -e
+z$
+$> ./aff_z "dubO a POIL" | cat -e
+z$
+$> ./aff_z "zaz sent le poney" | cat -e
+z$
+$> ./aff_z | cat -e
+z$
diff --git a/exam_final/subjects/1-0-ft_putstr/subject.en.txt b/exam_final/subjects/1-0-ft_putstr/subject.en.txt
new file mode 100644
index 0000000..243e4d8
--- /dev/null
+++ b/exam_final/subjects/1-0-ft_putstr/subject.en.txt
@@ -0,0 +1,13 @@
+Assignment name : ft_putstr
+Expected files : ft_putstr.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Write a function that displays a string on the standard output.
+
+The pointer passed to the function contains the address of the string's first
+character.
+
+Your function must be declared as follows:
+
+void ft_putstr(char *str);
diff --git a/exam_final/subjects/1-0-ft_putstr/subject.fr.txt b/exam_final/subjects/1-0-ft_putstr/subject.fr.txt
new file mode 100644
index 0000000..94183ee
--- /dev/null
+++ b/exam_final/subjects/1-0-ft_putstr/subject.fr.txt
@@ -0,0 +1,12 @@
+Assignment name : ft_putstr
+Expected files : ft_putstr.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Écrire une fonction qui affiche une chaîne de caractères sur la sortie standard.
+
+Le pointeur passé à la fonction est l'adresse du premier caractère de la chaîne.
+
+Elle devra être prototypée de la façon suivante :
+
+void ft_putstr(char *str);
diff --git a/exam_final/subjects/10-0-count_alpha/subject.en.txt b/exam_final/subjects/10-0-count_alpha/subject.en.txt
new file mode 100644
index 0000000..a057f70
--- /dev/null
+++ b/exam_final/subjects/10-0-count_alpha/subject.en.txt
@@ -0,0 +1,25 @@
+Assignment name : count_alpha
+Expected files : count_alpha.c
+Allowed functions: write, printf
+--------------------------------------------------------------------------------
+
+Write a program called count_alpha that takes a string and displays the number
+of occurences of its alphabetical characters. Other characters are not counted.
+The order is the order of occurence in the string. The display must be ended by
+a newline.
+
+The format is in the examples.
+
+If the number of arguments is not 1, display only a newline.
+
+Examples :
+$> ./count_alpha abbcc
+1a, 2b, 2c
+$> ./count_alpha "abbcc"
+1a, 2b, 2c
+$> ./count_alpha "abbcc" "dddeef" | cat -e
+$
+$> ./count_alpha "My Hyze 47y 7." | cat -e
+1m, 3y, 1h, 1z, 1e$
+$> ./count_alpha "" | cat -e
+$
diff --git a/exam_final/subjects/10-0-count_alpha/subject.fr.txt b/exam_final/subjects/10-0-count_alpha/subject.fr.txt
new file mode 100644
index 0000000..0971bc4
--- /dev/null
+++ b/exam_final/subjects/10-0-count_alpha/subject.fr.txt
@@ -0,0 +1,24 @@
+Assignment name : count_alpha
+Expected files : count_alpha.c
+Allowed functions: write, printf
+--------------------------------------------------------------------------------
+
+Écrire un programme count_alpha qui prend une chaîne et affiche le nombre d'occurences
+de ses caractères alphabétiques. Les autres caractères ne sont pas comptés. L'ordre est l'ordre d'apparition dans la chaîne.
+L'affichage doit être terminé par un newline.
+
+Le format est dans les exemples.
+
+Si le nombre d'arguments n'est pas 1, afficher juste un newline.
+
+Exemples :
+$> ./count_alpha abbcc
+1a, 2b, 2c
+$> ./count_alpha "abbcc"
+1a, 2b, 2c
+$> ./count_alpha "abbcc" "dddeef" | cat -e
+$
+$> ./count_alpha "My Hyze 47y 7." | cat -e
+1m, 3y, 1h, 1z, 1e$
+$> ./count_alpha "" | cat -e
+$
diff --git a/exam_final/subjects/11-0-ord_alphlong/examples.txt b/exam_final/subjects/11-0-ord_alphlong/examples.txt
new file mode 100644
index 0000000..c89eefd
--- /dev/null
+++ b/exam_final/subjects/11-0-ord_alphlong/examples.txt
@@ -0,0 +1,18 @@
+$>./ord_alphlong
+$
+$>./ord_alphlong "De son baton il frappa la pierre et l eau jaillit" | cat -e
+l$
+De et il la$
+eau son$
+baton$
+frappa pierre$
+jaillit$
+$>./ord_alphlong "A a b B cc ca cd" | cat -e
+A a b B$
+ca cc cd$
+$>./ord_alphlong "Pour l Imperium de l humanite" | cat -e
+l l$
+de$
+Pour$
+humanite Imperium$
+$>
diff --git a/exam_final/subjects/11-0-ord_alphlong/subject.en.txt b/exam_final/subjects/11-0-ord_alphlong/subject.en.txt
new file mode 100644
index 0000000..118a1ca
--- /dev/null
+++ b/exam_final/subjects/11-0-ord_alphlong/subject.en.txt
@@ -0,0 +1,40 @@
+Assignment name : ord_alphlong
+Expected files : *.c, *.h
+Allowed functions: write, malloc, free
+--------------------------------------------------------------------------------
+
+Write a program that takes a string as a parameter and prints its words sorted
+in length order then in alphabetical order: when words are alphabetically
+equals (for example aA and Aa), original order must remain (lower and upper
+case are the same in alphabetical order). If there are duplicates, they must
+remain.
+
+If number of parameters is different from 1, the program prints
+\n.
+
+There will be only spaces, tabs and alphanumeric caracters in strings.
+
+You'll print only one space between each word. Nothing before the first and
+after the last word of each line.
+
+Examples:
+
+$>./ord_alphlong
+$
+$>./ord_alphlong "After all this time Always said Snape" | cat -e
+all$
+said this time$
+After Snape$
+Always$
+$>./ord_alphlong "A a b B cc ca cd" | cat -e
+A a b B$
+ca cc cd$
+$>./ord_alphlong "Never take a gamble you are not prepared to lose" | cat -e
+a$
+to$
+are not you$
+lose take$
+Never$
+gamble$
+prepared$
+$>
diff --git a/exam_final/subjects/11-0-ord_alphlong/subject.fr.txt b/exam_final/subjects/11-0-ord_alphlong/subject.fr.txt
new file mode 100644
index 0000000..047ea4c
--- /dev/null
+++ b/exam_final/subjects/11-0-ord_alphlong/subject.fr.txt
@@ -0,0 +1,41 @@
+Assignment name : ord_alphlong
+Expected files : *.c, *.h
+Allowed functions: write, malloc, free
+--------------------------------------------------------------------------------
+
+Écrire un programme qui prend en paramètre une chaîne de caractères et qui
+affiche les mots de cette chaîne par ordre de longueur puis dans l'ordre
+alphabétique, avec une petite variante: En cas d'égalité alphabétique (par
+exemple aA et Aa) les mots doivent rester dans l'ordre où ils
+étaient dans la chaîne d'origine (Les majuscules et minuscules sont identiques
+dans l'ordre alphabétique). En cas de doublons, les doublons sont conservés.
+
+Si le nombre de paramètres transmis est différent de 1, le programme affiche
+\n.
+
+Dans les chaînes, il n'y aura que des espaces, des tabulations et des
+caractères alphanumériques.
+
+Vous n'afficherez qu'un espace entre les mots. Aucun avant le premier ni après
+le dernier de chaque ligne.
+
+Exemples:
+
+$>./ord_alphlong
+$
+$>./ord_alphlong "De son baton il frappa la pierre et l eau jaillit" | cat -e
+l$
+De et il la$
+eau son$
+baton$
+frappa pierre$
+jaillit$
+$>./ord_alphlong "A a b B cc ca cd" | cat -e
+A a b B$
+ca cc cd$
+$>./ord_alphlong "Pour l Imperium de l humanite" | cat -e
+l l$
+de$
+Pour$
+humanite Imperium$
+$>
diff --git a/exam_final/subjects/12-0-brainfuck/examples.txt b/exam_final/subjects/12-0-brainfuck/examples.txt
new file mode 100644
index 0000000..b5bc38a
--- /dev/null
+++ b/exam_final/subjects/12-0-brainfuck/examples.txt
@@ -0,0 +1,6 @@
+$>./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
+Hello World!$
+$>./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
+Hi$
+$>./brainfuck | cat -e
+$
diff --git a/exam_final/subjects/12-0-brainfuck/subject.en.txt b/exam_final/subjects/12-0-brainfuck/subject.en.txt
new file mode 100644
index 0000000..a926e71
--- /dev/null
+++ b/exam_final/subjects/12-0-brainfuck/subject.en.txt
@@ -0,0 +1,32 @@
+Assignment name : brainfuck
+Expected files : *.c, *.h
+Allowed functions: write, malloc, free
+--------------------------------------------------------------------------------
+
+Write a Brainfuck interpreter program.
+The source code will be given as first parameter.
+The code will always be valid, with no more than 4096 operations.
+Brainfuck is a minimalist language. It consists of an array of bytes
+(in our case, let's say 2048 bytes) initialized to zero,
+and a pointer to its first byte.
+
+Every operator consists of a single character :
+- '>' increment the pointer ;
+- '<' decrement the pointer ;
+- '+' increment the pointed byte ;
+- '-' decrement the pointed byte ;
+- '.' print the pointed byte on standard output ;
+- '[' go to the matching ']' if the pointed byte is 0 (while start) ;
+- ']' go to the matching '[' if the pointed byte is not 0 (while end).
+
+Any other character is a comment.
+
+Examples:
+
+$>./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]
+>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
+Hello World!$
+$>./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
+Hi$
+$>./brainfuck | cat -e
+$
diff --git a/exam_final/subjects/12-0-brainfuck/subject.fr.txt b/exam_final/subjects/12-0-brainfuck/subject.fr.txt
new file mode 100644
index 0000000..2a15973
--- /dev/null
+++ b/exam_final/subjects/12-0-brainfuck/subject.fr.txt
@@ -0,0 +1,32 @@
+Assignment name : brainfuck
+Expected files : *.c, *.h
+Allowed functions: write, malloc, free
+--------------------------------------------------------------------------------
+
+Écrire un programme capable d'interpréter du Brainfuck.
+Le code source sera passé en premier paramètre.
+Le code transmis sera toujours valide, et ne comportera pas plus de 4096 opérations.
+Le Brainfuck est un langage minimaliste constitué d'un tableau d'octets
+(dans le cadre de cet exercice, 2048 octets) tous initialisés à 0,
+et d'un pointeur sur son premier octet.
+
+Voici les différents opérateurs du Brainfuck :
+- '>' incrémente le pointeur ;
+- '<' décrémente le pointeur ;
+- '+' incrémente l'octet pointé ;
+- '-' décrémente l'octet pointé ;
+- '.' affiche l'octet pointé sur la sortie standard ;
+- '[' va au ']' correspondant si l'octet pointé est égal à 0 (début de boucle) ;
+- ']' va au '[' correspondant si l'octet pointé est différent de 0 (fin de boucle).
+
+Tout autre caractère est un commentaire.
+
+Exemples:
+
+$>./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]
+>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
+Hello World!$
+$>./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
+Hi$
+$>./brainfuck | cat -e
+$
diff --git a/exam_final/subjects/13-0-infin_add/examples.txt b/exam_final/subjects/13-0-infin_add/examples.txt
new file mode 100644
index 0000000..79fffd5
--- /dev/null
+++ b/exam_final/subjects/13-0-infin_add/examples.txt
@@ -0,0 +1,7 @@
+$> ./infin_add "879879087" "67548976597" | cat -e
+68428855684$
+$> ./infin_add "-876435" "987143265" | cat -e
+986266830$
+$> ./infin_add "-807965" "-34532"
+-842497
+$>
diff --git a/exam_final/subjects/13-0-infin_add/subject.en.txt b/exam_final/subjects/13-0-infin_add/subject.en.txt
new file mode 100644
index 0000000..a531aa1
--- /dev/null
+++ b/exam_final/subjects/13-0-infin_add/subject.en.txt
@@ -0,0 +1,24 @@
+Assignment name : infin_add
+Expected files : *.c, *.h
+Allowed functions: write, malloc, free
+--------------------------------------------------------------------------------
+
+Write a program that takes as a parameter two strings that represent two
+numbers potentially infinit, and displays on stdout the result of the addition
+of these two numbers, followed by a '\n'.
+
+A negative number will always be prefixed by one and only one -. The only
+characters that can be part of the strings are digits and the sign -.
+
+Both parameters will always be well formated, and you will always have
+exactly two parameters, no tricks.
+
+Example:
+
+$> ./infin_add "879879087" "67548976597" | cat -e
+68428855684$
+$> ./infin_add "-876435" "987143265" | cat -e
+986266830$
+$> ./infin_add "-807965" "-34532"
+-842497
+$>
diff --git a/exam_final/subjects/13-0-infin_add/subject.fr.txt b/exam_final/subjects/13-0-infin_add/subject.fr.txt
new file mode 100644
index 0000000..3f780f8
--- /dev/null
+++ b/exam_final/subjects/13-0-infin_add/subject.fr.txt
@@ -0,0 +1,25 @@
+Assignment name : infin_add
+Expected files : *.c, *.h
+Allowed functions: write, malloc, free
+--------------------------------------------------------------------------------
+
+Écrire un programme qui prend en paramètres deux chaînes de caractères
+représentant des nombres de longueur potentiellement infinie, et affiche sur la
+sortie standard le résultat de l'addition de ces deux nombres, suivi d'un '\n'.
+
+Un nombre négatif sera précédé d'un et un seul signe -. Les seuls
+caractères qui feront potentiellement partie de ces chaînes sont les chiffres
+et le signe -.
+
+Tous les paramètres seront bien formatés, et il y a toujours exactement deux
+paramètres, pas de pièges.
+
+Exemple:
+
+$> ./infin_add "879879087" "67548976597" | cat -e
+68428855684$
+$> ./infin_add "-876435" "987143265" | cat -e
+986266830$
+$> ./infin_add "-807965" "-34532"
+-842497
+$>
diff --git a/exam_final/subjects/2-0-aff_last_param/subject.en.txt b/exam_final/subjects/2-0-aff_last_param/subject.en.txt
new file mode 100644
index 0000000..847abfe
--- /dev/null
+++ b/exam_final/subjects/2-0-aff_last_param/subject.en.txt
@@ -0,0 +1,18 @@
+Assignment name : aff_last_param
+Expected files : aff_last_param.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Write a program that takes strings as arguments, and displays its last
+argument followed by a newline.
+
+If the number of arguments is less than 1, the program displays a newline.
+
+Examples:
+
+$> ./aff_last_param "Zelda" "is" "a" "boy" | cat -e
+boy$
+$> ./aff_last_param "I read this on internet !" | cat -e
+I read this on internet !$
+$> ./aff_last_param | cat -e
+$
diff --git a/exam_final/subjects/2-0-aff_last_param/subject.fr.txt b/exam_final/subjects/2-0-aff_last_param/subject.fr.txt
new file mode 100644
index 0000000..d1de6f0
--- /dev/null
+++ b/exam_final/subjects/2-0-aff_last_param/subject.fr.txt
@@ -0,0 +1,17 @@
+Assignment name : aff_last_param
+Expected files : aff_last_param.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Écrire un programme qui prend des chaînes, et affiche son dernier argument suivi d'un newline.
+
+S'il y a moins d'un argument, le programme affiche juste un newline.
+
+Exemples:
+
+$> ./aff_last_param "zaz" "mange" "des" "chats" | cat -e
+chats$
+$> ./aff_last_param "j'aime le savon" | cat -e
+j'aime le savon$
+$> ./aff_last_param | cat -e
+$
diff --git a/exam_final/subjects/3-0-rotone/examples.txt b/exam_final/subjects/3-0-rotone/examples.txt
new file mode 100644
index 0000000..b8db87f
--- /dev/null
+++ b/exam_final/subjects/3-0-rotone/examples.txt
@@ -0,0 +1,12 @@
+$>./rotone "abc"
+bcd
+$>./rotone "Les stagiaires du staff ne sentent pas toujours tres bon." | cat -e
+Mft tubhjbjsft ev tubgg of tfoufou qbt upvkpvst usft cpo.$
+$>./rotone "AkjhZ zLKIJz , 23y " | cat -e
+BlkiA aMLJKa , 23z $
+$>./rotone | cat -e
+$
+$>
+$>./rotone "" | cat -e
+$
+$>
diff --git a/exam_final/subjects/3-0-rotone/subject.en.txt b/exam_final/subjects/3-0-rotone/subject.en.txt
new file mode 100644
index 0000000..093fc7a
--- /dev/null
+++ b/exam_final/subjects/3-0-rotone/subject.en.txt
@@ -0,0 +1,28 @@
+Assignment name : rotone
+Expected files : rotone.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Write a program that takes a string and displays it, replacing each of its
+letters by the next one in alphabetical order.
+
+'z' becomes 'a' and 'Z' becomes 'A'. Case remains unaffected.
+
+The output will be followed by a \n.
+
+If the number of arguments is not 1, the program displays \n.
+
+Example:
+
+$>./rotone "abc"
+bcd
+$>./rotone "Les stagiaires du staff ne sentent pas toujours tres bon." | cat -e
+Mft tubhjbjsft ev tubgg of tfoufou qbt upvkpvst usft cpo.$
+$>./rotone "AkjhZ zLKIJz , 23y " | cat -e
+BlkiA aMLJKa , 23z $
+$>./rotone | cat -e
+$
+$>
+$>./rotone "" | cat -e
+$
+$>
diff --git a/exam_final/subjects/3-0-rotone/subject.fr.txt b/exam_final/subjects/3-0-rotone/subject.fr.txt
new file mode 100644
index 0000000..07e5004
--- /dev/null
+++ b/exam_final/subjects/3-0-rotone/subject.fr.txt
@@ -0,0 +1,31 @@
+Assignment name : rotone
+Expected files : rotone.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Écrire un programme nommé rotone, qui prend en paramètre une chaîne de
+caractères, et qui affiche cette chaîne en remplaçant chaque caractère
+alphabétique par le caractère suivant dans l'ordre alphabétique.
+
+'z' devient 'a' et 'Z' devient 'A'. Les majuscules restent des majuscules, les
+minuscules restent des minuscules.
+
+L'affichage se termine toujours par un retour à la ligne.
+
+Si le nombre de paramètres transmis est différent de 1, le programme affiche
+'\n'.
+
+Exemple:
+
+$>./rotone "abc"
+bcd
+$>./rotone "Les stagiaires du staff ne sentent pas toujours tres bon." | cat -e
+Mft tubhjbjsft ev tubgg of tfoufou qbt upvkpvst usft cpo.$
+$>./rotone "AkjhZ zLKIJz , 23y " | cat -e
+BlkiA aMLJKa , 23z $
+$>./rotone | cat -e
+$
+$>
+$>./rotone "" | cat -e
+$
+$>
diff --git a/exam_final/subjects/4-0-ft_strrev/subject.en.txt b/exam_final/subjects/4-0-ft_strrev/subject.en.txt
new file mode 100644
index 0000000..6c31580
--- /dev/null
+++ b/exam_final/subjects/4-0-ft_strrev/subject.en.txt
@@ -0,0 +1,12 @@
+Assignment name : ft_strrev
+Expected files : ft_strrev.c
+Allowed functions:
+--------------------------------------------------------------------------------
+
+Write a function that reverses a string by modifying it.
+
+It must return its parameter.
+
+Your function must be declared as follows:
+
+char *ft_strrev(char *str);
diff --git a/exam_final/subjects/4-0-ft_strrev/subject.fr.txt b/exam_final/subjects/4-0-ft_strrev/subject.fr.txt
new file mode 100644
index 0000000..f6eb115
--- /dev/null
+++ b/exam_final/subjects/4-0-ft_strrev/subject.fr.txt
@@ -0,0 +1,12 @@
+Assignment name : ft_strrev
+Expected files : ft_strrev.c
+Allowed functions:
+--------------------------------------------------------------------------------
+
+Écrire une fonction qui inverse une chaîne de caractères en la modifiant.
+
+Elle devra renvoyer son paramètre.
+
+Votre fonction devra être prototypée de la façon suivante :
+
+char *ft_strrev(char *str);
diff --git a/exam_final/subjects/5-0-last_word/examples.txt b/exam_final/subjects/5-0-last_word/examples.txt
new file mode 100644
index 0000000..63250f2
--- /dev/null
+++ b/exam_final/subjects/5-0-last_word/examples.txt
@@ -0,0 +1,11 @@
+$> ./last_word "FOR PONY" | cat -e
+PONY$
+$> ./last_word "this ... is sparta, then again, maybe not" | cat -e
+not$
+$> ./last_word " " | cat -e
+$
+$> ./last_word "a" "b" | cat -e
+$
+$> ./last_word " lorem,ipsum " | cat -e
+lorem,ipsum$
+$>
diff --git a/exam_final/subjects/5-0-last_word/subject.en.txt b/exam_final/subjects/5-0-last_word/subject.en.txt
new file mode 100644
index 0000000..35d242c
--- /dev/null
+++ b/exam_final/subjects/5-0-last_word/subject.en.txt
@@ -0,0 +1,25 @@
+Assignment name : last_word
+Expected files : last_word.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Write a program that takes a string and displays its last word followed by a \n.
+
+A word is a section of string delimited by spaces/tabs or by the start/end of
+the string.
+
+If the number of parameters is not 1, or there are no words, display a newline.
+
+Example:
+
+$> ./last_word "FOR PONIES" | cat -e
+PONIES$
+$> ./last_word "this ... is sparta, then again, maybe not" | cat -e
+not$
+$> ./last_word " " | cat -e
+$
+$> ./last_word "a" "b" | cat -e
+$
+$> ./last_word " lorem,ipsum " | cat -e
+lorem,ipsum$
+$>
diff --git a/exam_final/subjects/5-0-last_word/subject.fr.txt b/exam_final/subjects/5-0-last_word/subject.fr.txt
new file mode 100644
index 0000000..a488c2e
--- /dev/null
+++ b/exam_final/subjects/5-0-last_word/subject.fr.txt
@@ -0,0 +1,27 @@
+Assignment name : last_word
+Expected files : last_word.c
+Allowed functions: write
+--------------------------------------------------------------------------------
+
+Écrire un programme qui prend une chaîne de caractères en paramètre, et qui
+affiche le dernier mot de cette chaîne, suivi d'un '\n'.
+
+On appelle "mot" une portion de chaîne de caractères délimitée soit par des
+espaces et/ou des tabulations, soit par le début / fin de la chaîne.
+
+Si le nombre de paramètres transmis est différent de 1, ou s'il n'y a aucun mot
+à afficher, le programme affiche '\n'.
+
+Exemple:
+
+$> ./last_word "FOR PONY" | cat -e
+PONY$
+$> ./last_word "this ... is sparta, then again, maybe not" | cat -e
+not$
+$> ./last_word " " | cat -e
+$
+$> ./last_word "a" "b" | cat -e
+$
+$> ./last_word " lorem,ipsum " | cat -e
+lorem,ipsum$
+$>
diff --git a/exam_final/subjects/6-0-ft_atoi/subject.en.txt b/exam_final/subjects/6-0-ft_atoi/subject.en.txt
new file mode 100644
index 0000000..ebfe92b
--- /dev/null
+++ b/exam_final/subjects/6-0-ft_atoi/subject.en.txt
@@ -0,0 +1,13 @@
+Assignment name : ft_atoi
+Expected files : ft_atoi.c
+Allowed functions: None
+--------------------------------------------------------------------------------
+
+Write a function that converts the string argument str to an integer (type int)
+and returns it.
+
+It works much like the standard atoi(const char *str) function, see the man.
+
+Your function must be declared as follows:
+
+int ft_atoi(const char *str);
diff --git a/exam_final/subjects/6-0-ft_atoi/subject.fr.txt b/exam_final/subjects/6-0-ft_atoi/subject.fr.txt
new file mode 100644
index 0000000..2c9977c
--- /dev/null
+++ b/exam_final/subjects/6-0-ft_atoi/subject.fr.txt
@@ -0,0 +1,12 @@