Dans cette section, nous allons construire un petit carnet d'adresses, contenant des informations sur trois amis: Nicolas, François et Marina.
La structure d'un carnet d'adresses est relativement complexe. Elle doit contenir plusieurs personnes, chacun ayant un nom, une adresse, et ainsi de suite.
Pour implémenter ce carnet d'adresses, notre stratégie sera de découper le problème en plusieurs petits problèmes.
Il nous faut commencer par déterminer le type d'informations que notre carnet d'adresses devrait référencer:
Le carnet d'adresse doit contenir une liste de personnes. Nous devrions être capable de trier ces personnes par ordre alphabétique.
Chaque personne possède évidemment un prénom, un nom de famille, un numéro de téléphone ainsi qu'une adresse.
Chaque adresse est définie par le nom d'une rue, d'un code postal ainsi que d'une ville et le pays dans lequel elle se situe.
Nous allons commencer par définir une structure représentant une adresse, et nous finirons par assembler le carnet tout entier.
Nous avons ici deux possibilités pour implémenter la structure d'une adresse:
Tableau: nous pourrions ajouter successivement l'adresse, le code postal, la ville et le pays dans un tableau. Ça fonctionnerait.
Hachage: évidemment, c'est plus facile de se souvenir d'une expression comme adresse["ville"] plutôt que adresse[2].
Nous allons évidemment choisir d'utiliser un hachage. Voici la représentation de nos adresses:
# Adresse de Nicolas adresse_de_nicolas = { "rue" => "Rue du port, 32", "code postal" => "56000", "ville" => "Vannes", "pays" => "France" } # Adresse de François adresse_de_francois = { "rue" => "Avenue de la tranchée, 14", "code postal" => "1000", "ville" => "Bruxelles", "pays" => "Belgique" } # Adresse de Marina adresse_de_marina = { "rue" => "Strada di l'amore, 61", "code postal" => "50100", "ville" => "Firenze", "pays" => "Italia" }
Chaque personne est identifiée par un prénom, un nom de famille, un numéro de téléphone ainsi qu'une adresse. Comme pour la structure précédente, un hachage convient parfaitement. Voici comment nous pouvons représenter nos amis avec Ruby:
# Nicolas nicolas = { "prénom" => "Nicolas", "nom de famille" => "Rocher", "téléphone" => "(+33) 02 93 45 49 19", "adresse" => adresse_de_nicolas } # François francois = { "prénom" => "François", "nom de famille" => "Willemart", "téléphone" => "(+32) 02 679 24 81", "adresse" => adresse_de_francois } # Marina marina = { "prénom" => "Marina", "nom de famille" => "Nantini", "téléphone" => "(+39) 055 681 32 11", "adresse" => adresse_de_marina }
Maintenant que nous avons défini toutes les autres structures, il ne nous reste plus qu'à créer le carnet d'adresses. Comme nous désirons pouvoir par la suite trier les éléments, nous devons donc utiliser un tableau pour réunir nos trois amis:
carnet = [ nicolas, francois, marina ]
Et voila! Nous venons d'implémenter complètement la structure de notre carnet d'adresses. Dans la section suivante, nous allons apprendre comment trier les éléments du carnet, ainsi que d'autres petites choses amusantes.
Note | |
---|---|
Sauvegardez les structures dans un fichier. Nous allons les ré-utiliser dans les sections qui vont suivre. |