Conversion francs - euros

  1. Etant donnée une phrase qui contient une somme exprimée en francs, pour la convertir en euros on supposera que la somme, d'abord nombre entier puis décimal, est suivi du symbole F ou f .
  2. La phrase sera saisie.
  3. En son absence, une phrase par défaut est prévue

    #!/usr/bin/perl
    
    print "Donnez une phrase qui contient une somme exprimee en francs (Sous la forme XXX F/f ou XX.XX F/f) à convertir en euros : \n"; $phrase=<STDIN>; 
    #On supprime le dernier caractère contenu dans la variable $phrase seulement si celui-ci est un retour à la ligne chomp ($phrase);
    
    #Si le contenu de la variable $phrase contient n'importe quel chiffre de 0 à 9 répété 1 à plusieurs fois, suivi ou non d'un point, suivi de n'importe quel chiffre de 0 à 9 répété 0, 1 ou plusieurs fois, suivi d'un espace et suivi d'un F ou d'un f, on exécute le bloc d'instructions 
    if ($phrase=~/([0-9]+\.?[0-9]*)( (F|f))/) { 	
    	#On affecte à la variable $p le motif recherché qui se trouve dans la première paranthèse 	
    	$p=$1; 	
    	#On affecte à la variable $gauche la chaîne de caractères qui se trouve à gauche du motif cherché 	$gauche=$`; 	
    	#On affecte à la variable $droite la chaîne de caractères qui se trouve à droite du motif cherché 	$droite=$'; 	
    	#On affecte à la variable $symbole le motif qui se trouve dans la deuxième paranthèse  	
    	$symbole=$2; 	
    	#Dans le contenu de la variable $symbole on remplace le F par un E 	
    	$symbole=~s/F/E/; 		
    	#Dans le contenu de la variable $symbole on remplace le f par un e 
    	$symbole=~s/f/e/;
    	#On divise le contenu de la variable $p par 6.56 et on affecte le résultat à la variable $conversion 	$conversion=$p/6.56;
    	
    	#Si le contenu de la variable $conversion contient n'importe quel chiffre de 0 à 9 répété 1 ou plusieurs fois, suivi d'un point et suivi de deux chiffres de 0 à 9, on exécute le bloc d'instructions 	
    	if ($conversion=~/([0-9]+\.[0-9][0-9])/) { 		
    		#On affecte à la variable $conv le motif recherché qui se trouve dans la première paranthèse (Contenu dans la variable $1) 	
    		$conv=$1; 	
    	} 	
    	
    	#Si le contenu de la variable $gauche est égal à rien et si le contenu de la variable $droite est égal à rien, on exécute le bloc d'instructions 	
    	if ($gauche eq "" && $droite eq "") { 		
    		print "Resultat en euros : ",$conv.$symbole,"\n"; 	
    	}
    
    	else { 		
    		#On affiche les uns à la suite des autres le contenu de la variable $gauche, le contenu de la variable $conv, le contenu de la variable $symbole et le contenu de la variable $droite 		
    		print $gauche.$conv.$symbole.$droite,"\n"; 	
    	}
    }
    
    else { 	
    	print "/!/ aucune somme en francs dans cette phrase /!/ \n"; 
    }
    

    Image 19



Beliao julie 2010-06-07