Piscine C
Mini-projet 02 : evalexpr
Staff 42 piscine@[Link]
Résumé: Ce document est le sujet du mini-projet 02 de la piscine C de 42.
Table des matières
I Préambule 2
II Consignes 3
III Sujet 5
1
Chapitre I
Préambule
Voici ce que Wikipedia a à dire sur Pinkie Pie :
Pinkie Pie est une pouliche à la robe rose avec une crinière et une queue
magenta. Sa marque de beauté se compose de trois ballons. Son caractère est
celui d’un poney enjoué et blagueur, bavard, un petit peu brusque et très
imprévisible. Elle a toujours le dernier mot et ne se décourage jamais. C’est
elle qui organise les fêtes de Ponyville et elle s’occupe à mi-temps d’une
pâtisserie-confiserie. Bien que toutes les protagonistes chantent
occasionnellement au fil de la série, c’est le plus souvent Pinkie Pie qui
choisit de s’exprimer en musique. Pinkie Pie est proches des personnages de
cartoon comiques traditionnels, apparaissant par le haut de l’écran, comptant
sur 6 sabots, faisant de la corde à sauter sans personne pour tenir la corde
ou encore en apparaissant avec des objets sorties de nul part tel que le Party
Canon. Elle habitait a une ferme aux rochers quand elle était poulaine.
Elle représente le rire dans les Éléments de l’harmonie.
N’oubliez pas que sharing kindness, it’s an easy feat.
2
Chapitre II
Consignes
• Seule cette page servira de référence : ne vous fiez pas aux bruits de couloir.
• Le sujet peut changer jusqu’à une heure avant le rendu.
• Attention aux droits de vos fichiers et de vos répertoires.
• Vous devez suivre la procédure de rendu pour tous vos exercices.
• Vos exercices seront corrigés par vos camarades de piscine.
• En plus de vos camarades, vous serez corrigés par un programme appelé la Mouli-
nette.
• La Moulinette est très stricte dans sa notation. Elle est totalement automatisée. Il
est impossible de discuter de sa note avec elle. Soyez d’une rigueur irréprochable
pour éviter les surprises.
• La Moulinette n’est pas très ouverte d’esprit. Elle ne cherche pas à comprendre le
code qui ne respecte pas la Norme.
• L’utilisation d’une fonction interdite est un cas de triche. Toute triche est sanction-
née par la note de -42.
• Si ft_putchar() est une fonction autorisée, nous compilerons avec notre ft_putchar.c.
• Vous ne devrez rendre une fonction main() que si nous vous demandons un programme.
• Les exercices sont très précisément ordonnés du plus simple au plus complexe.
En aucun cas nous ne porterons attention ni ne prendrons en compte un exercice
complexe si un exercice plus simple n’est pas parfaitement réussi.
• La Moulinette compile avec les flags -Wall -Wextra -Werror.
• Si votre programme ne compile pas, vous aurez 0.
• Les exercices shell doivent s’éxcuter avec /bin/sh.
• Vous ne devez laisser dans votre répertoire aucun autre fichier que ceux explicite-
ment specifiés par les énoncés des exercices.
3
Piscine C Mini-projet 02 : evalexpr
• Vous avez une question ? Demandez à votre voisin de droite. Sinon, essayez avec
votre voisin de gauche.
• Votre manuel de référence s’appelle Google / man / Internet / ....
• Pensez à discuter sur le forum Piscine de votre Intra !
• Lisez attentivement les exemples. Ils pourraient bien requérir des choses qui ne sont
pas autrement précisées dans le sujet...
• Réfléchissez. Par pitié, par Odin ! Nom d’une pipe.
4
Chapitre III
Sujet
Exercice : 00
eval_expr
Dossier de rendu : ex00/
Fichiers à rendre : Makefile, et les fichiers de votre programme
Fonctions Autorisées : write, malloc, free
Remarques : n/a
• Il s’agit d’écrire un programme nommé eval_expr.
• Il contiendra une fonction eval_expr qui devra être prototypée de la façon suivante :
int eval_expr(char *str);
• Cette fonction reçoit une chaîne de caractères en paramètre représentant une ex-
pression arithmétique. Par exemple :
"3 + 42 * (1 - 2 / (3 + 4) - 1 % 21) + 1"
• Cette expression devra être calculée et le résultat renvoyé comme valeur de retour
par la fonction.
• La chaîne qui vous sera transmise sera valide (pas de bug, pas d’adresse bidon, pas
de lettre ni d’erreur de syntaxe, pas de division par zéro, etc.).
• Les cinq opérateurs suivant devront être supportés :
◦ + pour l’addition
◦ - pour la soustraction
◦ / pour la division
◦ * pour la multiplication
◦ % pour le modulo
5
Piscine C Mini-projet 02 : evalexpr
• La fonction devra également gérer un nombre quelconque de parenthèses.
• Votre main doit être celui-ci :
int main(int ac, char **av)
{
if (ac > 1)
{
ft_putnbr(eval_expr(av[1]));
ft_putchar(’\n’);
}
return (0);
}