Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Составные типы данных: структуры




Структура - <определение>

Массив – тоже совокупность данных, но одного типа.

Компонентами структур могут быть переменные скалярного типа, строки, а так же массивы и другие структуры. Сами структуры могут образовывать массив.

Описание структур

Struct имя

{

// описание

}

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

Пример. Структура «книга»

Struct Book

{

Public string author;

Public string name;

Public int pages;

}

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

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

Переменные структуры объявляются так же как переменные других типов:

Имя_структуры имя_переменной;

Например:

Book b;

Book[] mas = new Book[10];

Значение переменной типа структуры можно присвоить другой переменной того же типа. Ни в каких других операциях переменная структура целиком участвовать не может. В необходимых случаях каждое поле структуры должно обрабатываться отдельно. При этом имя поля будет составным следующего вида:

Имя_переменой_структуры.Имя_поля;

Например:

b.author = “Г. Шилдт”;

b.name = “Полный справочник по C#”;

b.pages = 752;

для массивов структур:

mas[0].author = “Толстой Л.Н.”;

mas[i].name = textbox1.text;

textbox2.text = mas[i].pages.tostring();

Элементом определяемой структуры может быть другая структура, тип которой уже определён.

Struct data

{

Public int day;

Public int month;

Public int year;

}

Struct anketa

{

Public string fio;

Public data date;

}

Anketa a;

Доступ:

a.fio = textbox1.text;

a.date.day = convert.toint32(textbox2.text);

a.date.month = convert.toint32(textbox3.text);

a.date.year = convert.toint32(textbox4.text);

Функция может может возвращать структуру как результат, так же структура может быть формальным параметром функции.

Пример

Дан массив работников предприятия: fio и адрес (улица, дом квартира). Во второй массив записать только тех из них которые живут на улице красной. Вывести их на экран в алфавитном порядке.

Using System;

Struct address

{

Public string street;

Public int house;

Public int flat;

}

Struct staff

{

Public string fio;

Public address addr;

}

Class Example

{

Public static void main()

{

Int n = 5;

Staff[] arr = new staff[n];

Staff[] res = new staff[n];

For (int I = 0; i<n; i++)

{

Console.WriteLine(“фнкета” + (i+1) + “:\nФИО:”);

Arr[i].fio = Console.ReadLIne();

Console.WriteLine(“Улица: “);

Arr[i].addr.street = console.ReadLine();

Console.WriteLine(“Дом: ”);

Arr[i].addr.house = convert.toint32(console.readLine());

Console.WriteLine(“Квартира: ”);

Arr[i].addr.flat = convert.toint32(console.readLine());

}

Int k = 0;

For (int I = 0;i<n;i++)

If (arr[i].addr.street == “Красная”)

{

Res[k] = arr[i];

K++;

}

For (int I = 0; i<k-1;i++)

For (int j = k-1; j<I;j--)

If (string.compare(res[j].fio, res[j-1].fio) < 0)

{

Staff t = res[j];

Res[j] = res[j-1];

Res[j-1] = t;

}

 

}

}

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных