Differences

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

Link to this comparison view

programare:teme_2021:tema1_2021_cbd [2021/11/08 11:58]
razvan.nitu1305 [Trimitere temă]
programare:teme_2021:tema1_2021_cbd [2021/12/02 16:25] (current)
razvan.nitu1305 [Trimitere temă]
Line 137: Line 137:
 - afisati doar numarul rezultat, altfel checker-ul nu va lua in considerare testul - afisati doar numarul rezultat, altfel checker-ul nu va lua in considerare testul
  
-===== Bonus 1 - Operanzi cu dimensiuni ciudate (10p) =====+===== Bonus 1 - Operanzi cu dimensiuni ciudate (20p) =====
  
 In cadrul acestui task vom extinde implementarea de la Task 2 pentru a executa instrucțuni ale căror operanzi pot avea **orice** dimensiune din intervalul [1, 16]. În continuare, operanzii for fi citiți de la intrarea standard sub forma **unsigned short**, însă un operand ar putea să se întindă pe 2 citiri succesive. In cadrul acestui task vom extinde implementarea de la Task 2 pentru a executa instrucțuni ale căror operanzi pot avea **orice** dimensiune din intervalul [1, 16]. În continuare, operanzii for fi citiți de la intrarea standard sub forma **unsigned short**, însă un operand ar putea să se întindă pe 2 citiri succesive.
Line 144: Line 144:
 Exemplu: Exemplu:
  
-**N = 1**, **Dim = 11**. (1+1)*11/16 = 1,375 => se citesc 2 numere de tipul **unsigned short**. Sa presupunem ca acestea sunt 374444 ​(**10010010010 00100**) si 33792 (**100001 0000000000**). Va trebuie sa facem o operație intre 1170 (**10010010010**) si 289 (**00100 100001**)+**N = 1**, **Dim = 11**. (1+1)*11/16 = 1,375 => se citesc 2 numere de tipul **unsigned short**. Sa presupunem ca acestea sunt 37444 (**10010010010 00100**) si 33792 (**100001 0000000000**). Va trebuie sa facem o operație intre 1170 (**10010010010**) si 289 (**00100 100001**)
 </​note>​ </​note>​
  
Line 156: Line 156:
  
  
-===== Bonus 2 - Precedenta operatorilor (10p) =====+===== Bonus 2 - Precedenta operatorilor (20p) =====
  
 Implementati precedenta operatilor, astfel incat * si / au precedenta egala intre ei, insa precdenta mai mai mare ca + si -. Implementati precedenta operatilor, astfel incat * si / au precedenta egala intre ei, insa precdenta mai mai mare ca + si -.
Line 173: Line 173:
 ==== Trimitere temă ==== ==== Trimitere temă ====
  
-Tema va fi trimisă folosind [[https://v2.vmchecker.grid.pub.ro/homepage/​|vmchecker]],​ cursul **Programarea Calculatoarelor (CB & CD)**. \\+Tema va fi trimisă folosind [[https://​vmchecker.cs.pub.ro/ui/#PCCB|vmchecker]],​ cursul **Programarea Calculatoarelor (CB & CD)**. \\
  
-Găsiți arhiva cu checker-ul si makefile-ul {{:​programare:​teme_2020:​pc_tema_1.zip|aici}}. 
  
  
 Formatul arhivei va fi următorul: Formatul arhivei va fi următorul:
- - {task1.c task2.c}+ - {task1.c task2.c ​task3.c task4.c Makefile}
  - Un fișier [[https://​en.wikipedia.org/​wiki/​README|README]] în care vă descrieți rezolvarea taskurilor.  - Un fișier [[https://​en.wikipedia.org/​wiki/​README|README]] în care vă descrieți rezolvarea taskurilor.
 +
  
 <note warning> <note warning>
   - Arhiva trebuie să fie de tipul **zip**.   - Arhiva trebuie să fie de tipul **zip**.
-  - Makefile-ul și testele vor fi cele din arhiva ​de test+  - Makefile-ul și testele vor fi cele din aceasta ​arhiva: {{:​programare:​teme_2021:​miniprocesor.zip|}}
 </​note>​ </​note>​
  
 +<note warning>
 +Nu includeti fisierele checkerului in arhiva voastra. **Nu folositi Makefile.checker** pe post
 +de Makefile in arhiva voastra: asta va duce la recursivitate infinita pe vmchecker. Puteti sa folositi
 +direct makefile-ul prezent in arhiva (**Makefile,​ nu Makefile.checker**).
 +</​note>​
 +
 +<note warning>
 +In cazul in care testele va trec local, insa pica pe vmchecker cel mai probabil aveti
 +o sursa de "​undefined behavior in cod". Pentru a va asigura ca scapati de aceste probleme,
 +compilati cu flagul de compilare `-Wall` si rezolvati toate warning-urile.
 +</​note>​
  
 === Listă depunctări === === Listă depunctări ===
Line 196: Line 207:
   * [-5.0]: abordare ineficientă   * [-5.0]: abordare ineficientă
   * [-10.0]: variabile globale   * [-10.0]: variabile globale
 +  * [-25.0]: Daca se folosesc vectori pentru stocarea bitilor ​
   * [-100.0]: TOT punctajul, în cazul în care se încearcă "​obținerea"​ punctajului pe temă folosind alte metode decât cele normale ​   * [-100.0]: TOT punctajul, în cazul în care se încearcă "​obținerea"​ punctajului pe temă folosind alte metode decât cele normale ​
     * în cadrul cursului de programare nu avem ca obiectiv rezolvarea în cel mai eficient mod posibil a programelor;​ totuși, ne dorim ca abordarea să nu fie una ineficientă,​ de genul să nu folosiți instrucțiuni repetitive acolo unde clar nu era cazul, etc.     * în cadrul cursului de programare nu avem ca obiectiv rezolvarea în cel mai eficient mod posibil a programelor;​ totuși, ne dorim ca abordarea să nu fie una ineficientă,​ de genul să nu folosiți instrucțiuni repetitive acolo unde clar nu era cazul, etc.
  
programare/teme_2021/tema1_2021_cbd.1636365492.txt.gz · Last modified: 2021/11/08 11:58 by razvan.nitu1305
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