Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / oop-2025 / week14 / index.du
blob: bcf822041259fd4dd4991a08dc74fc2d2d0af3dc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
'def title Задачи - ООП, Седмица 14, 27.05.2026
'def  desc Условията на задачите за упражнение.

# {title}

{pagenav 2 min;27 May 2026;27 May 2026}

## За решаване

### Задача

Реализирайте клас {` Sensor}, който съхранява целочислен неотрицателен сериен номер и число с плаваща запетая за напрежение на захранване.
Също имплементирайте методи, налични във всички наследници:
.bulleted
- {` GetType}, който връща типа на сензора (най-десните 2 цифри от серийния номер).
- {` EnoughSupply}, който приема напрежение, което се подава на сензора и връща дали е достатъчно или не

Реализирайте негови наследници {` CameraSensor} и {` GyroSensor}.

{` CameraSensor} съхранява резолюция (височина и ширина) и брой взети снимки.
При класа имплементирайте метод {` TakeSnapshot}, който инкрементира бройката взети снимки.

{` GyroSensor} съхранява скорост на измерване в {` dps} (ъгли в секунда).
Имплементирайте негов метод {` Rotate}, който по получен ъгъл връща най-малкото количество от време, което е нужно за да може сензора да измере въртенето.

Реализирайте наследник {` DSLR} на {` CameraSensor} и {` GyroSensor}, който допълнително съхранява изходна резолюция (височина и ширина) и скорост на вземане на кадър.
Имплементирайте член-функция {` CorrectedCapture}, която по подаден ъгъл, прави снимка и връща колко кадъра ще отнемат докато въртенето е напълно измерено.