Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Лекція 10

Тема : Структури, створення власних типів даних

Мета: Ознайомитися з тезнологією створення власних типів. Вивчити синтаксис створення структур. Навчитися розробляти програми зі структами.

Структура - це сукупність різнотипних елементів, яким привласнюється одне ім'я ( воно може бути відсутнім), що займає одну область пам'яті. Елементи структури називаються полями.

Як і будь-яка змінна, структурна змінна повинна бути описана. Цей опис складається із двох кроків: опис шаблона (тобто состава ) або типу структури й опису змінних структурного типу.

Синтаксис опису структури має вигляд:

struct < ім'я структури >

{ <тип 1 > ім'я поля 1;

< тип 2 > ім'я поля 2. . . . . . . .;

} р1, р2. . . .;

 

де struct — службове слово;

< ім'я структури > — ім'я типу структури ;

<тип 1>, <тип 2> — імена стандартних або визначених типів;

ім'я поля 1, ім'я поля 2, … — імена полів структури;

р1, р2. . . .; - імена змінних типу структура.

 

Приклад Обробити дані про здачу студентами сесії по предметах: математиці, фізиці й програмуванні, підрахувати середній бал, отриманий студентами по цим курсам.

Визначимо структуру:

struct stud

{ char fam [25]; // прізвище й ініціали

int mat, fiz, prg; // предмети

float sb; // середній бал

} st1,st2;

Змінні st1 і st2 можна оголосити окремим оператором, наприклад:

struc stud st1 st2;

Ініціалізація полів структури може вироблятися або при її описі, або в тілі програми. При описі структури ініціалізація полів може виглядати так:

struct stud

{ char fam [25];

int mat,fiz, prg;

float sb;

}

st1 = { " Кравченко И.С.", 4, 5, 5};

st2 = { "Тесленко А.М.", 3, 4, 5};

Якщо ініціалізація полів виробляється в тілі програми, то для звертання до імен полів треба спочатку записати ім'я структурної змінної, а потім ім'я поля, що відокремлюється крапкою ( складові поля). Отже, у випадку , коли змінна st1оголошується в програмі, для її ініціалізації можна записатиstud . st1 = {"Кравченко И. С. ",4 ,5 ,5);або ініціалізація здійснюється за допомогою складових полів, як представлено в наступній програмі:

// Р 4_1. СPP - визначення середнього бала

// використання складових полів

#include < iostream.h >

#include < string.h >

#include < stdio.h >

main ( )

{

struct stud

{ char fam [20];

int mat, fiz, prg;

float sb;

} st1, st2;

strcpy (st1. fam, "Кравченко И.С.");

st1 . mat = 4;

st1. fiz = 5;

st1. prg = 5;

st1. sb = (st1. fiz + st1. mat + st1. prg) / 3;

st2 = st1;

puts (st2. fam); // Вивід прізвища st2;

cout << st2. mat << st2. fiz << st2. prg << st2. sb << endl;

return 0;

}

У цій програмі всім полям структури st1 привласнені відповідні значення. Треба звернути увагу, що поле st1. fam одержує значення шляхом використання функції strcpy (st1.fam, "Кравченко И. С. ");. Структурна змінна st2має ту ж структуру, що й st1, тому справедливо операцію st2 = st1; .

Якщо в одній функції використається тільки один структурний тип, то цей тип можна повідомляти без імені. Наприклад, раніше розглянуту структуру можна оголосити в такий спосіб:

struct

{ char fam [25];

int mat, fiz, prg;

float sb;

} st1, st2;

 

Якщо при описі структур у деякій функції або в межах " видимості" змінних у різних функціях є багато (але не все) однакових полів, то ці однакові поля можна об'єднати в окрему структуру й використати неї при описі інших структур, тобто поля структури можуть самі мати тип "структура". Це називається вкладеністю структур. Наприклад, якщо треба обробляти списки студентів і викладачів університету, причому в студентських списках утримуються дані: прізвище й ініціали, дата ( день, місяць, рік) народження, група й середній бал успішності, а в списках викладачів обробляються такі дані: прізвище й ініціали, дата народження, кафедра, посада.

Для обробки списку студентів і викладачів можна оголосити наступні структури:

struct stud

{ char fio [25];

int den,god;

char mes [10];

char grup;

float sb;

}

и

struct prep

{ char fio [25];

int den, god;

char mes [10];

char kaf, dolg;

}

В оголошених типах однакові поля має сенс включити в окрему структуру й використати неї при описі інших типів. Поетапно це виглядає так:

загальна структура:

struct spd

{ char fio [25];

int den,god;

char mas[10];

}

структура для опису інформації про студентів:

struct stud

{ spd dr;

char grup;

float sb

} st1,st2;

структура для опису інформації про викладачів:

struct prep

{ spd dr;

char kaf [10] ;

char dolg [15];

} pr1,pr2;

 

У структурах stud і prep для оголошення поля, що містить дані про прізвище й дату народження використається раніше описаний тип spd. Тепер до поля fio, den, god, mes можна звернутися, використовуючи запис наступного виду:


Читайте також:

  1. Вид заняття: лекція
  2. Вид заняття: лекція
  3. Вид заняття: лекція
  4. Вид заняття: лекція
  5. Вид заняття: лекція
  6. Вступна лекція
  7. Вступна лекція 1. Методологічні аспекти технічного регулювання у
  8. Клітинна селекція рослин.
  9. Колекція фонограм з голосами осіб, які анонімно повідомляли про загрозу вибуху
  10. ЛЕКЦІЯ (4): Мануфактурний період світової економіки
  11. Лекція - Геополітика держави на міжнародній арені
  12. Лекція 02.04.2013




Переглядів: 491

<== попередня сторінка | наступна сторінка ==>
Використання функції як параметра значень | Лекція 11, 12

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.005 сек.