diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e4b9e8698420c346810a5a9a7527659b414b1f9a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +tris_multiples.html +tris_multiples.pdf +.vscode diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..a1df40a500d8ace8340e805802aad3a7193e7d7c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,47 @@ +image: omalaspinas/pandoc:latest + +variables: + GIT_SUBMODULE_STRATEGY: recursive + +before_script: + ## + ## Run ssh-agent (inside the build environment) + ## + - eval $(ssh-agent -s) + + ## + ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store + ## We're using tr to fix line endings which makes ed25519 keys work + ## without extra base64 encoding. + ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556 + ## + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null + + ## + ## Create the SSH directory and give it the right permissions + ## + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + + ## + ## Add host id to known_hosts + ## + - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + + + +build_only: + script: + - make + - make deploy + - rsync -avz prog_seq_c_tp ur1bg_malas@ur1bg.ftp.infomaniak.com:web/malaspinas/ + +build_artifacts: + script: + - make + artifacts: + paths: + - "*.pdf" + only: + - tags diff --git a/Makefile b/Makefile index f49dd46653f54395ddf3118068807fdb20c014fb..20b008dbe431cca4208a6e5af67d31c8f9a4117b 100644 --- a/Makefile +++ b/Makefile @@ -26,6 +26,7 @@ deploy: all mkdir -p prog_seq_c_tp/tris_multiples cp tris_multiples.html prog_seq_c_tp/tris_multiples/index.html cp tris_multiples.pdf prog_seq_c_tp/tris_multiples/tris_multiples.pdf + cp -r skeleton prog_seq_c_tp/tris_multiples/ clean: rm -rf *.html *.pdf prog_seq_c_tp diff --git a/tris_multiples.md b/tris_multiples.md index 4ff9e2cae902c8b07533269140176ec0ca7e7262..8a63032914be4ef3aa031c6da30c26a899716b46 100644 --- a/tris_multiples.md +++ b/tris_multiples.md @@ -31,7 +31,19 @@ L'objectif de ce travail pratique est d'implémenter les tris vus en cours. En p en C des tris par base et par fusion, puis si le temps le permet le tri par sélection et le tri rapide. Les pseudo-codes de ces tris se trouve dans [les slides du cours](https://malaspinas.academy/algo_cours/cours_7.pdf). Pour vous aider, on vous fournit un squelette que vous devez compléter. -Vous aurez plusieurs tâches +Ce squelette (à télécharger ici) contient: + +1. Une fonction `main()` qui lit la ligne de commande, génère un tableau et permet de sélectionner son algorithme tri. +2. Les signatures des fonctions des divers tris `radix_sort()`, `merge_sort()`, `selesction_sort()`, et `quick_sort()`. Ces fonctions prennent en argument un tableau et sa taille et modifie le tableau durant leurs exécutions. +3. L'affichage des tableaux `print()` et la vérification si le tri a réussi. + +Vous aurez plusieurs tâches. + +1. Diviser le code en différents fichiers et écrire un `Makefile`. +2. Ajouter des variables `size`, `seed`, `sorting_algo_number` dans le code et lire la la ligne de commande pour faire en sorte que le code compile et s'exécute. +3. Écrire le code C correspondant au tri par base et au tri par fusion. +4. Écrire une fonction permettant de vérifier +5. En option ajouter le tri rapide et le tri par sélection.