5. Report contents / Зміст звіту
The report is submitted together with the source code. It must contain the following sections.
- Title block — course, laboratory work number and title, student’s name and group, date.
- Objective — a short statement of the goal of the work (see 1purpose.md).
- Brief theory — ordered pairs, the Cartesian product , and the definition of a binary relation as a subset of , in your own words using standard relation notation (see Lecture 3 — Relations).
- Chosen representation — how an ordered pair and a product/relation are stored without built-in set/tuple helpers, and how components are compared.
- Implementation — the source code of every implemented function, with brief comments. State the programming language used.
- Testing — for each function, a table of test cases and results. Include the examples from 4task.md and your own edge cases: an empty factor (), the size check , a relation that is valid and one that is invalid, and a predicate that selects no pairs.
- Achieved tier — state the highest tier you completed and which functions it covers (see the grading bands in 4task.md).
- Complexity — the time complexity of
cartesianProduct,isRelationValid,findRelations, andfilteredCartesianProduct, with one sentence on how a hash-based membership test would affect validation. - Conclusions — what was implemented, the difficulties encountered, and what you learned.
Submission requirements. The source files must compile/run and reproduce the example outputs of 4task.md.