Exercice Corrigé Langage Ruby – Partie 3

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 renvoie TRUE si une chaîne contient des espaces. Sinon renvoie FALSE.

Exemple:

containSpaces("Thomas") ➞ false

containSpaces("Hello World!") ➞ true

containSpaces(" ") ➞ true

containSpaces("") ➞ false
Solution:

# Déclare une méthode appelée "containSpaces"
# qui reçoit une chaîne de caractères "str" en paramètre.
# La méthode retourne true si la chaîne contient un espace,
# sinon elle retourne false.
def containSpaces(str)

  # Recherche un ou plusieurs caractères d'espacement
  # dans la chaîne avec une expression régulière.
  #
  # "\s" représente un caractère d'espacement
  # et "+" signifie "un ou plusieurs".
  #
  # "match" retourne un objet MatchData si une correspondance
  # est trouvée, sinon il retourne nil.
  #
  # "!!" convertit le résultat en une valeur booléenne :
  # true si une correspondance est trouvée, false sinon.
  !!str.match(/\s+/)
end
 

Exercice 2:

Écrivez une fonction qui prend un entier et:

  • Si le nombre est un multiple de 3, retournez « Hello ».
  • Si le nombre est un multiple de 5, retournez « World ».
  • Si le nombre est un multiple de 3 et de 5, retournez « Hello World ».

Exemple:

checkNbr(3) ➞ "Hello"

checkNbr(5) ➞ "World"

checkNbr(15) ➞ "Hello World"
Solution:

# Déclare une méthode appelée "checkNbr"
# qui reçoit un nombre "n" en paramètre.
# La méthode retourne un message selon que "n"
# est divisible par 3, par 5 ou par les deux.
def checkNbr(n)

  # Vérifie si "n" est divisible à la fois par 3 et par 5.
  if n % 3 == 0 && n % 5 == 0
    
    # Si les deux conditions sont vraies,
    # retourne "Hello World".
    return "Hello World"

  # Vérifie ensuite si "n" est uniquement divisible par 3.
  elsif n % 3 == 0
    
    # Retourne "Hello" si "n" est divisible par 3.
    return "Hello"

  # Vérifie si "n" est divisible par 5.
  else
    
    # Retourne "World" si "n" est divisible par 5.
    return "World"
  end
end
 

Exercice 3:

Créez une fonction qui prend un tableau d’éléments, supprime les doublons et renvoie un nouveau tableau dans le même ordre séquentiel que l’ancien tableau (sans les doublons).
 
Exemple:

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

suppDoublons(["A", "A", "A", "B", "C"]) ➞ ["A", "B", "C"]

suppDoublons(["Ruby", "Java", "PHP"]) ➞ ["Ruby", "Java", "PHP"]
Solution:

# Déclare une méthode appelée "suppDoublons"
# qui reçoit un tableau "tab" en paramètre.
# La méthode retourne un tableau sans éléments en double.
def suppDoublons(tab)

  # Utilise la méthode "uniq" pour supprimer
  # les valeurs dupliquées du tableau.
  # Les éléments apparaissent une seule fois dans le résultat.
  tab.uniq
end
 
 

Exercice 4:

Créez une fonction qui renvoie « Majuscule » si toutes les lettres d’un mot sont en majuscules, « Minuscule » si toutes les lettres d’un mot sont en minuscule et « Mix » s’il contient à la fois des majuscules et des minuscules.

Exemple:

caseOf("WAYTOLEARNX") ➞ "Majuscule"

caseOf("waytolearnx") ➞ "Minuscule"

caseOf("WayToLearnX") ➞ "Mix"
Solution:

# Déclare une méthode appelée "caseOf"
# qui reçoit une chaîne de caractères "s" en paramètre.
# La méthode indique si la chaîne est en minuscule,
# en majuscule ou mélange les deux.
def caseOf(s)

  # Vérifie si la chaîne est entièrement en minuscules.
  # Si c'est le cas, retourne "Minuscule".
  #
  # Sinon, vérifie si la chaîne est entièrement en majuscules.
  # Si c'est le cas, retourne "Majuscule".
  #
  # Si aucune des deux conditions n'est vraie,
  # retourne "Mix".
  s == s.downcase ? 'Minuscule' : s == s.upcase ? 'Majuscule' : 'Mix'
end
 

Exercice 5:

Créez une fonction qui prend un tableau et renvoie la somme de tous les nombres du tableau.

Exemple:

sum([1, 1, 1]) ➞ 3

sum([1, 2, 3]) ➞ 6

sum([-2, 2, 1]) ➞ 1
Solution:

# Déclare une méthode appelée "sum"
# qui reçoit un tableau "tab" en paramètre.
# La méthode retourne la somme de tous les éléments du tableau.
def sum(tab)

  # Initialise la variable "s" à 0.
  # Elle sera utilisée pour calculer la somme.
  s = 0

  # Parcourt chaque élément du tableau.
  # "n" représente l'élément courant.
  tab.each do |n|

    # Ajoute la valeur de "n" à la somme.
    s += n
  end

  # Retourne la somme totale.
  return s
end
 

Exercice 6:

Créez une fonction qui prend une chaîne (un nom aléatoire). Si le dernier caractère du nom est un « s », retournez TRUE, sinon retournez FALSE.

Exemple:

checkS("Thomas") ➞ true

checkS("Ali") ➞ false

checkS("Alex") ➞ false

checkS("Alvis") ➞ true
Solution:

# Déclare une méthode appelée "checkS"
# qui reçoit une chaîne de caractères "str" en paramètre.
# La méthode retourne true si la chaîne se termine par "s",
# sinon elle retourne false.
def checkS(str)

  # Récupère le dernier caractère de la chaîne avec l'index -1.
  # Compare ensuite ce caractère avec "s".
  str[-1] == "s"
end
 
 

Exercice 7:

Créez une fonction qui prend un tableau de nombres et renvoie le minimum et le maximum dans un tableau [Min, Max].

Exemple:

getMinMax([8, 1, 9, 2, 6]) ➞ [1, 9]

getMinMax([22, 2]) ➞ [2, 22]

getMinMax([5]) ➞ [5, 5]
Solution:

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

  # Récupère la plus petite valeur avec "min"
  # et la plus grande valeur avec "max".
  # Retourne les deux valeurs sous forme de tableau.
  return [tab.min, tab.max]
end
 

Exercice 8: Nombre paire ou impaire

Créez une fonction qui prend un nombre comme argument et renvoie « pair » pour les nombres pairs et « impair » pour les nombres impairs.

Exemple:

check(2) ➞ "pair"

check(7) ➞ "impair"

check(22) ➞ "pair"
Solution:

# Déclare une méthode appelée "check"
# qui reçoit un nombre entier "n" en paramètre.
# La méthode retourne "pair" ou "impair".
def check(n)

  # Vérifie si "n" est divisible par 2.
  # Si le reste de la division est égal à 0,
  # le nombre est pair.
  # Sinon, le nombre est impair.
  n % 2 == 0 ? "pair" : "impair"
end
 

Exercice 9:

Créez une fonction qui prend un mot et détermine s’il est pluriel ou singulier. Un mot pluriel est celui qui se termine par « s ». S’il est pluriel renvoyer TRUE sinon FALSE.

Exemple:

check("enfants") ➞ true

check("filles") ➞ true

check("fille") ➞ false

check("enfant") ➞ false
Solution:

# Déclare une méthode appelée "check"
# qui reçoit une chaîne de caractères "str" en paramètre.
# La méthode retourne true si la chaîne se termine par "s",
# sinon elle retourne false.
def check(str)

  # Vérifie si la chaîne "str" se termine par le caractère "s".
  # "end_with?" retourne true si la condition est vraie,
  # sinon elle retourne false.
  str.end_with?("s")
end

Laisser un commentaire

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