
- •Минобрнауки россии
- •1. Вводная часть
- •2. Знакомство со средой разработки на примере создания простого консольного приложения
- •3. Модификация консольного приложения
- •4. Публикация
- •5. О приложении к Лабораторной работе № 1
- •2. Лабораторная работа № 2: Создание простого приложения Windows Forms Лабораторная работа № 2: Создание простого приложения Windows Forms
- •1. Вводная часть
- •2. Создание простого приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Завершающая часть
- •5. О приложении к Лабораторной работе № 2
- •3. Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления Лабораторная работа № 3: Windows Forms и использование некоторых элементов управления
- •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 — работа с формами
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: добавление новой формы
- •5. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через прямой доступ к элементу формы
- •6. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через передачу метода в конструктор формы
- •7. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через класс делегата
- •8. Модификация приложения Windows Forms: динамическое связывание параметров двух форм и передача параметра через свойства
- •9. Завершающая часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms
- •4. Модификация приложения Windows Forms: динамическое добавление и уничтожение элемента управления
- •5. Модификация приложения Windows Forms: стандартные диалоговые окна
- •6. Модификация приложения Windows Forms: открытие файла, сохранение файла и работа с текстом
- •7. Модификация приложения Windows Forms: прочее
- •8. Завершающая часть
- •9. О приложении к Лабораторной работе № 5
- •6. Лабораторная работа № 6: SolidWorks — работа с SolidWorks Лабораторная работа № 6: SolidWorks — работа с SolidWorks
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: eDrawings 2012
- •4. Модификация приложения Windows Forms: организация работы с SolidWorks через приложение
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 6
- •1. Вводная часть
- •2. Создание приложения SwCSharpAddin
- •3. Модификация приложения SwCSharpAddin: макрос отрисовки болта
- •4. Модификация приложения SwCSharpAddin: построение через шаблон детали
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 7
- •8. Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation Лабораторная работа № 8: Создание простого приложения Windows Foundation Presentation
- •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. Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation Лабораторная работа № 9: Создание приложения-презентации Windows Foundation Presentation
- •1. Вводная часть
- •2. Создание приложения Windows Foundation Presentation
- •3. Модификация приложения Windows Foundation Presentation
- •4. Модификация приложения Windows Foundation Presentation: работа с решением в Expression Blend
- •5. Завершающая часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: odbc
- •4. Модификация приложения Windows Forms: ole
- •5. Модификация приложения Windows Forms: xml
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 10
- •11. Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов Лабораторная работа № 11: Динамическая связь приложений через библиотеку классов
- •1. Вводная часть
- •2. Удалённый объект: создание библиотеки классов удалённого объекта
- •3. Клиент: создание приложения Windows Forms
- •4. Сервер: создание консольного приложения
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 11
- •12. Лабораторная работа № 12: Автоматизация Microsoft Office Word Лабораторная работа № 12: Автоматизация Microsoft Office Word
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Word
- •4. Модификация приложения Windows Forms: работа с шаблонами
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 12
- •13. Лабораторная работа № 13: Автоматизация Microsoft Office Excel Лабораторная работа № 13: Автоматизация Microsoft Office Excel
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: создание и заполнение нового документа Microsoft Excel
- •4. Модификация приложения Windows Forms: чтение данных с документа Microsoft Excel
- •5. Модификация приложения Windows Forms: прочие возможности Microsoft Excel
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 13
- •14. Лабораторная работа № 14: Простой растровый редактор Лабораторная работа № 14: Простой растровый редактор
- •1. Вводная часть
- •2. Создание приложения Windows Forms
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора
- •4. Модификация приложения Windows Forms: функциональность растрового редактора
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 14
- •15. Лабораторная работа № 15: Векторный редактор изображений Лабораторная работа № 15: Векторный редактор изображений
- •1. Вводная часть
- •2. Создание решения, приложения Windows Forms и библиотеки классов
- •3. Модификация приложения Windows Forms: подготовка интерфейса редактора и добавление файлов ресурсов
- •4. О будущей функциональности векторного редактора изображений
- •5. Модификация приложения Windows Forms: подготовка библиотеки классов
- •6. Модификация приложения Windows Forms: функциональность векторного редактора
- •7. Завершающая часть
- •8. О приложении к Лабораторной работе № 15
- •16. Лабораторная работа № 16: Windows Communication Foundation Лабораторная работа № 16: Windows Communication Foundation
- •1. Вводная часть
- •2. Создание приложения wcf:
- •3. Модификация приложения wcf: приложение-клиент для wcf-службы
- •4. Создание приложения Windows Forms: сервер чата на wcf
- •5. Создание приложения Windows Forms: клиент чата на wcf
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 16
- •17. Лабораторная работа № 17: Знакомство с Silverlight Лабораторная работа № 17: Знакомство с Silverlight
- •1. Вводная часть
- •2. Создание приложения Silverlight:
- •3. Модификация приложения Silverlight: первые шаги и полноэкранный режим
- •4. Модификация приложения Silverlight: простой проигрыватель mp3-файлов
- •5. Модификация приложения Silverlight: работа с анимацией
- •6. Завершающая часть
- •7. О приложении к Лабораторной работе № 17
- •18. Лабораторная работа № 18: Знакомство с asp.Net Лабораторная работа № 18: Знакомство с asp.Net
- •1. Вводная часть
- •2. Создание веб-приложения asp.Net
- •3. Модификация веб-приложения asp.Net: реализация различной функциональности
- •4. Модификация веб-приложения asp.Net: ajax
- •5. Завершающая часть
- •6. О приложении к Лабораторной работе № 18
- •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
- •1. Вводная часть
- •2. Основные положения при работе с f#
- •3. Создание приложения «Учебник по f#»
- •4. Создание консольного приложения
- •5. О приложении к Лабораторной работе № 21
- •22. Лабораторная работа № 22: Различные примеры на f# Лабораторная работа № 22: Различные примеры на f#
- •1. Вводная часть
- •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. О приложении к данной работе
4. Создание консольного приложения
Теперь продемонстрируем возможности языка F# на примере работы непосредственно с обычным консольным приложением и созданием на его основе простенькой игры. Суть будет заключаться в воде числовых ответов на вопрос типа число умножить на число. Игра будет выдавать случайные задания, число которых определяет пользователь. Правильные ответы будут учитываться в статистике. Итогом игры станет число верных ответов и время, затраченное на ответы.
Также в коде будем использовать русскоязычные имена.
Для начала нужно создать новый проект. Основу на этот раз станет тип проекта Visual F#: Приложение F#. Имя будет LWP21Console.
Рис. 4. 1. Вводим данные нового проекта «Приложение F#»
Но на самом деле, после создания такого проекта и ввода имени, мы увидим пустую страницу с кодом и один единственный файл в обозревателе решений (Program.fs):
Рис. 4. 2. Обозреватель решений: состав проекта приложения F# сформированного средой разработки
Пустота обусловлена отсутствием нормальных шаблонов в версии среды разработки Visual Studio 2010. Шаблоны приложений (в том числе и консольного) можно получить, например на официальном блоге разработчик F# (Visual Studio F# Team Blog).
Рис. 4. 3. Блог команды разработчиков F#: шаблон консольного приложения
Загруженный с сайта шаблон устанавливается в «один клик» (специальное расширение файла, запускает встроенный установщик Visual Studio):
Рис. 4. 4. Пример установленного шаблона консольного приложения для F#
Либо можно поискать шаблоны в сети Интернет (окно Создать проект -> Шаблоны в Интернете):
Рис. 4. 5. Шаблоны в Интернете: доступные шаблоны
Вернёмся к нашему пустому приложению. Вставим туда следующий код игры:
// Open - объявление импорта указывает модуль или пространство имён,
// на элементы которого можно ссылаться без использования полного имени
open System
open System.Threading
// System.Console - System можно не писать
Console.Title <- "Консольное приложение (F#)"
let ввод() = Console.ReadLine()
let ожидание() = Console.ReadKey()
let преобразование = Int32.TryParse // Преобразуем ввод ответа в Int32
let использовать цвет f =
Console.ForegroundColor <- цвет
f()
Console.ResetColor()
let красный = ConsoleColor.Red
let зелёный = ConsoleColor.Green
let тёмножёлтый = ConsoleColor.DarkYellow
let сигнал() = Console.Beep()
let ждать(n:int) = Threading.Thread.Sleep n // Число секунд (n000)
let сейчас() = DateTime.Now
let случайно = Random()
let сообщение = ждать (1000)
использовать тёмножёлтый (fun () -> printfn "Добро пожаловать в игру \"Умножение на время\"!"
printfn "Пожалйста, ввидете число заданий для игры \"Умножение на вермя\""
printf "Число заданий = ")
let задания = Convert.ToInt32(ввод()) // Вводим число заданий
let игра время =
for сообщение in ["\nПриготовиться!"; "3"; "2"; "1"; "Поехали!\n"] // Выводим сообщения цикла последовательно, через одну секунду
do
printfn "%s" сообщение
ждать 1000
let начало = сейчас() // Фиксируем время старта
[1..время] |> Seq.sumBy (fun i -> // Фиксируем сумму правильных результатов (1), 0 - неправильные результаты
let a, b = случайно.Next 13, случайно.Next 13
printf "%d x %d = " a b
let введено = ввод()
match преобразование введено with
| true, ответ when ответ = a * b -> // Истина, если ответ верен (a * b)
использовать зелёный (fun () -> printfn "Правильно!")
1
| _, _ ->
сигнал()
использовать красный (fun () -> printfn "%d x %d = %d" a b (a*b))
0
) |> (fun счёт ->
let получить = (сейчас() - начало).ToString("c") // Получаем итоговое время и преобразуем в строку
// Подстановка параметров: сначала подставляем результат работы блока "[1.." (число верных ответов),
// потом общее число заданий "..время]" (число срабатывания блока),
// потом время на ответы
printfn "\nИгра завершена!\n%d правильных ответов из %d заданий, за время: %s.\n" счёт время получить
)
while true do
игра (задания) // Число заданий
ждать 5000
printfn "Играть снова?\nДля продолжения игры нажмите любую клавишу . . ."
ожидание() |> ignore
Код содержит все необходимые комментарии и достаточно понятен. После запуска и инициализации пространства имён (директива open), меняем заголовок приложения, затем инициализируем все необходимые функции (в данном случае с русскоязычными именами), выводим приветственные сообщения и вводим число заданий для игры. После ввода числа, запускается цикл, который посекундно выводит куски сообщения (...«2», «1» и «Поехали!»). printf выводит строку без добавления новой строки. Далее в том же цикле на основе числа заданий выводятся выражения типа «a умножить на b» со случайными a и b (диапазон от 0 до 12) и программа ждёт ввода ответа пользователя, этот ответ проверяется и выводится результат. Неправильный ответ вызывает также звуковой сигнал.
Сама игра продолжается по «вине» следующего цикла:
while true do
игра (задания) // Число заданий
После окончания игры выводится результат и сообщение о продолжении.
Компилируем приложение (Release) и запускаем.
Рис. 4. 6. Результат работы консольного приложения игры «Умножение на время»