Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / oop-2025 / week14 / index.du
blob: c01f3b8aa0f4c197e294533460376f664f898ee9 (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
# Задачи - ООП, Седмица 14, 27.05.2026

'define expected-reading 2 min
'define created 27 May 2026
'define edited 27 May 2026
[$pagenav]

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

### Задача

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

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

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

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

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