This shows you the differences between two versions of the page.
sde2:laboratoare:01_rust [2023/03/07 00:05] cristiana.andrei [Resources] |
sde2:laboratoare:01_rust [2023/03/07 07:57] (current) cristiana.andrei [Exercises] |
||
---|---|---|---|
Line 215: | Line 215: | ||
<note> | <note> | ||
- | Pour comprendre mieux comment definir un enum, lisez [[https://doc.rust-lang.org/book/ch06-01-defining-an-enum.html|cette]] section du chapitre 5! | + | Pour comprendre mieux comment definir un enum, lisez [[https://doc.rust-lang.org/book/ch06-01-defining-an-enum.html|cette]] section du chapitre 6! |
</note> | </note> | ||
Line 434: | Line 434: | ||
===== Exercises ===== | ===== Exercises ===== | ||
- Écrivez une fonction qui reçoit deux nombres comme arguments et les divise. Gérez le cas de la division par zéro à l'aide du type //Option//. | - Écrivez une fonction qui reçoit deux nombres comme arguments et les divise. Gérez le cas de la division par zéro à l'aide du type //Option//. | ||
- | - Écrivez un programme qui reçoit deux nombres de la ligne de commande et les divise. Écrivez le résultat à l'écran. S'il y a une erreur, retournez -1 depuis main. | + | - Écrivez un programme qui reçoit deux nombres de la ligne de commande et les divise. Écrivez le résultat à l'écran. S'il y a une erreur, retournez -1 depuis main. //Hint: [[https://doc.rust-lang.org/book/ch09-02-recoverable-errors-with-result.html|Result]] et [[https://doc.rust-lang.org/std/process/fn.exit.html#:~:text=Function%20std%3A%3Aprocess%3A%3Aexit&text=Terminates%20the%20current%20process%20with,for%20consumption%20by%20another%20process.|std::process::exit]] // |
- Écrivez un programme qui reçoit en paramètres une commande et deux nombres. La commande est l'une des suivantes : add, sub, mul, div, rem. Écrivez le résultat à l'écran ou renvoyez une erreur. | - Écrivez un programme qui reçoit en paramètres une commande et deux nombres. La commande est l'une des suivantes : add, sub, mul, div, rem. Écrivez le résultat à l'écran ou renvoyez une erreur. | ||
- | - Écrivez un programme similaire au précédent, à l'exception qu'il prend la commande de la variable d'environnement CMD. Un exemple d'utilisation est //CMD=sub ./my-program 5 3//. | + | - Écrivez un programme similaire au précédent, à l'exception qu'il prend la commande de la variable d'environnement CMD. Un exemple d'utilisation est //CMD=mul cargo run 5 3//. //Hint: Utilisez [[https://doc.rust-lang.org/std/env/fn.var.html|env::var()]] pour prendre la valeur de CMD//. |
- Écrivez un programme qui prend comme premier argument une commande suivie d'une liste de nombres. Les commandes peuvent être add, sub, mul, div, avg (moyenne), sort, unique. | - Écrivez un programme qui prend comme premier argument une commande suivie d'une liste de nombres. Les commandes peuvent être add, sub, mul, div, avg (moyenne), sort, unique. | ||
- Modifiez le programme afin qu'il n'exécute pas les commandes de la fonction principale, mais que chaque commande soit exécutée dans sa propre fonction. Les fonctions reçoivent comme arguments les entrées exactes de la ligne de commande (chaînes, pas de nombres). | - Modifiez le programme afin qu'il n'exécute pas les commandes de la fonction principale, mais que chaque commande soit exécutée dans sa propre fonction. Les fonctions reçoivent comme arguments les entrées exactes de la ligne de commande (chaînes, pas de nombres). | ||