Презентация_Лекция_25-26(структуры).pptx
- Количество слайдов: 20
Структуры данных Понятие структуры Объявление структуры Обработка структур
Понятие структуры • Структура - это тип данных, который может включать в себя несколько полей – элементов разных типов (в том числе и другие структуры). • Например, информация о книге в каталоге библиотеки: автор, название книги, год издания, количество страниц и т. п.
Понятие структуры • Структура состоит из фиксированного числа элементов, называемых полями. Например: строка экзаменационной ведомости: • Андреева С. В. 4 5 5 • Данная структура состоит из четырех полей: одно поле - строкового типа (ФИО студента) и три числовых поля (оценки студента по предметам).
Работа со структурой четыре момента: • - объявление и определение типа структуры; • - объявление структурной переменной; • - инициализация (заполнение информацией) структурной переменной; • - использование структурной переменной;
Объявление структур • Поскольку структура - это новый тип данных, его надо предварительно объявить в начале программы (способ 1) void main() { struct Имя { <тип> < поле 1>; <тип> <поле 2>; ………… <тип> < последнее поле>; }; • Здесь <тип> - это int float или char
Объявление структур • Например, задание типа записи строки экзаменационной ведомости выглядит следующим образом: void main(){ struct Student { char fam[20]; int mathematics, informatics, history; };
Объявление структур • (способ 2) можно воспользоваться директивой #define. Например, для предыдущей структуры: #include <stdio. h> #define Student struct stud Student { char fam[20]; int mathematics, informatics, history; }; void main() { …….
Объявление структур • (способ 3) можно воспользоваться директивой typedef. Например, для предыдущей структуры: #include <stdio. h> typedef struct stud { char fam[20]; int mathematics, informatics, history; } Student; void main() { …….
Объявление структур Замечания: • Объявление способом 1 – внутри void main() • Объявление способами 2 и 3 – перед void main() • Но…. . эти объявления – это лишь описание логики объединения информации или структурирования
Описание структурной переменной: • Для способа 1 void main(){ …. . struct Student X; • Для способов 2 и 3 void main(){ Student X; X поле 1 поле 2 поле 3 поле 4 fam mathematics informatics history
Для обращения к отдельным полям переменной типа структура используется составное имя: имя переменной. имя поля Например, для переменной X обращения к полям записываются следующим образом: X. fam, X. mathematics, X. informatics, X. history.
Обработка структурных переменных • Работа со структурной переменной обычно сводится к работе с отдельными полями структурной переменной. • Такие операции, как ввод с клавиатуры, сравнение полей и вывод на экран применимы только к отдельным полям.
инициализация (заполнение информацией) структурной переменной; • Способ 1: Структурную переменную можно инициализировать сразу при объявлении Формат: struct Имя переменной ={значение 1, … значение. N}; например: void main(){ Student X={"Андреева С. В. ", 4, 5, 5};
инициализация (заполнение информацией) структурной переменной; Способ 2 void main() { Student X; strcpy(X. fam, "Андреева С. В. "); X. mathematics=4; X. informatics=5; X. history=5;
инициализация (заполнение информацией) структурной переменной • Способ 3: Для ввода данных с клавиатуры в структурную переменную используем оператор scanf void main(){ Student X; …… scanf("%s %d %d %d", X. fam, &X. mathematics, &X. informatics, &X. history); …… }
инициализация (заполнение информацией) структурной переменной • Способ 3: Для ввода данных с клавиатуры в структурную переменную используем оператор scanf void main(){ Student X; …… scanf("%s ", X. fam); scanf("%d %d %d", &X. mathematics, &X. informatics, &X. history); …… }
Вывод значений структурной переменной на экран void main() { Student X; strcpy(X. fam, ”Андреева С. В. ”); X. mathematics=4; X. informatics=5; X. history=5; …. . printf("n %s %d %d %d", X. fam, X. mathematics, X. informatics, X. history); . . . }
Обработка структурных переменных значения одной структурной переменной можно переписать в другую структурную переменную одной командой void main() { Student X; Student Y; Strcpy(X. fam, ”Андреева С. В. ”); X. mathematics=4; X. informatics=5; X. history=5; Y=X; printf("n %s %d %d", Y. fam, Y. mathematics, Y. informatics, Y. history); . . . }
Обработка структурных переменных • С помощью структурного типа можно формировать массивы записей. typedef struct stud { char fam[20]; int mathematics, informatics, history; } Student; void main() { Student Spis[200]; . . . }
Пример задачи с использованием структурированных данных • Рассмотрим пример программы, в которой вводится информация об абонентах сети(50): ФИО, телефон , возраст. В программе выбираются абоненты моложе 30 лет и их список выводится в алфавитном порядке.
Презентация_Лекция_25-26(структуры).pptx