diff --git a/TD/TD1/sujet.pdf b/TD/TD1/sujet.pdf new file mode 100644 index 0000000..59de016 Binary files /dev/null and b/TD/TD1/sujet.pdf differ diff --git a/TD/TD1/td1_lucas/ex_1/ex_1.sh b/TD/TD1/td1_lucas/ex_1/ex_1.sh new file mode 100755 index 0000000..078a12c --- /dev/null +++ b/TD/TD1/td1_lucas/ex_1/ex_1.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +[[ $1 ]] || exit 1 + +mkdir -p $1/ex_1/{src/{include,lib},bin,test/{script,results}} diff --git a/TD/TD1/td1_lucas/ex_2/ex_2a.sh b/TD/TD1/td1_lucas/ex_2/ex_2a.sh new file mode 100755 index 0000000..63a0d40 --- /dev/null +++ b/TD/TD1/td1_lucas/ex_2/ex_2a.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +[[ $1 ]] || exit 1 + +grep "2" $1 \ No newline at end of file diff --git a/TD/TD1/td1_lucas/ex_2/ex_2b.sh b/TD/TD1/td1_lucas/ex_2/ex_2b.sh new file mode 100755 index 0000000..56ee83c --- /dev/null +++ b/TD/TD1/td1_lucas/ex_2/ex_2b.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +[[ $1 ]] || exit 1 + +CHARS=$(wc -c $1 | awk '{print $1}') +LINES=$(wc -l $1 | awk '{print $1}') + +echo "Le fichier contient $LINES lignes et $CHARS caractères." \ No newline at end of file diff --git a/TD/TD1/td1_lucas/ex_2/sometext.txt b/TD/TD1/td1_lucas/ex_2/sometext.txt new file mode 100644 index 0000000..ec1a707 --- /dev/null +++ b/TD/TD1/td1_lucas/ex_2/sometext.txt @@ -0,0 +1,89 @@ +Vous visualisez la ligne 12 +Vous visualisez la ligne 13 +Vous visualisez la ligne 14 +Vous visualisez la ligne 15 +Vous visualisez la ligne 16 +Vous visualisez la ligne 17 +Vous visualisez la ligne 18 +Vous visualisez la ligne 19 +Vous visualisez la ligne 20 +Vous visualisez la ligne 21 +Vous visualisez la ligne 22 +Vous visualisez la ligne 23 +Vous visualisez la ligne 24 +Vous visualisez la ligne 25 +Vous visualisez la ligne 26 +Vous visualisez la ligne 27 +Vous visualisez la ligne 28 +Vous visualisez la ligne 29 +Vous visualisez la ligne 30 +Vous visualisez la ligne 31 +Vous visualisez la ligne 32 +Vous visualisez la ligne 33 +Vous visualisez la ligne 34 +Vous visualisez la ligne 35 +Vous visualisez la ligne 36 +Vous visualisez la ligne 37 +Vous visualisez la ligne 38 +Vous visualisez la ligne 39 +Vous visualisez la ligne 40 +Vous visualisez la ligne 41 +Vous visualisez la ligne 42 +Vous visualisez la ligne 43 +Vous visualisez la ligne 44 +Vous visualisez la ligne 45 +Vous visualisez la ligne 46 +Vous visualisez la ligne 47 +Vous visualisez la ligne 48 +Vous visualisez la ligne 49 +Vous visualisez la ligne 50 +Vous visualisez la ligne 51 +Vous visualisez la ligne 52 +Vous visualisez la ligne 53 +Vous visualisez la ligne 54 +Vous visualisez la ligne 55 +Vous visualisez la ligne 56 +Vous visualisez la ligne 57 +Vous visualisez la ligne 58 +Vous visualisez la ligne 59 +Vous visualisez la ligne 60 +Vous visualisez la ligne 61 +Vous visualisez la ligne 62 +Vous visualisez la ligne 63 +Vous visualisez la ligne 64 +Vous visualisez la ligne 65 +Vous visualisez la ligne 66 +Vous visualisez la ligne 67 +Vous visualisez la ligne 68 +Vous visualisez la ligne 69 +Vous visualisez la ligne 70 +Vous visualisez la ligne 71 +Vous visualisez la ligne 72 +Vous visualisez la ligne 73 +Vous visualisez la ligne 74 +Vous visualisez la ligne 75 +Vous visualisez la ligne 76 +Vous visualisez la ligne 77 +Vous visualisez la ligne 78 +Vous visualisez la ligne 79 +Vous visualisez la ligne 80 +Vous visualisez la ligne 81 +Vous visualisez la ligne 82 +Vous visualisez la ligne 83 +Vous visualisez la ligne 84 +Vous visualisez la ligne 85 +Vous visualisez la ligne 86 +Vous visualisez la ligne 87 +Vous visualisez la ligne 88 +Vous visualisez la ligne 89 +Vous visualisez la ligne 90 +Vous visualisez la ligne 91 +Vous visualisez la ligne 92 +Vous visualisez la ligne 93 +Vous visualisez la ligne 94 +Vous visualisez la ligne 95 +Vous visualisez la ligne 96 +Vous visualisez la ligne 97 +Vous visualisez la ligne 98 +Vous visualisez la ligne 99 +Vous visualisez la ligne 100 diff --git a/TD/TD1/td1_lucas/ex_3/ex_3a.sh b/TD/TD1/td1_lucas/ex_3/ex_3a.sh new file mode 100755 index 0000000..d93e22f --- /dev/null +++ b/TD/TD1/td1_lucas/ex_3/ex_3a.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +[[ $1 ]] || exit 1 + +touch $1/ex_1/src/main.c +touch $1/ex_1/src/include/test.txt +touch $1/ex_1/bin/anotherfile.txt + +cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 20 > $1/ex_1/test/results/res1.txt \ No newline at end of file diff --git a/TD/TD1/td1_lucas/ex_3/ex_3b.sh b/TD/TD1/td1_lucas/ex_3/ex_3b.sh new file mode 100755 index 0000000..f3cae4e --- /dev/null +++ b/TD/TD1/td1_lucas/ex_3/ex_3b.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +[[ $1 ]] || exit 1 + +cd $1 && find ~+ -name '*.txt' -exec ls {} \; \ No newline at end of file diff --git a/TD/TD1/td1_lucas/ex_4/Makefile b/TD/TD1/td1_lucas/ex_4/Makefile new file mode 100644 index 0000000..76effac --- /dev/null +++ b/TD/TD1/td1_lucas/ex_4/Makefile @@ -0,0 +1,7 @@ +CFLAGS = -Wall -Wextra -g -O3 + +ex_4: ex_4.c + gcc $^ -o $@ $(CFLAGS) + +clean: + rm -f ex_4 \ No newline at end of file diff --git a/TD/TD1/td1_lucas/ex_4/ex_4.c b/TD/TD1/td1_lucas/ex_4/ex_4.c new file mode 100644 index 0000000..45af693 --- /dev/null +++ b/TD/TD1/td1_lucas/ex_4/ex_4.c @@ -0,0 +1,16 @@ +#include + +void show(int *a, int b) { + *a = (*a) + 5; + b = b + 5; +} + +int main() { + int a = 0; + int b = 0; + + show(&a, b); + printf("Référence: %d, Valeur: %d\n", a, b); + + return 0; +} \ No newline at end of file diff --git a/TD/TD1/td1_lucas/ex_6/Makefile b/TD/TD1/td1_lucas/ex_6/Makefile new file mode 100644 index 0000000..a5fe9c2 --- /dev/null +++ b/TD/TD1/td1_lucas/ex_6/Makefile @@ -0,0 +1,7 @@ +CFLAGS = -Wall -Wextra -g -O3 + +ex_6: ex_6.c + gcc $^ -o $@ $(CFLAGS) + +clean: + rm -f ex_6 \ No newline at end of file diff --git a/TD/TD1/td1_lucas/ex_6/ex_6.c b/TD/TD1/td1_lucas/ex_6/ex_6.c new file mode 100644 index 0000000..b75c14e --- /dev/null +++ b/TD/TD1/td1_lucas/ex_6/ex_6.c @@ -0,0 +1,79 @@ +#include +#include +#include + +#include "include/ex_6.h" +#include "include/colors.h" + + +event_t* new_event(time_t time, char* desc) { + event_t* new = malloc(sizeof(event_t)); + new->desc = malloc((strlen(desc)+1)*sizeof(char)); + new->time = time; + new->next = NULL; + + strcpy(new->desc, desc); + + return new; +} + + +event_t* insert_event(time_t time, char* desc, event_t* events) { + if (events && time > events->time) { + events->next = insert_event(time, desc, events->next); + return events; + } + + event_t* new = new_event(time, desc); + new->next = events; + + return new; +} + +void show_events(event_t* event) { + if (!event) + return; + + printf("Event: " BOLD "%s" RESET "\n", event->desc); + printf("Date: " BOLD "%s" RESET "\n", ctime(&event->time)); + + show_events(event->next); +} + + +void free_events(event_t* event) { + if (!event) + return; + + free_events(event->next); + + free(event->desc); + free(event); +} + +time_t time_of_string(char* string) { + struct tm date = {0}; + if (sscanf(string, "%d-%d-%d %dh%d", &date.tm_mday, &date.tm_mon, &date.tm_year, &date.tm_hour, &date.tm_min) == 5) { + date.tm_mon--; + date.tm_year -= 1900; + + return mktime(&date); + } + + printf(BOLD RED "Failed to parse date !\n" RESET); + return (-1); +} + +int main() { + event_t* events = NULL; + + events = insert_event(time_of_string("19-03-2024 10h15"), "TP ArchiSys", events); + events = insert_event(time_of_string("21-03-2024 8h05"), "Cours ArchiSys", events); + events = insert_event(time_of_string("12-03-2024 10h15"), "TP ArchiSys", events); + + show_events(events); + + free_events(events); + + return 0; +} \ No newline at end of file diff --git a/TD/TD1/td1_lucas/ex_6/include/colors.h b/TD/TD1/td1_lucas/ex_6/include/colors.h new file mode 100644 index 0000000..ce744e3 --- /dev/null +++ b/TD/TD1/td1_lucas/ex_6/include/colors.h @@ -0,0 +1,15 @@ +#ifndef DEF_COLORS_H +#define DEF_COLORS_H + +#define RESET "\033[0m" +#define BLACK "\033[30m" /* Black */ +#define RED "\033[31m" /* Red */ +#define GREEN "\033[32m" /* Green */ +#define YELLOW "\033[33m" /* Yellow */ +#define BLUE "\033[34m" /* Blue */ +#define MAGENTA "\033[35m" /* Magenta */ +#define CYAN "\033[36m" /* Cyan */ +#define WHITE "\033[37m" /* White */ +#define BOLD "\033[1m" /* BOLD */ + +#endif \ No newline at end of file diff --git a/TD/TD1/td1_lucas/ex_6/include/ex_6.h b/TD/TD1/td1_lucas/ex_6/include/ex_6.h new file mode 100644 index 0000000..a471631 --- /dev/null +++ b/TD/TD1/td1_lucas/ex_6/include/ex_6.h @@ -0,0 +1,13 @@ +#ifndef DEF_EX_6_H +#define DEF_EX_6_H + +#include + + +typedef struct event { + time_t time; + char* desc; + struct event* next; +} event_t; + +#endif \ No newline at end of file