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:54]
razvan.nitu1305 [Task 2 - Executare instructiune (50p)]
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>​
  
 **Precizări:​** **Precizări:​**
  
-Pentru acest task veti modifica modifica ​fisierul ​task2.c  ​astfel incat sa extindeti functionalitatea pentru a rezolva task-ul curent.+Acest task se va rezolva in fisierul ​task3.c
  
-===== Bonus 2 - Precedenta operatorilor (10p) =====+- Pentru acest task veti copia continutul fisierul task2.c in fisierul task3.c si veti extinde functionalitatea acestuia. 
 + 
 +- Pentru acest task, veti afisa doar rezultatul final. 
 + 
 + 
 +===== 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 160: Line 165:
 Pentru + * - / si 1 2 3 4 5 vom avea 1 + 2*3 - 4/5 = 1 + 6 - 0 = 7 Pentru + * - / si 1 2 3 4 5 vom avea 1 + 2*3 - 4/5 = 1 + 6 - 0 = 7
 </​note>​ </​note>​
 +
 +**Precizari**:​
 +
 +- Acest task se va rezolva in fisierul task4.c.
 +
 +- Veti afisa doar rezultatul final.
 ==== 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>
-  - O parte din cerințe conțin explicații și în cod. 
   - Arhiva trebuie să fie de tipul **zip**.   - Arhiva trebuie să fie de tipul **zip**.
-  ​- Codul va fi scris doar în fișierele //​gates.c//,​ //​communication.c//​ și //​hunt.c//​ +  - Makefile-ul și testele vor fi cele din aceasta ​arhiva: {{:​programare:​teme_2021:​miniprocesor.zip|}}
-  ​- Makefile-ul și testele vor fi cele din arhiva ​de test - noi vom dezarhiva arhiva voastră direct in folderul //src// +
-  - În scheletul de cod veți vedea bucăți de cod care conțin assert-uri **assert(condiție)** - acestea sunt folosite pentru a valida inputul+
 </​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 188: 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.1636365262.txt.gz · Last modified: 2021/11/08 11:54 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