This shows you the differences between two versions of the page.
|
alf:teme:tema1 [2020/02/24 23:04] alexandru.radovici |
alf:teme:tema1 [2023/03/16 18:24] (current) alexandra.negoita02 [Mentions générales] |
||
|---|---|---|---|
| Line 4: | Line 4: | ||
| ===== Mentions générales ===== | ===== Mentions générales ===== | ||
| <note important> | <note important> | ||
| - | Date limite: **8 Mars, 23:55**\\ | + | Date limite: **30 Mars, 23:55**\\ |
| Points: **1 point** de la note finale\\ | Points: **1 point** de la note finale\\ | ||
| - | Le devoir est à rendre sur: [[https://vmchecker.cs.pub.ro|vmchecker.cs.pub.ro]]\\ | ||
| Rendre en retard: **0.5 points / jour** (maximum 4 jours)\\ | Rendre en retard: **0.5 points / jour** (maximum 4 jours)\\ | ||
| + | Lien: [[https://classroom.github.com/a/VCqp692Z|Devoir 1]] | ||
| </note> | </note> | ||
| Line 13: | Line 13: | ||
| Le but du devoir est d'écrire une calculatrice qui prend des paramètres de la ligne de commande. | Le but du devoir est d'écrire une calculatrice qui prend des paramètres de la ligne de commande. | ||
| - | La calculatrice supportera les opérations suivantes: absolute, addition, division, display, maximum, minimum, modulo, multiply, power, reverse, sort, sqrt, subtraction, unique, sinus, cosinus. | + | La calculatrice supportera les opérations suivantes: absolute, addition, division, help, maximum, minimum, modulo, multiply, power, reverse, sort, sqrt, subtraction, unique, sinus, cosinus. |
| Un exemple de calcul de 3 à la puissance 2 est: | Un exemple de calcul de 3 à la puissance 2 est: | ||
| Line 29: | Line 29: | ||
| ^ Op ^ Paramètres ^ Description ^ Exemple ^ | ^ Op ^ Paramètres ^ Description ^ Exemple ^ | ||
| | | aucun | Imprime sur l'écran le logo et la liste des opérations disponibles | node main.js | | | | aucun | Imprime sur l'écran le logo et la liste des opérations disponibles | node main.js | | ||
| - | | aide | aucun | Imprime sur l'écran le logo et la liste des opérations disponibles | node main.js aide | | + | | help| aucun | Imprime sur l'écran le logo et la liste des opérations disponibles | node main.js help | |
| | + | une liste de nombres (minimum 2) | Ajoute les numéros | node main.js 2 4 3 5 6 7 3 +| | | + | une liste de nombres (minimum 2) | Ajoute les numéros | node main.js 2 4 3 5 6 7 3 +| | ||
| | - | une liste de nombres (minimum 2) | Soustrait les nombres | node main.js 2 4 3 5 6 7 3 -| | | - | une liste de nombres (minimum 2) | Soustrait les nombres | node main.js 2 4 3 5 6 7 3 -| | ||
| Line 92: | Line 92: | ||
| node main.js list | node main.js list | ||
| # cela va imprimer (exactement) | # cela va imprimer (exactement) | ||
| - | ERROR: this command does not exist, use display to see available commands | + | ERROR: this command does not exist, use help to see available commands |
| node main.js 10 mul | node main.js 10 mul | ||
| Line 123: | Line 123: | ||
| - Vous ne pouvez pas utiliser // RegEx // ou toute autre bibliothèque qui utiliserait des expressions régulières | - Vous ne pouvez pas utiliser // RegEx // ou toute autre bibliothèque qui utiliserait des expressions régulières | ||
| - | - Les fichiers doivent avoir "use strict" | ||
| - | - Vos fichiers doivent passer jshint (avec node: true, esnext: true) | ||
| - Le code source doit être indenté (-0.1p) | - Le code source doit être indenté (-0.1p) | ||
| - Vous devez écrire un fichier nommé Readme et expliquer comment vous avez écrit le devoir (-0.1p) | - Vous devez écrire un fichier nommé Readme et expliquer comment vous avez écrit le devoir (-0.1p) | ||
| Line 134: | Line 132: | ||
| ===== Questions ===== | ===== Questions ===== | ||
| - | Si vous avez des questions concernant le devoir, posez-les en postant un //issue// sur le github [[https://github.com/upb-fils/alf.git|repository]] avec le format // [calculatrice] <le titre de votre question> //. Vous aurez besoin d'un compte github pour cela. | + | Si vous avez des questions concernant le devoir, posez-les en postant un //issue// sur le github [[https://github.com/UPB-FILS-ALF|repository]] avec le format // [calculatrice] <le titre de votre question> //. Vous aurez besoin d'un compte github pour cela. |
| <note warning> | <note warning> | ||
| Line 140: | Line 138: | ||
| </note> | </note> | ||
| - | Si vous souhaitez recevoir un e-mail lorsque des problèmes sont signalés ou lorsqu'il y a de nouveaux messages, accédez au site github [[https://github.com/upb-fils/alf.git|repository]] et cliquez //Watch//. | + | Si vous souhaitez recevoir un e-mail lorsque des problèmes sont signalés ou lorsqu'il y a de nouveaux messages, accédez au site github [[https://github.com/UPB-FILS-ALF/questions|repository]] et cliquez //Watch//. |
| | | ||
| - | ===== Tests ===== | ||
| - | Les devoirs seront testés automatiquement en utilisant un ensemble de tests publics et privés. | ||
| - | |||
| - | ==== Tests publics ==== | ||
| - | |||
| - | Vous pouvez télécharger les tests publics du GitHub [[https://github.com/upb-fils/alf.git|repository]]. | ||
| - | |||
| - | Pour exécuter les tests, téléchargez le contenu du repository dans le directoire avec les devoirs. Entrez dans le directoire // Devoirs/calculator/verify // et exécutez ./run_all.sh .. . | ||
| - | |||
| - | Copiez le contenu du devoir dans le dossier // Devoirs/caclulator //. | ||
| - | |||
| - | <code bash> | ||
| - | cd Devoirs/calculator/verify | ||
| - | rm -rf node_modules | ||
| - | ./run_all.sh .. | ||
| - | </code> | ||
| - | |||
| - | Vous aurez besoin de //bash// pour ça. Vous pouvez utiliser Linux ou [[https://msdn.microsoft.com/en-us/commandline/wsl/install_guide|Windows Linux Subsystem]]. | ||
| - | |||
| - | <note> | ||
| - | Pour installer nodejs sous Linux ou Windows Linux Subsystem, procédez comme suit: | ||
| - | |||
| - | <code bash> | ||
| - | wget https://nodejs.org/dist/v10.15.1/node-v10.15.1-linux-x64.tar.xz | ||
| - | tar xvfJ node-v10.15.1-linux-x64.tar.xz | ||
| - | cd node-v10.15.1-linux-x64 | ||
| - | sudo cp -R -v * /usr | ||
| - | </code> | ||
| - | | ||
| - | </note> | ||
| - | |||
| - | ==== Tests privés ==== | ||
| - | Lors du téléchargement des devoirs, il est possible qu'il y a des tests privés à faire passer. //vmchecker// les exécutera. | ||
| - | |||
| - | <note> | ||
| - | Vous pouvez toujours télécharger les devoirs autant de fois que vous le souhaitez jusqu'à la date limite. Cela va exécuter tous les tests pour vous et va afficher le résultat. | ||
| - | </note> | ||
| - | |||
| - | ===== Télécharger les devoirs ===== | ||
| - | Les devoirs doivent être téléchargés sur [[https://vmchecker.cs.pub.ro|vmchecker]]. | ||
| - | Connectez-vous avec votre nom d'utilisateur moodle, sélectionnez le cours //Automates et Langages Formelles (FILS)// et téléchargez [[# homework-archive | homework archive]]. | ||
| - | |||
| - | ==== Readme ==== | ||
| - | Le fichier //readme// a le format suivant: | ||
| - | |||
| - | <code> | ||
| - | Nom complet | ||
| - | Groupe | ||
| - | |||
| - | Une explication comment vous avez écrit le devoir, ce que vous avez utilisé, les idées principales. | ||
| - | </code> | ||
| - | |||
| - | |||
| - | ==== Archivage de devoir ==== | ||
| - | Pour télécharger votre devoir, suivez les instructions suivantes: | ||
| - | |||
| - | - Créez une archive zip (pas rar, ace, 7zip ou autre) contenant: | ||
| - | * votre fichier main javascript (identique à celui spécifié dans package.json) | ||
| - | * vos fichiers javascript (*.js) | ||
| - | * le fichier package.json | ||
| - | * le fichier Readme | ||
| - | - Connectez-vous avec [[https://vmchecker.cs.pub.ro|vmchecker]] | ||
| - | - sélectionner le cours //Automates et Langages Formelles (FILS)// | ||
| - | - sélectionnez //1. Calculator// | ||
| - | - télécharger l'archive | ||
| - | |||
| - | |||
| - | <note> | ||
| - | L'archive doit contenir les fichiers dans sa racine, pas dans un dossier. NE PAS archiver un dossier avec les fichiers, archiver DIRECTEMENT les fichiers. | ||
| - | |||
| - | NE PAS inclure //node_modules//. | ||
| - | </note> | ||
| - | |||
| - | Lorsque l'archive est téléchargée, //vmchecker// va exécuter: | ||
| - | |||
| - | <code bash> | ||
| - | unzip archive.zip homework | ||
| - | cd homework | ||
| - | npm install | ||
| - | echo '{ "node":true, "esnext":true }' > .jshintrc | ||
| - | jshint *.js | ||
| - | </code> | ||