- •1. Вводная часть
- •2. Знакомство со средой разработки на примере создания простого консольного приложения
- •3. Модификация консольного приложения
- •4. Публикация
- •5. О приложении к Лабораторной работе № 1
- •Лабораторная работа № 2: Создание простого приложения Windows Forms
- •Создание простого приложения Windows Forms
- •Модификация приложения Windows Forms
- •Завершающая часть
- •2. Создание простого приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Завершающая часть
- •5. О приложении к Лабораторной работе № 2
- •3. Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления
- •Вводная часть
- •О приложении к Лабораторной работе № 3
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: элемент управления MenuStrip
- •5. Модификация приложения Windows Forms: элемент управления Button
- •6. Модификация приложения Windows Forms: элемент управления ToolTip
- •7. Модификация приложения Windows Forms: элемент управления ComboBox
- •8. Модификация приложения Windows Forms: элемент управления WebBrowser
- •9. Модификация приложения Windows Forms: добавляем исходный код
- •10. Завершающая часть
- •11. О приложение к Лабораторной работе № 3
- •4. Лабораторная работа № 4: Windows Forms — работа с формами Лабораторная работа № 4: Windows Forms — работа с формами
- •Вводная часть
- •О приложении к Лабораторной работе № 4
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: добавление новой формы
- •5. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через прямой доступ к элементу формы
- •6. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через передачу метода в конструктор формы
- •7. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через класс делегата
- •8. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через свойства
- •9. Завершающая часть
- •10. О приложении к Лабораторной работе № 4
- •5. Лабораторная работа № 5: Windows Forms — элементы управления Лабораторная работа № 5: Windows Forms — элементы управления
- •Вводная часть
- •О приложении к Лабораторной работе № 5
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: динамическое добавление и уничтожение элемента управления
- •5. Модификация приложения Windows Forms: стандартные диалоговые окна
- •6. Модификация приложения Windows Forms: открытие файла, сохранение файла и работа с текстом
- •7. Модификация приложения Windows Forms: прочее
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 5
- •Лабораторная работа № 6: SolidWorks — работа с SolidWorks
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: eDrawings 2012
- •4. Модификация приложения Windows Forms: организация работы с SolidWorks через приложение
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 6
- •Лабораторная работа № 7: SolidWorks — использование SwCSharpAddin, работа с макросом и шаблоном детали
- •2. Создание приложения SwCSharpAddin
- •3. Модификация приложения SwCSharpAddin: макрос отрисовки болта
- •4. Модификация приложения SwCSharpAddin: построение через шаблон детали
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 7
- •8. Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation
- •Вводная часть
- •О приложении к Лабораторной работе № 8
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: добавление нового элемента из библиотеки компонентов wpf
- •5. Модификация приложения Windows Forms: расширение функциональности приложения и работа с оформление
- •6. Модификация приложения Windows Foundation Presentation: различные возможности wpf
- •7. Модификация приложения Windows Foundation Presentation: немного о стилях и шаблонах
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 8
- •Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: работа с решением в Expression Blend
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 9
- •Лабораторная работа № 10: Работа с базами данных — xml и ole
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: odbc
- •4. Модификация приложения Windows Forms: ole
- •5. Модификация приложения Windows Forms: xml
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 10
- •Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов
- •2. Удалённый объект: создание библиотеки классов удалённого объекта
- •3. Клиент: создание приложения Windows Forms
- •4. Сервер: создание консольного приложения
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 11
- •Лабораторная работа № 12: Автоматизация Microsoft Office Word
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Word
- •4. Модификация приложения Windows Forms: работа с шаблонами
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 12
- •Лабораторная работа № 13: Автоматизация Microsoft Office Excel
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Excel
- •4. Модификация приложения Windows Forms: чтение данных с документа Microsoft Excel
- •5. Модификация приложения Windows Forms: прочие возможности Microsoft Excel
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 13
- •Лабораторная работа № 14: Простой растровый редактор
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора
- •4. Модификация приложения Windows Forms: функциональность растрового редактора
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 14
- •15. Лабораторная работа № 15: Векторный редактор изображений Лабораторная работа № 15: Векторный редактор изображений
- •Вводная часть
- •О приложении к Лабораторной работе № 15
- •1. Вводная часть
- •2. Создание решения, приложения Windows Forms и библиотеки классов
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора и добавление файлов ресурсов
- •4. О будущей функциональности векторного редактора изображений
- •5. Модификация приложения Windows Forms: подготовка библиотеки классов
- •6. Модификация приложения Windows Forms: функциональность векторного редактора
- •7. Завершающая часть
- •8. О приложении к Лабораторной работе № 15
- •Лабораторная работа № 16: Windows Communication Foundation
- •2. Создание приложения wcf:
- •3. Модификация приложения wcf: приложение-клиент для wcf-службы
- •4. Создание приложения Windows Forms: сервер чата на wcf
- •5. Создание приложения Windows Forms: клиент чата на wcf
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 16
- •Лабораторная работа № 17: Знакомство с Silverlight
- •2. Создание приложения Silverlight:
- •3. Модификация приложения Silverlight: первые шаги и полноэкранный режим
- •4. Модификация приложения Silverlight: простой проигрыватель mp3-файлов
- •5. Модификация приложения Silverlight: работа с анимацией
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 17
- •Лабораторная работа № 18: Знакомство с asp.Net
- •2. Создание веб-приложения asp.Net
- •3. Модификация веб-приложения asp.Net: реализация различной функциональности
- •4. Модификация веб-приложения asp.Net: ajax
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 18
- •Вводная часть
- •О приложении к Лабораторной работе № 19
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса и добавление TabControl
- •4. Модификация приложения Windows Forms: вкладка «Просто фон!»
- •5. Модификация приложения Windows Forms: вкладка «Объекты и градиент»
- •6. Модификация приложения Windows Forms: вкладка «Мой монитор сломался!»
- •7. Модификация приложения Windows Forms: вкладка «Векторные часы»
- •8. Модификация приложения Windows Forms: вкладка «Огонь!!!»
- •9. Модификация приложения Windows Forms: вкладка «Дождик»
- •10. Завершающая часть
- •11. О приложении к Лабораторной работе № 19
- •Лабораторная работа № 20: Inventor — работа с Inventor
- •Вводная часть
- •О приложении к Лабораторной работе № 20
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: запуск и завершение приложения Inventor
- •4. Модификация приложения Windows Forms: создание новых документов
- •5. Модификация приложения Windows Forms: доступ к элементам документов Inventor
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 20
- •Лабораторная работа № 21: Знакомство с языком f# (Эф-шарп) на примере простого приложения для командной строки
- •Вводная часть
- •О приложении к Лабораторной работе № 21
- •1. Вводная часть
- •2. Основные положения при работе с f#
- •3. Создание приложения «Учебник по f#»
- •4. Создание консольного приложения
- •5. О приложении к Лабораторной работе № 21
- •Лабораторная работа № 22: Различные примеры на f#
- •2. Создание приложения «Приложение f#»
- •3. Модификация приложения f#: match
- •4. Модификация приложения f#: создание форм и рисование объектов на форме
- •5. Модификация приложения f#: работа с базой данных Microsoft Access
- •6. О приложении к Лабораторной работе № 22
- •23. Дополнительная лабораторная работа № 1
- •24. Дополнительная лабораторная работа № 2
- •25. Дополнительная лабораторная работа № 3
- •Вводная часть
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation: добавление ресурсов
- •4. Модификация приложения Windows Foundation Presentation: добавление исходного кода
- •5. Модификация приложения Windows Foundation Presentation: оформление элемента ListBox
- •6. Завершающая часть
- •7. О приложении к данной работе
3. Модификация приложения f#: match
Полностью рабочее приложение будет вовсю использовать директивы open и ссылаться на библиотеки компонентов .NET. Нам понадобятся Ссылки; для добавления ссылок выполним: Проект -> Добавить ссылку...:
В открывшемся окне переходим на вкладку .NET:
Рис. 3. 1. Добавление ссылки: добавляем ссылку на компоненты Windows Forms
Нам понадобятся:
System.Windows.Forms;
System.Data;
System.Drawing;
Так будет выглядеть папка «Ссылки» проекта в итоге:
Остальное (библиотеки) будет добавляться использованием «open».
Для начала воспользуемся консолью для реализации следующей функциональности. В F# существует ключевое слово match. Выражение match позволяет управлять ветвлением на основе сравнения выражения с набором шаблонов. Пример:
// Выражение match
match test-expression with
| pattern1 [ when condition ] -> result-expression1
| pattern2 [ when condition ] -> result-expression2
| ...
// Шаблон функции
function
| pattern1 [ when condition ] -> result-expression1
| pattern2 [ when condition ] -> result-expression2
| ...
И так, реализуем начальную функциональность приложения. Пользователю предложат ввести символы, и на основе ввода будет выдан результат. Добавляем следующий код в файл Program.cs:
// Ключевое слово match: вывод армейских наименований взводов
// Используем библиотеку F#
open System
// Меняем заголовок окна консольного приложения
Console.Title <- "Различные примеры (F#) :: Вывод армейских наименований взводов"
// Меняем цвет отображения символов
Console.ForegroundColor <- ConsoleColor.Blue
Console.BackgroundColor <- ConsoleColor.Gray
// Выводим запрос
printfn "Введите букву латинского алфавита (от a до z):"
// Конвертируем введённые символы с заглавные символы
let chrletter = Char.ToUpper(Convert.ToChar(System.Console.ReadLine()))
// match использует переменную chrletter
match chrletter with
// Если значение chrletter "a" или "A", выводим "Alpha"
| 'A' -> printfn "Вам подходит: Alpha"
| 'B' -> printfn "Вам подходит: Bravo"
| 'C' -> printfn "Вам подходит: Charlie"
| 'D' -> printfn "Вам подходит: Delta"
| 'E' -> printfn "Вам подходит: Echo"
| 'F' -> printfn "Вам подходит: FoxTrot"
| 'G' -> printfn "Вам подходит: Golf"
| 'H' -> printfn "Вам подходит: Hotel"
| 'I' -> printfn "Вам подходит: India"
| 'J' -> printfn "Вам подходит: Juliet"
| 'K' -> printfn "Вам подходит: Kilo"
| 'L' -> printfn "Вам подходит: Lima"
| 'M' -> printfn "Вам подходит: Mike"
| 'N' -> printfn "Вам подходит: November"
| 'O' -> printfn "Вам подходит: Oscar"
| 'P' -> printfn "Вам подходит: Papa"
| 'Q' -> printfn "Вам подходит: Quebec"
| 'R' -> printfn "Вам подходит: Romeo"
| 'S' -> printfn "Вам подходит: Sierra"
| 'T' -> printfn "Вам подходит: Tango"
| 'U' -> printfn "Вам подходит: Uniform"
| 'V' -> printfn "Вам подходит: Victor"
| 'W' -> printfn "Вам подходит: Whiskey"
| 'X' -> printfn "Вам подходит: X-Ray"
| 'Y' -> printfn "Вам подходит: Yankee"
| 'Z' -> printfn "Вам подходит: Zulu"
// Если не буква
| _ -> printfn "Вы ввели символ не латинского алфавита"
printfn "\t\t\tНажмите клавишу Enter для продолжения..."
// Пауза
Console.ReadKey()
// Очищаем экран
Console.Clear()
Соответствующие шаблону выражения позволяют выполнять сложное ветвление на основе сравнения тестового выражения с набором шаблонов. В выражении match выражение test-expression по очереди сравнивается с каждым шаблоном, и когда соответствие найдено, вычисляется соответствующее выражение result-expression, а полученное значение возвращается в качестве значения выражения match.
Функция сопоставления шаблонов, продемонстрированная в предыдущей синтаксической конструкции, представляет собой лямбда-выражение (ключевое слово fun), в котором сопоставление шаблонов выполняется непосредственно в аргументе. Функция сопоставления шаблонов, продемонстрированная в предыдущей синтаксической конструкции, эквивалентна следующему:
arg функции ->
сопоставить arg с
| pattern1 [ если condition ] -> result-expression1
| pattern2 [ если condition ]-> result-expression2
| ...
Дополнительные сведения о лямбда-выражениях можно посмотреть здесь: Лямбда-выражения: ключевое слово fun (F#).
Полный набор шаблонов должен включать все возможные сочетания входной переменной. Очень часто шаблон с подстановочными знаками «_» используется в качестве последнего шаблона, чтобы обеспечить соответствие любым ранее не сопоставленным входным значениям.
Компилируем приложение (Debug) и запускаем. Вводим любой символ с латинской раскладки клавиатуры и получаем результат:
Рис. 3. 1. Результат работы приложения F#: работа match и вывод результата
Добавим следующий код ещё одного примера работы с match:
// Ключевое слово match: вывод календарного месяца
Console.Title <- "Различные примеры (F#) :: Вывод календарного месяца"
Console.ForegroundColor <- ConsoleColor.Blue
Console.BackgroundColor <- ConsoleColor.White
printfn "Введите числа в диапазоне от 1 до 12:"
let intmonth = Convert.ToInt32(System.Console.ReadLine())
// match использует переменную intmonth
match intmonth with
// Если значение intmonth = 1, выводим "Январь"
| 1 -> printfn "Вам подходит: Январь (31 день)"
| 2 -> printfn "Вам подходит: Февраль (28/29 дней)"
| 3 -> printfn "Вам подходит: Март (31 день)"
| 4 -> printfn "Вам подходит: Апрель (30 день)"
| 5 -> printfn "Вам подходит: Май (31 день)"
| 6 -> printfn "Вам подходит: Июнь (30 дней)"
| 7 -> printfn "Вам подходит: Июль (31 день)"
| 8 -> printfn "Вам подходит: Август (31 день)"
| 9 -> printfn "Вам подходит: Сетябрь (30 дней)"
| 10 -> printfn "Вам подходит: Октябрь (31 дней)"
| 11 -> printfn "Вам подходит: Ноябрь (30 дней)"
| 12 -> printfn "Вам подходит: Декабрь (31 день)"
| _ -> printfn "Вы ввели число не из диапазона"
printfn "\t\t\tНажмите клавишу Enter для продолжения..."
Console.ReadKey()
Console.Clear()
Рис. 3. 2. Результат работы приложения F#: работа match и вывод результата