Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка С.doc
Скачиваний:
13
Добавлен:
12.11.2019
Размер:
1.94 Mб
Скачать

8.4 Битовые поля

Битовые поля - это особый вид полей структуры. Они используются для плотной упаковки данных, например, флажков типа «да/нет». Минимальная адресуемая ячейка памяти - 1 байт, а для хранения флажка достаточно одного бита. При описании битового поля после имени через двоеточие указывается длина поля в битах (целая положительная константа):

struct Options{

bool centerX:1;

bool centerY:1;

unsigned int shadow:2;

unsigned int palette:4;

};

Битовые поля могут быть любого целого типа. Имя поля может отсутствовать, такие поля служат для выравнивания на аппаратную границу. Доступ к полю осуществляется обычным способом - по имени. Адрес поля получить нельзя, однако в остальном битовые поля можно использовать точно так же, как обычные поля структуры. Следует учитывать, что операции с отдельными битами реализуются гораздо менее эффективно, чем с байтами и словами, так как компилятор должен генерировать специальные коды, и экономия памяти под переменные оборачивается увеличением объема кода программы. Размещение битовых полей в памяти зависит от компилятора и аппаратуры.

8.5 Задачи для решения на тему «структуры»

Вариант 1. Описать структуру, содержащую следующие поля:

  • фамилия и инициалы;

  • номер группы;

  • успеваемость (3 предмета).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на дисплей фамилий и номеров групп для всех студентов, если средний балл студента больше 4.

Вариант 2. Описать структуру, содержащую следующие поля:

  • фамилия и инициалы;

  • номер группы;

  • успеваемость (3 предмета).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5.

Вариант 3. Описать структуру, содержащую следующие поля:

  • фамилия и инициалы;

  • номер группы;

  • успеваемость (3 предмета).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур.

  • вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2.

Вариант 4. Описать структуру, содержащую следующие поля:

  • название пункта назначения рейса;

  • номер рейса;

  • тип самолета.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры.

Вариант 5. Описать структуру, содержащую следующие поля:

  • название пункта назначения рейса;

  • номер рейса;

  • тип самолета.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры.

Вариант 6. Описать структуру, содержащую следующие поля:

  • фамилия и инициалы работника;

  • название занимаемой должности;

  • год поступления на работу.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры.

Вариант 7. Описать структуру, содержащую следующие поля:

  • название пункта назначения;

  • номер поезда;

  • время отправления.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о поездах, отправляющихся после введенного с клавиатуры времени.

Вариант 8. Описать структуру, содержащую следующие поля:

  • название пункта назначения;

  • номер поезда;

  • время отправления.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры.

Вариант 9. Описать структуру, содержащую следующие поля:

  • название пункта назначения;

  • номер поезда;

  • время отправления.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о поезде, номер которого введен с клавиатуры.

Вариант 10. Описать структуру, содержащую следующие поля:

  • название начального пункта маршрута;

  • название конечного пункта маршрута;

  • номер маршрута.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о маршруте, номер которого введен с клавиатуры.

Вариант 11. Описать структуру, содержащую следующие поля:

  • название начального пункта маршрута;

  • название конечного пункта маршрута;

  • номер маршрута.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о маршрутах, которые начинаются или оканчиваются в пункте, название которого введено с клавиатуры.

Вариант 12. Описать структуру, содержащую следующие поля:

  • фамилия, имя;

  • номер телефона;

  • дата рождения (число, месяц, год).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о человеке, номер телефона которого введен с клавиатуры.

Вариант 13. Описать структуру, содержащую следующие поля:

  • фамилия, имя;

  • номер телефона;

  • дата рождения (число, месяц, год).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о людях, чьи дни рождения приходятся на месяц, значение которого введение клавиатуры.

Вариант 14. Описать структуру, содержащую следующие поля:

  • фамилия, имя;

  • номер телефона;

  • дата рождения (число, месяц, год).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о человеке, чья фамилия введена с клавиатуры.

Вариант 15. Описать структуру, содержащую следующие поля:

  • фамилия, имя;

  • знак Зодиака;

  • дата рождения (число, месяц, год).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структу;

  • вывод на экран информации о человеке, чья фамилия введена с клавиатуры.

Вариант 16. Описать структуру, содержащую следующие поля:

  • фамилия, имя;

  • знак Зодиака;

  • дата рождения (число, месяц, год).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры.

Вариант 17. Описать структуру, содержащую следующие поля:

  • фамилия, имя;

  • знак Зодиака;

  • дата рождения (число, месяц, год).

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о людях, родившихся в месяц, значение которого введено с клавиатуры.

Вариант 18. Описать структуру, содержащую следующие поля:

  • название товара;

  • название магазина, в котором продается товар;

  • стоимость товара в рублях.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о товаре, название которого введено с клавиатуры.

Вариант 19. Описать структуру, содержащую следующие поля:

  • название товара;

  • название магазина, в котором продается товар;

  • стоимость товара в рублях.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры.

Вариант 20. Описать структуру, содержащую следующие поля:

  • название товара;

  • название магазина, в котором продается товар;

  • стоимость товара в рублях.

Написать программу, выполняющую следующие действия:

  • ввод с клавиатуры данных в массив, состоящий из 5 структур;

  • вывод на экран информации о товаре с минимальной ценой.