4965

Создание новых типов данных

Лекция

Информатика, кибернетика и программирование

Создание новых типов данных Для представления данных о сложных физических и математических объектах необходимо создавать новые типы данных на основе базовых и ранее созданных. Структуры Наиболее простым способом создания нового типа данных является...

Русский

2012-11-30

30.5 KB

3 чел.

Создание новых типов данных

Для представления данных о сложных физических и математических объектах необходимо создавать новые типы данных на основе базовых и ранее созданных.

Структуры

Наиболее простым способом создания нового типа данных является организация структуры.

Структура представляет собой последовательность элементов данных разных типов. Элементы данных называют полями структуры. Каждое поле структуры служит для описания некоторого свойства объекта, описываемого с помощью структуры.

Для создания структуры необходимо создать структурированный тип данных. На языке С++ он описывается следующим образом:

struct имя_типа

{тип_поля1 имя поля1;

тип_поля2 имя поля2;

тип_поля3 имя поля3;

};

Пример структурированного типа

struct Person

{char fam[10];

 int age;

}

Только после создания нового типа данных можно создавать переменные, указатели и массивы этого типа.

Пример структурированных переменных, указателей и массивов

Person A;

Person B[3];

Person *p;

Очевидно, что формат  описания переменной нового типа данных практически ничем не отличается от переменной, например, целочисленного типа данных:

int i;

Для доступа к полям структуры используется операция .

Формат операции . следующий:

Имя_структуры.имя_поля

Пример доступа к полям структур

A.age=25;

Доступ к полям структур, являющихся элементами массива структур, выглядит следующим образом:

имя_массива[номер_структуры].имя_поля

Пример доступа к полям структур в массиве структур

B[1].age=30;

Над структурами стандартом языка С разрешена только операция присваивания. Все остальные операции могут быть только над полями структуры.

Действия над структурами

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

Пример программы вычисления среднего значения поля age по массиву структур

#include <stdio.h>

#include <conio.h>

struct Person

{char fam[10];

 int age;

}

int fSred(Person *p, int n);

int fSred(Person *p, int n)

{

int i, s=0;

for(i=0; i<n;i++)

s+=p[i];

return(s/n);

}

main()

{

Person B[3];

int n =3, i, sr;

for(i=0; i <n;i++)

{printf("Input name");

  scanf("%s",p[i].fio);

  printf("Input age");

  scanf("%d",&p[i].age);

}

sr=fSred(B,3);

printf (sr="%d\n",sr);

getch( );

}

Таким образом, при работе со структурами действия оформляются в виде функций отдельно от данных, а данные передаются в функции через параметр. Доступ ко всем элементам данных открытый.

Объединение данных и действий над ними в виде класса, в котором вводятся ограничения на доступ к данным, породило технологию объектно-ориентированного программирования.


 

А также другие работы, которые могут Вас заинтересовать

55501. Кислоти 93 KB
  Обладнання: склянки затискач сірники нагрівальний прилад знаки правил техніки безпеки картки з індивідуальними завданнями проїзні квитки карта маршруту картки з формулами кислот для гри.
55504. Україно-московський договір 1654 р 100 KB
  Чи можна в європейській історії знайти країну яка б пройшла більш страдницький шлях до створення власної держави аніж Україна Зараз ми зробимо спробу перенестися в драматичні часи національно визвольної боротьби під проводом Богдана Хмельницького...
55505. Похід більшовицьких військ на Київ. Четвертий Універсал Центральної Ради. Крути 38.5 KB
  ІУ Універсал Центральної Ради. Вчитель дає запитання учням: Коли було проголошено І Універсал За Ім Універсалом Україна проголошувалась Як називався Ій український уряд Український уряд очолив Коли було проголошено ІІй Універсал...
55506. Радянізація західноукраїнських земель 90 KB
  Мета уроку: Охарактеризувати процес радянізації на західноукраїнських землях у повоєнні роки; показати трагізм долі УГКЦ; визначити цілі і методи збройної боротьби ОУНУПА...
55508. РАДІСТЬ ТВОРЧИХ ВІДКРИТТІВ НА УРОЦІ 192 KB
  Після закінчення встановлених двох хвилин усі команди що встигли то встигли міняються своїми розмальованими аркушами. У кожної команди чийсь чужий аркуш який тепер потрібно перевірити другий раунд.
55509. Групи слів за значенням: синоніми, антоніми. Синоніми. Типи синонімів. Синонімічні ряди. Антоніми 65.5 KB
  Групи слів за значенням: синоніми антоніми. Антоніми. Мета: поглибити знання про групи слів за значенням; формувати вміння визначати в реченнях і текстах синоніми і антоніми; учити утворювати синонімічні ряди і добирати антонімічні пари доречно вживати їх у мовленні...