Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sde2:teme:tema_ro_2_microbit_busybox [2021/03/22 19:45]
ioana_maria.culic [Comenzi suportate]
sde2:teme:tema_ro_2_microbit_busybox [2021/04/06 12:25] (current)
ioana_maria.culic [Comenzi suportate]
Line 6: Line 6:
 Deadline: **7 Aprilie, ora 23:55**\\ Deadline: **7 Aprilie, ora 23:55**\\
 Punctaj: **1 punct** din notă\\ Punctaj: **1 punct** din notă\\
-Încărcarea temei: ​TODO\\ +Încărcarea temei: ​[[https://​classroom.github.com/​a/​1owyePFX|Devoir 2]]
-Încărcarea cu întârziere**1 punct zi** (maxim 4 zile)\\+
 </​note>​ </​note>​
  
Line 20: Line 19:
  
   - Tema trebuie să conțină un fișier Readme în care să explicați cum ații făcut tema **(-0.1p)**.   - Tema trebuie să conțină un fișier Readme în care să explicați cum ații făcut tema **(-0.1p)**.
-  - Tema trebuie implementată folosind limbajul ​Python și doar folosind funcții POSIX (biblioteca Python **[[https://​docs.python.org/​3/​library/​os.html|os]]**). Orice alte implementări vor duce la anularea temei **(0 puncte)**.+  - Tema trebuie implementată folosind limbajul ​MicroPython. Orice alte implementări vor duce la anularea temei **(0 puncte)**.
  
 <note warning> <note warning>
-Folosiți doar biblioteca Python ​**[[https://​docs.python.org/3/library/​os.html|os]]**, nu biblioteca Python posix.+Folosiți doar bibliotecile MicroPython ​**[[https://​microbit-micropython.readthedocs.io/en/v1.0.1/​os.html|os]]** ​și [[https://​microbit-micropython.readthedocs.io/​en/​v1.0.1/​microbit_micropython_api.html|microbit]].
 </​note>​ </​note>​
  
Line 74: Line 73:
       * **on** - luminează LED-ul       * **on** - luminează LED-ul
       * **off** - stinge LED-ul       * **off** - stinge LED-ul
-      * **blink <​interval>​ <​count>​** - face LED-ul să clipească la intervalul ''​interval''​ milisecunde de ''​count''​ ori+      * **blink <​interval>​ <​count>​** - face LED-ul să clipească la intervalul ''​interval''​ milisecunde de ''​count''​ ori. Valoarea pentru ''​count''​ va fi în intervalul 0-20.
       * **toggle** - aduce LED-ul în starea opusă (dacă LED-ul este pornit, îl oprește, iar dacă este oprit, îl pornește)       * **toggle** - aduce LED-ul în starea opusă (dacă LED-ul este pornit, îl oprește, iar dacă este oprit, îl pornește)
 +      * **brightness [set <​val>​]** - folosit fără parametrul ''​set'',​ afișează luminozitatea LED-ului specificat
 +          * **set <​val>​** - dacă se folosește parametru set se va seta luminozitatea la valoarea ''​val'',​ undeva ''​val''​ este un număr întreg 0-9, iar valoarea afișată în consolă este noua luminozitate
 +
 +Comanda va afișa următoarele erori pentru următoarele cazuri:
 +  * **Invalid LED.** - dacă valorile pentru x și/sau y nu sunt în intervalul 0-4
 +  * **Invalid count value.** - dacă valoarea pentru ''​count''​ nu este în intervalul 0-20.
 +  * **Invalid brightness.** - dacă valoarea pentru ''​val''​ este în afara intervalului 0-9.
    
 **Exemplu:​** ​ **Exemplu:​** ​
Line 81: Line 87:
 cmd: led on 2 3 cmd: led on 2 3
 cmd: led off 2 3 cmd: led off 2 3
-cmd: led blink 500 2 3 +cmd: led blink 500 30 2 3 
-cmd: led toggle 2 3 +Invalid count value. 
 +cmd: led toggle 2 3 
 +cmd: led brightness set 4 2 4 
 +
 +cmd: led brightness 2 4 
 +4
 </​code>​ </​code>​
  
-  * **brightness [parametru]** - folosit fără parametrii, afișează luminozitatea LED-urilor:​ +  * **button ​<button>** - ''​button''​ poate lua valoarea ''​A''​ sau ''​B'', ​reprezentând unul din cele două butoane de pe placă. Comanda afișează textul ​''​True'' ​dacă butonul specificat ​este apăsat și textul ''​False''​ dacă butonul nu e apăsat.
-      * **set <val>** - dacă se foloasește parametru set se va seta luminozitatea la valoarea ''​val'', ​undeva ​''​val''​ este un număr întreg 0-255, iar valoarea afișată în consolă este noua luminozitate+
  
-**Exemplu:**  +Comanda va afișa următoarele erori pentru următoarele cazuri
-<code bash> +  * **Invalid ​button.** - dacă ''​button'' ​este diferit de ''​a''​ sau ''​b''​
-cmd: brigthness +
-100 +
-cmd: brightness set 150 +
-150 +
-</​code>​ +
- +
-  * **button ​<​button>​** - ''​button'' ​poate lua valoarea ​''​A''​ sau ''​B''​, reprezentând unul din cele două butoane de pe placă. Comanda afișează textul ''​True''​ dacă butonul specificat este apăsat și textul ''​False''​ dacă butonul nu e apăsat.+
  
 **Exemplu:​** ​ **Exemplu:​** ​
Line 173: Line 176:
 </​code>​ </​code>​
  
-  * **ls [opțiuni]** - Listează conținutul directorului. Fără opțiunea **-a/​--all**,​ nu se afișează fișierele/​ascunse (al căror nume începe cu .). Dacă primește ca parametru numele unui fișier, va afișa însuși parametrul. Fiecare fișier se va afișa pe o linie nouă. In caz de eroare intoarce valoarea -80(in terminal se va afisa valoarea 176).+  * **ls [opțiuni]** - Listează conținutul directorului. Fără opțiunea **-a/​--all**,​ nu se afișează fișierele/​ascunse (al căror nume începe cu .). Dacă primește ca parametru numele unui fișier, va afișa însuși parametrul. Fiecare fișier se va afișa pe o linie nouă.
     * **-a, %%--%%all** afișează și fișierele/​directoarele ascunse (al căror nume incepe cu .)      * **-a, %%--%%all** afișează și fișierele/​directoarele ascunse (al căror nume incepe cu .) 
     * **-l, %%--%%long** afișează informații privind dimensiunea fișierului sub forma: ''​dimensiune nume''​.     * **-l, %%--%%long** afișează informații privind dimensiunea fișierului sub forma: ''​dimensiune nume''​.
Line 222: Line 225:
  
 ===== Reguli de implementare ===== ===== Reguli de implementare =====
- +  ​* În implementarea temei se va folosi mediul de programare ​MicroPython pentru Micro:bit
-TODO +  * Fișierul ​generat va avea numele **main.py**, acesta este fișierul pe care sistemul de testare îl va lua în considerare. 
- +  * Pentru implementarea comenzilor suportate, toate operațiile vor fi efectuate folosind doar funcții POSIX din biblioteca **os** specifică ​MicroPython ​(https://microbit-micropython.readthedocs.io/en/v1.0.1/os.html)și bilioteca [[https://​microbit-micropython.readthedocs.io/​en/​v1.0.1/​microbit_micropython_api.html|microbit]].
-  ​* În implementarea temei se va folosi mediul de programare ​Python3+
-  * Fișierul ​principal trebuie să aibă numele **busybox.py**, acesta este fișierul pe care sistemul de testare îl va lua în considerare. +
-  * Pentru implementarea comenzilor suportate, toate operațiile vor fi efectuate folosind doar funcții POSIX din biblioteca **os** specifică ​Python ​(https://docs.python.org/3/library/os.html).+
   * Programul realizat trebuie să aibă un comportament generic. Dacă observăm că tema este rezolvată doar pentru a trece anumite teste specifice, punctele corespondente acelor teste vor fi anulate din punctajul total.   * Programul realizat trebuie să aibă un comportament generic. Dacă observăm că tema este rezolvată doar pentru a trece anumite teste specifice, punctele corespondente acelor teste vor fi anulate din punctajul total.
  
 <note warning> <note warning>
-Folosiți doar biblioteca Python **os**, nu biblioteca Python posix.+Folosiți doar bibliotecile [[https://​microbit-micropython.readthedocs.io/​en/​v1.0.1/​os.html|MicroPython os]] și [[https://​microbit-micropython.readthedocs.io/​en/​v1.0.1/​microbit_micropython_api.html|microbit]].
 </​note>​ </​note>​
  
  
-===== Trimiterea temei =====+===== Trimiterea ​și verificarea ​temei =====
  
-Tema se va încărca pe vmchecker. Logați-vă pe site cu folosind utilizatorul de pe moodle, selectați cursul Systemes d'​Explotation (FILS) ​și încărcați arhiva ​temei.+Tema se va încărca pe Github. Logați-vă pe site și accesați link-ul aferent ​temei.
  
-==== Readme ====+<note info> 
 +Tema va fi testată automat pe Github pentru 40/100p. Restul testelor vor fi rulate manual, cu condiția ca tema să obțină cel puțin 20p din cele 40p obținute prin testare automată.
  
-Fișierul readme are următorul format: +Testele manuale vor fi efectuare prin rularea ​următoarelor comenzi:
- +
-Numele vostru întreg +
- +
-Grupa +
- +
-Descrierea rezolvării temei, de ce ați ales anumite soluții, etc. +
- +
-==== Arhiva temei ==== +
- +
-Pentru a încărca tema, urmăriți pașii: +
-  - Creați o arhivă zip (nu rar, ace, 7zip sau alt format) care să conțină:​ +
-    * Fișierul Python busybox.py +
-    * Alte fișiere python adiacente de care aveti nevoie (daca e cazul) +
-    * fișierul Readme +
-  - Logați-vă pe vmchecker +
-  - Selectați cursul Systemes d'​Explotation(FILS) +
-  - Selectați 2. Mini-BusyBox +
-  - Incărcați arhiva +
-  +
-Arhiva trebuie să conțină toate fișierele (principale) în rădăcina, nu în subdirectoare. NU arhivați directorul temei, arhivați DIRECT fișierele. +
-După ce încărcați arhiva, vmchecker va rula:+
 <code bash> <code bash>
-unzip archive.zip homework +$ git clone <​your_repository>​ 
-cd homework +python3 ​main.py < input_test.in
-python3 ​busybox.py comanda parametrii+
 </​code>​ </​code>​
  
 +Fișierele de input pentru testele manuale sunt disponibile pe [[https://​github.com/​UPB-FILS-SdE2/​devoir-2-tests/​tree/​main/​manual-tests|github]].
 +
 +Fiecare fișier conține pe prima linie punctajul testului.
 +</​note>​
  
sde2/teme/tema_ro_2_microbit_busybox.1616435140.txt.gz · Last modified: 2021/03/22 19:45 by ioana_maria.culic
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0