Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/22: Рейтинг темы: голосов - 22, средняя оценка - 4.73
0 / 0 / 1
Регистрация: 24.09.2012
Сообщений: 85

Типы данных, определяемые пользователем

25.11.2012, 23:32. Показов 5023. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
3. Разработать битовое поле, описывающее состояния элементов прибора. Ввести с консоли число в 16-ричной системе счисления, преобразовать его в битовое поле за счёт использования объединения. Вывести на консоль состояния элементов прибора, соответствующие состоянию битов во введённом числе.

(MP3 проигрыватель-диктофон. Элементы: воспроизведение вкл/выкл, пауза вкл/выкл, запись вкл/выкл.)
По возможности . можете написать на си
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2012, 23:32
Ответы с готовыми решениями:

Структуры, объединения и определяемые пользователем типы. Массивы структур
Здравтсвуйте! Помогите, пожалуйста, разобраться с одной задачкой! Условие следующее: Разработать программу обработки данных...

Манипуляторы, определяемые пользователем
Суть программки в то, что нужно создать класса MyClass, в которой добавлены манипуляторы iOnly и jAlso, управляющие выводом на экран i и j,...

Типы данных: есть ли универсальный тип, который может заменить все типы данных в Си?
Добрый вечер! Был бы очень признателен, если бы Вы помогли бы мне понять нижеследующие вопросы: 1. Можете ли на понятным для...

24
 Аватар для activnaya
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
26.11.2012, 05:01
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Оп-па!
поймал БОГА за бороду? просто недокопирастила. Видел же откуда копипаста
C
1
2
3
typedef struct {
    size_t status : 3;
} status_t;
ну и по аналогии
C
1
2
3
typedef union{
    size_t status : 3;
}status_t;
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Во-вторых, почитай, что такое union в языке С++.
вообще - то я программу на Си писала. Топик стартер так просил. И я считаю что принципиальнойразницы между union и struct нету. Зачем толочь воду в ступе? обратимся к стандарту c99.
6.2.5.20.
—A structure type describes a sequentially allocated nonempty set
(and, in certain circumstances, an incomplete array), each of whic
specified name and possibly distinct type.
—A union type describes an overlapping nonempty set of memb
which has an optionally specified name and possibly distinct type.
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
и скажи, зачем создавать union из одного элемента
затем что это не один элемент, а битовое поле.

Не по теме:

P.S. я понимаю что ты клевый парень и все такое.

0
 Аватар для Kuzia domovenok
4268 / 3328 / 926
Регистрация: 25.03.2012
Сообщений: 12,545
Записей в блоге: 1
26.11.2012, 05:20
Цитата Сообщение от activnaya Посмотреть сообщение
поймал БОГА за бороду? просто недокопирастила. Видел же откуда копипаста
Да о чём речь вообще? Говорю ж, не суть. Я и сам не люблю, когда не по теме к синтаксису цепляются.
Цитата Сообщение от activnaya Посмотреть сообщение
И я считаю что принципиальнойразницы между union и struct нету.
А вот это Вот это уже чистосердечное признание! Эти слова задокументированы, нотариально заверены и навечно сохранены на трёх жёстких дисках.

Всё, я понял, что ты не видишь огроменной разницы между struct и union. Поэтому, чтобы не растягивать пост объяснением, настоятельно советую всё же сходить в википедию/гугл/книжку Кериганна&Ритчи и прочитать, что такое union.
Я понимаю, что возможно у тебя много великолепных программ написано, где не использовались union. Использовать его просто не приходилось, вероятно. Но вот оно: рано или поздно пробел в знании обнаруживается, ничего личного, просто прочитай, что такое union/

Добавлено через 5 минут
Ну даже к сайтам и книжкам отсылать не надо! По-твоему, тут одно и то же написано?
Цитата Сообщение от activnaya Посмотреть сообщение
—A structure type describes a sequentially allocated nonempty set
(and, in certain circumstances, an incomplete array), each of whic
specified name and possibly distinct type.
—A union type describes an overlapping nonempty set of memb
which has an optionally specified name and possibly distinct type.
Тип union описывает набор ПЕРЕКРЫВАЮЩИХСЯ В ПАМЯТИ членов, каждый своего типа.
Тип struct описывает набор ПОСЛЕДОВАТЕЛЬНО РАСПОЛОЖЕННЫХ В ПАМЯТИ членов, каждый своего типа.
0
 Аватар для activnaya
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
26.11.2012, 05:39
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Тип union описывает набор ПЕРЕКРЫВАЮЩИХСЯ В ПАМЯТИ членов, каждый своего типа.
Тип struct описывает набор ПОСЛЕДОВАТЕЛЬНО РАСПОЛОЖЕННЫХ В ПАМЯТИ членов, каждый своего типа.
ну и что? в контексте задачи (я именно в контексте задачи подразумевала отсутствие принципиальной разницы) это совсем не имеет значения.
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Всё, я понял, что ты не видишь огроменной разницы между struct и union.
вижу и знаю. Вот же она
Кликните здесь для просмотра всего текста
C
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
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
 
struct S
{
    size_t (*ptr)(void);
    size_t ret_val;
};
 
union U
{
    size_t (*ptr)(void);
    size_t ret_val;
};
 
size_t f(void) {return 1;}
 
int main()
{
    struct S s;
    union U u;
 
    s.ptr = f;
    u.ptr = f;
    s.ret_val = s.ptr();
    u.ret_val = u.ptr();
 
    printf("%u\n", s.ret_val);
    printf("%u\n", u.ret_val);
    printf("%X\n", &s.ptr);
    printf("%X\n", &s.ret_val);
    printf("%X\n", &u.ptr);
    printf("%X\n", &u.ret_val);
 
    exit(EXIT_SUCCESS);
}
0
 Аватар для Kuzia domovenok
4268 / 3328 / 926
Регистрация: 25.03.2012
Сообщений: 12,545
Записей в блоге: 1
26.11.2012, 05:56
Короче, ещё раз, мой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
union status{
    struct{
        unsigned rec  : 1;
        unsigned pause: 1;
        unsigned play : 1;
    }bits;
    unsigned char data;
};
int main(){
    union status MyStat;
    printf("input hex byte:");
    scanf("%x", &(MyStat.data));
    printf("\ndevice status:");
    printf("\nrec  :%s", (MyStat.bits.rec  )?"on":"off");
    printf("\npause:%s", (MyStat.bits.pause)?"on":"off");
    printf("\nplay :%s", (MyStat.bits.play )?"on":"off");
    getchar();
return 0;
}
Статус хранится в объединении, а именно data и bits находятся в одном и том же байте!
считывая с клавиатуры MyStat.data биты rec pause play устанавливаются в соответствии с тремя младшими битами data
Для этого я и храню их в объединении, чтобы можно было обращаться к байту или как к unsigned char data
или как к перекрывающему его в одной ячейке с ним битовому полю

Тут нет ничего лишнего, я не вижу ни одного способа записать это, вложив наоборот объединение внутрь структуры, преподаватели что просят решить задачу с помощбю объединения, просят именно это.
0
 Аватар для activnaya
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
26.11.2012, 06:07
Kuzia domovenok, так вот в чем смысл а я совсем не поняла. А теперь понимаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2012, 06:07

Типы данных: чем отличается тип данных int от float?
Всем привет! Помогите пожалуйста, чем отличается тип данных int от float?

Типы Данных
Извиняюсь, за тупой вопрос, но какой самый большой целочисленный тип данных доступный в компиляторе visual c++ express edition 2010, по...

Типы данных
Добрый день. Очень нужна помощь умных людей в написании программы, задание приведено ниже. Буду очень благодарен если кто-то откликнется. ...

типы данных
какой диапазон данных у main, getch? и какой тип данных у getch?

Типы данных
Перекопал везде и всюду, может где-то и есть обьяснение по поводу типов данных. Какая разница между следующими типами данных (имеется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru