#!/usr/bin/ruby -w # election Miss RUBY # on charge un tableau (Array) de prenoms a partir d'un fichier # On parcourt "circulairement" cette liste . A chaque réception du # signal SIGINT, l'element courant est supprimé. # Quand il ne reste plus qu'un seul nom, on affiche la gagnante # #-------------------------------------------------------------------------- print "Entrer le nom du fichier\n"; fich= gets; fich = fich.chomp # test si c'est un fichier régulier unless File.file?(fich) puts "PB ! Fichier inexistant" exit end # procedure d'elimination d'une candidate trap("SIGINT" ){ #attention a la place de l'accolade ouvrante puts $girls[$i] + " est eliminee !" $girls.slice!($i) # on elimine la candidate $i # $girls[$i,1] = [] # variante } # chargement de toutes les lignes du fichier (de nom saisi)dans un tableau $girls = IO.readlines(fich); $i=0 ; # indice de la candidate courante # notation $i et $t indispensable (var. globales) pour que visible partout # le défini AVANT en a besoin ! while true if $girls.length == 1 puts $girls[0] + "est elue Miss RUBY! Bravo!!" exit else if $i < $girls.length - 1 $i = $i + 1 else $i = 0 end end end