Differences

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

Link to this comparison view

programare:teme_2022:tema1_2022_cbd [2022/11/02 11:28]
razvan.nitu1305 created
programare:teme_2022:tema1_2022_cbd [2022/11/21 11:06] (current)
ioana.dabelea [Trimitere temă]
Line 37: Line 37:
  
 Pentru a doua cerinta va trebui sa implementati citirea unei expresii si evaluarea acesteia tinand cont si de precendenta operatorilor. Pentru a doua cerinta va trebui sa implementati citirea unei expresii si evaluarea acesteia tinand cont si de precendenta operatorilor.
-Astfel, pentru expresia "​3+3*4/​5",​ veti evalua operatiile tinand cont de faptul ca operatiile '​*'​ si '/'​ au precedenta mai mare fata de '​+'​ si '​-'​. In consecinta, pentru acesta sarcina, rezultatul va fi: 3+3*4/5 = 3+12/5 = 3+2.4 = 5.4 .+Astfel, pentru expresia "​3+3*4/​5",​ veti evalua operatiile tinand cont de faptul ca operatiile '​*'​ si '/'​ au precedenta mai mare fata de '​+'​ si '​-'​. In consecinta, pentru acesta sarcina, rezultatul ​expresiei anterioare ​va fi: 3+3*4/5 = 3+12/5 = 3+2.4 = 5.4 .
  
 +===== Task 3 =====
  
 +Pentru a 3-a cerinta va trebui sa implementeti un nou operator, operatorul `#`.
 +Operatorul `#` este definit astfel: a#b = (a+b)*(a+b).
 +Operatorul `#` are precedenta mai mare ca `+`/`-`, dar mai mica ca `*`/`/`.
 +Astfel, pentru aceasta cerinta, rezultatul expresiei "​1+2#​3*4"​ va fi: 1+2#3*4 = 1+2#12 = 1 + (2 + 12)*(2 + 12) = 1 + 196 = 197. 
 +
 +==== Precizari =====
 +
 +Checker-ul se asteapta ca fiecare task sa fie separat intr-un fisier separat. Astfel, este necesar ca Makefilul pe care il puneti in arhiva alaturi de fisierele sursa sa creeze binarele cu numele **task1**, **task2**, **task3**. Makefile-ul oferit alaturi de checker respecta aceasta cerinta, astfel, in cazul in care modificati Makefile-ul,​ asigurati-va ca binarele finale vor avea numele corespunzatoare.
 +
 +Dacă aveți nelămuriri,​ puteți să ne contactați pe forumul dedicat [[https://​curs.upb.ro/​2022/​mod/​forum/​view.php?​id=73597|temei de casă nr. 1]] sau pe [[https://​teams.microsoft.com/​l/​channel/​19%3ad9373370b32846478e256ffcbf942962%40thread.tacv2/​Tema%25201?​groupId=6105be57-b728-4078-9f4a-00dc43e83e70&​tenantId=2d8cc8ba-8dda-4334-9e5c-fac2092e9bac|canalul Temei 1]].\\
 +La orice întrebare vom răspunde în maxim 24 de ore.\\
 +Nu se acceptă întrebări în ultimele 24 de ore înainte de deadline.
 +
 +
 +
 +==== Trimitere temă ====
 +
 +Tema va fi trimisă folosind [[https://​vmchecker.cs.pub.ro/​ui/#​PCCB|vmchecker]],​ cursul **Programarea Calculatoarelor (CB & CD)**. \\
 +
 +Toate temele sunt testate în mod automat pe [[https://​vmchecker.cs.pub.ro/​ui/​|VMChecker]].
 +Autentificarea se face folosind numele de utilizator și parola de pe moodle / Teams.
 +
 +Din meniul //​drop-down//​ selectați cursul corespunzător;​ în cazul de față: **Programarea Calculatoarelor (CB & CD)**.
 +În meniul //​didebar//,​ din partea stângă a paginii, selectați tema pentru care veți face submisia.
 +
 +Arhiva temei se va încărca pe checker folosind formularul de submisie din tabul **Trimitere solutii**.
 +
 +Rezultatele vor fi disponibile în tabul **Rezultate**.\\
 +**Citiți cu atenție** informațiile afișate în **Rezultate** pentru a vă asigura că tema a fost rulată cu succes; o eroare comună este dată de faptul că conținutul arhivei nu respectă structura dorită (ex. fișierele sunt într-un alt director).\\
 +
 +**Punctajul final al temei** este afișat la finalul informațiilor afișate în **Rezultate**.
 +
 +Conținutul arhivei va fi următorul:
 + - Fișierele **.c**, **.h** (dacă este cazul) care conține implementarea temei.
 + - Fișierul **Makefile**.
 + - Un fișier [[https://​en.wikipedia.org/​wiki/​README|README]] în care descrieți rezolvarea temei.
 +
 +<note warning>
 +  - Arhiva trebuie să fie de tipul zip.
 +  - Makefile-ul și testele vor fi cele din aceasta arhiva: {{:​programare:​teme_2022:​calculator.zip|calculator.zip}}
 +  - Puteți utiliza regula archive din fișerul Makefile pentru a vă genera arhiva zip. Aceasta va adăuga fișierele Makefile, README și orice fișier .c și .h din directorul curent.
 +  <​code>​
 +  make archive
 +  </​code>​
 +</​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 ===
 +Lista nu este exhaustivă.
 +  * O temă care nu compilează și nu a rulat pe **vmchecker** nu va fi luată în considerare
 +  * O temă care nu rezolvă cerința și trece testele prin alte mijloace nu va fi luată în considerare
 +  * **NU acceptăm teme copiate**. În cazul unei teme copiate se scade punctajul aferent temei din punctajul total. ​
 +  * [-20.0]: Nerezolvarea tuturor erorilor și warningurilor de coding style
programare/teme_2022/tema1_2022_cbd.1667381334.txt.gz · Last modified: 2022/11/02 11:28 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