Chapitre III : Structure de données

1. Expressions régulières et chaînes

def analyse( ligne )
  nom, date, adresse, telephone, email = ligne.split( ";" )
  
  nom,prenom = nom.split( ',' )
  if ( date =~ /(\d{2})-(\d{2})-(\d{4})/) 
    jour = $1
    mois = $2
    annee = $3
  else
    jour = "?"
    mois = "?"
    annee = date
  end

  if ( adresse =~ /(\d+),([\w\s]+),(\d+)/ )
    numRue = $1
    rue = $2
    ville = $3
  end

  region = $1 if ( telephone =~ /(\d{2})/ )
  compte = $1 if ( email =~ /(\w+)@/)

  puts "nom:#{nom}"
  puts "prénom:#{prenom}"
  puts "jour:#{jour}"
  puts "mois:#{mois}"
  puts "année:#{annee}"
  puts "num:#{numRue}"
  puts "rue:#{rue}"
  puts "ville:#{ville}"
  puts "région:#{region}"
  puts "compte:#{compte}"

end

test=<<TEST
jean,charles; 01-02-1920;10,rue de londre,4420;03 33 44 55 
66;jeancharles@hotmail.fr
TEST

analyse( test ) 

2. Tableaux

def somme( a, b )

res = []

a.each_index {
  | i |
    
    a[i].each_index {
      | j |
      res[ i ] = [] if ( res[ i ] == nil )
      res[ i ][ j ] = b[ i ][ j] + a[ i ][ j ]
    }
}

res

end

def affiche( m ) 
  for i in m
    for j in i
      print "#{j} "
    end
    puts
  end
end

m1 = [ [ 1, 2, 3 ], [ 4, 5, 6 ]]

m2 = [ [ 0, 1, 1 ], [ 1, 2, -1 ] ]

m3 = somme( m1, m2 )

puts m3.inspect

affiche( m3 ) 
Pour consulter la suite, découvrez le livre suivant :
couv_Ruby.PNG
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Chapitre II : Premiers Programmes
Suivant
Chapitre IV : Programmation objet