Студопедия — Использование структур
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Использование структур






Массивы состоят из элементов одного типа. В тех случаях, когда единообразно нужно обрабатывать наборы данных, представляющих совокупность величин различного типа, рассматривая их как единое целое, целесообразно использовать структуры.

Структуры определяются с помощью ключевого слова struct. Далее указывается имя структуры и в фигурных скобках определяются члены структуры. Структуры могут содержать произвольное число различных видов членов: полей, методов и других. Здесь в качестве членов структур (и в дальнейшем классов) будут использоваться только поля и методы.

Поле это переменная, объявленная в структуре. У поля есть имя и тип. Метод это функция, определенная в структуре.

Рассмотрим определение структуры, в которой содержатся два поля разных типов.

struct Sportsmen

{

public string famile;

public int rez;

}

Здесь описана структура с именем Sportsmen с двумя полями: famile типа string и rez типа int. Описание структуры располагается вне метода Main. В связи с этим уровень доступа к полям установлен максимальный (public – открытый доступ), что дает возможность доступа к полям из метода Main.

Экземпляр структуры создается в методе Main как обычно указанием типа перед именем переменной.

Sportsmen temp;

Далее в поля этой переменной можно поместить значения (инициализировать поля структуры). Для доступа к полю нужно указать имя переменной и после точки имя поля. Например,

using System;

class Program

{

struct Sportsmen

{

public string famile;

public int rez;

}

static void Main()

{

Sportsmen temp;

temp.famile = " Иванов";

temp.rez = 77;

Console.WriteLine(" Фам {0}\tРезультат{1: f2}", temp.famile, temp.rez);

Console.ReadKey();

}

}

Или

using System;

struct Sportsmen

{

public string famile;

public int rez;

}

class Program

{

static void Main()

{

Sportsmen temp;

temp.famile = " Иванов";

temp.rez = 7;

Console.WriteLine(" Фам {0}\t Результат {1: f2}", temp.famile, temp.rez);

Console.ReadKey();

}

}

Объявление массива структур. Например,

Sportsmen[] sp = new Sportsmen[5];

Здесь объявлен массив sp из 5 элементов, каждый из которых содержит два поля.

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

sp[0] = temp;

Пример.

using System;

struct Sportsmen

{

public string famile;

public int rez;

}

class Program

{

static void Main()

{

Sportsmen temp;

temp.famile = " Иванов";

temp.rez = 17;

Sportsmen[] sp = new Sportsmen[5];

sp[0] = temp;

Console.WriteLine(" Фам {0}\t Результат {1: f2}", sp[0].famile,
sp[0].rez);

Console.ReadKey();

}

}

Пример 4.1. Протокол соревнований по прыжкам в высоту содержит список фамилий и результатов (одна попытка) в порядке стартовых номеров. Получить итоговую таблицу, содержащую фамилии и результаты в порядке занятых мест. Количество спортсменов не более 30. Для размещения исходных данных используется массив структур. Структура содержит информацию – фамилия и результат спортсмена. Массив структур является в данном случае одномерным массивом и для его обработки можно использовать типовые алгоритмы, рассмотренные в п. 3.

using System;

struct Sportsmen

{

public string famile;

public double rez;

}

class Program

{

static void Main()

{

Sportsmen[] sp = new Sportsmen[5];

string[] s = new string[] { " Иванов", " Петров", " Сидоров", " Кузнецов",
" Макаров" };

double[] r = new double[] { 1.50, 1.55, 1.47, 1.46, 1.54 };

for (int i = 0; i < sp.Length; i++)

{

sp[i].famile = s[i];

sp[i].rez = r[i];

Console.WriteLine(" Фамилия {0}\t Результат {1: f2}",
sp[i].famile, sp[i].rez);

}

//Упорядочение по результатам

for (int i = 0; i < sp.Length - 1; i++)

{

double amax = sp[i].rez;

int imax = i;

for (int j = i + 1; j < sp.Length; j++)

{

if (sp[j].rez > amax)

{

amax = sp[j].rez;

imax = j;

}

}

Sportsmen temp;

temp = sp[imax];

sp[imax] = sp[i];

sp[i] = temp;

}

Console.WriteLine();

for (int i = 0; i < sp.Length; i++)

{

Console.WriteLine(" Фамилия {0}\t Результат {1: f2}",
sp[i].famile, sp[i].rez);

}

Console.ReadKey();

}

}

Здесь исходные данные первоначально заданы в двух массивах: фамилии в массиве s, результаты – в массиве r. Далее этими данными заполняются поля структуры.

В результат будет выведено

Вопросы для самопроверки

1. Структура. Поля структуры. Члены структуры. Объявление структуры. Доступ к отдельным полям структуры.

2. Создание экземпляра структуры. Инициализация полей структуры.

3. Операции со структурами.

4. Преимущества использования структур.

5. Массивы структур и их обработка.







Дата добавления: 2014-12-06; просмотров: 580. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

Объект, субъект, предмет, цели и задачи управления персоналом Социальная система организации делится на две основные подсистемы: управляющую и управляемую...

Понятие массовых мероприятий, их виды Под массовыми мероприятиями следует понимать совокупность действий или явлений социальной жизни с участием большого количества граждан...

Тактика действий нарядов полиции по предупреждению и пресечению правонарушений при проведении массовых мероприятий К особенностям проведения массовых мероприятий и факторам, влияющим на охрану общественного порядка и обеспечение общественной безопасности, можно отнести значительное количество субъектов, принимающих участие в их подготовке и проведении...

Тактические действия нарядов полиции по предупреждению и пресечению групповых нарушений общественного порядка и массовых беспорядков В целях предупреждения разрастания групповых нарушений общественного порядка (далееГНОП) в массовые беспорядки подразделения (наряды) полиции осуществляют следующие мероприятия...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия