====== Rust ====== * [[https://fr.wikipedia.org/wiki/Rust_(langage)|Fiche Wikipedia]] * [[https://doc.rust-lang.org/stable/std/#the-rust-standard-library|Documentation]] * [[https://jimskapt.github.io/rust-book-fr/title-page.html|Manuel de référence]] Pour développer sans tout installer : [[https://play.rust-lang.org/|Rust playground]] ou bien sûr [[https://replit.com/|replit]] ===== Présentation ===== Rust est un langage de programmation système, compilé et multi-paradigme. C'est un croisement entre langage impératif ([[nsi:langages:c:start|C]]), objet ([[nsi:langages:cpp:start|C++]]), fonctionnel ([[nsi:langages:ocaml:start|Ocaml]]) et concurrent. Il s'inspire des recherches en théories des langages de ces dernières années et des langages de programmation les plus populaires afin d'atteindre trois objectifs : rapidité, sécurité (en mémoire notamment) et concurrent (partage des données sécurisé entre tâches). Conçu et développé par la fondation Mozilla depuis 2009, par conséquent c'est un développement ouvert à la communauté accessible sur [[https://github.com/rust-lang/rust|github]]. Rust propose quelques originalités comme les concepts de **trait** et de **propriété**. Pour creuser plus loin, je vous recommande la lecture de ce [[https://jimskapt.github.io/rust-book-fr/title-page.html|guide]] qui est clair et ajoute des explications utiles pour comprendre le fonctionnement de ces langages. Le guide évoque **cargo** qui est un gestionnaire facilitant le développement en Rust. Si vous programmez sur [[https://replit.com/|replit]] ou sur [[https://play.rust-lang.org/|Rust playground]] vous n'en aurez pas besoin. ===== Exemples d'exercices en Rust ===== **Les solutions présentées ici ne sont que des propositions !** === Plus facile === * Vérifier code ISBN [[nsi:tds:isbn|Fiche exo]] -- [[.solutions:isbn|Solution]] * Trouver le jour de la semaine correspondant à une date [[nsi:tds:jour_et_date|Fiche exo]] -- [[.solutions:jour_semaine|Solution]] * Vérificarion code CB [[nsi:tds:peter_luhn_algo|Fiche exo]] -- [[.solutions:code_cb|Solution]] * Calcul de plus-code [[nsi:tds:divers:plus_code|Fiche exo]] -- [[.solutions:plus_code|Solution]] * Tri par sélection [[nsi:premiere:tableau:tri:selection|Fiche]] -- [[.solutions:tri_selection|Solution]] * Recherche dichotomique [[nsi:premiere:tableau:recherche:dichotomie|Fiche]] -- [[.solutions:recherche_dichotomique|Solution]] * Tri par insertion [[nsi:premiere:tableau:tri:insertion|Fiche]] -- [[.solutions:tri_insertion|Solution]] * Recherche de racine de fonction par dichotomie [[nsi:tds:maths:racine_dichotomie|Fiche]] -- [[.solutions:racine_dichotomie|Solution]] * Méthode de Newton [[nsi:tds:maths:racine_newton|Fiche]] -- [[.solutions:racine_newton|Solution]] === moyen === * Chiffre de César [[nsi:tds:cryptographie:chiffre_cesar|Fiche exo]] -- [[.solutions:chiffre_cesar|Solution]] * Chiffre de Vigenère [[nsi:tds:cryptographie:chiffre_vigenere|Fiche exo]] -- [[.solutions:chiffre_vigenere|Solution]] * Ghostleg [[nsi:tds:jeux:ghostleg|Fiche exo]] -- [[.solutions:ghostleg|Solution]] * Système d'affichage [[nsi:tds:systeme_affichage|Fiche exo]] -- [[.solutions:systeme_affichage|Solution]] * Identifier des zones [[nsi:tds:id_zones|Fiche exo]] -- [[.solutions:id_zones|Solution]] * Sortir d'un labyrinthe [[nsi:tds:jeux:labyrinthe_solver|Fiche exo]] -- [[.solutions:labyrinthe_solver|Solution]] * Générer un labyrinthe [[nsi:tds:jeux:generer_labyrinthe|Fiche exo]] -- [[.solutions:generer_labyrinthe|Solution]] * Solveur de polynôme [[nsi:tds:maths:polynome_solver|Fiche exo]] -- [[.solutions:polynome_solver|Solution]] * Code de Chuck Norris [[nsi:tds:divers:chuck_norris|Fiche exo]] -- [[.solutions:chuck_norris|Solution]] === Plus difficile === * Liste chainée -- [[.solutions:liste|Solution]] * Pile -- [[.solutions:pile|Solution]] * Hash md5 [[nsi:tds:cryptographie:hash|Fiche exo]] -- [[.solutions:md5]] * Génération de nombre premiers [[nsi:tds:cryptographie:get_n_bits_prime|Fiche exo]] -- [[.solutions:prime|Solution]] * Algorithme de Boyer-Moore [[nsi:terminales:boyer_moore|Fiche]] -- [[.solutions:boyer_moore|Solution]]