Студопедия

Главная страница Случайная страница

Разделы сайта

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






Программа 1






using System;

//интерфейс

public interface IElement

{

void newE();

int summ();

}

//класс реализующий интерфейс

public class MyElement: IElement

{

public string name;

public int e1;

public int e2;

//метод для заполнения элементов класса

public void newE()

{

name = Console.ReadLine();

e1 = Convert.ToInt32(Console.ReadLine());

e2 = Convert.ToInt32(Console.ReadLine());

}

//подсчет суммы элементов

public int summ()

{

return (e1 + e2);

}

}

//описание делегата

delegate int Delegate1(IElement[] arr, int param);

public class Test

{//метод для поиска элемента с заданной суммой в массиве (если его нет - возвращает -1)

static int Find (IElement[] arr, int param)

{ for (int i = 1; i < 5; i ++)

{ if (arr[i].summ() == param)

{return i; } }

return -1; }

public static void Main()

{ Delegate1 d1 = new Delegate1(Find);

IElement[] array1 = new IElement[5];

array1[0] = new MyElement();

array1[0].newE();

array1[1] = new MyElement();

array1[1].newE();

array1[2] = new MyElement();

array1[2].newE();

array1[3] = new MyElement();

array1[3].newE();

array1[4] = new MyElement();

array1[4].newE();

int c = d1(array1, 16);

Console.WriteLine(" Номер элемента с заданной суммой: ");

Console.WriteLine(c); }

}

Программа 2

using System;

public interface IElement

{ void newE();

int summ(); }

public class MyElement: IElement

{ public string name;

public int e1;

public int e2;

public void newE()

{ name = Console.ReadLine();

e1 = Convert.ToInt32(Console.ReadLine());

e2 = Convert.ToInt32(Console.ReadLine());

}

public int summ()

{

return (e1 + e2);

}

}

delegate int Delegate1(IElement[] arr);

public class Test

{ static int MaxElem (IElement[] arr)

{ int n = 0;

int max = arr[0].summ();

for (int i = 1; i < 5; i ++)

{ if (arr[i].summ() > max)

{ max = arr[i].summ();

n = i;

}

}

return n;

}

public static void Main()

{

Delegate1 d1 = new Delegate1(MaxElem);

IElement[] array1 = new IElement[5];

array1[0] = new MyElement();

array1[0].newE();

array1[1] = new MyElement();

array1[1].newE();

array1[2] = new MyElement();

array1[2].newE();

array1[3] = new MyElement();

array1[3].newE();

array1[4] = new MyElement();

array1[4].newE();

int c = d1(array1);

Console.WriteLine(" Номер элемента с максимальной суммой: ");

Console.WriteLine(c);

 

}

}


 

Заключение

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

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

 

 


 

Литература

1) Л.Е. Потапова «Объектно-ориентированное программирование на языке С#»

2) Т.Е. Павловская «Программирование на языке С#»

3) Tdoc.ru «Новинки языка C#.NET»

4) Википедия

5) Э. Стиллмен, Дж. Грин «Изучаем С#»






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.