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`], която по подаден ъгъл, прави снимка и връща колко кадъра ще отнемат докато въртенето е напълно измерено.
|