
- •Алгоритм
- •3. Этапы решения задач на эвм.
- •4. Структу́рное программи́рование
- •6. Типизированные указатели.
- •7.Ссылочный тип.
- •8.Перечислимый тип.
- •10.Процедуры ввода-вывода. Потоковый ввод-вывод.
- •13.Условный оператор. Оператор выбора.
- •14.Операторы безусловного перехода.
- •16.Циклические программы. Вложенные циклы.
- •17.Глобальные и локальные переменные.
- •18.Функции. Механизм передачи параметров.
- •19.Вложенные функции. Рекурсия.
- •20.Область видимости и время жизни переменной.
- •21.Фактические и формальные параметры.
- •22.Перегрузка функций.
- •23.Шаблоны функций.
- •24.Понятие модуля. Преимущества модульного программирования. Структура модуля.
- •25.Пример модуля. Способ использования модуля.
- •27.Символьный тип данных. Строковые массивы. Способы обработки.
- •28.Основные операции над строками. Функции для работы со строками.
- •29.Структуры. Работа со структурами. Примеры.
- •30.Массивы структур. Особенности обработки. Примеры.
- •31.Файлы. Виды файлов. Файловая переменная. Общая схема работы с файлами.
- •33.Текстовые файлы. Функции обработки для текстовых файлов.
- •34.Бинарные файлы. Функции для работы с бинарными файлами.
- •35.Статическая и динамическая память.
- •37.Алгоритмы и методы сортировки: оценка эффективности алгоритма.
- •38.Сортировка выбором.
- •43.Алгоритмы и методы поиска в отсортированном массиве данных.
29.Структуры. Работа со структурами. Примеры.
Структура является объединением простых переменных. Эти переменные могут иметь различные типы: int, float и т. д. (именно разнородностью типов переменных структуры отличаются от массивов, в которых все переменные должны иметь одинаковый тип). Переменные, входящие в состав структуры, называются полями структуры.
Для тех, кто изучает язык C++, структуры являются одной из составляющих главных концепций языка – объектов и классов. На самом деле синтаксис структуры фактически идентичен синтаксису класса. На практике отличие структуры от класса заключается в следующем: структуры в языке С++, как правило, используют в качестве объединения данных, а классы — в качестве объединения данных и функций. Таким образом, изучая структуры в языке С++, мы тем самым закладываем основы для понимания классов и объектов.
Простая структура
Мы начнем рассмотрение со структуры, содержащей три поля, два из которых имеют целый тип и одно поле – вещественный тип. Эта структура предназначена для хранения информации о комплектующих деталях изделий, выпускаемых фабрикой. Компания производит несколько типов изделий, поэтому номер модели изделия включен в структуру как первое из полей. Номер самой детали представлен вторым полем, а ее стоимость – последним, третьим полем.
В программе PARTS определяется структура part и переменная part1 типа part. Затем полям переменной part присваиваются значения и выводятся на экран.1 // parts.срр - структура для хранения информации о деталях изделий
2 #include "iostream"
3
4 using namespace std;
5
6 struct part // объявление структуры
7 {
8 int modelnumber; // номер модели изделия
9 int partnumber; // номер детали
10 float cost; // стоимость детали
11 };
12
13 void main()
14 {
15 part part1; // определение структурной переменной
16 part1.modelnumber = 6244; // инициализация полей
17 part1.partnumber = 373; // переменной part1
18 part1.cost = 217.55F;
19
20 // вывод значений полей на экран
21 cout << "Модель " << part1.modelnumber;
22 cout << ", деталь " << part1.partnumber;
23 cout << ", стоимость $" << part1.cost << endl;
24 }
Результат работы программы выглядит следующим образом:
Модель 6244, деталь 373, цена $217.55
В программе PARTS присутствуют три основных аспекта работы со структурами: определение структуры, определение переменной типа этой структуры и доступ к полям структуры. Рассмотрим каждый из этих аспектов.
Определение структуры
Определение структуры в языке С++ задает ее внутреннюю организацию, описывая поля, входящие в состав структуры:struct part
{
int modelnumber;
int partnumber;
float cost;
};
Синтаксис определения структуры
Определение структуры в языке С++ начинается с ключевого слова struct. Затем следует имя структуры, в данном случае этим именем является part. Объявления полей структуры modelnumber, partnumber и cost заключены в фигурные скобки. После закрывающей фигурной скобки следует точка с запятой (;) – символ, означающий конец определения структуры. Обратите внимание на то, что использование точки с запятой после блока операторов при определении структуры отличает синтаксис структуры от синтаксиса других рассмотренных нами элементов программы. Как мы видели, в циклах, ветвлениях и функциях блоки операторов тоже ограничивались фигурными скобками, однако точка с запятой после таких блоков не ставилась.
Смысл определения структуры
Определение структуры part необходимо для того, чтобы создавать на его основе переменные типа part. Само определение не создает никаких переменных; другими словами, не происходит ни выделения физической памяти, ни объявления переменной. В то же время определение обычной переменной предполагает выделение памяти под эту переменную. Таким образом, определение структуры фактически задает внутреннюю организацию структурных переменных после того, как они будут определены.
Определение структурной переменной
Первый оператор функции main() выглядит следующим образом:part part1;
Он представляет собой определение переменной part1, имеющей тип part. Определение переменной означает, что под эту переменную выделяется память.