Exercice Corrigé Langage Ruby – Partie 2

Avec des exercices corrigés en langage Ruby, vous pratiquerez divers concepts du langage Ruby. Vous commencerez par des exercices du langage Ruby de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 
Utiliser l’éditeur Ruby pour résoudre les exercices : (Cliquez sur l’onglet input si vous souhaitez entrer des valeurs, cliquez sur Run pour exécuter votre programme, le résultat sera affichée sur l’onglet output).
 

Exercice 1:

Créez une fonction qui prend un tableau et renvoie le dernier élément du tableau.

Exemple:

getLastElem([1, 2, 3, 4]) ➞ 4

getLastElem(['Alex', 'Bob', 'Emily']) ➞ 'Emily'

getLastElem([false, true, false]) ➞ false
Solution:

# Déclare une méthode appelée "getLastElem"
# qui reçoit un tableau "tab" en paramètre.
# La méthode retourne le dernier élément du tableau.
def getLastElem(tab)

  # L'index -1 permet d'accéder au dernier élément du tableau.
  # En Ruby, les indices négatifs commencent à partir de la fin :
  # -1 = dernier élément, -2 = avant-dernier élément, etc.
  tab[-1]
end
 

Exercice 2: Concaténer deux chaînes en une seule chaîne

Avec deux chaînes, str1 et str2, renvoyez une seule chaîne au format « str1 | str2 ».

Exemple:

concatStr("True", "False") ➞ "True | False"

concatStr("On", "Off") ➞ "On | Off"

concatStr("A", "B") ➞ "A | B"
Solution:

# Déclare une méthode appelée "concatStr"
# qui reçoit deux chaînes de caractères "str1" et "str2".
# La méthode retourne une seule chaîne contenant les deux textes.
def concatStr(str1, str2)

  # Utilise l'interpolation de chaînes de caractères
  # pour insérer "str1" et "str2" dans le texte.
  # " | " est utilisé comme séparateur entre les deux chaînes.
  return "#{str1} | #{str2}"
end
 

Exercice 3:

Créez une fonction qui prend un tableau de nombres et renvoie le plus petit nombre du tableau.
 
Exemple:

getMin([5, 8, 1, 7]) ➞ 1

getMin([9, -1, -10, 10]) ➞ -10

getMin([-1, 0, 1]) ➞ -1

getMin([100]) ➞ 100
Solution:

# Déclare une méthode appelée "getMin"
# qui reçoit un tableau "tab" en paramètre.
# La méthode retourne la plus petite valeur du tableau.
def getMin(tab)

  # Utilise la méthode "min" pour rechercher
  # et retourner la plus petite valeur du tableau.
  tab.min
end
 
 

Exercice 4:

Créez une fonction qui prend un tableau de nombres, et renvoie le plus grand nombre du tableau.

Exemple:

getMax([6, 9, 1, 2]) ➞ 9

getMax([10, 66, 12, 98]) ➞ 98

getMax([1, 1, 1, 1, 1]) ➞ 1
Solution:

# Déclare une méthode appelée "getMax"
# qui reçoit un tableau "tab" en paramètre.
# La méthode retourne la plus grande valeur du tableau.
def getMax(tab)

  # Utilise la méthode "max" pour rechercher
  # et retourner la plus grande valeur du tableau.
  tab.max
end
 

Exercice 5: Le problème du fermier

Dans ce défi, un fermier vous demande de lui dire combien de pattes peuvent être comptées parmi tous ses animaux. Il y a trois espèces:

  • poulets = 2 pattes
  • vaches = 4 pattes
  • chevaux = 4 pattes

Le fermier a compté ses animaux et il vous donne un sous-total pour chaque espèce. Vous devez implémenter une fonction qui renvoie le nombre total de pattes de tous les animaux.

L’ordre des animaux transmis à la fonction est nbrsPattes(poulets, vaches, chevaux).

Exemple:

nbrsPattes(1, 4, 2) ➞ 26

nbrsPattes(2, 2, 2) ➞ 20

nbrsPattes(2, 0, 3) ➞ 16

N’oubliez pas que le fermier veut connaître le nombre total de pattes et non pas le nombre total d’animaux.

Solution:

# Déclare une méthode appelée "nbrsPattes"
# qui reçoit trois paramètres :
# "poulets" représente le nombre de poulets,
# "vaches" représente le nombre de vaches,
# "chevaux" représente le nombre de chevaux.
# La méthode retourne le nombre total de pattes.
def nbrsPattes(poulets, vaches, chevaux)

  # Un poulet possède 2 pattes.
  # Une vache possède 4 pattes.
  # Un cheval possède 4 pattes.
  #
  # La formule :
  # 2 × (poulets + 2 × (vaches + chevaux))
  #
  # permet de calculer le nombre total de pattes.
  2 * (poulets + 2 * (vaches + chevaux))
end
 

Exercice 6:

Écrivez une fonction pour inverser un tableau.

Exemple:

reverseTab([1, 2, 3]) ➞ [3, 2, 1]

reverseTab([1, 1, 2, 2, 3]) ➞ [3, 2, 2, 1, 1]

reverseTab([]) ➞ []
Solution:

# Déclare une méthode appelée "reverseTab"
# qui reçoit un tableau "tab" en paramètre.
# La méthode retourne le tableau dans l'ordre inverse.
def reverseTab(tab)

  # Utilise la méthode "reverse" pour inverser
  # l'ordre des éléments du tableau.
  return tab.reverse
end
 
 

Exercice 7:

Créez une fonction qui prend un tableau de nombres et renvoie un nouveau tableau, trié par ordre croissant (du plus petit au plus grand).
 
Exemple:

sort([6, 8, 1, 3, 7]) ➞ [1, 3, 6, 7, 8]

sort([-1, 9, 3, -9, -8, 8]) ➞ [-9, -8, -1, 3, 8, 9]

sort([]) ➞ []
Solution:

# Déclare une méthode appelée "sortAsc"
# qui reçoit un tableau "tab" en paramètre.
# La méthode retourne le tableau trié dans l'ordre croissant.
def sortAsc(tab)

  # Utilise la méthode "sort" pour trier
  # les éléments du tableau du plus petit au plus grand.
  tab.sort
end
 

Exercice 8:

Implémenter une fonction qui renvoie la distance donnée en kilomètres convertie en miles. Vous devez arrondir le résultat jusqu’au quatrième chiffre décimal.

Exemple:

toMiles(5) ➞ 3.10686

toMiles(7) ➞ 4.3496

toMiles(10) ➞ 6.21371
Solution:

# Déclare une méthode appelée "toMiles"
# qui reçoit une distance "k" en kilomètres.
# La méthode retourne la distance convertie en miles.
def toMiles(k)

  # Convertit les kilomètres en miles.
  # 1 kilomètre correspond à environ 0,621371 mile.
  # "round(5)" arrondit le résultat à 5 chiffres après la virgule.
  k * 0.621371
     .round(5)
end
 

Exercice 9:

Créez une fonction qui prend un nom et renvoie un message d’accueil sous la forme d’une chaîne.

Exemple:

msg("Thomas") ➞ "Hello Thomas, Welcome to WayToLearnX!"

msg("Alex") ➞ "Hello Alex, Welcome to WayToLearnX!"

msg("Emily") ➞ "Hello Emily, Welcome to WayToLearnX!"
Solution:

# Déclare une méthode appelée "msg"
# qui reçoit une chaîne de caractères "str" en paramètre.
# La méthode retourne un message de bienvenue personnalisé.
def msg(str)

  # Concatène le texte "Hello " avec la valeur de "str",
  # puis ajoute le message de bienvenue.
  # Ruby retourne automatiquement la dernière expression.
  "Hello " + str + ", Welcome to WayToLearnX!"
end

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *