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.
# 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 ».
# 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).
# 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.
# 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.
# 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.
# 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].
# 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.
# 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.
# 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