This is an old revision of the document!


Tema 0 - TrickOrTreat

Responsabili:

  • Edi Staniloiu

Termen de predare:

  • Deadline soft: TBD
  • Deadline hard: TBD

Aceasta este o temă de “încălzire”. Scopul acesteia este să vă obișnuiți cu infrastructura de testare automată a temelor. Această infrastructură va fi folosită la toate temele ulterioare.

Pentru fiecare zi (24 de ore) de întârziere, se vor scădea 10 puncte din nota acordată, până la atingerea deadline-ului hard.

Întrebări

Dacă aveți nelămuriri, puteți să ne contactați pe forumul dedicat temei de casă nr. 0 sau pe canalul Temei 0.
La orice întrebare vom răspunde în maxim 24 de ore.
Nu se acceptă întrebări în ultimele 24 de ore înainte de deadline.

Cerință

Scrieți un program care citește de la standard input (tastatură) un număr natural, N. Pentru toate valorile din intervalul [1, N], programul va afișa, separate printr-un spațiu ( ):

  • cuvântul Trick dacă valoarea curentă este divizibilă cu 7
  • cuvântul Treat dacă valoarea curentă este divizibilă cu 11
  • cuvântul TrickOrTreat dacă valoarea curentă este divizibilă cu 7 și cu 11
  • valoarea curentă, atunci când aceasta nu este divizibilă cu 7 sau 11

Exemplu utilizare:

./tema0
Introduceti valoarea numarului natural N:
11
1 2 3 4 5 6 Trick 8 9 10 Treat

Coding Style

Este foarte important, pentru orice proiect, ca codul sursă să fie ușor de citit. Astfel, de-a lungul timpului, comunitatea programatorilor a agreat un set de reguli pe care programatorii trebuie să-l respecte atunci când scriu cod. Acest set de reguli poartă numele de Coding style și include directive precum:

  • utilizarea unor nume descriptive / intuitive pentru variabile care să descrie intenția utilizării variabilei - nu folosim x, folosim num_elems
  • nu utilizăm numere magice; le ținem într-o variabilă care are un nume descriptiv
  • indentăm codul
  • etc.

În funcție de echipa / compania / proiectul la care veți lucra, coding style-ul poate diferi, în funcție de ce a fost agreat anterior, și vă veți adapta acelui stil.
În cadrul cursului de programare vom folosi regulile definite de către Cpp Core Guidelines. Acestea sunt verificate în mod automat de către checker.

Validare locală temă

Pentru a vă ajuta în dezvoltarea temei, arhiva trickortreat.zip conține o copie a checkerului.

Pentru a instala dependențele necesare verificării pentru coding style utilizați scriptul install-linters.sh:

./install-linters.sh

Pentru a rula checkerul local folosiți comanda:

make run

Trimitere temă

Tema va fi trimisă folosind vmchecker, cursul Programarea Calculatoarelor (CB & CD).

Toate temele sunt testate în mod automat pe 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; în cazul de față: TrickOrTreat.

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:

  1. Fișierele .c, .h (dacă este cazul) care conține implementarea temei.
  2. Fișierul Makefile.
  3. Un fișier README în care descrieți rezolvarea temei.

  1. Arhiva trebuie să fie de tipul zip.
  2. Makefile-ul și testele vor fi cele din aceasta arhiva: trickortreat.zip
  3. 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.
  make archive
  

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).

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.

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/tema0_2022_cbd.1666107493.txt.gz · Last modified: 2022/10/18 18:38 by eduard.staniloiu
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