Скачать презентацию Структурированный тип данных Структура это тип Скачать презентацию Структурированный тип данных Структура это тип

Структуры.pptx

  • Количество слайдов: 11

Структурированный тип данных Структурированный тип данных

Структура – это тип данных, который может включать в себя несколько полей – элементов Структура – это тип данных, который может включать в себя несколько полей – элементов разных типов (в том числе и другие структуры). Тип структура обычно используется при разработке информационных систем, баз данных. Правила использования структур рассмотрим на примере сведения о выплате студентам стипендии.

Студент Фамилия Курс Группа Стипендия Элементы такой структуры (фамилия, курс, группа, стипендия) называются полями. Студент Фамилия Курс Группа Стипендия Элементы такой структуры (фамилия, курс, группа, стипендия) называются полями. Каждому полю должно быть поставлено в соответствие имя и тип.

Формат описания структурного типа следующий: struct имя_типа{ определения_элементов }; структура название поля struct Student Формат описания структурного типа следующий: struct имя_типа{ определения_элементов }; структура название поля struct Student { char suname[15]; int kurs; char grup[6]; float stip; }; ! Память не выделяется!

student становится именем структурного типа, который может быть назначен некоторым переменным. В соответствие со student становится именем структурного типа, который может быть назначен некоторым переменным. В соответствие со стандартом Си : struct Student stud 1, stud 2, *pst; pst указатель на такую структуру Для обращения к полю структуры ! используется точка! stud 1. fam; stud 1. stip; (*pst). fam или pst→fam

Значения элементов структуры могут определяться вводом, присваиванием, инициализацией. Пример инициализации в описании: student studl={ Значения элементов структуры могут определяться вводом, присваиванием, инициализацией. Пример инициализации в описании: student studl={"Кротов", 1, “ 315 a 1", 350}; student *pst, stud 1; Тогда после выполнения оператора присваивания pst=&studl; stud 1. fam или (*pst). fam или pst→fam pst->FIO, pst->grup, pst->stip.

Массивы структур Объявление: stud[0] . . . stud[9] Student stud[10]; Обращение к полям: for Массивы структур Объявление: stud[0] . . . stud[9] Student stud[10]; Обращение к полям: for ( i = 0; i < 10; i ++ ) stud[i]. grup = 403 a 1; Запись в двоичный файл: FILE *f; f = fopen("input. dat", "wb" ); адрес массива размер блока fio kurs grup stip Student write binary сколько блоков указатель на файл fwrite (stud, sizeof(Student), 10, f ); Чтение из двоичного файла: ! f = fopen("input. dat", "rb" ); n = fread ( stud, sizeof(Student), 10, f ); printf ( "Прочитано %d структур", n ); fread возвращает число удачно прочитанных блоков!

Пример 1. Ввести сведения об N студентах. Определить фамилии студентов, получающих повышенную стипендию. Пример 1. Ввести сведения об N студентах. Определить фамилии студентов, получающих повышенную стипендию.

Выделение памяти под структуру выделить память под структуру, записать ее адрес в переменную p Выделение памяти под структуру выделить память под структуру, записать ее адрес в переменную p Student *p; =(Student*)malloc(sizeof(student)); p = new Book; printf ("Фамилия " ); gets ( p->suname); ! printf (" Курс " ); scanf ("%d", & p->kurs ); printf ("Группа " ); gets( p->grup ); printf ("Группа " ); scanf("%f", & p->stip ); . . . free(p); освободить память Для обращения к полю структуры по адресу используется стрелка ->!