This shows you the differences between two versions of the page.
|
alf:teme:tema1 [2020/02/24 20:29] diana.ghindaoanu [Ce que vous avez à faire] |
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: **1 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 39: | Line 39: | ||
| | pwr | deux nombres | Calcule a à la puissance b | node main.js 30 9 pwr| | | pwr | deux nombres | Calcule a à la puissance b | node main.js 30 9 pwr| | ||
| | sort | une liste de nombres (minimum 1) | Trie les nombres en ordre croissant | node main.js 2 4 3 5 6 7 3 sort| | | sort | une liste de nombres (minimum 1) | Trie les nombres en ordre croissant | node main.js 2 4 3 5 6 7 3 sort| | ||
| - | | rev | une liste de nombres (minimum 1) | Trie les nombres en ordre décroissant | node main.js 2 4 3 5 6 7 3 | | + | | rev | une liste de nombres (minimum 1) | Trie les nombres en ordre décroissant | node main.js 2 4 3 5 6 7 3 rev | |
| - | | uniq | une liste de nombres (minimum 1) | Imprime tous les numéros une seule fois | node main.js unique 2 4 3 5 6 7 3 | | + | | uniq | une liste de nombres (minimum 1) | Imprime tous les numéros une seule fois | node main.js 2 4 3 5 6 7 3 uniq | |
| - | | max | une liste de nombres (minimum 1) | Trouve la plus grande valeur | node main.js maximum 2 4 3 5 6 7 3 rev | | + | | max | une liste de nombres (minimum 1) | Trouve la plus grande valeur | node main.js 2 4 3 5 6 7 3 max| |
| | min | une liste de nombres (minimum 1) | Trouve la plus petite valeur | node main.js 2 4 3 5 6 7 3 min| | | min | une liste de nombres (minimum 1) | Trouve la plus petite valeur | node main.js 2 4 3 5 6 7 3 min| | ||
| | cos | un nombre | Calcule le cosinus d'un angle avec une valeur donnee | node main.js 45 cos | | | cos | un nombre | Calcule le cosinus d'un angle avec une valeur donnee | node main.js 45 cos | | ||
| Line 82: | Line 82: | ||
| sin | sin | ||
| </code> | </code> | ||
| - | |||
| - | <html> | ||
| - | <center> | ||
| - | <iframe src="https://shellrecorder.org/player/?filename=aHR0cHM6Ly9yYXdnaXQuY29tL2FsZXhhbmRydXJhZG92aWNpL2FsZjIwMTgvbWFzdGVyL0Rldm9pcnMvY2FsY3VsYXRvci9zaGVsbC9leGFtcGxlLnNoZWxscmVjb3JkZXI/cmF3PXRydWU=" frameborder="0" width="500" height="350"></iframe> | ||
| - | </center> | ||
| - | </html> | ||
| ==== Erreurs ==== | ==== Erreurs ==== | ||
| Line 98: | 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 multiply 10 | + | node main.js 10 mul |
| # cela va imprimer (exactement) | # cela va imprimer (exactement) | ||
| - | ERROR: multiply command uses at least 2 parameters | + | ERROR: mul command uses at least 2 parameters |
| </code> | </code> | ||
| Line 110: | Line 104: | ||
| - | Pour ** 0,25p ** points supplémentaires, implémentez la calculatrice pour des opérations avec des nombres complexes pour add, sub et mul. Le format d'entrée sera: | + | Pour ** 0,25p ** points supplémentaires, implémentez la calculatrice pour des opérations avec des nombres complexes pour +, - et mul. Le format d'entrée sera: |
| <code bash> | <code bash> | ||
| #add a1+b1i with a2+b2i | #add a1+b1i with a2+b2i | ||
| - | node main.js addition a1 b1 a2 b2 complex | + | node main.js a1 b1 a2 b2 complex + |
| #subtract a1+b1i with a2+b2i | #subtract a1+b1i with a2+b2i | ||
| - | node main.js subtraction a1 b1 a2 b2 complex | + | node main.js a1 b1 a2 b2 complex - |
| #multiply a1+b1i with a2+b2i | #multiply a1+b1i with a2+b2i | ||
| - | node main.js multiply a1 b1 a2 b2 complex | + | node main.js a1 b1 a2 b2 complex mul |
| </code> | </code> | ||
| Line 129: | 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 140: | 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 146: | 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> | ||