Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Программа 1 ⇐ ПредыдущаяСтр 2 из 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, 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) Э. Стиллмен, Дж. Грин «Изучаем С#»
|