- Un système juste pour participer à des évènements sportifs trop populaires ?
- Action Text : un nouveau composant pour Ruby on Rails
Comme tout le monde le sait, pratiquer est important pour progresser en programmation 1. Ce principe était présent du temps du Site du Zéro avec plusieurs topics d’exercices. J’ai donc pris du temps pour récupérer les liens de pas mal d’exercices, liens qui n’étaient plus valides depuis le passage du SdZ à OC.
Voici donc un petit billet récapitulatif. Même si certains sont spécifiques à des langages particuliers (comme zPrintf), la plupart sont faisables peu importe le langage.
-
Et pas que d’ailleurs, c’est valable dans n’importe quel domaine.
↩
C
zDéfis
- [Défi #1 : Chimie pour tous] : un petit parseur pour calculer la masse molaire d’un groupe d’atomes.
- [Défi #2 : le jeu de la vie] : à l’aide d’une bibliothèque graphique, faire un petit jeu de la vie.
- [Défi #3 : sudokus en folie]
- [Défi #4 : faisons une vraie calculette] : faire un petit parseur permettant d’évaluer une expression arithmétique, avec possibilité d’ajouter les variables, les fonctions, voire faire un vrai petit langage.
- [Défi #5 : un chronomètre] : comme son nom l’indique, faire un bête chronomètre.
- [Défi #6 : Dessinez la courbe du dragon] : avec une bibliothèque graphique, dessiner une fractale célèbre appelée la courbe du dragon.
- [Défi #7 : un correcteur orthographique efficace] : et pourtant c’est plus compliqué qu’il n’y parait.
- [Défi #8 : tout en base 64] : Base64 est un codage permet de représenter une suite de bit quelconque avec seulement 65 caractères, le but est donc de l’implémenter.
- [Défi #9 : la recherche en génétique] : coder un programme capable de retrouver une sous-chaîne dans un texte.
- [Défi #11 : zprintf] : recoder la fonction la plus célèbre du C !
- [Défi #12 : zdessin] : créer son propre format de .bmp avec une petite bibliothèque pour le manipuler.
- [Autres défis] : la liste de tous les défis qui avaient été envisagés.
- [Et encore d’autres]
Exercices
- zReader : manipuler les fichiers.
- zBinary : algorithmique et binaire.
- zTri : récupération des secondes système, comparatif de tris.
- zStrcapitalize : recoder la fonction strcapitalize.
- zAddition : pure algorithmique, matrices.
- zMath : algorithmique, pile.
- zGame : résoudre des multiplications le plus vite possible.
- zStrstat : chaînes de caractères.
- zStrsearch : chaînes de caractères.
- zBrace : algorithmique, expressions parenthésées.
- zGrep : récupération des paramètres du main, algo sur les chaînes, manipulation de fichier, analyse séquentielle.
- z0zéro : écrire un nombre en toutes lettres.
- zSommeChiffres : Calculer la somme des chiffres d’un nombre donné. Compter le nombre de fois où une somme est présente dans un intervalle donné.
- zArray1D : pratique des tableaux à une dimension.
- zBigInt : opérations surs les grands entiers.
- zLCD : simulation d’un afficheur 7 segments.
- zCoupure : jouer au banquier.
- zWordCount : manipulation de fichiers.
- zJustificator : justification de texte.
- zTransforme : manipulations basiques de tableaux.
- zPointeurs : manipulations de pointeurs.
- zIdentificator : algorithmique.
- zChance : manipulation du temps et/ou pratique algorithmique.
- zConvert : conversion chiffre -> chaîne de caractères.
- zCalc : créer une calculatrice.
- zCrypt : initiation au cryptage.
- zSpirale : boucles, manipulation de tableaux à 2 dimensions et allocation dynamique.
- zMorp - 1ère partie : un jeu de morpion en console.
- zMorp - 2ème partie : maintenant, l’IA.
- zMorp - SDL : même principe, mais version graphique cette fois.
- getline
- zConjug : manipulation de chaînes de caractères.
C++
- Cosway : recodons la vache GNU/Linux la plus célèbre !
- Le plus grand nombre : une classe spéciale d’entiers potentiellement très grands.
- Compression RLE : implémentons l’algorithme pour des fichiers textes.
- Opérateur virgule : exercice un peu inutile depuis C++11 et les initializer lists.
- Statistiques sur des fichiers : nombre de caractères, de mots, de paragraphes, etc.
- Interpréteur BrainFuck : tout est dans le titre.
- Des chiffres… : tiré du jeu télévisé Des chiffres et des lettres.
- …et des lettres : même chose que le précédent, mais avec les lettres.
- Fractions : créer un type Fraction pour les manipuler plus facilement.
- CRYPTO 1 : Le chiffre de César : tout est dans le titre.
- CRYPTO 2 : Le chiffre de Vigenère : tout est dans le titre.
- Bonus : Project Euler : présentation du projet Euler.
- CRYPTO 3 : Cryptage XOR : tout est dans le titre.
- Chiffres romains : conversion de et vers les chiffres romains.
- Polynômes : évaluation de polynômes.
- [Atelier] P’tit langage : créer un petit langage de programmation.
- Diff : recoder l’outil de diff de deux fichiers.
- Figlet ! : recoder le programme GNU/Linux pour afficher de l’ASCII Art.
- Parseur de fonctions mathématiques : tout est dans le titre.
- Triangle de Pascal : tout est dans le titre.
- Interpréteur Befunge : un autre langage ésotérique.
- Biblio++ : gestion de BDD.
- Le Site du Zéro : un exercice de polymorphisme coincé avant 2013.
- En lettres ! : écrire des nombres en toutes lettres.
- Football sur papier : un jeu original qui vaut le détours.
- Puissance 4 : tout est dans le titre.
- Démineur : le célèbre jeu explosif !
- Bataille navale : tout est dans le titre.
- Tic-tac-toe : aussi appelé morpion.
- Les ruptures : pour travailler les boucles et les flux d’exécution.
Python
- Pharmacie : gérer une pharmacie.
- Carte bancaire : vérifier qu’un numéro de carte bancaire respecte l’algorithme de Luhn pour les sommes de contrôle.
- Règle de Golomb : lire la description.
- Monnaie syldave : énigme posée au Championnat International de jeux mathématiques en 2000.
- Poker : un jeu de poker quoi.
- Connexité et comptage d’objets : lire la description.
- Notation polonaise : exercice connu.
- Trouver les VIP : où l’on manipule des graphes.
- Mise en cache de fonctions : ne pas recalculer la valeur d’une fonction déjà appelée.
- Traçage de l’application : afficher tout ce qui se passe lors de l’appel d’une fonction.
- Trouver les dix plus grands nombres : sans utiliser sort.
- Chaînes de mots : transformation pour aller d’un mot à un autre.
- Factorielle et analogues : l’énoncé est peu lisible avec les balises maths toutes pétées.
- Tetris : tout est dans le titre.
- Anagrammes : génération d’anagrammes.