{"id":22439299,"url":"https://github.com/gabin221/exercism","last_synced_at":"2026-05-13T07:03:32.775Z","repository":{"id":228780663,"uuid":"774425860","full_name":"Gabin221/Exercism","owner":"Gabin221","description":"This repository contains my solutions to the exercises offered on Exercism. There you will find implementations in several programming languages, including Bash, C++, JavaScript and Python.","archived":false,"fork":false,"pushed_at":"2025-03-09T20:24:09.000Z","size":9151,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T21:24:07.560Z","etag":null,"topics":["bash","cpp","exercism","exercism-solutions","javscript","python"],"latest_commit_sha":null,"homepage":"https://exercism.org/profiles/Gabin221","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gabin221.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-19T14:29:09.000Z","updated_at":"2025-03-09T20:24:13.000Z","dependencies_parsed_at":"2024-03-26T14:25:50.443Z","dependency_job_id":"20395b11-f959-42d4-ade4-30e728071e79","html_url":"https://github.com/Gabin221/Exercism","commit_stats":null,"previous_names":["gabin221/exercism"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gabin221%2FExercism","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gabin221%2FExercism/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gabin221%2FExercism/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gabin221%2FExercism/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gabin221","download_url":"https://codeload.github.com/Gabin221/Exercism/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245815572,"owners_count":20676935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","cpp","exercism","exercism-solutions","javscript","python"],"created_at":"2024-12-06T01:13:37.942Z","updated_at":"2026-05-13T07:03:27.755Z","avatar_url":"https://github.com/Gabin221.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exercism\n\n## Table des Matières\n\n* [Bash](#bash)\n     * [Structure d'un fichier Bash](#structure-fichier-bash)\n     * [Récupérer le nombre de paramètres en Bash](#recuperer-nombre-parametres-bash)\n     * [Récupérer les paramètres en Bash](#recuperer-parametres-bash)\n     * [Connaître la taille d'une chaine de caractères en Bash](#connaitre-taille-chaine-caracteres-bash)\n     * [Boucles en Bash](#boucles-bash)\n       * [if else en Bash](#if-else-bash)\n       * [for en Bash](#for-bash)\n     * [Incrémenter une variable en Bash](#incrementer-variable-bash)\n     * [Opérations mathématiques en Bash](#operations-mathematiques-bash)\n     * [Vérifier si une chaîne est contenue dans une autre en Bash](#verifier-si-chaine-contenue-dans-une-autre-bash)\n     * [Lowercase/Uppercase en Bash](#lowercase-uppercase-bash)\n     * [Enlever un caractère d'une chaîne en Bash](#enlever-caractere-chaine-bash)\n     * [Concaténer deux chaînes de caractères en Bash](#concatener-deux-chaines-bash)\n     * [Comparer deux chaînes de caractères en Bash](#comparer-deux-chaines-bash)\n     * [Comparer deux entiers en Bash](#comparer-deux-entiers-bash)\n     * [Récupérer la position d'une sous-chaîne dans une chaîne en Bash](#recuperer-position-sous-chaine-dans-chaine-bash)\n* [C++](#c++)\n     * [Structure d'un fichier C++](#structure-fichier-c++)\n     * [Récupérer le nombre de paramètres en C++](#recuperer-nombre-parametres-c++)\n     * [Récupérer les paramètres en C++](#recuperer-parametres-c++)\n     * [Connaître la taille d'une chaine de caractères en C++](#connaitre-taille-chaine-caracteres-c++)\n     * [Boucles en C++](#boucles-c++)\n       * [if else en C++](#if-else-c++)\n       * [for en C++](#for-c++)\n     * [Incrémenter une variable en C++](#incrementer-variable-c++)\n     * [Opérations mathématiques en C++](#operations-mathematiques-c++)\n     * [Vérifier si une chaîne est contenue dans une autre en C++](#verifier-si-chaine-contenue-dans-une-autre-c++)\n     * [Lowercase/Uppercase en C++](#lowercase-uppercase-c++)\n     * [Enlever un caractère d'une chaîne en C++](#enlever-caractere-chaine-c++)\n     * [Concaténer deux chaînes de caractères en C++](#concatener-deux-chaines-c++)\n     * [Comparer deux chaînes de caractères en C++](#comparer-deux-chaines-c++)\n     * [Comparer deux entiers en C++](#comparer-deux-entiers-c++)\n     * [Récupérer la position d'une sous-chaîne dans une chaîne en C++](#recuperer-position-sous-chaine-dans-chaine-c++)\n* [JavaScript](#javascript)\n     * [Récupérer le nombre de paramètres en JavaScript](#recuperer-nombre-parametres-javascript)\n     * [Récupérer les paramètres en JavaScript](#recuperer-parametres-javascript)\n     * [Connaître la taille d'une chaine de caractères en JavaScript](#connaitre-taille-chaine-caracteres-javascript)\n     * [Boucles en JavaScript](#boucles-javascript)\n       * [if else en JavaScript](#if-else-javascript)\n       * [for en JavaScript](#for-javascript)\n     * [Incrémenter une variable en JavaScript](#incrementer-variable-javascript)\n     * [Opérations mathématiques en JavaScript](#operations-mathematiques-javascript)\n     * [Vérifier si une chaîne est contenue dans une autre en JavaScript](#verifier-si-chaine-contenue-dans-une-autre-javascript)\n     * [Lowercase/Uppercase en JavaScript](#lowercase-uppercase-javascript)\n     * [Enlever un caractère d'une chaîne en JavaScript](#enlever-caractere-chaine-javascript)\n     * [Concaténer deux chaînes de caractères en JavaScript](#concatener-deux-chaines-javascript)\n     * [Comparer deux chaînes de caractères en JavaScript](#comparer-deux-chaines-javascript)\n     * [Comparer deux entiers en JavaScript](#comparer-deux-entiers-javascript)\n     * [Récupérer la position d'une sous-chaîne dans une chaîne en JavaScript](#recuperer-position-sous-chaine-dans-chaine-javascript)\n* [Python](#python)\n     * [Structure d'un fichier Python](#structure-fichier-python)\n     * [Récupérer le nombre de paramètres en Python](#recuperer-nombre-parametres-python)\n     * [Récupérer les paramètres en Python](#recuperer-parametres-python)\n     * [Connaître la taille d'une chaine de caractères en Python](#connaitre-taille-chaine-caracteres-python)\n     * [Boucles en Python](#boucles-python)\n       * [if else en Python](#if-else-python)\n       * [for en Python](#for-python)\n     * [Incrémenter une variable en Python](#incrementer-variable-python)\n     * [Opérations mathématiques en Python](#operations-mathematiques-python)\n     * [Vérifier si une chaîne est contenue dans une autre en Python](#verifier-si-chaine-contenue-dans-une-autre-python)\n     * [Lowercase/Uppercase en Python](#lowercase-uppercase-python)\n     * [Enlever un caractère d'une chaîne en Python](#enlever-caractere-chaine-python)\n     * [Concaténer deux chaînes de caractères en Python](#concatener-deux-chaines-python)\n     * [Comparer deux chaînes de caractères en Python](#comparer-deux-chaines-python)\n     * [Comparer deux entiers en Python](#comparer-deux-entiers-python)\n     * [Récupérer la position d'une sous-chaîne dans une chaîne en Python](#recuperer-position-sous-chaine-dans-chaine-python)\n* [PowerShell](#powershell)\n     * [Structure d'un fichier PowerShell](#structure-fichier-powershell)\n     * [Récupérer le nombre de paramètres en PowerShell](#recuperer-nombre-parametres-powershell)\n     * [Récupérer les paramètres en PowerShell](#recuperer-parametres-powershell)\n     * [Connaître la taille d'une chaine de caractères en PowerShell](#connaitre-taille-chaine-caracteres-powershell)\n     * [Boucles en PowerShell](#boucles-powershell)\n       * [if else en PowerShell](#if-else-powershell)\n       * [for en PowerShell](#for-powershell)\n     * [Incrémenter une variable en PowerShell](#incrementer-variable-powershell)\n     * [Opérations mathématiques en PowerShell](#operations-mathematiques-powershell)\n     * [Vérifier si une chaîne est contenue dans une autre en PowerShell](#verifier-si-chaine-contenue-dans-une-autre-powershell)\n     * [Lowercase/Uppercase en PowerShell](#lowercase-uppercase-powershell)\n     * [Enlever un caractère d'une chaîne en PowerShell](#enlever-caractere-chaine-powershell)\n     * [Concaténer deux chaînes de caractères en PowerShell](#concatener-deux-chaines-powershell)\n     * [Comparer deux chaînes de caractères en PowerShell](#comparer-deux-chaines-powershell)\n     * [Comparer deux entiers en PowerShell](#comparer-deux-entiers-powershell)\n     * [Récupérer la position d'une sous-chaîne dans une chaîne en PowerShell](#recuperer-position-sous-chaine-dans-chaine-powershell)\n\n## Bash \u003ca id=\"bash\"\u003e\u003c/a\u003e\n\n### Structure d'un fichier Bash \u003ca id=\"structure-fichier-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\n# le reste du programme\n```\n\n### Récupérer le nombre de paramètres en Bash \u003ca id=\"recuperer-nombre-parametres-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nnbr=$#\necho \"Nombre de paramètres: ${nbr}\"\n```\n\n### Récupérer les paramètres en Bash \u003ca id=\"recuperer-parametres-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nparametre1=$1\nparametre2=$2\necho \"Le premier paramètre: ${parametre1}\"\necho \"Le second paramètre: ${parametre2}\"\n```\n\n### Connaître la taille d'une chaine de caractères en Bash \u003ca id=\"connaitre-taille-chaine-caracteres-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\ninput=$1\n\necho \"La taille de la chaîne '${input}' est: ${#input}\"\n```\n\n### Boucles en Bash \u003ca id=\"boucles-bash\"\u003e\u003c/a\u003e\n\n#### if else en Bash \u003ca id=\"if-else-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nnbr=$#\nif [ $nbr -eq 1 ]; \nthen \n    echo \"Il y a un seul paramètre\"\nelif [ $nbr -eq 2 ]; \nthen\n    echo \"Il y a deux paramètres\"\nelse\n    echo \"Il y a plus de deux paramètres\"\nfi\n```\n\n#### for en Bash \u003ca id=\"for-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\ninput=$1\n\nfor i in $(seq 1 ${#input}); \ndo\n    echo $(echo $input | cut -c$i)\ndone\n\necho \"Autre possibilité:\"\n\nfor (( i=1; i\u003c=${#input}; i++ ))\ndo\n    echo $(echo $input[i] | cut -c$i)\ndone\n```\n\n### Incrémenter une variable en Bash \u003ca id=\"incrementer-variable-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nnbr=0\necho \"Avant incrémentation: ${nbr}\"\nfor (( i=1; i\u003c=5; i++ ))\ndo\n    nbr=$((nbr+1))\ndone\n\necho \"Après incrémentation: ${nbr}\"\n```\n\n### Opérations mathématiques en Bash \u003ca id=\"operations-mathematiques-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\necho \"5 plus 3 = $((5+3))\"\necho \"5 fois 3 = $((5*3))\"\necho \"5 puissance 3: $((5**3))\"\necho \"5 modulo 3: $((5%3))\"\necho \"2 puissance 100 avec bc: $(echo \"2 ^ 100\" | bc)\"\necho \"2 puissance 100 sans bc: $((2**100))\"\n```\n\n### Vérifier si une chaîne est contenue dans une autre en Bash \u003ca id=\"verifier-si-chaine-contenue-dans-une-autre-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nchaine=\"coucou\"\nsousChaine=\"ou\"\n\nif [[ ${chaine} =~ ${sousChaine} ]];\nthen\n    echo \"'${chaine}' contient '${sousChaine}'\"\nfi\n\necho \"Autre possibilité:\"\n\nif [[ $chaine == *\"$sousChaine\"* ]];\nthen\n    echo \"'${chaine}' contient '${sousChaine}'\"\nfi\n```\n\n### Lowercase/Uppercase en Bash \u003ca id=\"lowercase-uppercase-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nchaine=\"CouCou\"\n\nlowercase=$(tr '[:upper:]' '[:lower:]' \u003c\u003c\u003c \"$chaine\")\nuppercase=$(tr '[:lower:]' '[:upper:]' \u003c\u003c\u003c \"$chaine\")\n\necho \"${chaine} en lowercase: ${lowercase}\"\necho \"${chaine} en uppercase: ${uppercase}\"\n```\n\n### Enlever un caractère d'une chaîne en Bash \u003ca id=\"enlever-caractere-chaine-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nchaine=\"coucou\"\nchaineModifiee=$( echo $chaine | tr -d 'c' )\n\necho \"chaîne de départ: ${chaine}\"\necho \"chaine modifiée: ${chaineModifiee}\"\n```\n\n### Concaténer deux chaînes de caractères en Bash \u003ca id=\"concatener-deux-chaines-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nchaine1=\"Hello, \"\nchaine2=\"World!\"\n\nconcatenation=\"${chaine1}${chaine2}\"\n\necho \"chaine 1: '${chaine1}'\"\necho \"chaine 2: '${chaine2}'\"\necho \"concaténation: '${concatenation}'\"\n```\n\n### Comparer deux chaînes de caractères en Bash \u003ca id=\"comparer-deux-chaines-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nchaine1=\"coucou\"\nchaine2=\"CouCou\"\n\nif [ \"$chaine1\" = \"coucou\" ];\nthen \n    echo \"${chaine1} = coucou\"\nfi\nif [ \"$chaine1\" = \"$chaine2\" ];\nthen \n    echo \"${chaine1} = ${chaine2}\"\nelse\n    echo \"${chaine2} != ${chaine2}\"\nfi\n```\n\n### Comparer deux entiers en Bash \u003ca id=\"comparer-deux-entiers-bash\"\u003e\u003c/a\u003e\n\n```bash\n#!/usr/bin/env bash\n\nnbr=3\nif [ $nbr -eq 3 ]; \nthen \n    echo \"${nbr} = 3\"\nfi\nif [ $nbr -ne 5 ]; \nthen \n    echo \"${nbr} != 3\"\nfi\nif [ $nbr -ge 2 ] || [ $nbr -gt 2 ]; \nthen \n    echo \"${nbr} \u003e= 2, ${nbr} \u003e 2\"\nfi\nif [ $nbr -le 4 ] || [ $nbr -lt 4 ]; \nthen \n    echo \"${nbr} \u003c= 4, ${nbr} \u003c 4\"\nfi\n```\n\n### Récupérer la position d'une sous-chaîne dans une chaîne en Bash \u003ca id=\"recuperer-position-sous-chaine-dans-chaine-bash\"\u003e\u003c/a\u003e\n\n```bash\nchaine=\"\u003cfis4 e'1 \u003e16 \u003cfis4 e'1 \u003e16 r16\u003cfis4 e'1 \u003e16 r16\u003cfis4 c'2 \u003e16 \u003cfis4 e'1 \u003e16 r16\u003cb2 g'1 \u003e16 r8.g8.3 r16\"\n# recherche de la première position de la chaine \"16\"\nrecherche=\"16\"\ndebut_chaine=\"${chaine%%${recherche}*}\"\nposition=$((${#debut_chaine}+1))\necho ${position}\n```\n\n## C++ \u003ca id=\"c++\"\u003e\u003c/a\u003e\n\n### Structure d'un fichier C++ en C++ \u003ca id=\"structure-fichier-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n\nint main() {\n    // le reste du programme\n    return 0;\n}\n```\n\n### Récupérer le nombre de paramètres en C++ \u003ca id=\"recuperer-nombre-parametres-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n\nint main(int argc, char *argv[]) {\n    int nbr = argc - 1;\n    std::cout \u003c\u003c \"Nombre de paramètres: \" \u003c\u003c nbr \u003c\u003c std::endl;\n    return 0;\n}\n```\n\n### Récupérer les paramètres en C++ \u003ca id=\"recuperer-parametres-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n\nint main(int argc, char *argv[]) {\n    if (argc \u003e= 3) {\n        std::cout \u003c\u003c \"Le premier paramètre: \" \u003c\u003c argv[1] \u003c\u003c std::endl;\n        std::cout \u003c\u003c \"Le second paramètre: \" \u003c\u003c argv[2] \u003c\u003c std::endl;\n    }\n    return 0;\n}\n```\n\n### Connaître la taille d'une chaine de caractères en C++ \u003ca id=\"connaitre-taille-chaine-caracteres-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003cstring\u003e\n\nint main(int argc, char *argv[]) {\n    std::string input = argv[1];\n    std::cout \u003c\u003c \"La taille de la chaîne '\" \u003c\u003c input \u003c\u003c \"' est: \" \u003c\u003c input.size() \u003c\u003c std::endl;\n    return 0;\n}\n```\n\n### Boucles en C++ \u003ca id=\"boucles-c++\"\u003e\u003c/a\u003e\n\n#### if else en C++ \u003ca id=\"if-else-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n\nint main(int argc, char *argv[]) {\n    int nbr = argc - 1;\n    if (nbr == 1) {\n        std::cout \u003c\u003c \"Il y a un seul paramètre\" \u003c\u003c std::endl;\n    } else if (nbr == 2) {\n        std::cout \u003c\u003c \"Il y a deux paramètres\" \u003c\u003c std::endl;\n    } else {\n        std::cout \u003c\u003c \"Il y a plus de deux paramètres\" \u003c\u003c std::endl;\n    }\n    return 0;\n}\n```\n\n#### for en C++ \u003ca id=\"for-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003cstring\u003e\n\nint main(int argc, char *argv[]) {\n    std::string input = argv[1];\n\n    for (int i = 0; i \u003c input.size(); i++) {\n        std::cout \u003c\u003c input[i] \u003c\u003c std::endl;\n    }\n\n    std::cout \u003c\u003c \"Autre possibilité:\" \u003c\u003c std::endl;\n\n    for (char c : input) {\n        std::cout \u003c\u003c c \u003c\u003c std::endl;\n    }\n\n    return 0;\n}\n```\n\n### Incrémenter une variable en C++ \u003ca id=\"incrementer-variable-c+\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n\nint main() {\n    int nbr = 0;\n    std::cout \u003c\u003c \"Avant incrémentation: \" \u003c\u003c nbr \u003c\u003c std::endl;\n    for (int i = 1; i \u003c= 5; i++) {\n        nbr++;\n    }\n    std::cout \u003c\u003c \"Après incrémentation: \" \u003c\u003c nbr \u003c\u003c std::endl;\n    return 0;\n}\n```\n\n### Opérations mathématiques en C++ \u003ca id=\"operations-mathematiques-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n\nint main() {\n    std::cout \u003c\u003c \"5 plus 3 = \" \u003c\u003c (5 + 3) \u003c\u003c std::endl;\n    std::cout \u003c\u003c \"5 fois 3 = \" \u003c\u003c (5 * 3) \u003c\u003c std::endl;\n    std::cout \u003c\u003c \"5 puissance 3: \" \u003c\u003c (5 * 5 * 5) \u003c\u003c std::endl;\n    std::cout \u003c\u003c \"5 modulo 3: \" \u003c\u003c (5 % 3) \u003c\u003c std::endl;\n    return 0;\n}\n```\n\n### Vérifier si une chaîne est contenue dans une autre en C++ \u003ca id=\"verifier-si-chaine-contenue-dans-une-autre-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003cstring\u003e\n\nint main() {\n    std::string chaine = \"coucou\";\n    std::string sousChaine = \"ou\";\n\n    if (chaine.find(sousChaine) != std::string::npos) {\n        std::cout \u003c\u003c \"'\" \u003c\u003c chaine \u003c\u003c \"' contient '\" \u003c\u003c sousChaine \u003c\u003c \"'\" \u003c\u003c std::endl;\n    }\n\n    std::cout \u003c\u003c \"Autre possibilité:\" \u003c\u003c std::endl;\n\n    if (chaine.find(sousChaine) != std::string::npos) {\n        std::cout \u003c\u003c \"'\" \u003c\u003c chaine \u003c\u003c \"' contient '\" \u003c\u003c sousChaine \u003c\u003c \"'\" \u003c\u003c std::endl;\n    }\n\n    return 0;\n}\n```\n\n### Lowercase/Uppercase en C++ \u003ca id=\"lowercase-uppercase-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003calgorithm\u003e\n#include \u003cstring\u003e\n\nint main() {\n    std::string chaine = \"CouCou\";\n\n    std::transform(chaine.begin(), chaine.end(), chaine.begin(), ::tolower);\n    std::cout \u003c\u003c chaine \u003c\u003c \" en lowercase: \" \u003c\u003c chaine \u003c\u003c std::endl;\n\n    std::transform(chaine.begin(), chaine.end(), chaine.begin(), ::toupper);\n    std::cout \u003c\u003c chaine \u003c\u003c \" en uppercase: \" \u003c\u003c chaine \u003c\u003c std::endl;\n\n    return 0;\n}\n```\n\n### Enlever un caractère d'une chaîne en C++ \u003ca id=\"enlever-caractere-chaine-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003cstring\u003e\n\nint main() {\n    std::string chaine = \"coucou\";\n    chaine.erase(std::remove(chaine.begin(), chaine.end(), 'c'), chaine.end());\n\n    std::cout \u003c\u003c \"chaîne de départ: \" \u003c\u003c chaine \u003c\u003c std::endl;\n\n    return 0;\n}\n```\n\n### Concaténer deux chaînes de caractères en C++ \u003ca id=\"concatener-deux-chaines-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003cstring\u003e\n\nint main() {\n    std::string chaine1 = \"Hello, \";\n    std::string chaine2 = \"World!\";\n    std::string concatenation = chaine1 + chaine2;\n\n    std::cout \u003c\u003c \"chaine 1: '\" \u003c\u003c chaine1 \u003c\u003c \"'\" \u003c\u003c std::endl;\n    std::cout \u003c\u003c \"chaine 2: '\" \u003c\u003c chaine2 \u003c\u003c \"'\" \u003c\u003c std::endl;\n    std::cout \u003c\u003c \"concaténation: '\" \u003c\u003c concatenation \u003c\u003c \"'\" \u003c\u003c std::endl;\n\n    return 0;\n}\n```\n\n### Comparer deux chaînes de caractères en C++ \u003ca id=\"comparer-deux-chaines-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003cstring\u003e\n\nint main() {\n    std::string chaine1 = \"coucou\";\n    std::string chaine2 = \"CouCou\";\n\n    if (chaine1 == \"coucou\") {\n        std::cout \u003c\u003c chaine1 \u003c\u003c \" = coucou\" \u003c\u003c std::endl;\n    }\n    if (chaine1 == chaine2) {\n        std::cout \u003c\u003c chaine1 \u003c\u003c \" = \" \u003c\u003c chaine2 \u003c\u003c std::endl;\n    } else {\n        std::cout \u003c\u003c chaine2 \u003c\u003c \" != \" \u003c\u003c chaine2 \u003c\u003c std::endl;\n    }\n\n    return 0;\n}\n```\n\n### Comparer deux entiers en C++ \u003ca id=\"comparer-deux-entiers-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n\nint main() {\n    int nbr = 3;\n\n    if (nbr == 3) {\n        std::cout \u003c\u003c nbr \u003c\u003c \" = 3\" \u003c\u003c std::endl;\n    }\n    if (nbr != 5) {\n        std::cout \u003c\u003c nbr \u003c\u003c \" != 3\" \u003c\u003c std::endl;\n    }\n    if (nbr \u003e= 2 || nbr \u003e 2) {\n        std::cout \u003c\u003c nbr \u003c\u003c \" \u003e= 2, \" \u003c\u003c nbr \u003c\u003c \" \u003e 2\" \u003c\u003c std::endl;\n    }\n    if (nbr \u003c= 4 || nbr \u003c 4) {\n        std::cout \u003c\u003c nbr \u003c\u003c \" \u003c= 4, \" \u003c\u003c nbr \u003c\u003c \" \u003c 4\" \u003c\u003c std::endl;\n    }\n\n    return 0;\n}\n```\n\n### Récupérer la position d'une sous-chaîne dans une chaîne en C++ \u003ca id=\"recuperer-position-sous-chaine-dans-chaine-c++\"\u003e\u003c/a\u003e\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003cstring\u003e\n\nint main() {\n    std::string chaine = \"\u003cfis4 e'1 \u003e16 \u003cfis4 e'1 \u003e16 r16\u003cfis4 e'1 \u003e16 r16\u003cfis4 c'2 \u003e16 \u003cfis4 e'1 \u003e16 r16\u003cb2 g'1 \u003e16 r8.g8.3 r16\";\n    std::string recherche = \"16\";\n\n    size_t position = chaine.find(recherche);\n    std::cout \u003c\u003c position \u003c\u003c std::endl;\n\n    return 0;\n}\n```\n\n## JavaScript \u003ca id=\"javascript\"\u003e\u003c/a\u003e\n\n### Récupérer le nombre de paramètres en JavaScript \u003ca id=\"recuperer-nombre-parametres-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst nbr = process.argv.length - 2;\nconsole.log(\"Nombre de paramètres:\", nbr);\n```\n\n### Récupérer les paramètres en JavaScript \u003ca id=\"recuperer-parametres-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst parametre1 = process.argv[2];\nconst parametre2 = process.argv[3];\nconsole.log(\"Le premier paramètre:\", parametre1);\nconsole.log(\"Le second paramètre:\", parametre2);\n```\n\n### Connaître la taille d'une chaine de caractères en JavaScript \u003ca id=\"connaitre-taille-chaine-caracteres-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst readline = require('readline').createInterface({\n    input: process.stdin,\n    output: process.stdout\n});\n\nreadline.question(\"Entrez une chaîne de caractères: \", (input_string) =\u003e {\n    console.log(`La taille de la chaîne '${input_string}': ${input_string.length}`);\n    readline.close();\n});\n```\n\n### Boucles en JavaScript \u003ca id=\"boucles-javascript\"\u003e\u003c/a\u003e\n\n#### if else en JavaScript \u003ca id=\"if-else-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst nbr = process.argv.length - 2;\n\nif (nbr === 1) {\n    console.log(\"Il y a un seul paramètre\");\n} else if (nbr === 2) {\n    console.log(\"Il y a deux paramètres\");\n} else {\n    console.log(\"Il y a plus de deux paramètres\");\n}\n```\n\n#### for en JavaScript \u003ca id=\"for-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst readline = require('readline').createInterface({\n  input: process.stdin,\n  output: process.stdout\n});\n\nreadline.question(\"Entrez une chaîne de caractères: \", (input_string) =\u003e {\n  console.log(\"Méthode 1:\");\n  for (const char of input_string) {\n      console.log(char);\n  }\n\n  console.log(\"Méthode 2:\");\n  for (let i = 0; i \u003c input_string.length; i++) {\n      console.log(input_string[i]);\n  }\n\n  readline.close();\n});\n```\n\n### Incrémenter une variable en JavaScript \u003ca id=\"incrementer-variable-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nlet nbr = 0;\nconsole.log(\"Avant incrémentation:\", nbr);\nfor (let i = 1; i \u003c= 5; i++) {\n    nbr++;\n}\nconsole.log(\"Après incrémentation:\", nbr);\n```\n\n### Opérations mathématiques en JavaScript \u003ca id=\"operations-mathematiques-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconsole.log(\"5 plus 3 =\", 5 + 3);\nconsole.log(\"5 fois 3 =\", 5 * 3);\nconsole.log(\"5 puissance 3:\", 5 ** 3);\nconsole.log(\"5 modulo 3:\", 5 % 3);\nconsole.log(\"2 puissance 100:\", 2 ** 100);\n```\n\n### Vérifier si une chaîne est contenue dans une autre en JavaScript \u003ca id=\"verifier-si-chaine-contenue-dans-une-autre-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst chaine = \"coucou\";\nconst sousChaine = \"ou\";\n\nif (chaine.includes(sousChaine)) {\n    console.log(`'${chaine}' contient '${sousChaine}'`);\n}\n```\n\n### Lowercase/Uppercase en JavaScript \u003ca id=\"lowercase-uppercase-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst chaine = \"CouCou\";\n\nconst lowercase = chaine.toLowerCase();\nconst uppercase = chaine.toUpperCase();\n\nconsole.log(`${chaine} en lowercase: ${lowercase}`);\nconsole.log(`${chaine} en uppercase: ${uppercase}`);\n```\n\n### Enlever un caractère d'une chaîne en JavaScript \u003ca id=\"enlever-caractere-chaine-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst chaine = \"coucou\";\nconst chaineModifiee = chaine.replace('c', '');\n\nconsole.log(\"Chaîne de départ:\", chaine);\nconsole.log(\"Chaîne modifiée:\", chaineModifiee);\n```\n\n### Concaténer deux chaînes de caractères en JavaScript \u003ca id=\"concatener-deux-chaines-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst chaine1 = \"Hello, \";\nconst chaine2 = \"World!\";\n\nconst concatenation = chaine1 + chaine2;\n\nconsole.log(\"Chaine 1: '\", chaine1, \"'\");\nconsole.log(\"Chaine 2: '\", chaine2, \"'\");\nconsole.log(\"Concaténation: '\", concatenation, \"'\");\n```\n\n### Comparer deux chaînes de caractères en JavaScript \u003ca id=\"comparer-deux-chaines-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst chaine1 = \"coucou\";\nconst chaine2 = \"CouCou\";\n\nif (chaine1 === \"coucou\") {\n    console.log(`${chaine1} = coucou`);\n}\n\nif (chaine1 === chaine2) {\n    console.log(`${chaine1} = ${chaine2}`);\n} else {\n    console.log(`${chaine1} != ${chaine2}`);\n}\n```\n\n### Comparer deux entiers en JavaScript \u003ca id=\"comparer-deux-entiers-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst nbr = 3;\n\nif (nbr === 3) {\n    console.log(`${nbr} = 3`);\n}\n\nif (nbr !== 5) {\n    console.log(`${nbr} != 5`);\n}\n\nif (nbr \u003e= 2 || nbr \u003e 2) {\n    console.log(`${nbr} \u003e= 2, ${nbr} \u003e 2`);\n}\n\nif (nbr \u003c= 4 || nbr \u003c 4) {\n    console.log(`${nbr} \u003c= 4, ${nbr} \u003c 4`);\n}\n```\n\n### Récupérer la position d'une sous-chaîne dans une chaîne en JavaScript \u003ca id=\"recuperer-position-sous-chaine-dans-chaine-javascript\"\u003e\u003c/a\u003e\n\n```javascript\nconst chaine = \"\u003cfis4 e'1 \u003e16 \u003cfis4 e'1 \u003e16 r16\u003cfis4 e'1 \u003e16 r16\u003cfis4 c'2 \u003e16 \u003cfis4 e'1 \u003e16 r16\u003cb2 g'1 \u003e16 r8.g8.3 r16\";\n// recherche de la première position de la chaine \"16\"\nconst recherche = \"16\";\nconst position = chaine.indexOf(recherche) + 1;\nconsole.log(position);\n```\n\n## Python \u003ca id=\"python\"\u003e\u003c/a\u003e\n\n### Structure d'un fichier Python \u003ca id=\"structure-fichier-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\n# le reste du programme\n```\n\n### Récupérer le nombre de paramètres en Python \u003ca id=\"recuperer-nombre-parametres-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nimport sys\n\nnbr = len(sys.argv) - 1\nprint(\"Nombre de paramètres:\", nbr)\n```\n\n### Récupérer les paramètres en Python \u003ca id=\"recuperer-parametres-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nimport sys\n\nparametre1 = sys.argv[1]\nparametre2 = sys.argv[2]\nprint(\"Le premier paramètre:\", parametre1)\nprint(\"Le second paramètre:\", parametre2)\n```\n\n### Connaître la taille d'une chaine de caractères en Python \u003ca id=\"connaitre-taille-chaine-caracteres-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\ninput_string = input(\"Entrez une chaîne de caractères: \")\n\nprint(\"La taille de la chaîne '{}': {}\".format(input_string, len(input_string)))\n```\n\n### Boucles en Python \u003ca id=\"boucles-python\"\u003e\u003c/a\u003e\n\n#### if else en Python \u003ca id=\"if-else-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nimport sys\n\nnbr = len(sys.argv) - 1\n\nif nbr == 1:\n    print(\"Il y a un seul paramètre\")\nelif nbr == 2:\n    print(\"Il y a deux paramètres\")\nelse:\n    print(\"Il y a plus de deux paramètres\")\n```\n\n#### for en Python \u003ca id=\"for-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\ninput_string = input(\"Entrez une chaîne de caractères: \")\n\nprint(\"Méthode 1:\")\nfor char in input_string:\n    print(char)\n\nprint(\"Méthode 2:\")\nfor i in range(len(input_string)):\n    print(input_string[i])\n```\n\n### Incrémenter une variable en Python \u003ca id=\"incrementer-variable-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nnbr = 0\nprint(\"Avant incrémentation:\", nbr)\nfor i in range(1, 6):\n    nbr += 1\n\nprint(\"Après incrémentation:\", nbr)\n```\n\n### Opérations mathématiques en Python \u003ca id=\"operations-mathematiques-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nprint(\"5 plus 3 =\", 5 + 3)\nprint(\"5 fois 3 =\", 5 * 3)\nprint(\"5 puissance 3:\", 5 ** 3)\nprint(\"5 modulo 3:\", 5 % 3)\nprint(\"2 puissance 100:\", 2 ** 100)\n```\n\n### Vérifier si une chaîne est contenue dans une autre en Python \u003ca id=\"verifier-si-chaine-contenue-dans-une-autre-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nchaine = \"coucou\"\nsousChaine = \"ou\"\n\nif sousChaine in chaine:\n    print(\"'{}' contient '{}'\".format(chaine, sousChaine))\n```\n\n### Lowercase/Uppercase en Python \u003ca id=\"lowercase-uppercase-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nchaine = \"CouCou\"\n\nlowercase = chaine.lower()\nuppercase = chaine.upper()\n\nprint(\"{} en lowercase: {}\".format(chaine, lowercase))\nprint(\"{} en uppercase: {}\".format(chaine, uppercase))\n```\n\n### Enlever un caractère d'une chaîne en Python \u003ca id=\"enlever-caractere-chaine-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nchaine = \"coucou\"\nchaineModifiee = chaine.replace('c', '')\n\nprint(\"Chaîne de départ:\", chaine)\nprint(\"Chaîne modifiée:\", chaineModifiee)\n```\n\n### Concaténer deux chaînes de caractères en Python \u003ca id=\"concatener-deux-chaines-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nchaine1 = \"Hello, \"\nchaine2 = \"World!\"\n\nconcatenation = chaine1 + chaine2\n\nprint(\"Chaine 1: '{}'\".format(chaine1))\nprint(\"Chaine 2: '{}'\".format(chaine2))\nprint(\"Concaténation: '{}'\".format(concatenation))\n```\n\n### Comparer deux chaînes de caractères en Python \u003ca id=\"comparer-deux-chaines-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nchaine1 = \"coucou\"\nchaine2 = \"CouCou\"\n\nif chaine1 == \"coucou\":\n    print(\"{} = coucou\".format(chaine1))\n\nif chaine1 == chaine2:\n    print(\"{} = {}\".format(chaine1, chaine2))\nelse:\n    print(\"{} != {}\".format(chaine1, chaine2))\n```\n\n### Comparer deux entiers en Python \u003ca id=\"comparer-deux-entiers-python\"\u003e\u003c/a\u003e\n\n```python\n#!/usr/bin/env python3\n\nnbr = 3\n\nif nbr == 3:\n    print(\"{} = 3\".format(nbr))\n\nif nbr != 5:\n    print(\"{} != 5\".format(nbr))\n\nif nbr \u003e= 2 or nbr \u003e 2:\n    print(\"{} \u003e= 2, {} \u003e 2\".format(nbr, nbr))\n\nif nbr \u003c= 4 or nbr \u003c 4:\n    print(\"{} \u003c= 4, {} \u003c 4\".format(nbr, nbr))\n```\n\n### Récupérer la position d'une sous-chaîne dans une chaîne en Python \u003ca id=\"recuperer-position-sous-chaine-dans-chaine-python\"\u003e\u003c/a\u003e\n\n```python\nchaine = \"\u003cfis4 e'1 \u003e16 \u003cfis4 e'1 \u003e16 r16\u003cfis4 e'1 \u003e16 r16\u003cfis4 c'2 \u003e16 \u003cfis4 e'1 \u003e16 r16\u003cb2 g'1 \u003e16 r8.g8.3 r16\"\n# recherche de la première position de la chaine \"16\"\nrecherche = \"16\"\nposition = chaine.find(recherche) + 1\nprint(position)\n```\n\n## PowerShell\n\n### Structure d'un fichier PowerShell \u003ca id=\"structure-fichier-powershell\"\u003e\u003c/a\u003e\n\n```powershell\nfunction Get-Greeting {\n    param([string]$name)\n    \"Hello, $name\"\n}\n\nGet-Greeting -name \"World\"\n```\n\n### Récupérer le nombre de paramètres en PowerShell \u003ca id=\"recuperer-nombre-parametres-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$paramCount = $args.Count\nWrite-Output \"Nombre de paramètres: $paramCount\"\n```\n\n### Récupérer les paramètres en PowerShell \u003ca id=\"recuperer-parametres-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$firstParam = $args[0]\n$secondParam = $args[1]\nWrite-Output \"Premier paramètre: $firstParam\"\nWrite-Output \"Second paramètre: $secondParam\"\n```\n\n### Connaître la taille d'une chaîne de caractères en PowerShell \u003ca id=\"connaitre-taille-chaine-caracteres-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$string = \"PowerShell\"\n$length = $string.Length\nWrite-Output \"La longueur de la chaîne est : $length\"\n```\n\n### Boucles en PowerShell \u003ca id=\"boucles-powershell\"\u003e\u003c/a\u003e\n\n#### if else en PowerShell \u003ca id=\"if-else-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$number = 10\nif ($number -gt 5) {\n    Write-Output \"Le nombre est supérieur à 5\"\n} else {\n    Write-Output \"Le nombre est inférieur ou égal à 5\"\n}\n```\n\n#### for en PowerShell \u003ca id=\"for-powershell\"\u003e\u003c/a\u003e\n\n```powershell\nfor ($i = 0; $i -lt 5; $i++) {\n    Write-Output \"Itération: $i\"\n}\n```\n\n### Incrémenter une variable en PowerShell \u003ca id=\"incrementer-variable-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$counter = 0\n$counter++\nWrite-Output \"Compteur après incrémentation: $counter\"\n```\n\n### Opérations mathématiques en PowerShell \u003ca id=\"operations-mathematiques-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$a = 10\n$b = 5\n\n$sum = $a + $b\n$product = $a * $b\n$quotient = $a / $b\n\nWrite-Output \"Somme: $sum\"\nWrite-Output \"Produit: $product\"\nWrite-Output \"Quotient: $quotient\"\n```\n\n### Vérifier si une chaîne est contenue dans une autre en PowerShell \u003ca id=\"verifier-si-chaine-contenue-dans-une-autre-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$string = \"PowerShell est génial\"\nif ($string -like \"*génial*\") {\n    Write-Output \"La chaîne contient le mot 'génial'\"\n}\n```\n\n### Lowercase/Uppercase en PowerShell \u003ca id=\"lowercase-uppercase-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$string = \"PowerShell\"\n$lowercase = $string.ToLower()\n$uppercase = $string.ToUpper()\n\nWrite-Output \"En minuscules: $lowercase\"\nWrite-Output \"En majuscules: $uppercase\"\n```\n\n### Enlever un caractère d'une chaîne en PowerShell \u003ca id=\"enlever-caractere-chaine-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$string = \"PowerShell\"\n$newString = $string.Remove(0, 1)  # Retire la première lettre\nWrite-Output \"Nouvelle chaîne: $newString\"\n```\n\n### Concaténer deux chaînes de caractères en PowerShell \u003ca id=\"concatener-deux-chaines-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$string1 = \"Power\"\n$string2 = \"Shell\"\n$concatenated = $string1 + $string2\nWrite-Output \"Chaîne concaténée: $concatenated\"\n```\n\n### Comparer deux chaînes de caractères en PowerShell \u003ca id=\"comparer-deux-chaines-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$string1 = \"PowerShell\"\n$string2 = \"powershell\"\n\nif ($string1 -ieq $string2) {\n    Write-Output \"Les chaînes sont égales (comparaison insensible à la casse)\"\n} else {\n    Write-Output \"Les chaînes sont différentes\"\n}\n```\n\n### Comparer deux entiers en PowerShell \u003ca id=\"comparer-deux-entiers-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$number1 = 10\n$number2 = 20\n\nif ($number1 -lt $number2) {\n    Write-Output \"$number1 est plus petit que $number2\"\n} else {\n    Write-Output \"$number1 est plus grand ou égal à $number2\"\n}\n```\n\n### Récupérer la position d'une sous-chaîne dans une chaîne en PowerShell \u003ca id=\"recuperer-position-sous-chaine-dans-chaine-powershell\"\u003e\u003c/a\u003e\n\n```powershell\n$string = \"PowerShell est puissant\"\n$position = $string.IndexOf(\"puissant\")\nWrite-Output \"Position de 'puissant' dans la chaîne : $position\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabin221%2Fexercism","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabin221%2Fexercism","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabin221%2Fexercism/lists"}