From edbbe023a7cf504627a9e608b674a33d29de2eab Mon Sep 17 00:00:00 2001 From: Villosse <51237565+Villosse@users.noreply.github.com> Date: Tue, 31 Oct 2023 23:16:23 +0100 Subject: [PATCH] content/b1 +(TP: stream & iter_rec) (#27) * content/b1 +(TP: stream & iter_rec --- README.md | 2 +- config.yml | 10 +- content/b1/IterationEtRecursion/index.md | 157 ++++++++++++++++++ .../resources/images/.gitkeep | 0 .../resources/ref/.gitkeep | 0 content/b1/_index.md | 3 + content/b1/stream/index.md | 113 +++++++++++++ content/b1/stream/resources/images/.gitkeep | 0 content/b1/stream/resources/ref/.gitkeep | 0 9 files changed, 282 insertions(+), 3 deletions(-) create mode 100644 content/b1/IterationEtRecursion/index.md create mode 100644 content/b1/IterationEtRecursion/resources/images/.gitkeep create mode 100644 content/b1/IterationEtRecursion/resources/ref/.gitkeep create mode 100644 content/b1/_index.md create mode 100644 content/b1/stream/index.md create mode 100644 content/b1/stream/resources/images/.gitkeep create mode 100644 content/b1/stream/resources/ref/.gitkeep diff --git a/README.md b/README.md index a361d99..a152428 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Il suffit de taper cette commande : ``` -hugo new -k [s1-s2]/[nom_du_sujet] +hugo new -k sujet [b1-b2-b3-b4]/[nom_du_sujet] ``` Vous pouvez ensuite vous rendre dans le dossier nouvellement créé diff --git a/config.yml b/config.yml index 5ff2503..e7e5e21 100644 --- a/config.yml +++ b/config.yml @@ -26,6 +26,8 @@ params: imageHeight: 120 imageTitle: "logo backtobasics" buttons: + - name: "Sujets B1" + url: b1 - name: "Sujets S1" url: s1 - name: "Sujets S2" @@ -44,11 +46,15 @@ params: menu: main: + - identifier: b1 + name: "Sujets B1" + url: b1 + weight: 5 - identifier: s1 name: "Sujets S1" url: s1 - weight: 5 + weight: 10 - identifier: s2 name: "Sujets S2" url: s2 - weight: 10 + weight: 15 diff --git a/content/b1/IterationEtRecursion/index.md b/content/b1/IterationEtRecursion/index.md new file mode 100644 index 0000000..d3e175b --- /dev/null +++ b/content/b1/IterationEtRecursion/index.md @@ -0,0 +1,157 @@ +--- +title: "Itératif et Récusif" +date: 2023-10-31T10:56:56+01:00 +author: "Lenny" +description: "Entrainements sur la récursivité et itérativité" +--- + +# Introduction + +Ce TP est un sujet d'entrainement pour les méthodes récursives et itératives. + +Si vous avez la moindre question, n'hésitez pas à poser vos questions sur le Si vous avez la moindre question, n'hésitez pas à poser vos questions sur le [serveur Discord](https://discord.gg/SJGWzkU2gd) de BackToBasics ! :D + +# Iterations.cs + +Le but, ici, va être de résoudre ces problèmes seulement en utilisant des boucles `while` et `for`. + + + +## ReverseInt +```csharp + +/// +/// Ecrire une fonction qui prend un int (n) et renvoie ses chiffres dans le sens inverse. +/// +/// +/// n peut être négatif. +/// +public static int Reverseint(int n) + +``` + +```csharp +// Résultats attendus : + +ReversInt(4); // == 4 +ReversInt(-4); // == -4 +ReversInt(24); // == 42 +ReversInt(-123456); // == -654321 + +``` + +## FindSub + +```csharp + +/// +/// Ecrire une fonction qui prend une string s et une string sub,et renvoie si sub est contenue dans la string s. +/// +/// +/// Si une des deux chaine est vide alors la méthode lève une exception de type `ArgumentException`. +/// +public static bool FindSub(string s, string sub) + +``` + +```csharp +// Résultats attendus : + +FindSub("Clement est le plus beau", "moche"); // == false +FindSub("Clement est le plus beau", "beau"); // == true +FindSub("Je est un autre.", ""); // == ArgumentException() + +``` + +## FirstUpper + +```csharp + +/// +/// Ecrire une fonction qui prend une string s renvoie la string avec toutes les premieres lettres (lettre entre a-z) de chaque mot en majuscule +/// (un mot est précédé d'un espace). +/// +/// +/// Attention au premier mot de chaque string. +/// +public static bool FindSub(string s, string sub) + +``` + +```csharp +// Résultats attendus : + +Revers_int("Je me crois en enfer, donc j'y suis."); // == "Je Me Crois En Enfer, Donc J'y Suis." +Revers_int(""); // == "" +Revers_int("!abc !def ghi .klm"); // == "!abc !def Ghi .klm" + +``` + +## Replace_char + +```csharp + +/// +/// Ecrire une fonction qui prend une string source, le char toReplace a remplacer par le char replace en parametre et retourne la nouvelle string +/// +public static string Replace_char(string source,char toReplace, char replace) + +``` + +```csharp +// Résultats attendus : + +Revers_int("De la programmation avant toute chose.", "a", "*"); // == "De l* progr*mm*tion *v*nt toute chose." + +``` + +# Recursion.cs + +Le but, ici, va être de résoudre ces problèmes seulement en utilisant de la récursion (pas de boucle). + +## is_alpahnum +```csharp + +/// +/// Ecrire une fonction qui prend un int i et une string s en parametre et renvoie true si la fonctione n'a que des char alphanumériques a partir de l'index i. +/// +/// +/// i >=0 +/// +public static bool is_alpahnum(string s, int i) + +``` + +```csharp +// Résultats attendus : + +is_alpahnum("abcdef132", 0); // == true +is_alpahnum("!abcdef", 0); // == false +is_alpahnum("!abcdef", 1); // == true +is_alpahnum("abcdef!", 15); // == true + + +``` + +## Reverse_str + +```csharp + +/// +/// Ecrire une fonction qui prend une string source de longueur length en parametre et retourn la string inversée. +/// +/// +/// condition: length = s.Length +/// +public static string Reverse_str(string source, int length) + +``` + +```csharp +// Résultats attendus : + +Reverse_str("42",2); // == "24" +Reverse_str("123",3); // == "321" +Reverse_str("ABcdeF",6); // == "FedcBA" + +``` diff --git a/content/b1/IterationEtRecursion/resources/images/.gitkeep b/content/b1/IterationEtRecursion/resources/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/content/b1/IterationEtRecursion/resources/ref/.gitkeep b/content/b1/IterationEtRecursion/resources/ref/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/content/b1/_index.md b/content/b1/_index.md new file mode 100644 index 0000000..85e7b41 --- /dev/null +++ b/content/b1/_index.md @@ -0,0 +1,3 @@ +--- +title: Sujets de B1 +--- diff --git a/content/b1/stream/index.md b/content/b1/stream/index.md new file mode 100644 index 0000000..33bc58a --- /dev/null +++ b/content/b1/stream/index.md @@ -0,0 +1,113 @@ +--- +title: "Stream" +date: 2023-10-31T10:56:56+01:00 +author: "Lenny" +description: "Entraînements sur la manipulation de fichiers en C#" +--- + +# Introduction + +Ce TP est un sujet d'entraînement pour à l'utilisation de streams et de la manipulations de fichiers en C#. + +Si vous avez la moindre question, n'hésitez pas à poser vos questions sur le [serveur Discord](https://discord.gg/SJGWzkU2gd) de BackToBasics ! :D + +Les streams nous permettent de lire et écrire dans un fichier. On parle alors de manipulation de fichiers. + +# Stream.cs + +Afin de pouvoir utiliser les fonctions pour manipuler des fichiers, n'oubliez pas de rajouter le `using` suivant : + +```csharp +using System.IO; +``` + +## Existfile +```csharp +/// +/// Fonction qui vérifie si le fichier associé à `path` existe. +/// +public static bool ExistFile(string path) + +``` + +## MyReplace + +```csharp + +/// +/// Remplace chaque itération du caracètre `char` dans le fichier `path` par le caractère `replace`. +/// Elle devra modifier le fichier inscrit dans `path` et le créer si celui-ci n'existe pas. +/// +/// + /// Le fichier modifié devra se finir par un retour à la ligne. + /// Si une erreur apparaît, renvoyer une ArgumentException avec comme message "Error". +/// +public static void MyReplace(string path, char toReplace, char replace) + +``` +Prenons le fichier : *test* +``` +Bonjour, +Ceci est un message de test. +J'espere que vous allez reussir vos exams :D. +``` + +```csharp +MyReplace(path, 'e', 'f'); // path est le chemin de mon fichier +``` +On aura alors le fichier *test* suivant: +``` +Bonjour, +Cfci fst un message de tfst. +J'fspfrf quf vous allfz rfussir vos fxams :D. + +``` + +## DeleteLines + +```csharp + +/// +/// Supprime toutes les lignes multiples de la variable `n` dans le fichier `path`. +/// Elle devra modifier le fichier et le créer si celui-ci n'existe pas. +/// +/// + /// Le fichier modifié devra se finir par un retour a la ligne + /// Si le fichier n'existe pas alors renvoyer une ArgumentException avec comme message "Error" +/// +public static void DeleteLines(string path, int n) + +``` + +Prenons le fichier : *ToDelete* +``` +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +``` + +```csharp + public static void DeleteLines(string path, int n); // path est le chemin de mon fichier +``` +On aura alors le fichier *ToDelete* suivant: + +``` +1 +3 +5 +7 +9 +11 + +``` + diff --git a/content/b1/stream/resources/images/.gitkeep b/content/b1/stream/resources/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/content/b1/stream/resources/ref/.gitkeep b/content/b1/stream/resources/ref/.gitkeep new file mode 100644 index 0000000..e69de29