PERL pour les physiciens


informations
notes de cours
exemples
exercices
présentations





Valid HTML 4.01!
Exercices du cours

  • Chapitre 2:
    • Calculez π par deux techniques
      • Monte Carlo. Vous demanderez le nombre d'itérations à effectuer et vérifierez que le nombre obtenu est positif. Nous rappelons que cet algorithme consiste à tirer deux nombres aléatoires x et y et à incrémenter une variable notée N si x2 + y2 <= 1. Le rapport entre N et le nombre d'itérations tend vers π / 4.
      • intégrale de ∫0+∞ dx exp(-x2/2) par la méthode des trapèzes. Vous demanderez le nombre de subdivisions et la borne supérieure. Vous vérifierez que les nombres obtenus sont valides.
      solution


  • Chapitre 3:
    • 1) Créez un tableau de nombres aléatoires dont la taille sera passée comme premier argument. Puis cherchez le minimum et le maximum par deux méthodes: une rapide à exécuter et une autre plus lente mais s'écrivant de la manière la plus compacte possible.
      solution

    • 2) Reprendre l'exemple du tri croisé mais utilisez cette fois une table de hash pour réduire la taille du code et ne pas passer par un tableau d'indices.
      solution


  • Chapitre 4:
    • 1) Ecrivez un programme qui crée cent fichiers testxx (avec xx allant de 0 à 99), chaque fichier devant contenir son propre nom. Ensuite créez un deuxième programme qui va renommer chacun de ces fichiers de testxx en totoyy avec yy = xx+100.
      solution

    • 2) Ecrivez un programme qui crée un fichier donnees1.dat dont chaque ligne est une valeur de l'échantillonage des nombres entre 0 et 1 avec un pas de 0.01. Faire un deuxième programme qui va lire le fichier précédent. Pour chaque ligne lue, le programme devra extraire la valeur numérique x contenue, calculer cos(2πx) et stocker dans un fichier donnees2.dat une ligne composée de x et de la valeur de la fonction précédente évaluée en ce point (les deux nombres seront séparés par un espace).
      solution


  • Chapitre 5:
    • 1) Ecrivez un programme qui recherche dans tous les fichiers ayant l'extension txt (vous vous assurerez qu'il s'agit bien d'un fichier), ceux qui contiennent une chaîne de caractères simple (uniquement des chiffres et des lettres sans espaces ni caractères spéciaux). Cette chaîne sera donnée par le premier argument du programme.
      solution

    • 2) Ecrivez un premier programme qui crée un certain nombre de fichiers donné par le premier argument du programme, et ayant pour nom qhexxx.dat (xxx allant de 0 au nombre donné moins un). Chaque fichier contiendra son propre nom. Ecrivez un second programme qui recherche dans un répertoire tous les fichiers de la forme qhe{\d*\.dat} et qui les renomme en fqhe{\d*\.dat}.
      solution

    • 3) Ecrivez un premier programme qui crée un fichier de nombres aléatoires organisés en x colonnes et y lignes (x et y seront passés en paramètres au programme). Ecrivez un deuxième programme qui cherche le maximum de la première colonne, puis divise tous les nombres par ce maximum et finalement remplace l'ancien contenu du fichier par les données renormalisées.
      solution

    • 4) Dans le monde DOS/Windows, les fichiers textes utilisent deux caractères ASCII pour le saut de ligne (\r retour chariot et \n saut de ligne) alors que sous UNIX, il ne faut qu'un seul caractère (\n). Le résultat de cette différence est, lorsque vous ouvrez un fichier texte DOS/Windows sous UNIX, l'apparition de symbole ^M en fin de ligne. Dans l'autre sens, votre fichier apparaît comme composé d'une seule ligne. Ecrivez un programme dos2unix.pl qui convertit un fichier dont le nom est donné par le premier argument de la commande, du standard DOS/Windows au format UNIX. Ecrivez un programme unix2dos.pl qui fait l'opération inverse.
      solution


  • Chapitre 6:
    • 1) Reprendre l'exercice 2 du chapitre 5 qui consistait à renommer les fichiers en effectuant aussi l'opération dans tous les sous-répertoires.
      solution

    • 2) Faire une fonction de recherche de minimum et maximum dans un tableau. Les valeurs seront retournées en utilisant soit les référence soit un tableau. Vous pourrez utiliser tester cette fonction en l'insérant dans le programme de l'exercice 3 du chapitre5.
      solution


  • Chapitre 8:
    • 1) Ecrivez un programme qui analyse un fichier fichier.log et si ce dernier contient le mot alert, envoyez-vous un mail en utilisant MIME::Lite avec le contenu du fichier dans le corps du mail et la date et heure dans le titre.
      solution

    • 2) Reprenez la fonction ObtenirNomFichierTemporaire et faites en sorte que tous les noms créés soient uniques.
      solution