Add TD1
This commit is contained in:
parent
abcc2498cd
commit
964df6c718
BIN
TD/TD1/sujet.pdf
Normal file
BIN
TD/TD1/sujet.pdf
Normal file
Binary file not shown.
5
TD/TD1/td1_lucas/ex_1/ex_1.sh
Executable file
5
TD/TD1/td1_lucas/ex_1/ex_1.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
[[ $1 ]] || exit 1
|
||||||
|
|
||||||
|
mkdir -p $1/ex_1/{src/{include,lib},bin,test/{script,results}}
|
5
TD/TD1/td1_lucas/ex_2/ex_2a.sh
Executable file
5
TD/TD1/td1_lucas/ex_2/ex_2a.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
[[ $1 ]] || exit 1
|
||||||
|
|
||||||
|
grep "2" $1
|
8
TD/TD1/td1_lucas/ex_2/ex_2b.sh
Executable file
8
TD/TD1/td1_lucas/ex_2/ex_2b.sh
Executable file
@ -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."
|
89
TD/TD1/td1_lucas/ex_2/sometext.txt
Normal file
89
TD/TD1/td1_lucas/ex_2/sometext.txt
Normal file
@ -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
|
9
TD/TD1/td1_lucas/ex_3/ex_3a.sh
Executable file
9
TD/TD1/td1_lucas/ex_3/ex_3a.sh
Executable file
@ -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
|
5
TD/TD1/td1_lucas/ex_3/ex_3b.sh
Executable file
5
TD/TD1/td1_lucas/ex_3/ex_3b.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
[[ $1 ]] || exit 1
|
||||||
|
|
||||||
|
cd $1 && find ~+ -name '*.txt' -exec ls {} \;
|
7
TD/TD1/td1_lucas/ex_4/Makefile
Normal file
7
TD/TD1/td1_lucas/ex_4/Makefile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
CFLAGS = -Wall -Wextra -g -O3
|
||||||
|
|
||||||
|
ex_4: ex_4.c
|
||||||
|
gcc $^ -o $@ $(CFLAGS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f ex_4
|
16
TD/TD1/td1_lucas/ex_4/ex_4.c
Normal file
16
TD/TD1/td1_lucas/ex_4/ex_4.c
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
7
TD/TD1/td1_lucas/ex_6/Makefile
Normal file
7
TD/TD1/td1_lucas/ex_6/Makefile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
CFLAGS = -Wall -Wextra -g -O3
|
||||||
|
|
||||||
|
ex_6: ex_6.c
|
||||||
|
gcc $^ -o $@ $(CFLAGS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f ex_6
|
79
TD/TD1/td1_lucas/ex_6/ex_6.c
Normal file
79
TD/TD1/td1_lucas/ex_6/ex_6.c
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#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;
|
||||||
|
}
|
15
TD/TD1/td1_lucas/ex_6/include/colors.h
Normal file
15
TD/TD1/td1_lucas/ex_6/include/colors.h
Normal file
@ -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
|
13
TD/TD1/td1_lucas/ex_6/include/ex_6.h
Normal file
13
TD/TD1/td1_lucas/ex_6/include/ex_6.h
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#ifndef DEF_EX_6_H
|
||||||
|
#define DEF_EX_6_H
|
||||||
|
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct event {
|
||||||
|
time_t time;
|
||||||
|
char* desc;
|
||||||
|
struct event* next;
|
||||||
|
} event_t;
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user