Défis supplémentaires
Suite de Fibonnaci (1/2)
Créer un programme qui prends un nombre N en entrée et qui affiche les N premières valeures de la suite de Fibonnaci.
Suite de Fibonnaci (1/2)
Remarque :
En bash, les variables sont considérée par défaut comme du texte. Pour additionner deux nombres, il faut faire :
resultat=$(( $nombre1 + $nombre2 ))
Écrire le script correspondant.
Suite de Fibonnaci (1/2)
#! /usr/bin/bash
echo "Entrer un rang n : "
read n
u0=0
u1=1
echo "u0 = $u0"
if [ $n -eq 0 ]
then
# on s'arrête ici si n = 0
exit 0
fi
echo "u1 = $u1"
if [ $n -eq 1 ]
then
# on s'arrête ici si n = 1
exit 0
fi
for i in $(seq 2 $n)
do
u2=$(($u0 + $u1))
echo "u$i = $u2"
u0=$u1
u1=$u2
done
Suite de Fibonnaci (2/2)
Créer un programme qui prends un nombre N en entrée et qui affiche les toutes les valeurs de la suite de Fibonnaci inférieures ou égales à N.
Écrire le script correspondant.
Suite de Fibonnaci (1/2)
#! /usr/bin/bash
echo "Entrer un nombre n : "
read n
u0=0
u1=1
echo "u0 = $u0"
if [ $n -eq 0 ]
then
# on s'arrête ici si n = 0
exit 0
fi
echo "u1 = $u1"
if [ $n -eq 1 ]
then
# on s'arrête ici si n = 1
exit 0
fi
i=1
while [ $u2 -le $n ]
do
echo "u$i = $u2"
i=$(( i + 1 ))
u2=$(($u0 + $u1))
u0=$u1
u1=$u2
done
Secret
Révéler un secret à l'utilisateur en fonction d'un mot de passe défini en variable d'environnement.
On doit vérifier que le mot de passe est bien défini sinon il y a a une erreur.
Secret
Remarque :
on peut passer une variable en paramètre à un exécutable en faisant :
NOM_VARIABLE=VALEUR commande
Écrire le script correspondant.
Secret
#! /usr/bin/bash
if [ -z "$MOT_DE_PASSE" ]
then
echo "Aucun mot de passe n'est défini"
exit 1
fi
read PWD_DONNE
if [ "$PWD_DONNE" = "$MOT_DE_PASSE" ]
then
echo "Bravo tu as trouvé"
exit 0
else
echo "Tu n'as pas trouvé"
exit 1
fi
Jeu + ou -
Coder un jeu du + ou - . Générer un nombre aléatoire. L'utilisateur teste une valeur, le programme répond si la valeur à deviner est supérieure ou inférieure.
Bonus : permettre de choisir le maximum
Jeu + ou -
Remarque :
la variable RANDOM génère un nombre aléatoire,
L'opération modulo n permet d'obtenir le reste de la divison entière par n
Écrire le script correspondant.
Jeu + ou -
echo "Quel est le maximum ?"
read MAX_NUMBER
GENERATED_NUMBER=$((RANDOM % (MAX_NUMBER + 1)))
GIVEN_NUMBER=-1
while [ "$GIVEN_NUMBER" -ne "$GENERATED_NUMBER" ]
do
echo "Vous devez trouver un nombre entre 0 et $MAX_NUMBER"
echo "Quelle est votre réponse ?"
read GIVEN_NUMBER
if [ "$GIVEN_NUMBER" -lt "$GENERATED_NUMBER" ]
then
echo "C'est plus !"
elif [ "$GIVEN_NUMBER" -gt "$GENERATED_NUMBER" ]
then
echo "C'est moins !"
else
echo "Vous avez gagné !"
fi
done