WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Министерство образования Российской Федерации

Московский инженерно-физический институт

(государственный университет)

Факультет “Информационная Безопасность”

Кафедра “Криптология и Дискретная математика”

Лабораторные работы

по курсу

«Современные языки программирования

и платформа.NET»

2 семестр

Москва - 2003

2

СОДЕРЖАНИЕ

Введение 3 Необходимое программное обеспечение 4 Установка компилятора MSL.NET 5 Лабораторная работа 1: Разработка элементарных программ на языке программирования C# Лабораторная работа 2: Объекты и классы (наследование, конструкторы, деструкторы). Лабораторная работа 3: Программирование полиморфных методов. Лабораторная работа 4: Расширенные возможности языка программирования. Лабораторная работа 5: Событийно-ориентированное программирование. Лабораторная работа 6: Проектирование и реализация гетерогенных приложений Список литературы и учебных материалов Приложение 1. Особенности инсталляции интегрированной среды разработки Microsoft Visual Studio.NET Введение Целью данного практикума является получение практических навыков прикладного программирования, в сопоставлении объектноориентированного подхода (ООП) к проектированию и реализации программного обеспечения с функциональным подходом, на единой универсальной платформе разработки приложений Microsoft.NET.

В задачи настоящего лабораторного практикума входит освоение таких основополагающих концепций ООП, как абстракция, наследование, инкапсуляция и полиморфизм. Разработка приложений носит сравнительный характер и иллюстрируется языками функционального (SML) и объектноориентированного (C#) программирования и в среде Microsoft Visual Studio.NET.

Важным разделом практикума является исследование систем типизации среды.NET, а также языков SML и C#. При этом наибольшее внимание уделяется таким важным аспектам, как пространства имен, абстрактные типы данных, классы и методы.

Вопросы, связанные с событийно-управляемым программированием, завершают курс. Краткое введение в теорию обработки событий сопровождается рядом примеров из практики программирования на языке C#. Отдельно исследуется обработка исключительных ситуаций В результате освоения курса читатели получают возможность самостоятельной разработки широкого спектра прикладных программных решений в условиях современной гетерогенной компонентной архитектуры.

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

Необходимое программное обеспечение Для выполнения лабораторных работ настоящего практикума необходимо следующее программное обеспечение:

1) 32-разрядная операционная система Microsoft Windows 98, ME, 2000, XP, 2003.

2) Интегрированная среда разработки Microsoft Visual Studio.NET 3) Средство разработки SML.NET (для выполнения лабораторной работы №6).

Код SML.NET может быть также откомпилирован на следующем программном обеспечении:

1) 32-разрядная операционная система Microsoft Windows 98, ME или 2000, XP, 2003.

2) Платформа разработки Microsoft.NET Framework SDK или Microsoft.NET Framework Redistr.

3) Средство разработки SML.NET.

Процедура установки SML.NET Для установки SML.NET в интегрированную среду разработки Visual Studio.NET требуется:

1. Распаковать файлы архива smlnet.tar.gz в директорию, куда Вы 2. Запустить файл install.exe в корневой директории компилятора.

(Внимание! После выполнения данной процедуры нельзя перемещать файлы компилятора в другую директорию для обеспечения корректной работы среды разработки) 3. Выполнить повторный вход в систему (в отдельных случаях может понадобится перезагрузка системы) для принятия изменений в переменных окружения.

После выполнения данных процедур в меню создания проектов Visual Studio должен появиться выбор проектов SML.NET:

Для проверки правильности установки откройте пример решения, находящийся по адресу “Директория, где установлен компилятор SML.NET”/vs/demo/Life/Demo.sln и выполните его сборку демонстрационного примера необходимо вручную указать тип проекта – “Клиент”. Для этого в окне Solution Explorer щелкните правой кнопкой мыши на пункте Client Project и выберите в выпадающем меню пункт Set as Startup Project.

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

Для компиляции приложений на SML.NET также возможна установка для работы с.NET Framework. При этом требуется:

1. Распаковать файлы архива smlnet.tar.gz в директорию, куда Вы хотите установить компилятор SML.NET (например, C:\smlnet ) 2. Установить переменную окружения SMLNETPATH = “Директория, где находятся файлы компилятора SML.NET” (например, 3. Добавить к переменной окружения PATH путь к директории с исполняемыми файлами SML.NET (например, C:\smlnet\bin ) Старт компилятора осуществляется запуском файла smlnet.bat находящимся в директории с исполняемыми фалами. Для проверки правильности установки можно ввести следующие команды source demos\sort export Sort Лабораторная работа 1: Разработка элементарных программ на языке программирования C# Цель работы:



Познакомиться с базовыми особенностями языка программирования C# и разработки программ с использованием среды Visual Studio.

Необходимые теоретические сведения Краткие сведения о платформе.NET Платформа.NET Framework определяет среду для поддержки создания и выполнения платформонезависимых гетерогенных приложений. Основными особенностями данной платформы являются не зависящая от языка среда исполнения (Common Language Runtime, CLR) и библиотека классов.NET Основа языка C# Обьявление и инициализация переменных:

Тип_переменной имя_переменной [=значение];

Примеры:

int x; //обьявление переменной x x=100; //инициализация переменной x long w,z=100; //обьявление переменных w и z и long q=100*z; //обьявление переменной с динамической C# - язык со строгим контролем типов данных. Есть 2 основные категории встроенных типов данных в C# - простые типы и ссылочные типы.

Основные простые типы данных в C#:

Область видимости переменной в C# - блок кода (заключенный в фигурные скобки {}). Переменная создается при входе в область видимости и уничтожаются при выходе из нее.

Основные управляющие операторы:

Условный:

if (условие) оператор [else оператор];

if (условие1) оператор1;

else if (условие2) оператор2;

else if (условие3) оператор3;

Выбора:

switch (выражение){ case константа1:

оператор1;

case константа2:

операторX1;

default:

операторZ1;

for(инициализация, условие_выхода, итерация) оператор;

while (условие_продолжения) оператор;

do оператор; while (условие продолжения);

Пространство имен:

Пространство имен определяет область объявления, что позволяет хранить каждый набор имен отдельно от других наборов. В С# имена, объявленные в одном пространстве имен, не конфликтуют с такими же именами, объявленными в другом пространстве имен. Библиотекой.NET Framework (библиотекой С#) используется пространство имен System.

Для того, чтобы чтобы сделать видимыми пространства имен без указания полного имени (через ‘.’) используется директива using Синтаксис:

using имя_пространства_имен;

также возможно использование псевдонимов для имен using псевдоним = имя;

Пространство имен объявляется с помощью ключевого слова namespace.

Синтаксис:

namespace имя { члены_пространства_имен} Пример программы на C# Программа ‘Hello, World’ на языке C# выглядит следующим образом:

using System;

class HelloWorld public static void Main() Console.Write("Hello, World!");

Контрольные вопросы 1. Что понимается под термином «.NET Framework»?

2. Зависят ли приложения, разрабатываемые в.NET, от платформы?

3. Возможно ли создание гетерогенных приложений в среде.NET?

4. Что означает аббревиатура «CLR»?

5. Является ли среда CLR многоязычной?

6. Приведите обобщенный синтаксис объявления переменной на языке 7. Приведите обобщенный синтаксис инициализации переменной на 8. Какая дисциплина (вариант контроля) типов принята в языке C#?

9. Каковы основные категории типов в языке C#?

10. Перечислите пять простых типов языка C#.

11. Что понимается под областью видимости переменной в языке C#?

12. Как обозначается область видимости переменной в языке C#?

13. Как соотносится время жизни переменной и область видимости?

14. Приведите синтаксис условного оператора в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

15. Приведите синтаксис оператора выбора в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

16. Что понимается под термином «пространство имен»?

17. В чем состоит назначение пространств имен в языке C#?

18. Благодаря какому механизму удается избежать коллизий имен в 19. Какое пространство имен использует системная библиотека .NET 20. Какое пространство имен использует системная библиотека C#?

21. В чем состоит назначение директивы using?

22. Какой символ используется для указания полного имени объекта в 23. Приведите синтаксис директивы using в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

24. Приведите синтаксис описания пространства имен в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

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

1. Реализовать функцию вычисления суммы двух целых чисел 2. Реализовать функцию вычисления разности двух целых чисел 3. Реализовать функцию вычисления произведения двух целых чисел 4. Реализовать функцию вычисления частного двух целых чисел 5. Реализовать функцию вычисления суммы двух вещественных чисел 6. Реализовать функцию вычисления разности двух вещественных чисел 7. Реализовать функцию вычисления произведения двух вещественных чисел 8. Реализовать функцию вычисления частного двух вещественных чисел 9. Реализовать функцию возведения целого числа в квадрат 10. Реализовать функцию возведения в квадрат суммы двух целых чисел 11. Реализовать функцию возведения в квадрат разности двух целых чисел 12. Реализовать функцию возведения в квадрат произведения двух целых чисел 13. Реализовать функцию возведения в квадрат частного двух целых чисел 14. Реализовать функцию возведения в квадрат суммы двух вещественных чисел 15. Реализовать функцию возведения в квадрат разности двух вещественных чисел 16. Реализовать функцию возведения в квадрат произведения двух вещественных чисел 17. Реализовать функцию возведения в квадрат частного двух вещественных чисел 18. Реализовать функцию возведения в куб целого числа 28. Реализовать функцию возведения в куб суммы двух целых чисел 20. Реализовать функцию возведения в куб разности двух целых чисел 21. Реализовать функцию возведения в куб произведения двух целых чисел 22. Реализовать функцию возведения в куб частного двух целых чисел 23. Реализовать функцию возведения в куб суммы двух вещественных чисел 24. Реализовать функцию возведения в куб разности двух вещественных чисел 25. Реализовать функцию возведения в куб произведения двух вещественных чисел 26. Реализовать функцию возведения в куб частного двух вещественных чисел Порядок выполнения работы:

1) Реализовать программу на C# в соответствии с вариантом 2) Сравнить программу на SML и на C#.

3) Подготовить отчет в твердой копии и в электронном виде.

Лабораторная работа 2: Объекты и классы (наследование, конструкторы, деструкторы).

Цель работы:

Познакомиться с основой объектного подхода в языке C#, созданием объектов, классов и механизмом наследования.

Необходимые теоретические сведения Классы и обьекты Класс является основой для создания объектов. В классе определяются данные и код, который работает с этими данными. Объекты являются экземплярами класса.

Методы и переменные, составляющие класс, называются членами класса. При определении класса объявляются данные, которые он содержит, и код, работающий с этими данными. Данные содержатся в переменных экземпляра, которые определены классом, а код содержится в методах. В С# определены несколько специфических разновидностей членов класса. Это — переменные экземпляра, статические переменные, константы, методы, конструкторы, деструкторы, индексаторы, события, операторы и свойства.

Непосредственно инициализация переменных в объекте (переменных экземпляра) происходит в конструкторе. В классе могут быть определены несколько конструкторов.

Синтаксис класса:

class имя_класса{ тип_доступа тип имя_переменной1;

тип_доступа тип имя_переменной2;

тип_доступа возвращаемый_тип имя_метода1(список_параметров) {тело_метода} где тип_доступа может быть public, private, protected, internal.

Члены класса с типом доступа public доступны везде за пределами данного класса, с типом доступа protected – внутри членов данного класса и производных, с типом доступа private - только для других членов данного класса. Тип доступа internal применяется для типов, доступных в пределах одной сборки.

Пример:

class Animal{ public string Name;

private int Weight;

protected int Type;

public int Animal(int W, int T, string N){ public int GetWeight(){return Weight;} Создание обьекта имя_класса имя_обьекта = new имя_класса();

При создании обьекта класса происходит вызов соответствующего конструктора класса.

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

Все классы имеют конструкторы независимо от того, определен он или нет. По умолчанию в С# предусмотрено наличие конструктора, который присваивает нулевые значения всем переменным экземпляра (для переменных обычных типов) и значения null (для переменных ссылочного типа). Но если конструктор явно определен в классе, то конструктор по умолчанию использоваться не будет.

имя_класса(список_параметров) {тело_конструктора} Деструктор – метод, вызывающийся автоматически при уничтожении обьетка класса (непосредственно перед “сборкой мусора”). Деструктор не имеет параметров и возвращаемого значения.

~имя_класса() {тело_деструктора} Наследование Наследование — это свойство, с помощью которого один объект может приобретать свойства другого. При этом поддерживается концепция иерархической классификации, имеющей направление сверху вниз.

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

Синтаксис:

{тело_класса} Пример:

class Predator:Animal{ private int Speed;

С помощью наследования создается иерархия классов (отношение ‘являться’). Кроме того, можно построить еще одну структуру – иерархию объектов (тогда, когда один объект является частью другого – отношение ‘часть-целое’).

Контрольные вопросы 1) Что понимается под термином «класс»?

2) Какие элементы определяются в составе класса?

3) Каково соотношение понятий «класс» и «объект»?

4) Что понимается под термином «члены класса»?

5) Какие члены класса Вам известны?

6) Какие члены класса содержат код?

7) Какие члены класса содержат данные?

8) Перечислите пять разновидностей членов класса специфичных для 9) Что понимается под термином «конструктор»?

10) Сколько конструкторов может содержать класс языка C#?

11) Приведите синтаксис описания класса в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

12) Какие модификаторы типа доступа Вам известны?

13) В чем заключаются особенности доступа членов класса с модификатором public?

14) В чем заключаются особенности доступа членов класса с модификатором private?

15) В чем заключаются особенности доступа членов класса с модификатором protected?

16) В чем заключаются особенности доступа членов класса с модификатором internal?

17) Какое ключевое слово языка C# используется при создании объекта?

18) Приведите синтаксис создания объекта в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

19) В чем состоит назначение конструктора?

20) Каждый ли класс языка C# имеет конструктор?

21) Какие умолчания для конструкторов приняты в языке C#?

22) Каким значением инициализируются по умолчанию значения ссылочного типа?

23) В каком случае конструктор по умолчанию не используется?

24) Приведите синтаксис конструктора класса в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

25) Что понимается под термином «деструктор»?

26) В чем состоит назначение деструктора?

27) Приведите синтаксис деструктора класса в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

28) Имеет ли деструктор параметры?

29) Возвращает ли деструктор значение?

30) Что понимается под термином «наследование»?

31) Какая классификация объектов соответствует наследованию?

32) Что общего имеет дочерний класс с родительским?

33) В чем состоит различие между дочерним и родительским классами?

34) Приведите синтаксис описания наследования классов в общем виде. Проиллюстрируйте его фрагментом программы на языке C#.

35) Какому отношению соответствует иерархия классов?

36) Какому отношению соответствует иерархия объектов?

Варианты заданий Построить иерархию классов в соответствии с вариантом задания:

1) Студент, преподаватель, персона, заведующий кафедрой 2) Служащий, персона, рабочий, инженер 3) Рабочий, кадры, инженер, администрация 4) Деталь, механизм, изделие, узел 5) Организация, страховая компания, нефтегазовая компания, завод 6) Журнал, книга, печатное издание, учебник 7) Тест, экзамен, выпускной экзамен, испытание 8) Место, область, город, мегаполис 9) Игрушка, продукт, товар, молочный продукт 10) Квитанция, накладная, документ, счет 11) Автомобиль, поезд, транспортное средство, экспресс 12) Двигатель, двигатель внутреннего сгорания, дизель, реактивный 13) Республика, монархия, королевство, государство 14) Млекопитающее, парнокопытное, птица, животное 15) Корабль, пароход, парусник, корвет Порядок выполнения работы:

1) Разработать методы и свойства для каждого из определяемых классов.

2) Реализовать программу на C# в соответствии с вариантом исполнения.

3) Подготовить отчет в твердой копии и в электронном виде.

Лабораторная работа 3: Программирование полиморфных методов.

Цель работы:

Познакомиться с программированием полиморфных методов при объектно-ориентированном подходе при использовании языка C#.

Необходимые теоретические сведения Полиморфизм Полиморфизм – одна из основных составляющих объектноориентированного программирования, позволяющая определять в наследуемом классе методы, которые будут общими для всех наследующих классов, при этом наследующий класс может определять специфическую реализацию некоторых или всех этих методов. Главный принцип полиморфизма: «один интерфейс, несколько методов». Благодаря ему, можно пользоваться методами, не обладая точными знаниями о типе объектов.

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

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

Выбор версии виртуального метода, которую требуется вызвать, осуществляется в соответствии с типом объекта, на который ссылается ссылочная переменная, во время выполнения программы. Другими словами, именно тип объекта, на который указывает ссылка (а не тип ссылочной переменной), определяет вызываемую версию виртуального метода. Таким образом, если класс содержит виртуальный метод и от этого класса были наследованы другие классы, в которых определены свои версии метода, при ссылке переменной типа наследуемого класса на различные типы объектов вызываются различные версии виртуального метода.

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

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

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

Синтаксис:

virtual тип имя (список_параметров){тело_метода};

Пример:

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

При объявлении абстрактного метода используется модификатор abstract. Абстрактный метод автоматически становится виртуальным, так что модификатор virtual при объявлении метода не используется.

Абстрактный класс предназначен только для создания иерархии классов, нельзя создать объект абстрактного класса.

Пример:

Abstract

class Animal public string Name;

protected int Weight;

private int Type;

abstract void Feed();

public int Animal(int W, int T, string N) public int GetWeight(){return Weight;} class Predator:Animal private int Speed;

override void Feed(int Food){ Weight += Food;} Контрольные вопросы 1) Что понимается под термином «полиморфизм»?

2) В чем состоит основной принцип полиморфизма?

3) В чем состоит значение основного принципа полиморфизма?

4) Какие механизмы используются в языке C# для реализации концепции полиморфизма?

5) Что понимается под термином «виртуальный метод»?

6) Какое ключевое слово языка C# используется для определения виртуального метода?

7) В чем состоит особенность виртуальных методов в производных (дочерних) классах?

8) В какой момент трансляции программы осуществляется выбор версии виртуального метода?

9) Какие условия определяют выбор версии виртуального метода?

10) Какое ключевое слово (модификатор) языка C# используется для определения виртуального метода в базовом (родительском) классе?

11) Какое ключевое слово (модификатор) языка C# используется для определения виртуального метода в производном (дочернем) классе?

виртуальных методов?

13) Что означает термин «переопределенный метод»?

14) В какой момент трансляции программы осуществляется выбор вызываемого переопределенного метода?

15) Приведите синтаксис виртуального метода в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

16) Что понимается под термином «абстрактный класс»?

17) В чем заключаются особенности абстрактных классов?

18) Какой модификатор языка C# используется при объявлении абстрактных методов?

19) Являются ли абстрактные методы виртуальными?

20) Используется ли модификатор virtual языка C# при объявлении абстрактных методов?

21) Возможно ли создание иерархии классов посредством абстрактного класса?

22) Возможно ли создание объектов абстрактного класса?

23) Приведите синтаксис абстрактного класса в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

Варианты заданий Расширить иерархию классов из лабораторной работы №2 с использованием виртуального класса в качестве основы иерархии. Показать пример использования полиморфизма методов.

Порядок выполнения работы:

1) Изменить иерархию классов и реализовать ее на С#.

2) Показать на примере одного из методов, присутствующих в каждом классе, свойство полиморфизма.

3) Подготовить отчет в твердой копии и в электронном виде.

Лабораторная работа 4: Расширенные возможности языка программирования C#.

Цель работы:

программирования C#, такими, как интерфейсы и делегаты.

Необходимые теоретические сведения Интерфейсы В C# для полного отделения структуры класса от его реализации используется механизм интерфейсов.

Интерфейс является расширением идеи абстрактных классов и методов.

Синтаксис интерфейсов подобен синтаксису абстрактных классов.

Объявление интерфейсов выполняется с помощью ключевого слова interface. При этом методы в интерфейсе не поддерживают реализацию.

Членами интерфейса могут быть методы, свойства, индексаторы и события.

Интерфейс может реализовываться произвольным количеством классов.

Один класс, в свою очередь, может реализовывать любое число интерфейсов.

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

Синтаксис:

[атрибуты] [модификаторы] interface Имя_интерфейса[:список_родительских_интерфейсов] { обьявление_свойств_и_методов} Пример:

interface Species string Species();

void Feed();

class Cheetah:Animal,Species{ private string ScientificName;

public string Species() {return ScientificName;} public void Feed() {Weight++;} Можно объявлять ссылочную переменную, имеющую интерфейсный тип. Подобная переменная может ссылаться на любой объект, который реализует ее интерфейс. При вызове метода объекта с помощью интерфейсной ссылки вызывается версия метода, реализуемого данным объектом.

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

Делегаты Делегат — это объект, имеющий ссылку на метод. Делегат позволяет выбрать вызываемый метод во время выполнения программы. Фактически значение делегата – это адрес области памяти, где находится точка входа метода.

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

Делегат объявляется с помощью ключевого слова delegate, за которым указывается тип возвращаемого значения, имя делегата и список параметров вызываемых методов.

Синтаксис:

delegate тип_возвращаемого_значения имя_делегата (список_параметров);

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

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

Для создания цепочки методов необходимо создать экземпляр делегата, и пользуясь операторами + или += добавлять методы к цепочке. Для удаления метода из цепочки используется оператор - или -=. Делегаты, хранящие несколько ссылок, должны иметь тип возвращаемого значения void.

Контрольные вопросы 1) Что понимается под термином «интерфейс»?

2) Чем отличается синтаксис интерфейса от синтаксиса абстрактного 3) Какое ключевое слово языка C# используется для описания интерфейса?

4) Поддерживают ли реализацию методы интерфейса?

5) Какие объекты языка C# могут быть членами интерфейсов?

6) Каким количеством классов может быть реализован интерфейс?

7) Может ли класс реализовывать множественные интерфейсы?

8) Необходима ли реализация методов интерфейса в классе, включающем этот интерфейс?

9) Какой модификатор доступа соответствует интерфейсу?

10) Допустимо ли явное указание модификатора доступа для интерфейса?

Проиллюстрируйте его фрагментом программы на языке C#.

12) Возможно ли создание ссылочной переменной интерфейсного 13) Возможно ли наследование интерфейсов?

14) Насколько синтаксис наследования интерфейсов отличается от синтаксиса наследования классов?

15) Необходимо ли обеспечение реализации в иерархии наследуемых интерфейсов?

16) Что понимается под термином «делегат»?

17) В чем состоят преимущества использования делегатов?

18) В какой момент осуществляется выбор вызываемого метода в случае использования делегатов?

19) Что является значением делегата?

20) Какое ключевое слово языка C# используется для описания делегатов?

21) Приведите синтаксис делегата в общем виде. Проиллюстрируйте его фрагментом программы на языке C#.

22) Возможно ли использование делегата для вызова метода, соответствующего подписи делегата?

23) Возможен ли вызов метода в том случае, если его подпись не соответствует подписи делегата?

24) Что понимается под термином «многоадресность»?

25) В чем состоит практическое значение многоадресности?

26) Каким образом осуществляется создание цепочки методов для многоадресных делегатов?

27) Какие операторы языка C# используются для создания цепочки методов для многоадресных делегатов?

28) Каким образом осуществляется удаление цепочки методов для многоадресных делегатов?

29) Какие операторы языка C# используются для удаления цепочки методов для многоадресных делегатов?

30) Каким должен быть тип возвращаемого значения для многоадресных делегатов?

Варианты заданий Реализовать для иерархии из лабораторной работы №3 механизм интерфейсов, при этом один из классов должен реализовывать как минимум 2 интерфейса. Использовать для проверки всех методов данного класса многоадресный делегат.

Порядок выполнения работы:

1) Реализовать программу на C# в соответствии с вариантом 2) Подготовить отчет в твердой копии и в электронном виде.

Лабораторная работа 5: Событийно-ориентированное программирование.

Цель работы:

Познакомиться с механизмами событийно-ориентированного программирования на языке C#, такими как механизм обработки событий и исключительные ситуации.

Необходимые теоретические сведения Обработка событий Событие — это автоматическое извещение о каком-либо произошедшем действии. События являются членами класса и объявляются с использованием ключевого слова event. Механизм событий основан на использовании делегатов.

Синтаксис:

event имя_делегата имя_обьекта;

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

Пример:

// Объявление делегата, на основе которого будет // определено событие.

delegate void MyEventHandler () ;

// Объявление класса, в котором инициируется событие.

class MyEvent public event MyEventHandler activate;

// В этом методе инициируется событие.

public void fire() { if (activate != null) activate(); } class X public void Xhandler() Console.WriteLine("Событие получено объектом класса X.");

class Y public void Yhandler() Console.WriteLine("Событие получено объектом класса Y.");

class EventDemo static void handler() Console.WriteLine("Событие получено объектом класса EventDemo.") public static void Main() MyEvent evt = new MyEvent();

// Добавление методов handler (), Xhandler() // и Yhandler() в цепочку обработчиков события.

evt.activate += new MyEventHandler(handler);

evt.activate += new MyEventHandler(xOb.Xhandler);

evt.activate += new MyEventHandler(yOb.Yhandler);

evt.fire();

Console.WriteLine();

evt.activate -= new MyEventHandler(xOb.Xhandler);

evt.fire();

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

Обработка исключений в С# выполняется с применением четырех ключевых слов: try, catch, throw и finally. Эти ключевые слова образуют взаимосвязанную подсистему, в которой использование одного из ключевых слов влечет за собой использование других.

Основа обработки исключений основана на использовании блоков try и catch.

Синтаксис:

Блок_кода_для_которого_выполняется_мониторинг_ошибок Обработчик_исключений_ExcepTypel } catch (ЕхсерТуре2 ехОЬ) { Обработчик_исключений_ЕхсерТуре2 } Основные системные исключения приведены в следующей таблице:

ArrayTypeMismatchException Тип сохраненного значения DivideByZeroException Предпринята попытка деления на IndexOutOfRangeException Индекс массива выходит за пределы InvalidCastException Некорректное преобразование в OutOfMemoryException Вызов new был неудачным из-за OverflowException Переполнение при выполнении StackOverflowException Переполнение стека.

Тип исключения в операторе catch должен соответствовать типу перехватываемого исключения. Неперехваченное исключение непременно приводит к досрочному прекращению выполнения программы.

Для выполнения перехвата исключений вне зависимости от их типа (перехват всех исключений) возможно использование catch без параметров.

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

С целью предотвращения этой ситуации возможно указание блока кода, который вызывается после выхода из блока try/catch, с помощью блока finally в конце последовательности try/catch. Общая форма конструкции try/catch, включающей блок finally, показана ниже:

// Блок кода, выполняющий мониторинг ошибок } catch (ExcepTypel ехОЫ) { /I Обработка исключения ExcepTypel. } catch (ЕхсерТуре2 ехОЬ2) { II Обработка исключения ЕхсерТуре2.

finally { // Код блока finally. } Блок finally будет вызываться независимо от того, появится исключение или нет, и независимо от причин возникновения такового.

Генерация исключений Исключения автоматически генерируются системой. Однако исключение может быть сгенерировано и посредством оператора throw.

Синтаксис:

throw exceptOb;

Исключение, перехваченное одним оператором catch, может генерироваться повторно, благодаря чему оно может перехватываться внешним оператором catch. Для этого указывается ключевое слово throw без имени исключения.

Наследование классов исключений:

Можно создавать заказные исключения, выполняющие обработку ошибок в пользовательском коде. Генерирование исключений не представляет особых сложностей. Просто определите класс, наследуемый из класса Exception. В качестве общего правила руководствуйтесь тем, что определенные пользователем исключения наследуются из класса АрplicationException, так как они представляют собой иерархию зарезервированных исключений, связанных с приложениями. Наследуемые классы не нуждаются в фактической реализации в каком-либо виде, поскольку само их существование в системе типов данных позволяет воспользоваться ими в качестве исключений.

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

Контрольные вопросы 1) Что понимается под термином «событие»?

2) Являются ли события членами классов?

3) Какое ключевое слово языка C# используется для описания событий?

4) На каком механизме языка C# основана поддержка событий?

5) Приведите синтаксис описания события в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

6) Что понимается под термином «широковещательное событие»?

7) На основе какого механизма языка C# строятся широковещательные события?

8) Приведите синтаксис описания широковещательного события в общем виде. Проиллюстрируйте его фрагментом программы на языке C#.

9) Что понимается под термином «исключительная ситуация (исключение)»?

10) В чем состоит значение механизма исключений в языке C#?

11) Какие операторы языка C# используются для обработки исключений?

12) Какие операторы языка C# являются важнейшими для обработки исключений?

13) Приведите синтаксис блока try…catch в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

14) Приведите пять видов основных системных исключений.

15) Необходимо ли обеспечивать соответствие типов исключения в операторе catch типу перехватываемого исключения?

16) Что происходит в случае неудачного перехвата исключения?

17) В каком случае возможно использование оператора языка C# catch без параметров?

18) Каким образом осуществляется возврат в программу после обработки исключительной ситуации?

19) Какой оператор языка C# используется для обеспечения возврата в программу после обработки исключения?

20) Приведите синтаксис блока finally (в составе оператора try…catch) в общем виде. Проиллюстрируйте его фрагментом программы на языке C#.

21) Зависит ли вызов блока finally от наличия исключения?

22) Какие способы генерации исключений Вам известны?

23) Что является источником автоматически генерируемых (неявных) исключений?

24) Каким образом возможно осуществить явную генерацию исключений?

25) Какой оператор языка C# используется для явной генерации исключений?

26) Приведите синтаксис оператора throw в общем виде.

Проиллюстрируйте его фрагментом программы на языке C#.

27) Каким образом осуществляется повторный перехват исключений 28) Возможно ли создавать специализированные исключения для обработки ошибок в коде пользователя?

29) Какой системный класс является базовым для создания исключений?

30) На основе какого системного класса осуществляется генерация пользовательских исключений?

31) Необходима ли явная реализация классов, наследуемых от системных исключений?

32) Каким образом обеспечивается обращение к свойствам и методам системных исключений?

Варианты заданий Реализовать обработку ошибок для лабораторной работы №4, при этом переопределив с помощью наследования событие:

1) StackOverflowException 2) ArrayTypeMismatchException 3) DivideByZeroException 4) IndexOutOfRangeException 5) InvalidCastException 6) OutOfMemoryException 7) OverflowException Порядок выполнения работы:

1) Реализовать программу на C# в соответствии с вариантом 2) Подготовить отчет в твердой копии и в электронном виде.

Лабораторная работа 6: Проектирование и реализация гетерогенных приложений Цель работы:

Познакомиться с проектированием и реализацией гетерогенных приложений в рамках платформы.NET (проекты на SML и C#, синтезирующие различные подходы к программированию).

Необходимые теоретические сведения Гетерогенные приложения Платформа программирования.NET изначально разрабатывалась для построения приложений на компонентной основе, и обеспечения независимости взаимодействия компонентов от языка, на котором они написаны. Благодаря этому в рамках одного приложения могут быть использованы компоненты, реализующие различные подходы к программированию.

В качестве основной структурной единицы компонентного программирования выступает решение (solution), которое может состоять из сборок. Сборка представляет из себя управляемую динамическую библиотеку.net dll или приложение. В каждом решении должна быть хотя бы одна сборка.

Сборки связываются ссылками друг с другом. Ссылка (reference) – это пространство имен из одной сборки, доступное в другой. После добавления дополнительного проекта к решению и ссылки к основному проекту в коде основного проекта можно пользоваться пространствами имен дополнительного.

Взаимодействие с SML.NET на компонентном уровне Код SML.NET может создавать пространство имен, видимое в рамках других приложений. Для этого в файле script.smlnet прописывается директива export. Она экспортирует блок SML (объект, структуру) как пространство имен.NET, которое может в свою очередь быть использовано в любой сборке решения при добавлении соответствующей ссылки.

Синтаксис:

export имя1[, имя2 …] При создании нового проекта SML.NET платформа автоматически прописывает имя основной структуры проекта SML в создаваемый файл. В случае добавления дополнительных файлов или создания дополнительных экспортируемых структур экспортом надо управлять вручную.

В свою очередь для создания ссылки на другие проекты.NET в решении для SML.NET необходимо добавить строку вида:

Синтаксис:

Reference файл_с_кодом_компонента_1 […] Контрольные вопросы 2) Что понимается под термином «компонент»?

3) На каком подходе к программированию основана технология.NET?

4) В чем состоит значение компонентного подхода?

5) Могут ли компоненты в составе проекта для.NET быть разработаны на различных языках программирования?

6) Что понимается под термином «решение»?

7) Из каких элементов состоят решения?

8) Что понимается под термином «сборка»?

9) Каковы ограничения на количество сборок в составе решения?

10) Что понимается под термином «ссылка»?

11) В чем состоит назначение механизма ссылок?

12) Каким образом ссылки связывают основной проект с дополнительным?

13) Возможно ли создание пространства имен, доступных из других приложений?

14) В чем состоит назначение директивы экспорта?

15) В каком файле при работе с SML.NET хранится директива экспорта?

экспортированные данные,?

17) Какие данные SML могут быть экспортированы?

18) Какая директива реализует компонентный экспорт данных?

19) Приведите синтаксис директивы компонентного экспорта данных (export) в общем виде. Проиллюстрируйте его фрагментом программы 20) В каких случаях SML.NET осуществляет автоматическое управление метаданными проекта?

21) В каком случае возникает необходимость ручного управления экспортом?

22) Приведите синтаксис директивы ссылки на сторонние компоненты (reference) в общем виде. Проиллюстрируйте его фрагментом программы на языке C#.

Варианты заданий Оснастить графическим интерфейсом на языке C# следующие функции на языке SML.

Реализовать функцию на языке программирования SML, которая выполняет синтаксический разбор следующего аппликативного выражения по ассоциации влево с построением бинарного дерева:

3. (ac)(bc) 4. (ab)(c(de)) 5. a(b(cd)(ef)) 6. a(b(cd)(ef)g) 7. a(b((cd)(ef)) 8. (a(bc(de)f)gh) 9. abb(cdd(e)fg) 10. (ab(c(de))f(g(hi))j) Реализовать функцию на языке программирования SML, которая выполняет синтаксический разбор следующего аппликативного выражения по ассоциации вправо с построением бинарного дерева:

13. (ac)(bc) 14. (ab)(c(de)) 15. a(b(cd)(ef)) 16. a(b(cd)(ef)g) 17. a(b((cd)(ef)) 18. (a(bc(de)f)gh) 28. abb(cdd(e)fg) 20. (ab(c(de))f(g(hi))j) Порядок выполнения работы:

1) Реализовать программу на C# в соответствии с вариантом 2) Подготовить отчет в твердой копии и в электронном виде.

Список литературы и учебных материалов Основная литература 1. Visual C#. NET Step by Step, Microsoft Press, 2003.

2. Вилле К. Представляем Си Шарп. ДМК Пресс, 2001. ISBN 5-94074-039- программирования». Ч.1. Основы объектного программирования на С++.

М.: МИФИ – 2001, 55 с. ISBN 5-7262-0454- программирования». Ч.2. Основы разработки приложений на С++ для Win32 API. М.: МИФИ – 2001, 45 с. ISBN 5-7262-0454- 5. Зыков С.В. Современные языки программирования. Ч.I. Функциональный подход к программированию. М.:МИФИ – 2003, 230 с.

6. Петцольд Ч. Программирование для Microsoft Windows на C#. «Русская редакция», 2002. ISBN 5-7502-0210- 7. Платт Д.С. Знакомство с Microsoft.NET. «Русская редакция», 2001. ISBN 5-7502-0186- 8. Рихтер Дж. Программирование на платформе Microsoft.NET Framework.

«Русская редакция», 2002.

9. Робинсон У. C# без лишних слов. ДМК Пресс, 2002. ISBN 5-94074-177- 10. Шилдт Г. С#, учебный курс. Питер, 2003.

11. Gilmore S. Programming in Standard ML ’97: A Tutorial Introduction. The University of Edinburgh, 2897.

12. Troelsen A. C# and the.NET platform (2nd ed.).- APress, 2003, 1200 p.p.

Дополнительная литература 13. The Standard ML Basis Library, http://www.standardml.org/Basis /manpages.html 14. Harper R. Programming in Standard ML. Carnegie Mellon University, 2001.

15. Керниган Б., Пайк Р. Практика программирования.–СПб.: Невский диалект, 2001.–381 с.

16. Браунси К. Основные концепции структур данных и реализация в С++.– М.: Издательский дом «Вильямс», 2002.– 320 с.

17. Вольфенгаген В.Э. Конструкции языков программирования. Приемы описания. М.: АО «ЮрИнфоР», 2001, 276 с.

Приложение 1. Особенности инсталляции интегрированной среды разработки Visual Studio.NET Требования к аппаратному обеспечению:

Минимум:

Pentium II 450 MHz и выше Рекомендовано:

Pentium III 600MHz и выше Минимум:

Windows 2000 Professional — 96 MB Windows 2000 Server — 282 MB Windows NT4.0 Workstation — 64 MB Windows NT 4.0 Server — 160 MB Windows XP Professional — 160 MB Рекомендовано:

Windows 2000 Professional — 128 MB Windows 2000 Server — 256 MB Windows NT4.0 Workstation — 96 MB Windows NT 4.0 Server — 282 MB Windows XP Professional — 282 MB c. Свободное место на жестком диске:

На системном разделе — 500 MB На раздел, куда будет выполнена установка — 3 GB d. Дисковод CD-ROM или DVD-ROM Минимум:

800 x 600, 256 цветов Рекомендовано:

1024x768, 16 битный цвет f. Манипулятор мышь или аналогичный ему Требования к программному обеспечению:

1. Операционная система Windows® 2000, Windows XP, или Для установки Visual Studio.NET необходимо иметь административные привилегии на компьютер, на который производится установка. Для последующей работы с Visual Studio административные привилегии не требуются.

Дополнительные сведения о процессе установки можно найти в файлах readme, находящихся в корне первого (а в случае с DVD версией единственного) диска установочного комплекта Visual Studio.NET.





Похожие работы:

«ООО Струнный транспорт Юницкого 115487, Москва, ул. Нагатинская, 18/29 тел./факс: (495) 680-52-53 тел./факс: (499) 616-15-48 e-mail: [email protected] http: //www.unitsky.ru skype: Anatoly Unitsky БИЗНЕС-ПЛАН инвестиционного проекта Создание трассы подвесного СТЮ Студенческий городок – Экспоцентр – Университет в г. Ханты-Мансийске Бизнес-план разработан в соответствии с Методическими рекомендациями по составлению заявки и бизнес-плана инвестиционного проекта, разработанных департаментом...»

«“Msdienu izgltbas problmas“ НЕКОТОРЫЕ АСПЕКТЫ МЕТОДИКИ ПРОВЕДЕНИЯ ПРАКТИЧЕСКИХ ЗАНЯТИЙ И ЛАБОРАТОРНЫХ РАБОТ ПО ДИСЦИПЛИНЕ АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ МАШИН И СИСТЕМ Борис Цилькер1, Владимир Пятков2 Институт транспорта и связи, ул. Ломоносова, 1, Рига, LV-1019, Латвия Тел.: +371 7100604. Факс: +371 7100560. E-mail: [email protected], [email protected] Опыт проведения практических и лабораторных занятий по дисциплине Архитектура вычислительных машин и систем свидетельствует о сравнительно низком уровне...»

«ГБОУ Государственная столичная гимназия Основная образовательная программа начального общего образования МОСКВА 2012 1 СОДЕРЖАНИЕ Введение.. 2 I. Пояснительная записка Психолого-педагогические основы образовательной системы Д.Б. Эльконина – В.В. Давыдова.. 2 - 3 Психологический портрет младшего школьника. 4 Цели и задачи начального общего образования. 5 - 6 Этапы реализации ООП НОО.. 7 - 10 II. Планируемые результаты освоения обучающимися основной образовательной программы начального...»

«Министерство образования и науки Российской Федерации Беловский институт (филиал) федерального государственного бюджетного образовательного учреждения высшего профессионального образования Кемеровский государственный университет кафедра общественных наук Рабочая программа дисциплины Криминология Направление подготовки 030900.62 Юриспруденция Квалификация (степень) выпускника Бакалавр Форма обучения заочная Белово Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/)...»

«ПОЯСНИТЕЛЫНАЯ ЗАПИСКА Программа Учебно-исследовательский практикум по Спортивной метрологии разработан на основе ГОС ВПО для специальности 033100 Физическая культура (от 31 января 2005 г., номер государственной регистрации № 711 пед/сп), ООП специальности 050720.65 Физическая культура со специализацией Физическое воспитание в дошкольных образовательных учреждениях (2009), учебного плана, Положения о программе учебной дисциплины СМК-ПЛ-ДП-СП.05/РК.04.02 (31.03. 2009г.). Проходит в форме летнего...»

«Министерство образования и науки Российской Федерации ФГБОУ ВПО ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Институт архитектуры и строительства Кафедра Экспертиза и управление недвижимостью Глобализация бизнеса и рынка недвижимости ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ДИСЦИПЛИНЫ (рабочая учебная программа дисциплины) Направление подготовки: 080100 Экономика Магистерская программа: Экономика недвижимости Квалификация (степень) Магистр Форма обучения очная Составитель программы Пешков Виталий...»

«АННОТАЦИЯ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ ПОДГОТОВКИ БАКАЛАВРОВ Направление 38.03.02 Менеджмент 38.03.02_04 Производственный менеджмент (операции с недвижимым имуществом) Выпускающий институт – Инженерно-экономический. Выпускающая кафедра: Экономика и менеджмент недвижимости и технологий Руководитель ООП – Озеров Евгений Семенович, профессор, доктор технических наук, заслуженный работник высшей школы, Председатель Санкт-Петербургского Научнометодического Совета по оценке, судья...»

«ВЫСШЕЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАНИЕ Г. Г. РАННЕВ ИНТЕЛЛЕКТУАЛЬНЫЕ СРЕДСТВА ИЗМЕРЕНИЙ Учебник Рекомендовано Учебно-методическим объединением по образованию в области приборостроения и оптотехники в качестве учебника для студентов высших учебных заведений, обучающихся по направлению Приборостроение и специальностям Информационноизмерительная техника и технологии, Авиационные приборы и измерительно-вычислительные комплексы УДК 389(075.8) ББК 30.10я73 Р224 Р е ц е н з е н т ы: зав. кафедрой...»

«СИСТЕМА МЕНЕДЖМЕНТА КАЧЕСТВА Стандарт предприятия СТП 7.5-7 Промежуточная аттестация студентов заочной и очно-заочной форм обучения (ИНИТ). Положение Регистрационный номер документа Структурное подразделение Уполномоченный по качеству Дата получения Комсомольск-на-Амуре 2011 Система менеджмента качества СТП 7.5-7 Промежуточная аттестация студентов заочной и с. 1 из 25 очно-заочной форм обучения (ИНИТ). Положение Система менеджмента качества СТП 7.5-7 Промежуточная аттестация студентов заочной и...»

«Астрология для начинающих: как читать натальную карту учебник по астрологии Саликова Евгения 2004 Содержание Введение 3 стр. • Астрология: миф и реальность. • Виды астрологии, сфера применения каждого вида. • Как работать с книгой. Урок 1: Натальная карта. 7 стр. • Принцип единой системы. • Её величество КАРТА (знакомство с элементами карты). • Виды астрологических карт. • Как построить астрологическую карту (вручную и с помощью компьютерной программы). Одно самостоятельное задание. Урок 2:...»

«МИНОБРНАУКИ РОССИИ Филиал государственного бюджетного образовательного учреждения высшего профессионального образования Вятский государственный гуманитарный университет в г. Кирово-Чепецке Кафедра бухгалтерского учета и информационных технологий УТВЕРЖДАЮ Зав. кафедрой _ Е.В.Шубникова 25.04.2012 УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС учебной дисциплины Инвестиционный анализ для специальности 080109.65 Бухгалтерский учёт, анализ и аудит Кирово-Чепецк Учебно-методический комплекс составлен в соответствии с...»

«Analyzing Requirements and Defining Solution Architectures For Exam 70-100 Scott F. Wilson Bruce Maples Tim Landgrave МююзоП Press Принципы проектирования и разработки программного обеспечения Официальное пособие Microsoft для самостоятельной подготовки к экзамену 70-100 Скотт Ф. Уилсон Брюс Мэйплс Тим Лэндгрейв Москва 2002 Н. Р Ш Ш ШИШ УДК 004.45 ББК 32.973.26-018.2 М59 Microsoft Corporation М59 Принципы проектирования и разработки программного обеспечения. Учебный курс MCSD/Пер. с англ. —...»

«ПРИЛОЖЕНИЕ 2 к Программе социально-экономического развития муниципального образования Мурашинский муниципальный район Кировской области на 2011-2013 гг ИСТОЧНИКИ ФИНАНСИРОВАНИЯ ОСНОВНЫХ МЕРОПРИЯТИЙ ПРОГРАММЫ СОЦИАЛЬНО-ЭКОНОМИЧЕСКОГО РАЗВИТИЯ МУРАШИНСКОГО РАЙОНА КИРОВСКОЙ ОБЛАСТИ на 2011-2013 гг. РАЗДЕЛ 1: Развитие экономики Мурашинского района в тыс. руб. Содержание мероприятий Источники финансирования 2011 год 2012 год 2013 год ИТОГО (бюджетные, внебюджетные, средства предприятий) 1.1....»

«Государственное бюджетное образовательное учреждение дополнительного образования детей города Москвы Детская школа искусств “Надежда” Принята на заседании Утверждено педагогического совета Приказ директора От 01.09.2009 г. № 92/1 31.08.2009 Кислухина Т. В. Образовательная программа по предмету Беседы о музыке на отделении музыкального театра Авторы программы: Ершова А. П., Букатов В. М. Рассчитана на детей с 7 лет. Срок обучения 7 лет. Изменения и дополнения внесены преподавателем Детской школы...»

«1. Общие положения 1.1. Основная образовательная программа бакалавриата, реализуемая в Технологическом институте – филиале ФГБОУ ВПО Ульяновская ГСХА по направлению подготовки Экономика и профилю подготовки Бухгалтерский учт, анализ и аудит представляет собой систему документов, разработанную и утвержднную высшим учебным заведением с учтом требований рынка труда на основе Федерального государственного образовательного стандарта (ФГОС ВПО) по данному направлению подготовки, утвержденного 21...»

«Муниципальное казённое общеобразовательное учреждение Песчано-Колединская средняя общеобразовательная школа Принята Утверждаю на заседании педагогического совета Директор школы Протокол № 9 от 29.08.2011 _ Л.С. Князева Приказ от 1.09.2011 № 33а Комплексная образовательная программа внеучебной деятельности Ступени роста 1-4 классы Авторы программы: Л.С. Князева, директор школы Л.А. Тараканова, заместитель директора по УВР Т.Н. Самарина, заместитель директора по ВР М.А. Лебёдкина, учитель...»

«СОДЕРЖАНИЕ 1 стр. 3 1. ПАСПОРТ ПРИМЕРНОЙ ПРОГРАММЫ УЧЕБНОЙ ДИСЦИПЛИНЫ 5 2. СТРУКТУРА И ПРИМЕРНОЕ СОДЕРЖАНИЕ УЧЕБНОЙ ДИСЦИПЛИНЫ 14 3. УСЛОВИЯ РЕАЛИЗАЦИИ ПРИМЕРНОЙ ПРОГРАММЫ УЧЕБНОЙ ДИСЦИПЛИНЫ 15 4. КОНТРОЛЬ И ОЦЕНКА РЕЗУЛЬТАТОВ ОСВОЕНИЯ УЧЕБНОЙ ДИСЦИПЛИНЫ 2 1. ПАСПОРТ РАБОЧЕЙ ПРОГРАММЫ УЧЕБНОЙ ДИСЦИПЛИНЫ Налоги и налогообложение 1.1. Область применения программы Рабочая программа учебной дисциплины является частью основной профессиональной образовательной программы в соответствии с ФГОС по...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ НАЦИОНАЛЬНЫЙ МИНЕРАЛЬНО-СЫРЬЕВОЙ УНИВЕРСИТЕТ ГОРНЫЙ ОСНОВНАЯ ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Направление подготовки: 140100 - ТЕПЛОЭНЕРГЕТИКА И ТЕПЛОТЕХНИКА Профиль подготовки: ЭНЕРГООБЕСПЕЧЕНИЕ ПРЕДПРИЯТИЙ Квалификация выпускника БАКАЛАВР Нормативный срок обучения 4 ГОДА Форма обучения ОЧНАЯ САНКТ-ПЕТЕРБУРГ, 2013 г. АННОТАЦИЯ 1. ОБЩИЕ ПОЛОЖЕНИЯ 1.1. Основная образовательная программа (ООП) бакалавриата,...»

«Министерство образования и науки РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Уральский государственный лесотехнический университет Кафедра менеджмента и внешнеэкономической деятельности предприятия Одобрена: Утверждаю: кафедрой менеджмента и ВЭД предприятия протокол № 1 от 2 сентября 2013 г. Декан ФЭУ В.П. Часовских Зав. Кафедрой _В.П. Часовских методической комиссией ФЭУ Протокол № 1 от 9 сентября 2013 г. Председатель НМС ФЭУ_ Е.Н....»

«2 1. Цели и задачи освоения дисциплины Правовая система Российской Федерации Целью освоения дисциплины Правовая система Российской Федерации является приобретение и углубление студентами теоретических знаний по теории права и государства, о существующих правовых системах и особенностях правовой системы России. Задачи изучения дисциплины Правовая система Российской Федерации: - уяснить источники и основные отрасли права; - изучить систему правоотношений и правовой деятельности; - уяснить...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.