Академический Документы
Профессиональный Документы
Культура Документы
Bocal bocal@42.fr
Dtails administratifs
Consignes gnrales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Types dexercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II.1
II.2
II.3
II.4
II.5
II.6
II.7
II.8
II.9
II.10
Exercices
Exercice
Exercice
Exercice
Exercice
Exercice
Exercice
Exercice
Exercice
Exercice
Exercice
II
00
01
02
03
04
05
06
07
08
09
max . . . . . .
str_capitalizer
ft_strdup . . .
union . . . . .
pgcd . . . . . .
str_maxlenoc .
g_diam . . . .
death_race . .
time_lord . . .
half_life_3 . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
3
4
5
5
6
7
8
9
10
11
12
13
14
Chapitre I
Dtails administratifs
I.1
Consignes gnrales
Aucune forme de communication nest permise.
Ceci est un examen, il est interdit de discuter, dcouter de la musique, de faire
du bruit, ou de faon plus gnrale de produire toute nuisance pouvant dranger
les autres tudiants ou perturber le bon droulement de lexamen.
Vos tlphones portables et autres appareils technologiques doivent tre teints
et rangs hors datteinte. Si un tlphone sonne, toute la range concerne est
limine et doit sortir immdiatement.
Votre rpertoire home contient deux dossiers : "rendu" et "sujet".
Le rpertoire "sujet" contient le sujet de lexamen. Vous avez d le trouver, puisque
vous tes en train de lire ce document.
Le rpertoire "rendu" est un clone de votre dpot de rendu ddi cet examen.
Vous y ferez vos commits et vos pushs.
Seul le contenu que vous avez push sur votre dpot de rendu sera corrig. Le
dpt cessera daccepter les pushs lheure prcise de fin de lexamen, nattendez
donc pas le dernier moment pour pusher.
Vous ne pouvez excuter les programmes que vous avez compils vous-mme que
dans votre dossier "rendu" et ses sous-dossiers. Cela est interdit (et dailleurs impossible) ailleurs.
Chaque exercice doit tre ralis dans le rpertoire correspondant au nom indiqu
dans len-tte de chaque exercice.
Vous devez rendre, la racine du repertoire "rendu", un fichier nomm "auteur"
comprenant votre login suivi dun retour la ligne. Si ce fichier est absent ou mal
format, vous ne serez pas corrig. Le fichier auteur nest PAS rtrovalidable.
Par exemple :
$> cat -e ~/rendu/auteur
xlogin$
Examen
I.2
Le Code
Des fonctions utiles ou des fichiers supplmentaires sont parfois donns dans un
sous-rpertoire de ~/sujet/. Si ce dossier nexiste pas ou bien sil est vide, cest
que nous ne vous fournissons rien. Ce dossier sera gnralement nomm misc, mais
cela peut varier dun examen lautre.
La correction du code est automatise. Un programme testera le bon fonctionnement des exercices : la "Moulinette".
Lorsquun exercice vous demande dcrire un programme avec un ou plusieurs
fichiers nomms, votre programme sera compil avec la commande gcc -Wall
-Wextra -Werror ficher1.c fichier2.c fichiern.c -o nom_programme.
Lorsquun exercice vous demande dcrire un programme et laisse les noms et
le nombre de fichiers votre discrtion, votre programme sera compil avec la
commande : gcc -Wall -Wextra -Werror *.c -o nom_programme.
3
Examen
Enfin, lorquun exercice vous demande de rendre une fonction (et donc un seul fichier nomm), votre fichier sera compil avec la commande gcc -c -Wall -Wextra
-Werror votrefichier.c, puis nous compilerons notre main et linkerons lxcutable.
Les fonctions autorises sont indiques dans len-tte de chaque exercice. Vous
pouvez recoder toutes les fonctions qui vous semblent utiles votre guise. Lutilisation dune fonction qui nest pas autorise est assimile de la triche, et sera
sanctionne par un -42, sans appel.
Toute fonction non autorise explicitement est implicitement interdite.
I.3
Types dexercices
Il y a plusieurs types dexercices possibles, et ils ne sont pas tous corrigs de la mme
faon. Voici des explications :
Exercice obligatoire - Un exercice de ce type arrte immdiatement la correction sil nest pas russi. Comprendre par l que vous devez absolument le raliser
si vous voulez des points pour les exercices daprs.
Exercice rtrovalidable - Si vous ne rendez rien pour cet exercice, la correction
ne sarrte PAS, et vous pourrez obtenir les points de cet exercice quand mme si
vous russissez un exercice non-bonus plus loin dans lexamen. Cependant, si vous
rendez quoi que ce soit, et que vous chouez lexercice, la correction sarrte
immdiatement. Vous devez donc dcider entre tenter lexercice et risquer de perdre
les points de ceux daprs, ou ne pas le tenter, et faire directement un exercice plus
difficile.
Exercice bonus - Un exercice de ce type narrte jamais la correction sil est rat.
Il ne permet pas, par contre, dobtenir les points pour les exercices davant.
Chapitre II
Exercices
II.1
Exercice 00 - max
Exercice : 00
max
Examen
II.2
Exercice 01 - str_capitalizer
Exercice : 01
str_capitalizer
Examen
II.3
Exercice 02 - ft_strdup
Exercice : 02
ft_strdup
*ft_strdup(char *src);
Examen
II.4
Exercice 03 - union
Exercice : 03
union
crire un programme nomm union qui prend en paramtre deux chanes de caractres et qui affiche, sans doublon, les caractres qui apparaissent dans lune ou dans lautre.
Laffichage se fera dans lordre dapparition dans la ligne de commande.
Laffichage doit etre suivi dun retour la ligne.
Si le nombre de paramtres transmis est diffrent de 2, le programme affiche \n.
Exemple :
$>./union zpadinton "paqefwtdjetyiytjneytjoeyjnejeyj" | cat -e
zpadintoqefwjy$
$>./union ddf6vewg64f gtwthgdwthdwfteewhrtag6h4ffdhsd | cat -e
df6vewg4thras$
$>./union "rien" "cette phrase ne cache rien" | cat -e
rienct phas$
$>./union | cat -e
$
$>
$>./union "rien" | cat -e
$
$>
Examen
II.5
Exercice 04 - pgcd
Exercice : 04
pgcd
crire un programme qui prend deux chanes de caractres reprsentant des nombres
entiers positifs non nuls en paramtre.
Les entiers reprsents par les paramtres tiennent dans un int.
Afficher le plus grand diviseur commun ces deux nombres suivi de \n. Le PGCD
est toujours un entier positif non nul.
Si le nombre de paramtres est diffrent de 2, le programme affiche seulement \n.
Exemple :
$>
2$
$>
6$
$>
7$
$>
1$
$>
$
./pgcd 42 10 | cat -e
./pgcd 42 12 | cat -e
./pgcd 14 77 | cat -e
./pgcd 17 3 | cat -e
./pgcd | cat -e
Examen
II.6
Exercice 05 - str_maxlenoc
Exercice : 05
str_maxlenoc
Dossier de rendu : ex05/
Fichiers rendre : str_maxlenoc.c
Fonctions Autorises : write, malloc, free
Remarques : Exercice rtrovalidable
ab bac abacabccabcb
bonjour salut bonjour bonjour
xoxAoxo xoxAox
oxAox oxo
10
Examen
II.7
Exercice 06 - g_diam
Exercice : 06
g_diam
crire un programme qui prend en paramtre une chane de caractres. Cette chane
reprsente un graphe et est compose dune suite dartes entre les noeuds de ce graphe.
Les artes sont spares par un espace. Les noeuds sont reprsentes par des nombres
et les arte par deux noeuds spars par -. Par exemple, sil existe une arte entre le
noeud 2 et le noeud 3, les reprsentations possibles de cette arte sont "2-3" et "3-2".
Le programme devra afficher le nombre de noeuds du plus long chemin, suivi dun
\n, en sachant quil est impossible de passer par un noeud plus dune fois.
Si le nombre de paramtres transmis est diffrent de 1, le programme affiche \n.
Exemple :
$>./g_diam "17-5 5-8 8-2 2-8 2-8 17-21 21-2 5-2 2-6 6-14 6-12 12-19 19-14 14-42" | cat -e
10$
$>./g_diam "1-2 2-3 4-5 5-6 6-7 7-8 9-13 13-10 10-2 10-11 11-12 12-8 16-4 16-11 21-8 21-12 18-10 18-13
21-18" | cat -e
15$
11
Examen
II.8
Exercice 07 - death_race
Exercice : 07
death_race
Dossier de rendu : ex07/
Fichiers rendre : secret
Fonctions Autorises : Tout ce que vous voulez
Remarques : Exercice bonus
Vous trouverez dans lannexe du sujet un excutable death_race ainsi que sa source
(censure), race.c.
Vous devez rendre un fichier secret contenant la phrase secrte qui vous est donne
par lexcutable death_race fourni, sans aucun caractre ou saut de ligne supplmentaire.
12
Examen
II.9
Exercice 08 - time_lord
Exercice : 08
time_lord
Dossier de rendu : ex08/
Fichiers rendre : secret
Fonctions Autorises : Tout ce que vous voulez
Remarques : Exercice bonus
13
Examen
II.10
Exercice 09 - half_life_3
Exercice : 09
half_life_3
Dossier de rendu : ex09/
Fichiers rendre : secret
Fonctions Autorises : Tout ce que vous voulez, y compris les prieres vaudou
Remarques : Exercice bonus
14