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

Тема 10. Структури план

  1. Загальна характеристика структури.

  2. Масиви структур.

  3. Використання масивів, як елементів структур.

1. Загальна характеристика структури

Структури дають можливість групувати дані і працювати з цими даними як із єдиним цілим.

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

Для визначення структури використовується синтаксис:

struct [тег структури]

{

в

} поля структури

изначення члена структури;

визначення члена структури;

} [одна або декілька змінних-структур];

тег-ім’я структури.

Приклад структури з інформацією про компакт-диски:

struct cd_info

{

char title [25]; //назва

char artist [28]; //виконавець

int num_song; //число пісень

float price; //вартість

char date_bought [8]; //дата покупки

} cd1, cd2, cd3;

Тут описані три структурні змінні: cd1, cd2, cd3;

Існує два засоби ініціалізації структур:

  • при оголошенні;

  • окремо в тілі програми.

Приклад 1. Ініціалізація при оголошенні

struct cd_info

{

char title[25];

char artist[28];

int num_song;

float price;

char date_bought[8];

} cd1=

{

“Red Moon Men”,

“Пугачова”, 12, 20.55,

“02/13/98”

};

Приклад 2. Присвоювання в тілі програми.

#include <iostream.h>

#include <string.h>

void main()

{

struct cd_info

{

char title [25];

char artist [28];

int num_song;

float price;

char date_bought [8];

} cd1;

strcpy(cd1.title, “Red Moon Men”);

cd1.num_song = 12;

cd1.price = 11.95;

strcpy(cd1.artist, “Пугачова”);

cout << “Title: “ << cd1.title << “\n”;

cout << “Artist: “ << cd1.artist << “\n”;

cout << “Number of songs: “ << cd1.num_song

<< “\n”;

cout << “Price: “ << cd1.price << “\n”;

}

Як очевидно з прикладу до полів структури можна звертатися, вказуючи ім’я змінної-структури, ім’я поля і розділяючи ці імена точкою.

У загальному вигляді:

struct bb

{

int field_1;

char field_2;

} c, a;

int value1 = c. field_1;

char value2 = a. field_2;

Якщо змінна ptr визначена як вказівка на структуру, то для доступу до полів структури можна використовувати операцію ->.

Наприклад:

bb *ptr;

int value1 = ptr->field_1;

char value2 = ptr->field_2;

Оператор ptr->field_1 еквівалентний виразу (*ptr).field_1.

Приклад:

#define COMPLEX struct complex_type

COMPLEX

{

float real;

float image;

};

Операція додавання С1 і С2 для одержання С3.

#define COMPLEX struct complex_type

COMPLEX

{

float real;

float image;

};

COMPLEX C1, C2, C3;

C3. real = C1. real + C2. real;

C3. image = C1. image + C2. image;

або

COMPLEX* C1, C2, C3;

C3->real = C1->real + C2->real;

C3->image = C1->image + C2->image;

Структури можуть бути вкладеними, тобто одним із полів структури може бути інша структура.

Приклад:

#include <iostream.h>

struct address_info

{

char addr[25]; //Інформація про адресу

char state[20];

};

struct add

{

char name[25];

address_info *address;

double zarp;

};

void main()

{

add t;

cin >> t.zarp;

cin >>t.name;

cin >>t.address->state;

cin >>t.address->addr;

}

Вкладена структура має вигляд:

Резюме:

Структури дозволяють групувати дані більш гнучкою образом, ніж масиви. Вони можуть містити елементи різноманітних типів даних. Ініціалізувати структури можна двома засобами: під час оголошення, або за допомогою операторів «точка»(.) або "->" у тілі програми. Структури аналогічні записам бази даних, а їхні елементи - полям записів.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]