From f9e508d5ef9c9bef1351d3785b61910d2f06e7a8 Mon Sep 17 00:00:00 2001 From: Tanguy MAZE Date: Sat, 22 Jun 2019 18:23:35 +0200 Subject: [PATCH] init --- exam-basedir01/docs/GUIDELINES.en.md | 55 ++++++ exam-basedir01/docs/GUIDELINES.fr.md | 54 ++++++ exam-basedir01/docs/GUIDELINES.ro.md | 56 ++++++ exam-basedir01/rendu | 1 + exam-basedir01/subjects/aff_z/examples.txt | 8 + exam-basedir01/subjects/aff_z/subject.en.txt | 21 +++ exam-basedir01/subjects/aff_z/subject.fr.txt | 22 +++ exam-basedir01/subjects/aff_z/subject.ro.txt | 19 ++ .../subjects/expand_str/examples.txt | 9 + .../subjects/expand_str/subject.en.txt | 26 +++ .../subjects/expand_str/subject.fr.txt | 26 +++ .../subjects/expand_str/subject.ro.txt | 25 +++ exam-basedir01/subjects/fprime/examples.txt | 16 ++ exam-basedir01/subjects/fprime/subject.en.txt | 33 ++++ exam-basedir01/subjects/fprime/subject.fr.txt | 35 ++++ exam-basedir01/subjects/fprime/subject.ro.txt | 34 ++++ .../subjects/ft_split/subject.en.txt | 14 ++ .../subjects/ft_split/subject.fr.txt | 16 ++ .../subjects/ft_split/subject.ro.txt | 15 ++ "exam-basedir01/subjects/ft_swap/\\" | 12 ++ .../subjects/ft_swap/subject.en.txt | 11 ++ .../subjects/ft_swap/subject.fr.txt | 11 ++ .../subjects/ft_swap/subject.ro.txt | 12 ++ exam-basedir01/subjects/inter/examples.txt | 9 + exam-basedir01/subjects/inter/subject.en.txt | 23 +++ exam-basedir01/subjects/inter/subject.fr.txt | 23 +++ exam-basedir01/subjects/inter/subject.ro.txt | 22 +++ exam-basedir01/traces/0-0_aff_z.trace | 72 ++++++++ exam-basedir01/traces/1-0_ft_swap.trace | 93 ++++++++++ exam-basedir01/traces/2-0_inter.trace | 154 ++++++++++++++++ exam-basedir01/traces/3-0_expand_str.trace | 160 +++++++++++++++++ exam-basedir01/traces/4-0_ft_split.trace | 69 ++++++++ exam-basedir02/docs/GUIDELINES.en.md | 55 ++++++ exam-basedir02/docs/GUIDELINES.fr.md | 54 ++++++ exam-basedir02/docs/GUIDELINES.ro.md | 56 ++++++ exam-basedir02/rendu | 1 + exam-basedir02/subjects/aff_a/subject.en.txt | 20 +++ exam-basedir02/subjects/aff_a/subject.fr.txt | 20 +++ exam-basedir02/subjects/aff_a/subject.ro.txt | 20 +++ exam-basedir02/subjects/fprime/examples.txt | 16 ++ exam-basedir02/subjects/fprime/subject.en.txt | 33 ++++ exam-basedir02/subjects/fprime/subject.fr.txt | 35 ++++ exam-basedir02/subjects/fprime/subject.ro.txt | 34 ++++ .../subjects/ft_atoi_base/subject.en.txt | 20 +++ .../subjects/ft_atoi_base/subject.fr.txt | 21 +++ .../subjects/ft_itoa/subject.en.txt | 11 ++ .../subjects/ft_itoa/subject.fr.txt | 12 ++ .../subjects/ft_itoa/subject.ro.txt | 10 ++ .../subjects/ft_itoa_base/subject.en.txt | 20 +++ .../subjects/ft_itoa_base/subject.fr.txt | 21 +++ .../subjects/last_word/examples.txt | 11 ++ .../subjects/last_word/subject.en.txt | 25 +++ .../subjects/last_word/subject.fr.txt | 27 +++ .../subjects/last_word/subject.ro.txt | 27 +++ exam-basedir02/subjects/rostring/examples.txt | 12 ++ .../subjects/rostring/subject.en.txt | 31 ++++ .../subjects/rostring/subject.fr.txt | 31 ++++ .../subjects/rostring/subject.ro.txt | 31 ++++ exam-basedir02/subjects/rotone/examples.txt | 12 ++ exam-basedir02/subjects/rotone/subject.en.txt | 28 +++ exam-basedir02/subjects/rotone/subject.fr.txt | 31 ++++ exam-basedir02/subjects/rotone/subject.ro.txt | 30 ++++ exam-basedir02/traces/0-0_aff_a.trace | 72 ++++++++ exam-basedir02/traces/1-0_rotone.trace | 148 ++++++++++++++++ exam-basedir02/traces/2-0_last_word.trace | 154 ++++++++++++++++ exam-basedir02/traces/3-0_ft_atoi_base.trace | 160 +++++++++++++++++ exam-basedir02/traces/4-0_ft_itoa_base.trace | 67 +++++++ exam-basedir02/traces/4-1_ft_itoa.trace | 94 ++++++++++ exam-basedir02/traces/4-2_fprime.trace | 71 ++++++++ exam-basedir03/docs/GUIDELINES.en.md | 55 ++++++ exam-basedir03/docs/GUIDELINES.fr.md | 54 ++++++ exam-basedir03/docs/GUIDELINES.ro.md | 56 ++++++ exam-basedir03/rendu | 1 + exam-basedir03/subjects/aff_z/examples.txt | 8 + exam-basedir03/subjects/aff_z/subject.en.txt | 21 +++ exam-basedir03/subjects/aff_z/subject.fr.txt | 22 +++ exam-basedir03/subjects/aff_z/subject.ro.txt | 19 ++ .../subjects/brainfuck/examples.txt | 6 + .../subjects/brainfuck/subject.en.txt | 32 ++++ .../subjects/brainfuck/subject.fr.txt | 32 ++++ .../subjects/brainfuck/subject.ro.txt | 32 ++++ .../subjects/flood_fill/subject.en.txt | 60 +++++++ .../subjects/flood_fill/subject.fr.txt | 62 +++++++ exam-basedir03/subjects/flood_fill/t_point.h | 10 ++ .../subjects/ft_atoi_base/subject.en.txt | 20 +++ .../subjects/ft_atoi_base/subject.fr.txt | 21 +++ .../subjects/ft_itoa/subject.en.txt | 11 ++ .../subjects/ft_itoa/subject.fr.txt | 12 ++ .../subjects/ft_itoa/subject.ro.txt | 10 ++ .../subjects/ft_putstr/subject.en.txt | 13 ++ .../subjects/ft_putstr/subject.fr.txt | 12 ++ .../subjects/ft_putstr/subject.ro.txt | 12 ++ .../subjects/ft_rrange/subject.en.txt | 19 ++ .../subjects/ft_rrange/subject.fr.txt | 19 ++ .../subjects/ft_rrange/subject.ro.txt | 22 +++ .../subjects/ft_split/subject.en.txt | 14 ++ .../subjects/ft_split/subject.fr.txt | 16 ++ .../subjects/ft_split/subject.ro.txt | 15 ++ exam-basedir03/subjects/max/subject.en.txt | 15 ++ exam-basedir03/subjects/max/subject.fr.txt | 15 ++ exam-basedir03/subjects/max/subject.ro.txt | 15 ++ exam-basedir03/subjects/moment/subject.en.txt | 29 +++ exam-basedir03/subjects/moment/subject.fr.txt | 28 +++ .../subjects/rev_wstr/subject.en.txt | 29 +++ .../subjects/rev_wstr/subject.fr.txt | 29 +++ .../subjects/rev_wstr/subject.ro.txt | 27 +++ exam-basedir03/traces/0-0_aff_z.trace | 72 ++++++++ exam-basedir03/traces/1-0_ft_putstr.trace | 88 ++++++++++ exam-basedir03/traces/2-0_max.trace | 154 ++++++++++++++++ exam-basedir03/traces/3-0_ft_rrange.trace | 59 +++++++ exam-basedir03/traces/3-1_ft_atoi_base.trace | 166 ++++++++++++++++++ exam-basedir03/traces/4-0_flood_fill.trace | 65 +++++++ exam-basedir03/traces/4-1_brainfuck.trace | 65 +++++++ exam-basedir03/traces/4-2_ft_split.trace | 124 +++++++++++++ exam-basedir03/traces/4-3_ft_itoa.trace | 103 +++++++++++ exam-basedir03/traces/4-4_moment.trace | 77 ++++++++ exam-basedir04/docs/GUIDELINES.en.md | 55 ++++++ exam-basedir04/docs/GUIDELINES.fr.md | 54 ++++++ exam-basedir04/docs/GUIDELINES.ro.md | 56 ++++++ exam-basedir04/rendu | 1 + .../subjects/rpn_calc/subject.en.txt | 50 ++++++ .../subjects/rpn_calc/subject.fr.txt | 51 ++++++ .../subjects/sort_int_tab/subject.en.txt | 15 ++ .../subjects/sort_int_tab/subject.fr.txt | 15 ++ .../subjects/sort_int_tab/subject.ro.txt | 15 ++ exam-basedir04/traces/4-0_sort_int_tab.trace | 47 +++++ exam-basedir05/docs/GUIDELINES.en.md | 55 ++++++ exam-basedir05/docs/GUIDELINES.fr.md | 54 ++++++ exam-basedir05/docs/GUIDELINES.ro.md | 56 ++++++ exam-basedir05/rendu | 1 + .../subjects/brackets/subject.en.txt | 31 ++++ .../subjects/brackets/subject.fr.txt | 32 ++++ .../subjects/ft_itoa_base/subject.en.txt | 20 +++ .../subjects/ft_itoa_base/subject.fr.txt | 21 +++ .../subjects/ft_split/subject.en.txt | 14 ++ .../subjects/ft_split/subject.fr.txt | 16 ++ .../subjects/ft_split/subject.ro.txt | 15 ++ exam-basedir05/traces/4-0_ft_split.trace | 121 +++++++++++++ exam-basedir05/traces/4-1_ft_itoa_base.trace | 148 ++++++++++++++++ exam-basedir05/traces/5-0_brackets.trace | 94 ++++++++++ exam-basedir06/docs/GUIDELINES.en.md | 55 ++++++ exam-basedir06/docs/GUIDELINES.fr.md | 54 ++++++ exam-basedir06/docs/GUIDELINES.ro.md | 56 ++++++ exam-basedir06/rendu | 1 + .../subjects/brackets/subject.en.txt | 31 ++++ .../subjects/brackets/subject.fr.txt | 32 ++++ .../subjects/cycle_detector/subject.en.txt | 28 +++ .../subjects/cycle_detector/subject.fr.txt | 28 +++ .../subjects/rpn_calc/subject.en.txt | 50 ++++++ .../subjects/rpn_calc/subject.fr.txt | 51 ++++++ exam-basedir06/traces/5-0_brackets.trace | 29 +++ .../traces/5-1_cycle_detector.trace | 45 +++++ exam-basedir07/docs/GUIDELINES.en.md | 55 ++++++ exam-basedir07/docs/GUIDELINES.fr.md | 54 ++++++ exam-basedir07/docs/GUIDELINES.ro.md | 56 ++++++ exam-basedir07/rendu | 1 + .../subjects/biggest_pal/subject.en.txt | 31 ++++ .../subjects/biggest_pal/subject.fr.txt | 31 ++++ .../subjects/brackets/subject.en.txt | 31 ++++ .../subjects/brackets/subject.fr.txt | 32 ++++ .../subjects/check_mate/examples.txt | 39 ++++ .../subjects/check_mate/subject.en.txt | 40 +++++ .../subjects/check_mate/subject.fr.txt | 40 +++++ .../subjects/cycle_detector/subject.en.txt | 28 +++ .../subjects/cycle_detector/subject.fr.txt | 28 +++ exam-basedir07/traces/5-0_biggest_pal.trace | 29 +++ exam-basedir07/traces/5-1_check_mate.trace | 29 +++ exam-basedir07/traces/5-2_brackets.trace | 29 +++ .../traces/5-3_cycle_detector.trace | 47 +++++ tests/fprime/a.out | Bin 0 -> 8520 bytes tests/fprime/examples.txt | 16 ++ tests/fprime/fprime.c | 56 ++++++ tests/fprime/subject.fr.txt | 35 ++++ 173 files changed, 6727 insertions(+) create mode 100644 exam-basedir01/docs/GUIDELINES.en.md create mode 100644 exam-basedir01/docs/GUIDELINES.fr.md create mode 100644 exam-basedir01/docs/GUIDELINES.ro.md create mode 160000 exam-basedir01/rendu create mode 100644 exam-basedir01/subjects/aff_z/examples.txt create mode 100644 exam-basedir01/subjects/aff_z/subject.en.txt create mode 100644 exam-basedir01/subjects/aff_z/subject.fr.txt create mode 100644 exam-basedir01/subjects/aff_z/subject.ro.txt create mode 100644 exam-basedir01/subjects/expand_str/examples.txt create mode 100644 exam-basedir01/subjects/expand_str/subject.en.txt create mode 100644 exam-basedir01/subjects/expand_str/subject.fr.txt create mode 100644 exam-basedir01/subjects/expand_str/subject.ro.txt create mode 100644 exam-basedir01/subjects/fprime/examples.txt create mode 100644 exam-basedir01/subjects/fprime/subject.en.txt create mode 100644 exam-basedir01/subjects/fprime/subject.fr.txt create mode 100644 exam-basedir01/subjects/fprime/subject.ro.txt create mode 100644 exam-basedir01/subjects/ft_split/subject.en.txt create mode 100644 exam-basedir01/subjects/ft_split/subject.fr.txt create mode 100644 exam-basedir01/subjects/ft_split/subject.ro.txt create mode 100644 "exam-basedir01/subjects/ft_swap/\\" create mode 100644 exam-basedir01/subjects/ft_swap/subject.en.txt create mode 100644 exam-basedir01/subjects/ft_swap/subject.fr.txt create mode 100644 exam-basedir01/subjects/ft_swap/subject.ro.txt create mode 100644 exam-basedir01/subjects/inter/examples.txt create mode 100644 exam-basedir01/subjects/inter/subject.en.txt create mode 100644 exam-basedir01/subjects/inter/subject.fr.txt create mode 100644 exam-basedir01/subjects/inter/subject.ro.txt create mode 100644 exam-basedir01/traces/0-0_aff_z.trace create mode 100644 exam-basedir01/traces/1-0_ft_swap.trace create mode 100644 exam-basedir01/traces/2-0_inter.trace create mode 100644 exam-basedir01/traces/3-0_expand_str.trace create mode 100644 exam-basedir01/traces/4-0_ft_split.trace create mode 100644 exam-basedir02/docs/GUIDELINES.en.md create mode 100644 exam-basedir02/docs/GUIDELINES.fr.md create mode 100644 exam-basedir02/docs/GUIDELINES.ro.md create mode 160000 exam-basedir02/rendu create mode 100644 exam-basedir02/subjects/aff_a/subject.en.txt create mode 100644 exam-basedir02/subjects/aff_a/subject.fr.txt create mode 100644 exam-basedir02/subjects/aff_a/subject.ro.txt create mode 100644 exam-basedir02/subjects/fprime/examples.txt create mode 100644 exam-basedir02/subjects/fprime/subject.en.txt create mode 100644 exam-basedir02/subjects/fprime/subject.fr.txt create mode 100644 exam-basedir02/subjects/fprime/subject.ro.txt create mode 100644 exam-basedir02/subjects/ft_atoi_base/subject.en.txt create mode 100644 exam-basedir02/subjects/ft_atoi_base/subject.fr.txt create mode 100644 exam-basedir02/subjects/ft_itoa/subject.en.txt create mode 100644 exam-basedir02/subjects/ft_itoa/subject.fr.txt create mode 100644 exam-basedir02/subjects/ft_itoa/subject.ro.txt create mode 100644 exam-basedir02/subjects/ft_itoa_base/subject.en.txt create mode 100644 exam-basedir02/subjects/ft_itoa_base/subject.fr.txt create mode 100644 exam-basedir02/subjects/last_word/examples.txt create mode 100644 exam-basedir02/subjects/last_word/subject.en.txt create mode 100644 exam-basedir02/subjects/last_word/subject.fr.txt create mode 100644 exam-basedir02/subjects/last_word/subject.ro.txt create mode 100644 exam-basedir02/subjects/rostring/examples.txt create mode 100644 exam-basedir02/subjects/rostring/subject.en.txt create mode 100644 exam-basedir02/subjects/rostring/subject.fr.txt create mode 100644 exam-basedir02/subjects/rostring/subject.ro.txt create mode 100644 exam-basedir02/subjects/rotone/examples.txt create mode 100644 exam-basedir02/subjects/rotone/subject.en.txt create mode 100644 exam-basedir02/subjects/rotone/subject.fr.txt create mode 100644 exam-basedir02/subjects/rotone/subject.ro.txt create mode 100644 exam-basedir02/traces/0-0_aff_a.trace create mode 100644 exam-basedir02/traces/1-0_rotone.trace create mode 100644 exam-basedir02/traces/2-0_last_word.trace create mode 100644 exam-basedir02/traces/3-0_ft_atoi_base.trace create mode 100644 exam-basedir02/traces/4-0_ft_itoa_base.trace create mode 100644 exam-basedir02/traces/4-1_ft_itoa.trace create mode 100644 exam-basedir02/traces/4-2_fprime.trace create mode 100644 exam-basedir03/docs/GUIDELINES.en.md create mode 100644 exam-basedir03/docs/GUIDELINES.fr.md create mode 100644 exam-basedir03/docs/GUIDELINES.ro.md create mode 160000 exam-basedir03/rendu create mode 100644 exam-basedir03/subjects/aff_z/examples.txt create mode 100644 exam-basedir03/subjects/aff_z/subject.en.txt create mode 100644 exam-basedir03/subjects/aff_z/subject.fr.txt create mode 100644 exam-basedir03/subjects/aff_z/subject.ro.txt create mode 100644 exam-basedir03/subjects/brainfuck/examples.txt create mode 100644 exam-basedir03/subjects/brainfuck/subject.en.txt create mode 100644 exam-basedir03/subjects/brainfuck/subject.fr.txt create mode 100644 exam-basedir03/subjects/brainfuck/subject.ro.txt create mode 100644 exam-basedir03/subjects/flood_fill/subject.en.txt create mode 100644 exam-basedir03/subjects/flood_fill/subject.fr.txt create mode 100644 exam-basedir03/subjects/flood_fill/t_point.h create mode 100644 exam-basedir03/subjects/ft_atoi_base/subject.en.txt create mode 100644 exam-basedir03/subjects/ft_atoi_base/subject.fr.txt create mode 100644 exam-basedir03/subjects/ft_itoa/subject.en.txt create mode 100644 exam-basedir03/subjects/ft_itoa/subject.fr.txt create mode 100644 exam-basedir03/subjects/ft_itoa/subject.ro.txt create mode 100644 exam-basedir03/subjects/ft_putstr/subject.en.txt create mode 100644 exam-basedir03/subjects/ft_putstr/subject.fr.txt create mode 100644 exam-basedir03/subjects/ft_putstr/subject.ro.txt create mode 100644 exam-basedir03/subjects/ft_rrange/subject.en.txt create mode 100644 exam-basedir03/subjects/ft_rrange/subject.fr.txt create mode 100644 exam-basedir03/subjects/ft_rrange/subject.ro.txt create mode 100644 exam-basedir03/subjects/ft_split/subject.en.txt create mode 100644 exam-basedir03/subjects/ft_split/subject.fr.txt create mode 100644 exam-basedir03/subjects/ft_split/subject.ro.txt create mode 100644 exam-basedir03/subjects/max/subject.en.txt create mode 100644 exam-basedir03/subjects/max/subject.fr.txt create mode 100644 exam-basedir03/subjects/max/subject.ro.txt create mode 100644 exam-basedir03/subjects/moment/subject.en.txt create mode 100644 exam-basedir03/subjects/moment/subject.fr.txt create mode 100644 exam-basedir03/subjects/rev_wstr/subject.en.txt create mode 100644 exam-basedir03/subjects/rev_wstr/subject.fr.txt create mode 100644 exam-basedir03/subjects/rev_wstr/subject.ro.txt create mode 100644 exam-basedir03/traces/0-0_aff_z.trace create mode 100644 exam-basedir03/traces/1-0_ft_putstr.trace create mode 100644 exam-basedir03/traces/2-0_max.trace create mode 100644 exam-basedir03/traces/3-0_ft_rrange.trace create mode 100644 exam-basedir03/traces/3-1_ft_atoi_base.trace create mode 100644 exam-basedir03/traces/4-0_flood_fill.trace create mode 100644 exam-basedir03/traces/4-1_brainfuck.trace create mode 100644 exam-basedir03/traces/4-2_ft_split.trace create mode 100644 exam-basedir03/traces/4-3_ft_itoa.trace create mode 100644 exam-basedir03/traces/4-4_moment.trace create mode 100644 exam-basedir04/docs/GUIDELINES.en.md create mode 100644 exam-basedir04/docs/GUIDELINES.fr.md create mode 100644 exam-basedir04/docs/GUIDELINES.ro.md create mode 160000 exam-basedir04/rendu create mode 100644 exam-basedir04/subjects/rpn_calc/subject.en.txt create mode 100644 exam-basedir04/subjects/rpn_calc/subject.fr.txt create mode 100644 exam-basedir04/subjects/sort_int_tab/subject.en.txt create mode 100644 exam-basedir04/subjects/sort_int_tab/subject.fr.txt create mode 100644 exam-basedir04/subjects/sort_int_tab/subject.ro.txt create mode 100644 exam-basedir04/traces/4-0_sort_int_tab.trace create mode 100644 exam-basedir05/docs/GUIDELINES.en.md create mode 100644 exam-basedir05/docs/GUIDELINES.fr.md create mode 100644 exam-basedir05/docs/GUIDELINES.ro.md create mode 160000 exam-basedir05/rendu create mode 100644 exam-basedir05/subjects/brackets/subject.en.txt create mode 100644 exam-basedir05/subjects/brackets/subject.fr.txt create mode 100644 exam-basedir05/subjects/ft_itoa_base/subject.en.txt create mode 100644 exam-basedir05/subjects/ft_itoa_base/subject.fr.txt create mode 100644 exam-basedir05/subjects/ft_split/subject.en.txt create mode 100644 exam-basedir05/subjects/ft_split/subject.fr.txt create mode 100644 exam-basedir05/subjects/ft_split/subject.ro.txt create mode 100644 exam-basedir05/traces/4-0_ft_split.trace create mode 100644 exam-basedir05/traces/4-1_ft_itoa_base.trace create mode 100644 exam-basedir05/traces/5-0_brackets.trace create mode 100644 exam-basedir06/docs/GUIDELINES.en.md create mode 100644 exam-basedir06/docs/GUIDELINES.fr.md create mode 100644 exam-basedir06/docs/GUIDELINES.ro.md create mode 160000 exam-basedir06/rendu create mode 100644 exam-basedir06/subjects/brackets/subject.en.txt create mode 100644 exam-basedir06/subjects/brackets/subject.fr.txt create mode 100644 exam-basedir06/subjects/cycle_detector/subject.en.txt create mode 100644 exam-basedir06/subjects/cycle_detector/subject.fr.txt create mode 100644 exam-basedir06/subjects/rpn_calc/subject.en.txt create mode 100644 exam-basedir06/subjects/rpn_calc/subject.fr.txt create mode 100644 exam-basedir06/traces/5-0_brackets.trace create mode 100644 exam-basedir06/traces/5-1_cycle_detector.trace create mode 100644 exam-basedir07/docs/GUIDELINES.en.md create mode 100644 exam-basedir07/docs/GUIDELINES.fr.md create mode 100644 exam-basedir07/docs/GUIDELINES.ro.md create mode 160000 exam-basedir07/rendu create mode 100644 exam-basedir07/subjects/biggest_pal/subject.en.txt create mode 100644 exam-basedir07/subjects/biggest_pal/subject.fr.txt create mode 100644 exam-basedir07/subjects/brackets/subject.en.txt create mode 100644 exam-basedir07/subjects/brackets/subject.fr.txt create mode 100644 exam-basedir07/subjects/check_mate/examples.txt create mode 100644 exam-basedir07/subjects/check_mate/subject.en.txt create mode 100644 exam-basedir07/subjects/check_mate/subject.fr.txt create mode 100644 exam-basedir07/subjects/cycle_detector/subject.en.txt create mode 100644 exam-basedir07/subjects/cycle_detector/subject.fr.txt create mode 100644 exam-basedir07/traces/5-0_biggest_pal.trace create mode 100644 exam-basedir07/traces/5-1_check_mate.trace create mode 100644 exam-basedir07/traces/5-2_brackets.trace create mode 100644 exam-basedir07/traces/5-3_cycle_detector.trace create mode 100755 tests/fprime/a.out create mode 100644 tests/fprime/examples.txt create mode 100644 tests/fprime/fprime.c create mode 100644 tests/fprime/subject.fr.txt diff --git a/exam-basedir01/docs/GUIDELINES.en.md b/exam-basedir01/docs/GUIDELINES.en.md new file mode 100644 index 0000000..1523e39 --- /dev/null +++ b/exam-basedir01/docs/GUIDELINES.en.md @@ -0,0 +1,55 @@ +# General guidelines + +* No communication whatsoever is allowed. + +* This is an exam, you don't have a right to chat, listen to music, make noise, or generally do anything that may disturb the other students in any way. + +* Your phones and other technological devices must be turned off and put away. If a phone rings, the whole row will be disqualified from the exam and kicked out immediately. + +* Your home directory contains three directories : "rendu", "subjects" and "traces". + +* The "subjects" directory will contain the subjects of your assignments + +* The "rendu" folder is a clone of your Git turn-in repository. You will work in it, and use it as any regular Git repository. + +* The system will not grade anything that is not pushed on your Git turn-in repository, and at the right place. Pay attention to where examshell tells you to put your files. + +* You can only run your programs in the "rendu" directory or one of its subdirectories. + +* You may need to read the man to carry out some assignments... + +* You will be graded by a program. You must respect the specified file/path/function names to the letter. + +* Assignments will always specify which files will be collected : + + * When an assignment asks for specific files, they will be explicitly named. For example "file1.c file1.h". + + * Otherwise, when filenames and/or the number of files is up to you, the assignment will say something along the lines of "*.c *.h". + + * When a Makefile is required, it will ALWAYS be explicitly stated. + +* In case of technical problem, question about the subject, or any other problem, you must get up silently and wait for a member of the staff to come to you. It is forbidden to ask your neighbors, or to verbally call for a staff member. + +* Any equipment not explicitly allowed is implicitly forbidden. + +* Any exit is definitive, you can not come in again. + +* Staff members may kick you out of the exam without warning if they deem it necessary. + +* You are allowed blank pieces of paper, and a pen. No notebooks, notes, or any help of the sort. You are alone to face this exam. + +# Coding guidelines + +* Useful functions and files will sometimes be given to you in the subject directory + +* The correction is fully automated, and performed by the program we know as Deepthought. + +* When an assignment asks you to write a program with one or more explicitly named files, it will be compiled with the following command: clang -Wall -Wextra -Werror file1.c file2.c file3.c -o program_name. + +* When the assignment leaves the filenames up to you, it will be compiled with: clang -Wall -Wextra -Werror *.c -o program_name. + +* Finally, when you must only turn in a function (so, one file), it will be compiled with clang -c -Wall -Wextra -Werror yourfile.c, then we will compile our main function and link them together to create a test program. + +* Allowed functions will be specified in the headers of the assignments. You may recode any other function you think is necessary. Using a function that's not explicitly allowed is considered cheating, and will result in a failing grade, with no possible discussion or appeal whatsoever. You've been warned. + +* Any function that isn't explicitly allowed is implicitly forbidden. diff --git a/exam-basedir01/docs/GUIDELINES.fr.md b/exam-basedir01/docs/GUIDELINES.fr.md new file mode 100644 index 0000000..c565b66 --- /dev/null +++ b/exam-basedir01/docs/GUIDELINES.fr.md @@ -0,0 +1,54 @@ +# Consignes générales + +* Aucune communication, quelle qu'elle soit, n'est permise + +* Ceci est un examen, il est interdit de discuter, écouter de la musique, faire du bruit, ou de façon générale de faire quoi que ce soit qui puisse perturber le travail des autres étudiants. + +* Vos téléphones et autres appareils technologiques doivent être éteints et rangés. Pas en silencieux, éteints. Si un téléphone sonne, toute la rangée sera exclue immédiatement de l'examen. + +* Votre répertoire home contient trois répertoires : "rendu", "subjects" et "traces". + +* Le répertoire "subjects" contiendra les sujets de vos exercices + +* Le répertoire "rendu" contiendra un clone de votre dépôt Git de rendu. Vous y travaillerez, et l'utiliserez comme n'importe quel autre dépôt Git de rendu. + +* Le système ne corrigera rien qui n'est pas push sur votre dépôt de rendu à l'endroit correct. Faites attention à ce qu'examshell vous dit concernant les emplacements de rendu. + +* Vous ne pouvez lancer vos propres programmes que dans le répertoire "rendu" ou l'un de ses sous-répertoires. + +* Vous aurez peut-être besoin de lire les man pour certains exercices ... + +* Vous aller être corrigé par un programme. Vous devez donc respecter à la lettre les noms de fichiers/fonctions qui vous sont imposés. + +* Les exercices spécifient toujours les noms de fichiers qui vous sont demandés: + + * Quand on vous demande des fichiers spécifiques, ils seront nommés explicitement, par exemple "file1.c file1.h" + + * Quand les noms et le nombre de fichier sont à votre discrétion, on dira quelque chose comme "*.c *.h" + + * Quand il faut un Makefile, ce sera toujours explicitement précisé + +* En cas de problème technique, de question sur un sujet, ou tout autre souci, vous devez vous lever EN SILENCE et attendre qu'un membre du staff vienne vous voir. Il est interdit de demander à vos voisins, ou d'appeler verbalement un membre du staff. + +* Vous avez le droit à des feuilles vierges, un stylo, et c'est tout. Pas de cahiers, carnets, ou autres. Pas d'écouteurs, de casques, de portable, etc ... + +* Tout équipement qui n'est pas explicitement autorisé est implicitement interdit. + +* Toute sortie est définitive. + +* Les membres du staff peuvent vous exclure de l'examen sans préavis s'ils l'estiment nécessaire pour quelque raison que ce soit. + + +# Consignes relative au code + +* Des fonctions et fichiers utiles vous seront parfois donnés dans le répertoire du sujet + +* Les corrections sont entièrement automatiques et réalisées par un programme nommé Deepthought + +* Les programmes seront compilés avec "clang -Wall -Wextra -Werror" + +* Quand on ne vous demande qu'une fonction, et non un programme, cela signifie que votre fichier sera compilé accompagné de notre propre main.c + +* Les fonctions autorisées sont précisées dans les en-têtes des exercices. Vous pouvez recoder toute fonction que vous jugez nécessaire. Utiliser une fonction non-autorisée est assimilé à de la triche et résultera en un échec immédiat de l'exercice, sans appel. Vous êtes prévenu. + +* Toute fonction qui n'est pas explicitement autorisée est implicitement interdite diff --git a/exam-basedir01/docs/GUIDELINES.ro.md b/exam-basedir01/docs/GUIDELINES.ro.md new file mode 100644 index 0000000..56eeec6 --- /dev/null +++ b/exam-basedir01/docs/GUIDELINES.ro.md @@ -0,0 +1,56 @@ +#Reguli generale de urmat la examene + +*Nici un fel de comunicare nu este permisă. + +*Acesta este un examen, nu aveți dreptul să vorbiți, să ascultați muzică, să faceți zgomot sau să faceți ceva ce ar putea deranja pe ceilați studenți în vreun fel. + +*Telefoanele mobile sau orice alte dispozitive trebuie să fie închise și puse deoparte. Dacă sună vreun telefon, tot rândul va fi descalificat din examen și dat afară imediat! + +*Directorul vostru ”home” conține trei directoare: ”rendu”, ”subjects” și ”traces”. + +*Directorul ”subjects” va conține subiectul examenului vostru. + +*Directorul ”rendu” este o clonă a Git-ului vostru ”turn-in repository”. Veți lucra în el, și poate fi utilizat ca orice depozit Git regulat. + +*Sistemul nu va nota nimic ce nu este trimis pe Git ”turn-in repository” și în locul corect. Fiți foarte atenți unde ”examshell” va spune sa puneți fișierele voastre. + +*Puteți să vă rulați programele voastre în directorul ”rendu” sau în unul din subdirectoarele lui. + +*Este posibil să fie nevoie să citiți man-ul pentru a realiza un exercițiu.…. + +*Veți fi notați de un program. Trebuie să respectați specificațiile fisierului / căii (path) / numele funcțiilor EXACT așa cum este cerut. + +*Exercițiile vor specifica întotdeauna ce fișiere vor fi corectate: + + * Când un exercițiu cere un anumit fișier, acesta va fi numit explicit. De exemplu ”file1.c” sau ”file1.h” + + * Altfel, când numele sau numărul de fișiere este la latitudinea voastră, exercițiul va specifica ceva de genul ”*.c” sau ”*.h” + + * Când un ”Makefile” este cerut, va fi ÎNTOTDEAUNA specificată starea lui. + +* În cazul unei defecțiuni tehnice, întrebări despre subiect sau orice altă problemă, trebuie să te ridici în picioare, în liniște și să aștepți ca un membru al staff-ului sa vină la tine. Este interzis să îți întrebi vecinii sau să strigi după un membru al staff-ului. + +* Oricei echipament care nu este explicit permis, este implicit interzis. + +* Orice părăsire a sălii de examinare este definitivă, nu te mai poți întoarce. + +* Membri staff-ului vă pot da afară din examen, fără avertisment, în cazul în care consideră necesar. + +* Vă este permisă intrarea în sală cu o hartie albă și un pix, Fără caiete, notițe sau orice alt ajutor de acest fel. Ești singur ca să înfrunți acest examen. + +# Reguli pentru codare + +* Funcții folositoare sau fișiere vor fi date, câteodată, în directorul subiectului. + +* Corectarea este complet automată și se face de către un program pe care îl numim ”Deepthought” + +* Când un exercițiu îți cere să scrii un program cu unul sau mai multe nume de fișiere date explicit, va fi compliat cu următoarea comandă: ”clang -Wall -Wextra -Werror file1.c file2.c file3.c -o nume_program”. + +* Cand exercitiul lasa la latitudinea voastra numele fisierelor, exercitiul va fi compilat cu: clang -Wall -Wextra -Werror *.c -o program_name + +* Când trebuie doar să trimiteți o funcție (adică un fișier) va fi compilat cu ”clang -c -Wall -Wextra -Werror yourfile.c” apoi noi vom compila funcția noastră principală și le vom lega împreună pentru a crea un program de test. + +* Funcțiile permise vor fi specificate în antetele fiecărui exercițiu. Puteți recoda orice altă funcție credeți că este necesar. Folosirea unei funcții care nu este permisă în mod explicit este considerată trișare, și va duce la nepromovarea examenului, fără drept la discuții sau contenstații. Ați fost avertizați. + +*Orice funcție, care nu este permisă în mod explicit, este implicit interzisă + diff --git a/exam-basedir01/rendu b/exam-basedir01/rendu new file mode 160000 index 0000000..ea9350c --- /dev/null +++ b/exam-basedir01/rendu @@ -0,0 +1 @@ +Subproject commit ea9350c4e0805d3a6b89a52b5ffe40109d62358d diff --git a/exam-basedir01/subjects/aff_z/examples.txt b/exam-basedir01/subjects/aff_z/examples.txt new file mode 100644 index 0000000..f15ada3 --- /dev/null +++ b/exam-basedir01/subjects/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-basedir01/subjects/aff_z/subject.en.txt b/exam-basedir01/subjects/aff_z/subject.en.txt new file mode 100644 index 0000000..353d0d8 --- /dev/null +++ b/exam-basedir01/subjects/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_a "abc" | cat -e +z$ +$> ./aff_a "RaInB0w d4Sh!" | cat -e +z$ +$> ./aff_a "ThE C4k3 Is a L|3" | cat -e +z$ +$> ./aff_a | cat -e +z$ \ No newline at end of file diff --git a/exam-basedir01/subjects/aff_z/subject.fr.txt b/exam-basedir01/subjects/aff_z/subject.fr.txt new file mode 100644 index 0000000..196702e --- /dev/null +++ b/exam-basedir01/subjects/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-basedir01/subjects/aff_z/subject.ro.txt b/exam-basedir01/subjects/aff_z/subject.ro.txt new file mode 100644 index 0000000..1400b1e --- /dev/null +++ b/exam-basedir01/subjects/aff_z/subject.ro.txt @@ -0,0 +1,19 @@ +Exercitiu : aff_z +Fisiere de iesire : aff_z.c +Functii autorizate : write +-------------------------------------------------------------------------------- +Scrieti un program ce ia ca parametru un sir de caractere, si care afiseaza la +iesirea standard primul caracter 'z' intalnit in acest sir, urmat de '\n'. Daca +nu este intalnit niciun caracter 'z', programul va afisa 'z' urmat de '\n'. Daca +numarul de parametri este diferit de 1, programul va afisa 'z' urmat de '\n'. + +Example: + +$> ./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-basedir01/subjects/expand_str/examples.txt b/exam-basedir01/subjects/expand_str/examples.txt new file mode 100644 index 0000000..79eb0af --- /dev/null +++ b/exam-basedir01/subjects/expand_str/examples.txt @@ -0,0 +1,9 @@ +$> ./expand_str "vous voyez c'est facile d'afficher la meme chose" | cat -e +vous voyez c'est facile d'afficher la meme chose$ +$> ./expand_str " seulement la c'est plus dur " | cat -e +seulement la c'est plus dur$ +$> ./expand_str "comme c'est cocasse" "vous avez entendu, Mathilde ?" | cat -e +$ +$> ./expand_str "" | cat -e +$ +$> diff --git a/exam-basedir01/subjects/expand_str/subject.en.txt b/exam-basedir01/subjects/expand_str/subject.en.txt new file mode 100644 index 0000000..26a223c --- /dev/null +++ b/exam-basedir01/subjects/expand_str/subject.en.txt @@ -0,0 +1,26 @@ +Assignment name : expand_str +Expected files : expand_str.c +Allowed functions: write +-------------------------------------------------------------------------------- + +Write a program that takes a string and displays it with exactly three spaces +between each word, with no spaces or tabs either at the beginning or the end, +followed by a newline. + +A word is a section of string delimited either by spaces/tabs, or by the +start/end of the string. + +If the number of parameters is not 1, or if there are no words, simply display +a newline. + +Examples: + +$> ./epur_str "See? It's easy to print the same thing" | cat -e +See? It's easy to print the same thing$ +$> ./epur_str " this time it will be more complex " | cat -e +this time it will be more complex$ +$> ./epur_str "No S*** Sherlock..." "nAw S*** ShErLaWQ..." | cat -e +$ +$> ./epur_str "" | cat -e +$ +$> diff --git a/exam-basedir01/subjects/expand_str/subject.fr.txt b/exam-basedir01/subjects/expand_str/subject.fr.txt new file mode 100644 index 0000000..1bec42a --- /dev/null +++ b/exam-basedir01/subjects/expand_str/subject.fr.txt @@ -0,0 +1,26 @@ +Assignment name : expand_str +Expected files : expand_str.c +Allowed functions: write +-------------------------------------------------------------------------------- + +Écrire un programme qui prend une chaîne de caractères en paramètre, et qui +affiche cette chaîne avec exactement trois espaces entre chaque mot, sans +espaces ou tabulations ni au début ni à la fin de la chaîne, suivie 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: + +$> ./expand_str "vous voyez c'est facile d'afficher la meme chose" | cat -e +vous voyez c'est facile d'afficher la meme chose$ +$> ./expand_str " seulement la c'est plus dur " | cat -e +seulement la c'est plus dur$ +$> ./expand_str "comme c'est cocasse" "vous avez entendu, Mathilde ?" | cat -e +$ +$> ./expand_str "" | cat -e +$ +$> diff --git a/exam-basedir01/subjects/expand_str/subject.ro.txt b/exam-basedir01/subjects/expand_str/subject.ro.txt new file mode 100644 index 0000000..7389999 --- /dev/null +++ b/exam-basedir01/subjects/expand_str/subject.ro.txt @@ -0,0 +1,25 @@ +Exercitiu : expand_str +Fisiere de iesire : expand_str.c +Functii autorizate : write +-------------------------------------------------------------------------------- + +Scrieti un program care ia ca parametru un sir de caractere si afiseaza acest sir +cu exact trei spatii intre fiecare cuvinte, fara spatii ori tabulatori la inceputul +ori sfarsitul sirului, urmat de un '\n'. + +Numim "cuvant" o portiune a sirului de caractere delimitat de spatii sau/si tabulatori, +atat la inceputul cat si la sfarsitul sirului. + +Daca numarul de parametri transmis este diferit de 1, sau daca nu este niciun cuvant +de afisat, programul va afisa '\n'. +Exemplu: + +$> ./expand_str "vous voyez c'est facile d'afficher la meme chose" | cat -e +vous voyez c'est facile d'afficher la meme chose$ +$> ./expand_str " seulement la c'est plus dur " | cat -e +seulement la c'est plus dur$ +$> ./expand_str "comme c'est cocasse" "vous avez entendu, Mathilde ?" | cat -e +$ +$> ./expand_str "" | cat -e +$ +$> diff --git a/exam-basedir01/subjects/fprime/examples.txt b/exam-basedir01/subjects/fprime/examples.txt new file mode 100644 index 0000000..f9e17c2 --- /dev/null +++ b/exam-basedir01/subjects/fprime/examples.txt @@ -0,0 +1,16 @@ +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$ diff --git a/exam-basedir01/subjects/fprime/subject.en.txt b/exam-basedir01/subjects/fprime/subject.en.txt new file mode 100644 index 0000000..9d24167 --- /dev/null +++ b/exam-basedir01/subjects/fprime/subject.en.txt @@ -0,0 +1,33 @@ +Assignment name : fprime +Expected files : fprime.c +Allowed functions: printf, atoi +-------------------------------------------------------------------------------- + +Write a program that takes a positive int and displays its prime factors on the +standard output, followed by a newline. + +Factors must be displayed in ascending order and separated by '*', so that +the expression in the output gives the right result. + +If the number of parameters is not 1, simply display a newline. + +The input, when there's one, will be valid. + +Examples: + +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$ diff --git a/exam-basedir01/subjects/fprime/subject.fr.txt b/exam-basedir01/subjects/fprime/subject.fr.txt new file mode 100644 index 0000000..9bb4ed4 --- /dev/null +++ b/exam-basedir01/subjects/fprime/subject.fr.txt @@ -0,0 +1,35 @@ +Assignment name : fprime +Expected files : fprime.c +Allowed functions: printf, atoi +-------------------------------------------------------------------------------- + +Écrire un programme qui prend en paramètre un entier strictement positif, et +qui affiche sa décomposition en facteurs premiers sur la sortie standard, +suivie d'un '\n'. + +Les facteurs doivent être affichés dans l'ordre croissant et séparés par des +'*', de telle sorte que l'expression affichée donne le bon résultat. + +Si le nombre de paramètres est différent de 1, le programme doit afficher '\n'. + +L'entrée, quand elle est passée, sera toujours un nombre valide sans caractères +parasites. + +Exemple: + +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$ diff --git a/exam-basedir01/subjects/fprime/subject.ro.txt b/exam-basedir01/subjects/fprime/subject.ro.txt new file mode 100644 index 0000000..e41117b --- /dev/null +++ b/exam-basedir01/subjects/fprime/subject.ro.txt @@ -0,0 +1,34 @@ +Exercitiu : fprime +Fisiere de iesire : fprime.c +Functii autorizate : printf, atoi +-------------------------------------------------------------------------------- + +Scrieti un program ce ia ca parametru un intreg strict pozitiv si care va afisa +descompunerea in factori primi la iesirea standard, urmat de un '\n'. + +Factorii trebuie sa fie afisati in ordine crescatoare si separati de '*', +astfel incat expresia afisata sa dea rezultatul corect. + +Daca numarul de parametri este diferit de 1, programul va afisa '\n'. + +Parametrul de intrare, cand este transmis, va fi totdeauna un numar valid +fara caractere neconforme. + +Exemplu: + +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$ diff --git a/exam-basedir01/subjects/ft_split/subject.en.txt b/exam-basedir01/subjects/ft_split/subject.en.txt new file mode 100644 index 0000000..97375e9 --- /dev/null +++ b/exam-basedir01/subjects/ft_split/subject.en.txt @@ -0,0 +1,14 @@ +Assignment name : ft_split +Expected files : ft_split.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Write a function that takes a string, splits it into words, and returns them as +a NULL-terminated array of strings. + +A "word" is defined as a part of a string delimited either by spaces/tabs/new +lines, or by the start/end of the string. + +Your function must be declared as follows: + +char **ft_split(char *str); diff --git a/exam-basedir01/subjects/ft_split/subject.fr.txt b/exam-basedir01/subjects/ft_split/subject.fr.txt new file mode 100644 index 0000000..acd1b41 --- /dev/null +++ b/exam-basedir01/subjects/ft_split/subject.fr.txt @@ -0,0 +1,16 @@ +Assignment name : ft_split +Expected files : ft_split.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Écrire une fonction qui prend en paramètre une chaîne de caractères et la +découpe en mots, qui seront retournés sous la forme d'un tableau de chaînes +terminé par NULL. + +On appelle "mot" une portion de chaîne de caractères délimitée soit par des +espaces, des retours à la ligne et/ou des tabulations, soit par le début / fin +de la chaîne. + +Votre fonction devra être prototypée de la façon suivante : + +char **ft_split(char *str); diff --git a/exam-basedir01/subjects/ft_split/subject.ro.txt b/exam-basedir01/subjects/ft_split/subject.ro.txt new file mode 100644 index 0000000..4bc5c42 --- /dev/null +++ b/exam-basedir01/subjects/ft_split/subject.ro.txt @@ -0,0 +1,15 @@ +Exercitiu : ft_split +Fisier de iesire : ft_split.c +Functii autorizate : malloc +-------------------------------------------------------------------------------- + +Scrieti o functie ce ia ca parametru un sir de caractere si pe care il separa +in cuvinte, ce vor fi returnate sub forma unui tablou siruri terminate cu NULL. + +Numim "cuvant" o portiune a a sirului de caractere delimitate de fie de spatii +si/sau tabulatoare, fie de inceputul/sfarsitul sirului. + +Functia va trebui sa aiba urmatorul prototip: + +char **ft_split(char *str); + diff --git "a/exam-basedir01/subjects/ft_swap/\\" "b/exam-basedir01/subjects/ft_swap/\\" new file mode 100644 index 0000000..8fea86e --- /dev/null +++ "b/exam-basedir01/subjects/ft_swap/\\" @@ -0,0 +1,12 @@ +Exercitiu : ft_swap +Fisiere de iesire : ft_swap.c +Functii autorizate : +-------------------------------------------------------------------------------- + +Scrieti o functie ce schimba valoarea a doi intregi ale caror adrese sunt +transmise ca parametri. + +Ea trebuie sa aibaprototipul urmator: + +void ft_swap(int *a, int *b); + diff --git a/exam-basedir01/subjects/ft_swap/subject.en.txt b/exam-basedir01/subjects/ft_swap/subject.en.txt new file mode 100644 index 0000000..d8fdd7e --- /dev/null +++ b/exam-basedir01/subjects/ft_swap/subject.en.txt @@ -0,0 +1,11 @@ +Assignment name : ft_swap +Expected files : ft_swap.c +Allowed functions: +-------------------------------------------------------------------------------- + +Write a function that swaps the contents of two integers the adresses of which +are passed as parameters. + +Your function must be declared as follows: + +void ft_swap(int *a, int *b); diff --git a/exam-basedir01/subjects/ft_swap/subject.fr.txt b/exam-basedir01/subjects/ft_swap/subject.fr.txt new file mode 100644 index 0000000..e492fbf --- /dev/null +++ b/exam-basedir01/subjects/ft_swap/subject.fr.txt @@ -0,0 +1,11 @@ +Assignment name : ft_swap +Expected files : ft_swap.c +Allowed functions: +-------------------------------------------------------------------------------- + +Écrire une fonction qui échange le contenu de deux entiers dont les adresses +sont passées en paramêtres. + +Elle devra être prototypée de la façon suivante : + +void ft_swap(int *a, int *b); diff --git a/exam-basedir01/subjects/ft_swap/subject.ro.txt b/exam-basedir01/subjects/ft_swap/subject.ro.txt new file mode 100644 index 0000000..8fea86e --- /dev/null +++ b/exam-basedir01/subjects/ft_swap/subject.ro.txt @@ -0,0 +1,12 @@ +Exercitiu : ft_swap +Fisiere de iesire : ft_swap.c +Functii autorizate : +-------------------------------------------------------------------------------- + +Scrieti o functie ce schimba valoarea a doi intregi ale caror adrese sunt +transmise ca parametri. + +Ea trebuie sa aibaprototipul urmator: + +void ft_swap(int *a, int *b); + diff --git a/exam-basedir01/subjects/inter/examples.txt b/exam-basedir01/subjects/inter/examples.txt new file mode 100644 index 0000000..57c63e8 --- /dev/null +++ b/exam-basedir01/subjects/inter/examples.txt @@ -0,0 +1,9 @@ +$>./inter "padinton" "paqefwtdjetyiytjneytjoeyjnejeyj" | cat -e +padinto$ +$>./inter ddf6vewg64f gtwthgdwthdwfteewhrtag6h4ffdhsd | cat -e +df6ewg4$ +$>./inter "rien" "cette phrase ne cache rien" | cat -e +rien$ +$>./inter | cat -e +$ + diff --git a/exam-basedir01/subjects/inter/subject.en.txt b/exam-basedir01/subjects/inter/subject.en.txt new file mode 100644 index 0000000..01e5138 --- /dev/null +++ b/exam-basedir01/subjects/inter/subject.en.txt @@ -0,0 +1,23 @@ +Assignment name : inter +Expected files : inter.c +Allowed functions: write +-------------------------------------------------------------------------------- + +Write a program that takes two strings and displays, without doubles, the +characters that appear in both strings, in the order they appear in the first +one. + +The display will be followed by a \n. + +If the number of arguments is not 2, the program displays \n. + +Examples: + +$>./inter "padinton" "paqefwtdjetyiytjneytjoeyjnejeyj" | cat -e +padinto$ +$>./inter ddf6vewg64f gtwthgdwthdwfteewhrtag6h4ffdhsd | cat -e +df6ewg4$ +$>./inter "nothing" "This sentence hides nothing" | cat -e +nothing$ +$>./inter | cat -e +$ diff --git a/exam-basedir01/subjects/inter/subject.fr.txt b/exam-basedir01/subjects/inter/subject.fr.txt new file mode 100644 index 0000000..69cfee8 --- /dev/null +++ b/exam-basedir01/subjects/inter/subject.fr.txt @@ -0,0 +1,23 @@ +Assignment name : inter +Expected files : inter.c +Allowed functions: write +-------------------------------------------------------------------------------- + +Écrire un programme qui prend en paramètres deux chaînes de caractères et qui +affiche sans doublon les caractères communs aux deux chaînes. + +L'affichage se fera dans l'ordre d'apparition dans la premiere chaîne. +L'affichage doit être suivi d'un '\n'. + +Si le nombre de paramètres transmis est différent de 2, le programme affiche +'\n'. + +Exemples: +$>./inter "padinton" "paqefwtdjetyiytjneytjoeyjnejeyj" | cat -e +padinto$ +$>./inter ddf6vewg64f gtwthgdwthdwfteewhrtag6h4ffdhsd | cat -e +df6ewg4$ +$>./inter "rien" "cette phrase ne cache rien" | cat -e +rien$ +$>./inter | cat -e +$ diff --git a/exam-basedir01/subjects/inter/subject.ro.txt b/exam-basedir01/subjects/inter/subject.ro.txt new file mode 100644 index 0000000..b97b35b --- /dev/null +++ b/exam-basedir01/subjects/inter/subject.ro.txt @@ -0,0 +1,22 @@ +Exercitiu : inter +Fisiere de iesire : inter.c +Functii autorizate : write +-------------------------------------------------------------------------------- + +Scrieti un program ce ia ca parametru doua siruri de caractere si care afiseaza +caracterele comune celor doua siruri, fara a le dubla. + +Afisarea se va face in ordinea aparitiei din primul sir, urmata de '\n'. + +Daca numarul ed parametri transmis este diferit de 2, programul va afisa '\n'. + +Exemple: + +$>./inter "padinton" "paqefwtdjetyiytjneytjoeyjnejeyj" | cat -e +padinto$ +$>./inter ddf6vewg64f gtwthgdwthdwfteewhrtag6h4ffdhsd | cat -e +df6ewg4$ +$>./inter "rien" "cette phrase ne cache rien" | cat -e +rien$ +$>./inter | cat -e +$ diff --git a/exam-basedir01/traces/0-0_aff_z.trace b/exam-basedir01/traces/0-0_aff_z.trace new file mode 100644 index 0000000..7ffd62a --- /dev/null +++ b/exam-basedir01/traces/0-0_aff_z.trace @@ -0,0 +1,72 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r6p13.42.fr +Darwin 16.7.0 x86_64 +$> date +Fri Apr 13 11:41:11 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180413/tmaze + += Git history ================================================================== +$> git -C /var/folders/8_/k4v31h394nj0pj108ytgr4xm0000gq/T/tmpZXdKvK/user log --pretty='%H - %an, %ad : %s' +2d8bf5c9f17b97a9c04b8c0254a84d64278f8821 - Tanguy MAZE, Fri Apr 13 11:40:49 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/8_/k4v31h394nj0pj108ytgr4xm0000gq/T/tmpZXdKvK/user +total 8 +-rw-r--r-- 1 deepthought deepthought 215 Apr 13 11:41 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 11:41 aff_z + +/var/folders/8_/k4v31h394nj0pj108ytgr4xm0000gq/T/tmpZXdKvK/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 13 11:41 aff_z.c + += aff_z ======================================================================== +$> clang -Wextra -Wall -Werror aff_z.c -o user_exe + += Test 1 =================================================== +$> ./5rpehy400cgna40wybx8awyt +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./58n1ykoco3xgtc9euw0e1ixk "mjiSev0bG4" "Jk2hMrd03ISxWet8w" "Yvg5L" "JaA" "KhtuH" "JBf7" "S1z9d6iFbuL" "gVeEsjK" "BDqX" "QS4yPspfM" "VZWGmrRa2n7US3D" "w2n" "k3Psy598CFK" "5jK0xV6Qo" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./5jgz03vufmnt3v0u89ilukbq "XzNC3" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./ha422vhxa3xnooexmu9ub1f0 "SiUzx7cDL9RIpBnA" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./vru3h17k7ac3lmvyoem05b8w "NAmLc" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./q3uvyld5twnrtb9lc3u16k0i "xme9CAdLH8uQGMrK" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir01/traces/1-0_ft_swap.trace b/exam-basedir01/traces/1-0_ft_swap.trace new file mode 100644 index 0000000..0dbea86 --- /dev/null +++ b/exam-basedir01/traces/1-0_ft_swap.trace @@ -0,0 +1,93 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r4p8.42.fr +Darwin 16.7.0 x86_64 +$> date +Fri Apr 13 11:44:33 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180413/tmaze + += Git history ================================================================== +$> git -C /var/folders/1_/z092vpvx1ydd1nxlp34v0yc00000gq/T/tmpEyFlug/user log --pretty='%H - %an, %ad : %s' +2ab798b8f4f6d6877e6ba6a2f5930ee3c12c88ad - Tanguy MAZE, Fri Apr 13 11:44:16 2018 +0200 : ft_swap +2d8bf5c9f17b97a9c04b8c0254a84d64278f8821 - Tanguy MAZE, Fri Apr 13 11:40:49 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/1_/z092vpvx1ydd1nxlp34v0yc00000gq/T/tmpEyFlug/user +total 8 +-rw-r--r-- 1 deepthought deepthought 438 Apr 13 11:44 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 11:44 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 11:44 ft_swap + +/var/folders/1_/z092vpvx1ydd1nxlp34v0yc00000gq/T/tmpEyFlug/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 13 11:44 aff_z.c + +/var/folders/1_/z092vpvx1ydd1nxlp34v0yc00000gq/T/tmpEyFlug/user/ft_swap: +total 8 +-rw-r--r-- 1 deepthought deepthought 968 Apr 13 11:44 ft_swap.c + += ft_swap ====================================================================== +$> clang -Wextra -Wall -Werror ft_swap.c main.c -o user_exe + += Test 1 =================================================== +$> ./3b5vrm92blpgrf89yxuy5pru "706626262" "364685118" +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./bpuxbmw8bplrhhr9a1m3ovbo "408635404" "-802490398" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./6hd5ghtcf81s1mkqosqlgct0 "-1045169027" "-105518579" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./jy5r8htlk93xv2dd71so0jcz "-345921438" "1420916860" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./9qn52zrmh5tl4zuwjcmxjlg0 "-947973237" "-223965263" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./7v2mq3kt1fpai317rhad09i9 "-601213970" "364430817" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./k4u7ta2ijyl004xu4do63cqj "-797032518" "-898871763" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./bgx8wibqya12t15fwhtcr9ry "829225805" "1965530847" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D += Test 9 =================================================== +$> ./shov8omsapwgvruy7q2ouw0z "-1886413568" "1834299037" +$> diff -U 3 user_output_test9 test9.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir01/traces/2-0_inter.trace b/exam-basedir01/traces/2-0_inter.trace new file mode 100644 index 0000000..1eb91c8 --- /dev/null +++ b/exam-basedir01/traces/2-0_inter.trace @@ -0,0 +1,154 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r11p11.42.fr +Darwin 16.7.0 x86_64 +$> date +Fri Apr 13 11:59:19 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180413/tmaze + += Git history ================================================================== +$> git -C /var/folders/l8/2dn_mc5n50j78m_xrn9szj900000gq/T/tmp4jge8b/user log --pretty='%H - %an, %ad : %s' +f04f956d0834716296c1766b0023c33bb352beae - Tanguy MAZE, Fri Apr 13 11:59:11 2018 +0200 : inter +2ab798b8f4f6d6877e6ba6a2f5930ee3c12c88ad - Tanguy MAZE, Fri Apr 13 11:44:16 2018 +0200 : ft_swap +2d8bf5c9f17b97a9c04b8c0254a84d64278f8821 - Tanguy MAZE, Fri Apr 13 11:40:49 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/l8/2dn_mc5n50j78m_xrn9szj900000gq/T/tmp4jge8b/user +total 8 +-rw-r--r-- 1 deepthought deepthought 688 Apr 13 11:59 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 11:59 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 11:59 ft_swap +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 11:59 inter + +/var/folders/l8/2dn_mc5n50j78m_xrn9szj900000gq/T/tmp4jge8b/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 13 11:59 aff_z.c + +/var/folders/l8/2dn_mc5n50j78m_xrn9szj900000gq/T/tmp4jge8b/user/ft_swap: +total 8 +-rw-r--r-- 1 deepthought deepthought 968 Apr 13 11:59 ft_swap.c + +/var/folders/l8/2dn_mc5n50j78m_xrn9szj900000gq/T/tmp4jge8b/user/inter: +total 8 +-rw-r--r-- 1 deepthought deepthought 1433 Apr 13 11:59 inter.c + += inter ======================================================================== +$> clang -Wextra -Wall -Werror inter.c -o user_exe + += Test 1 =================================================== +$> ./t9dkgbvzuysqelu2g7stwnag +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./8vu4lxwhr1g8s8h6tss38pfb "salut a tous tout le monde" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./fxw9eljfvovwq7acd9l5gpnf "salut" "a" "tous" "tout" "le" "monde" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./ijf2hva07e7kpyimxj44f8jt "llo" "helllo" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./xiqre3l27x3nr5tc56m3ixu2 "X7nEF" "7E" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./yk96doh3gu8slzkvh89doh68 "sJWOAraBXqG" "RdoIOLvSuN7c9yg" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./s8p9ck04a0usz4vrhku963j6 "7e4jrvwWAD" "erWA" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./7dgo3oci4z6xdr9g0xeikphd "iFx3C8" "F3C8" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D += Test 9 =================================================== +$> ./g0w8pbsg6x0qf0lozk6i1bab "vR0ZGmgw2SzqLYk" "aI8MS" +$> diff -U 3 user_output_test9 test9.output | cat -e + +Diff OK :D += Test 10 ================================================== +$> ./kh11erzrvymr5yqpjtzi2415 "Ni6Qbkd27Kz" "ibd27z" +$> diff -U 3 user_output_test10 test10.output | cat -e + +Diff OK :D += Test 11 ================================================== +$> ./ikpx9nmvdfd5qo8xaxhuoq63 "WIlXDZ" "lXD" +$> diff -U 3 user_output_test11 test11.output | cat -e + +Diff OK :D += Test 12 ================================================== +$> ./6j3s8ea54476s98708wjwdnm "9XDcE" "Wl63tXUIS" +$> diff -U 3 user_output_test12 test12.output | cat -e + +Diff OK :D += Test 13 ================================================== +$> ./lg8lp67099knsgulxumn79s4 "CzYnN9krqw0gFE" "znkqw0gE" +$> diff -U 3 user_output_test13 test13.output | cat -e + +Diff OK :D += Test 14 ================================================== +$> ./1ncsf1hc9s3onzp9v7crh8ex "8qivgVQO" "qgO" +$> diff -U 3 user_output_test14 test14.output | cat -e + +Diff OK :D += Test 15 ================================================== +$> ./7as6cimd1v42m2h38x2iu3b5 "z2BSmYy" "l7WQRampfZE" +$> diff -U 3 user_output_test15 test15.output | cat -e + +Diff OK :D += Test 16 ================================================== +$> ./hpceb30pqdh74g2s6wepxvpw "lrULTb" "lrTb" +$> diff -U 3 user_output_test16 test16.output | cat -e + +Diff OK :D += Test 17 ================================================== +$> ./zn0ot7v8e2cmv97a5vqj327i "mSqcBz8AQl" "Sc8Al" +$> diff -U 3 user_output_test17 test17.output | cat -e + +Diff OK :D += Test 18 ================================================== +$> ./oorr6q5bulcqzf6fwp3hx86d "MDbj" "D" +$> diff -U 3 user_output_test18 test18.output | cat -e + +Diff OK :D += Test 19 ================================================== +$> ./mt1msb1nkjqw6vhyln8m6h38 "r0zk217BP" "Lem" +$> diff -U 3 user_output_test19 test19.output | cat -e + +Diff OK :D += Test 20 ================================================== +$> ./va76iodxi2brhcrbillhsqm9 "wvyQba3YrzT7" "P2g4icuvr" +$> diff -U 3 user_output_test20 test20.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir01/traces/3-0_expand_str.trace b/exam-basedir01/traces/3-0_expand_str.trace new file mode 100644 index 0000000..b85bd79 --- /dev/null +++ b/exam-basedir01/traces/3-0_expand_str.trace @@ -0,0 +1,160 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r4p5.42.fr +Darwin 16.7.0 x86_64 +$> date +Fri Apr 13 12:14:47 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180413/tmaze + += Git history ================================================================== +$> git -C /var/folders/z0/z383yrl15zv962t1bhsr1jbm0000gq/T/tmpHOCR9H/user log --pretty='%H - %an, %ad : %s' +8c23b2844362a999283edf51405d739bb58ef972 - Tanguy MAZE, Fri Apr 13 12:14:36 2018 +0200 : expand_str +f04f956d0834716296c1766b0023c33bb352beae - Tanguy MAZE, Fri Apr 13 11:59:11 2018 +0200 : inter +2ab798b8f4f6d6877e6ba6a2f5930ee3c12c88ad - Tanguy MAZE, Fri Apr 13 11:44:16 2018 +0200 : ft_swap +2d8bf5c9f17b97a9c04b8c0254a84d64278f8821 - Tanguy MAZE, Fri Apr 13 11:40:49 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/z0/z383yrl15zv962t1bhsr1jbm0000gq/T/tmpHOCR9H/user +total 8 +-rw-r--r-- 1 deepthought deepthought 949 Apr 13 12:14 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 12:14 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 12:14 expand_str +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 12:14 ft_swap +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 12:14 inter + +/var/folders/z0/z383yrl15zv962t1bhsr1jbm0000gq/T/tmpHOCR9H/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 13 12:14 aff_z.c + +/var/folders/z0/z383yrl15zv962t1bhsr1jbm0000gq/T/tmpHOCR9H/user/expand_str: +total 8 +-rw-r--r-- 1 deepthought deepthought 1442 Apr 13 12:14 expand_str.c + +/var/folders/z0/z383yrl15zv962t1bhsr1jbm0000gq/T/tmpHOCR9H/user/ft_swap: +total 8 +-rw-r--r-- 1 deepthought deepthought 968 Apr 13 12:14 ft_swap.c + +/var/folders/z0/z383yrl15zv962t1bhsr1jbm0000gq/T/tmpHOCR9H/user/inter: +total 8 +-rw-r--r-- 1 deepthought deepthought 1433 Apr 13 12:14 inter.c + += expand_str =================================================================== +$> clang -Wextra -Wall -Werror expand_str.c -o user_exe + += Test 1 =================================================== +$> ./4mxb5l8d56xv5i2hmvrr7jq3 +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./1h6q7mzvzhg2a4i0e4s2ki4y +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./htld2om7h0ny6rqm4avaxaiy "salut" "a" "tous" "tout" "le" "monde" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./uzaj26ha0xx18el3y2bpzm0w "ZGlzAbSVxyOTjJEI" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./gch2pajiqq5yokg2zk1ruz5q "XqAMCx" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./8amnx8mzgfhncveffsotfw2q "27fycMY5Wj" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./myfv3b570mvs3i9u1v1v3t9c "dhNw0FmOJT4X73E F8Y2xj bSczLh hYljP8u2INCQJF HPNC" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./w0prgexvblme2dx09zq339qu "FUD4n PQb4vWJ0TLdIn NICOei3dZST F7TLhGlf2en6 5LUc2me bUqLBTgy3W28tk BxtyvhVcZ oQ5vjCbiAzapSdWlL vyco3xt0SjmWr7Ja" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D += Test 9 =================================================== +$> ./vjfbo9mtr1hvgca0deuo32gd "2QB7vtqy SJOf4AUmKlqZYo9GI sXW 2Gazd NvhCWs9 zbI sToODIqrM TNAeMCvHJZiy5n6 8XtYFyo1EpO vw04SNxfrTmyluQ JUiyOnfXSBzmQo SAY6z NLKwy TcnIRbJrg E2DHCfw4W6" +$> diff -U 3 user_output_test9 test9.output | cat -e + +Diff OK :D += Test 10 ================================================== +$> ./pitsg3pr5rez2cg2tt8j8w45 " iefjDtO9 9riCpHzWjB1b ZIBYbmth4V3Fk07yl H8x ysx5nD sFpynw4BX79EuQOR2 " +$> diff -U 3 user_output_test10 test10.output | cat -e + +Diff OK :D += Test 11 ================================================== +$> ./etr4qesw6obxjmy9v55zz1dj " fZHp KCQ2psoENJ m8Qos nO3HF2WYx uKY ZdwV7Fq2njPrGvOH Xj5ZJqYK8 0RxYFywJ41qrXi tjJsf5eUPd PqfYA2OWh9g " +$> diff -U 3 user_output_test11 test11.output | cat -e + +Diff OK :D += Test 12 ================================================== +$> ./igdhspotmaub93q4rj8yev8t " Dqj EthGzsoQv4wZ wiqyxHN78crzkG PYofvE " +$> diff -U 3 user_output_test12 test12.output | cat -e + +Diff OK :D += Test 13 ================================================== +$> ./3c5ce2ofjrw95w6onwen5t2n " jqQAlmDc4gs kWchX8ZUVmuAG SYHsnLIGTr uvVnA XnBLNZ dKACMZrXJVIQ aDh2VCKtvUz 1elR0CkSZxsu Tg67O S0OI1kV6TdPnez " +$> diff -U 3 user_output_test13 test13.output | cat -e + +Diff OK :D += Test 14 ================================================== +$> ./b35jiih2ldqsaorv8htk71nb " rwzDj8vW CqXBc9Tu SiTL8hZm1QXuv K3XQO8fxyV4cbrSmM HQf0GM69lUaz 57TXO4EGWAocjgLxs TrqH 5k7HLi6NwjyQxb 4heD " +$> diff -U 3 user_output_test14 test14.output | cat -e + +Diff OK :D += Test 15 ================================================== +$> ./m7e25fata668as5ysbw8illq " 37stlHq1aS zxRUiqfMpr MNWZElkjaVyob pkeYbFT6y qL2Z4b JlgncsMe E6I9SgHMVLdCa 4u7feL6Tmhi " +$> diff -U 3 user_output_test15 test15.output | cat -e + +Diff OK :D += Test 16 ================================================== +$> ./k90xq6xlu5i34i2aq7e187fb " aK39xLvQhY X8vt73 68IMPxEB wc0FmE6XBM jLOtQuEkPc3q UK93C5tlZvLxguaTb S9ltQCeDFbj0kr " +$> diff -U 3 user_output_test16 test16.output | cat -e + +Diff OK :D += Test 17 ================================================== +$> ./tpyq0o8rhae98ogwn27rgzsv " ekBVv7OT4twQ MdXFw0AU1nSr 7LgRaoT HPRQ7T2SCt " +$> diff -U 3 user_output_test17 test17.output | cat -e + +Diff OK :D += Test 18 ================================================== +$> ./7awagmxf6vg093a2f87p6n3t " NGZ6CvzufQHn BTy67jPlMcmpJEAa1 pxFhkXOW5V axrTE9b6cm PB9OIL2AvnZj HjMJu9gwnkZRXdCc7 " +$> diff -U 3 user_output_test18 test18.output | cat -e + +Diff OK :D += Test 19 ================================================== +$> ./8o22tl83r3xi98i88lp03qla " uRFE xs3aHFS5 HLNvrc SW0t8 MbDZ7o82cARqKh joynS etOBART3lE " +$> diff -U 3 user_output_test19 test19.output | cat -e + +Diff OK :D += Test 20 ================================================== +$> ./jv95u2a1ykwsi7intev7i8ey " CNT5UeM2fz 8eBzA40jLMI VqvpWOYK0FGZ wRpmSQ9zUfAJHlF jmUG6wqZ " +$> diff -U 3 user_output_test20 test20.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir01/traces/4-0_ft_split.trace b/exam-basedir01/traces/4-0_ft_split.trace new file mode 100644 index 0000000..26b74f1 --- /dev/null +++ b/exam-basedir01/traces/4-0_ft_split.trace @@ -0,0 +1,69 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r9p19.42.fr +Darwin 16.7.0 x86_64 +$> date +Fri Apr 13 12:54:38 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180413/tmaze + += Git history ================================================================== +$> git -C /var/folders/mw/8rbqlqyn62j570j_lsm5pvsm0000gq/T/tmpgcMtXU/user log --pretty='%H - %an, %ad : %s' +ea9350c4e0805d3a6b89a52b5ffe40109d62358d - Tanguy MAZE, Fri Apr 13 12:54:18 2018 +0200 : ft_split +8c23b2844362a999283edf51405d739bb58ef972 - Tanguy MAZE, Fri Apr 13 12:14:36 2018 +0200 : expand_str +f04f956d0834716296c1766b0023c33bb352beae - Tanguy MAZE, Fri Apr 13 11:59:11 2018 +0200 : inter +2ab798b8f4f6d6877e6ba6a2f5930ee3c12c88ad - Tanguy MAZE, Fri Apr 13 11:44:16 2018 +0200 : ft_swap +2d8bf5c9f17b97a9c04b8c0254a84d64278f8821 - Tanguy MAZE, Fri Apr 13 11:40:49 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/mw/8rbqlqyn62j570j_lsm5pvsm0000gq/T/tmpgcMtXU/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1208 Apr 13 12:54 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 12:54 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 12:54 expand_str +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 12:54 ft_split +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 12:54 ft_swap +drwxr-xr-x 3 deepthought deepthought 102 Apr 13 12:54 inter + +/var/folders/mw/8rbqlqyn62j570j_lsm5pvsm0000gq/T/tmpgcMtXU/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 13 12:54 aff_z.c + +/var/folders/mw/8rbqlqyn62j570j_lsm5pvsm0000gq/T/tmpgcMtXU/user/expand_str: +total 8 +-rw-r--r-- 1 deepthought deepthought 1442 Apr 13 12:54 expand_str.c + +/var/folders/mw/8rbqlqyn62j570j_lsm5pvsm0000gq/T/tmpgcMtXU/user/ft_split: +total 8 +-rw-r--r-- 1 deepthought deepthought 1993 Apr 13 12:54 ft_split.c + +/var/folders/mw/8rbqlqyn62j570j_lsm5pvsm0000gq/T/tmpgcMtXU/user/ft_swap: +total 8 +-rw-r--r-- 1 deepthought deepthought 968 Apr 13 12:54 ft_swap.c + +/var/folders/mw/8rbqlqyn62j570j_lsm5pvsm0000gq/T/tmpgcMtXU/user/inter: +total 8 +-rw-r--r-- 1 deepthought deepthought 1433 Apr 13 12:54 inter.c + += ft_split ===================================================================== +$> clang -Wextra -Wall -Werror ft_split.c main.c -o user_exe + += Test 1 =================================================== +$> ./fsdtxclewdd37bdsb17b6146 "" +Command './fsdtxclewdd37bdsb17b6146 ""' got killed by a Segmentation fault (Signal -11) +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir02/docs/GUIDELINES.en.md b/exam-basedir02/docs/GUIDELINES.en.md new file mode 100644 index 0000000..1523e39 --- /dev/null +++ b/exam-basedir02/docs/GUIDELINES.en.md @@ -0,0 +1,55 @@ +# General guidelines + +* No communication whatsoever is allowed. + +* This is an exam, you don't have a right to chat, listen to music, make noise, or generally do anything that may disturb the other students in any way. + +* Your phones and other technological devices must be turned off and put away. If a phone rings, the whole row will be disqualified from the exam and kicked out immediately. + +* Your home directory contains three directories : "rendu", "subjects" and "traces". + +* The "subjects" directory will contain the subjects of your assignments + +* The "rendu" folder is a clone of your Git turn-in repository. You will work in it, and use it as any regular Git repository. + +* The system will not grade anything that is not pushed on your Git turn-in repository, and at the right place. Pay attention to where examshell tells you to put your files. + +* You can only run your programs in the "rendu" directory or one of its subdirectories. + +* You may need to read the man to carry out some assignments... + +* You will be graded by a program. You must respect the specified file/path/function names to the letter. + +* Assignments will always specify which files will be collected : + + * When an assignment asks for specific files, they will be explicitly named. For example "file1.c file1.h". + + * Otherwise, when filenames and/or the number of files is up to you, the assignment will say something along the lines of "*.c *.h". + + * When a Makefile is required, it will ALWAYS be explicitly stated. + +* In case of technical problem, question about the subject, or any other problem, you must get up silently and wait for a member of the staff to come to you. It is forbidden to ask your neighbors, or to verbally call for a staff member. + +* Any equipment not explicitly allowed is implicitly forbidden. + +* Any exit is definitive, you can not come in again. + +* Staff members may kick you out of the exam without warning if they deem it necessary. + +* You are allowed blank pieces of paper, and a pen. No notebooks, notes, or any help of the sort. You are alone to face this exam. + +# Coding guidelines + +* Useful functions and files will sometimes be given to you in the subject directory + +* The correction is fully automated, and performed by the program we know as Deepthought. + +* When an assignment asks you to write a program with one or more explicitly named files, it will be compiled with the following command: clang -Wall -Wextra -Werror file1.c file2.c file3.c -o program_name. + +* When the assignment leaves the filenames up to you, it will be compiled with: clang -Wall -Wextra -Werror *.c -o program_name. + +* Finally, when you must only turn in a function (so, one file), it will be compiled with clang -c -Wall -Wextra -Werror yourfile.c, then we will compile our main function and link them together to create a test program. + +* Allowed functions will be specified in the headers of the assignments. You may recode any other function you think is necessary. Using a function that's not explicitly allowed is considered cheating, and will result in a failing grade, with no possible discussion or appeal whatsoever. You've been warned. + +* Any function that isn't explicitly allowed is implicitly forbidden. diff --git a/exam-basedir02/docs/GUIDELINES.fr.md b/exam-basedir02/docs/GUIDELINES.fr.md new file mode 100644 index 0000000..c565b66 --- /dev/null +++ b/exam-basedir02/docs/GUIDELINES.fr.md @@ -0,0 +1,54 @@ +# Consignes générales + +* Aucune communication, quelle qu'elle soit, n'est permise + +* Ceci est un examen, il est interdit de discuter, écouter de la musique, faire du bruit, ou de façon générale de faire quoi que ce soit qui puisse perturber le travail des autres étudiants. + +* Vos téléphones et autres appareils technologiques doivent être éteints et rangés. Pas en silencieux, éteints. Si un téléphone sonne, toute la rangée sera exclue immédiatement de l'examen. + +* Votre répertoire home contient trois répertoires : "rendu", "subjects" et "traces". + +* Le répertoire "subjects" contiendra les sujets de vos exercices + +* Le répertoire "rendu" contiendra un clone de votre dépôt Git de rendu. Vous y travaillerez, et l'utiliserez comme n'importe quel autre dépôt Git de rendu. + +* Le système ne corrigera rien qui n'est pas push sur votre dépôt de rendu à l'endroit correct. Faites attention à ce qu'examshell vous dit concernant les emplacements de rendu. + +* Vous ne pouvez lancer vos propres programmes que dans le répertoire "rendu" ou l'un de ses sous-répertoires. + +* Vous aurez peut-être besoin de lire les man pour certains exercices ... + +* Vous aller être corrigé par un programme. Vous devez donc respecter à la lettre les noms de fichiers/fonctions qui vous sont imposés. + +* Les exercices spécifient toujours les noms de fichiers qui vous sont demandés: + + * Quand on vous demande des fichiers spécifiques, ils seront nommés explicitement, par exemple "file1.c file1.h" + + * Quand les noms et le nombre de fichier sont à votre discrétion, on dira quelque chose comme "*.c *.h" + + * Quand il faut un Makefile, ce sera toujours explicitement précisé + +* En cas de problème technique, de question sur un sujet, ou tout autre souci, vous devez vous lever EN SILENCE et attendre qu'un membre du staff vienne vous voir. Il est interdit de demander à vos voisins, ou d'appeler verbalement un membre du staff. + +* Vous avez le droit à des feuilles vierges, un stylo, et c'est tout. Pas de cahiers, carnets, ou autres. Pas d'écouteurs, de casques, de portable, etc ... + +* Tout équipement qui n'est pas explicitement autorisé est implicitement interdit. + +* Toute sortie est définitive. + +* Les membres du staff peuvent vous exclure de l'examen sans préavis s'ils l'estiment nécessaire pour quelque raison que ce soit. + + +# Consignes relative au code + +* Des fonctions et fichiers utiles vous seront parfois donnés dans le répertoire du sujet + +* Les corrections sont entièrement automatiques et réalisées par un programme nommé Deepthought + +* Les programmes seront compilés avec "clang -Wall -Wextra -Werror" + +* Quand on ne vous demande qu'une fonction, et non un programme, cela signifie que votre fichier sera compilé accompagné de notre propre main.c + +* Les fonctions autorisées sont précisées dans les en-têtes des exercices. Vous pouvez recoder toute fonction que vous jugez nécessaire. Utiliser une fonction non-autorisée est assimilé à de la triche et résultera en un échec immédiat de l'exercice, sans appel. Vous êtes prévenu. + +* Toute fonction qui n'est pas explicitement autorisée est implicitement interdite diff --git a/exam-basedir02/docs/GUIDELINES.ro.md b/exam-basedir02/docs/GUIDELINES.ro.md new file mode 100644 index 0000000..56eeec6 --- /dev/null +++ b/exam-basedir02/docs/GUIDELINES.ro.md @@ -0,0 +1,56 @@ +#Reguli generale de urmat la examene + +*Nici un fel de comunicare nu este permisă. + +*Acesta este un examen, nu aveți dreptul să vorbiți, să ascultați muzică, să faceți zgomot sau să faceți ceva ce ar putea deranja pe ceilați studenți în vreun fel. + +*Telefoanele mobile sau orice alte dispozitive trebuie să fie închise și puse deoparte. Dacă sună vreun telefon, tot rândul va fi descalificat din examen și dat afară imediat! + +*Directorul vostru ”home” conține trei directoare: ”rendu”, ”subjects” și ”traces”. + +*Directorul ”subjects” va conține subiectul examenului vostru. + +*Directorul ”rendu” este o clonă a Git-ului vostru ”turn-in repository”. Veți lucra în el, și poate fi utilizat ca orice depozit Git regulat. + +*Sistemul nu va nota nimic ce nu este trimis pe Git ”turn-in repository” și în locul corect. Fiți foarte atenți unde ”examshell” va spune sa puneți fișierele voastre. + +*Puteți să vă rulați programele voastre în directorul ”rendu” sau în unul din subdirectoarele lui. + +*Este posibil să fie nevoie să citiți man-ul pentru a realiza un exercițiu.…. + +*Veți fi notați de un program. Trebuie să respectați specificațiile fisierului / căii (path) / numele funcțiilor EXACT așa cum este cerut. + +*Exercițiile vor specifica întotdeauna ce fișiere vor fi corectate: + + * Când un exercițiu cere un anumit fișier, acesta va fi numit explicit. De exemplu ”file1.c” sau ”file1.h” + + * Altfel, când numele sau numărul de fișiere este la latitudinea voastră, exercițiul va specifica ceva de genul ”*.c” sau ”*.h” + + * Când un ”Makefile” este cerut, va fi ÎNTOTDEAUNA specificată starea lui. + +* În cazul unei defecțiuni tehnice, întrebări despre subiect sau orice altă problemă, trebuie să te ridici în picioare, în liniște și să aștepți ca un membru al staff-ului sa vină la tine. Este interzis să îți întrebi vecinii sau să strigi după un membru al staff-ului. + +* Oricei echipament care nu este explicit permis, este implicit interzis. + +* Orice părăsire a sălii de examinare este definitivă, nu te mai poți întoarce. + +* Membri staff-ului vă pot da afară din examen, fără avertisment, în cazul în care consideră necesar. + +* Vă este permisă intrarea în sală cu o hartie albă și un pix, Fără caiete, notițe sau orice alt ajutor de acest fel. Ești singur ca să înfrunți acest examen. + +# Reguli pentru codare + +* Funcții folositoare sau fișiere vor fi date, câteodată, în directorul subiectului. + +* Corectarea este complet automată și se face de către un program pe care îl numim ”Deepthought” + +* Când un exercițiu îți cere să scrii un program cu unul sau mai multe nume de fișiere date explicit, va fi compliat cu următoarea comandă: ”clang -Wall -Wextra -Werror file1.c file2.c file3.c -o nume_program”. + +* Cand exercitiul lasa la latitudinea voastra numele fisierelor, exercitiul va fi compilat cu: clang -Wall -Wextra -Werror *.c -o program_name + +* Când trebuie doar să trimiteți o funcție (adică un fișier) va fi compilat cu ”clang -c -Wall -Wextra -Werror yourfile.c” apoi noi vom compila funcția noastră principală și le vom lega împreună pentru a crea un program de test. + +* Funcțiile permise vor fi specificate în antetele fiecărui exercițiu. Puteți recoda orice altă funcție credeți că este necesar. Folosirea unei funcții care nu este permisă în mod explicit este considerată trișare, și va duce la nepromovarea examenului, fără drept la discuții sau contenstații. Ați fost avertizați. + +*Orice funcție, care nu este permisă în mod explicit, este implicit interzisă + diff --git a/exam-basedir02/rendu b/exam-basedir02/rendu new file mode 160000 index 0000000..4f05818 --- /dev/null +++ b/exam-basedir02/rendu @@ -0,0 +1 @@ +Subproject commit 4f0581806228b31ae5df41cf7777e822056401d8 diff --git a/exam-basedir02/subjects/aff_a/subject.en.txt b/exam-basedir02/subjects/aff_a/subject.en.txt new file mode 100644 index 0000000..1bf7e2c --- /dev/null +++ b/exam-basedir02/subjects/aff_a/subject.en.txt @@ -0,0 +1,20 @@ +Assignment name : aff_a +Expected files : aff_a.c +Allowed functions: write +-------------------------------------------------------------------------------- + +Write a program that takes a string, and displays the first 'a' character it +encounters in it, followed by a newline. If there are no 'a' characters in the +string, the program just writes a newline. If the number of parameters is not +1, the program displays 'a' followed by a newline. + +Example: + +$> ./aff_a "abc" | cat -e +a$ +$> ./aff_a "RaInB0w d4Sh!" | cat -e +a$ +$> ./aff_a "ThE Ck3 Is L|3" | cat -e +$ +$> ./aff_a | cat -e +a$ diff --git a/exam-basedir02/subjects/aff_a/subject.fr.txt b/exam-basedir02/subjects/aff_a/subject.fr.txt new file mode 100644 index 0000000..8336e12 --- /dev/null +++ b/exam-basedir02/subjects/aff_a/subject.fr.txt @@ -0,0 +1,20 @@ +Assignment name : aff_a +Expected files : aff_a.c +Allowed functions: write +-------------------------------------------------------------------------------- + +Écrire un programme qui prend une chaîne de caractères et affiche le premier +caractère 'a' qu'il y rencontre, suivi d'un newline. S'il n'y a pas de +caractère 'a' dans la chaîne, le programme affiche juste un newline. Si le +nombre de paramètres n'est pas 1, le programme affiche 'a' suivi d'un newline. + +Exemple: + +$> ./aff_a "abc" | cat -e +a$ +$> ./aff_a "dubO a POIL" | cat -e +a$ +$> ./aff_a "zz sent le poney" | cat -e +$ +$> ./aff_a | cat -e +a$ diff --git a/exam-basedir02/subjects/aff_a/subject.ro.txt b/exam-basedir02/subjects/aff_a/subject.ro.txt new file mode 100644 index 0000000..f30b0a2 --- /dev/null +++ b/exam-basedir02/subjects/aff_a/subject.ro.txt @@ -0,0 +1,20 @@ +Exercitiu : aff_a +Fisiere de iesire : aff_a.c +Functii autorizate : write +-------------------------------------------------------------------------------- + +Scrieti un program ce ia ca parametru un sir de caractere, si care afiseaza la +iesirea standard primul caracter 'a' intalnit in acest sir, urmat de '\n'. Daca +nu este intalnit niciun caracter 'a', programul va afisa '\n'. Daca numarul de +parametri este diferit de 1, programul va afisa 'a' urmat de '\n'. + +Example: + +$> ./aff_a "abc" | cat -e +a$ +$> ./aff_a "dubO a POIL" | cat -e +a$ +$> ./aff_a "zz sent le poney" | cat -e +$ +$> ./aff_a | cat -e +a$ diff --git a/exam-basedir02/subjects/fprime/examples.txt b/exam-basedir02/subjects/fprime/examples.txt new file mode 100644 index 0000000..f9e17c2 --- /dev/null +++ b/exam-basedir02/subjects/fprime/examples.txt @@ -0,0 +1,16 @@ +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$ diff --git a/exam-basedir02/subjects/fprime/subject.en.txt b/exam-basedir02/subjects/fprime/subject.en.txt new file mode 100644 index 0000000..9d24167 --- /dev/null +++ b/exam-basedir02/subjects/fprime/subject.en.txt @@ -0,0 +1,33 @@ +Assignment name : fprime +Expected files : fprime.c +Allowed functions: printf, atoi +-------------------------------------------------------------------------------- + +Write a program that takes a positive int and displays its prime factors on the +standard output, followed by a newline. + +Factors must be displayed in ascending order and separated by '*', so that +the expression in the output gives the right result. + +If the number of parameters is not 1, simply display a newline. + +The input, when there's one, will be valid. + +Examples: + +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$ diff --git a/exam-basedir02/subjects/fprime/subject.fr.txt b/exam-basedir02/subjects/fprime/subject.fr.txt new file mode 100644 index 0000000..9bb4ed4 --- /dev/null +++ b/exam-basedir02/subjects/fprime/subject.fr.txt @@ -0,0 +1,35 @@ +Assignment name : fprime +Expected files : fprime.c +Allowed functions: printf, atoi +-------------------------------------------------------------------------------- + +Écrire un programme qui prend en paramètre un entier strictement positif, et +qui affiche sa décomposition en facteurs premiers sur la sortie standard, +suivie d'un '\n'. + +Les facteurs doivent être affichés dans l'ordre croissant et séparés par des +'*', de telle sorte que l'expression affichée donne le bon résultat. + +Si le nombre de paramètres est différent de 1, le programme doit afficher '\n'. + +L'entrée, quand elle est passée, sera toujours un nombre valide sans caractères +parasites. + +Exemple: + +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$ diff --git a/exam-basedir02/subjects/fprime/subject.ro.txt b/exam-basedir02/subjects/fprime/subject.ro.txt new file mode 100644 index 0000000..e41117b --- /dev/null +++ b/exam-basedir02/subjects/fprime/subject.ro.txt @@ -0,0 +1,34 @@ +Exercitiu : fprime +Fisiere de iesire : fprime.c +Functii autorizate : printf, atoi +-------------------------------------------------------------------------------- + +Scrieti un program ce ia ca parametru un intreg strict pozitiv si care va afisa +descompunerea in factori primi la iesirea standard, urmat de un '\n'. + +Factorii trebuie sa fie afisati in ordine crescatoare si separati de '*', +astfel incat expresia afisata sa dea rezultatul corect. + +Daca numarul de parametri este diferit de 1, programul va afisa '\n'. + +Parametrul de intrare, cand este transmis, va fi totdeauna un numar valid +fara caractere neconforme. + +Exemplu: + +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$ diff --git a/exam-basedir02/subjects/ft_atoi_base/subject.en.txt b/exam-basedir02/subjects/ft_atoi_base/subject.en.txt new file mode 100644 index 0000000..f0d4dde --- /dev/null +++ b/exam-basedir02/subjects/ft_atoi_base/subject.en.txt @@ -0,0 +1,20 @@ +Assignment name : ft_atoi_base +Expected files : ft_atoi_base.c +Allowed functions: None +-------------------------------------------------------------------------------- + +Write a function that converts the string argument str (base N <= 16) +to an integer (base 10) and returns it. + +The characters recognized in the input are: 0123456789abcdef +Those are, of course, to be trimmed according to the requested base. For +example, base 4 recognizes "0123" and base 16 recognizes "0123456789abcdef". + +Uppercase letters must also be recognized: "12fdb3" is the same as "12FDB3". + +Minus signs ('-') are interpreted only if they are the first character of the +string. + +Your function must be declared as follows: + +int ft_atoi_base(const char *str, int str_base); diff --git a/exam-basedir02/subjects/ft_atoi_base/subject.fr.txt b/exam-basedir02/subjects/ft_atoi_base/subject.fr.txt new file mode 100644 index 0000000..c737639 --- /dev/null +++ b/exam-basedir02/subjects/ft_atoi_base/subject.fr.txt @@ -0,0 +1,21 @@ +Assignment name : ft_atoi_base +Expected files : ft_atoi_base.c +Allowed functions: None +-------------------------------------------------------------------------------- + +Écrire une fonction qui convertit son argument 'str', une chaîne (en base N <= 16) +en un entier (base 10) et le retourne. + +Les caractères reconnus dans l'entrée sont : 0123456789abcdef +Bien entendu, la base demandée conditionne le nombre de caractères à prendre +en compte. Par exemple, la base 4 reconnaîtra "0123" et la base 16 reconnaîtra +"0123456789abcdef". + +Les majuscules marchent aussi : "12fdb3" est pareil que "12FDB3". + +Les caractères '-' doivent être interprétés seulement s'ils sont en première +position dans la chaîne. + +Votre fonction sera déclarée comme suit: + +int ft_atoi_base(const char *str, int str_base); diff --git a/exam-basedir02/subjects/ft_itoa/subject.en.txt b/exam-basedir02/subjects/ft_itoa/subject.en.txt new file mode 100644 index 0000000..54bf901 --- /dev/null +++ b/exam-basedir02/subjects/ft_itoa/subject.en.txt @@ -0,0 +1,11 @@ +Assignment name : ft_itoa +Expected files : ft_itoa.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Write a function that takes an int and converts it to a null-terminated string. +The function returns the result in a char array that you must allocate. + +Your function must be declared as follows: + +char *ft_itoa(int nbr); diff --git a/exam-basedir02/subjects/ft_itoa/subject.fr.txt b/exam-basedir02/subjects/ft_itoa/subject.fr.txt new file mode 100644 index 0000000..6acf5df --- /dev/null +++ b/exam-basedir02/subjects/ft_itoa/subject.fr.txt @@ -0,0 +1,12 @@ +Assignment name : ft_itoa +Expected files : ft_itoa.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Écrire une fonction qui prend un int et le convertit en chaîne terminée par un +caractère nul. Cette fonction retourne le résultat en tant qu'un tableau de +char que vous devez allouer. + +Votre fonction sera déclarée comme suit: + +char *ft_itoa(int nbr); diff --git a/exam-basedir02/subjects/ft_itoa/subject.ro.txt b/exam-basedir02/subjects/ft_itoa/subject.ro.txt new file mode 100644 index 0000000..3783bb3 --- /dev/null +++ b/exam-basedir02/subjects/ft_itoa/subject.ro.txt @@ -0,0 +1,10 @@ +Assignment name : ft_itoa +Expected files : ft_itoa.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Scrieti o functie care primeste un int si il converteste intr-un sir de caractere, care se termina cu null. Functia returneaza resultatul intr-un vector de char pe care trebuie sa il alocati. + +Functia trebuie declarata ca si mai jos: + +char *ft_itoa(int nbr); diff --git a/exam-basedir02/subjects/ft_itoa_base/subject.en.txt b/exam-basedir02/subjects/ft_itoa_base/subject.en.txt new file mode 100644 index 0000000..b5a5df0 --- /dev/null +++ b/exam-basedir02/subjects/ft_itoa_base/subject.en.txt @@ -0,0 +1,20 @@ +Assignment name : ft_itoa_base +Expected files : ft_itoa_base.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Write a function that converts an integer value to a null-terminated string +using the specified base and stores the result in a char array that you must +allocate. + +The base is expressed as an integer, from 2 to 16. The characters comprising +the base are the digits from 0 to 9, followed by uppercase letter from A to F. + +For example, base 4 would be "0123" and base 16 "0123456789ABCDEF". + +If base is 10 and value is negative, the resulting string is preceded with a +minus sign (-). With any other base, value is always considered unsigned. + +Your function must be declared as follows: + +char *ft_itoa_base(int value, int base); diff --git a/exam-basedir02/subjects/ft_itoa_base/subject.fr.txt b/exam-basedir02/subjects/ft_itoa_base/subject.fr.txt new file mode 100644 index 0000000..e52408b --- /dev/null +++ b/exam-basedir02/subjects/ft_itoa_base/subject.fr.txt @@ -0,0 +1,21 @@ +Assignment name : ft_itoa_base +Expected files : ft_itoa_base.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Écrire une fonction qui prend un int et le convertit en chaîne terminée par un +caractère nul, en utilisant la base passée en paramètre. Cette fonction +retourne le résultat en tant qu'un tableau de char que vous devez allouer. + +La base est exprimée par un entier qui va de 2 à 16. Les caractères composant +la base sont les chiffres de 0 à 9 suivis par les lettres majuscules A à F. + +Par exemple, la base 4 serait "0123" et la base 16 "0123456789ABCDEF". + +Si la base est 10 et la valeur est négative, la chaîne de sortie doit être +précédée d'un caractère '-'. Pour toute autre base, la valeur est toujours +considérée non-signée. + +Votre fonction doit être déclarée comme suit: + +char *ft_itoa_base(int value, int base); diff --git a/exam-basedir02/subjects/last_word/examples.txt b/exam-basedir02/subjects/last_word/examples.txt new file mode 100644 index 0000000..63250f2 --- /dev/null +++ b/exam-basedir02/subjects/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-basedir02/subjects/last_word/subject.en.txt b/exam-basedir02/subjects/last_word/subject.en.txt new file mode 100644 index 0000000..35d242c --- /dev/null +++ b/exam-basedir02/subjects/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-basedir02/subjects/last_word/subject.fr.txt b/exam-basedir02/subjects/last_word/subject.fr.txt new file mode 100644 index 0000000..a488c2e --- /dev/null +++ b/exam-basedir02/subjects/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-basedir02/subjects/last_word/subject.ro.txt b/exam-basedir02/subjects/last_word/subject.ro.txt new file mode 100644 index 0000000..242ba84 --- /dev/null +++ b/exam-basedir02/subjects/last_word/subject.ro.txt @@ -0,0 +1,27 @@ +Exercitiu : last_word +Fisiere de iesire : last_word.c +Functii autorizate : write +-------------------------------------------------------------------------------- + +Scrieti un program ce ia ca parametru un sir de caractere si care afiseaza ultimul +cuvant al acestui sir urmat de '\n'. + +Numim "cuvant" o portiune a sirului de caractere delimitat fie de spatii si/sau +tabulatoare, fie de incepulul ori sfarsitul sirului. + +Daca numarul de parametri transmis este diferit de 1, sau nu exista nicun cuvant +de afisat, programul va afisa '\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-basedir02/subjects/rostring/examples.txt b/exam-basedir02/subjects/rostring/examples.txt new file mode 100644 index 0000000..00fb058 --- /dev/null +++ b/exam-basedir02/subjects/rostring/examples.txt @@ -0,0 +1,12 @@ +$>./rostring "abc " | cat -e +abc$ +$> +$>./rostring "Que la lumiere soit et la lumiere fut" +la lumiere soit et la lumiere fut Que +$> +$>./rostring " AkjhZ zLKIJz , 23y" +zLKIJz , 23y AkjhZ +$> +$>./rostring | cat -e +$ +$> diff --git a/exam-basedir02/subjects/rostring/subject.en.txt b/exam-basedir02/subjects/rostring/subject.en.txt new file mode 100644 index 0000000..73db021 --- /dev/null +++ b/exam-basedir02/subjects/rostring/subject.en.txt @@ -0,0 +1,31 @@ +Assignment name : rostring +Expected files : rostring.c +Allowed functions: write, malloc, free +-------------------------------------------------------------------------------- + +Write a program that takes a string and displays this string after rotating it +one word to the left. + +Thus, the first word becomes the last, and others stay in the same order. + +A "word" is defined as a part of a string delimited either by spaces/tabs, or +by the start/end of the string. + +Words will be separated by only one space in the output. + +If there's less than one argument, the program displays \n. + +Example: + +$>./rostring "abc " | cat -e +abc$ +$> +$>./rostring "Que la lumiere soit et la lumiere fut" +la lumiere soit et la lumiere fut Que +$> +$>./rostring " AkjhZ zLKIJz , 23y" +zLKIJz , 23y AkjhZ +$> +$>./rostring | cat -e +$ +$> diff --git a/exam-basedir02/subjects/rostring/subject.fr.txt b/exam-basedir02/subjects/rostring/subject.fr.txt new file mode 100644 index 0000000..87f4440 --- /dev/null +++ b/exam-basedir02/subjects/rostring/subject.fr.txt @@ -0,0 +1,31 @@ +Assignment name : rostring +Expected files : rostring.c +Allowed functions: write, malloc, free +-------------------------------------------------------------------------------- + +Écrire un programme qui prend en paramètre une chaîne de caractères, et qui +affiche cette chaîne en procédant à une rotation d'un mot de droite à gauche. + +Ainsi, le premier mot se retrouve le dernier et les autres restent dans l'ordre. + +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. + +Les mots affichés seront séparés par un seul et unique espace. + +Si le nombre de paramètres est inférieur à 1, le programme devra afficher '\n'. + +Exemple: + +$>./rostring "abc " | cat -e +abc$ +$> +$>./rostring "Que la lumiere soit et la lumiere fut" +la lumiere soit et la lumiere fut Que +$> +$>./rostring " AkjhZ zLKIJz , 23y" +zLKIJz , 23y AkjhZ +$> +$>./rostring | cat -e +$ +$> diff --git a/exam-basedir02/subjects/rostring/subject.ro.txt b/exam-basedir02/subjects/rostring/subject.ro.txt new file mode 100644 index 0000000..aeecb05 --- /dev/null +++ b/exam-basedir02/subjects/rostring/subject.ro.txt @@ -0,0 +1,31 @@ +Exercitii : rostring +Fisiere de iesire : rostring.c +Functii de iesire : write, malloc, free +-------------------------------------------------------------------------------- + +Scrieti un program ce ia ca parametru un sir de caractere si care afiseaza acest +sir procedand la rotirea unui cuvant de la dreapta la stanga. + +Astfel, primul cuvant va deveni ultimul, iar celelalte vor ramane in aceeasi ordine. + +Numim "cuvant" o portiune a sirului de caractere delimitat fie de spatii si/sau +tabulatoare, fie de inceputul/sfarsitul sirului. + +Cuvintele vor fi afisate, separate de un singur spatiu. + +Daca numarul de parametri este inferior lui 1, programul va trebui sa afiseze '\n'. + +Exemplu: + +$>./rostring "abc " | cat -e +abc$ +$> +$>./rostring "Que la lumiere soit et la lumiere fut" +la lumiere soit et la lumiere fut Que +$> +$>./rostring " AkjhZ zLKIJz , 23y" +zLKIJz , 23y AkjhZ +$> +$>./rostring | cat -e +$ +$> diff --git a/exam-basedir02/subjects/rotone/examples.txt b/exam-basedir02/subjects/rotone/examples.txt new file mode 100644 index 0000000..b8db87f --- /dev/null +++ b/exam-basedir02/subjects/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-basedir02/subjects/rotone/subject.en.txt b/exam-basedir02/subjects/rotone/subject.en.txt new file mode 100644 index 0000000..093fc7a --- /dev/null +++ b/exam-basedir02/subjects/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-basedir02/subjects/rotone/subject.fr.txt b/exam-basedir02/subjects/rotone/subject.fr.txt new file mode 100644 index 0000000..07e5004 --- /dev/null +++ b/exam-basedir02/subjects/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-basedir02/subjects/rotone/subject.ro.txt b/exam-basedir02/subjects/rotone/subject.ro.txt new file mode 100644 index 0000000..d31f3d8 --- /dev/null +++ b/exam-basedir02/subjects/rotone/subject.ro.txt @@ -0,0 +1,30 @@ +Exercitiu : rotone +Fisiere de iesire : rotone.c +Functii autorizate : write +-------------------------------------------------------------------------------- + +Scrieti un program numit rotone, ce ia ca parametru un sir de caractere si care +afiseaza acest sir inlocuind fiecare caracter alfabetic cu caracterul urmator +in ordine alfabetica. + +'z' devine 'a' si 'Z' devine 'A'. Majusculele raman majuscule, iar minusculele +raman minuscule. + +Afisarea se termina intotdeauna cu un retur de linie. + +Daca numarul de parametri transmis este diferit de 1, programul va afisa '\n'. + +Exemplu: + +$>./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-basedir02/traces/0-0_aff_a.trace b/exam-basedir02/traces/0-0_aff_a.trace new file mode 100644 index 0000000..edbb9fe --- /dev/null +++ b/exam-basedir02/traces/0-0_aff_a.trace @@ -0,0 +1,72 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r2p22.42.fr +Darwin 16.7.0 x86_64 +$> date +Sun Apr 15 18:53:34 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180415/tmaze + += Git history ================================================================== +$> git -C /var/folders/gn/752g7c9969g_34cxrh7q_73w0000gq/T/tmpQBUvov/user log --pretty='%H - %an, %ad : %s' +7e6a238b497dc094b3da7b312c9947f083762a0b - Tanguy MAZE, Sun Apr 15 18:53:13 2018 +0200 : aff_a + += Collected files ========================================== +$> ls -lAR /var/folders/gn/752g7c9969g_34cxrh7q_73w0000gq/T/tmpQBUvov/user +total 8 +-rw-r--r-- 1 deepthought deepthought 231 Apr 15 18:53 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 18:53 aff_a + +/var/folders/gn/752g7c9969g_34cxrh7q_73w0000gq/T/tmpQBUvov/user/aff_a: +total 8 +-rw-r--r-- 1 deepthought deepthought 1173 Apr 15 18:53 aff_a.c + += aff_a ======================================================================== +$> clang -Wextra -Wall -Werror aff_a.c -o user_exe + += Test 1 =================================================== +$> ./ezfshj5q2zawxihsplzwj3vb +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./4lmsi690xwxu102bl347meqh "17" "23" "42" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./48tkangdfazmkooqx1gxbl3r "OaQ0" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./j9nj3whajx528tzlo9t4b5v2 "aChgWXdAP46LzQ" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./39e80kk37kkizsjzgtrcuil0 "Y0xe" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./w8vi5lv34vx69jn4deqsibs8 "xlgGHPL" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir02/traces/1-0_rotone.trace b/exam-basedir02/traces/1-0_rotone.trace new file mode 100644 index 0000000..bbefeab --- /dev/null +++ b/exam-basedir02/traces/1-0_rotone.trace @@ -0,0 +1,148 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r6p6.42.fr +Darwin 16.7.0 x86_64 +$> date +Sun Apr 15 19:02:49 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180415/tmaze + += Git history ================================================================== +$> git -C /var/folders/yt/j6phq77s49x1q7fnp3tn5l6m0000gq/T/tmpcL3Qu6/user log --pretty='%H - %an, %ad : %s' +6cbf3dea3a97b714b5a7e3503b16758fa4ca53ae - Tanguy MAZE, Sun Apr 15 19:02:40 2018 +0200 : rotone +7e6a238b497dc094b3da7b312c9947f083762a0b - Tanguy MAZE, Sun Apr 15 18:53:13 2018 +0200 : aff_a + += Collected files ========================================== +$> ls -lAR /var/folders/yt/j6phq77s49x1q7fnp3tn5l6m0000gq/T/tmpcL3Qu6/user +total 8 +-rw-r--r-- 1 deepthought deepthought 471 Apr 15 19:02 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 19:02 aff_a +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 19:02 rotone + +/var/folders/yt/j6phq77s49x1q7fnp3tn5l6m0000gq/T/tmpcL3Qu6/user/aff_a: +total 8 +-rw-r--r-- 1 deepthought deepthought 1173 Apr 15 19:02 aff_a.c + +/var/folders/yt/j6phq77s49x1q7fnp3tn5l6m0000gq/T/tmpcL3Qu6/user/rotone: +total 8 +-rw-r--r-- 1 deepthought deepthought 1276 Apr 15 19:02 rotone.c + += rotone ======================================================================= +$> clang -Wextra -Wall -Werror rotone.c -o user_exe + += Test 1 =================================================== +$> ./sr0aeykua2f7xqp3al5d4ndy +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./50vee23b62qgw6hl6p9h2461 +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./yrbhftewj049xn4bhio0ago7 "salut" "a" "tous" "tout" "le" "monde" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./g813zz7vce6iqa7id2a8k381 "X53rNJaH" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./sblc9wyswgompvar33yxpn21 "SFsU6kMB31cxj" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./ygbuidmj727ywzhd7hvnorwa "HJp" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./vuwx0n3vrzqsq231mo52n0r4 "5MR6VGDEcAiI EZQo1HJO yG8WeXDaBlCihfFLT yI4HvO" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./ytoscuxnm80ok82q37s7rsf3 "62dnRx9cH73MkS Pvk5Uj tjFL5 3x49VyDZW 0luk2g7 rw4y 7y0C45Wfeq g1U6ad8Hx QblJm tKUO hyEiUWLa19pMb5O 5LTV2EuZGm" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D += Test 9 =================================================== +$> ./46jomn8lhuc1u90tdd5bibyu "xdflAMVXtmb2gGB UsWq58yF4zLnGlS qXnHzI84Cv 7AxGhF5rE20TwvkK pDJmv8ZyMqj 3GcgRJOidYC54K uINozwkhXncBHd q0waRYPv1NE2 jJ4zERchblZ9q" +$> diff -U 3 user_output_test9 test9.output | cat -e + +Diff OK :D += Test 10 ================================================== +$> ./m9ttbkhfn80xtsqlw9t4zyts ":v6lKF1k9sSD)r7QoqvPcfGOSi02Kn7ZeoslQ8NAVx 25pWJygGz 0" +$> diff -U 3 user_output_test10 test10.output | cat -e + +Diff OK :D += Test 11 ================================================== +$> ./m65ik6zxavtze5ot3f6xb7b7 "2aK21E8w4DL 7OJ30pSxF9 " +$> diff -U 3 user_output_test11 test11.output | cat -e + +Diff OK :D += Test 12 ================================================== +$> ./fhjwk7fh3wn5w0ghrgsl7821 "(CfVXaj=3ZHO8jSscIkF:" +$> diff -U 3 user_output_test12 test12.output | cat -e + +Diff OK :D += Test 13 ================================================== +$> ./c6qee16x8zn3mxqhn5h1fw08 " .GW3e5uRFL 7" +$> diff -U 3 user_output_test13 test13.output | cat -e + +Diff OK :D += Test 14 ================================================== +$> ./v839w2yr65sdc1rgc8cr7z64 "3LpCq4 uBR8nY7yMvIizg @CsVN8fiJcnLhd ?R9peXOd -7gf3Dc1XPle3>tcVqE*" +$> diff -U 3 user_output_test14 test14.output | cat -e + +Diff OK :D += Test 15 ================================================== +$> ./g0aj2j9tr5vtxqczqsm1w7sk " ?x9MYbyw8TziCo=z8v55" +$> diff -U 3 user_output_test15 test15.output | cat -e + +Diff OK :D += Test 16 ================================================== +$> ./kodl3msjao4nh5t2de7m53ln "*YfFjn3pOJCWxETi@bM6c3zBXy5VeLF1" +$> diff -U 3 user_output_test16 test16.output | cat -e + +Diff OK :D += Test 17 ================================================== +$> ./dnrfwmil3ib5oowcsmvju2f4 "5Sdg5PW:9nrdAHq8savN0RZ2syYzkjbCJm xGuFV0pHQB SFbtwqrD31cG?MZrs01A6Lx3C4VEYBz7ZP5uAC3PNxZzjhT 0KnVSUMw23*YHgGUrx21X?" +$> diff -U 3 user_output_test17 test17.output | cat -e + +Diff OK :D += Test 18 ================================================== +$> ./7e6qutaqggut5i0c1sdzokgj "4GfNmuAKC8F520ldVEpmDax+" +$> diff -U 3 user_output_test18 test18.output | cat -e + +Diff OK :D += Test 19 ================================================== +$> ./pqmbc9unkidt86i6bbulfnyt "0dOLjcC8HG0JTImo :2Xizuv6c5LqRtFM45v ,tRe7CumU5Ia2pw*eK21vtAg3YHoPG7y>Y7Dbt1k -Gsqmh2H65ZITFgL3t " +$> diff -U 3 user_output_test19 test19.output | cat -e + +Diff OK :D += Test 20 ================================================== +$> ./n22ushkzrrrnhfghpf7ki1ue " h2uvZ4Lzdn (glaBT0ApdOZs =w52iEI ONjde 6jNpsXKUZ 2HVI13akJX7 *M0eNR4rZPq (8vkplrYeWfbq5U (" +$> diff -U 3 user_output_test20 test20.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir02/traces/2-0_last_word.trace b/exam-basedir02/traces/2-0_last_word.trace new file mode 100644 index 0000000..42b3625 --- /dev/null +++ b/exam-basedir02/traces/2-0_last_word.trace @@ -0,0 +1,154 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e3r3p7.42.fr +Darwin 16.7.0 x86_64 +$> date +Sun Apr 15 19:21:16 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180415/tmaze + += Git history ================================================================== +$> git -C /var/folders/z2/by9fztvn2gsc0l5_5rlwjxj80000gq/T/tmpH8Lgw0/user log --pretty='%H - %an, %ad : %s' +6d83726a6b82be8915fca3fc254d258ed7090e88 - Tanguy MAZE, Sun Apr 15 19:21:05 2018 +0200 : last_word +6cbf3dea3a97b714b5a7e3503b16758fa4ca53ae - Tanguy MAZE, Sun Apr 15 19:02:40 2018 +0200 : rotone +7e6a238b497dc094b3da7b312c9947f083762a0b - Tanguy MAZE, Sun Apr 15 18:53:13 2018 +0200 : aff_a + += Collected files ========================================== +$> ls -lAR /var/folders/z2/by9fztvn2gsc0l5_5rlwjxj80000gq/T/tmpH8Lgw0/user +total 8 +-rw-r--r-- 1 deepthought deepthought 731 Apr 15 19:21 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 19:21 aff_a +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 19:21 last_word +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 19:21 rotone + +/var/folders/z2/by9fztvn2gsc0l5_5rlwjxj80000gq/T/tmpH8Lgw0/user/aff_a: +total 8 +-rw-r--r-- 1 deepthought deepthought 1173 Apr 15 19:21 aff_a.c + +/var/folders/z2/by9fztvn2gsc0l5_5rlwjxj80000gq/T/tmpH8Lgw0/user/last_word: +total 8 +-rw-r--r-- 1 deepthought deepthought 1463 Apr 15 19:21 last_word.c + +/var/folders/z2/by9fztvn2gsc0l5_5rlwjxj80000gq/T/tmpH8Lgw0/user/rotone: +total 8 +-rw-r--r-- 1 deepthought deepthought 1276 Apr 15 19:21 rotone.c + += last_word ==================================================================== +$> clang -Wextra -Wall -Werror last_word.c -o user_exe + += Test 1 =================================================== +$> ./birzgojkhj9ddswht7dyqrcb +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./njj8wkplu36dhv9edo4dctik +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./5c5atrxzywx7b4zdoon6iwqk "salut" "a" "tous" "tout" "le" "monde" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./egmfgcscdrekvxv5meslss5o "enA7TMx" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./5up07lbj37newybzc2gyxbw3 "KztsfX9qcpb" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./l52zdlhm14gw6dd8qy925z73 "ib3awRtp1HfW" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./cv9w2dar4foyjuoo9sozjkxg "gmz kwKG7YS5h FVmeRIxNLH24kE WCF3M RZE36ckQvxbypg cWA1SuTtBngGlrs4v" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./2g8o6xbtu15jkjmv09vwkft5 "ATRQtP4GwaUL jO7EY3IpR94V EOv a0bdAnjltNk8M FiOK2 fuvUbGsZ xmBeA c248flAU tnh30yF7SV1 yoP trZTKRC0Y AeFOVG7 GZbtvzkCPr VNtjMgLUxefQ1iBC 8CqEc1K" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D += Test 9 =================================================== +$> ./fhd0oq05923whufd5686cmvu "cOawiREpILD lXAIhNS70M2kgC I51XKe FyIs5ta kL8p rwmR97QU45YVXTxOZ yRVF Sp7MQnOof2BWxlhd T4KmxNrERPJ5u KWxw2AkYjvBCn1O4 sTb6YKzRlokvZ85p Z84m6U EIZulayk3 CHp62cSky1JrBKX mro 4Cl" +$> diff -U 3 user_output_test9 test9.output | cat -e + +Diff OK :D += Test 10 ================================================== +$> ./d64fo2osc7iu59loje5vdvz9 " diff -U 3 user_output_test10 test10.output | cat -e + +Diff OK :D += Test 11 ================================================== +$> ./afd0qk1yjufclpie3533v9un "7cJNft9ehCnsxqL0kVESWO whTvSlCJVPW3q4 diff -U 3 user_output_test11 test11.output | cat -e + +Diff OK :D += Test 12 ================================================== +$> ./w13b7uhxzhkjq65jg6pxcm4c ">LSAmO *oX5mctyO(HV8gBhkdUC " +$> diff -U 3 user_output_test12 test12.output | cat -e + +Diff OK :D += Test 13 ================================================== +$> ./4b8sdd13p4zlv53hucce5clb " +rRtSw3ncH5GPk;xnJGFRqP2Y8X +LjHgXMQYbw2BhrA11eIluqvh8aBAYk(ieT 170vz5i,rufV2oJsp50NY4" +$> diff -U 3 user_output_test13 test13.output | cat -e + +Diff OK :D += Test 14 ================================================== +$> ./cpu7vr77p8l48ae2kivg6zxp "-w8vDhH11VLBsUZmScMHKu80tfTmZwqecx9Oky4ud ;" +$> diff -U 3 user_output_test14 test14.output | cat -e + +Diff OK :D += Test 15 ================================================== +$> ./xa5qvxlep9q3z5qkk4woa57r " rI5iocPdRmNg3 @of5MdhQFwtlND0Rj2>L5qSchZbB +LW3i9Rs0YkKS WEK0UcH2PRh83pfCA3KV lUfOiE:LE4hR;" +$> diff -U 3 user_output_test15 test15.output | cat -e + +Diff OK :D += Test 16 ================================================== +$> ./qlp5iask2jafi1zkesauullg " 7TBnHfXYb86QmIqgVs4PeDali5HBXh9eYviFkSdygNQ3*" +$> diff -U 3 user_output_test16 test16.output | cat -e + +Diff OK :D += Test 17 ================================================== +$> ./qrdoypdnlxt1fszbthttj9k0 ")TAMy9GwQ <" +$> diff -U 3 user_output_test17 test17.output | cat -e + +Diff OK :D += Test 18 ================================================== +$> ./a5zric6x40eg98dhdr1tenrk " =1qYTEcpMCKk )Lj04l35.NZ0q6ErWbj T0NlXy8U7wa31j9 .GFZvla48Tmn *hu0odfLbQ>" +$> diff -U 3 user_output_test18 test18.output | cat -e + +Diff OK :D += Test 19 ================================================== +$> ./jrb5fonq3xjm61mtwut9np5s " /xkuKObVUPQeh4tm ?bB6GXmS.Ranb6mJs8iusZU83vAYSwk5/YERj6DmJ-Qax3cGUuhoSDw;PBJ3-" +$> diff -U 3 user_output_test19 test19.output | cat -e + +Diff OK :D += Test 20 ================================================== +$> ./51relk86o6wrlnqdkk86oxqo " 6rqy Neg4HPacRO DyANrS9gCQ)" +$> diff -U 3 user_output_test20 test20.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir02/traces/3-0_ft_atoi_base.trace b/exam-basedir02/traces/3-0_ft_atoi_base.trace new file mode 100644 index 0000000..9cc58ae --- /dev/null +++ b/exam-basedir02/traces/3-0_ft_atoi_base.trace @@ -0,0 +1,160 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r4p6.42.fr +Darwin 16.7.0 x86_64 +$> date +Sun Apr 15 20:13:22 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180415/tmaze + += Git history ================================================================== +$> git -C /var/folders/p7/2hgwzwv96m12qmfm2ncsp6z80000gq/T/tmpDqWqa2/user log --pretty='%H - %an, %ad : %s' +c3407605045e34e5ec46745468c80ed637c04ddc - Tanguy MAZE, Sun Apr 15 20:12:52 2018 +0200 : ft_atoi_base +6d83726a6b82be8915fca3fc254d258ed7090e88 - Tanguy MAZE, Sun Apr 15 19:21:05 2018 +0200 : last_word +6cbf3dea3a97b714b5a7e3503b16758fa4ca53ae - Tanguy MAZE, Sun Apr 15 19:02:40 2018 +0200 : rotone +7e6a238b497dc094b3da7b312c9947f083762a0b - Tanguy MAZE, Sun Apr 15 18:53:13 2018 +0200 : aff_a + += Collected files ========================================== +$> ls -lAR /var/folders/p7/2hgwzwv96m12qmfm2ncsp6z80000gq/T/tmpDqWqa2/user +total 8 +-rw-r--r-- 1 deepthought deepthought 994 Apr 15 20:13 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 20:13 aff_a +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 20:13 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 20:13 last_word +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 20:13 rotone + +/var/folders/p7/2hgwzwv96m12qmfm2ncsp6z80000gq/T/tmpDqWqa2/user/aff_a: +total 8 +-rw-r--r-- 1 deepthought deepthought 1173 Apr 15 20:13 aff_a.c + +/var/folders/p7/2hgwzwv96m12qmfm2ncsp6z80000gq/T/tmpDqWqa2/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 15 20:13 ft_atoi_base.c + +/var/folders/p7/2hgwzwv96m12qmfm2ncsp6z80000gq/T/tmpDqWqa2/user/last_word: +total 8 +-rw-r--r-- 1 deepthought deepthought 1463 Apr 15 20:13 last_word.c + +/var/folders/p7/2hgwzwv96m12qmfm2ncsp6z80000gq/T/tmpDqWqa2/user/rotone: +total 8 +-rw-r--r-- 1 deepthought deepthought 1276 Apr 15 20:13 rotone.c + += ft_atoi_base ================================================================= +$> clang -Wextra -Wall -Werror ft_atoi_base.c main.c -o user_exe + += Test 1 =================================================== +$> ./nniwepcc4bf716mbquid38y6 +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./pjfwxp1mvpr1l8vwn67pyfld "21" "2313" "12" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./je3vfvi2gfvipin4mduavehw "2147483647" "10" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./91o58o7st9u5s2yxbfyyllk8 "-2147483648" "10" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./t429n189gcb6cv8lys7v4urf "0" "2" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./137etmngkcwzwyurlalaqbfc "--223" "10" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./7pl9bgzankmujlvxod6s71z1 "463262768" "12" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./ysmwzvzbx2e4cji0uhqc2keo "2260135104" "8" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D += Test 9 =================================================== +$> ./1mg80ppd38lb036pr601l1a5 "4807B94" "13" +$> diff -U 3 user_output_test9 test9.output | cat -e + +Diff OK :D += Test 10 ================================================== +$> ./ccimt84kkc6czztuyum8cppl "212200210121210021" "3" +$> diff -U 3 user_output_test10 test10.output | cat -e + +Diff OK :D += Test 11 ================================================== +$> ./x9nhzrc9sxt2aawzu5wgyg6j "-10111010110101011100000100" "2" +$> diff -U 3 user_output_test11 test11.output | cat -e + +Diff OK :D += Test 12 ================================================== +$> ./lbr16qgy4gak73ul1pb0mu8l "48C14A51" "15" +$> diff -U 3 user_output_test12 test12.output | cat -e + +Diff OK :D += Test 13 ================================================== +$> ./e0fv7ojp4ez1ipv1dy0dqfsj "1212022133321313" "4" +$> diff -U 3 user_output_test13 test13.output | cat -e + +Diff OK :D += Test 14 ================================================== +$> ./rsoge09fe9ox4lknzhreawxw "38aA7Bd7" "14" +$> diff -U 3 user_output_test14 test14.output | cat -e + +Diff OK :D += Test 15 ================================================== +$> ./exqo8yikhjvktrmprz2av1z9 "10101212212202010121" "3" +$> diff -U 3 user_output_test15 test15.output | cat -e + +Diff OK :D += Test 16 ================================================== +$> ./2bxuavqqac8zhr56rsm41l9v "1312333330200112" "4" +$> diff -U 3 user_output_test16 test16.output | cat -e + +Diff OK :D += Test 17 ================================================== +$> ./hyc9zvid45pjod98tndhfg0b "4aC339E7" "15" +$> diff -U 3 user_output_test17 test17.output | cat -e + +Diff OK :D += Test 18 ================================================== +$> ./abepkj4auy9wga7yecrvmu4m "19782B933" "12" +$> diff -U 3 user_output_test18 test18.output | cat -e + +Diff OK :D += Test 19 ================================================== +$> ./o7qzj96i9e1y9w8oqq1iez7c "220201120022001122" "3" +$> diff -U 3 user_output_test19 test19.output | cat -e + +Diff OK :D += Test 20 ================================================== +$> ./jbhkikge8uicanl8zztk5fn7 "40a76aa79" "12" +$> diff -U 3 user_output_test20 test20.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir02/traces/4-0_ft_itoa_base.trace b/exam-basedir02/traces/4-0_ft_itoa_base.trace new file mode 100644 index 0000000..79b7f1d --- /dev/null +++ b/exam-basedir02/traces/4-0_ft_itoa_base.trace @@ -0,0 +1,67 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r2p17.42.fr +Darwin 16.7.0 x86_64 +$> date +Sun Apr 15 21:01:50 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180415/tmaze + += Git history ================================================================== +$> git -C /var/folders/s0/pmy608wd3y76cch8zwjlwv780000gq/T/tmpPtYH1V/user log --pretty='%H - %an, %ad : %s' +6d5a04375cefa27e521dd4713b33a37e0ce2b579 - Tanguy MAZE, Sun Apr 15 21:01:39 2018 +0200 : ft_itoa_base +c3407605045e34e5ec46745468c80ed637c04ddc - Tanguy MAZE, Sun Apr 15 20:12:52 2018 +0200 : ft_atoi_base +6d83726a6b82be8915fca3fc254d258ed7090e88 - Tanguy MAZE, Sun Apr 15 19:21:05 2018 +0200 : last_word +6cbf3dea3a97b714b5a7e3503b16758fa4ca53ae - Tanguy MAZE, Sun Apr 15 19:02:40 2018 +0200 : rotone +7e6a238b497dc094b3da7b312c9947f083762a0b - Tanguy MAZE, Sun Apr 15 18:53:13 2018 +0200 : aff_a + += Collected files ========================================== +$> ls -lAR /var/folders/s0/pmy608wd3y76cch8zwjlwv780000gq/T/tmpPtYH1V/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1257 Apr 15 21:01 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:01 aff_a +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:01 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:01 ft_itoa_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:01 last_word +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:01 rotone + +/var/folders/s0/pmy608wd3y76cch8zwjlwv780000gq/T/tmpPtYH1V/user/aff_a: +total 8 +-rw-r--r-- 1 deepthought deepthought 1173 Apr 15 21:01 aff_a.c + +/var/folders/s0/pmy608wd3y76cch8zwjlwv780000gq/T/tmpPtYH1V/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 15 21:01 ft_atoi_base.c + +/var/folders/s0/pmy608wd3y76cch8zwjlwv780000gq/T/tmpPtYH1V/user/ft_itoa_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1664 Apr 15 21:01 ft_itoa_base.c + +/var/folders/s0/pmy608wd3y76cch8zwjlwv780000gq/T/tmpPtYH1V/user/last_word: +total 8 +-rw-r--r-- 1 deepthought deepthought 1463 Apr 15 21:01 last_word.c + +/var/folders/s0/pmy608wd3y76cch8zwjlwv780000gq/T/tmpPtYH1V/user/rotone: +total 8 +-rw-r--r-- 1 deepthought deepthought 1276 Apr 15 21:01 rotone.c + += ft_itoa_base ================================================================= +$> clang -Wextra -Wall -Werror ft_itoa_base.c main.c -o user_exe + +Forbidden function call in 'ft_itoa_base.c': 'printf' +Grade: -42 + += Final grade: -42 ============================================================= diff --git a/exam-basedir02/traces/4-1_ft_itoa.trace b/exam-basedir02/traces/4-1_ft_itoa.trace new file mode 100644 index 0000000..3d8e90e --- /dev/null +++ b/exam-basedir02/traces/4-1_ft_itoa.trace @@ -0,0 +1,94 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r1p11.42.fr +Darwin 16.7.0 x86_64 +$> date +Sun Apr 15 21:06:25 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180415/tmaze + += Git history ================================================================== +$> git -C /var/folders/cn/w8pk5pms1qj2tcpx8z2zvlmc0000gq/T/tmp220vQZ/user log --pretty='%H - %an, %ad : %s' +4f0581806228b31ae5df41cf7777e822056401d8 - Tanguy MAZE, Sun Apr 15 21:06:15 2018 +0200 : ft_itoa +6d5a04375cefa27e521dd4713b33a37e0ce2b579 - Tanguy MAZE, Sun Apr 15 21:01:39 2018 +0200 : ft_itoa_base +c3407605045e34e5ec46745468c80ed637c04ddc - Tanguy MAZE, Sun Apr 15 20:12:52 2018 +0200 : ft_atoi_base +6d83726a6b82be8915fca3fc254d258ed7090e88 - Tanguy MAZE, Sun Apr 15 19:21:05 2018 +0200 : last_word +6cbf3dea3a97b714b5a7e3503b16758fa4ca53ae - Tanguy MAZE, Sun Apr 15 19:02:40 2018 +0200 : rotone +7e6a238b497dc094b3da7b312c9947f083762a0b - Tanguy MAZE, Sun Apr 15 18:53:13 2018 +0200 : aff_a + += Collected files ========================================== +$> ls -lAR /var/folders/cn/w8pk5pms1qj2tcpx8z2zvlmc0000gq/T/tmp220vQZ/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1515 Apr 15 21:06 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:06 aff_a +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:06 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:06 ft_itoa +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:06 ft_itoa_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:06 last_word +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:06 rotone + +/var/folders/cn/w8pk5pms1qj2tcpx8z2zvlmc0000gq/T/tmp220vQZ/user/aff_a: +total 8 +-rw-r--r-- 1 deepthought deepthought 1173 Apr 15 21:06 aff_a.c + +/var/folders/cn/w8pk5pms1qj2tcpx8z2zvlmc0000gq/T/tmp220vQZ/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 15 21:06 ft_atoi_base.c + +/var/folders/cn/w8pk5pms1qj2tcpx8z2zvlmc0000gq/T/tmp220vQZ/user/ft_itoa: +total 8 +-rw-r--r-- 1 deepthought deepthought 1480 Apr 15 21:06 ft_itoa.c + +/var/folders/cn/w8pk5pms1qj2tcpx8z2zvlmc0000gq/T/tmp220vQZ/user/ft_itoa_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1664 Apr 15 21:06 ft_itoa_base.c + +/var/folders/cn/w8pk5pms1qj2tcpx8z2zvlmc0000gq/T/tmp220vQZ/user/last_word: +total 8 +-rw-r--r-- 1 deepthought deepthought 1463 Apr 15 21:06 last_word.c + +/var/folders/cn/w8pk5pms1qj2tcpx8z2zvlmc0000gq/T/tmp220vQZ/user/rotone: +total 8 +-rw-r--r-- 1 deepthought deepthought 1276 Apr 15 21:06 rotone.c + += ft_itoa ====================================================================== +$> clang -Wextra -Wall -Werror main.c ft_itoa.c -o user_exe +ft_itoa.c:30:14: error: use of undeclared identifier 'value' + nb = ft_abs(value); + ^ +ft_itoa.c:36:9: error: use of undeclared identifier 'base'; did you mean 'else'? + div /= base; + ^~~~ + else +ft_itoa.c:36:9: error: expected expression +ft_itoa.c:37:18: error: use of undeclared identifier 'value' + if (div == 1 || value < 0) + ^ +ft_itoa.c:43:6: error: use of undeclared identifier 'value' + if (value < 0 && ++i) + ^ +ft_itoa.c:45:6: error: use of undeclared identifier 'value' + if (value == 0) + ^ +ft_itoa.c:20:20: error: unused parameter 'nbr' [-Werror,-Wunused-parameter] +char *ft_itoa(int nbr) + ^ +7 errors generated. + +Could not compile 'user_exe' +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir02/traces/4-2_fprime.trace b/exam-basedir02/traces/4-2_fprime.trace new file mode 100644 index 0000000..4b326c3 --- /dev/null +++ b/exam-basedir02/traces/4-2_fprime.trace @@ -0,0 +1,71 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e3r9p9.42.fr +Darwin 16.7.0 x86_64 +$> date +Sun Apr 15 21:08:52 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180415/tmaze + += Git history ================================================================== +$> git -C /var/folders/2y/85898_k55r56djp9ndnbw65r0000gq/T/tmp43mwXU/user log --pretty='%H - %an, %ad : %s' +4f0581806228b31ae5df41cf7777e822056401d8 - Tanguy MAZE, Sun Apr 15 21:06:15 2018 +0200 : ft_itoa +6d5a04375cefa27e521dd4713b33a37e0ce2b579 - Tanguy MAZE, Sun Apr 15 21:01:39 2018 +0200 : ft_itoa_base +c3407605045e34e5ec46745468c80ed637c04ddc - Tanguy MAZE, Sun Apr 15 20:12:52 2018 +0200 : ft_atoi_base +6d83726a6b82be8915fca3fc254d258ed7090e88 - Tanguy MAZE, Sun Apr 15 19:21:05 2018 +0200 : last_word +6cbf3dea3a97b714b5a7e3503b16758fa4ca53ae - Tanguy MAZE, Sun Apr 15 19:02:40 2018 +0200 : rotone +7e6a238b497dc094b3da7b312c9947f083762a0b - Tanguy MAZE, Sun Apr 15 18:53:13 2018 +0200 : aff_a + += Collected files ========================================== +$> ls -lAR /var/folders/2y/85898_k55r56djp9ndnbw65r0000gq/T/tmp43mwXU/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1515 Apr 15 21:08 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:08 aff_a +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:08 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:08 ft_itoa +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:08 ft_itoa_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:08 last_word +drwxr-xr-x 3 deepthought deepthought 102 Apr 15 21:08 rotone + +/var/folders/2y/85898_k55r56djp9ndnbw65r0000gq/T/tmp43mwXU/user/aff_a: +total 8 +-rw-r--r-- 1 deepthought deepthought 1173 Apr 15 21:08 aff_a.c + +/var/folders/2y/85898_k55r56djp9ndnbw65r0000gq/T/tmp43mwXU/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 15 21:08 ft_atoi_base.c + +/var/folders/2y/85898_k55r56djp9ndnbw65r0000gq/T/tmp43mwXU/user/ft_itoa: +total 8 +-rw-r--r-- 1 deepthought deepthought 1480 Apr 15 21:08 ft_itoa.c + +/var/folders/2y/85898_k55r56djp9ndnbw65r0000gq/T/tmp43mwXU/user/ft_itoa_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1664 Apr 15 21:08 ft_itoa_base.c + +/var/folders/2y/85898_k55r56djp9ndnbw65r0000gq/T/tmp43mwXU/user/last_word: +total 8 +-rw-r--r-- 1 deepthought deepthought 1463 Apr 15 21:08 last_word.c + +/var/folders/2y/85898_k55r56djp9ndnbw65r0000gq/T/tmp43mwXU/user/rotone: +total 8 +-rw-r--r-- 1 deepthought deepthought 1276 Apr 15 21:08 rotone.c + += fprime ======================================================================= +Nothing turned in +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir03/docs/GUIDELINES.en.md b/exam-basedir03/docs/GUIDELINES.en.md new file mode 100644 index 0000000..1523e39 --- /dev/null +++ b/exam-basedir03/docs/GUIDELINES.en.md @@ -0,0 +1,55 @@ +# General guidelines + +* No communication whatsoever is allowed. + +* This is an exam, you don't have a right to chat, listen to music, make noise, or generally do anything that may disturb the other students in any way. + +* Your phones and other technological devices must be turned off and put away. If a phone rings, the whole row will be disqualified from the exam and kicked out immediately. + +* Your home directory contains three directories : "rendu", "subjects" and "traces". + +* The "subjects" directory will contain the subjects of your assignments + +* The "rendu" folder is a clone of your Git turn-in repository. You will work in it, and use it as any regular Git repository. + +* The system will not grade anything that is not pushed on your Git turn-in repository, and at the right place. Pay attention to where examshell tells you to put your files. + +* You can only run your programs in the "rendu" directory or one of its subdirectories. + +* You may need to read the man to carry out some assignments... + +* You will be graded by a program. You must respect the specified file/path/function names to the letter. + +* Assignments will always specify which files will be collected : + + * When an assignment asks for specific files, they will be explicitly named. For example "file1.c file1.h". + + * Otherwise, when filenames and/or the number of files is up to you, the assignment will say something along the lines of "*.c *.h". + + * When a Makefile is required, it will ALWAYS be explicitly stated. + +* In case of technical problem, question about the subject, or any other problem, you must get up silently and wait for a member of the staff to come to you. It is forbidden to ask your neighbors, or to verbally call for a staff member. + +* Any equipment not explicitly allowed is implicitly forbidden. + +* Any exit is definitive, you can not come in again. + +* Staff members may kick you out of the exam without warning if they deem it necessary. + +* You are allowed blank pieces of paper, and a pen. No notebooks, notes, or any help of the sort. You are alone to face this exam. + +# Coding guidelines + +* Useful functions and files will sometimes be given to you in the subject directory + +* The correction is fully automated, and performed by the program we know as Deepthought. + +* When an assignment asks you to write a program with one or more explicitly named files, it will be compiled with the following command: clang -Wall -Wextra -Werror file1.c file2.c file3.c -o program_name. + +* When the assignment leaves the filenames up to you, it will be compiled with: clang -Wall -Wextra -Werror *.c -o program_name. + +* Finally, when you must only turn in a function (so, one file), it will be compiled with clang -c -Wall -Wextra -Werror yourfile.c, then we will compile our main function and link them together to create a test program. + +* Allowed functions will be specified in the headers of the assignments. You may recode any other function you think is necessary. Using a function that's not explicitly allowed is considered cheating, and will result in a failing grade, with no possible discussion or appeal whatsoever. You've been warned. + +* Any function that isn't explicitly allowed is implicitly forbidden. diff --git a/exam-basedir03/docs/GUIDELINES.fr.md b/exam-basedir03/docs/GUIDELINES.fr.md new file mode 100644 index 0000000..c565b66 --- /dev/null +++ b/exam-basedir03/docs/GUIDELINES.fr.md @@ -0,0 +1,54 @@ +# Consignes générales + +* Aucune communication, quelle qu'elle soit, n'est permise + +* Ceci est un examen, il est interdit de discuter, écouter de la musique, faire du bruit, ou de façon générale de faire quoi que ce soit qui puisse perturber le travail des autres étudiants. + +* Vos téléphones et autres appareils technologiques doivent être éteints et rangés. Pas en silencieux, éteints. Si un téléphone sonne, toute la rangée sera exclue immédiatement de l'examen. + +* Votre répertoire home contient trois répertoires : "rendu", "subjects" et "traces". + +* Le répertoire "subjects" contiendra les sujets de vos exercices + +* Le répertoire "rendu" contiendra un clone de votre dépôt Git de rendu. Vous y travaillerez, et l'utiliserez comme n'importe quel autre dépôt Git de rendu. + +* Le système ne corrigera rien qui n'est pas push sur votre dépôt de rendu à l'endroit correct. Faites attention à ce qu'examshell vous dit concernant les emplacements de rendu. + +* Vous ne pouvez lancer vos propres programmes que dans le répertoire "rendu" ou l'un de ses sous-répertoires. + +* Vous aurez peut-être besoin de lire les man pour certains exercices ... + +* Vous aller être corrigé par un programme. Vous devez donc respecter à la lettre les noms de fichiers/fonctions qui vous sont imposés. + +* Les exercices spécifient toujours les noms de fichiers qui vous sont demandés: + + * Quand on vous demande des fichiers spécifiques, ils seront nommés explicitement, par exemple "file1.c file1.h" + + * Quand les noms et le nombre de fichier sont à votre discrétion, on dira quelque chose comme "*.c *.h" + + * Quand il faut un Makefile, ce sera toujours explicitement précisé + +* En cas de problème technique, de question sur un sujet, ou tout autre souci, vous devez vous lever EN SILENCE et attendre qu'un membre du staff vienne vous voir. Il est interdit de demander à vos voisins, ou d'appeler verbalement un membre du staff. + +* Vous avez le droit à des feuilles vierges, un stylo, et c'est tout. Pas de cahiers, carnets, ou autres. Pas d'écouteurs, de casques, de portable, etc ... + +* Tout équipement qui n'est pas explicitement autorisé est implicitement interdit. + +* Toute sortie est définitive. + +* Les membres du staff peuvent vous exclure de l'examen sans préavis s'ils l'estiment nécessaire pour quelque raison que ce soit. + + +# Consignes relative au code + +* Des fonctions et fichiers utiles vous seront parfois donnés dans le répertoire du sujet + +* Les corrections sont entièrement automatiques et réalisées par un programme nommé Deepthought + +* Les programmes seront compilés avec "clang -Wall -Wextra -Werror" + +* Quand on ne vous demande qu'une fonction, et non un programme, cela signifie que votre fichier sera compilé accompagné de notre propre main.c + +* Les fonctions autorisées sont précisées dans les en-têtes des exercices. Vous pouvez recoder toute fonction que vous jugez nécessaire. Utiliser une fonction non-autorisée est assimilé à de la triche et résultera en un échec immédiat de l'exercice, sans appel. Vous êtes prévenu. + +* Toute fonction qui n'est pas explicitement autorisée est implicitement interdite diff --git a/exam-basedir03/docs/GUIDELINES.ro.md b/exam-basedir03/docs/GUIDELINES.ro.md new file mode 100644 index 0000000..56eeec6 --- /dev/null +++ b/exam-basedir03/docs/GUIDELINES.ro.md @@ -0,0 +1,56 @@ +#Reguli generale de urmat la examene + +*Nici un fel de comunicare nu este permisă. + +*Acesta este un examen, nu aveți dreptul să vorbiți, să ascultați muzică, să faceți zgomot sau să faceți ceva ce ar putea deranja pe ceilați studenți în vreun fel. + +*Telefoanele mobile sau orice alte dispozitive trebuie să fie închise și puse deoparte. Dacă sună vreun telefon, tot rândul va fi descalificat din examen și dat afară imediat! + +*Directorul vostru ”home” conține trei directoare: ”rendu”, ”subjects” și ”traces”. + +*Directorul ”subjects” va conține subiectul examenului vostru. + +*Directorul ”rendu” este o clonă a Git-ului vostru ”turn-in repository”. Veți lucra în el, și poate fi utilizat ca orice depozit Git regulat. + +*Sistemul nu va nota nimic ce nu este trimis pe Git ”turn-in repository” și în locul corect. Fiți foarte atenți unde ”examshell” va spune sa puneți fișierele voastre. + +*Puteți să vă rulați programele voastre în directorul ”rendu” sau în unul din subdirectoarele lui. + +*Este posibil să fie nevoie să citiți man-ul pentru a realiza un exercițiu.…. + +*Veți fi notați de un program. Trebuie să respectați specificațiile fisierului / căii (path) / numele funcțiilor EXACT așa cum este cerut. + +*Exercițiile vor specifica întotdeauna ce fișiere vor fi corectate: + + * Când un exercițiu cere un anumit fișier, acesta va fi numit explicit. De exemplu ”file1.c” sau ”file1.h” + + * Altfel, când numele sau numărul de fișiere este la latitudinea voastră, exercițiul va specifica ceva de genul ”*.c” sau ”*.h” + + * Când un ”Makefile” este cerut, va fi ÎNTOTDEAUNA specificată starea lui. + +* În cazul unei defecțiuni tehnice, întrebări despre subiect sau orice altă problemă, trebuie să te ridici în picioare, în liniște și să aștepți ca un membru al staff-ului sa vină la tine. Este interzis să îți întrebi vecinii sau să strigi după un membru al staff-ului. + +* Oricei echipament care nu este explicit permis, este implicit interzis. + +* Orice părăsire a sălii de examinare este definitivă, nu te mai poți întoarce. + +* Membri staff-ului vă pot da afară din examen, fără avertisment, în cazul în care consideră necesar. + +* Vă este permisă intrarea în sală cu o hartie albă și un pix, Fără caiete, notițe sau orice alt ajutor de acest fel. Ești singur ca să înfrunți acest examen. + +# Reguli pentru codare + +* Funcții folositoare sau fișiere vor fi date, câteodată, în directorul subiectului. + +* Corectarea este complet automată și se face de către un program pe care îl numim ”Deepthought” + +* Când un exercițiu îți cere să scrii un program cu unul sau mai multe nume de fișiere date explicit, va fi compliat cu următoarea comandă: ”clang -Wall -Wextra -Werror file1.c file2.c file3.c -o nume_program”. + +* Cand exercitiul lasa la latitudinea voastra numele fisierelor, exercitiul va fi compilat cu: clang -Wall -Wextra -Werror *.c -o program_name + +* Când trebuie doar să trimiteți o funcție (adică un fișier) va fi compilat cu ”clang -c -Wall -Wextra -Werror yourfile.c” apoi noi vom compila funcția noastră principală și le vom lega împreună pentru a crea un program de test. + +* Funcțiile permise vor fi specificate în antetele fiecărui exercițiu. Puteți recoda orice altă funcție credeți că este necesar. Folosirea unei funcții care nu este permisă în mod explicit este considerată trișare, și va duce la nepromovarea examenului, fără drept la discuții sau contenstații. Ați fost avertizați. + +*Orice funcție, care nu este permisă în mod explicit, este implicit interzisă + diff --git a/exam-basedir03/rendu b/exam-basedir03/rendu new file mode 160000 index 0000000..e0802ac --- /dev/null +++ b/exam-basedir03/rendu @@ -0,0 +1 @@ +Subproject commit e0802ac7c8b281a2f83c460339aacabcf73501ce diff --git a/exam-basedir03/subjects/aff_z/examples.txt b/exam-basedir03/subjects/aff_z/examples.txt new file mode 100644 index 0000000..f15ada3 --- /dev/null +++ b/exam-basedir03/subjects/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-basedir03/subjects/aff_z/subject.en.txt b/exam-basedir03/subjects/aff_z/subject.en.txt new file mode 100644 index 0000000..e11a0b3 --- /dev/null +++ b/exam-basedir03/subjects/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-basedir03/subjects/aff_z/subject.fr.txt b/exam-basedir03/subjects/aff_z/subject.fr.txt new file mode 100644 index 0000000..196702e --- /dev/null +++ b/exam-basedir03/subjects/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-basedir03/subjects/aff_z/subject.ro.txt b/exam-basedir03/subjects/aff_z/subject.ro.txt new file mode 100644 index 0000000..1400b1e --- /dev/null +++ b/exam-basedir03/subjects/aff_z/subject.ro.txt @@ -0,0 +1,19 @@ +Exercitiu : aff_z +Fisiere de iesire : aff_z.c +Functii autorizate : write +-------------------------------------------------------------------------------- +Scrieti un program ce ia ca parametru un sir de caractere, si care afiseaza la +iesirea standard primul caracter 'z' intalnit in acest sir, urmat de '\n'. Daca +nu este intalnit niciun caracter 'z', programul va afisa 'z' urmat de '\n'. Daca +numarul de parametri este diferit de 1, programul va afisa 'z' urmat de '\n'. + +Example: + +$> ./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-basedir03/subjects/brainfuck/examples.txt b/exam-basedir03/subjects/brainfuck/examples.txt new file mode 100644 index 0000000..b5bc38a --- /dev/null +++ b/exam-basedir03/subjects/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-basedir03/subjects/brainfuck/subject.en.txt b/exam-basedir03/subjects/brainfuck/subject.en.txt new file mode 100644 index 0000000..a926e71 --- /dev/null +++ b/exam-basedir03/subjects/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-basedir03/subjects/brainfuck/subject.fr.txt b/exam-basedir03/subjects/brainfuck/subject.fr.txt new file mode 100644 index 0000000..2a15973 --- /dev/null +++ b/exam-basedir03/subjects/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-basedir03/subjects/brainfuck/subject.ro.txt b/exam-basedir03/subjects/brainfuck/subject.ro.txt new file mode 100644 index 0000000..8239d58 --- /dev/null +++ b/exam-basedir03/subjects/brainfuck/subject.ro.txt @@ -0,0 +1,32 @@ +Exercitiu : brainfuck +Fisiere de iesire : *.c, *.h +Functii autorizate : write, malloc, free +-------------------------------------------------------------------------------- + +Scrieti un interpretor de programe numit Brainfuck. +Codul sursa va fi dat ca primul argument. +Codul va fi mereu valid, cu cel mult 4096 operatii. +Barinfuck este un limbaj minimal. Contine un vector de bytes +(pentru acest exercitiu, 2048 bytes) initializati cu zero, si +un pointer spre primul byte. + +Fiecare operator consista dintr-un singur caracter: +- '>' incrementeaza pointerul ; +- '<' decrementeaza pointerul ; +- '+' incrementeaza byte-ul la care pointeaza ; +- '-' decrementeaza byte-ul la care pointeaza ; +- '.' printeaza la iesirea standard byte-ul spre care pointeaza ; +- '[' du-te la perechea ']' byte-ul la care pointeaza e 0 (while start) ; +- ']' du-te la perechea '[' byte-ul la care pointeaza nu e 0 (while end). + +Orice alt caracter este un comentariu. + +Examples: + +$>./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-] +>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e +Hello World!$ +$>./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e +Hi$ +$>./brainfuck | cat -e +$ diff --git a/exam-basedir03/subjects/flood_fill/subject.en.txt b/exam-basedir03/subjects/flood_fill/subject.en.txt new file mode 100644 index 0000000..75607b3 --- /dev/null +++ b/exam-basedir03/subjects/flood_fill/subject.en.txt @@ -0,0 +1,60 @@ +Assignment name : flood_fill +Expected files : *.c, *.h +Allowed functions: - +-------------------------------------------------------------------------------- + +Write a function that takes a char ** as a 2-dimensional array of char, a +t_point as the dimensions of this array and a t_point as the starting point. + +Starting from the given 'begin' t_point, this function 'colors' an entire zone +by replacing characters inside by the character 'F'. A zone is an ensemble of +the same character delimitated horizontally and vertically by other characters. + +The flood_fill function won't 'color' in diagonal. + +The flood_fill function will be prototyped like this: + void flood_fill(char **tab, t_point size, t_point begin); + +The t_point structure is available inside the "t_point.h" file attached to this +assignment. We will use our "t_point.h" for graduation. + +Example : + +$> cat test_main.c +#include "test_functions.h" +#include "flood_fill.h" + +int main(void) +{ + char **area; + t_point size = { 8, 5 }; + t_point begin = { 2, 2 }; + char *zone[] = { + "11111111", + "10001001", + "10010001", + "10110001", + "11100001" + }; + + area = make_area(zone); + print_tab(area); + flood_fill(area, size, begin); + putc('\n'); + print_tab(area); + return (0); +} + +$> gcc flood_fill.c test_main.c test_functions.c -o flood_fill ; ./flood_fill +1 1 1 1 1 1 1 1 +1 0 0 0 1 0 0 1 +1 0 0 1 0 0 0 1 +1 0 1 1 0 0 0 1 +1 1 1 0 0 0 0 1 + +1 1 1 1 1 1 1 1 +1 F F F 1 0 0 1 +1 F F 1 0 0 0 1 +1 F 1 1 0 0 0 1 +1 1 1 0 0 0 0 1 +$> diff --git a/exam-basedir03/subjects/flood_fill/subject.fr.txt b/exam-basedir03/subjects/flood_fill/subject.fr.txt new file mode 100644 index 0000000..0d83415 --- /dev/null +++ b/exam-basedir03/subjects/flood_fill/subject.fr.txt @@ -0,0 +1,62 @@ +Assignment name : flood_fill +Expected files : *.c, *.h +Allowed functions: - +-------------------------------------------------------------------------------- + +Ecrivez une fonction qui prends en paramètres un char** qui sera une aire à 2 +dimensions, une structure de type t_point qui donnera la longueur et la largeur +de cette aire, et une structure de type t_point symbolisant le point de départ. + +Cette fonction devra 'colorer' une zone de l'aire donnée en argument, en +remplaçant les caractères de cette zone par des 'F'. Une zone est un ensemble +de mêmes caractères, délimitée horizontalement et verticalement par d'autres +caractères. + +La fonction flood_fill ne 'colore' pas en diagonale. + +La fonction flood_fill devra être prototypée comme suit : + void flood_fill(char **tab, t_point size, t_point begin); + +La structure t_point est présente dans le fichier "t_point.h" mis en annexe +de ce sujet. Nous utiliserons notre "t_point.h" pour le rendu. + +Exemple: + +$>cat test_main.c +#include "test_functions.h" +#include "t_point.h" + +int main(void) +{ + char **area; + t_point size = { 8, 5 }; + t_point begin = { 2, 2 }; + char *zone[] = { + "11111111", + "10001001", + "10010001", + "10110001", + "11100001" + }; + + area = make_area(zone); + print_tab(area); + flood_fill(area, size, begin); + putc('\n'); + print_tab(area); + return (0); +} + +$> gcc flood_fill.c test_main.c test_functions.c -o flood_fill ; ./flood_fill +1 1 1 1 1 1 1 1 +1 0 0 0 1 0 0 1 +1 0 0 1 0 0 0 1 +1 0 1 1 0 0 0 1 +1 1 1 0 0 0 0 1 + +1 1 1 1 1 1 1 1 +1 F F F 1 0 0 1 +1 F F 1 0 0 0 1 +1 F 1 1 0 0 0 1 +1 1 1 0 0 0 0 1 +$> diff --git a/exam-basedir03/subjects/flood_fill/t_point.h b/exam-basedir03/subjects/flood_fill/t_point.h new file mode 100644 index 0000000..46c77a7 --- /dev/null +++ b/exam-basedir03/subjects/flood_fill/t_point.h @@ -0,0 +1,10 @@ +#ifndef T_POINT_FLOOD_FILL +# define T_POINT_FLOOD_FILL + +typedef struct s_point { + int x; // x : Width | x-axis + int y; // y : Height | y-axis +} t_point; + +#endif + diff --git a/exam-basedir03/subjects/ft_atoi_base/subject.en.txt b/exam-basedir03/subjects/ft_atoi_base/subject.en.txt new file mode 100644 index 0000000..f0d4dde --- /dev/null +++ b/exam-basedir03/subjects/ft_atoi_base/subject.en.txt @@ -0,0 +1,20 @@ +Assignment name : ft_atoi_base +Expected files : ft_atoi_base.c +Allowed functions: None +-------------------------------------------------------------------------------- + +Write a function that converts the string argument str (base N <= 16) +to an integer (base 10) and returns it. + +The characters recognized in the input are: 0123456789abcdef +Those are, of course, to be trimmed according to the requested base. For +example, base 4 recognizes "0123" and base 16 recognizes "0123456789abcdef". + +Uppercase letters must also be recognized: "12fdb3" is the same as "12FDB3". + +Minus signs ('-') are interpreted only if they are the first character of the +string. + +Your function must be declared as follows: + +int ft_atoi_base(const char *str, int str_base); diff --git a/exam-basedir03/subjects/ft_atoi_base/subject.fr.txt b/exam-basedir03/subjects/ft_atoi_base/subject.fr.txt new file mode 100644 index 0000000..c737639 --- /dev/null +++ b/exam-basedir03/subjects/ft_atoi_base/subject.fr.txt @@ -0,0 +1,21 @@ +Assignment name : ft_atoi_base +Expected files : ft_atoi_base.c +Allowed functions: None +-------------------------------------------------------------------------------- + +Écrire une fonction qui convertit son argument 'str', une chaîne (en base N <= 16) +en un entier (base 10) et le retourne. + +Les caractères reconnus dans l'entrée sont : 0123456789abcdef +Bien entendu, la base demandée conditionne le nombre de caractères à prendre +en compte. Par exemple, la base 4 reconnaîtra "0123" et la base 16 reconnaîtra +"0123456789abcdef". + +Les majuscules marchent aussi : "12fdb3" est pareil que "12FDB3". + +Les caractères '-' doivent être interprétés seulement s'ils sont en première +position dans la chaîne. + +Votre fonction sera déclarée comme suit: + +int ft_atoi_base(const char *str, int str_base); diff --git a/exam-basedir03/subjects/ft_itoa/subject.en.txt b/exam-basedir03/subjects/ft_itoa/subject.en.txt new file mode 100644 index 0000000..54bf901 --- /dev/null +++ b/exam-basedir03/subjects/ft_itoa/subject.en.txt @@ -0,0 +1,11 @@ +Assignment name : ft_itoa +Expected files : ft_itoa.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Write a function that takes an int and converts it to a null-terminated string. +The function returns the result in a char array that you must allocate. + +Your function must be declared as follows: + +char *ft_itoa(int nbr); diff --git a/exam-basedir03/subjects/ft_itoa/subject.fr.txt b/exam-basedir03/subjects/ft_itoa/subject.fr.txt new file mode 100644 index 0000000..6acf5df --- /dev/null +++ b/exam-basedir03/subjects/ft_itoa/subject.fr.txt @@ -0,0 +1,12 @@ +Assignment name : ft_itoa +Expected files : ft_itoa.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Écrire une fonction qui prend un int et le convertit en chaîne terminée par un +caractère nul. Cette fonction retourne le résultat en tant qu'un tableau de +char que vous devez allouer. + +Votre fonction sera déclarée comme suit: + +char *ft_itoa(int nbr); diff --git a/exam-basedir03/subjects/ft_itoa/subject.ro.txt b/exam-basedir03/subjects/ft_itoa/subject.ro.txt new file mode 100644 index 0000000..3783bb3 --- /dev/null +++ b/exam-basedir03/subjects/ft_itoa/subject.ro.txt @@ -0,0 +1,10 @@ +Assignment name : ft_itoa +Expected files : ft_itoa.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Scrieti o functie care primeste un int si il converteste intr-un sir de caractere, care se termina cu null. Functia returneaza resultatul intr-un vector de char pe care trebuie sa il alocati. + +Functia trebuie declarata ca si mai jos: + +char *ft_itoa(int nbr); diff --git a/exam-basedir03/subjects/ft_putstr/subject.en.txt b/exam-basedir03/subjects/ft_putstr/subject.en.txt new file mode 100644 index 0000000..243e4d8 --- /dev/null +++ b/exam-basedir03/subjects/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-basedir03/subjects/ft_putstr/subject.fr.txt b/exam-basedir03/subjects/ft_putstr/subject.fr.txt new file mode 100644 index 0000000..94183ee --- /dev/null +++ b/exam-basedir03/subjects/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-basedir03/subjects/ft_putstr/subject.ro.txt b/exam-basedir03/subjects/ft_putstr/subject.ro.txt new file mode 100644 index 0000000..8ba38fc --- /dev/null +++ b/exam-basedir03/subjects/ft_putstr/subject.ro.txt @@ -0,0 +1,12 @@ +Exercitiu : ft_putstr +Fisiere de iesire : ft_putstr.c +Functii autorizate : write +-------------------------------------------------------------------------------- + +Scrieti o functie ce afiseaza un sir de caractere la iesirea standard. + +Pointerul catre functie este adresa primului caracter al sirului. + +Ea trebuie sa aiba prototipul urmator: + +void ft_putstr(char *str); diff --git a/exam-basedir03/subjects/ft_rrange/subject.en.txt b/exam-basedir03/subjects/ft_rrange/subject.en.txt new file mode 100644 index 0000000..f9129bc --- /dev/null +++ b/exam-basedir03/subjects/ft_rrange/subject.en.txt @@ -0,0 +1,19 @@ +Assignment name : ft_rrange +Expected files : ft_rrange.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Write the following function: + +int *ft_rrange(int start, int end); + +It must allocate (with malloc()) an array of integers, fill it with consecutive +values that begin at end and end at start (Including start and end !), then +return a pointer to the first value of the array. + +Examples: + +- With (1, 3) you will return an array containing 3, 2 and 1 +- With (-1, 2) you will return an array containing 2, 1, 0 and -1. +- With (0, 0) you will return an array containing 0. +- With (0, -3) you will return an array containing -3, -2, -1 and 0. diff --git a/exam-basedir03/subjects/ft_rrange/subject.fr.txt b/exam-basedir03/subjects/ft_rrange/subject.fr.txt new file mode 100644 index 0000000..1a1e44c --- /dev/null +++ b/exam-basedir03/subjects/ft_rrange/subject.fr.txt @@ -0,0 +1,19 @@ +Assignment name : ft_rrange +Expected files : ft_rrange.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Écrire la fonction suivante : + +int *ft_rrange(int start, int end); + +Cette fonction doit allouer avec malloc() un tableau d'ints, le remplir avec +les valeurs (consécutives) démarrant à end et finissant à start (start et end +inclus !), et renvoyer un pointeur vers la première valeur du tableau. + +Exemples: + +- Avec (1, 3) vous devrez renvoyer un tableau contenant 3, 2 et 1. +- Avec (-1, 2) vous devrez renvoyer un tableau contenant 2, 1, 0 et -1. +- Avec (0, 0) vous devrez renvoyer un tableau contenant 0. +- Avec (0, -3) vous devrez renvoyer un tableau contenant -3, -2, -1 et 0. diff --git a/exam-basedir03/subjects/ft_rrange/subject.ro.txt b/exam-basedir03/subjects/ft_rrange/subject.ro.txt new file mode 100644 index 0000000..73695c6 --- /dev/null +++ b/exam-basedir03/subjects/ft_rrange/subject.ro.txt @@ -0,0 +1,22 @@ +Exercitiu : ft_rrange +Fisier de iesire : ft_rrange.c +Functii autorizate : malloc +-------------------------------------------------------------------------------- +Scrieti functia urmatoare: + +int *ft_rrange(int start, int end); + +Aceasta functie trebuie sa aloce cu ajutorul functiei malloc() un tablou de +intregi si sa-l umple valori (consecutive) incepand cu endsi terminand cu start +(start si end incluse!), si sa returneze un pointer spre prima valoare a tabloului. + +Exemplu: + + +Cu parametri (1, 3) trebuie sa returnati un tablou continand valorile 3, 2 si 1. + +Cu parametri (-1, 2) trebuie sa returnati un tablou continand valorile 2, 1, 0 si -1. + +Cu parametri (0, 0) trebuie sa returnati un tablou continand valorile 0. + +Cu parametri (0, -3) trebuie sa returnati un tablou continand valorile -3, -2, -1 si 0. diff --git a/exam-basedir03/subjects/ft_split/subject.en.txt b/exam-basedir03/subjects/ft_split/subject.en.txt new file mode 100644 index 0000000..97375e9 --- /dev/null +++ b/exam-basedir03/subjects/ft_split/subject.en.txt @@ -0,0 +1,14 @@ +Assignment name : ft_split +Expected files : ft_split.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Write a function that takes a string, splits it into words, and returns them as +a NULL-terminated array of strings. + +A "word" is defined as a part of a string delimited either by spaces/tabs/new +lines, or by the start/end of the string. + +Your function must be declared as follows: + +char **ft_split(char *str); diff --git a/exam-basedir03/subjects/ft_split/subject.fr.txt b/exam-basedir03/subjects/ft_split/subject.fr.txt new file mode 100644 index 0000000..acd1b41 --- /dev/null +++ b/exam-basedir03/subjects/ft_split/subject.fr.txt @@ -0,0 +1,16 @@ +Assignment name : ft_split +Expected files : ft_split.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Écrire une fonction qui prend en paramètre une chaîne de caractères et la +découpe en mots, qui seront retournés sous la forme d'un tableau de chaînes +terminé par NULL. + +On appelle "mot" une portion de chaîne de caractères délimitée soit par des +espaces, des retours à la ligne et/ou des tabulations, soit par le début / fin +de la chaîne. + +Votre fonction devra être prototypée de la façon suivante : + +char **ft_split(char *str); diff --git a/exam-basedir03/subjects/ft_split/subject.ro.txt b/exam-basedir03/subjects/ft_split/subject.ro.txt new file mode 100644 index 0000000..4bc5c42 --- /dev/null +++ b/exam-basedir03/subjects/ft_split/subject.ro.txt @@ -0,0 +1,15 @@ +Exercitiu : ft_split +Fisier de iesire : ft_split.c +Functii autorizate : malloc +-------------------------------------------------------------------------------- + +Scrieti o functie ce ia ca parametru un sir de caractere si pe care il separa +in cuvinte, ce vor fi returnate sub forma unui tablou siruri terminate cu NULL. + +Numim "cuvant" o portiune a a sirului de caractere delimitate de fie de spatii +si/sau tabulatoare, fie de inceputul/sfarsitul sirului. + +Functia va trebui sa aiba urmatorul prototip: + +char **ft_split(char *str); + diff --git a/exam-basedir03/subjects/max/subject.en.txt b/exam-basedir03/subjects/max/subject.en.txt new file mode 100644 index 0000000..554b275 --- /dev/null +++ b/exam-basedir03/subjects/max/subject.en.txt @@ -0,0 +1,15 @@ +Assignment name : max +Expected files : max.c +Allowed functions: +-------------------------------------------------------------------------------- + +Write the following function: + +int max(int* tab, unsigned int len); + +The first parameter is an array of int, the second is the number of elements in +the array. + +The function returns the largest number found in the array. + +If the array is empty, the function returns 0. diff --git a/exam-basedir03/subjects/max/subject.fr.txt b/exam-basedir03/subjects/max/subject.fr.txt new file mode 100644 index 0000000..43bd4e4 --- /dev/null +++ b/exam-basedir03/subjects/max/subject.fr.txt @@ -0,0 +1,15 @@ +Assignment name : max +Expected files : max.c +Allowed functions: +-------------------------------------------------------------------------------- + +Écrire la fonction suivante: + +int max(int *tab, unsigned int len); + +Le premier paramètre est un tableau d'int, le deuxième est le nombre d'éléments +contenus dans ce tableau. + +La fonction renvoie le plus grand nombre trouvé dans le tableau. + +Si le tableau est vide, la fonction renvoie 0. diff --git a/exam-basedir03/subjects/max/subject.ro.txt b/exam-basedir03/subjects/max/subject.ro.txt new file mode 100644 index 0000000..282639c --- /dev/null +++ b/exam-basedir03/subjects/max/subject.ro.txt @@ -0,0 +1,15 @@ +Exercitiu : max +Fisiere de iesire : max.c +Functii autorizate : +-------------------------------------------------------------------------------- + +Scrieti functia urmatoare: + + int max(int* tab, unsigned int len); + +Primul parametru este un tablou de intregi, al doile este numarul de elemente +continute in tablou. + +Functia trebuie sa returmeze cel mai mare numar gasit in tablou. + +Daca tabloul este vid, functia va returna 0. diff --git a/exam-basedir03/subjects/moment/subject.en.txt b/exam-basedir03/subjects/moment/subject.en.txt new file mode 100644 index 0000000..716c5c5 --- /dev/null +++ b/exam-basedir03/subjects/moment/subject.en.txt @@ -0,0 +1,29 @@ +Assignment name : moment +Expected files : moment.c +Allowed functions: malloc, free +-------------------------------------------------------------------------------- + +Create a function that takes a duration in seconds as parameter and returns a +string with the number of seconds, minutes, hours, days or months elapsed. +This function supposes that months are 30-days long and ignores leap years. + +The format of this string will be : + + xxx {second(s)|minute(s)|hour(s)|day(s)|month(s)} ago. + +Your function should return the lowest possible value (as you can see below +in the examples). + +The prototype of this function will be : + + char *moment(unsigned int duration) + +Examples: + +moment(0) => 0 seconds ago. +moment(1) => 1 second ago. +moment(30) => 30 seconds ago. +moment(65) => 1 minute ago. +moment(120) => 2 minutes ago. +moment(2400) => 40 minutes ago. +moment(3735) => 1 hour ago. diff --git a/exam-basedir03/subjects/moment/subject.fr.txt b/exam-basedir03/subjects/moment/subject.fr.txt new file mode 100644 index 0000000..0cf9f64 --- /dev/null +++ b/exam-basedir03/subjects/moment/subject.fr.txt @@ -0,0 +1,28 @@ +Assignment name : moment +Expected files : moment.c +Allowed functions: malloc, free +-------------------------------------------------------------------------------- + +Créer une fonction qui prends un unsigned int en paramètre, représentant une +potentielle durée en secondes, et renvoie une chaîne de caractères qui indique le +nombre de secondes / minutes / heures / jours ou mois écoulés. +On supposera que les mois font 30 jours de long et on ignore les années bissextiles. + +Le format de sortie sera : + + xxx {second(s)|minute(s)|hour(s)|day(s)|month(s)} ago. + +Votre fonction ne renverra que la durée avec la valeur la plus basse possible. +La fonction sera prototypée comme suit: + + char *moment(unsigned int duration) + +Exemples: + +moment(0) => 0 seconds ago. +moment(1) => 1 second ago. +moment(30) => 30 seconds ago. +moment(65) => 1 minute ago. +moment(120) => 2 minutes ago. +moment(2400) => 40 minutes ago. +moment(3735) => 1 hour ago. diff --git a/exam-basedir03/subjects/rev_wstr/subject.en.txt b/exam-basedir03/subjects/rev_wstr/subject.en.txt new file mode 100644 index 0000000..3723472 --- /dev/null +++ b/exam-basedir03/subjects/rev_wstr/subject.en.txt @@ -0,0 +1,29 @@ +Assignment name : rev_wstr +Expected files : rev_wstr.c +Allowed functions: write, malloc, free +-------------------------------------------------------------------------------- + +Write a program that takes a string as a parameter, and prints its words in +reverse order. + +A "word" is a part of the string bounded by spaces and/or tabs, or the +begin/end of the string. + +If the number of parameters is different from 1, the program will display +'\n'. + +In the parameters that are going to be tested, there won't be any "additional" +spaces (meaning that there won't be additionnal spaces at the beginning or at +the end of the string, and words will always be separated by exactly one space). + +Examples: + +$> ./rev_wstr "You hate people! But I love gatherings. Isn't it ironic?" | cat -e +ironic? it Isn't gatherings. love I But people! hate You$ +$>./rev_wstr "abcdefghijklm" +abcdefghijklm +$> ./rev_wstr "Wingardium Leviosa" | cat -e +Leviosa Wingardium$ +$> ./rev_wstr | cat -e +$ +$> diff --git a/exam-basedir03/subjects/rev_wstr/subject.fr.txt b/exam-basedir03/subjects/rev_wstr/subject.fr.txt new file mode 100644 index 0000000..143cf58 --- /dev/null +++ b/exam-basedir03/subjects/rev_wstr/subject.fr.txt @@ -0,0 +1,29 @@ +Assignment name : rev_wstr +Expected files : rev_wstr.c +Allowed functions: write, malloc, free +-------------------------------------------------------------------------------- + +Écrire un programme qui prend en paramètre une chaîne de caractères, et qui +affiche cette chaîne en inversant ses mots. + +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 est différent de 1, le programme devra afficher +'\n'. + +Dans les paramètres qui seront testés, il n'y aura pas d'espaces "en trop" +(comprendre par là qu'il n'y aura pas d'espaces au début ou à la fin de la +chaîne, et que les mots seront toujours séparés par exactement un espace). + +Exemple: + +$> ./rev_wstr "le temps du mepris precede celui de l'indifference" | cat -e +l'indifference de celui precede mepris du temps le$ +$> ./rev_wstr "abcdefghijklm" +abcdefghijklm +$> ./rev_wstr "il contempla le mont" | cat -e +mont le contempla il$ +$> ./rev_wstr | cat -e +$ +$> diff --git a/exam-basedir03/subjects/rev_wstr/subject.ro.txt b/exam-basedir03/subjects/rev_wstr/subject.ro.txt new file mode 100644 index 0000000..c30e608 --- /dev/null +++ b/exam-basedir03/subjects/rev_wstr/subject.ro.txt @@ -0,0 +1,27 @@ +Exercitiu : rev_wstr +Fisiere de iesire : rev_wstr.c +Functii autorizate : write, malloc, free +-------------------------------------------------------------------------------- + +Scrieti un program ce ia ca parametru un sir de caractere si care afiseaza acest +sir inversand cuvintele sale. + +Numim "cuvant" o portiune a sirului de caractere delimitat, fie de spatiu si/sau +tabulator, fie de inceputul/sfarsitul sirului. + +Daca numarul de parametri este diferit de 1, programul va afisa '\n'. + +Sirurile ce urmeaza a fi testate nu vor contine spatii nici la inceput si nici +la sfarsitul acestora si ca cuvintele vor fi separate intotdeauna printr-un spatiu. + +Exemplu: + +$> ./rev_wstr "le temps du mepris precede celui de l'indifference" | cat -e +l'indifference de celui precede mepris du temps le$ +$> ./rev_wstr "abcdefghijklm" +abcdefghijklm +$> ./rev_wstr "il contempla le mont" | cat -e +mont le contempla il$ +$> ./rev_wstr | cat -e +$ +$> diff --git a/exam-basedir03/traces/0-0_aff_z.trace b/exam-basedir03/traces/0-0_aff_z.trace new file mode 100644 index 0000000..2e0aa35 --- /dev/null +++ b/exam-basedir03/traces/0-0_aff_z.trace @@ -0,0 +1,72 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e3r12p13.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 18:52:16 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/tx/g8nwj_b11315sg0ylbfzk6l40000gq/T/tmpEaQKeH/user log --pretty='%H - %an, %ad : %s' +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/tx/g8nwj_b11315sg0ylbfzk6l40000gq/T/tmpEaQKeH/user +total 8 +-rw-r--r-- 1 deepthought deepthought 215 Apr 16 18:52 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 18:52 aff_z + +/var/folders/tx/g8nwj_b11315sg0ylbfzk6l40000gq/T/tmpEaQKeH/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 18:52 aff_z.c + += aff_z ======================================================================== +$> clang -Wextra -Wall -Werror aff_z.c -o user_exe + += Test 1 =================================================== +$> ./4c077ig0pb8wmh3fgcf8mbcv +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./6mdu7x2ivft3n64dc9b4tozy "IzlmHwCAEd" "AkVSeQ" "CXaGWY" "z1Cu3wR" "uHpqSNzYDT2Ak" "xBUwQjK4MoT" "HM6" "aYfIREZ1sLJd0" "LeOmC" "aG6VdM7eHT" "J5s" "XH0S9" "8IfPc6x" "YwtZPF" "5fR" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./2wnar39rrvjjkijkxvd0868x "bpR4X759Jzv" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./6umnqoq4teowcbf2goqbvqx9 "qzZC4" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./vfyeigzf6ho90yqkeo3r8yjc "n6AQOgf0PNXcw" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./oief0g9ua01orf0vbi6eq0fp "qM3DvhkS5HFJe" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir03/traces/1-0_ft_putstr.trace b/exam-basedir03/traces/1-0_ft_putstr.trace new file mode 100644 index 0000000..f63df87 --- /dev/null +++ b/exam-basedir03/traces/1-0_ft_putstr.trace @@ -0,0 +1,88 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r5p15.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 18:57:18 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/m_/cz2kw2gx09jftj37xldgrbcm0000gq/T/tmpKMgyYe/user log --pretty='%H - %an, %ad : %s' +20eb54d06141449300b95eab630538348803396f - Tanguy MAZE, Mon Apr 16 18:57:09 2018 +0200 : ft_putstr +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/m_/cz2kw2gx09jftj37xldgrbcm0000gq/T/tmpKMgyYe/user +total 8 +-rw-r--r-- 1 deepthought deepthought 446 Apr 16 18:57 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 18:57 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 18:57 ft_putstr + +/var/folders/m_/cz2kw2gx09jftj37xldgrbcm0000gq/T/tmpKMgyYe/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 18:57 aff_z.c + +/var/folders/m_/cz2kw2gx09jftj37xldgrbcm0000gq/T/tmpKMgyYe/user/ft_putstr: +total 8 +-rw-r--r-- 1 deepthought deepthought 992 Apr 16 18:57 ft_putstr.c + += ft_putstr ==================================================================== +$> clang -Wextra -Wall -Werror main.c ft_putstr.c -o user_exe + += Test 1 =================================================== +$> ./gw87q03hfmwkfbww1vm525gp "k48nK9iLfYu" +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./ejqg265rdqtg4fuvtdic92r9 "IOEZAliwh" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./ybcul18m1ye19zdg29qc7767 "DmtG1EwyhHPukoA" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./iyuvkt6tudtxpji4p984x63k "5f4dq6VrEHh zQVe i4hZYIds6oTb7EO pw7ILhMgxzbqvluQn nmhfdYg1TKNGzH7M IUirz7WmhtPc" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./brm5gdshvmkn4j5hqg43kcz0 "P9K45F7Szs1nZ8i rLnSZd8h0vWzMO3J5 XUNcRxbGh41DK0r 9iXT86u CHdl a5nCf4VIRz9 L3dx uUjT178 SuNw78saxgmePtnp 5iTMn4hufaLqxE pQuRLGAyq R7WOzyhnwA9oTJpS5 GQ1K2OUdx 9wYi1XKcC dAJ5VIQ6YPKt 48LZWvRQrIJO k0JX" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./mv0da0yf9lfen4l0nmf970nw "LR5a7JdVM RPr ONXozAtsQdEZ vu8cf ks1Vq69onXhrMDcy4 81ORbe90MzqkYPV OHSoCapVzU q4IwjidYVbeE Ieblc tT4Bo d56zt7 s4PeqA ciSp 4ZlTseQzXj5IFc" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./jqx0d3lb4o4gkh2qlnbhxok7 "ZP4 xOTylC Md01chmlwL7PKjO2Q MTnCYfPxw1Vd0iLhD" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./srru5zxmpqwzis8evpiskei5 +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir03/traces/2-0_max.trace b/exam-basedir03/traces/2-0_max.trace new file mode 100644 index 0000000..5a833e5 --- /dev/null +++ b/exam-basedir03/traces/2-0_max.trace @@ -0,0 +1,154 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e3r10p19.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 19:04:46 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/53/3stqt3js5bz6x9mh674k88k00000gq/T/tmpLXyULt/user log --pretty='%H - %an, %ad : %s' +53309961375cc7b31d03c35ddc3678f5de691731 - Tanguy MAZE, Mon Apr 16 19:04:39 2018 +0200 : max +20eb54d06141449300b95eab630538348803396f - Tanguy MAZE, Mon Apr 16 18:57:09 2018 +0200 : ft_putstr +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/53/3stqt3js5bz6x9mh674k88k00000gq/T/tmpLXyULt/user +total 8 +-rw-r--r-- 1 deepthought deepthought 666 Apr 16 19:04 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:04 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:04 ft_putstr +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:04 max + +/var/folders/53/3stqt3js5bz6x9mh674k88k00000gq/T/tmpLXyULt/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 19:04 aff_z.c + +/var/folders/53/3stqt3js5bz6x9mh674k88k00000gq/T/tmpLXyULt/user/ft_putstr: +total 8 +-rw-r--r-- 1 deepthought deepthought 992 Apr 16 19:04 ft_putstr.c + +/var/folders/53/3stqt3js5bz6x9mh674k88k00000gq/T/tmpLXyULt/user/max: +total 8 +-rw-r--r-- 1 deepthought deepthought 1105 Apr 16 19:04 max.c + += max ========================================================================== +$> clang -Wextra -Wall -Werror main.c max.c -o user_exe + += Test 1 =================================================== +$> ./8qraqez58j3gow95d2geqq7q +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./84bha4kirtmmwf2nbwr1o4b4 "1" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./8rp65a8l631yz4s8nrwkxjx6 "-19" "7" "-6" "-8" "-16" "-7" "-5" "15" "20" "10" "8" "-10" "-17" "-20" "18" "-18" "-17" "-14" "-12" "14" "19" "-12" "-1" "16" "-19" "-12" "8" "3" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./r495gfnomsn0ktz2jivygqww "15" "16" "-4" "6" "17" "17" "-6" "12" "6" "11" "-10" "-10" "-5" "-17" "-20" "-9" "0" "-8" "8" "13" "-8" "-8" "-11" "-9" "-7" "1" "13" "8" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./da17eyvp25oswsyhnx39svyl "-19" "-2" "-19" "5" "-18" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./jckx4qv7xdztflqqpz9lvfzh "18" "-15" "3" "16" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./z15qys45rh0hna6mlc21whok "9" "-7" "-4" "-15" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./izi4kp3iv03g9o2m5whus7z7 "20" "-2" "4" "0" "9" "-18" "-11" "-16" "-12" "17" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D += Test 9 =================================================== +$> ./li80stx19rt2myb9axwnzzwy "0" "-4" "-2" "13" "3" "9" "-8" "16" "5" "3" "-17" "19" "18" "16" "-15" "20" "-12" +$> diff -U 3 user_output_test9 test9.output | cat -e + +Diff OK :D += Test 10 ================================================== +$> ./ct5hz8365q3cubacvos550qk "12728508" "-18569668" "19158409" "-439791" "18754574" "2684080" "-16078712" "-3054061" "6806134" "-14249426" "-4203081" "7740338" "7962415" "-14354190" "14461816" "-2757228" "-6719877" "-12899903" "-9356992" "12572844" "15378120" "13424346" "-12797869" "4331079" "15160118" "17798254" "8752774" "-13989672" "14643300" "-5214725" "-2572121" "11625411" "10061124" "-501324" "5318345" "-13769443" "8458683" "6116098" "16276521" "-216613" "7812865" "15500645" "19836707" "-15116504" "4608682" "-56452" "11538185" "-13578942" "3584121" "4923747" "-13518317" "6121287" +$> diff -U 3 user_output_test10 test10.output | cat -e + +Diff OK :D += Test 11 ================================================== +$> ./ciagezq0xfd36xrpwpk7qy1m "-9260049" "16617569" "11662010" "8732637" "11955437" "3053176" "4819776" "9712840" "3073372" "14584804" "-413597" "-904744" "-4055393" "-16463206" "-5280763" "-1400700" "-1963240" "-5026573" "-10568014" "13973947" "13049458" "5051147" "-496050" "-2298296" "1468222" "-10094874" "-1813827" "10634647" "8633823" "-17416481" "-3105685" "2386097" "12811490" "-13264718" "14395917" "2926975" "8248011" "5862252" "-13032819" "135752" "-13629454" "2635692" "-18896023" "-12565237" "3393565" "-6358757" "-11414542" "-10173707" "-14613362" "-14560649" "8895982" "8757630" "-135387" "2868472" "-1117615" "10059255" "8872851" "-3686764" "-15395171" "-14943301" "-14739170" "1666519" "-3290627" "-14705968" "14808025" "-11395254" "11478761" "-3285848" "-14991423" "-19747983" "-9660769" "-4371500" "-8449994" +$> diff -U 3 user_output_test11 test11.output | cat -e + +Diff OK :D += Test 12 ================================================== +$> ./jqvb7x82z8im3p16fltlajsq "11578536" "-17234371" "-4490440" "19501789" "-12290616" "9303750" "2145511" "-8925433" "14470563" "3471421" "3531101" "-3453706" "10336864" "-3829672" "863579" "-7679627" "1471922" "8236824" "-17532717" "-3348189" "-13007221" "9365490" "-9520753" "-18689074" "15803305" "-14470648" "-2049156" "3677911" "4523075" "10296447" "-15624697" "7535942" "-8962767" "-14803856" "7102110" "391145" "-4150959" "-6797272" "-6978218" "-3314972" "181502" "-847085" "5904505" +$> diff -U 3 user_output_test12 test12.output | cat -e + +Diff OK :D += Test 13 ================================================== +$> ./qxazg3f1yzym1qjgnu9o9tck "18755210" "4454534" "18650507" "-13687654" "-6096402" "18626553" "-664824" "-1193175" "-8969731" "12783408" "-11132963" "-4042014" "-8767226" "21465" "-15075769" "-6010142" "-19037014" "-11044433" "9046717" "-13565912" "-14703158" "-13593900" "9533893" "4425510" "5630838" "-689605" "4434127" "7875657" "-5788049" "-12416236" "15449850" "15741158" "-11972243" "-8384998" "-12703383" "-14573955" "7158158" "-18247427" "2201645" "12500510" "14486453" "10835429" "3827239" "-12201954" "-10220919" "17839667" "8521296" "-17518359" "-19337624" "11333575" "-16094795" "-5146900" "18967850" "4151235" "-5904813" "8892442" "16711319" "14887649" "7108079" "5001092" "-4479760" "9648467" "-12428151" "-1821482" "16090565" "10300698" +$> diff -U 3 user_output_test13 test13.output | cat -e + +Diff OK :D += Test 14 ================================================== +$> ./61swzo1rhyfj3z6ruwskg6zf "6622641" "-18069421" "13814758" "-1961934" "-17990494" "13404123" "-15133143" "4869450" "-10623449" "11897180" "-17468472" "4328914" "8397677" "-5579831" "-18963741" "12773861" "-18402699" "3300012" "-17136383" "19257234" "-4970289" "15283598" "2712579" "2678844" "14769660" "-18604155" "1877551" "18044938" "3511066" "6086017" "3384651" "10755122" "-16455485" "6780854" "-19347395" "9348870" "-12192329" "-2746897" "-12336348" "-14364772" "18858022" "15590860" "15957293" "14591164" "-6810243" "-5693599" "-3235849" "-10517983" "15443820" "13653555" "-4533592" "18810876" "10602739" "-9395882" "-10256519" "15474415" "-209213" "-12134003" "-14601629" "14599332" "-4464564" "-18657830" "3499422" "748654" "10132661" "15665671" "7213778" "3462183" "-18389839" "576779" "11043469" "-11768729" "-9056223" "10038593" "-12092999" "-1831162" "-10626819" "-19109632" "-10713802" "-16276303" "12014733" +$> diff -U 3 user_output_test14 test14.output | cat -e + +Diff OK :D += Test 15 ================================================== +$> ./nn159dirdfbgv2mxeuy2jmz5 "17019425" "5167076" "17490089" "12586687" "-2779701" "-18375221" "4657615" "9975247" +$> diff -U 3 user_output_test15 test15.output | cat -e + +Diff OK :D += Test 16 ================================================== +$> ./zs3a93bpdfzj4s50j5nekeu3 "-13667070" "6979933" "-4656459" "13231491" "-6066166" "9067168" "12158660" "-16958218" "-10871560" "-14543866" "-4555028" "-12687853" "-5997185" "10664744" "-7293509" "16256330" "6660008" "18679899" "-13088341" "-8312103" "16632760" "1515631" "8446531" "17103179" "-14490556" "14553342" "-11908361" "-18610167" "12615901" "10661448" "17832374" "-3002797" "2927574" "6150132" "-3015623" "18862173" "-5287559" "-14800560" "7348971" "18516028" "-16163644" "-2111617" "-4938796" +$> diff -U 3 user_output_test16 test16.output | cat -e + +Diff OK :D += Test 17 ================================================== +$> ./shtpme08tp39i73blco290zr "-6713099" "-6164499" "-16310854" "-5065474" "12110882" "-5180834" "-17364779" "12301071" "11568652" "15831551" "6350401" "-18609386" "-11305154" "7274181" "-6800138" "6305914" "5014809" "6776640" "-3549582" "14965510" "-10678738" "-8882730" "860174" "-15604963" "3063773" "-18161687" "-19609370" "-15755529" "18745046" "-13152917" "2693746" "2347867" "9347801" "13711951" "-8062713" "18772613" "5072868" "3710041" "9485191" "14678657" "16955531" "16230294" "-9667362" "16702961" "11635798" "8167707" "11050081" "-6717255" "-19806028" "7118475" "-2749643" "17105014" "-15969952" "-3434491" "9483174" "-9757205" "12709229" "14550164" "-13269370" "-3666612" "-14755791" "5501777" "-285261" "-19257262" "-3765027" "-15454394" "9556400" "17046793" "-16344244" "-2441150" "6783476" "3806456" "-4434396" "15726035" "-9770459" "13786019" "15726862" "17045887" "-6221291" "2862644" "5773047" "12194070" "16737889" "-1976241" "-4547369" "-10325732" +$> diff -U 3 user_output_test17 test17.output | cat -e + +Diff OK :D += Test 18 ================================================== +$> ./1kiebe9xagkyc4px4m5zbrvz "-3940709" "-10062916" "19585179" "11446004" "4964141" "15164870" "9517605" "1546064" "4282409" "3972378" "13645032" "7500659" "-5475038" "-7684524" +$> diff -U 3 user_output_test18 test18.output | cat -e + +Diff OK :D += Test 19 ================================================== +$> ./u27pum0rx2p97b0m5jrnvngv "19596900" "-5196869" "10937374" "-13555887" "10769981" "8903843" "14490357" "-11714997" "17248620" "435118" "9555768" "1517363" "-13639420" "14708905" "-708904" "3316245" "-5973297" "8697367" "-14196883" +$> diff -U 3 user_output_test19 test19.output | cat -e + +Diff OK :D += Test 20 ================================================== +$> ./vqun28wg0klwode40tzrquby "18028939" "-3693069" "-1206562" "11401212" "-12512092" "-15260818" "-1219603" "16564276" "5653010" "-1739317" "-8147295" "9278312" "602561" "-10974129" "16069407" "8388641" "-19432534" "-9486356" "11738419" "9675846" "-4865440" "-8676083" "12792524" "4067072" "6088108" "-9817016" "11101559" "-9107867" "19042965" "368986" "17415172" "5464783" "-7040280" "-306883" "-15818117" "-3429982" "5525166" "9819316" "2831094" "2082459" "-18029778" "-15358136" "17424223" "2702652" "15330682" "6054245" "-19338070" +$> diff -U 3 user_output_test20 test20.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir03/traces/3-0_ft_rrange.trace b/exam-basedir03/traces/3-0_ft_rrange.trace new file mode 100644 index 0000000..b13f8fa --- /dev/null +++ b/exam-basedir03/traces/3-0_ft_rrange.trace @@ -0,0 +1,59 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r9p11.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 19:21:54 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/1f/fkvwwzvx4zs7yv41794gcxtm0000gq/T/tmprM_nuM/user log --pretty='%H - %an, %ad : %s' +d0bce69342072c4cf857b2658df91defb30e63ea - Tanguy MAZE, Mon Apr 16 19:21:45 2018 +0200 : ft_rrange +53309961375cc7b31d03c35ddc3678f5de691731 - Tanguy MAZE, Mon Apr 16 19:04:39 2018 +0200 : max +20eb54d06141449300b95eab630538348803396f - Tanguy MAZE, Mon Apr 16 18:57:09 2018 +0200 : ft_putstr +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/1f/fkvwwzvx4zs7yv41794gcxtm0000gq/T/tmprM_nuM/user +total 8 +-rw-r--r-- 1 deepthought deepthought 909 Apr 16 19:21 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:21 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:21 ft_putstr +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:21 ft_rrange.c +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:21 max + +/var/folders/1f/fkvwwzvx4zs7yv41794gcxtm0000gq/T/tmprM_nuM/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 19:21 aff_z.c + +/var/folders/1f/fkvwwzvx4zs7yv41794gcxtm0000gq/T/tmprM_nuM/user/ft_putstr: +total 8 +-rw-r--r-- 1 deepthought deepthought 992 Apr 16 19:21 ft_putstr.c + +/var/folders/1f/fkvwwzvx4zs7yv41794gcxtm0000gq/T/tmprM_nuM/user/ft_rrange.c: +total 8 +-rw-r--r-- 1 deepthought deepthought 1210 Apr 16 19:21 ft_rrange.c + +/var/folders/1f/fkvwwzvx4zs7yv41794gcxtm0000gq/T/tmprM_nuM/user/max: +total 8 +-rw-r--r-- 1 deepthought deepthought 1105 Apr 16 19:21 max.c + += ft_rrange ==================================================================== +Nothing turned in +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir03/traces/3-1_ft_atoi_base.trace b/exam-basedir03/traces/3-1_ft_atoi_base.trace new file mode 100644 index 0000000..9786b4b --- /dev/null +++ b/exam-basedir03/traces/3-1_ft_atoi_base.trace @@ -0,0 +1,166 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r7p12.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 19:26:47 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/z9/y610tnc50656y9gdqc2npn0h0000gq/T/tmpQddd8T/user log --pretty='%H - %an, %ad : %s' +def6a68de7ba990a12233c975d4611527762306e - Tanguy MAZE, Mon Apr 16 19:26:38 2018 +0200 : ft_atoi_base +d0bce69342072c4cf857b2658df91defb30e63ea - Tanguy MAZE, Mon Apr 16 19:21:45 2018 +0200 : ft_rrange +53309961375cc7b31d03c35ddc3678f5de691731 - Tanguy MAZE, Mon Apr 16 19:04:39 2018 +0200 : max +20eb54d06141449300b95eab630538348803396f - Tanguy MAZE, Mon Apr 16 18:57:09 2018 +0200 : ft_putstr +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/z9/y610tnc50656y9gdqc2npn0h0000gq/T/tmpQddd8T/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1172 Apr 16 19:26 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:26 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:26 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:26 ft_putstr +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:26 ft_rrange.c +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:26 max + +/var/folders/z9/y610tnc50656y9gdqc2npn0h0000gq/T/tmpQddd8T/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 19:26 aff_z.c + +/var/folders/z9/y610tnc50656y9gdqc2npn0h0000gq/T/tmpQddd8T/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 16 19:26 ft_atoi_base.c + +/var/folders/z9/y610tnc50656y9gdqc2npn0h0000gq/T/tmpQddd8T/user/ft_putstr: +total 8 +-rw-r--r-- 1 deepthought deepthought 992 Apr 16 19:26 ft_putstr.c + +/var/folders/z9/y610tnc50656y9gdqc2npn0h0000gq/T/tmpQddd8T/user/ft_rrange.c: +total 8 +-rw-r--r-- 1 deepthought deepthought 1210 Apr 16 19:26 ft_rrange.c + +/var/folders/z9/y610tnc50656y9gdqc2npn0h0000gq/T/tmpQddd8T/user/max: +total 8 +-rw-r--r-- 1 deepthought deepthought 1105 Apr 16 19:26 max.c + += ft_atoi_base ================================================================= +$> clang -Wextra -Wall -Werror ft_atoi_base.c main.c -o user_exe + += Test 1 =================================================== +$> ./a4i7sr2aubcv985u87wts6oo +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./gapz8wafofx60ar02qqtkals "21" "2313" "12" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./327tn8ewkk7zlxdnz9b92aru "2147483647" "10" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./ncl9il9chxdp81b7nx922xuw "-2147483648" "10" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./dm54bez10wfhm2d3lfnrqqlt "0" "2" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./qnbf8b2uu4bbhzo8jqga88zt "--223" "10" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./23zj3n7qo53sewdx7fr7o869 "44015a9b2" "12" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./ksrqfzieedpo471qymywyv6b "110111210212202100" "3" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D += Test 9 =================================================== +$> ./curie27wz7fsxwzid20a4v2m "3452f040" "16" +$> diff -U 3 user_output_test9 test9.output | cat -e + +Diff OK :D += Test 10 ================================================== +$> ./3vsoam5zd1iz3aipc8o2s1in "402752462" "11" +$> diff -U 3 user_output_test10 test10.output | cat -e + +Diff OK :D += Test 11 ================================================== +$> ./o1v1f4i983fe5w2i64wz6ex1 "-d781D15" "14" +$> diff -U 3 user_output_test11 test11.output | cat -e + +Diff OK :D += Test 12 ================================================== +$> ./buj4xn6gyiytbf7l45d3yl5t "1323212134120" "5" +$> diff -U 3 user_output_test12 test12.output | cat -e + +Diff OK :D += Test 13 ================================================== +$> ./7qvw4yknbyq5qaz6szhswh75 "13455450051" "8" +$> diff -U 3 user_output_test13 test13.output | cat -e + +Diff OK :D += Test 14 ================================================== +$> ./tfc64awbj03wp8vf5lsaunrz "36a7d665" "16" +$> diff -U 3 user_output_test14 test14.output | cat -e + +Diff OK :D += Test 15 ================================================== +$> ./kvsw3axj0yqdgz0lec46jo4n "315005223021" "6" +$> diff -U 3 user_output_test15 test15.output | cat -e + +Diff OK :D += Test 16 ================================================== +$> ./a4dcea2ri51ali053ra6tg6l "1001101101101010100010101111110" "2" +$> diff -U 3 user_output_test16 test16.output | cat -e + +Diff OK :D += Test 17 ================================================== +$> ./cu6xbkwgvdiurs3ui39xhota "10221022000101112122" "3" +$> diff -U 3 user_output_test17 test17.output | cat -e + +Diff OK :D += Test 18 ================================================== +$> ./zhyi5glu9mtzghw67f6msqp3 "503532253311" "6" +$> diff -U 3 user_output_test18 test18.output | cat -e + +Diff OK :D += Test 19 ================================================== +$> ./9otezpzuk1wddsw793geby4k "A9845867" "11" +$> diff -U 3 user_output_test19 test19.output | cat -e + +Diff OK :D += Test 20 ================================================== +$> ./ul7rugl3iu33inxcmp02ddnm "20A13024c" "13" +$> diff -U 3 user_output_test20 test20.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir03/traces/4-0_flood_fill.trace b/exam-basedir03/traces/4-0_flood_fill.trace new file mode 100644 index 0000000..6bd56e3 --- /dev/null +++ b/exam-basedir03/traces/4-0_flood_fill.trace @@ -0,0 +1,65 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r9p6.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 19:43:00 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/58/j7sll6316h920_z530_04cd40000gq/T/tmp5lfwEl/user log --pretty='%H - %an, %ad : %s' +def6a68de7ba990a12233c975d4611527762306e - Tanguy MAZE, Mon Apr 16 19:26:38 2018 +0200 : ft_atoi_base +d0bce69342072c4cf857b2658df91defb30e63ea - Tanguy MAZE, Mon Apr 16 19:21:45 2018 +0200 : ft_rrange +53309961375cc7b31d03c35ddc3678f5de691731 - Tanguy MAZE, Mon Apr 16 19:04:39 2018 +0200 : max +20eb54d06141449300b95eab630538348803396f - Tanguy MAZE, Mon Apr 16 18:57:09 2018 +0200 : ft_putstr +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/58/j7sll6316h920_z530_04cd40000gq/T/tmp5lfwEl/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1172 Apr 16 19:43 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:43 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:43 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:43 ft_putstr +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:43 ft_rrange.c +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:43 max + +/var/folders/58/j7sll6316h920_z530_04cd40000gq/T/tmp5lfwEl/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 19:43 aff_z.c + +/var/folders/58/j7sll6316h920_z530_04cd40000gq/T/tmp5lfwEl/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 16 19:43 ft_atoi_base.c + +/var/folders/58/j7sll6316h920_z530_04cd40000gq/T/tmp5lfwEl/user/ft_putstr: +total 8 +-rw-r--r-- 1 deepthought deepthought 992 Apr 16 19:43 ft_putstr.c + +/var/folders/58/j7sll6316h920_z530_04cd40000gq/T/tmp5lfwEl/user/ft_rrange.c: +total 8 +-rw-r--r-- 1 deepthought deepthought 1210 Apr 16 19:43 ft_rrange.c + +/var/folders/58/j7sll6316h920_z530_04cd40000gq/T/tmp5lfwEl/user/max: +total 8 +-rw-r--r-- 1 deepthought deepthought 1105 Apr 16 19:43 max.c + += flood_fill =================================================================== +Nothing turned in +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir03/traces/4-1_brainfuck.trace b/exam-basedir03/traces/4-1_brainfuck.trace new file mode 100644 index 0000000..10be43f --- /dev/null +++ b/exam-basedir03/traces/4-1_brainfuck.trace @@ -0,0 +1,65 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r10p21.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 19:45:19 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/5j/ckvkktwn3td0b9bchm0h1lg40000gq/T/tmpcx81ql/user log --pretty='%H - %an, %ad : %s' +def6a68de7ba990a12233c975d4611527762306e - Tanguy MAZE, Mon Apr 16 19:26:38 2018 +0200 : ft_atoi_base +d0bce69342072c4cf857b2658df91defb30e63ea - Tanguy MAZE, Mon Apr 16 19:21:45 2018 +0200 : ft_rrange +53309961375cc7b31d03c35ddc3678f5de691731 - Tanguy MAZE, Mon Apr 16 19:04:39 2018 +0200 : max +20eb54d06141449300b95eab630538348803396f - Tanguy MAZE, Mon Apr 16 18:57:09 2018 +0200 : ft_putstr +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/5j/ckvkktwn3td0b9bchm0h1lg40000gq/T/tmpcx81ql/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1172 Apr 16 19:45 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:45 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:45 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:45 ft_putstr +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:45 ft_rrange.c +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:45 max + +/var/folders/5j/ckvkktwn3td0b9bchm0h1lg40000gq/T/tmpcx81ql/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 19:45 aff_z.c + +/var/folders/5j/ckvkktwn3td0b9bchm0h1lg40000gq/T/tmpcx81ql/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 16 19:45 ft_atoi_base.c + +/var/folders/5j/ckvkktwn3td0b9bchm0h1lg40000gq/T/tmpcx81ql/user/ft_putstr: +total 8 +-rw-r--r-- 1 deepthought deepthought 992 Apr 16 19:45 ft_putstr.c + +/var/folders/5j/ckvkktwn3td0b9bchm0h1lg40000gq/T/tmpcx81ql/user/ft_rrange.c: +total 8 +-rw-r--r-- 1 deepthought deepthought 1210 Apr 16 19:45 ft_rrange.c + +/var/folders/5j/ckvkktwn3td0b9bchm0h1lg40000gq/T/tmpcx81ql/user/max: +total 8 +-rw-r--r-- 1 deepthought deepthought 1105 Apr 16 19:45 max.c + += brainfuck ==================================================================== +Nothing turned in +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir03/traces/4-2_ft_split.trace b/exam-basedir03/traces/4-2_ft_split.trace new file mode 100644 index 0000000..391fa59 --- /dev/null +++ b/exam-basedir03/traces/4-2_ft_split.trace @@ -0,0 +1,124 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r5p2.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 19:55:19 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/2k/_xfdf3yn0rb60212c_7bq9q40000gq/T/tmprlAPFh/user log --pretty='%H - %an, %ad : %s' +0d3de6bfc40a7b127f75abc7243cde489ef89ac0 - Tanguy MAZE, Mon Apr 16 19:55:09 2018 +0200 : ft_split +def6a68de7ba990a12233c975d4611527762306e - Tanguy MAZE, Mon Apr 16 19:26:38 2018 +0200 : ft_atoi_base +d0bce69342072c4cf857b2658df91defb30e63ea - Tanguy MAZE, Mon Apr 16 19:21:45 2018 +0200 : ft_rrange +53309961375cc7b31d03c35ddc3678f5de691731 - Tanguy MAZE, Mon Apr 16 19:04:39 2018 +0200 : max +20eb54d06141449300b95eab630538348803396f - Tanguy MAZE, Mon Apr 16 18:57:09 2018 +0200 : ft_putstr +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/2k/_xfdf3yn0rb60212c_7bq9q40000gq/T/tmprlAPFh/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1431 Apr 16 19:55 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:55 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:55 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:55 ft_putstr +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:55 ft_rrange.c +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:55 ft_split +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 19:55 max + +/var/folders/2k/_xfdf3yn0rb60212c_7bq9q40000gq/T/tmprlAPFh/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 19:55 aff_z.c + +/var/folders/2k/_xfdf3yn0rb60212c_7bq9q40000gq/T/tmprlAPFh/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 16 19:55 ft_atoi_base.c + +/var/folders/2k/_xfdf3yn0rb60212c_7bq9q40000gq/T/tmprlAPFh/user/ft_putstr: +total 8 +-rw-r--r-- 1 deepthought deepthought 992 Apr 16 19:55 ft_putstr.c + +/var/folders/2k/_xfdf3yn0rb60212c_7bq9q40000gq/T/tmprlAPFh/user/ft_rrange.c: +total 8 +-rw-r--r-- 1 deepthought deepthought 1210 Apr 16 19:55 ft_rrange.c + +/var/folders/2k/_xfdf3yn0rb60212c_7bq9q40000gq/T/tmprlAPFh/user/ft_split: +total 8 +-rw-r--r-- 1 deepthought deepthought 2009 Apr 16 19:55 ft_split.c + +/var/folders/2k/_xfdf3yn0rb60212c_7bq9q40000gq/T/tmprlAPFh/user/max: +total 8 +-rw-r--r-- 1 deepthought deepthought 1105 Apr 16 19:55 max.c + += ft_split ===================================================================== +$> clang -Wextra -Wall -Werror ft_split.c main.c -o user_exe + += Test 1 =================================================== +$> ./1rsqgenxp2mtqz8kno7eefka "" +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./91rc6ufpi66hzefgsja3x2rn " +" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./yad0efxdpn7rye2lwkbrcp98 " + +" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./8b07g91zrprqx3481noxlwk5 "1Lot3mMdI" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./n3e7am63r46a0d9qbg8maryu "ugkdZ" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./wqanochwatirst5y5y6yqs9x " + xl0qT + + +QA0q8 + 9pu1B8hVtbLGKYF 8ZL6OSb14yrB +89TkyS2U noOBvCjZi + + hM9HfLpZu4nyT 97ZcNuF2 zFdM8aiKIok + " +$> diff -U 3 user_output_test6 test6.output | cat -e +--- user_output_test6 2018-04-16 19:55:24.000000000 +0200$ ++++ test6.output 2018-04-16 19:55:24.000000000 +0200$ +@@ -1,6 +1,6 @@$ + xl0qT$ + QA0q8$ +-9pu1B8hVtbLGKYF8ZL6OSb14yrB$ ++9pu1B8hVtbLGKYF$ + 8ZL6OSb14yrB$ + 89TkyS2U$ + noOBvCjZi$ + +Diff KO :( +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir03/traces/4-3_ft_itoa.trace b/exam-basedir03/traces/4-3_ft_itoa.trace new file mode 100644 index 0000000..7326870 --- /dev/null +++ b/exam-basedir03/traces/4-3_ft_itoa.trace @@ -0,0 +1,103 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r3p18.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 19:59:59 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/1d/_6pl0ll95gb_hwwjkhmw6nn80000gq/T/tmpgJ4vks/user log --pretty='%H - %an, %ad : %s' +e0802ac7c8b281a2f83c460339aacabcf73501ce - Tanguy MAZE, Mon Apr 16 19:59:54 2018 +0200 : ft_itoa +0d3de6bfc40a7b127f75abc7243cde489ef89ac0 - Tanguy MAZE, Mon Apr 16 19:55:09 2018 +0200 : ft_split +def6a68de7ba990a12233c975d4611527762306e - Tanguy MAZE, Mon Apr 16 19:26:38 2018 +0200 : ft_atoi_base +d0bce69342072c4cf857b2658df91defb30e63ea - Tanguy MAZE, Mon Apr 16 19:21:45 2018 +0200 : ft_rrange +53309961375cc7b31d03c35ddc3678f5de691731 - Tanguy MAZE, Mon Apr 16 19:04:39 2018 +0200 : max +20eb54d06141449300b95eab630538348803396f - Tanguy MAZE, Mon Apr 16 18:57:09 2018 +0200 : ft_putstr +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/1d/_6pl0ll95gb_hwwjkhmw6nn80000gq/T/tmpgJ4vks/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1689 Apr 16 20:00 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:00 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:00 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:00 ft_itoa +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:00 ft_putstr +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:00 ft_rrange.c +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:00 ft_split +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:00 max + +/var/folders/1d/_6pl0ll95gb_hwwjkhmw6nn80000gq/T/tmpgJ4vks/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 20:00 aff_z.c + +/var/folders/1d/_6pl0ll95gb_hwwjkhmw6nn80000gq/T/tmpgJ4vks/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 16 20:00 ft_atoi_base.c + +/var/folders/1d/_6pl0ll95gb_hwwjkhmw6nn80000gq/T/tmpgJ4vks/user/ft_itoa: +total 8 +-rw-r--r-- 1 deepthought deepthought 1470 Apr 16 20:00 ft_itoa.c + +/var/folders/1d/_6pl0ll95gb_hwwjkhmw6nn80000gq/T/tmpgJ4vks/user/ft_putstr: +total 8 +-rw-r--r-- 1 deepthought deepthought 992 Apr 16 20:00 ft_putstr.c + +/var/folders/1d/_6pl0ll95gb_hwwjkhmw6nn80000gq/T/tmpgJ4vks/user/ft_rrange.c: +total 8 +-rw-r--r-- 1 deepthought deepthought 1210 Apr 16 20:00 ft_rrange.c + +/var/folders/1d/_6pl0ll95gb_hwwjkhmw6nn80000gq/T/tmpgJ4vks/user/ft_split: +total 8 +-rw-r--r-- 1 deepthought deepthought 2009 Apr 16 20:00 ft_split.c + +/var/folders/1d/_6pl0ll95gb_hwwjkhmw6nn80000gq/T/tmpgJ4vks/user/max: +total 8 +-rw-r--r-- 1 deepthought deepthought 1105 Apr 16 20:00 max.c + += ft_itoa ====================================================================== +$> clang -Wextra -Wall -Werror main.c ft_itoa.c -o user_exe + += Test 1 =================================================== +$> ./8yvzs9iiffvv4qcvkvfekanx +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./3ba65kl2wj030bgml8rygkwg "1" "2" "3" "4" "5" "6" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./2u4mq5eiy06nt14r1edv50b1 0 +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./co9nb9yyx8ageypz9qcmf9hm 2147483647 +$> diff -U 3 user_output_test4 test4.output | cat -e +--- user_output_test4 2018-04-16 20:00:04.000000000 +0200$ ++++ test4.output 2018-04-16 20:00:04.000000000 +0200$ +@@ -1 +1 @@$ +-^B^A^D^G^D^H^C^F^D^G$ ++2147483647$ + +Diff KO :( +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir03/traces/4-4_moment.trace b/exam-basedir03/traces/4-4_moment.trace new file mode 100644 index 0000000..e073e5a --- /dev/null +++ b/exam-basedir03/traces/4-4_moment.trace @@ -0,0 +1,77 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r12p14.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 16 20:08:21 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180416/tmaze + += Git history ================================================================== +$> git -C /var/folders/ld/dx6gjh895cd652yyyf3wbx540000gq/T/tmp24PGz7/user log --pretty='%H - %an, %ad : %s' +e0802ac7c8b281a2f83c460339aacabcf73501ce - Tanguy MAZE, Mon Apr 16 19:59:54 2018 +0200 : ft_itoa +0d3de6bfc40a7b127f75abc7243cde489ef89ac0 - Tanguy MAZE, Mon Apr 16 19:55:09 2018 +0200 : ft_split +def6a68de7ba990a12233c975d4611527762306e - Tanguy MAZE, Mon Apr 16 19:26:38 2018 +0200 : ft_atoi_base +d0bce69342072c4cf857b2658df91defb30e63ea - Tanguy MAZE, Mon Apr 16 19:21:45 2018 +0200 : ft_rrange +53309961375cc7b31d03c35ddc3678f5de691731 - Tanguy MAZE, Mon Apr 16 19:04:39 2018 +0200 : max +20eb54d06141449300b95eab630538348803396f - Tanguy MAZE, Mon Apr 16 18:57:09 2018 +0200 : ft_putstr +6012d7148b2639cd80d60ab748de5eaf4a89a224 - Tanguy MAZE, Mon Apr 16 18:52:01 2018 +0200 : aff_z + += Collected files ========================================== +$> ls -lAR /var/folders/ld/dx6gjh895cd652yyyf3wbx540000gq/T/tmp24PGz7/user +total 8 +-rw-r--r-- 1 deepthought deepthought 1689 Apr 16 20:08 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:08 aff_z +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:08 ft_atoi_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:08 ft_itoa +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:08 ft_putstr +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:08 ft_rrange.c +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:08 ft_split +drwxr-xr-x 3 deepthought deepthought 102 Apr 16 20:08 max + +/var/folders/ld/dx6gjh895cd652yyyf3wbx540000gq/T/tmp24PGz7/user/aff_z: +total 8 +-rw-r--r-- 1 deepthought deepthought 966 Apr 16 20:08 aff_z.c + +/var/folders/ld/dx6gjh895cd652yyyf3wbx540000gq/T/tmp24PGz7/user/ft_atoi_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1788 Apr 16 20:08 ft_atoi_base.c + +/var/folders/ld/dx6gjh895cd652yyyf3wbx540000gq/T/tmp24PGz7/user/ft_itoa: +total 8 +-rw-r--r-- 1 deepthought deepthought 1470 Apr 16 20:08 ft_itoa.c + +/var/folders/ld/dx6gjh895cd652yyyf3wbx540000gq/T/tmp24PGz7/user/ft_putstr: +total 8 +-rw-r--r-- 1 deepthought deepthought 992 Apr 16 20:08 ft_putstr.c + +/var/folders/ld/dx6gjh895cd652yyyf3wbx540000gq/T/tmp24PGz7/user/ft_rrange.c: +total 8 +-rw-r--r-- 1 deepthought deepthought 1210 Apr 16 20:08 ft_rrange.c + +/var/folders/ld/dx6gjh895cd652yyyf3wbx540000gq/T/tmp24PGz7/user/ft_split: +total 8 +-rw-r--r-- 1 deepthought deepthought 2009 Apr 16 20:08 ft_split.c + +/var/folders/ld/dx6gjh895cd652yyyf3wbx540000gq/T/tmp24PGz7/user/max: +total 8 +-rw-r--r-- 1 deepthought deepthought 1105 Apr 16 20:08 max.c + += moment ======================================================================= +Nothing turned in +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir04/docs/GUIDELINES.en.md b/exam-basedir04/docs/GUIDELINES.en.md new file mode 100644 index 0000000..1523e39 --- /dev/null +++ b/exam-basedir04/docs/GUIDELINES.en.md @@ -0,0 +1,55 @@ +# General guidelines + +* No communication whatsoever is allowed. + +* This is an exam, you don't have a right to chat, listen to music, make noise, or generally do anything that may disturb the other students in any way. + +* Your phones and other technological devices must be turned off and put away. If a phone rings, the whole row will be disqualified from the exam and kicked out immediately. + +* Your home directory contains three directories : "rendu", "subjects" and "traces". + +* The "subjects" directory will contain the subjects of your assignments + +* The "rendu" folder is a clone of your Git turn-in repository. You will work in it, and use it as any regular Git repository. + +* The system will not grade anything that is not pushed on your Git turn-in repository, and at the right place. Pay attention to where examshell tells you to put your files. + +* You can only run your programs in the "rendu" directory or one of its subdirectories. + +* You may need to read the man to carry out some assignments... + +* You will be graded by a program. You must respect the specified file/path/function names to the letter. + +* Assignments will always specify which files will be collected : + + * When an assignment asks for specific files, they will be explicitly named. For example "file1.c file1.h". + + * Otherwise, when filenames and/or the number of files is up to you, the assignment will say something along the lines of "*.c *.h". + + * When a Makefile is required, it will ALWAYS be explicitly stated. + +* In case of technical problem, question about the subject, or any other problem, you must get up silently and wait for a member of the staff to come to you. It is forbidden to ask your neighbors, or to verbally call for a staff member. + +* Any equipment not explicitly allowed is implicitly forbidden. + +* Any exit is definitive, you can not come in again. + +* Staff members may kick you out of the exam without warning if they deem it necessary. + +* You are allowed blank pieces of paper, and a pen. No notebooks, notes, or any help of the sort. You are alone to face this exam. + +# Coding guidelines + +* Useful functions and files will sometimes be given to you in the subject directory + +* The correction is fully automated, and performed by the program we know as Deepthought. + +* When an assignment asks you to write a program with one or more explicitly named files, it will be compiled with the following command: clang -Wall -Wextra -Werror file1.c file2.c file3.c -o program_name. + +* When the assignment leaves the filenames up to you, it will be compiled with: clang -Wall -Wextra -Werror *.c -o program_name. + +* Finally, when you must only turn in a function (so, one file), it will be compiled with clang -c -Wall -Wextra -Werror yourfile.c, then we will compile our main function and link them together to create a test program. + +* Allowed functions will be specified in the headers of the assignments. You may recode any other function you think is necessary. Using a function that's not explicitly allowed is considered cheating, and will result in a failing grade, with no possible discussion or appeal whatsoever. You've been warned. + +* Any function that isn't explicitly allowed is implicitly forbidden. diff --git a/exam-basedir04/docs/GUIDELINES.fr.md b/exam-basedir04/docs/GUIDELINES.fr.md new file mode 100644 index 0000000..c565b66 --- /dev/null +++ b/exam-basedir04/docs/GUIDELINES.fr.md @@ -0,0 +1,54 @@ +# Consignes générales + +* Aucune communication, quelle qu'elle soit, n'est permise + +* Ceci est un examen, il est interdit de discuter, écouter de la musique, faire du bruit, ou de façon générale de faire quoi que ce soit qui puisse perturber le travail des autres étudiants. + +* Vos téléphones et autres appareils technologiques doivent être éteints et rangés. Pas en silencieux, éteints. Si un téléphone sonne, toute la rangée sera exclue immédiatement de l'examen. + +* Votre répertoire home contient trois répertoires : "rendu", "subjects" et "traces". + +* Le répertoire "subjects" contiendra les sujets de vos exercices + +* Le répertoire "rendu" contiendra un clone de votre dépôt Git de rendu. Vous y travaillerez, et l'utiliserez comme n'importe quel autre dépôt Git de rendu. + +* Le système ne corrigera rien qui n'est pas push sur votre dépôt de rendu à l'endroit correct. Faites attention à ce qu'examshell vous dit concernant les emplacements de rendu. + +* Vous ne pouvez lancer vos propres programmes que dans le répertoire "rendu" ou l'un de ses sous-répertoires. + +* Vous aurez peut-être besoin de lire les man pour certains exercices ... + +* Vous aller être corrigé par un programme. Vous devez donc respecter à la lettre les noms de fichiers/fonctions qui vous sont imposés. + +* Les exercices spécifient toujours les noms de fichiers qui vous sont demandés: + + * Quand on vous demande des fichiers spécifiques, ils seront nommés explicitement, par exemple "file1.c file1.h" + + * Quand les noms et le nombre de fichier sont à votre discrétion, on dira quelque chose comme "*.c *.h" + + * Quand il faut un Makefile, ce sera toujours explicitement précisé + +* En cas de problème technique, de question sur un sujet, ou tout autre souci, vous devez vous lever EN SILENCE et attendre qu'un membre du staff vienne vous voir. Il est interdit de demander à vos voisins, ou d'appeler verbalement un membre du staff. + +* Vous avez le droit à des feuilles vierges, un stylo, et c'est tout. Pas de cahiers, carnets, ou autres. Pas d'écouteurs, de casques, de portable, etc ... + +* Tout équipement qui n'est pas explicitement autorisé est implicitement interdit. + +* Toute sortie est définitive. + +* Les membres du staff peuvent vous exclure de l'examen sans préavis s'ils l'estiment nécessaire pour quelque raison que ce soit. + + +# Consignes relative au code + +* Des fonctions et fichiers utiles vous seront parfois donnés dans le répertoire du sujet + +* Les corrections sont entièrement automatiques et réalisées par un programme nommé Deepthought + +* Les programmes seront compilés avec "clang -Wall -Wextra -Werror" + +* Quand on ne vous demande qu'une fonction, et non un programme, cela signifie que votre fichier sera compilé accompagné de notre propre main.c + +* Les fonctions autorisées sont précisées dans les en-têtes des exercices. Vous pouvez recoder toute fonction que vous jugez nécessaire. Utiliser une fonction non-autorisée est assimilé à de la triche et résultera en un échec immédiat de l'exercice, sans appel. Vous êtes prévenu. + +* Toute fonction qui n'est pas explicitement autorisée est implicitement interdite diff --git a/exam-basedir04/docs/GUIDELINES.ro.md b/exam-basedir04/docs/GUIDELINES.ro.md new file mode 100644 index 0000000..56eeec6 --- /dev/null +++ b/exam-basedir04/docs/GUIDELINES.ro.md @@ -0,0 +1,56 @@ +#Reguli generale de urmat la examene + +*Nici un fel de comunicare nu este permisă. + +*Acesta este un examen, nu aveți dreptul să vorbiți, să ascultați muzică, să faceți zgomot sau să faceți ceva ce ar putea deranja pe ceilați studenți în vreun fel. + +*Telefoanele mobile sau orice alte dispozitive trebuie să fie închise și puse deoparte. Dacă sună vreun telefon, tot rândul va fi descalificat din examen și dat afară imediat! + +*Directorul vostru ”home” conține trei directoare: ”rendu”, ”subjects” și ”traces”. + +*Directorul ”subjects” va conține subiectul examenului vostru. + +*Directorul ”rendu” este o clonă a Git-ului vostru ”turn-in repository”. Veți lucra în el, și poate fi utilizat ca orice depozit Git regulat. + +*Sistemul nu va nota nimic ce nu este trimis pe Git ”turn-in repository” și în locul corect. Fiți foarte atenți unde ”examshell” va spune sa puneți fișierele voastre. + +*Puteți să vă rulați programele voastre în directorul ”rendu” sau în unul din subdirectoarele lui. + +*Este posibil să fie nevoie să citiți man-ul pentru a realiza un exercițiu.…. + +*Veți fi notați de un program. Trebuie să respectați specificațiile fisierului / căii (path) / numele funcțiilor EXACT așa cum este cerut. + +*Exercițiile vor specifica întotdeauna ce fișiere vor fi corectate: + + * Când un exercițiu cere un anumit fișier, acesta va fi numit explicit. De exemplu ”file1.c” sau ”file1.h” + + * Altfel, când numele sau numărul de fișiere este la latitudinea voastră, exercițiul va specifica ceva de genul ”*.c” sau ”*.h” + + * Când un ”Makefile” este cerut, va fi ÎNTOTDEAUNA specificată starea lui. + +* În cazul unei defecțiuni tehnice, întrebări despre subiect sau orice altă problemă, trebuie să te ridici în picioare, în liniște și să aștepți ca un membru al staff-ului sa vină la tine. Este interzis să îți întrebi vecinii sau să strigi după un membru al staff-ului. + +* Oricei echipament care nu este explicit permis, este implicit interzis. + +* Orice părăsire a sălii de examinare este definitivă, nu te mai poți întoarce. + +* Membri staff-ului vă pot da afară din examen, fără avertisment, în cazul în care consideră necesar. + +* Vă este permisă intrarea în sală cu o hartie albă și un pix, Fără caiete, notițe sau orice alt ajutor de acest fel. Ești singur ca să înfrunți acest examen. + +# Reguli pentru codare + +* Funcții folositoare sau fișiere vor fi date, câteodată, în directorul subiectului. + +* Corectarea este complet automată și se face de către un program pe care îl numim ”Deepthought” + +* Când un exercițiu îți cere să scrii un program cu unul sau mai multe nume de fișiere date explicit, va fi compliat cu următoarea comandă: ”clang -Wall -Wextra -Werror file1.c file2.c file3.c -o nume_program”. + +* Cand exercitiul lasa la latitudinea voastra numele fisierelor, exercitiul va fi compilat cu: clang -Wall -Wextra -Werror *.c -o program_name + +* Când trebuie doar să trimiteți o funcție (adică un fișier) va fi compilat cu ”clang -c -Wall -Wextra -Werror yourfile.c” apoi noi vom compila funcția noastră principală și le vom lega împreună pentru a crea un program de test. + +* Funcțiile permise vor fi specificate în antetele fiecărui exercițiu. Puteți recoda orice altă funcție credeți că este necesar. Folosirea unei funcții care nu este permisă în mod explicit este considerată trișare, și va duce la nepromovarea examenului, fără drept la discuții sau contenstații. Ați fost avertizați. + +*Orice funcție, care nu este permisă în mod explicit, este implicit interzisă + diff --git a/exam-basedir04/rendu b/exam-basedir04/rendu new file mode 160000 index 0000000..fd022fc --- /dev/null +++ b/exam-basedir04/rendu @@ -0,0 +1 @@ +Subproject commit fd022fc9508827f4b4af76216f84966b84f30fd3 diff --git a/exam-basedir04/subjects/rpn_calc/subject.en.txt b/exam-basedir04/subjects/rpn_calc/subject.en.txt new file mode 100644 index 0000000..d74b3ea --- /dev/null +++ b/exam-basedir04/subjects/rpn_calc/subject.en.txt @@ -0,0 +1,50 @@ +Assignment name : rpn_calc +Expected files : *.c, *.h +Allowed functions: atoi, printf, write, malloc, free +-------------------------------------------------------------------------------- + +Write a program that takes a string which contains an equation written in +Reverse Polish notation (RPN) as its first argument, evaluates the equation, and +prints the result on the standard output followed by a newline. + +Reverse Polish Notation is a mathematical notation in which every operator +follows all of its operands. In RPN, every operator encountered evaluates the +previous 2 operands, and the result of this operation then becomes the first of +the two operands for the subsequent operator. Operands and operators must be +spaced by at least one space. + +You must implement the following operators : "+", "-", "*", "/", and "%". + +If the string isn't valid or there isn't exactly one argument, you must print +"Error" on the standard output followed by a newline. + +All the given operands must fit in a "int". + +Examples of formulas converted in RPN: + +3 + 4 >> 3 4 + +((1 * 2) * 3) - 4 >> 1 2 * 3 * 4 - ou 3 1 2 * * 4 - +50 * (5 - (10 / 9)) >> 5 10 9 / - 50 * + +Here's how to evaluate a formula in RPN: + +1 2 * 3 * 4 - +2 3 * 4 - +6 4 - +2 + +Or: + +3 1 2 * * 4 - +3 2 * 4 - +6 4 - +2 + +Examples: + +$> ./rpn_calc "1 2 * 3 * 4 +" | cat -e +10$ +$> ./rpn_calc "1 2 3 4 +" | cat -e +Error$ +$> ./rpn_calc |cat -e +Error$ diff --git a/exam-basedir04/subjects/rpn_calc/subject.fr.txt b/exam-basedir04/subjects/rpn_calc/subject.fr.txt new file mode 100644 index 0000000..fd1b5fc --- /dev/null +++ b/exam-basedir04/subjects/rpn_calc/subject.fr.txt @@ -0,0 +1,51 @@ +Assignment name : rpn_calc +Expected files : *.c, *.h +Allowed functions: atoi, printf, write, malloc, free +-------------------------------------------------------------------------------- + +Ecrivez un programme qui prend en premier argument une chaine de caractères +correspondant à une équation écrite en Notation Polonaise Inverse ou NPI, +l'évalue et retourne le résultat sur la sortie standard suivi d'une newline. + +La Notation Polonaise Inverse est un système d'écriture d'opérations arithméti- +ques qui consiste à placer les opérandes avant les opérateurs de telle +sorte que pour chaque opérateur rencontré, les 2 opérandes précédents soient +évalués et le résultat placé en lieu et place dans l'ordre de calcul. Les +opérandes et les opérateurs doivent avoir au moins un espace entre eux. + +Vous devrez implémenter les opérateurs "+", "-", "*", "/" et "%". + +Si la chaine de caractères n'est pas valide ou qu'il n'y a pas un seul argument, +vous devrez afficher "Error" sur la sortie standard, suivie d'une newline. + +Tous les opérandes de la chaine de caracteres doivent pouvoir etre contenus +dans un int. + +Exemple de formules converties en NPI : + +3 + 4 >> 3 4 + +((1 * 2) * 3) - 4 >> 1 2 * 3 * 4 - ou 3 1 2 * * 4 - +50 * (5 - (10 / 9)) >> 5 10 9 / - 50 * + +Décomposition d'un calcul en NPI : + +1 2 * 3 * 4 - (On évalue "1 2 *" et on remplace l'ensemble par 2) +2 3 * 4 - (On évalue "2 3 *" et on remplace l'ensemble par 6) +6 4 - (On évalue "6 4 -" et on remplace l'ensemble par 2) +2 + +ou + +3 1 2 * * 4 - (On évalue "1 2 *" et on remplace l'ensemble par 2) +3 2 * 4 - (On évalue "3 2 *" et on remplace l'ensemble par 6) +6 4 - (On évalue "6 4 -" et on remplace l'ensemble par 2) +2 + +Exemples : + +$> ./rpn_calc "1 2 * 3 * 4 +" | cat -e +10$ +$> ./rpn_calc "1 2 3 4 +" | cat -e +Error$ +$> ./rpn_calc |cat -e +Error$ diff --git a/exam-basedir04/subjects/sort_int_tab/subject.en.txt b/exam-basedir04/subjects/sort_int_tab/subject.en.txt new file mode 100644 index 0000000..747ecb7 --- /dev/null +++ b/exam-basedir04/subjects/sort_int_tab/subject.en.txt @@ -0,0 +1,15 @@ +Assignment name : sort_int_tab +Expected files : sort_int_tab.c +Allowed functions: +-------------------------------------------------------------------------------- + +Write the following function: + +void sort_int_tab(int *tab, unsigned int size); + +It must sort (in-place) the 'tab' int array, that contains exactly 'size' +members, in ascending order. + +Doubles must be preserved. + +Input is always coherent. diff --git a/exam-basedir04/subjects/sort_int_tab/subject.fr.txt b/exam-basedir04/subjects/sort_int_tab/subject.fr.txt new file mode 100644 index 0000000..c5dc3e7 --- /dev/null +++ b/exam-basedir04/subjects/sort_int_tab/subject.fr.txt @@ -0,0 +1,15 @@ +Assignment name : sort_int_tab +Expected files : sort_int_tab.c +Allowed functions: +-------------------------------------------------------------------------------- + +Écrire la fonction suivante: + +void sort_int_tab(int *tab, unsigned int size); + +Cette fonction doit trier (en place !) le tableau d'ints 'tab', qui contient +exactement 'size' entrées, dans l'ordre croissant. + +Les doublons doivent être préservés. + +Les entrées seront toujours cohérentes. diff --git a/exam-basedir04/subjects/sort_int_tab/subject.ro.txt b/exam-basedir04/subjects/sort_int_tab/subject.ro.txt new file mode 100644 index 0000000..00c39fc --- /dev/null +++ b/exam-basedir04/subjects/sort_int_tab/subject.ro.txt @@ -0,0 +1,15 @@ +Exercitiu : sort_int_tab +Fisiere de iesire : sort_int_tab.c +Functii autorizate : +-------------------------------------------------------------------------------- + +Scrieti functia urmatoare: + + void sort_int_tab(int *tab, unsigned int size); + +Aceasta functie trebuie sa sorteze (pe loc!) tabloul de intregi tab, care contine +exact un numar size de elemente de intrare, in ordine crescatoare. + +Dublurile trebuie pastrate. + +Valorile de intrare vor fi intotdeauna coerente. diff --git a/exam-basedir04/traces/4-0_sort_int_tab.trace b/exam-basedir04/traces/4-0_sort_int_tab.trace new file mode 100644 index 0000000..02c8cf1 --- /dev/null +++ b/exam-basedir04/traces/4-0_sort_int_tab.trace @@ -0,0 +1,47 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r7p7.42.fr +Darwin 16.7.0 x86_64 +$> date +Fri Apr 20 14:58:03 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180420/tmaze + += Git history ================================================================== +$> git -C /var/folders/c4/2sbtxplx7nq9n4m0ltgml7z00000gq/T/tmpE7oefW/user log --pretty='%H - %an, %ad : %s' +fd022fc9508827f4b4af76216f84966b84f30fd3 - Tanguy MAZE, Fri Apr 20 14:57:55 2018 +0200 : sort_int_tab + += Collected files ========================================== +$> ls -lAR /var/folders/c4/2sbtxplx7nq9n4m0ltgml7z00000gq/T/tmpE7oefW/user +total 8 +-rw-r--r-- 1 deepthought deepthought 244 Apr 20 14:58 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 20 14:58 sort_int_tab + +/var/folders/c4/2sbtxplx7nq9n4m0ltgml7z00000gq/T/tmpE7oefW/user/sort_int_tab: +total 8 +-rw-r--r-- 1 deepthought deepthought 1125 Apr 20 14:58 sort_int_tab.c + += sort_int_tab ================================================================= +$> clang -Wextra -Wall -Werror main.c sort_int_tab.c -o user_exe + += Test 1 =================================================== +$> ./kfuq4cx8pyvl6784klbx61kj +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir05/docs/GUIDELINES.en.md b/exam-basedir05/docs/GUIDELINES.en.md new file mode 100644 index 0000000..1523e39 --- /dev/null +++ b/exam-basedir05/docs/GUIDELINES.en.md @@ -0,0 +1,55 @@ +# General guidelines + +* No communication whatsoever is allowed. + +* This is an exam, you don't have a right to chat, listen to music, make noise, or generally do anything that may disturb the other students in any way. + +* Your phones and other technological devices must be turned off and put away. If a phone rings, the whole row will be disqualified from the exam and kicked out immediately. + +* Your home directory contains three directories : "rendu", "subjects" and "traces". + +* The "subjects" directory will contain the subjects of your assignments + +* The "rendu" folder is a clone of your Git turn-in repository. You will work in it, and use it as any regular Git repository. + +* The system will not grade anything that is not pushed on your Git turn-in repository, and at the right place. Pay attention to where examshell tells you to put your files. + +* You can only run your programs in the "rendu" directory or one of its subdirectories. + +* You may need to read the man to carry out some assignments... + +* You will be graded by a program. You must respect the specified file/path/function names to the letter. + +* Assignments will always specify which files will be collected : + + * When an assignment asks for specific files, they will be explicitly named. For example "file1.c file1.h". + + * Otherwise, when filenames and/or the number of files is up to you, the assignment will say something along the lines of "*.c *.h". + + * When a Makefile is required, it will ALWAYS be explicitly stated. + +* In case of technical problem, question about the subject, or any other problem, you must get up silently and wait for a member of the staff to come to you. It is forbidden to ask your neighbors, or to verbally call for a staff member. + +* Any equipment not explicitly allowed is implicitly forbidden. + +* Any exit is definitive, you can not come in again. + +* Staff members may kick you out of the exam without warning if they deem it necessary. + +* You are allowed blank pieces of paper, and a pen. No notebooks, notes, or any help of the sort. You are alone to face this exam. + +# Coding guidelines + +* Useful functions and files will sometimes be given to you in the subject directory + +* The correction is fully automated, and performed by the program we know as Deepthought. + +* When an assignment asks you to write a program with one or more explicitly named files, it will be compiled with the following command: clang -Wall -Wextra -Werror file1.c file2.c file3.c -o program_name. + +* When the assignment leaves the filenames up to you, it will be compiled with: clang -Wall -Wextra -Werror *.c -o program_name. + +* Finally, when you must only turn in a function (so, one file), it will be compiled with clang -c -Wall -Wextra -Werror yourfile.c, then we will compile our main function and link them together to create a test program. + +* Allowed functions will be specified in the headers of the assignments. You may recode any other function you think is necessary. Using a function that's not explicitly allowed is considered cheating, and will result in a failing grade, with no possible discussion or appeal whatsoever. You've been warned. + +* Any function that isn't explicitly allowed is implicitly forbidden. diff --git a/exam-basedir05/docs/GUIDELINES.fr.md b/exam-basedir05/docs/GUIDELINES.fr.md new file mode 100644 index 0000000..c565b66 --- /dev/null +++ b/exam-basedir05/docs/GUIDELINES.fr.md @@ -0,0 +1,54 @@ +# Consignes générales + +* Aucune communication, quelle qu'elle soit, n'est permise + +* Ceci est un examen, il est interdit de discuter, écouter de la musique, faire du bruit, ou de façon générale de faire quoi que ce soit qui puisse perturber le travail des autres étudiants. + +* Vos téléphones et autres appareils technologiques doivent être éteints et rangés. Pas en silencieux, éteints. Si un téléphone sonne, toute la rangée sera exclue immédiatement de l'examen. + +* Votre répertoire home contient trois répertoires : "rendu", "subjects" et "traces". + +* Le répertoire "subjects" contiendra les sujets de vos exercices + +* Le répertoire "rendu" contiendra un clone de votre dépôt Git de rendu. Vous y travaillerez, et l'utiliserez comme n'importe quel autre dépôt Git de rendu. + +* Le système ne corrigera rien qui n'est pas push sur votre dépôt de rendu à l'endroit correct. Faites attention à ce qu'examshell vous dit concernant les emplacements de rendu. + +* Vous ne pouvez lancer vos propres programmes que dans le répertoire "rendu" ou l'un de ses sous-répertoires. + +* Vous aurez peut-être besoin de lire les man pour certains exercices ... + +* Vous aller être corrigé par un programme. Vous devez donc respecter à la lettre les noms de fichiers/fonctions qui vous sont imposés. + +* Les exercices spécifient toujours les noms de fichiers qui vous sont demandés: + + * Quand on vous demande des fichiers spécifiques, ils seront nommés explicitement, par exemple "file1.c file1.h" + + * Quand les noms et le nombre de fichier sont à votre discrétion, on dira quelque chose comme "*.c *.h" + + * Quand il faut un Makefile, ce sera toujours explicitement précisé + +* En cas de problème technique, de question sur un sujet, ou tout autre souci, vous devez vous lever EN SILENCE et attendre qu'un membre du staff vienne vous voir. Il est interdit de demander à vos voisins, ou d'appeler verbalement un membre du staff. + +* Vous avez le droit à des feuilles vierges, un stylo, et c'est tout. Pas de cahiers, carnets, ou autres. Pas d'écouteurs, de casques, de portable, etc ... + +* Tout équipement qui n'est pas explicitement autorisé est implicitement interdit. + +* Toute sortie est définitive. + +* Les membres du staff peuvent vous exclure de l'examen sans préavis s'ils l'estiment nécessaire pour quelque raison que ce soit. + + +# Consignes relative au code + +* Des fonctions et fichiers utiles vous seront parfois donnés dans le répertoire du sujet + +* Les corrections sont entièrement automatiques et réalisées par un programme nommé Deepthought + +* Les programmes seront compilés avec "clang -Wall -Wextra -Werror" + +* Quand on ne vous demande qu'une fonction, et non un programme, cela signifie que votre fichier sera compilé accompagné de notre propre main.c + +* Les fonctions autorisées sont précisées dans les en-têtes des exercices. Vous pouvez recoder toute fonction que vous jugez nécessaire. Utiliser une fonction non-autorisée est assimilé à de la triche et résultera en un échec immédiat de l'exercice, sans appel. Vous êtes prévenu. + +* Toute fonction qui n'est pas explicitement autorisée est implicitement interdite diff --git a/exam-basedir05/docs/GUIDELINES.ro.md b/exam-basedir05/docs/GUIDELINES.ro.md new file mode 100644 index 0000000..56eeec6 --- /dev/null +++ b/exam-basedir05/docs/GUIDELINES.ro.md @@ -0,0 +1,56 @@ +#Reguli generale de urmat la examene + +*Nici un fel de comunicare nu este permisă. + +*Acesta este un examen, nu aveți dreptul să vorbiți, să ascultați muzică, să faceți zgomot sau să faceți ceva ce ar putea deranja pe ceilați studenți în vreun fel. + +*Telefoanele mobile sau orice alte dispozitive trebuie să fie închise și puse deoparte. Dacă sună vreun telefon, tot rândul va fi descalificat din examen și dat afară imediat! + +*Directorul vostru ”home” conține trei directoare: ”rendu”, ”subjects” și ”traces”. + +*Directorul ”subjects” va conține subiectul examenului vostru. + +*Directorul ”rendu” este o clonă a Git-ului vostru ”turn-in repository”. Veți lucra în el, și poate fi utilizat ca orice depozit Git regulat. + +*Sistemul nu va nota nimic ce nu este trimis pe Git ”turn-in repository” și în locul corect. Fiți foarte atenți unde ”examshell” va spune sa puneți fișierele voastre. + +*Puteți să vă rulați programele voastre în directorul ”rendu” sau în unul din subdirectoarele lui. + +*Este posibil să fie nevoie să citiți man-ul pentru a realiza un exercițiu.…. + +*Veți fi notați de un program. Trebuie să respectați specificațiile fisierului / căii (path) / numele funcțiilor EXACT așa cum este cerut. + +*Exercițiile vor specifica întotdeauna ce fișiere vor fi corectate: + + * Când un exercițiu cere un anumit fișier, acesta va fi numit explicit. De exemplu ”file1.c” sau ”file1.h” + + * Altfel, când numele sau numărul de fișiere este la latitudinea voastră, exercițiul va specifica ceva de genul ”*.c” sau ”*.h” + + * Când un ”Makefile” este cerut, va fi ÎNTOTDEAUNA specificată starea lui. + +* În cazul unei defecțiuni tehnice, întrebări despre subiect sau orice altă problemă, trebuie să te ridici în picioare, în liniște și să aștepți ca un membru al staff-ului sa vină la tine. Este interzis să îți întrebi vecinii sau să strigi după un membru al staff-ului. + +* Oricei echipament care nu este explicit permis, este implicit interzis. + +* Orice părăsire a sălii de examinare este definitivă, nu te mai poți întoarce. + +* Membri staff-ului vă pot da afară din examen, fără avertisment, în cazul în care consideră necesar. + +* Vă este permisă intrarea în sală cu o hartie albă și un pix, Fără caiete, notițe sau orice alt ajutor de acest fel. Ești singur ca să înfrunți acest examen. + +# Reguli pentru codare + +* Funcții folositoare sau fișiere vor fi date, câteodată, în directorul subiectului. + +* Corectarea este complet automată și se face de către un program pe care îl numim ”Deepthought” + +* Când un exercițiu îți cere să scrii un program cu unul sau mai multe nume de fișiere date explicit, va fi compliat cu următoarea comandă: ”clang -Wall -Wextra -Werror file1.c file2.c file3.c -o nume_program”. + +* Cand exercitiul lasa la latitudinea voastra numele fisierelor, exercitiul va fi compilat cu: clang -Wall -Wextra -Werror *.c -o program_name + +* Când trebuie doar să trimiteți o funcție (adică un fișier) va fi compilat cu ”clang -c -Wall -Wextra -Werror yourfile.c” apoi noi vom compila funcția noastră principală și le vom lega împreună pentru a crea un program de test. + +* Funcțiile permise vor fi specificate în antetele fiecărui exercițiu. Puteți recoda orice altă funcție credeți că este necesar. Folosirea unei funcții care nu este permisă în mod explicit este considerată trișare, și va duce la nepromovarea examenului, fără drept la discuții sau contenstații. Ați fost avertizați. + +*Orice funcție, care nu este permisă în mod explicit, este implicit interzisă + diff --git a/exam-basedir05/rendu b/exam-basedir05/rendu new file mode 160000 index 0000000..b1a0084 --- /dev/null +++ b/exam-basedir05/rendu @@ -0,0 +1 @@ +Subproject commit b1a0084071602bdc42c21725a492a316ecae727b diff --git a/exam-basedir05/subjects/brackets/subject.en.txt b/exam-basedir05/subjects/brackets/subject.en.txt new file mode 100644 index 0000000..3dd3a68 --- /dev/null +++ b/exam-basedir05/subjects/brackets/subject.en.txt @@ -0,0 +1,31 @@ +Assignment name : brackets +Expected files : *.c *.h +Allowed functions: write +-------------------------------------------------------------------------------- + +Write a program that takes an undefined number of strings in arguments. For each +argument, the program prints on the standard output "OK" followed by a newline +if the expression is correctly bracketed, otherwise it prints "Error" followed by +a newline. + +Symbols considered as 'brackets' are brackets '(' and ')', square brackets '[' +and ']'and braces '{' and '}'. Every other symbols are simply ignored. + +An opening bracket must always be closed by the good closing bracket in the +correct order. A string which not contains any bracket is considered as a +correctly bracketed string. + +If there is no arguments, the program must print only a newline. + +Examples : + +$> ./brackets '(johndoe)' | cat -e +OK$ +$> ./brackets '([)]' | cat -e +Error$ +$> ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e +OK$ +OK$ +$> ./brackets | cat -e +$ +$> diff --git a/exam-basedir05/subjects/brackets/subject.fr.txt b/exam-basedir05/subjects/brackets/subject.fr.txt new file mode 100644 index 0000000..84eaf79 --- /dev/null +++ b/exam-basedir05/subjects/brackets/subject.fr.txt @@ -0,0 +1,32 @@ +Assignment name : brackets +Expected files : *.c *.h +Allowed functions: write +-------------------------------------------------------------------------------- + +Ecrire un programme qui prendra une chaine de caractères en paramètre et qui +écrit sur la sortie standard 'OK' si l'expression est bien parenthesée et +'Error' dans le cas contraire, le tout suivi d'une newline. + +Les symboles utilisés comme 'parenthèses' seront les parenthèses '(' et ')', les +crochets '[' et ']' ainsi que les accolades '{' et '}'. Tous les autres +caractères seront tout simplement ignorés. + +Une parenthèse ouvrante devra obligatoirement être fermée par une parenthèse +fermante et dans le bon ordre (parenthèses imbriquées). Une chaine ne comportant +aucune parenthèse est considerée comme bien parenthesée. + +Votre programme évaluera tous les arguments. Si aucun argument n'est fourni, +il affichera seulement une newline. + +Exemples : + +$> ./brackets '(jo:qahndoe)' | cat -e +OK$ +$> ./brackets '([)]' | cat -e +Error$ +$> ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e +OK$ +OK$ +$> ./brackets | cat -e +$ +$> diff --git a/exam-basedir05/subjects/ft_itoa_base/subject.en.txt b/exam-basedir05/subjects/ft_itoa_base/subject.en.txt new file mode 100644 index 0000000..b5a5df0 --- /dev/null +++ b/exam-basedir05/subjects/ft_itoa_base/subject.en.txt @@ -0,0 +1,20 @@ +Assignment name : ft_itoa_base +Expected files : ft_itoa_base.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Write a function that converts an integer value to a null-terminated string +using the specified base and stores the result in a char array that you must +allocate. + +The base is expressed as an integer, from 2 to 16. The characters comprising +the base are the digits from 0 to 9, followed by uppercase letter from A to F. + +For example, base 4 would be "0123" and base 16 "0123456789ABCDEF". + +If base is 10 and value is negative, the resulting string is preceded with a +minus sign (-). With any other base, value is always considered unsigned. + +Your function must be declared as follows: + +char *ft_itoa_base(int value, int base); diff --git a/exam-basedir05/subjects/ft_itoa_base/subject.fr.txt b/exam-basedir05/subjects/ft_itoa_base/subject.fr.txt new file mode 100644 index 0000000..e52408b --- /dev/null +++ b/exam-basedir05/subjects/ft_itoa_base/subject.fr.txt @@ -0,0 +1,21 @@ +Assignment name : ft_itoa_base +Expected files : ft_itoa_base.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Écrire une fonction qui prend un int et le convertit en chaîne terminée par un +caractère nul, en utilisant la base passée en paramètre. Cette fonction +retourne le résultat en tant qu'un tableau de char que vous devez allouer. + +La base est exprimée par un entier qui va de 2 à 16. Les caractères composant +la base sont les chiffres de 0 à 9 suivis par les lettres majuscules A à F. + +Par exemple, la base 4 serait "0123" et la base 16 "0123456789ABCDEF". + +Si la base est 10 et la valeur est négative, la chaîne de sortie doit être +précédée d'un caractère '-'. Pour toute autre base, la valeur est toujours +considérée non-signée. + +Votre fonction doit être déclarée comme suit: + +char *ft_itoa_base(int value, int base); diff --git a/exam-basedir05/subjects/ft_split/subject.en.txt b/exam-basedir05/subjects/ft_split/subject.en.txt new file mode 100644 index 0000000..97375e9 --- /dev/null +++ b/exam-basedir05/subjects/ft_split/subject.en.txt @@ -0,0 +1,14 @@ +Assignment name : ft_split +Expected files : ft_split.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Write a function that takes a string, splits it into words, and returns them as +a NULL-terminated array of strings. + +A "word" is defined as a part of a string delimited either by spaces/tabs/new +lines, or by the start/end of the string. + +Your function must be declared as follows: + +char **ft_split(char *str); diff --git a/exam-basedir05/subjects/ft_split/subject.fr.txt b/exam-basedir05/subjects/ft_split/subject.fr.txt new file mode 100644 index 0000000..acd1b41 --- /dev/null +++ b/exam-basedir05/subjects/ft_split/subject.fr.txt @@ -0,0 +1,16 @@ +Assignment name : ft_split +Expected files : ft_split.c +Allowed functions: malloc +-------------------------------------------------------------------------------- + +Écrire une fonction qui prend en paramètre une chaîne de caractères et la +découpe en mots, qui seront retournés sous la forme d'un tableau de chaînes +terminé par NULL. + +On appelle "mot" une portion de chaîne de caractères délimitée soit par des +espaces, des retours à la ligne et/ou des tabulations, soit par le début / fin +de la chaîne. + +Votre fonction devra être prototypée de la façon suivante : + +char **ft_split(char *str); diff --git a/exam-basedir05/subjects/ft_split/subject.ro.txt b/exam-basedir05/subjects/ft_split/subject.ro.txt new file mode 100644 index 0000000..4bc5c42 --- /dev/null +++ b/exam-basedir05/subjects/ft_split/subject.ro.txt @@ -0,0 +1,15 @@ +Exercitiu : ft_split +Fisier de iesire : ft_split.c +Functii autorizate : malloc +-------------------------------------------------------------------------------- + +Scrieti o functie ce ia ca parametru un sir de caractere si pe care il separa +in cuvinte, ce vor fi returnate sub forma unui tablou siruri terminate cu NULL. + +Numim "cuvant" o portiune a a sirului de caractere delimitate de fie de spatii +si/sau tabulatoare, fie de inceputul/sfarsitul sirului. + +Functia va trebui sa aiba urmatorul prototip: + +char **ft_split(char *str); + diff --git a/exam-basedir05/traces/4-0_ft_split.trace b/exam-basedir05/traces/4-0_ft_split.trace new file mode 100644 index 0000000..6b59566 --- /dev/null +++ b/exam-basedir05/traces/4-0_ft_split.trace @@ -0,0 +1,121 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r6p19.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 30 16:38:49 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180430/tmaze + += Git history ================================================================== +$> git -C /var/folders/v9/46wx1tv10wg6gy_vv8jfkqh80000gq/T/tmpQ_TIUA/user log --pretty='%H - %an, %ad : %s' +d972dde3a425265021d599d5503d785f9c061168 - Tanguy MAZE, Mon Apr 30 16:38:35 2018 +0200 : ft_split + += Collected files ========================================== +$> ls -lAR /var/folders/v9/46wx1tv10wg6gy_vv8jfkqh80000gq/T/tmpQ_TIUA/user +total 8 +-rw-r--r-- 1 deepthought deepthought 258 Apr 30 16:38 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 30 16:38 ft_split + +/var/folders/v9/46wx1tv10wg6gy_vv8jfkqh80000gq/T/tmpQ_TIUA/user/ft_split: +total 8 +-rw-r--r-- 1 deepthought deepthought 2014 Apr 30 16:38 ft_split.c + += ft_split ===================================================================== +$> clang -Wextra -Wall -Werror ft_split.c main.c -o user_exe + += Test 1 =================================================== +$> ./c8xgi4i52s4ddzmts1dnqj5c "" +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./oil8ldut54wjdkj2cw02xy4i " + + + " +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./r36expf12drqgpxsetcio37d " + + +" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./s02chza3l9u1qixuwr1rbalt "1vEhVAG2" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./mh72usouqlmirmylr9o1mgsz "FPDrYVWU" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./px4l8ds9vj3wthzyvvwfzm81 " + + +wHDvJKRzbm iJ43k0LdzOeUtHSQ1 + cXhzIBKZy5O SjHEMG3qwOC0GU6s8DzZH + + 2RS + +Sv5YaI2lFjdhbt + + ZRjuJ + 5EcsYXKBCbpgDf + + + JEC6csUqd9 + " +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./e2cbqa44kf113m45cyxugvtt " +NyrugEL7UJcY + J1PhXM94swanp5lWCkzlKtj4 AwmqYKD90ehioQuf6 + + VqL + UmQzyxXoHLRE1skr + amxprCZ7z467JRoc2nLsPQU + QsJXfUN cdxhv3EJI5W + + ZHVqN8oWzGEwb5S376qwrsb9aAWBoim RZy8zwgxla04C +W31y5MH2fBjJx + +" +$> diff -U 3 user_output_test7 test7.output | cat -e +--- user_output_test7 2018-04-30 16:38:55.000000000 +0200$ ++++ test7.output 2018-04-30 16:38:55.000000000 +0200$ +@@ -2,7 +2,7 @@$ + J1PhXM94swanp5lWCkzlKtj4$ + AwmqYKD90ehioQuf6$ + VqL$ +-UmQzyxXoHLRE1skr^D$ ++UmQzyxXoHLRE1skr$ + amxprCZ7z467JRoc2nLsPQU$ + QsJXfUN$ + cdxhv3EJI5W$ + +Diff KO :( +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir05/traces/4-1_ft_itoa_base.trace b/exam-basedir05/traces/4-1_ft_itoa_base.trace new file mode 100644 index 0000000..420a9f7 --- /dev/null +++ b/exam-basedir05/traces/4-1_ft_itoa_base.trace @@ -0,0 +1,148 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r2p10.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 30 16:47:13 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180430/tmaze + += Git history ================================================================== +$> git -C /var/folders/p0/6k42lfhx37533yqry6jc2ngm0000gq/T/tmppGI_ct/user log --pretty='%H - %an, %ad : %s' +b2f0274abee53275050dedee420bb6b7fa391c09 - Tanguy MAZE, Mon Apr 30 16:47:06 2018 +0200 : ft_itoa_base +d972dde3a425265021d599d5503d785f9c061168 - Tanguy MAZE, Mon Apr 30 16:38:35 2018 +0200 : ft_split + += Collected files ========================================== +$> ls -lAR /var/folders/p0/6k42lfhx37533yqry6jc2ngm0000gq/T/tmppGI_ct/user +total 8 +-rw-r--r-- 1 deepthought deepthought 521 Apr 30 16:47 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 30 16:47 ft_itoa_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 30 16:47 ft_split + +/var/folders/p0/6k42lfhx37533yqry6jc2ngm0000gq/T/tmppGI_ct/user/ft_itoa_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1586 Apr 30 16:47 ft_itoa_base.c + +/var/folders/p0/6k42lfhx37533yqry6jc2ngm0000gq/T/tmppGI_ct/user/ft_split: +total 8 +-rw-r--r-- 1 deepthought deepthought 2014 Apr 30 16:47 ft_split.c + += ft_itoa_base ================================================================= +$> clang -Wextra -Wall -Werror ft_itoa_base.c main.c -o user_exe + += Test 1 =================================================== +$> ./xlj5ns1nj88t9bieq26h1gk0 +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./r0a2uzayjppmk86d3l5668mx "21" "2313" "12" +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./s63ke0vmmqnsa93jdmw70dyy "2147483647" "10" +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./2ndm3aidina5trsbtdeg6a90 "-2147483648" "10" +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./u1ppug16xoc6a2s41hjzqv94 "0" "2" +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./7v2hmn80lhkesziwachjx3pt "--223" "10" +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./6f6psoxlow0w1u6p7nph9l6s "110268196" "14" +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./9gdzmewvqbzyfn8thlgsib7p "1392491729" "8" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D += Test 9 =================================================== +$> ./mrsfp7euxlpautzt6r9xjgga "1810692517" "13" +$> diff -U 3 user_output_test9 test9.output | cat -e + +Diff OK :D += Test 10 ================================================== +$> ./cze3tyc0xdyn5bxnykcb9w4v "844780707" "4" +$> diff -U 3 user_output_test10 test10.output | cat -e + +Diff OK :D += Test 11 ================================================== +$> ./q76be2hj444qeztdhxt978yl "335896289" "5" +$> diff -U 3 user_output_test11 test11.output | cat -e + +Diff OK :D += Test 12 ================================================== +$> ./eabv1ym2bnm8s472cyx3gox1 "-52926340" "13" +$> diff -U 3 user_output_test12 test12.output | cat -e + +Diff OK :D += Test 13 ================================================== +$> ./mws0vg0s1owdg936xv2hzt36 "484734000" "14" +$> diff -U 3 user_output_test13 test13.output | cat -e + +Diff OK :D += Test 14 ================================================== +$> ./6pr8359wgo08jk46by8o8pog "636941058" "13" +$> diff -U 3 user_output_test14 test14.output | cat -e + +Diff OK :D += Test 15 ================================================== +$> ./neaav2wywllcdvsx8ag3s7ck "1533222875" "13" +$> diff -U 3 user_output_test15 test15.output | cat -e + +Diff OK :D += Test 16 ================================================== +$> ./shvdflsn04qjye3jagmzxyni "211476535" "15" +$> diff -U 3 user_output_test16 test16.output | cat -e + +Diff OK :D += Test 17 ================================================== +$> ./csk3i0npzrv12beivqh1ooqm "359956549" "7" +$> diff -U 3 user_output_test17 test17.output | cat -e + +Diff OK :D += Test 18 ================================================== +$> ./qqho0v1b293n7amzcz3rycdv "816168462" "11" +$> diff -U 3 user_output_test18 test18.output | cat -e + +Diff OK :D += Test 19 ================================================== +$> ./ptdzhf190mc3ifjp5zu7v2oa "1832967199" "6" +$> diff -U 3 user_output_test19 test19.output | cat -e + +Diff OK :D += Test 20 ================================================== +$> ./l1v5moyoyb27mle1ojtncgjj "245350995" "4" +$> diff -U 3 user_output_test20 test20.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir05/traces/5-0_brackets.trace b/exam-basedir05/traces/5-0_brackets.trace new file mode 100644 index 0000000..3f2c43f --- /dev/null +++ b/exam-basedir05/traces/5-0_brackets.trace @@ -0,0 +1,94 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r13p11.42.fr +Darwin 16.7.0 x86_64 +$> date +Mon Apr 30 17:41:11 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180430/tmaze + += Git history ================================================================== +$> git -C /var/folders/mm/shrjj_pj115g1cz31r93wbn00000gq/T/tmpgHZCSZ/user log --pretty='%H - %an, %ad : %s' +b1a0084071602bdc42c21725a492a316ecae727b - Tanguy MAZE, Mon Apr 30 17:40:56 2018 +0200 : brackets +b2f0274abee53275050dedee420bb6b7fa391c09 - Tanguy MAZE, Mon Apr 30 16:47:06 2018 +0200 : ft_itoa_base +d972dde3a425265021d599d5503d785f9c061168 - Tanguy MAZE, Mon Apr 30 16:38:35 2018 +0200 : ft_split + += Collected files ========================================== +$> ls -lAR /var/folders/mm/shrjj_pj115g1cz31r93wbn00000gq/T/tmpgHZCSZ/user +total 8 +-rw-r--r-- 1 deepthought deepthought 780 Apr 30 17:41 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 Apr 30 17:41 brackets +drwxr-xr-x 3 deepthought deepthought 102 Apr 30 17:41 ft_itoa_base +drwxr-xr-x 3 deepthought deepthought 102 Apr 30 17:41 ft_split + +/var/folders/mm/shrjj_pj115g1cz31r93wbn00000gq/T/tmpgHZCSZ/user/brackets: +total 8 +-rw-r--r-- 1 deepthought deepthought 1757 Apr 30 17:41 brackets.c + +/var/folders/mm/shrjj_pj115g1cz31r93wbn00000gq/T/tmpgHZCSZ/user/ft_itoa_base: +total 8 +-rw-r--r-- 1 deepthought deepthought 1586 Apr 30 17:41 ft_itoa_base.c + +/var/folders/mm/shrjj_pj115g1cz31r93wbn00000gq/T/tmpgHZCSZ/user/ft_split: +total 8 +-rw-r--r-- 1 deepthought deepthought 2014 Apr 30 17:41 ft_split.c + += brackets ===================================================================== +$> clang -Wextra -Wall -Werror brackets.c -o user_exe + += Test 1 =================================================== +$> ./1owsni59vsked0lazuazigz3 '(toto)' +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D += Test 2 =================================================== +$> ./yox6g8nve2tt5uzrwqsira7g '([)]' +$> diff -U 3 user_output_test2 test2.output | cat -e + +Diff OK :D += Test 3 =================================================== +$> ./lzwgdg26099s5kfzpxenk5mo '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' +$> diff -U 3 user_output_test3 test3.output | cat -e + +Diff OK :D += Test 4 =================================================== +$> ./z6bwkwreiklyu7erkgifux19 +$> diff -U 3 user_output_test4 test4.output | cat -e + +Diff OK :D += Test 5 =================================================== +$> ./nmt1shlw66nkguhgql7ov0ot '()' '[]' '{}' '' 'toto' '([{}[{(()[])}()]]())(((([])))())' +$> diff -U 3 user_output_test5 test5.output | cat -e + +Diff OK :D += Test 6 =================================================== +$> ./0ykw13wbvmsjey7tb68nwk8n '()[]{}' '([{}])[({})]{([])}' +$> diff -U 3 user_output_test6 test6.output | cat -e + +Diff OK :D += Test 7 =================================================== +$> ./rjuzyl1i0110o635r0i5zvb4 '(]' '{)' '[}' ')' '}' ')' '(' '{' '[' +$> diff -U 3 user_output_test7 test7.output | cat -e + +Diff OK :D += Test 8 =================================================== +$> ./22df9bdlpll4gejbmex258yc '({)}' '[()]{}]' '])}' '([{' "(cette (trace n'a pas [de but precis]) {a part embeter (tout le monde)})" +$> diff -U 3 user_output_test8 test8.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/exam-basedir06/docs/GUIDELINES.en.md b/exam-basedir06/docs/GUIDELINES.en.md new file mode 100644 index 0000000..1523e39 --- /dev/null +++ b/exam-basedir06/docs/GUIDELINES.en.md @@ -0,0 +1,55 @@ +# General guidelines + +* No communication whatsoever is allowed. + +* This is an exam, you don't have a right to chat, listen to music, make noise, or generally do anything that may disturb the other students in any way. + +* Your phones and other technological devices must be turned off and put away. If a phone rings, the whole row will be disqualified from the exam and kicked out immediately. + +* Your home directory contains three directories : "rendu", "subjects" and "traces". + +* The "subjects" directory will contain the subjects of your assignments + +* The "rendu" folder is a clone of your Git turn-in repository. You will work in it, and use it as any regular Git repository. + +* The system will not grade anything that is not pushed on your Git turn-in repository, and at the right place. Pay attention to where examshell tells you to put your files. + +* You can only run your programs in the "rendu" directory or one of its subdirectories. + +* You may need to read the man to carry out some assignments... + +* You will be graded by a program. You must respect the specified file/path/function names to the letter. + +* Assignments will always specify which files will be collected : + + * When an assignment asks for specific files, they will be explicitly named. For example "file1.c file1.h". + + * Otherwise, when filenames and/or the number of files is up to you, the assignment will say something along the lines of "*.c *.h". + + * When a Makefile is required, it will ALWAYS be explicitly stated. + +* In case of technical problem, question about the subject, or any other problem, you must get up silently and wait for a member of the staff to come to you. It is forbidden to ask your neighbors, or to verbally call for a staff member. + +* Any equipment not explicitly allowed is implicitly forbidden. + +* Any exit is definitive, you can not come in again. + +* Staff members may kick you out of the exam without warning if they deem it necessary. + +* You are allowed blank pieces of paper, and a pen. No notebooks, notes, or any help of the sort. You are alone to face this exam. + +# Coding guidelines + +* Useful functions and files will sometimes be given to you in the subject directory + +* The correction is fully automated, and performed by the program we know as Deepthought. + +* When an assignment asks you to write a program with one or more explicitly named files, it will be compiled with the following command: clang -Wall -Wextra -Werror file1.c file2.c file3.c -o program_name. + +* When the assignment leaves the filenames up to you, it will be compiled with: clang -Wall -Wextra -Werror *.c -o program_name. + +* Finally, when you must only turn in a function (so, one file), it will be compiled with clang -c -Wall -Wextra -Werror yourfile.c, then we will compile our main function and link them together to create a test program. + +* Allowed functions will be specified in the headers of the assignments. You may recode any other function you think is necessary. Using a function that's not explicitly allowed is considered cheating, and will result in a failing grade, with no possible discussion or appeal whatsoever. You've been warned. + +* Any function that isn't explicitly allowed is implicitly forbidden. diff --git a/exam-basedir06/docs/GUIDELINES.fr.md b/exam-basedir06/docs/GUIDELINES.fr.md new file mode 100644 index 0000000..c565b66 --- /dev/null +++ b/exam-basedir06/docs/GUIDELINES.fr.md @@ -0,0 +1,54 @@ +# Consignes générales + +* Aucune communication, quelle qu'elle soit, n'est permise + +* Ceci est un examen, il est interdit de discuter, écouter de la musique, faire du bruit, ou de façon générale de faire quoi que ce soit qui puisse perturber le travail des autres étudiants. + +* Vos téléphones et autres appareils technologiques doivent être éteints et rangés. Pas en silencieux, éteints. Si un téléphone sonne, toute la rangée sera exclue immédiatement de l'examen. + +* Votre répertoire home contient trois répertoires : "rendu", "subjects" et "traces". + +* Le répertoire "subjects" contiendra les sujets de vos exercices + +* Le répertoire "rendu" contiendra un clone de votre dépôt Git de rendu. Vous y travaillerez, et l'utiliserez comme n'importe quel autre dépôt Git de rendu. + +* Le système ne corrigera rien qui n'est pas push sur votre dépôt de rendu à l'endroit correct. Faites attention à ce qu'examshell vous dit concernant les emplacements de rendu. + +* Vous ne pouvez lancer vos propres programmes que dans le répertoire "rendu" ou l'un de ses sous-répertoires. + +* Vous aurez peut-être besoin de lire les man pour certains exercices ... + +* Vous aller être corrigé par un programme. Vous devez donc respecter à la lettre les noms de fichiers/fonctions qui vous sont imposés. + +* Les exercices spécifient toujours les noms de fichiers qui vous sont demandés: + + * Quand on vous demande des fichiers spécifiques, ils seront nommés explicitement, par exemple "file1.c file1.h" + + * Quand les noms et le nombre de fichier sont à votre discrétion, on dira quelque chose comme "*.c *.h" + + * Quand il faut un Makefile, ce sera toujours explicitement précisé + +* En cas de problème technique, de question sur un sujet, ou tout autre souci, vous devez vous lever EN SILENCE et attendre qu'un membre du staff vienne vous voir. Il est interdit de demander à vos voisins, ou d'appeler verbalement un membre du staff. + +* Vous avez le droit à des feuilles vierges, un stylo, et c'est tout. Pas de cahiers, carnets, ou autres. Pas d'écouteurs, de casques, de portable, etc ... + +* Tout équipement qui n'est pas explicitement autorisé est implicitement interdit. + +* Toute sortie est définitive. + +* Les membres du staff peuvent vous exclure de l'examen sans préavis s'ils l'estiment nécessaire pour quelque raison que ce soit. + + +# Consignes relative au code + +* Des fonctions et fichiers utiles vous seront parfois donnés dans le répertoire du sujet + +* Les corrections sont entièrement automatiques et réalisées par un programme nommé Deepthought + +* Les programmes seront compilés avec "clang -Wall -Wextra -Werror" + +* Quand on ne vous demande qu'une fonction, et non un programme, cela signifie que votre fichier sera compilé accompagné de notre propre main.c + +* Les fonctions autorisées sont précisées dans les en-têtes des exercices. Vous pouvez recoder toute fonction que vous jugez nécessaire. Utiliser une fonction non-autorisée est assimilé à de la triche et résultera en un échec immédiat de l'exercice, sans appel. Vous êtes prévenu. + +* Toute fonction qui n'est pas explicitement autorisée est implicitement interdite diff --git a/exam-basedir06/docs/GUIDELINES.ro.md b/exam-basedir06/docs/GUIDELINES.ro.md new file mode 100644 index 0000000..56eeec6 --- /dev/null +++ b/exam-basedir06/docs/GUIDELINES.ro.md @@ -0,0 +1,56 @@ +#Reguli generale de urmat la examene + +*Nici un fel de comunicare nu este permisă. + +*Acesta este un examen, nu aveți dreptul să vorbiți, să ascultați muzică, să faceți zgomot sau să faceți ceva ce ar putea deranja pe ceilați studenți în vreun fel. + +*Telefoanele mobile sau orice alte dispozitive trebuie să fie închise și puse deoparte. Dacă sună vreun telefon, tot rândul va fi descalificat din examen și dat afară imediat! + +*Directorul vostru ”home” conține trei directoare: ”rendu”, ”subjects” și ”traces”. + +*Directorul ”subjects” va conține subiectul examenului vostru. + +*Directorul ”rendu” este o clonă a Git-ului vostru ”turn-in repository”. Veți lucra în el, și poate fi utilizat ca orice depozit Git regulat. + +*Sistemul nu va nota nimic ce nu este trimis pe Git ”turn-in repository” și în locul corect. Fiți foarte atenți unde ”examshell” va spune sa puneți fișierele voastre. + +*Puteți să vă rulați programele voastre în directorul ”rendu” sau în unul din subdirectoarele lui. + +*Este posibil să fie nevoie să citiți man-ul pentru a realiza un exercițiu.…. + +*Veți fi notați de un program. Trebuie să respectați specificațiile fisierului / căii (path) / numele funcțiilor EXACT așa cum este cerut. + +*Exercițiile vor specifica întotdeauna ce fișiere vor fi corectate: + + * Când un exercițiu cere un anumit fișier, acesta va fi numit explicit. De exemplu ”file1.c” sau ”file1.h” + + * Altfel, când numele sau numărul de fișiere este la latitudinea voastră, exercițiul va specifica ceva de genul ”*.c” sau ”*.h” + + * Când un ”Makefile” este cerut, va fi ÎNTOTDEAUNA specificată starea lui. + +* În cazul unei defecțiuni tehnice, întrebări despre subiect sau orice altă problemă, trebuie să te ridici în picioare, în liniște și să aștepți ca un membru al staff-ului sa vină la tine. Este interzis să îți întrebi vecinii sau să strigi după un membru al staff-ului. + +* Oricei echipament care nu este explicit permis, este implicit interzis. + +* Orice părăsire a sălii de examinare este definitivă, nu te mai poți întoarce. + +* Membri staff-ului vă pot da afară din examen, fără avertisment, în cazul în care consideră necesar. + +* Vă este permisă intrarea în sală cu o hartie albă și un pix, Fără caiete, notițe sau orice alt ajutor de acest fel. Ești singur ca să înfrunți acest examen. + +# Reguli pentru codare + +* Funcții folositoare sau fișiere vor fi date, câteodată, în directorul subiectului. + +* Corectarea este complet automată și se face de către un program pe care îl numim ”Deepthought” + +* Când un exercițiu îți cere să scrii un program cu unul sau mai multe nume de fișiere date explicit, va fi compliat cu următoarea comandă: ”clang -Wall -Wextra -Werror file1.c file2.c file3.c -o nume_program”. + +* Cand exercitiul lasa la latitudinea voastra numele fisierelor, exercitiul va fi compilat cu: clang -Wall -Wextra -Werror *.c -o program_name + +* Când trebuie doar să trimiteți o funcție (adică un fișier) va fi compilat cu ”clang -c -Wall -Wextra -Werror yourfile.c” apoi noi vom compila funcția noastră principală și le vom lega împreună pentru a crea un program de test. + +* Funcțiile permise vor fi specificate în antetele fiecărui exercițiu. Puteți recoda orice altă funcție credeți că este necesar. Folosirea unei funcții care nu este permisă în mod explicit este considerată trișare, și va duce la nepromovarea examenului, fără drept la discuții sau contenstații. Ați fost avertizați. + +*Orice funcție, care nu este permisă în mod explicit, este implicit interzisă + diff --git a/exam-basedir06/rendu b/exam-basedir06/rendu new file mode 160000 index 0000000..50d778e --- /dev/null +++ b/exam-basedir06/rendu @@ -0,0 +1 @@ +Subproject commit 50d778ec5e0453efc70bdd0ab4f140d238cd8692 diff --git a/exam-basedir06/subjects/brackets/subject.en.txt b/exam-basedir06/subjects/brackets/subject.en.txt new file mode 100644 index 0000000..3dd3a68 --- /dev/null +++ b/exam-basedir06/subjects/brackets/subject.en.txt @@ -0,0 +1,31 @@ +Assignment name : brackets +Expected files : *.c *.h +Allowed functions: write +-------------------------------------------------------------------------------- + +Write a program that takes an undefined number of strings in arguments. For each +argument, the program prints on the standard output "OK" followed by a newline +if the expression is correctly bracketed, otherwise it prints "Error" followed by +a newline. + +Symbols considered as 'brackets' are brackets '(' and ')', square brackets '[' +and ']'and braces '{' and '}'. Every other symbols are simply ignored. + +An opening bracket must always be closed by the good closing bracket in the +correct order. A string which not contains any bracket is considered as a +correctly bracketed string. + +If there is no arguments, the program must print only a newline. + +Examples : + +$> ./brackets '(johndoe)' | cat -e +OK$ +$> ./brackets '([)]' | cat -e +Error$ +$> ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e +OK$ +OK$ +$> ./brackets | cat -e +$ +$> diff --git a/exam-basedir06/subjects/brackets/subject.fr.txt b/exam-basedir06/subjects/brackets/subject.fr.txt new file mode 100644 index 0000000..84eaf79 --- /dev/null +++ b/exam-basedir06/subjects/brackets/subject.fr.txt @@ -0,0 +1,32 @@ +Assignment name : brackets +Expected files : *.c *.h +Allowed functions: write +-------------------------------------------------------------------------------- + +Ecrire un programme qui prendra une chaine de caractères en paramètre et qui +écrit sur la sortie standard 'OK' si l'expression est bien parenthesée et +'Error' dans le cas contraire, le tout suivi d'une newline. + +Les symboles utilisés comme 'parenthèses' seront les parenthèses '(' et ')', les +crochets '[' et ']' ainsi que les accolades '{' et '}'. Tous les autres +caractères seront tout simplement ignorés. + +Une parenthèse ouvrante devra obligatoirement être fermée par une parenthèse +fermante et dans le bon ordre (parenthèses imbriquées). Une chaine ne comportant +aucune parenthèse est considerée comme bien parenthesée. + +Votre programme évaluera tous les arguments. Si aucun argument n'est fourni, +il affichera seulement une newline. + +Exemples : + +$> ./brackets '(jo:qahndoe)' | cat -e +OK$ +$> ./brackets '([)]' | cat -e +Error$ +$> ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e +OK$ +OK$ +$> ./brackets | cat -e +$ +$> diff --git a/exam-basedir06/subjects/cycle_detector/subject.en.txt b/exam-basedir06/subjects/cycle_detector/subject.en.txt new file mode 100644 index 0000000..586b333 --- /dev/null +++ b/exam-basedir06/subjects/cycle_detector/subject.en.txt @@ -0,0 +1,28 @@ +Assignment name : cycle_detector +Expected files : cycle_detector.c +Allowed functions: malloc, free +-------------------------------------------------------------------------------- + +Create a function named cycle_detector that takes a const t_list *list +as argument, and check if the given linked list contains no cycles. + +A cycle is defined when you go at least twice through the same link, when you +travel inside a linked list. + +This function should returnw 1 if it detects a cycle inside the given linked +list, otherwise it returns 0. + +This function should be prototyped like this: + + int cycle_detector(const t_list *list) + +The type t_list is: + + typedef struct s_list + { + int data; + struct s_list *next; + } t_list; + +This type will be included in a header named "list.h". You don't have to turn-in +your "list.h", we will use ours during the evaluation. diff --git a/exam-basedir06/subjects/cycle_detector/subject.fr.txt b/exam-basedir06/subjects/cycle_detector/subject.fr.txt new file mode 100644 index 0000000..b68f39e --- /dev/null +++ b/exam-basedir06/subjects/cycle_detector/subject.fr.txt @@ -0,0 +1,28 @@ +Assignment name : cycle_detector +Expected files : cycle_detector.c +Allowed functions: malloc, free +-------------------------------------------------------------------------------- + +Créez une fonction cycle_detector qui prends un "const t_list *list" en +argument, qui vérifiera qu'il n'y a aucun cycle à l'intérieur de la liste chainée +list. + +Un cycle est défini quand, lors du parcours de la liste, vous passez au moins 2 +fois à travers le même maillon. + +Cette fonction retournera 1 si la fonction détecte un cycle, sinon elle renverra 0. + +Cette fonction sera prototypé comme suit : + +int cycle_detector(const t_list *list) + +Le type "t_list" est défini comme suit : + +typedef struct s_list +{ + int data; + struct s_list *next; +} t_list; + +Ce type sera fourni dans le header "list.h". Vous n'avez pas besoin de le fournir, +nous utiliserons le notre en correction. \ No newline at end of file diff --git a/exam-basedir06/subjects/rpn_calc/subject.en.txt b/exam-basedir06/subjects/rpn_calc/subject.en.txt new file mode 100644 index 0000000..d74b3ea --- /dev/null +++ b/exam-basedir06/subjects/rpn_calc/subject.en.txt @@ -0,0 +1,50 @@ +Assignment name : rpn_calc +Expected files : *.c, *.h +Allowed functions: atoi, printf, write, malloc, free +-------------------------------------------------------------------------------- + +Write a program that takes a string which contains an equation written in +Reverse Polish notation (RPN) as its first argument, evaluates the equation, and +prints the result on the standard output followed by a newline. + +Reverse Polish Notation is a mathematical notation in which every operator +follows all of its operands. In RPN, every operator encountered evaluates the +previous 2 operands, and the result of this operation then becomes the first of +the two operands for the subsequent operator. Operands and operators must be +spaced by at least one space. + +You must implement the following operators : "+", "-", "*", "/", and "%". + +If the string isn't valid or there isn't exactly one argument, you must print +"Error" on the standard output followed by a newline. + +All the given operands must fit in a "int". + +Examples of formulas converted in RPN: + +3 + 4 >> 3 4 + +((1 * 2) * 3) - 4 >> 1 2 * 3 * 4 - ou 3 1 2 * * 4 - +50 * (5 - (10 / 9)) >> 5 10 9 / - 50 * + +Here's how to evaluate a formula in RPN: + +1 2 * 3 * 4 - +2 3 * 4 - +6 4 - +2 + +Or: + +3 1 2 * * 4 - +3 2 * 4 - +6 4 - +2 + +Examples: + +$> ./rpn_calc "1 2 * 3 * 4 +" | cat -e +10$ +$> ./rpn_calc "1 2 3 4 +" | cat -e +Error$ +$> ./rpn_calc |cat -e +Error$ diff --git a/exam-basedir06/subjects/rpn_calc/subject.fr.txt b/exam-basedir06/subjects/rpn_calc/subject.fr.txt new file mode 100644 index 0000000..fd1b5fc --- /dev/null +++ b/exam-basedir06/subjects/rpn_calc/subject.fr.txt @@ -0,0 +1,51 @@ +Assignment name : rpn_calc +Expected files : *.c, *.h +Allowed functions: atoi, printf, write, malloc, free +-------------------------------------------------------------------------------- + +Ecrivez un programme qui prend en premier argument une chaine de caractères +correspondant à une équation écrite en Notation Polonaise Inverse ou NPI, +l'évalue et retourne le résultat sur la sortie standard suivi d'une newline. + +La Notation Polonaise Inverse est un système d'écriture d'opérations arithméti- +ques qui consiste à placer les opérandes avant les opérateurs de telle +sorte que pour chaque opérateur rencontré, les 2 opérandes précédents soient +évalués et le résultat placé en lieu et place dans l'ordre de calcul. Les +opérandes et les opérateurs doivent avoir au moins un espace entre eux. + +Vous devrez implémenter les opérateurs "+", "-", "*", "/" et "%". + +Si la chaine de caractères n'est pas valide ou qu'il n'y a pas un seul argument, +vous devrez afficher "Error" sur la sortie standard, suivie d'une newline. + +Tous les opérandes de la chaine de caracteres doivent pouvoir etre contenus +dans un int. + +Exemple de formules converties en NPI : + +3 + 4 >> 3 4 + +((1 * 2) * 3) - 4 >> 1 2 * 3 * 4 - ou 3 1 2 * * 4 - +50 * (5 - (10 / 9)) >> 5 10 9 / - 50 * + +Décomposition d'un calcul en NPI : + +1 2 * 3 * 4 - (On évalue "1 2 *" et on remplace l'ensemble par 2) +2 3 * 4 - (On évalue "2 3 *" et on remplace l'ensemble par 6) +6 4 - (On évalue "6 4 -" et on remplace l'ensemble par 2) +2 + +ou + +3 1 2 * * 4 - (On évalue "1 2 *" et on remplace l'ensemble par 2) +3 2 * 4 - (On évalue "3 2 *" et on remplace l'ensemble par 6) +6 4 - (On évalue "6 4 -" et on remplace l'ensemble par 2) +2 + +Exemples : + +$> ./rpn_calc "1 2 * 3 * 4 +" | cat -e +10$ +$> ./rpn_calc "1 2 3 4 +" | cat -e +Error$ +$> ./rpn_calc |cat -e +Error$ diff --git a/exam-basedir06/traces/5-0_brackets.trace b/exam-basedir06/traces/5-0_brackets.trace new file mode 100644 index 0000000..0e6ed2f --- /dev/null +++ b/exam-basedir06/traces/5-0_brackets.trace @@ -0,0 +1,29 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r9p16.42.fr +Darwin 16.7.0 x86_64 +$> date +Wed May 2 16:55:43 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze += Collected files ========================================== +$> ls -lAR /var/folders/p0/lxkp5w096zdb6c92cdx6lddc0000gq/T/tmpOztFBm/user + += brackets ===================================================================== +Nothing turned in +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir06/traces/5-1_cycle_detector.trace b/exam-basedir06/traces/5-1_cycle_detector.trace new file mode 100644 index 0000000..d0ee75b --- /dev/null +++ b/exam-basedir06/traces/5-1_cycle_detector.trace @@ -0,0 +1,45 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r2p14.42.fr +Darwin 16.7.0 x86_64 +$> date +Wed May 2 17:31:37 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze + += Git history ================================================================== +$> git -C /var/folders/52/mbjfk1yd7l7d30l33p4zsy400000gq/T/tmp2Yf7_Y/user log --pretty='%H - %an, %ad : %s' +50d778ec5e0453efc70bdd0ab4f140d238cd8692 - Tanguy MAZE, Wed May 2 17:31:30 2018 +0200 : cyecle_detector + += Collected files ========================================== +$> ls -lAR /var/folders/52/mbjfk1yd7l7d30l33p4zsy400000gq/T/tmp2Yf7_Y/user +total 8 +-rw-r--r-- 1 deepthought deepthought 264 May 2 17:31 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 May 2 17:31 cycle_detector + +/var/folders/52/mbjfk1yd7l7d30l33p4zsy400000gq/T/tmp2Yf7_Y/user/cycle_detector: +total 8 +-rw-r--r-- 1 deepthought deepthought 1404 May 2 17:31 cycle_detector.c + += cycle_detector =============================================================== +$> clang -Wextra -Wall -Werror main.c test_cycle_detector.c cycle_detector.c -o user_exe + += Test 1 =================================================== +$> ./sbul5733a9ghu6ju844bn47o +Command './sbul5733a9ghu6ju844bn47o' got killed by a Segmentation fault (Signal -11) +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir07/docs/GUIDELINES.en.md b/exam-basedir07/docs/GUIDELINES.en.md new file mode 100644 index 0000000..1523e39 --- /dev/null +++ b/exam-basedir07/docs/GUIDELINES.en.md @@ -0,0 +1,55 @@ +# General guidelines + +* No communication whatsoever is allowed. + +* This is an exam, you don't have a right to chat, listen to music, make noise, or generally do anything that may disturb the other students in any way. + +* Your phones and other technological devices must be turned off and put away. If a phone rings, the whole row will be disqualified from the exam and kicked out immediately. + +* Your home directory contains three directories : "rendu", "subjects" and "traces". + +* The "subjects" directory will contain the subjects of your assignments + +* The "rendu" folder is a clone of your Git turn-in repository. You will work in it, and use it as any regular Git repository. + +* The system will not grade anything that is not pushed on your Git turn-in repository, and at the right place. Pay attention to where examshell tells you to put your files. + +* You can only run your programs in the "rendu" directory or one of its subdirectories. + +* You may need to read the man to carry out some assignments... + +* You will be graded by a program. You must respect the specified file/path/function names to the letter. + +* Assignments will always specify which files will be collected : + + * When an assignment asks for specific files, they will be explicitly named. For example "file1.c file1.h". + + * Otherwise, when filenames and/or the number of files is up to you, the assignment will say something along the lines of "*.c *.h". + + * When a Makefile is required, it will ALWAYS be explicitly stated. + +* In case of technical problem, question about the subject, or any other problem, you must get up silently and wait for a member of the staff to come to you. It is forbidden to ask your neighbors, or to verbally call for a staff member. + +* Any equipment not explicitly allowed is implicitly forbidden. + +* Any exit is definitive, you can not come in again. + +* Staff members may kick you out of the exam without warning if they deem it necessary. + +* You are allowed blank pieces of paper, and a pen. No notebooks, notes, or any help of the sort. You are alone to face this exam. + +# Coding guidelines + +* Useful functions and files will sometimes be given to you in the subject directory + +* The correction is fully automated, and performed by the program we know as Deepthought. + +* When an assignment asks you to write a program with one or more explicitly named files, it will be compiled with the following command: clang -Wall -Wextra -Werror file1.c file2.c file3.c -o program_name. + +* When the assignment leaves the filenames up to you, it will be compiled with: clang -Wall -Wextra -Werror *.c -o program_name. + +* Finally, when you must only turn in a function (so, one file), it will be compiled with clang -c -Wall -Wextra -Werror yourfile.c, then we will compile our main function and link them together to create a test program. + +* Allowed functions will be specified in the headers of the assignments. You may recode any other function you think is necessary. Using a function that's not explicitly allowed is considered cheating, and will result in a failing grade, with no possible discussion or appeal whatsoever. You've been warned. + +* Any function that isn't explicitly allowed is implicitly forbidden. diff --git a/exam-basedir07/docs/GUIDELINES.fr.md b/exam-basedir07/docs/GUIDELINES.fr.md new file mode 100644 index 0000000..c565b66 --- /dev/null +++ b/exam-basedir07/docs/GUIDELINES.fr.md @@ -0,0 +1,54 @@ +# Consignes générales + +* Aucune communication, quelle qu'elle soit, n'est permise + +* Ceci est un examen, il est interdit de discuter, écouter de la musique, faire du bruit, ou de façon générale de faire quoi que ce soit qui puisse perturber le travail des autres étudiants. + +* Vos téléphones et autres appareils technologiques doivent être éteints et rangés. Pas en silencieux, éteints. Si un téléphone sonne, toute la rangée sera exclue immédiatement de l'examen. + +* Votre répertoire home contient trois répertoires : "rendu", "subjects" et "traces". + +* Le répertoire "subjects" contiendra les sujets de vos exercices + +* Le répertoire "rendu" contiendra un clone de votre dépôt Git de rendu. Vous y travaillerez, et l'utiliserez comme n'importe quel autre dépôt Git de rendu. + +* Le système ne corrigera rien qui n'est pas push sur votre dépôt de rendu à l'endroit correct. Faites attention à ce qu'examshell vous dit concernant les emplacements de rendu. + +* Vous ne pouvez lancer vos propres programmes que dans le répertoire "rendu" ou l'un de ses sous-répertoires. + +* Vous aurez peut-être besoin de lire les man pour certains exercices ... + +* Vous aller être corrigé par un programme. Vous devez donc respecter à la lettre les noms de fichiers/fonctions qui vous sont imposés. + +* Les exercices spécifient toujours les noms de fichiers qui vous sont demandés: + + * Quand on vous demande des fichiers spécifiques, ils seront nommés explicitement, par exemple "file1.c file1.h" + + * Quand les noms et le nombre de fichier sont à votre discrétion, on dira quelque chose comme "*.c *.h" + + * Quand il faut un Makefile, ce sera toujours explicitement précisé + +* En cas de problème technique, de question sur un sujet, ou tout autre souci, vous devez vous lever EN SILENCE et attendre qu'un membre du staff vienne vous voir. Il est interdit de demander à vos voisins, ou d'appeler verbalement un membre du staff. + +* Vous avez le droit à des feuilles vierges, un stylo, et c'est tout. Pas de cahiers, carnets, ou autres. Pas d'écouteurs, de casques, de portable, etc ... + +* Tout équipement qui n'est pas explicitement autorisé est implicitement interdit. + +* Toute sortie est définitive. + +* Les membres du staff peuvent vous exclure de l'examen sans préavis s'ils l'estiment nécessaire pour quelque raison que ce soit. + + +# Consignes relative au code + +* Des fonctions et fichiers utiles vous seront parfois donnés dans le répertoire du sujet + +* Les corrections sont entièrement automatiques et réalisées par un programme nommé Deepthought + +* Les programmes seront compilés avec "clang -Wall -Wextra -Werror" + +* Quand on ne vous demande qu'une fonction, et non un programme, cela signifie que votre fichier sera compilé accompagné de notre propre main.c + +* Les fonctions autorisées sont précisées dans les en-têtes des exercices. Vous pouvez recoder toute fonction que vous jugez nécessaire. Utiliser une fonction non-autorisée est assimilé à de la triche et résultera en un échec immédiat de l'exercice, sans appel. Vous êtes prévenu. + +* Toute fonction qui n'est pas explicitement autorisée est implicitement interdite diff --git a/exam-basedir07/docs/GUIDELINES.ro.md b/exam-basedir07/docs/GUIDELINES.ro.md new file mode 100644 index 0000000..56eeec6 --- /dev/null +++ b/exam-basedir07/docs/GUIDELINES.ro.md @@ -0,0 +1,56 @@ +#Reguli generale de urmat la examene + +*Nici un fel de comunicare nu este permisă. + +*Acesta este un examen, nu aveți dreptul să vorbiți, să ascultați muzică, să faceți zgomot sau să faceți ceva ce ar putea deranja pe ceilați studenți în vreun fel. + +*Telefoanele mobile sau orice alte dispozitive trebuie să fie închise și puse deoparte. Dacă sună vreun telefon, tot rândul va fi descalificat din examen și dat afară imediat! + +*Directorul vostru ”home” conține trei directoare: ”rendu”, ”subjects” și ”traces”. + +*Directorul ”subjects” va conține subiectul examenului vostru. + +*Directorul ”rendu” este o clonă a Git-ului vostru ”turn-in repository”. Veți lucra în el, și poate fi utilizat ca orice depozit Git regulat. + +*Sistemul nu va nota nimic ce nu este trimis pe Git ”turn-in repository” și în locul corect. Fiți foarte atenți unde ”examshell” va spune sa puneți fișierele voastre. + +*Puteți să vă rulați programele voastre în directorul ”rendu” sau în unul din subdirectoarele lui. + +*Este posibil să fie nevoie să citiți man-ul pentru a realiza un exercițiu.…. + +*Veți fi notați de un program. Trebuie să respectați specificațiile fisierului / căii (path) / numele funcțiilor EXACT așa cum este cerut. + +*Exercițiile vor specifica întotdeauna ce fișiere vor fi corectate: + + * Când un exercițiu cere un anumit fișier, acesta va fi numit explicit. De exemplu ”file1.c” sau ”file1.h” + + * Altfel, când numele sau numărul de fișiere este la latitudinea voastră, exercițiul va specifica ceva de genul ”*.c” sau ”*.h” + + * Când un ”Makefile” este cerut, va fi ÎNTOTDEAUNA specificată starea lui. + +* În cazul unei defecțiuni tehnice, întrebări despre subiect sau orice altă problemă, trebuie să te ridici în picioare, în liniște și să aștepți ca un membru al staff-ului sa vină la tine. Este interzis să îți întrebi vecinii sau să strigi după un membru al staff-ului. + +* Oricei echipament care nu este explicit permis, este implicit interzis. + +* Orice părăsire a sălii de examinare este definitivă, nu te mai poți întoarce. + +* Membri staff-ului vă pot da afară din examen, fără avertisment, în cazul în care consideră necesar. + +* Vă este permisă intrarea în sală cu o hartie albă și un pix, Fără caiete, notițe sau orice alt ajutor de acest fel. Ești singur ca să înfrunți acest examen. + +# Reguli pentru codare + +* Funcții folositoare sau fișiere vor fi date, câteodată, în directorul subiectului. + +* Corectarea este complet automată și se face de către un program pe care îl numim ”Deepthought” + +* Când un exercițiu îți cere să scrii un program cu unul sau mai multe nume de fișiere date explicit, va fi compliat cu următoarea comandă: ”clang -Wall -Wextra -Werror file1.c file2.c file3.c -o nume_program”. + +* Cand exercitiul lasa la latitudinea voastra numele fisierelor, exercitiul va fi compilat cu: clang -Wall -Wextra -Werror *.c -o program_name + +* Când trebuie doar să trimiteți o funcție (adică un fișier) va fi compilat cu ”clang -c -Wall -Wextra -Werror yourfile.c” apoi noi vom compila funcția noastră principală și le vom lega împreună pentru a crea un program de test. + +* Funcțiile permise vor fi specificate în antetele fiecărui exercițiu. Puteți recoda orice altă funcție credeți că este necesar. Folosirea unei funcții care nu este permisă în mod explicit este considerată trișare, și va duce la nepromovarea examenului, fără drept la discuții sau contenstații. Ați fost avertizați. + +*Orice funcție, care nu este permisă în mod explicit, este implicit interzisă + diff --git a/exam-basedir07/rendu b/exam-basedir07/rendu new file mode 160000 index 0000000..2ac6a4c --- /dev/null +++ b/exam-basedir07/rendu @@ -0,0 +1 @@ +Subproject commit 2ac6a4c7dc8bf57c0c431ba0f1f0ef5bededdece diff --git a/exam-basedir07/subjects/biggest_pal/subject.en.txt b/exam-basedir07/subjects/biggest_pal/subject.en.txt new file mode 100644 index 0000000..c91e466 --- /dev/null +++ b/exam-basedir07/subjects/biggest_pal/subject.en.txt @@ -0,0 +1,31 @@ +Assignment name : biggest_pal +Expected files : *.c, *.h +Allowed functions: write +-------------------------------------------------------------------------------- + +Write a program named biggest_pal that takes a string as argument and prints the +biggest palindrome included inside this string, followed by a newline. + +This string contains only lowercase characters. + +If there is two palindromes of the same length, you have to print the last one. + +If there is more or less than 1 argument, your program must print only a newline +only. + +Exemples: + +$> biggest_pal "abcba" +abcba +$> biggest_pal "aaaaaaaaaabbcbbaaaa" +aaaabbcbbaaaa +$> biggest_pal "aooibdaoiwhoihwdoinzeldaisaboyobasiadlezfdsfnslk" +zeldaisaboyobasiadlez +$> biggest_pal "aeibaabaammaabaalek" +aabaammaabaa +$> biggest_pal abeb qpinqwjobo qkmnwoiq + +$> biggest_pal + +$> + diff --git a/exam-basedir07/subjects/biggest_pal/subject.fr.txt b/exam-basedir07/subjects/biggest_pal/subject.fr.txt new file mode 100644 index 0000000..fa0d849 --- /dev/null +++ b/exam-basedir07/subjects/biggest_pal/subject.fr.txt @@ -0,0 +1,31 @@ +Assignment name : biggest_pal +Expected files : *.c, *.h +Allowed functions: write +-------------------------------------------------------------------------------- + +Écrire un programme nommé biggest_pal, qui prend en paramètre une chaîne de +caractères, et qui affiche le plus grand palindrome trouvé dans cette chaîne suivi +d'une newline. + +La chaine passée en paramètre ne contient uniquement que des lettres minuscules. + +Si il y a 2 palindromes de meme taille, celui à imprimer sera le dernier rencontré. + +Si le programme reçoit un nombre d'arguments différent de 1, vous ne renverrez +qu'une newline. + +Exemples: + +$> biggest_pal "abcba" +abcba +$> biggest_pal "aaaaaaaaaabbcbbaaaa" +aaaabbcbbaaaa +$> biggest_pal "aooibdaoiwhoihwdoinzeldaisaboyobasiadlezfdsfnslk" +zeldaisaboyobasiadlez +$> biggest_pal "aeibaabaammaabaalek" +aabaammaabaa +$> biggest_pal abeb qpinqwjobo qkmnwoiq + +$> biggest_pal + +$> diff --git a/exam-basedir07/subjects/brackets/subject.en.txt b/exam-basedir07/subjects/brackets/subject.en.txt new file mode 100644 index 0000000..3dd3a68 --- /dev/null +++ b/exam-basedir07/subjects/brackets/subject.en.txt @@ -0,0 +1,31 @@ +Assignment name : brackets +Expected files : *.c *.h +Allowed functions: write +-------------------------------------------------------------------------------- + +Write a program that takes an undefined number of strings in arguments. For each +argument, the program prints on the standard output "OK" followed by a newline +if the expression is correctly bracketed, otherwise it prints "Error" followed by +a newline. + +Symbols considered as 'brackets' are brackets '(' and ')', square brackets '[' +and ']'and braces '{' and '}'. Every other symbols are simply ignored. + +An opening bracket must always be closed by the good closing bracket in the +correct order. A string which not contains any bracket is considered as a +correctly bracketed string. + +If there is no arguments, the program must print only a newline. + +Examples : + +$> ./brackets '(johndoe)' | cat -e +OK$ +$> ./brackets '([)]' | cat -e +Error$ +$> ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e +OK$ +OK$ +$> ./brackets | cat -e +$ +$> diff --git a/exam-basedir07/subjects/brackets/subject.fr.txt b/exam-basedir07/subjects/brackets/subject.fr.txt new file mode 100644 index 0000000..84eaf79 --- /dev/null +++ b/exam-basedir07/subjects/brackets/subject.fr.txt @@ -0,0 +1,32 @@ +Assignment name : brackets +Expected files : *.c *.h +Allowed functions: write +-------------------------------------------------------------------------------- + +Ecrire un programme qui prendra une chaine de caractères en paramètre et qui +écrit sur la sortie standard 'OK' si l'expression est bien parenthesée et +'Error' dans le cas contraire, le tout suivi d'une newline. + +Les symboles utilisés comme 'parenthèses' seront les parenthèses '(' et ')', les +crochets '[' et ']' ainsi que les accolades '{' et '}'. Tous les autres +caractères seront tout simplement ignorés. + +Une parenthèse ouvrante devra obligatoirement être fermée par une parenthèse +fermante et dans le bon ordre (parenthèses imbriquées). Une chaine ne comportant +aucune parenthèse est considerée comme bien parenthesée. + +Votre programme évaluera tous les arguments. Si aucun argument n'est fourni, +il affichera seulement une newline. + +Exemples : + +$> ./brackets '(jo:qahndoe)' | cat -e +OK$ +$> ./brackets '([)]' | cat -e +Error$ +$> ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e +OK$ +OK$ +$> ./brackets | cat -e +$ +$> diff --git a/exam-basedir07/subjects/check_mate/examples.txt b/exam-basedir07/subjects/check_mate/examples.txt new file mode 100644 index 0000000..46a6f23 --- /dev/null +++ b/exam-basedir07/subjects/check_mate/examples.txt @@ -0,0 +1,39 @@ +Pion / Pawn (P): + + . . . . . . . + . . . . . . . + . . X . X . . + . . . P . . . + . . . . . . . + . . . . . . . + . . . . . . . + +Fou / Bishop (B): + + X . . . . . X + . X . . . X . + . . X . X . . + . . . B . . . + . . X . X . . + . X . . . X . + X . . . . . X + +Tour / Rook (R): + + . . . X . . . + . . . X . . . + . . . X . . . + X X X R X X X + . . . X . . . + . . . X . . . + . . . X . . . + +Dame / Queen (Q) + + X . . X . . X + . X . X . X . + . . X X X . . + X X X Q X X X + . . X X X . . + . X . X . X . + X . . X . . X diff --git a/exam-basedir07/subjects/check_mate/subject.en.txt b/exam-basedir07/subjects/check_mate/subject.en.txt new file mode 100644 index 0000000..ce5d8e8 --- /dev/null +++ b/exam-basedir07/subjects/check_mate/subject.en.txt @@ -0,0 +1,40 @@ +Assignment name : check_mate +Expected files : *.c, *.h +Allowed functions: write, malloc, free +-------------------------------------------------------------------------------- + +Write a program who takes rows of a chessboard in argument and check if your +King is in a check position. + +Chess is played on a chessboard, a squared board of 8-squares length with +specific pieces on it : King, Queen, Bishop, Knight, Rook and Pawns. +For this exercice, you will only play with Pawns, Bishops, Rooks and Queen... +and obviously a King. + +Each piece have a specific method of movement, and all patterns of capture are +detailled in the examples.txt file. + +A piece can capture only the first ennemy piece it founds on its capture +patterns. + +The board have a variable size but will remains a square. There's only one King +and all other pieces are against it. All other characters except those used for +pieces are considered as empty squares. + +The King is considered as in a check position when an other enemy piece can +capture it. When it's the case, you will print "Success" on the standard output +followed by a newline, otherwise you will print "Fail" followed by a newline. + +If there is no arguments, the program will only print a newline. + +Examples: + +$> ./chessmate '..' '.K' | cat -e +Fail$ +$> ./check_mate 'R...' '.K..' '..P.' '....' | cat -e +Success$ +$> ./chessmate 'R...' 'iheK' '....' 'jeiR' | cat -e +Success$ +$> ./chessmate | cat -e +$ +$> diff --git a/exam-basedir07/subjects/check_mate/subject.fr.txt b/exam-basedir07/subjects/check_mate/subject.fr.txt new file mode 100644 index 0000000..5560c59 --- /dev/null +++ b/exam-basedir07/subjects/check_mate/subject.fr.txt @@ -0,0 +1,40 @@ +Assignment name : check_mate +Expected files : *.c, *.h +Allowed functions: write, malloc, free +-------------------------------------------------------------------------------- + +Ecrire un programme qui prendra en arguments les lignes d'un plateau de jeu +d'échecs, et verifie si le Roi est en échec ou non par rapport aux autres +pièces en jeu. + +Pour rappel, un jeu d'échecs est composé d'un plateau carré de 8 cases de coté +et est composé de pièces spécifiques: Roi, Reine, Fou, Cavalier, Tour et Pion. +Pour cet exercice, nous ne garderons que les Pions, Fous, Tours et Dames, en +plus du Roi. + +Chaque pièce peut se déplacer que selon un schéma précis et les patterns de +captures sont détaillés dans l'exemple fourni. + +Une piece ne peut capturer que la premiere piece possible sur leur trajectoire +de capture. + +Le plateau peut être de taille différente que le plateau classique, mais sera +TOUJOURS carré. Il ne peut y avoir qu'un seul Roi et toutes les autres +pièces seront contre lui. Tout autre caractere hormis ceux utilises pour les +pieces d'echec sera considere comme une case vide. + +Le roi est considéré comme en échec si une pièce adverse est en position pour +le capturer. Si il est en échec, vous devrez afficher "Success" suivi d'une new- +line, sinon il affichera "Fail" suivi d'une newline. + +Si aucun argument n'est fourni, le programme affichera une newline. + +Exemples: + +$> ./check_mate '..' '.K' | cat -e +Fail$ +$> ./check_mate 'R...' '.K..' '..P.' '....' | cat -e +Success$ +$> ./check_mate | cat -e +$ +$> diff --git a/exam-basedir07/subjects/cycle_detector/subject.en.txt b/exam-basedir07/subjects/cycle_detector/subject.en.txt new file mode 100644 index 0000000..586b333 --- /dev/null +++ b/exam-basedir07/subjects/cycle_detector/subject.en.txt @@ -0,0 +1,28 @@ +Assignment name : cycle_detector +Expected files : cycle_detector.c +Allowed functions: malloc, free +-------------------------------------------------------------------------------- + +Create a function named cycle_detector that takes a const t_list *list +as argument, and check if the given linked list contains no cycles. + +A cycle is defined when you go at least twice through the same link, when you +travel inside a linked list. + +This function should returnw 1 if it detects a cycle inside the given linked +list, otherwise it returns 0. + +This function should be prototyped like this: + + int cycle_detector(const t_list *list) + +The type t_list is: + + typedef struct s_list + { + int data; + struct s_list *next; + } t_list; + +This type will be included in a header named "list.h". You don't have to turn-in +your "list.h", we will use ours during the evaluation. diff --git a/exam-basedir07/subjects/cycle_detector/subject.fr.txt b/exam-basedir07/subjects/cycle_detector/subject.fr.txt new file mode 100644 index 0000000..b68f39e --- /dev/null +++ b/exam-basedir07/subjects/cycle_detector/subject.fr.txt @@ -0,0 +1,28 @@ +Assignment name : cycle_detector +Expected files : cycle_detector.c +Allowed functions: malloc, free +-------------------------------------------------------------------------------- + +Créez une fonction cycle_detector qui prends un "const t_list *list" en +argument, qui vérifiera qu'il n'y a aucun cycle à l'intérieur de la liste chainée +list. + +Un cycle est défini quand, lors du parcours de la liste, vous passez au moins 2 +fois à travers le même maillon. + +Cette fonction retournera 1 si la fonction détecte un cycle, sinon elle renverra 0. + +Cette fonction sera prototypé comme suit : + +int cycle_detector(const t_list *list) + +Le type "t_list" est défini comme suit : + +typedef struct s_list +{ + int data; + struct s_list *next; +} t_list; + +Ce type sera fourni dans le header "list.h". Vous n'avez pas besoin de le fournir, +nous utiliserons le notre en correction. \ No newline at end of file diff --git a/exam-basedir07/traces/5-0_biggest_pal.trace b/exam-basedir07/traces/5-0_biggest_pal.trace new file mode 100644 index 0000000..8ab339b --- /dev/null +++ b/exam-basedir07/traces/5-0_biggest_pal.trace @@ -0,0 +1,29 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r13p12.42.fr +Darwin 16.7.0 x86_64 +$> date +Wed May 2 19:49:27 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze2 += Collected files ========================================== +$> ls -lAR /var/folders/vq/p6k3tx710r70mshk0zxwsq3h0000gq/T/tmpJ4duEp/user + += biggest_pal ================================================================== +Nothing turned in +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir07/traces/5-1_check_mate.trace b/exam-basedir07/traces/5-1_check_mate.trace new file mode 100644 index 0000000..ae016e8 --- /dev/null +++ b/exam-basedir07/traces/5-1_check_mate.trace @@ -0,0 +1,29 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e1r3p10.42.fr +Darwin 16.7.0 x86_64 +$> date +Wed May 2 19:51:41 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze2 += Collected files ========================================== +$> ls -lAR /var/folders/pq/2l6b53hx0sv087mw88rrg2bm0000gq/T/tmpBzWe6y/user + += check_mate =================================================================== +Nothing turned in +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir07/traces/5-2_brackets.trace b/exam-basedir07/traces/5-2_brackets.trace new file mode 100644 index 0000000..edc3a0a --- /dev/null +++ b/exam-basedir07/traces/5-2_brackets.trace @@ -0,0 +1,29 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r6p6.42.fr +Darwin 16.7.0 x86_64 +$> date +Wed May 2 19:53:49 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze2 += Collected files ========================================== +$> ls -lAR /var/folders/yt/j6phq77s49x1q7fnp3tn5l6m0000gq/T/tmpiHzbNb/user + += brackets ===================================================================== +Nothing turned in +Grade: 0 + += Final grade: 0 =============================================================== diff --git a/exam-basedir07/traces/5-3_cycle_detector.trace b/exam-basedir07/traces/5-3_cycle_detector.trace new file mode 100644 index 0000000..a86176e --- /dev/null +++ b/exam-basedir07/traces/5-3_cycle_detector.trace @@ -0,0 +1,47 @@ += Host-specific information ==================================================== +$> hostname; uname -msr +e2r10p1.42.fr +Darwin 16.7.0 x86_64 +$> date +Wed May 2 19:57:21 CEST 2018 +$> gcc --version +Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin +$> clang --version +Apple LLVM version 9.0.0 (clang-900.0.39.2) +Target: x86_64-apple-darwin16.7.0 +Thread model: posix +InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin + += User files collection ======================================================== +Collecting user files from Vogsphere +Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze2 + += Git history ================================================================== +$> git -C /var/folders/91/kh6l6vg10w58x_sb25wysf940000gq/T/tmpjasV6_/user log --pretty='%H - %an, %ad : %s' +2ac6a4c7dc8bf57c0c431ba0f1f0ef5bededdece - Tanguy MAZE, Wed May 2 19:55:09 2018 +0200 : cycle_detector + += Collected files ========================================== +$> ls -lAR /var/folders/91/kh6l6vg10w58x_sb25wysf940000gq/T/tmpjasV6_/user +total 8 +-rw-r--r-- 1 deepthought deepthought 263 May 2 19:57 __GIT_HISTORY +drwxr-xr-x 3 deepthought deepthought 102 May 2 19:57 cycle_detector + +/var/folders/91/kh6l6vg10w58x_sb25wysf940000gq/T/tmpjasV6_/user/cycle_detector: +total 8 +-rw-r--r-- 1 deepthought deepthought 1467 May 2 19:57 cycle_detector.c + += cycle_detector =============================================================== +$> clang -Wextra -Wall -Werror main.c test_cycle_detector.c cycle_detector.c -o user_exe + += Test 1 =================================================== +$> ./r0vgwotdey2deavspqenrcg0 +$> diff -U 3 user_output_test1 test1.output | cat -e + +Diff OK :D +Grade: 1 + += Final grade: 1 =============================================================== diff --git a/tests/fprime/a.out b/tests/fprime/a.out new file mode 100755 index 0000000000000000000000000000000000000000..64dbcd1dbe34317c67c123aada59e09191c30b93 GIT binary patch literal 8520 zcmeHMUuYaf9G*+6h8W!oh_-5REk?9z{?I=;J-&kEiXY>UnnMcP5w5 zCNpo;@ay@z;Nu1K(GE);HUd%>GH)j{BQlv89anZe-se6Zzd40=BZe38p8T#Znv_R+ z2YN#hBvkiZg9Jn06>F}BEoCMpb5rTz@sym%Xa5l|fZ_V!{6NTmI8P~4L;r>s#eC)$ z;L#4_aovU2&Cc)O*wI&BwvHSP*09-7Cu~Yw6)yyFd{y}m;CI$d%@m>qT?_iX=mRlL z6%sM@F*sQh<8!7EYK=YY{T}ax?*v*{n19g1{;=+vK2F#P{cbdb)H?4f zRB8l1$^&T3V|o9+*A8BK;hp!l(-(ePzxV^!vEs0;6_Z=V!N5jOc?|V(UN>J568@f^ zMq`XMHa+(}=#GfmyYc@1sa!sh?tHNmc_fE12=XWz-&Zs}{vP*j@}osFpc&8%Xa+O` zngPwgf5E_D-2TO$-dwTPxmzqvZ#Ee-*a=Z^OJ}%%fC`(ZpARUv=p(e_3~%cYPD{3@yCd9=^J}+%dxgj zUl~=>X*@K8SwgVhc&XBjs%WD0xLsINbRJIl15>p|_yf){XKReoHm>E^G>D^J3bA{%Xw$)WsslKNig6S$1dkHYdLB5^<8EYo8$ zF_}11$R}|3J;doxBy${`PKd7bP%JHF|sGCG}{%|jR z1|q?IzUkY%N8|+F1EN=Rp^7IPY@T_9<2?W12^|l>AhEzUanrmzcUj9_s@y#Wg4%a6 H1;D=mCrPKh literal 0 HcmV?d00001 diff --git a/tests/fprime/examples.txt b/tests/fprime/examples.txt new file mode 100644 index 0000000..f9e17c2 --- /dev/null +++ b/tests/fprime/examples.txt @@ -0,0 +1,16 @@ +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$ diff --git a/tests/fprime/fprime.c b/tests/fprime/fprime.c new file mode 100644 index 0000000..77698d7 --- /dev/null +++ b/tests/fprime/fprime.c @@ -0,0 +1,56 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* fprime.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: tmaze +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2018/04/16 15:59:51 by tmaze #+# #+# */ +/* Updated: 2018/04/16 17:45:07 by tmaze ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include + +int is_prime(int nb) +{ + int i; + + i = 4; + if (nb == 2 || nb == 3) + return (1); + if (nb % 2 == 0 || nb % 3 == 0) + return (0); + while (i < nb / i && nb % i != 0) + i++; + return (nb % i != 0); +} + +int main (int ac, char **av) +{ + int nb; + int i; + + if (ac == 2) + { + nb = atoi(av[1]); + if (nb == 1) + printf("1"); + while (nb != 1 && (i = 2)) + { + while (nb % i != 0) + { + i++; + while (!is_prime(i)) + i++; + } + printf("%d", i); + nb /= i; + if (nb != 1) + printf("*"); + } + } + printf("\n"); + return (0); +} diff --git a/tests/fprime/subject.fr.txt b/tests/fprime/subject.fr.txt new file mode 100644 index 0000000..9bb4ed4 --- /dev/null +++ b/tests/fprime/subject.fr.txt @@ -0,0 +1,35 @@ +Assignment name : fprime +Expected files : fprime.c +Allowed functions: printf, atoi +-------------------------------------------------------------------------------- + +Écrire un programme qui prend en paramètre un entier strictement positif, et +qui affiche sa décomposition en facteurs premiers sur la sortie standard, +suivie d'un '\n'. + +Les facteurs doivent être affichés dans l'ordre croissant et séparés par des +'*', de telle sorte que l'expression affichée donne le bon résultat. + +Si le nombre de paramètres est différent de 1, le programme doit afficher '\n'. + +L'entrée, quand elle est passée, sera toujours un nombre valide sans caractères +parasites. + +Exemple: + +$> ./fprime 225225 | cat -e +3*3*5*5*7*11*13$ +$> ./fprime 8333325 | cat -e +3*3*5*5*7*11*13*37$ +$> ./fprime 9539 | cat -e +9539$ +$> ./fprime 804577 | cat -e +804577$ +$> ./fprime 42 | cat -e +2*3*7$ +$> ./fprime 1 | cat -e +1$ +$> ./fprime | cat -e +$ +$> ./fprime 42 21 | cat -e +$