🗊Презентация Структури в С/С++

Нажмите для полного просмотра!
Структури в С/С++, слайд №1Структури в С/С++, слайд №2Структури в С/С++, слайд №3Структури в С/С++, слайд №4Структури в С/С++, слайд №5Структури в С/С++, слайд №6Структури в С/С++, слайд №7Структури в С/С++, слайд №8Структури в С/С++, слайд №9Структури в С/С++, слайд №10

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

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


Слайд 1





Структури в С/С++
Структура в мові С(С++) – це агрегатний тип даних, який складається з визначеної кількості елементів різних типів, що називаються членами структури (інколи – полями структури). Синтаксис визначення структури:
struct tag_name 
{
	<тип_1> mem_1; //перший член структури
	<тип_2> mem_2; //другий член структури
   	...
	<тип_n> mem_n;//останній член структури
};			// крапка з комою обов’язкова
Визначення екземпляру структури:
struct tag_name id_example;  	// стиль С 
tag_name id_example; 		// стиль С++
Доступ до членів структури – через крапкову нотацію.
Описание слайда:
Структури в С/С++ Структура в мові С(С++) – це агрегатний тип даних, який складається з визначеної кількості елементів різних типів, що називаються членами структури (інколи – полями структури). Синтаксис визначення структури: struct tag_name { <тип_1> mem_1; //перший член структури <тип_2> mem_2; //другий член структури ... <тип_n> mem_n;//останній член структури }; // крапка з комою обов’язкова Визначення екземпляру структури: struct tag_name id_example; // стиль С tag_name id_example; // стиль С++ Доступ до членів структури – через крапкову нотацію.

Слайд 2





Зауваження
Зауваження
1. При визначенні структури тег не є обов'язковим. Але тоді екземпляри структури, визначеної анонімно – без тегу, мають визначатись одразу після фігурної дужки, що закриває тіло структури.
2. При визначенні екземпляру структури в мові С вживання службового слова struct обов'язкове, а в С++  – може бути пропущене.
3. Обмежень на типи членів структури немає, крім одного – членом структури не може бути екземпляр даної структури, проте може бути вказівник на неї (Це дозволяє створювати динамічні структури даних – списки, дерева, тощо).
4. Структури можуть бути параметрами функцій та повертатись як результат функції.
5. В С++ членами структури можуть бути функції (методи), зокрема - конструктор.
6. Вважається хорошим стилем програмування тег структури записувати великими літерами – так структури краще відрізняти від звичайних змінних.
Описание слайда:
Зауваження Зауваження 1. При визначенні структури тег не є обов'язковим. Але тоді екземпляри структури, визначеної анонімно – без тегу, мають визначатись одразу після фігурної дужки, що закриває тіло структури. 2. При визначенні екземпляру структури в мові С вживання службового слова struct обов'язкове, а в С++ – може бути пропущене. 3. Обмежень на типи членів структури немає, крім одного – членом структури не може бути екземпляр даної структури, проте може бути вказівник на неї (Це дозволяє створювати динамічні структури даних – списки, дерева, тощо). 4. Структури можуть бути параметрами функцій та повертатись як результат функції. 5. В С++ членами структури можуть бути функції (методи), зокрема - конструктор. 6. Вважається хорошим стилем програмування тег структури записувати великими літерами – так структури краще відрізняти від звичайних змінних.

Слайд 3





Приклад.
Приклад.
// Визначаємо полярні координати 
struct POLAR
{
 float r;
 float phi;
};
// Визначаємо полярні точки a, b
struct POLAR a, b;
// Доступ до членів структури:
	a.r   = 1;
	a.phi = 0;
// Структуру можна ініціалізувати
struct POLAR с = {1, M_PI*0.5};
Описание слайда:
Приклад. Приклад. // Визначаємо полярні координати struct POLAR { float r; float phi; }; // Визначаємо полярні точки a, b struct POLAR a, b; // Доступ до членів структури: a.r = 1; a.phi = 0; // Структуру можна ініціалізувати struct POLAR с = {1, M_PI*0.5};

Слайд 4





Допустимі операції зі структурами: 
Допустимі операції зі структурами: 
доступ до членів структури;
копіювання й присвоєння структур;
взяття адреси структури.
Структури також можуть передаватись у функції в ролі параметрів (за значенням) і повертатись як результат функції. 
Приклад (продовження)
struct POLAR
{
 float r, phi;
};
struct POLAR a, b, *p;
 a.r   = 1;
 a.phi = 0;
 b = a;	// копіювання структури
 p = &b;	// взяття адреси структури 
 (*p).r = 5; // дужки обов'язкові - визначають порядок  операцій
Для спрощення запису доступу до членів структури, що адресується вказівником, використовується спеціальна операція, яка позначається –> (знак – і знак >). Отже, останній рядок можна записати таким чином:
 p –> r = 0;
Зверніть увагу, ліворуч від –> знаходиться вказівник на структуру, праворуч – член структури.
Описание слайда:
Допустимі операції зі структурами: Допустимі операції зі структурами: доступ до членів структури; копіювання й присвоєння структур; взяття адреси структури. Структури також можуть передаватись у функції в ролі параметрів (за значенням) і повертатись як результат функції. Приклад (продовження) struct POLAR { float r, phi; }; struct POLAR a, b, *p; a.r = 1; a.phi = 0; b = a; // копіювання структури p = &b; // взяття адреси структури (*p).r = 5; // дужки обов'язкові - визначають порядок операцій Для спрощення запису доступу до членів структури, що адресується вказівником, використовується спеціальна операція, яка позначається –> (знак – і знак >). Отже, останній рядок можна записати таким чином: p –> r = 0; Зверніть увагу, ліворуч від –> знаходиться вказівник на структуру, праворуч – член структури.

Слайд 5





Переліки в С/С++
Перелік в мові С(С++) – це тип даних, який використовується для створення набору іменованих констант. Синтаксис визначення переліку:
enum <tag_name> 
{
<const_1> [=<value_1>], 
<const_2> [=<value_2>], 	
...
<const_n> [=<value_n>],
};
Якщо значення констант вказані не всі, або не вказані взагалі, то присвоюються значення з кроком +1, починаючи від останньої, або від 0, починаючи з першої.
Описание слайда:
Переліки в С/С++ Перелік в мові С(С++) – це тип даних, який використовується для створення набору іменованих констант. Синтаксис визначення переліку: enum <tag_name> { <const_1> [=<value_1>], <const_2> [=<value_2>], ... <const_n> [=<value_n>], }; Якщо значення констант вказані не всі, або не вказані взагалі, то присвоюються значення з кроком +1, починаючи від останньої, або від 0, починаючи з першої.

Слайд 6





Приклад.
Приклад.
/* Використовуємо перелік для назв днів тижня */
enum Days
{
   Mn = 1, Tu, Wn, Th, Fr, Sa, Su
};                
int main()
{
	enum Days d;
	d = Th;
	cout << d;	// виведеться значення 4
	system ("PAUSE");
	return 0;
}
Описание слайда:
Приклад. Приклад. /* Використовуємо перелік для назв днів тижня */ enum Days { Mn = 1, Tu, Wn, Th, Fr, Sa, Su }; int main() { enum Days d; d = Th; cout << d; // виведеться значення 4 system ("PAUSE"); return 0; }

Слайд 7





Об'єднання в С/С++
Об'єднання в мові С(С++) – це тип даних, який складається з визначеної кількості елементів, що називаються членами об'єднання (інколи – полями об'єднання). В пам'яті знаходиться завжди один і тільки один член об'єднання. Тобто об'єднання – це структура із нульовим зміщенням кожного поля відносно її початку. Синтаксис об'єднання :
union tag_name 
{
	<тип_1> mem_1; //перший член об'єднання
	<тип_2> mem_2; //другий член об'єднання
   	...
	<тип_n> mem_n;//останній член об'єднання
};			// крапка з комою обов’язкова
Визначення екземпляру об'єднання :
union tag_name id_example;  	// стиль С 
tag_name id_example; 		     // стиль С++
Доступ до членів об'єднання – через крапкову нотацію або операцію –> для вказівників, так само як і для структури.
Описание слайда:
Об'єднання в С/С++ Об'єднання в мові С(С++) – це тип даних, який складається з визначеної кількості елементів, що називаються членами об'єднання (інколи – полями об'єднання). В пам'яті знаходиться завжди один і тільки один член об'єднання. Тобто об'єднання – це структура із нульовим зміщенням кожного поля відносно її початку. Синтаксис об'єднання : union tag_name { <тип_1> mem_1; //перший член об'єднання <тип_2> mem_2; //другий член об'єднання ... <тип_n> mem_n;//останній член об'єднання }; // крапка з комою обов’язкова Визначення екземпляру об'єднання : union tag_name id_example; // стиль С tag_name id_example; // стиль С++ Доступ до членів об'єднання – через крапкову нотацію або операцію –> для вказівників, так само як і для структури.

Слайд 8





Зауваження
Зауваження
1. Всі зауваження, які були зроблені щодо структур, справедливі і для об'єднань.
2. Об'єднання часто використовуються для неявного приведення типів – наприклад, можна записати одним членом об'єднання дійсне значення, а прочитати з іншого – ціле. Проте такі дії можуть привести до неочікуваних побічних ефектів.
Описание слайда:
Зауваження Зауваження 1. Всі зауваження, які були зроблені щодо структур, справедливі і для об'єднань. 2. Об'єднання часто використовуються для неявного приведення типів – наприклад, можна записати одним членом об'єднання дійсне значення, а прочитати з іншого – ціле. Проте такі дії можуть привести до неочікуваних побічних ефектів.

Слайд 9





Приклад.
Приклад.
/* Використовуємо об'єднання для приведення типів – результат сумнівний */
union casting
{
   int i;
   float f;   
   unsigned u;
};                
int main()
{
   union casting cast = {-1}; /* ініціалізувати можна лише перший член об'єднання */
   cout << "\nfloat member: " << cast.f << endl;
   cout << "\nint member: " << cast.i << endl;
   cout << "\nunsigned member: " << hex << cast.u 
        << endl;
   system ("PAUSE");
return 0;
}
Описание слайда:
Приклад. Приклад. /* Використовуємо об'єднання для приведення типів – результат сумнівний */ union casting { int i; float f; unsigned u; }; int main() { union casting cast = {-1}; /* ініціалізувати можна лише перший член об'єднання */ cout << "\nfloat member: " << cast.f << endl; cout << "\nint member: " << cast.i << endl; cout << "\nunsigned member: " << hex << cast.u << endl; system ("PAUSE"); return 0; }

Слайд 10





Бітові поля в С/С++
Бітові поля в мові С(С++) – це структура, яка складається з визначеної кількості окремих бітів вказаної довжини. Синтаксис структури – бітове поле:
struct bit_field 
{
<тип_1> mem_1 : n1; // n1 – довжина в бітах <тип_2> mem_2 : n2; // n2 – довжина в бітах 
   	...
<тип_n> mem_n : nn; // nn – довжина в бітах 
};
Можна використати об’єднання, членами якого є ціле число та бітове поле – це забезпечить простий доступ до окремих бітів цілого числа!
Описание слайда:
Бітові поля в С/С++ Бітові поля в мові С(С++) – це структура, яка складається з визначеної кількості окремих бітів вказаної довжини. Синтаксис структури – бітове поле: struct bit_field { <тип_1> mem_1 : n1; // n1 – довжина в бітах <тип_2> mem_2 : n2; // n2 – довжина в бітах ... <тип_n> mem_n : nn; // nn – довжина в бітах }; Можна використати об’єднання, членами якого є ціле число та бітове поле – це забезпечить простий доступ до окремих бітів цілого числа!



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