Differences

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

Link to this comparison view

programare:teme_2024:tema1_2024_cbd [2024/11/11 18:57]
cezar.zlatea [Întrebări]
programare:teme_2024:tema1_2024_cbd [2024/11/25 14:34] (current)
cezar.zlatea [Validare locală temă]
Line 4: Line 4:
   * 7.11.2024: pagina creata   * 7.11.2024: pagina creata
   * 8.11.2024: clarificari enunt si mici completari   * 8.11.2024: clarificari enunt si mici completari
 +  * 11.11.2024: adaugat arhiva schelet si linkuri lipsa 
 +  * 13.11.2024: clarificari pentru task 1: indexarea coloanelor 
 +  * 13.11.2024: teste corectate
 ==== Responsabili:​ ==== ==== Responsabili:​ ====
   * [[cr.zlatea@gmail.com|Zlatea Cezar]]   * [[cr.zlatea@gmail.com|Zlatea Cezar]]
Line 66: Line 68:
 === Task 1. Spin the... pixels? (10p) === === Task 1. Spin the... pixels? (10p) ===
  
-Se doreste rotirea unei coloane specificate. De exemplu: daca avem o matrice cu 5 linii si 3 coloane, si dorim sa rotim coloana ​cu 3 pozitii, operatia dorita inseamna permutarea simbolurilor de pe coloana a doua cu trei pozitii in jos, pastrand ​coloanele 1 si neschimbate. Permutarea are loc in sens natural, de sus in jos, iar simbolurile care "ies din matrice"​ vor fi mutate la inceputul acesteia. Exemplu ilustrativ:+Se doreste rotirea unei coloane specificate. De exemplu: daca avem o matrice cu 5 linii si 3 coloane, si dorim sa rotim coloana ​a doua cu 3 pozitii, operatia dorita inseamna permutarea simbolurilor de pe coloana a doua cu trei pozitii in jos, pastrand ​prima si ultima coloana ​neschimbate. Permutarea are loc in sens natural, de sus in jos, iar simbolurile care "ies din matrice"​ vor fi mutate la inceputul acesteia. Exemplu ilustrativ:
  
   N = 5, M = 3;   N = 5, M = 3;
Line 74: Line 76:
   0 1 2   0 1 2
   3 4 5   3 4 5
 +  c = 1, r = 3 // indexare de la 0 pentru coloane
  
-Rotirea coloanei ​cu 3 pozitii inseamna:+Rotirea coloanei ​a doua cu 3 pozitii inseamna:
  
   1 8 3   1 8 3
Line 145: Line 148:
   * o miscare valida inseamna o deplasare in jos, in dreapta, in stanga sau in sus   * o miscare valida inseamna o deplasare in jos, in dreapta, in stanga sau in sus
   * jucatorul nu poate iesi din cadran   * jucatorul nu poate iesi din cadran
-  * costul fiecarei treceri este egal cu modulul diferentei dintre valoarea simbolului respectiv si valoarea simbolului initial (adica cel din stanga-sus)+  * costul fiecarei treceri este egal cu modulul diferentei dintre ​**valoarea simbolului respectiv** si **valoarea simbolului initial (adica cel din stanga-sus)**
  
 Se cere calcularea costului minim al drumului. Gigel ar paria ca stie sa gaseasca acest cost mai repede ca voi, doar ca se afla in mici dificultati financiare. Se cere calcularea costului minim al drumului. Gigel ar paria ca stie sa gaseasca acest cost mai repede ca voi, doar ca se afla in mici dificultati financiare.
Line 151: Line 154:
   Exemplu:   Exemplu:
   ​   ​
-{{:​programare:​teme_2024:​t6_1.png?​200|}} {{:​programare:​teme_2024:​solved_t6_1.png?200|}}+{{:​programare:​teme_2024:​t6_1.png?​200|}} {{:​programare:​teme_2024:​drum_exemplu_t6.png?200|}}
  
-  Raspunsul este 12. Explicatie: (7 - 5) + (7) + (8) + (- 1) + (- 1) = 12 +  Raspunsul este 12. Explicatie: (7 - 5) + (5) + (5) + (- 1) + (- 1)
  
 ==== Formate de intrare ==== ==== Formate de intrare ====
Line 208: Line 211:
  
 ==== Validare locală temă ==== ==== Validare locală temă ====
-Pentru a vă ajuta în dezvoltarea temei, arhiva {{:​programare:​teme_2024:​skel_t1.zip|}} conține o copie a checkerului.+Pentru a vă ajuta în dezvoltarea temei, arhiva {{:​programare:​teme_2024:​vscode_improvements.zip|}} conține o copie a checkerului.
 Pentru a instala dependențele necesare verificării pentru **coding style** <​del>​utilizați scriptul **install-linters.sh**</​del>:​ Pentru a instala dependențele necesare verificării pentru **coding style** <​del>​utilizați scriptul **install-linters.sh**</​del>:​
 <​code>​ <​code>​
 sudo apt-get update sudo apt-get update
 sudo apt-get install -y clang clang-tidy python3 python3-pip sudo apt-get install -y clang clang-tidy python3 python3-pip
-sudo python3 -m pip install -U pip+sudo python3 -m pip install -U pip # in caz de eroare de genul "​external package manager",​ puteti adauga --break-system-packages
 sudo python3 -m pip install cpplint sudo python3 -m pip install cpplint
 </​code>​ </​code>​
 Pentru a rula checkerul local folosiți comanda: Pentru a rula checkerul local folosiți comanda:
 <​code>​ <​code>​
-./local.sh checker+./local.sh checker ​# va fi nevoie de docker deja instalat
 </​code>​ </​code>​
 sau sau
 <​code>​ <​code>​
 ./​checker/​checker.py # doar verificarea output-ului testelor ./​checker/​checker.py # doar verificarea output-ului testelor
 +</​code>​
 +sau
 +<​code>​
 +cd checker && ./​checker.sh # checker integral, rulat local
 </​code>​ </​code>​
  
programare/teme_2024/tema1_2024_cbd.1731344239.txt.gz · Last modified: 2024/11/11 18:57 by cezar.zlatea
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