Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лр1_Делегаты.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
186.88 Кб
Скачать

3. Задание на лабораторную работу.

1. Ознакомиться с разделом 2.1, в котором описывается делегат, особенности его объявления и применения.

1.1. Создать и запустить программу с использованием одиночного делегата в соответствии с первым вариантом, приведенном в разделе 2.2 на стр.5. Составить блок-схему алгоритма функционирования программы.

1.2. Создать и запустить программу с использованием одиночного делегата в соответствии со вторым вариантом, приведенном в разделе 2.2 на стр.5. Составить блок-схему алгоритма функционирования программы.

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

2. Ознакомиться с классом делегата (разделом 2.2).

3. Ознакомиться с разделом 2.4, в котором описываются комбинированные делегаты, особенности его объявления и использования.

3.1. Создать и запустить программу, использующую комбинированный делегат и его метод Combine (стр.8-9). Составьте блок-схему алгоритма работы приложения.

3.2. По методике, изложенной в разделе 2.3 (на стр.9) c помощью метода Remove последовательно отключайте по одному делегату и, запуская каждый раз программу, наблюдайте за изменениями в ее работе. Обратите особое внимание на то, что происходит при отключении последнего делегата.

3.3. Создать приложение с комбинированным делегатом, в котором вместо методов делегата Combine и Remove используются операции "+" и "-". Повторите действия, описанные в пункте 3.2 на стр.9-10.

3.4. Добавьте в класс Combination "плохого" кандидата для использования делегатом и создайте приложение с его использованием так, как это описано в разделе 2.3 на стр.10. Опишите: что происходит.

4. Ознакомиться с разделами 2.5 и 2.6, в которых описывается понятие о функциях высших порядков.

4.1. В соответствии с разделом 2.6 на стр.11-13 создать приложение, позволяющее вычислять интеграл с помощью делегатов.

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

  1. Расскажите о делегатах.

  2. Почему делегаты называются делегатами?

  3. Какую проблему они решают?

  4. Что на самом деле происходит, когда компилятор встречает в тексте программы делегат?

  5. Расскажите о цепочках делегатов.

  6. В каком порядке вызываются делегаты в цепочке?

  7. Что произойдёт с возвращаемыми значениями делегатов в цепочке?

  8. Что произойдёт, если один из делегатов в цепочке сгенерирует исключение?

Приложение. Вычисление площади методом трапеций

Y

у4

у5

Функция: F(x)

у3

у6

у7

у2

X

у1

dx

Вся площадь под функцией разбивается на трапеции одинаковой высоты (dx). Размеры оснований этих трапеций служат расстояния между осью абсцисс и текущим и предыдущим значением функции F(x). Таким образом, площадь под функцией можно приближенно определить как сумму площадей всех трапеций, которые вписываются между осью абсцисс графическим отображением функции. Площадь каждой трапеции вычисляется как произведение полусуммы оснований (уi + у(i+1))/2 на ее высоту (dx).

Легко увидеть что, чем больше высота трапеций (или, чем меньше количество шагов, на которые мы разбиваем функцию), тем меньше точность вычислений. Изменяя размер шага можно добиться требуемой точности вычисления интеграла.

Литература:

  1. Биллиг В.А. http://www.INTUIT.ru: Курс: Основы программирования на C#.

  2. К.Ватсон и др. С#. Изд-во Лори. 2005 г., 879 с.

  3. Г. Шилдт. Полный справочник по С#.: Пер. с англ. — М.: Издательский дом "Вильяме", 2004. — 752 с.

  4. Павловская Т. А. С#. Программирование на языке высокого уровня. Учебник для вузов. — СПб.: Питер, 2009. — 432 с: ил.