On a scale of 1 to 10 (where Exam 00 is a 2 and Exam Final is a 9.5), ranks as a 7.5 . It is harder than the algorithmic exams because concurrency is non-deterministic. A bug might not appear until the 100th run, but Moulinette will find it.
When copying a class that manages pointers, copying raw memory addresses causes two objects to point to the same data. When one object is destroyed, the other is left with a dangling pointer. Always use .clone() methods to allocate distinct copies.
Do not wait until you have written all three modules to run your compiler. Write one class, compile it with clang++ -Wall -Wextra -Werror -std=c++98 , fix the errors, and only move forward when it is flawless.
Hands-on coding in a sandbox environment without internet access. 42 exam 05
In normal projects, you might ignore exceptions if "it probably won't happen." In Exam 05, you must throw GradeTooHighException and GradeTooLowException . The tester specifically looks for the try/catch blocks. If a Bureaucrat with grade 150 tries to sign a grade 1 form and the program doesn't throw? Instant fail.
Because you cannot allocate an array, you must use O(n²) pointer swapping.
Do not reinvent the wheel unless the subject strictly forbids it. Using std::vector , std::map , or std::set properly will save you hours of manual memory management and debugging. 4. Practice in the exam-shell On a scale of 1 to 10 (where
: You must implement a Warlock who can "learn," "forget," and "launch" spells.
The final module abstracts collection management away from the base entity into its own dedicated registry class (e.g., SpellBook and TargetGenerator ).
The twist? The subject is usually a variation of the exercise (Interns, ShrubberyCreationForm, RobotomyRequestForm, PresidentialPardonForm). When copying a class that manages pointers, copying
You are asked to create a system where a Warlock learns ASpell objects and casts them at ATarget objects. This requires implementing abstract base classes, concrete spell/target derivations, and a container class (like a SpellBook ) to manage known spells.
Standard vector, map, string, and basic I/O stream functions. Memory Management: Zero memory leaks tolerated.