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

}

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

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


 

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

41181. Электрические цепи периодического синусоидального тока и напряжения 154 KB
  Электрические цепи периодического синусоидального тока и напряжениячасть Как и на индуктивности на емкости активная мощность PС=0 а реактивная QС= UI = I2XС Если токи и напряжения на R L и С изобразить в виде векторов то можно видеть: R = 0 L = 90 С = 90 Наша задача рассчитать электрическую цепь т. определить токи в ветвях и напряжения между узлами и на элементах при действии периодических синусоидальных токов и напряжений. Используя тригонометрию можно видеть: ; где назвали полное сопротивление Если изобразить...
41182. Внутренние характеристики процесса пузырькового кипения 718 KB
  Внутренние характеристики процесса пузырькового кипения Возникающие в центрах парообразования зародыши пара могут быть жизнеспособными и нежизнеспособными. Как установлено на основе опытных данных для процессов пузырькового кипения существенной является величина которая имеет размерность скорости м с и представляет собой среднюю скорость роста паровых пузырьков Данная величина остается постоянной в широком диапазоне изменения тепловых нагрузок. Величины являются внутренними характеристиками процесса...
41183. ПРОИСХОЖДЕНИЕ И РАССЕЛЕНИЕ СЛАВЯН 59.05 KB
  Происхождение восточных славян составляет сложную научную проблему, изучение которой затруднено из-за отсутствия достоверных и полных письменных свидетельств об ареале их расселения и хозяйственной жизни быте и нравах.
41184. ПОЛУЧЕНИЕ ВЫГОДЫ В СИСТЕМЕ МАРКЕТИНГА 486.5 KB
  Исключение этих расходов из расчета прибыли позволяет получить более полное представление о работе компании в данном году; 2 полная валовая общая балансовая прибыль это разница между выручкой от продажи и затратами на производство проданных товаров услуг. их права на активы компании4. Это обусловлено тем что обычно основатели создают компании с целью личного обогащения6 которая не всегда особенно в краткосрочной перспективе совпадает с целью создания потребительской ценности которая лучше чем предложения конкурентов...
41185. Комплексный (символический) метод расчета электрических цепей при периодическом синусоидальном воздействии 267.5 KB
  Из курса Математики известно что комплексное число можно представить в виде вектора на комплексной плоскости а действительная и мнимая части комплексного числа есть проекции вектора на вещественную и мнимую оси. Если допустить что вектор А на комплексной плоскости вращается против часовой стрелки с угловой скоростью  то это комплексное число запишется: Величину назвали оператор вращения. Комплексное число назвали комплексной амплитудой тока а комплексном действующего значения тока. Комплексное число назвали комплексной...
41186. Расчет теплообмена при пузырьковом кипении жидкости в большом объеме 514.5 KB
  Это приводит к тому что практические расчеты теплоотдачи при пузырьковом кипении основываются на использовании эмпирических соотношений большинство из которых получено с применением аппарата теории подобия. В подтверждение сказанного рассмотрим ряд уравнений подобия для расчета теплоотдачи при пузырьковом кипении жидкости. В результате такого подхода было получено для средней теплоотдачи при пузырьковом кипении жидкости такое эмпирическое уравнение уравнение В. Результатом такого подхода явилось уравнение подобия для теплоотдачи при...
41187. Тонкие пленки наносимые в вакууме 222 KB
  Таким образом при нанесении тонких пленок одновременно протекают три основных процесса: генерация направленного потока частиц осаждаемого вещества пролет частиц в вакуумном пространстве от их источника к обрабатываемой поверхности осаждение конденсация частиц на поверхности с образованием тонкопленочных слоев. Метод термического испарения основан на нагреве веществ в специальных испарителях до температуры при которой начинается заметный процесс испарения и последующей конденсации паров вещества в виде тонких пленок на обрабатываемых...
41189. Разработка и принятие управленческих решений 86 KB
  Принятие решений это организационный связующий процесс. Если коммуникации своего рода стержень пронизывающий любую деятельность в организации то принятие решений это центр вокруг которого вращается жизнь организации.1 По поводу разработки и принятия решений в менеджменте ведутся продолжительные споры между специалистами.