![](/user_photo/2706_HbeT2.jpg)
- •Красноярск
- •Федеральное агентство по образованию гоу впо «Сибирский государственный технологический университет»
- •220301 Автоматизация технологических процессов и производств,
- •230201 Информационные системы и технологии,
- •230105 Программное обеспечение вычислительной техники и автоматизированных систем всех форм обучения Красноярск
- •Содержание
- •Введение
- •1 Состав языка
- •1.1 Алфавит языка
- •1.2 Идентификаторы
- •1.3 Ключевые слова
- •1.4 Знаки операций
- •1.5 Константы
- •1.6 Комментарии
- •2.1 Концепция типа данных
- •2.2 Основные типы данных
- •3 Структура программы
- •4 Ввод/вывод
- •5 Переменные и выражения
- •5.1 Переменные
- •5.2 Операции
- •5.3 Выражения
- •6 Базовые конструкции структурного программирования
- •6.1 Оператор «выражение»
- •6.1.1 Задачи для решения на тему «линейные алгоритмы»
- •6.2 Операторы ветвления
- •6.2.1 Условный оператор if
- •6.2.2 Оператор switch
- •6.2.3 Задачи для решения на тему «условные алгоритмы»
- •6.3 Операторы цикла
- •6.3.1 Цикл с предусловием (while)
- •6.3.2 Цикл с постусловием (do while)
- •6.3.3 Цикл с параметром (for)
- •6.3.4 Задачи для решения на тему «сочетание цикла и разветвления»
- •6.4 Операторы передачи управления
- •6.4.1 Оператор goto
- •6.4.2 Оператор break
- •6.4.3 Оператор continue
- •6.4.4 Оператор return
- •6.4.5 Задачи для решения на тему «вложенные циклы (вычисление суммы ряда)»
- •7 Указатели и массивы
- •7.1 Указатели
- •7.1.1 Инициализация указателей
- •7.1.2 Операции с указателями
- •7.2 Ссылки
- •7.3 Массивы
- •7.3.1 Задачи для решения на тему «одномерные массивы»
- •7.3.2 Задачи для решения на тему «двумерные массивы»
- •7.4 Строки
- •7.4.1 Функции стандартной библиотеки
- •7.4.2 Задачи для решения на тему «строки»
- •8.1 Переименование типов (typedef)
- •8.2 Перечисления (enum)
- •8.3 Структуры (struct)
- •8.4 Битовые поля
- •8.5 Задачи для решения на тему «структуры»
- •9 Функции
- •9.1 Объявление и определение функций
- •9.2 Глобальные переменные
- •9.3 Возвращаемое значение
- •9.4 Параметры функции
- •9.5 Передача массивов в качестве параметров
- •9.6 Параметры со значениями по умолчанию
- •9.7 Функции с переменным числом параметров
- •9.8 Рекурсивные функции
- •9.9 Задачи для решения на тему «функции»
- •10 Директивы препроцессора
- •10.1 Директива #include
- •10.2 Директива #define
- •11 Динамические структуры данных
- •11.1 Линейные списки
- •11.2 Стеки
- •11.3 Очереди
- •11.4 Бинарные деревья
- •11.5 Задачи на тему «динамические структуры»
- •Задание на курсовую работу
- •Библиографический список
- •660049, Красноярск, пр. Мира, 82
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 структур;
вывод на экран информации о товаре с минимальной ценой.