This shows you the differences between two versions of the page.
programare:teme_2024:tema0_2024_cbd [2024/10/13 23:32] andrei.lipan created |
programare:teme_2024:tema0_2024_cbd [2024/10/24 12:53] (current) andrei.lipan |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Tema 0 - TrickOrTreat ====== | + | ====== Tema 0 - First ====== |
==== Changelog: ==== | ==== Changelog: ==== | ||
- | *TODO | + | * 24.10.2024: Prelungire deadline |
==== Responsabili: ==== | ==== Responsabili: ==== | ||
- | * TODO | + | * Andrei-Valentin Lipan |
Termen de predare: | Termen de predare: | ||
- | * Deadline soft: **TODO** | + | * Deadline soft: 24 octombrie 23:55 |
- | * Deadline hard: **TODO** | + | * Deadline hard: 27 octombrie 23:55 |
Aceasta este o temă de "încălzire". | Aceasta este o temă de "încălzire". | ||
Line 18: | Line 18: | ||
====Întrebări==== | ====Întrebări==== | ||
- | Dacă aveți nelămuriri, puteți să ne contactați pe forumul dedicat [[https://www.google.com/search?q=TODO|temei de casă nr. 0]] sau pe [[https://www.google.com/search?q=TODO|canalul Temei 0]].\\ | + | Dacă aveți nelămuriri, puteți să ne contactați pe forumul dedicat [[https://curs.upb.ro/2024/mod/forum/view.php?id=34540|temei de casă nr. 0]] sau pe [[https://teams.microsoft.com/l/channel/19%3Ae9e5c56af7e748c8a1f56302813121d3%40thread.tacv2/Tema0?groupId=d8e68d9b-e107-4d94-8c1b-4a6ec49a1bd8&tenantId=2d8cc8ba-8dda-4334-9e5c-fac2092e9bac|canalul Temei 0]].\\ |
La orice întrebare vom răspunde în maxim 24 de ore.\\ | La orice întrebare vom răspunde în maxim 24 de ore.\\ | ||
Nu se acceptă întrebări în ultimele 24 de ore înainte de deadline. | Nu se acceptă întrebări în ultimele 24 de ore înainte de deadline. | ||
Line 33: | Line 33: | ||
===== Intro Makefile ===== | ===== Intro Makefile ===== | ||
- | ''make'' este un utilitar cu care putem automatiza compilarea de fișiere C, pe baza unui set de reguli descris într-un fișier numit ''Makefile''. | + | ''make'' este un utilitar cu care putem automatiza compilarea de fișiere C, pe baza unui set de reguli descris într-un fișier numit ''Makefile''. |
Un fișier ''Makefile'' este format din linii cu următoarea sintaxă: ''[nume-regula]: [dependente]'' urmată de lista de comenzi care se execută când această regulă este apelată. O regulă poate avea unul sau mai multe fișiere ca dependențe. La apelarea unei reguli, utilitarul ''make'' verifică automat dacă aceste fișiere există înainte de a executa comenzile din cadrul regulii. Dacă unul din ele nu există, atunci înainte de comenzile asociate regulii apelate se va apela automat regula cu același nume ca fișierul lipsă. | Un fișier ''Makefile'' este format din linii cu următoarea sintaxă: ''[nume-regula]: [dependente]'' urmată de lista de comenzi care se execută când această regulă este apelată. O regulă poate avea unul sau mai multe fișiere ca dependențe. La apelarea unei reguli, utilitarul ''make'' verifică automat dacă aceste fișiere există înainte de a executa comenzile din cadrul regulii. Dacă unul din ele nu există, atunci înainte de comenzile asociate regulii apelate se va apela automat regula cu același nume ca fișierul lipsă. | ||
Line 77: | Line 77: | ||
====Task1 (30p) ==== | ====Task1 (30p) ==== | ||
Scrieți un program care citește de la standard input (tastatură) două numere întregi pozitive, **a** și **b**. | Scrieți un program care citește de la standard input (tastatură) două numere întregi pozitive, **a** și **b**. | ||
- | **TODO DIACRITICE** | + | Programul trebuie să verifice daca numărul **a** este divizibil cu numărul **b**. Daca **a** este divizibil cu **b**, se va afișa **1**. În cazul contrar se va afișa **0**. |
- | Programul trebuie să verifice daca numarul a este divizibil cu numarul b. Daca a este divizibil cu b, se va afisa 1. In cazul contrar se va afisa 0. | + | |
<note> | <note> | ||
Line 92: | Line 91: | ||
</note> | </note> | ||
====Task2 (60p) ==== | ====Task2 (60p) ==== | ||
- | **TODO ENUNTUL** | + | Scrieți un program care citește de la standard input (tastatură) un număr întreg **n**. Programul trebuie să afișeze un triunghi format astfel: Pe prima linie se va afișa ''*'', pe a doua linie ''* *'', pe a treia linie ''* * *'' etc. și pe a n-a linie caracterul ''*'' de **n** ori. Pe fiecare linie caracterele ''*'' vor fi separate de cate un spațiu. |
- | 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** | + | |
<note> | <note> | ||
Line 131: | Line 124: | ||
==== Validare locală temă ==== | ==== Validare locală temă ==== | ||
- | **TODO** | + | Pentru a vă ajuta în dezvoltarea temei, arhiva {{:programare:teme_2024:first.zip|}} conține o copie a checkerului. |
- | Pentru a vă ajuta în dezvoltarea temei, arhiva {{:programare:teme_2023: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**: | Pentru a instala dependențele necesare verificării pentru **coding style** utilizați scriptul **install-linters.sh**: | ||
Line 151: | Line 143: | ||
==== Trimitere temă ==== | ==== Trimitere temă ==== | ||
- | Tema va fi trimisă folosind [[https://curs.upb.ro/2023/mod/assign/view.php?id=60408|Moodle]], cursul **Programarea Calculatoarelor (CB & CD)**, activitatea "Tema 0". \\ | + | Tema va fi trimisă folosind [[https://curs.upb.ro/2024/mod/assign/view.php?id=33440|Moodle]], cursul **Programarea Calculatoarelor (CB & CD)**, activitatea "Tema 0". \\ |
Toate temele sunt testate în mod automat pe Moodle. | Toate temele sunt testate în mod automat pe Moodle. | ||
Line 157: | Line 149: | ||
Arhiva temei se va încărca folosind formularul de submisie (butonul **Add submission**). | Arhiva temei se va încărca folosind formularul de submisie (butonul **Add submission**). | ||
- | Rezultatele vor fi disponibile în secțibutonuunea **Feedback** - nota apare la linia **Grade**, iar outputul checkerului și erorile apar la sectiunea **Feedback comments**. Dacă apare un buton albastru în formă de plus, trebuie să dați click pe el pentru a afișa întregul output al checkerului.\\ | + | Rezultatele vor fi disponibile în secțiunea **Feedback** - nota apare la linia **Grade**, iar outputul checkerului și erorile apar la sectiunea **Feedback comments**. Dacă apare un buton albastru în formă de plus, trebuie să dați click pe el pentru a afișa întregul output al checkerului.\\ |
**Citiți cu atenție** informațiile afișate în **Feedback** 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).\\ | **Citiți cu atenție** informațiile afișate în **Feedback** 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).\\ | ||
Line 185: | Line 177: | ||
* O temă care nu compilează și nu a rulat pe **vmchecker** nu va fi luată în considerare | * 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 | * 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. | + | * **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 | + | * [-20.0]: Nerezolvarea tuturor erorilor și warningurilor de coding style |