🗊Презентация Структуры и объединения

Нажмите для полного просмотра!
Структуры и объединения, слайд №1Структуры и объединения, слайд №2Структуры и объединения, слайд №3Структуры и объединения, слайд №4Структуры и объединения, слайд №5Структуры и объединения, слайд №6Структуры и объединения, слайд №7Структуры и объединения, слайд №8Структуры и объединения, слайд №9Структуры и объединения, слайд №10Структуры и объединения, слайд №11Структуры и объединения, слайд №12Структуры и объединения, слайд №13Структуры и объединения, слайд №14Структуры и объединения, слайд №15Структуры и объединения, слайд №16Структуры и объединения, слайд №17Структуры и объединения, слайд №18Структуры и объединения, слайд №19Структуры и объединения, слайд №20

Вы можете ознакомиться и скачать презентацию на тему Структуры и объединения. Доклад-сообщение содержит 20 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Структуры и объединения
Structures and unions
Описание слайда:
Структуры и объединения Structures and unions

Слайд 2





Структуры
Структура – это множество поименованных элементов в общем случае разных типов.
Объявление типа struct имеет вид: 
struct имя_типа {описание элементов};
Элементы структуры называются полями, могут иметь любой тип, в том числе быть указателями на тип самой структуры.
Описание слайда:
Структуры Структура – это множество поименованных элементов в общем случае разных типов. Объявление типа struct имеет вид: struct имя_типа {описание элементов}; Элементы структуры называются полями, могут иметь любой тип, в том числе быть указателями на тип самой структуры.

Слайд 3





Поля структуры
Имена полей в структуре должны различаться. 
Имена элементов разных структур могут совпадать. 
Элементом структуры может быть другая структура.
	struct pets { char name[10];
                           int age };
	struct boy { char name[10];
                          int age;
                          pets pet };
Описание слайда:
Поля структуры Имена полей в структуре должны различаться. Имена элементов разных структур могут совпадать. Элементом структуры может быть другая структура. struct pets { char name[10]; int age }; struct boy { char name[10]; int age; pets pet };

Слайд 4





Объявление переменных
Следующий оператор:
struct book library; 
создает объект типа struct book, под который выделяется 110 байт 
памяти в соответствии со структурным шаблоном. 
Используя тип struct book, можно описать несколько объектов: 
struct book library, catalog[10], *plibrary; 
Можно объединить описание структурного шаблона и фактическое 
определение структурной переменной:
		struct book 
		{ 
			char title[81];
			int    year;
			int    page;
			float price;
 		} library;
Описание слайда:
Объявление переменных Следующий оператор: struct book library; создает объект типа struct book, под который выделяется 110 байт памяти в соответствии со структурным шаблоном. Используя тип struct book, можно описать несколько объектов: struct book library, catalog[10], *plibrary; Можно объединить описание структурного шаблона и фактическое определение структурной переменной: struct book { char title[81]; int year; int page; float price; } library;

Слайд 5





Инициализация и доступ
Элементы структуры в памяти запоминаются последовательно, в том порядке, в котором они объявляются: первому элементу соответствует меньший адрес памяти, последнему - больший.
Структурную переменную можно инициализировать в операторе описания подобно массиву:
	struct book library = {	“Язык С++”,
           	                      	“Страуструп”,
                    		1990,
                    		500,  
                              		1000 }; 
Доступ к элементам структуры осуществляется с помощью операции точка:
	library.author=”Павловская”;	// явная инициализация
	gets (library.author); 		//ввод значения
Описание слайда:
Инициализация и доступ Элементы структуры в памяти запоминаются последовательно, в том порядке, в котором они объявляются: первому элементу соответствует меньший адрес памяти, последнему - больший. Структурную переменную можно инициализировать в операторе описания подобно массиву: struct book library = { “Язык С++”, “Страуструп”, 1990, 500, 1000 }; Доступ к элементам структуры осуществляется с помощью операции точка: library.author=”Павловская”; // явная инициализация gets (library.author); //ввод значения

Слайд 6





Массивы структур
Описание массива структур аналогично описанию любого другого массива:
	struct book catalog[10];
 
Каждый элемент массива catalog представляет собой структуру типа book.
Для доступа к элементу массива используется индекс, который присоединяется к имени массива: 
	catalog[2].title
	catalog[4].price
	catalog[2].title[5]       //6 элемент символьного массива в 3-й структуре
Описание слайда:
Массивы структур Описание массива структур аналогично описанию любого другого массива: struct book catalog[10]; Каждый элемент массива catalog представляет собой структуру типа book. Для доступа к элементу массива используется индекс, который присоединяется к имени массива: catalog[2].title catalog[4].price catalog[2].title[5] //6 элемент символьного массива в 3-й структуре

Слайд 7





Списки структур
Элемент структуры может быть объявлен как указатель на тип 
структуры, в которую он входит. Это позволяет создавать 
связанные списки структур:
	struct sample
	{
		char    c;
		float    f;
		struct sample *next;
	} x;
Присвоим переменной x.next адрес динамически выделенной 
области памяти для хранения значения структуры того же типа: 
	x.next = (struct sample*) malloc (sizeof (x));
Описание слайда:
Списки структур Элемент структуры может быть объявлен как указатель на тип структуры, в которую он входит. Это позволяет создавать связанные списки структур: struct sample { char c; float f; struct sample *next; } x; Присвоим переменной x.next адрес динамически выделенной области памяти для хранения значения структуры того же типа: x.next = (struct sample*) malloc (sizeof (x));

Слайд 8





Вложенные структуры
Элементом структуры может быть другая структура.
	struct myfile {
		char  name[10];
		char  ftype[4];
		int     ver;
	};
	struct dir {
		struct  myfile  f;
		int                   size;
	} my_f [100];
Шаблон для вложенной структуры должен располагаться перед определением фактической структурной переменной в рамках другой структуры.
	my_f [0].size	//элемент size 1-ой структуры 
	my_f [2].f.ver	//элемент ver вложенной структуры f в 3-й структуре my_f
Описание слайда:
Вложенные структуры Элементом структуры может быть другая структура. struct myfile { char name[10]; char ftype[4]; int ver; }; struct dir { struct myfile f; int size; } my_f [100]; Шаблон для вложенной структуры должен располагаться перед определением фактической структурной переменной в рамках другой структуры. my_f [0].size //элемент size 1-ой структуры my_f [2].f.ver //элемент ver вложенной структуры f в 3-й структуре my_f

Слайд 9





Указатели на структуры
Объявим указатель на структуру:
	struct dir *pst;
Указатель *pst можно использовать для ссылок на любые структуры типа dir:
	pst = &my_f [0];
Доступ к полям структуры через указатель осуществляется с помощью операции косвенного доступа  
	pst->size ≡ my_f [0].size
	(pst+i)->size ≡ my_f [i].size
Для вложенных структур:
	my_f [0].f.ver ≡ pst (f.ver)
	my_f [0].f.name[0] ≡ pst (f.name[0])
Описание слайда:
Указатели на структуры Объявим указатель на структуру: struct dir *pst; Указатель *pst можно использовать для ссылок на любые структуры типа dir: pst = &my_f [0]; Доступ к полям структуры через указатель осуществляется с помощью операции косвенного доступа  pst->size ≡ my_f [0].size (pst+i)->size ≡ my_f [i].size Для вложенных структур: my_f [0].f.ver ≡ pst (f.ver) my_f [0].f.name[0] ≡ pst (f.name[0])

Слайд 10





Структуры и функции
Для передачи информации о структуре внутрь функции 
используются следующие способы:
Использование в качестве фактического аргумента элемента структуры.
Использование в качестве фактического аргумента адреса структуры. 
Использование в качестве фактического аргумента самой структуры.
Описание слайда:
Структуры и функции Для передачи информации о структуре внутрь функции используются следующие способы: Использование в качестве фактического аргумента элемента структуры. Использование в качестве фактического аргумента адреса структуры. Использование в качестве фактического аргумента самой структуры.

Слайд 11





Ответьте
Описание слайда:
Ответьте

Слайд 12





Битовые поля
Битовые поля применяются для экономного хранения данных малого диапазона, а также для работы с данными, в которых отдельные биты имеют самостоятельное значение. 
Битовое поле может быть объявлено только как элемент структуры.
Цепочка битов не должна превышать машинного слова.
	
	/*контрольный байт*/
	struct bit_area
	{
		unsigned char 	er : 1;	//бит ошибки
 		unsigned char 	rd : 1;	//бит готовности
 		unsigned char 	dat : 6; 	//поле данных
	}cntrl_byte;
Описание слайда:
Битовые поля Битовые поля применяются для экономного хранения данных малого диапазона, а также для работы с данными, в которых отдельные биты имеют самостоятельное значение. Битовое поле может быть объявлено только как элемент структуры. Цепочка битов не должна превышать машинного слова. /*контрольный байт*/ struct bit_area { unsigned char er : 1; //бит ошибки unsigned char rd : 1; //бит готовности unsigned char dat : 6; //поле данных }cntrl_byte;

Слайд 13





Ответьте
Описание слайда:
Ответьте

Слайд 14





Объединения
Объявление объединения синтаксически совпадает с объявлением структуры, но начинается с ключевого слова union.
Поля объединения хранятся в одной области памяти и имеют один и тот же начальный адрес.
Размер объединения определяется максимальным размером его элементов.
Объединения экономят память и используются, если в каждый момент времени используется только одно поле.
	union small {	int x;
                 	char s[10];
                  	float y;
	} val;
Под объект val память выделяется в соответствии с размером максимального поля - 10 байт.
Описание слайда:
Объединения Объявление объединения синтаксически совпадает с объявлением структуры, но начинается с ключевого слова union. Поля объединения хранятся в одной области памяти и имеют один и тот же начальный адрес. Размер объединения определяется максимальным размером его элементов. Объединения экономят память и используются, если в каждый момент времени используется только одно поле. union small { int x; char s[10]; float y; } val; Под объект val память выделяется в соответствии с размером максимального поля - 10 байт.

Слайд 15





Пример (стандарт IEEE-754)
Описание слайда:
Пример (стандарт IEEE-754)

Слайд 16





Битовые поля и объединения
struct options {		//объявим тип-структуру с битовыми полями
	bool center_x:1;
	bool center_y:1;
	unsigned int shadow:2;
	unsigned int palette:4;
};

union {			//объединение – для разной интерпретации options
	unsigned char mask;	//для работы со всеми битами сразу - mask
	options bit;		//для работы с полями структуры - bit
} option = {0xC4};

cout << option.bit.palette;	//так выводится информация по битам palette
option.mask &= 0xFA;	//так накладывается маска на все биты сразу
Описание слайда:
Битовые поля и объединения struct options { //объявим тип-структуру с битовыми полями bool center_x:1; bool center_y:1; unsigned int shadow:2; unsigned int palette:4; }; union { //объединение – для разной интерпретации options unsigned char mask; //для работы со всеми битами сразу - mask options bit; //для работы с полями структуры - bit } option = {0xC4}; cout << option.bit.palette; //так выводится информация по битам palette option.mask &= 0xFA; //так накладывается маска на все биты сразу

Слайд 17





Ответьте
Описание слайда:
Ответьте

Слайд 18





Перечислимые типы данных
Перечислимый тип (перечисление) – определение целочисленных констант, для каждой из которых вводятся имя и значение.
Объявление: 
	enum имя_типа {список перечисления} идентификатор;
Пример:
	enum progr {C, Pascal, Foxpro, Modula 2, Basic, Fortran} lang;
Пример явной инициализации констант:
	enum  mas {elem1 = -1, elem2, elem3 = 5};
Элементам перечисления могут быть присвоены одинаковые значения:
	enum mas {elem1 = 2, elem2, elem3 = 2, elem4};
Описание слайда:
Перечислимые типы данных Перечислимый тип (перечисление) – определение целочисленных констант, для каждой из которых вводятся имя и значение. Объявление: enum имя_типа {список перечисления} идентификатор; Пример: enum progr {C, Pascal, Foxpro, Modula 2, Basic, Fortran} lang; Пример явной инициализации констант: enum mas {elem1 = -1, elem2, elem3 = 5}; Элементам перечисления могут быть присвоены одинаковые значения: enum mas {elem1 = 2, elem2, elem3 = 2, elem4};

Слайд 19





Ответьте
Описание слайда:
Ответьте

Слайд 20





Вопросы?
Описание слайда:
Вопросы?



Похожие презентации
Mypresentation.ru
Загрузить презентацию