This shows you the differences between two versions of the page.
programare:teme_2023:tema2_2023_cbd [2023/12/23 19:37] alin_bogdan.popa |
programare:teme_2023:tema2_2023_cbd [2024/01/15 21:49] (current) alin_bogdan.popa [Changelog:] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Tema 2 - Unix Timestamps ====== | ====== Tema 2 - Unix Timestamps ====== | ||
+ | ==== Changelog: ==== | ||
+ | * 23 Dec 2023 20:35: update schelet de cod typos | ||
+ | * 13 Ian 2023 23:55: adaugat teste pt taskurile 1-8 {{:programare:teme_2023:t2_tests_1-to-8.zip|}} | ||
+ | * 14 Ian 2023 00:55: corectat testele pt taskul 8 | ||
+ | * 15 Ian 2024 02:56: adaugat checker {{:programare:teme_2023:t2_checker.zip|}} (thanks Cosmin & Mihnea & Teo pentru debugging la checker noaptea ca hotii) | ||
+ | * 15 Ian 2024 19:57: update checker + reparat teste task 9 | ||
+ | * 15 Ian 2024 21:49: update teste sa fie timezone-urile de max 4 caractere | ||
==== Responsabili: ==== | ==== Responsabili: ==== | ||
* Alin Popa | * Alin Popa | ||
Termen de predare: | Termen de predare: | ||
- | * Deadline soft: **TODO** | + | * Deadline soft: **Joi 11 Ianuarie 2024, 23:55** |
- | * Deadline hard: **TODO** | + | * Deadline hard: **Duminica 14 Ianuarie 2024, 23:55** |
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. | 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==== | ====Întrebări==== | ||
- | Dacă aveți nelămuriri, puteți să ne contactați pe forumul dedicat [[https://curs.upb.ro/2023/mod/forum/view.php?id=80135|temei de casă nr. 1]] sau pe [[https://teams.microsoft.com/l/channel/19%3a0a648c85e9ed4a2bbb343b5792443551%40thread.tacv2/Tema%25200?groupId=1f7c7112-0ea2-4f0b-9131-d5c29590d62c&tenantId=2d8cc8ba-8dda-4334-9e5c-fac2092e9bac|canalul Temei 1]].\\ | + | Dacă aveți nelămuriri, puteți să ne contactați pe forumul dedicat [[https://curs.upb.ro/2023/mod/forum/view.php?id=96053|temei de casă nr. 2]] sau pe [[https://teams.microsoft.com/l/channel/19%3A894fd875001546b28dec5f997c2097b5%40thread.tacv2/Tema%202?groupId=1f7c7112-0ea2-4f0b-9131-d5c29590d62c&tenantId=2d8cc8ba-8dda-4334-9e5c-fac2092e9bac|canalul Temei 2]].\\ |
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 38: | Line 45: | ||
===== Schelet de cod ===== | ===== Schelet de cod ===== | ||
- | Pentru această temă trebuie să porniți de la scheletul de cod de aici: {{:programare:teme_2023:tema1_schelet.zip|}}. | + | Pentru această temă trebuie să porniți de la scheletul de cod de aici: {{:programare:teme_2023:tema2_schelet.zip|}}. |
- | + | ||
- | În scheletul de cod veți găsi următoarele: | + | |
- | * Un Makefile cu reguli care compilează și rulează ''main.c'' și respectiv ''interactive.c'' | + | |
- | * Un fișier ''imageprocessing.c'' în care voi va trebui să completați implementările funcțiilor pentru taskurile 1-6 | + | |
- | * Un fișier ''interactive.c'' în care voi va trebui să completați implementarea programului pentru taskul 7 | + | |
- | * Un fișier ''main.c'' care **nu trebuie trimis în arhiva cu tema**, scopul lui este să vă ofere un exemplu pentru rularea funcțiilor din celelalte fișiere (ca de exemplu, funcțiile ''read_from_bmp'' și ''write_to_bmp''). | + | |
- | * Un fișier ''bmp.c'' ce conține implementările funcțiilor ''read_from_bmp'' și ''write_to_bmp'' ce trebuie folosite în temă. | + | |
<note important> | <note important> | ||
Atenție! **Nu** aveți voie să: | Atenție! **Nu** aveți voie să: | ||
- | * redenumiți fișierele temei (imageprocessing.c și interactive.c) | + | * redenumiți fișierele temei (timelib.c, bitpacking.c, planner.c) |
- | * schimbați numărul, tipul, sau ordinea parametrilor funcțiilor din imageprocessing.c și imageprocessing.h | + | * schimbați numărul, tipul, sau ordinea parametrilor funcțiilor din timelib.c și timelib.h |
* schimbați sau redenumiți comenzile sau regulile din Makefile | * schimbați sau redenumiți comenzile sau regulile din Makefile | ||
</note> | </note> | ||
Line 391: | Line 391: | ||
Utilitarul se va rula folosind urmatoarea comanda: | Utilitarul se va rula folosind urmatoarea comanda: | ||
- | <code> valgrind --tool=memcheck --leak-check=full --error-exitcode=1 ./interactive </code> | + | <code> valgrind --tool=memcheck --leak-check=full --error-exitcode=1 ./planner </code> |
==== Coding Style ==== | ==== Coding Style ==== | ||
- | La fel ca la tema 0, există o depunctare de până la -20p pentru coding style. Checkerul verifică coding style-ul în mod automat. | + | La fel ca la temele precedente, există o depunctare de până la -20p pentru coding style. Checkerul verifică coding style-ul în mod automat. |
==== Validare locală temă ==== | ==== Validare locală temă ==== | ||
- | Pentru a vă ajuta în dezvoltarea temei, arhiva {{:programare:teme_2023:tema1_checker.zip|}} conține o copie a checkerului. | + | **Checker: {{:programare:teme_2023:t2_checker.zip|}}** |
- | + | ||
- | Pentru a instala dependențele necesare verificării pentru **coding style** utilizați scriptul **install-linters.sh**: | + | |
- | <code> | + | |
- | ./install-linters.sh | + | |
- | </code> | + | |
- | + | ||
- | Pentru a rula checkerul local, copiați toate fișierele checkerului în același director în care aveți codul sursă, apoi folosiți comanda: | + | |
- | <code> | + | |
- | ./check.sh | + | |
- | </code> | + | |
- | + | ||
- | <note important> | + | |
- | Checkerul trebuie rulat pe Linux! Trebuie să aveți instalat utilitarul Valgrind (care nu există pe Windows). | + | |
- | </note> | + | |
==== Trimitere temă ==== | ==== Trimitere temă ==== | ||
- | Tema va fi trimisă folosind Moodle, cursul **Programarea Calculatoarelor (CB & CD)**, activitatea "Tema 1". | + | Tema va fi trimisă folosind Moodle, cursul **Programarea Calculatoarelor (CB & CD)**, activitatea "Tema 2". |
<note warning> | <note warning> | ||
- | Se va posta un anunț pe forum când se va deschide upload-ul. | + | Se va posta un anunț pe forum si Teams când se va deschide upload-ul. |
</note> | </note> | ||
Line 431: | Line 417: | ||
Conținutul arhivei trebuie să fie următorul: | Conținutul arhivei trebuie să fie următorul: | ||
- | - Fișierele **imageprocessing.c**, **imageprocessing.h** | + | - Fișierele **timelib.c**, **timelib.h** |
- | - Fișierele **bmp.c**, **bmp.h** | + | - Fișierul **bitpacking.c** |
- | - Fișierul **interactive.c** | + | - Fișierul **planner.c** |
- Fișierul **Makefile** | - Fișierul **Makefile** | ||
- Un fișier [[https://en.wikipedia.org/wiki/README|README]] în care descrieți rezolvarea temei. | - Un fișier [[https://en.wikipedia.org/wiki/README|README]] în care descrieți rezolvarea temei. |