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

}

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

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


 

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

39953. Течение газа в соплах 182.5 KB
  В рамках этой модели течения невязкий газ и пограничный слой при отсутствии отрыва потока представляется возможным с достаточной точностью определить оптимальное сопло для заданных конструктивных условий габариты масса тяга. Основные недостатки сопел Лаваля связанные с их большой длинной массой и низкой эффективностью при перерасширении потока становятся особенно ощутимыми при больших степенях расширения сопла в этом случае размеры и масса сопла могут быть на порядок больше размеров и массы камеры сгорания а потери тяги...
39954. Одномерные течения несжимаемой жидкости. Ламинарное и турбулентное течения 344.5 KB
  При увеличении скорости воды картина изменялась струйка красителя сначала приобретала синусоидальную форму а дальнейшее увеличение скорости приводило к ее размыву что свидетельствовало о беспорядочном движении. Рейнольдс предположил что увеличение скорости потока приводит к возникновению какихто возмущений дестабилизирующих его структуру. Ускорение есть изменение скорости в единицу времени = u t. Одномерными называются течения в которых основные параметры потока зависят лишь от одной координаты направление которой совпадает с...
39955. Основы теории пограничного слоя 73.5 KB
  Основы теории пограничного слоя. Понятие пограничного слоя 8. Толщина пограничного слоя 8. Отрыв пограничного слоя.
39956. Основы теории подобия 362.5 KB
  Основы теории подобия План. На эти вопросы и отвечает теория подобия являющаяся основой современного физического эксперимента. В общем случае различают три вида подобия: геометрическое кинематическое и динамическое. Для площадей S и объемов V ; Применительно к физическим явлениям элементарные представления геометрического подобия расширяются и распространяются на все величины характеризующие данный процесс.
39957. Газодинамика как раздел механики сплошных сред 907.5 KB
  Краткий очерк развития механики жидкости и газа. Математический аппарат используемый в механике жидкости и газа [1. Газодинамика как раздел механики сплошных сред Многие машины и аппараты созданные к настоящему времени характеризуются перемещением газа или жидкости внутри их или перемещением самого аппарата в среде газа или жидкости. Целью курса Газодинамика является изучение явлений протекающих в газе и жидкости и закономерностей которым эти явления подчиняются.
39958. УРАВНЕНИЯ ГАЗОВОЙ ДИНАМИКИ ДЛЯ ЕДИНИЧНОЙ СТРУЙКИ 401.5 KB
  Предельная скорость движения газа. Уравнение неразрывности Выведем основные уравнения газовой динамики для элементарной струйки газа поперечные размеры которой настолько малы что в каждом ее сечении можно считать постоянными все основные параметры потока: скорость давление температуру и плотность газа. Чтобы получить уравнение неразрывности рассмотрим стационарное установившееся движение элементарной струйки газа рис. Элементарная струйка Рассмотрим некоторый участок струйки между двумя нормальными к поверхности тока сечениями 1 и...
39959. Элементы гидродинамики 441 KB
  Cилы действующие в жидкости 3.1 Элементарный параллелепипед в потоке жидкости Грани бесконечно малой частицы жидкости имеющей в начале движения форму прямого параллелепипеда с ребрами dx dy dz с течением времени могут скашиваться и растягиваться рис.8 представляет собой уравнение неразрывности жидкости.9 Здесь под плотностью жидкости понимается предел отношения массы частицы к ее объему 3.
39960. ГАЗОДИНАМИЧЕСКИЕ ФУНКЦИИ 81 KB
  ГАЗОДИНАМИЧЕСКИЕ ФУНКЦИИ План лекции. Зависимость параметров потока в функции числа M. Зависимость параметров потока в функции скоростного коэффициента. Зависимость параметров потока в функции числа M.
39961. ДЕТАЛИ МАШИН И ОСНОВЫ КОНСТРУИРОВАНИЯ 10.06 MB
  1 а е: Ft Н окружная сила на барабане ленточного или на звездочке цепного конвейера; V м с скорость движения ленты или цепи; Dб мм диаметр барабана; Zзв число зубьев тяговой звездочки; Рзв мм шаг тяговой цепи.2 Вид передачи Твердость зубьев Передаточное число Uрек Uпред Зубчатая цилиндрическая: тихоходная ступень во всех редукторах uт 350 НВ 40. Термообработка зубчатых колес редуктора улучшение твердость зубьев 350НВ. Первая группа колеса с твердостью поверхностей зубьев Н  350 НВ Применяются в слабо и...