3. Задание № 1
Написать программу позволяющую работать с упакованными данными. Она должна реализовывать следующие функции:
– ввод данных, которые требуется упаковать, пользователем с клавиатуры (сообразно своему варианту из табл. 1);
– упаковку данных в целое 16-разрядное число (тип данных – unsigned short);
– распаковку данных из числа (как всех данных сразу, так и отдельного поля данных по выбору пользователя).
Операции распаковки и упаковки данных должны быть оформлены отдельными функциями.
Таблица 1
Варианты задания 1
№ варианта |
Тип данных для упаковки |
Поля данных (слева направо, от старших битов к младшим) |
1 |
Дата (год – две последних цифры) |
- год – 7 бит - месяц – 4 бита - день – 5 бит. |
2 |
Дата (год – две последних цифры) |
- день – 5 бит - месяц – 4 бита - год – 7 бит |
3 |
Дата (год – две последних цифры) |
- месяц – 4 бита - год – 7 бит - день – 5 бит |
4 |
Дата (год – две последних цифры) |
- день – 5 бит - год – 7 бит - месяц – 4 бита |
5 |
Дата (год – две последних цифры) |
- месяц – 4 бита - день – 5 бит - год – 7 бит |
6 |
Дата (год – две последних цифры) |
- год – 7 бит - день – 5 бит - месяц – 4 бита |
7 |
Данные о человеке |
- психотип – 2 бита (сангвиник, меланхолик, холерик, флегматик) - рост – 7 бит (<=127) - вес – 7 бит (<=127) |
8 |
Данные о человеке |
- вес – 7 бит (<=127). - рост – 7 бит (<=127) - психотип – 2 бита (сангвиник, меланхолик, холерик, флегматик) |
9 |
Данные о человеке |
- вес – 7 бит (<=127). - психотип – 2 бита (сангвиник, меланхолик, холерик, флегматик) - рост – 7 бит (<=127) |
10 |
Данные о квартире |
- номер квартиры – 9 бит - этаж – 4 бита - подъезд – 3 бита |
11 |
Данные о квартире |
- этаж – 4 бита - подъезд – 3 бита - номер квартиры – 9 бит |
12 |
Данные о квартире |
- этаж – 4 бита - номер квартиры – 9 бит - подъезд – 3 бита |
13 |
Данные о квартире |
- подъезд – 3 бита - этаж – 4 бита - номер квартиры – 9 бит |
14 |
Данные о квартире |
- номер квартиры – 9 бит - подъезд – 3 бита - этаж – 4 бита |
15 |
Данные о квартире |
- подъезд – 3 бита - номер квартиры – 9 бит - этаж – 4 бита |
16 |
Данные о студенте |
- курс – 3 бита - год поступления – 7 бит (две цифры) - возраст – 6 бит (<=63) |
17 |
Данные о студенте |
- год поступления – 7 бит (две цифры) - возраст – 6 бит (<=63) - курс – 3 бита |
18 |
Данные о студенте |
- возраст – 6 бит (<=63) - курс – 3 бита - год поступления – 7 бит (две цифры) |
19 |
Данные о студенте |
- год поступления – 7 бит (две цифры) - курс – 3 бита - возраст – 6 бит (<=63) |
20 |
Данные о студенте |
- возраст – 6 бит (<=63) - год поступления – 7 бит (две цифры) - курс – 3 бита |
21 |
Время |
- часы (1-12) – 4 бита - минуты (0-59) – 6 бит - секунды (0-59) – 6 бит |
22 |
Время |
- минуты (0-59) – 6 бит - часы (1-12) – 4 бита - секунды (0-59) – 6 бит |
23 |
Время |
- минуты (0-59) – 6 бит - секунды (0-59) – 6 бит - часы (1-12) – 4 бита |
24 |
Время |
- часы (1-12) – 4 бита - секунды (0-59) – 6 бит - минуты (0-59) – 6 бит |
25 |
Время |
- секунды (0-59) – 6 бит - минуты (0-59) – 6 бит - часы (1-12) – 4 бита |
26 |
Время |
- секунды (0-59) – 6 бит - часы (1-12) – 4 бита - минуты (0-59) – 6 бит |
27 |
Данные о студенте |
- курс – 3 бита - возраст – 6 бит (<=63) - год поступления – 7 бит (две цифры) |
28 |
Данные о человеке |
- рост – 7 бит (<=127) - вес – 7 бит (<=127). - психотип – 2 бита (сангвиник, меланхолик, холерик, флегматик) |