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( );

}

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

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


 

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

1809. Виводимо формулу щастя та успіху 46.5 KB
  Узагальнити поняття про складові успіху; про індивідуальність щастя для кожної особистості, дати можливість учням упевнитися, що щастя, життєвий успіх залежить від власних зусиль, від вміння відчувати гармонію в собі; сприяти розвиткові чітких життєвих орієнтирів, формуванню правильної самооцінки.
1810. Виховний захід. У світі тварин 27.63 KB
  Розширити і уточнити знання дітей про тварин та середовище їх існування. Розвивати пізнавальний інтерес учнів, спостережливість, уважність, пам’ять, уяву, кмітливість, логічне мислення, вміння спостерігати за тваринами, описувати зовнішній вигляд тварин, виховувати розумне бережливе ставлення до природи, дружні взаємовідносини під час гри, дбайливе ставлення до тварин, чуйність, доброту, милосердя.
1811. Виховна, соціально-педагогічна робота з дітьми групи ризику 83.5 KB
  Фактори та причини виникнення категорії дітей "групи ризику". Соціально-педагогічна діяльність з дітьми групи ризику. Організація соціально-педагогічної взаємодії для забезпечення роботи з учнями групи ризику. Формування банку даних дітей і підлітків групи ризику.
1812. Интернет-зависимость. Причины, последствия, рекомендации. 36.05 KB
  Развитие навыков эффективного использования компьютера, интернета. Знакомство с правилами безопасного использования интернета. Знакомство с основными причинами, признаками и последствиями интернет-зависимости.
1813. Методы синтеза оптических систем 1.34 MB
  Под синтезом понимается этап проектирования оптической системы, на котором оптик-конструктор устанавливает её структуру, т. е. количество и взаимное расположение линз (зеркал), материалы, из которых они будут выполнены, а также численные значения конструктивных параметров для последующей оптимизации. Понятие об аберрациях.
1814. АМЕРИКАНО-АНГЛИЙСКИЕ ОТНОШЕНИЯ В ГОДЫ ПЕРВОЙ МИРОВОЙ ВОЙНЫ: ПРОБЛЕМЫ ИСТОРИИ И ДИПЛОМАТИИ 1.33 MB
  Концепции внешнеполитической деятельности США и Великобритании и традиции американо-английских отношений накануне Первой мировой войны. Американская историография проблемы вступления Соединенных Штатов в войну и развития американо-английских отношений в 1917-1918 гг. Американская историография проблемы вступления Соединенных Штатов в войну и развития американо-английских отношений в 1917-1918 гг.
1816. НАЛОГОВЫЙ ПОТЕНЦИАЛ СУБЪЕКТА ФЕДЕРАЦИИ: ОЦЕНКА И ПРОГНОЗИРОВАНИЕ ПО КОМПЛЕКСНЫМ МАКРОЭКОНОМИЧЕСКИМ ПОКАЗАТЕЛЯМ 1.33 MB
  Понятие и экономическое содержание налогового потенциала субъекта федерации. Факторы, определяющие величину налогового потенциала субъектов Российской Федерации и показатели его оценки. Совершенствование системы требований к комплексной оценке налогового потенциала субъекта федерации. Краткосрочное моделирование показателей налогового потенциала субъектов федерации Дальневосточного федерального округа.