Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка С++.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
1 Мб
Скачать
☆

Визначення структурної змінної

Визначення структурної змінної виглядає таким чином:

Ім’яСтруктури Ім’яСтруктурноїЗмінної;

Наприклад:

part part1;

Визначення змінної означає, що під цю змінну виділяється пам'ять, причому стільки пам'яті, скільки достатньо для зберігання всіх її полів.

Визначення структурної змінної по своєму синтаксису ідентичне визначенню змінної стандартного типу.

Така схожість не є випадковою. Одна з цілей мови C++ - зробити роботу з призначеними для користувача типами даних максимально схожою на роботу із стандартними типами даних.

Доступ до полів структури

Коли структурна змінна визначена, доступ до її полів можливий із застосуванням операції крапки. В програмі полям структури присвоюється значення за допомогою составного оператора:

Ім’яСтруктурноїЗмінної . Ім’яПоля = значення;

Наприклад:

part1.modelnumber = 6244;

Поле структури ідентифікується за допомогою трьох складових: імені структурної змінної part1, операції крапки «.» та імені поля modelnumber. Подібний запис слід розуміти як «поле modelnumber змінної part1». Операція крапки відповідно до загальноприйнятої термінології називається операцією доступу до поля структури.

З полями структурної змінної можна поводитися так само, як із звичними простими змінними. Так, в результаті виконання вказаного оператора полю modelnumber присвоюється значення 6244 за допомогою звичної операції присвоєння.

Наприклад, розглянемо структуру, що містить три поля, два з яких мають цілий тип і одне поле - дійсний тип. Ця структура призначена для зберігання інформації про комплектуючі деталі виробів, що випускаються фабрикою. Компанія виробляє декілька типів виробів, тому номер моделі виробу включений до структури як перше з полів. Номер самої деталі представлений другим полем, а її вартість - останнім, третім полем.

У програмі Parts визначається структура part і змінна part1 типу part. Потім полям змінної part присвоюються значення і виводяться на екран.

// parts.срр

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

#include <iostream.h>

void main()

{

struct part // оголошення структури

{

int modelnumber; // номер моделі виробу

int partnumber; // номер деталі

float cost; // вартість деталі

};

part part1; // визначення структурної змінної part1

part1.modelnumber = 6244; // ініціалізація полів змінної part1

part1.partnumber = 373;

part1.cost = 217.55F;

// виведення значень полів на екран

cout << "model " << part1.modelnumber;

cout << ", part " <<part1.partnumber;

cout << ", cost $" << part1.cost << endl;

}

Робоче завдання

Завдання 1. Номер телефону, наприклад (44) 443-2104, можна умовно розділити на три частини: код міста (44), номер телефонної станції (443) і номер абонента (2104). Напишіть програму з використанням структури, що дозволяє роздільно зберігати ці три частини телефонного номера. Назвіть структуру phone. Створіть дві структурні змінні типу phone. Ініціалізацію однієї з них проведіть самі, а значення для іншої запитаєте з клавіатури. Потім виведіть вміст обох змінних на екран. Результат роботи програми повинен виглядати приблизно так:

Введіть код міста, номер станції і номер абонента:

45 555 1212

Мій номер 22-767-8900

Ваш номер 45-555-1212

Завдання 2. Положення точки у просторі можна задати за допомогою трьох координат: x, y і z. Напишіть програму, що використовує для інтерпретації точки в просторі структуру з назвою point. Визначте три змінні типу point і дві з них ініціалізуйте значеннями координат точок А і В, що вводяться з клавіатури. Потім присвойте третій змінній координати вектора і виведіть результат на екран. (Вектор, що має початок у точці А (x1; у1; z1) і кінець у точці В (x2; у2; z2) має координати: (x2-x1; у2-у1; z2-z1).

Завдання 3. Створіть структуру з ім'ям Volume, що містить три поля типа Distance для зберігання трьох вимірювань приміщення. Визначте змінну типа Volume, ініціалізуйте її, обчисліть об'єм, займаний приміщенням, і виведіть результат на екран. (Структура Distance є вкладеною по відношенню до структури Volume, а отже, поля структури Volume матимуть тип Distance. Доступ до полів вкладеної структури можна здійснити двічі застосувавши операцію крапки «.»:

Ім’яСтруктЗмінної . Ім’яПоляЗовнішнСтрукт . Ім’яПоляВнутрСтрукти = значення;)

Контрольні запитання

  1. Що таке структура?

  2. Як здійснити оголошення структури?

  3. Як оголосити структурну змінну?

  4. Як здійснюється доступ до полів структури?

  5. Як здійснюється доступ до полів вкладеної структури?

Лабораторна робота №12

РОЗРОБКА І ДОСЛІДЖЕННЯ ПРОГРАМ ОБРОБКИ СТРУКТУР З ВИКОРИСТАННЯМ ФУНКЦІЙ

Мета роботи: отримання навиків роботи з функціями, дослідження способів передачі аргументів-структур у функцію.

Теоретичні відомості

Функції для роботи зі структурами створювати легше, ніж для роботи з масивами. Хоча змінні-структури і подібні до масивів, структури поводяться по відношенню до функцій як змінні базових типів даних, приймаючі тільки одне значення. На відміну від масиву, структура об'єднує дані в єдину сутність, яка обробляється як цільний модуль. Крім того, значення однієї структури можна присвоїти іншій структурі.

Структури можна передавати по значенню як і звичні змінні. В цьому випадку функція працює з копією початкової структури. Крім того, функція може повертати структуру. Проте передача структур по значенню має один недолік. Для створення копії великої структури буде потрібно витратити пам'ять і ресурси процесора, а це призведе до зниження швидкодії системи. В цьому випадку структуру слід передавати за посиланням.