Échange de données 1

Réaliser chaque exercice dans un fichier Ruby distinct

  • Conserver les fichiers car ils seront réutilisés plus tard dans la session

Th3 L33+0R

Créer une fonction qui transforme en leet code une phrase fournie à la console par l'utilisateur.

  • Les minuscules deviennent des majuscule et inversement
  • Ajouter certaines règles de substitution selon votre inspiration du moment, par exemple: les 'e' deviennent des '3', les 't' des '+', les 'a' des '@', etc.
    • Explorer l'utilisation d'un hash pour stocker les transformations à appliquer.
  • Valider que l'utilisateur ne saisit pas une string vide ou seulement des espaces.
Sortie
Votre phrase: Je m'appelle James!

j3 M'@PP3LL3 j@M3$!

Un petit plus

Créer une fonction qui calcule et retourne la somme des nombres contenus dans un tableau reçu en paramètre

  • Valider que le paramètre est un tableau et n'inclure que les cases qui sont réellement une valeur numérique
  • Récupérer la valeur de retour de la fonction et l'afficher à la console
Sortie
Parametre: ["a", 1, 4, 6.5, "3", true]

Somme = 11.5
  • Créer une autre fonction qui permet de remplir le tableau via la saisie à la console et qui retourne un tableau
    • Continuer la saisie tant que la valeur n'est pas vide
    • Extraire cette fonction dans un autre fichier nommé input.rb et inclure ce fichier dans l'exercice avec require_relative
    • Attention lors de la saisie à la console, on recevra toujours une String, il faudra adapter le code pour accepter les valeurs pouvant être un nombre, ex: "42", "3.1416"
Sortie
Valeur? a
Valeur? 1
Valeur? 6.5
Valeur? 3
Valeur? 4
Valeur? 1
Valeur? true
Valeur?

Parametre: ["a", "1", "6.5", "3", "4", "1", "true"]

Somme = 15.5

Que des nombres

Dans un nouveau fichier only_numbers.rb, créer une fonction qui traite un tableau pour sélectionner seulement les valeurs qui peuvent être considérées comme des nombres, convertir en valeur numérique, éliminer les répétitions et trier en ordre croissant

  • Réutiliser la fonction de input.rb pour remplir le tableau via la console
  • Valider que le paramètre est un tableau
  • Retourner un hash contenant 2 informations: input, le tableau saisis, et processed, le tableau traité
  • Afficher le résutat de la fonction à la console sous forme de String en séparant chaque valeur par ' | ', dans le programme principal

👀 RTFM

Sortie
Valeur? a
Valeur? 1
Valeur? 6.5
Valeur? 3
Valeur? 4
Valeur? 1
Valeur? true
Valeur?

Saisie: ["a", "1", "6.5", "3", "4", "1", "true"]

1 | 3 | 4 | 6.5

Bonjour!

Créer une fonction qui reçoit le prénom, le nom et l’année de naissance d'un individu. Afficher ensuite un message à la console selon le format:

  • Utiliser les paramètres nommés pour identifier le prénom, le nom et l'année
  • Tester la fonction capitalize pour afficher proprement le prénom et le nom
  • Récupérer l'année courante avec Date.today.year et calculer l'âge
    • Vous devrez importer le module Date avec require 'date'
  • Le [status] est déterminé selon l’âge:
    • < 25 : jeune
    • < 50 : plus tout jeune
    • < 75 : vieillissant
    • >= 75 : vieux
  • Valider les paramètres reçus, Prénom et Nom sont des string, Année est un nombre entier inférieur à l'année courante.
Sortie
Bonjour [Prénom] [Nom], vous avez [X] ans.
Vous êtes [status]!
  • Via une autre fonction, saisir les données à la console en validant que l'utilisateur ne fourni pas une string vide ou une année de naissance supérieure ou égale à l'année courante
  • Analyser votre code et extraire dans des fonctions les sections qui se répètent
  • Saisir la date de naissance complète(Date.strptime) à la console pour calculer l'âge
    • Afficher la date de naissance au format long(Date.strftime), ex: 'Monday February 12 2017'

Ruby koans

Pour continuer à explorer Ruby, expérimentez avec ces énigmes pour trouver une solution qui satisfait le résultat attendu.

👉 Ruby koans