FTLS.org 
Francais     English
 
 
Accueil
 
 Linux
Introduction
Liens
 
 Initiation
Internet
HTML
CGI
Perl
 
 Archives
Java
Perl Tools
Scripts CGI
Scripts PHP
 
 Calculatrices
HP 48
TI 92
 
 Gratuit du Net
A Gratuit
Comparatifs
Se divertir
 
 Aide Webmasters
Trucs & Astuces
JavaScript
 
 Site
Partenaires
Contact
 
 Powered by
linux
 

Initiation


Initiation au Perl



11. Exemples

    11.1 Bonjour

    #!/usr/bin/perl

    if ($#ARGV < 0) {
        print "Quel est votre prénom ? ";
        $prenom = <STDIN>;
        chop ($prenom);
    } else {
        $prenom = $ARGV[0];
    }
        print "Bonjour $prenom\n";

    11.2 Calcule la valeur de Pi

    #!/usr/bin/perl

    # Calcule la valeur de Pi avec une precision superieure
    # ou egale a 0.1^precision en utilisant la limite de
    # la somme pour i variant entre 0 et l'infini de
    # (-1^i / 2i+1) * [4 * (1/5)^(2i+1) - (1/239)^(2i+1)]
    # qui est egale a Pi/4.
    # A chaque iteration pour le calcul de la somme, on
    # conserve la puissance negative impaire courante de 5
    # et 239. Pour la puissance de -1, on utilise la parite
    # de l'iteration.

    # Test des arguments et affichage du résultat. if ($#ARGV < 0) { &usage(); }


    for ($i=0; $i < $#ARGV+1; $i++) {
        print &Pi($ARGV[$i])."\n";
    }
    # Renvoie la valeur de Pi avec la precision voulue. sub Pi {
        my($precision)=@_;
        my($i, $somme, $somme_precedente, $puissance_de_cinq,         $puissance_de_deux_cent_trente_neuf, $epsilon);
        $somme = 0;
        $somme_precedente = 1;
        $puissance_de_cinq = 1/5;
        $puissance_de_deux_cent_trente_neuf = 1/239;
        $epsilon = 0.1;

        for ($i = 1; $i < $precision; ++$i) {
            $epsilon /= 10;
        }


        for ($i = 0; abs($somme - $somme_precedente) > $epsilon; $i++) {
            $somme_precedente = $somme;
            $somme += ( ( $i % 2 == 0 ) ? 1 : -1 ) / (2 * $i + 1) *
                ( 4 * $puissance_de_cinq - $puissance_de_deux_cent_trente_neuf );
            $puissance_de_cinq /= 25;
            $puissance_de_deux_cent_trente_neuf /= 57121;
        }
        return $somme * 4; }

    sub usage {
        print STDERR "Usage $0 ENTIER...\n";
        print STDERR "Calcule la valeur de Pi\n";
        print STDERR "avec une precision superieure ou egale a 0.1^precision\n";
        exit;
    }

    11.3 Triangle de Pascal

    #!/usr/bin/perl

    if ($#ARGV < 0) { &usage(); }


    $Nb = $ARGV[0];
    $tab[0][0] = 1;

    # Calcul du triangle
    for ($n = 1; $n < $Nb+1; ++$n) {
        for ($k=1; $k < $Nb+1; ++$k) {
            $tab[$n][$k] = $tab[$n-1][$k] + $tab[$n-1][$k-1];
        }
    }

    # Affichage du résultat
    for ($n = 1; $n < $Nb+1; ++$n) {
        for ($k = 1; $k < $Nb+1; ++$k) {
            if ($tab[$n][$k] != 0) {
                $s .= $tab[$n][$k]." ";
            }
        }
        $s .= "\n";
    }

    print $s;

    sub usage {
        print STDERR "Usage $0 ENTIER...\n";
        print STDERR "Affiche le triangle de Pascal de profondeur ENTIER.\n";
        exit;
    }

    11.4 Compteur

    #!/usr/bin/perl

    $count_file = "compteur.txt";
    open(COUNT,"<$count_file") || die("Erreur de lecture de $count_file, Erreur: $!\n");
    $count = <COUNT>;
    close(COUNT);
    chop ($count);
    $count++;
    open(COUNT,">$count_file") || die("Erreur d'ecriture de $count_file, Erreur: $!\n");
    print COUNT $count."\n";
    close(COUNT);

    print $count."\n";

    11.5 Recherche d'une occurence dans un fichier

    #!/usr/bin/perl

    $fichier = "monfichier.txt";
    open(FILE,"<$fichier") || die("Erreur de lecture de $fichier, Erreur: $!\n");

    print("Quel mot rechercher : ");
    $cherche = ;
    chop($cherche);
    $ligne = 0;
    $sum = 0;
    $cond = 0;
    while(<FILE>){
        $cond=$sum;
        $ligne +=1;
        $sum += (s/\b$cherche\b/$cherche/g);
        if($cond != $sum){
            print("Ligne $ligne ==> ");
            print("$sum\n");
        }
    }
    close(FILE)
    print("----------------------------------------------------\n");
    print("Votre fichier contient $sum fois le mot '$cherche'\n");

    11.6 Date en français

    #!/usr/bin/perl

    @WeekDays = ('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
    @Months = ('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',     'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Decembre');

    ($Sec,$Min,$Hour,$Day,$Month,$Year,$Week_Day) = (localtime);
    $Year += 1900;

    print $WeekDays[$Week_Day]." ".$Day." ".$Months[$Month]." ".$Year."\n";
        # Affiche Lundi 1 Janvier 1999

    $Month++;
    if ($Day < 10) { $Day = "0".$Day; }
    if ($Month < 10) { $Month= "0".$Month; }
    print "$Day/$Month/$Year\n";
        # Affiche 01/01/1999

    if ($Sec < 10) { $Sec = "0".$Sec; }
    if ($Min < 10) { $Min = "0".$Min; }
    if ($Hour < 10) { $Hour = "0".$Hour; }


    print "$Hour:$Min:$Sec\n";
        # Affiche 23:15:50



 
© Copyright 2000 FTLS (Tyndiuk Frédéric). All rights reserved.
Last Update 08/03/2000 - Send all comments to webmaster@ftls.org