Публикации Разработка проектов с использованием объектно-ориентированного программирования, исследование трансляции программных кодов между языками программирования

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


Скачать публикацию
Язык издания: русский
Периодичность: ежедневно
Вид издания: сборник
Версия издания: электронное сетевое
Публикация: Разработка проектов с использованием объектно-ориентированного программирования, исследование трансляции программных кодов между языками программирования
Автор: Дорофеева Анастасия Викторовна

РЕФЕРАТ
Магистерская диссертация: 116 с., 20 рис., 47 табл., 6 приложений (13 с.), 45источников.
Объектно-ориентированный подход в последнее десятилетие стал одним из наиболее интенсивно развивающихся направлений в программировании и наиболее популярным средством разработки программного обеспечения.В диссертации ведется разработка проекта при помощи объектно-ориентированного программирования на языке программирования Delphi, а также транслирование программного кода данного проекта на язык программирования C#. Диссертация имеет особую ценность для преподавателей и учащихся СИПИ кафедры информационных систем, так как разработка может быть использована на занятиях курса Объектно-ориентированное программирование и технологии разработки программного обеспечения в качестве дополнительного материала в лабораторных работах. Педагогическая ценность диссертации заключается в повышении вовлеченности студентов при работе с проектом.
Объектом исследования и разработки являются компьютерные методы создания проектов при помощи объектно-ориентированного программирования, а также методы трансляции программных кодов между языками программирования.
Предметом исследования и разработки является программный продукт, разработанный средствами языка программирования С#.
Целью исследования и разработки является формирование профессиональных компетенций в сфере применения ООП в различных языках программирования.
Гипотеза исследования – повышение вовлеченности и эффективности работы студентов при использовании программных проектов.
Методы разработки:
анализ литературы (нормативно-правовых документов) по теме исследования;
методы системного анализа, дерево целей;
сравнение языков программирования;
интервьюирование экспертов в области объектно-ориентированного программирования;
принятие решений и разработка программного проекта;
изучение, обобщение и систематизация данных.
Новизна разработки заключается в разработке и создании программного проекта в интегрированной среде разработки Delphi и последующем транслировании программного кода в язык программирования C#.
Практическая значимость исследования состоит в использовании разработанного программного продукта на кафедре информационных систем Стахановского инженерно-педагогического института менеджмента.
DELPHI, C#, ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ, ПРОЕКТ, ТРАНСЛИРОВАНИЕ, ДИДАКТИКА, ТЕХНОЛОГИЯ, ИННОВАЦИЯ, ИНТЕЛЛЕКТ, СОБСТВЕННОСТЬ, ПРОГРАММА ДЛЯ ЭВМ, АВТОРСТВО
ABSTRACT
Master's dissertation: 116 p., 20 fig., 47 tab., 6 applications (13 p.), 45 sources.
The object-oriented approach in the last decade has become one of the most intensively developing areas in programming and the most popular means of software development. In the dissertation, the project is being developed using object-oriented programming in the Delphi programming language, as well as the translation of the program code of this project into the C# programming language. The dissertation is of particular value for teachers and students of the SIPI Department of Information Systems, since the development can be used in the classes of the course "Object-oriented programming and software development technologies" as additional material in laboratory work. The pedagogical value of the dissertation is to increase the involvement of students when working with the project.
The object of research and development is computer methods of creating projects using object-oriented programming, as well as methods of translating program codes between programming languages.
The subject of research and development is a software product developed by means of the C# programming language.
The purpose of research and development is the formation of professional competencies in the field of OOP application in various programming languages.
The hypothesis of the study is to increase the involvement and efficiency of students when using software projects.
Development methods:
- analysis of the literature (regulatory documents) on the research topic;
- methods of system analysis, goal tree;
- comparison of programming languages;
- interviewing experts in the field of object-oriented programming;
- decision-making and software project development;
- study, generalization and systematization of data.
The novelty of the development lies in the development and creation of a software project in the Delphi integrated development environment and the subsequent translation of the program code into the C# programming language.
The practical significance of the research consists in the use of the developed software product at the Department of Information Systems of the Stakhanov Engineering and Pedagogical Institute of Management.
DELPHI, C#, OBJECT-ORIENTED PROGRAMMING, PROJECT, BROADCASTING, DIDACTICS, TECHNOLOGY, INNOVATION, INTELLIGENCE, PROPERTY, COMPUTER PROGRAM, AUTHORSHIP
СПИСОК УСЛОВНЫХ СОКРАЩЕНИЙ
ВУЗ
высшее учебное заведение
ГК ЛНР
Гражданский кодекс Луганской Народной Республики
ГК РФ
Гражданский кодекс Российской Федерации
ДЕ
дидактическая единица
ИС
информационные системы
ИТ
информационные технологии
МАИ
метод анализа иерархий
ООП
объектно-ориентированное программирование
НИР
научно-исследовательская работа
ОС
операционная система
ПК
персональный компьютер
ПО
программное обеспечение
ТО
техническое обслуживание
ЭВМ
электронно-вычислительная машина
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
12
1.РАЗРАБОТКА ПРОЕКТОВ С ИСПОЛЬЗОВАНИЕМ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ, ИССЛЕДОВАНИЕ ТРАНСЛЯЦИИ ПРОГРАММНЫХ КОДОВ МЕЖДУ ЯЗЫКАМИ ПРОГРАММИРОВАНИЯ……………………
15
1.1. Актуальность темы диссертационного исследования
15
1.2. Постановка задачи исследования. Дерево целей
19
1.3. Основные определения и положения магистерской диссертации …………………………………………………………………
22
1.4. Метод анализа иерархий
25
1.5. Понятие и основные характеристики объектно- ориентированного программирования…………………………………….
33
1.6. Программное средство по обеспечению мониторинга лесных пожаров………………………………………………………………………
36
1.6.1. Главная форма проекта, основное меню, окна проекта
36
1.6.2. Алгоритм работы программы, работа с программой
39
1.6.3. Основные процедуры, отражающие объектно-ориентированный подход…………………………………………………..
41
1.7. Актуальность обеспечения пожарной безопасности………….
44
1.7.1. Лесные пожары на территории РФ…………………
44
1.7.2.Технологии мониторинга леса………………………
46
1.7.3. IQ FireWatch — эффективное решение для предотвращения природных пожаров……………………………………..
48
1.7.4. Программные средства для мониторинга лесных пожаров………………………………………………………………………
50
1.7.5. Математические методы решения…………………
51
1.8. Методология транслирования программных кодов………….
59
1.8.1. Программные средства трансляции языков программирования………………………………………………………….
59
1.8.2. Сравнение синтаксиса и семантики методов объектно-ориентированного программирования на различных языках программирования…………………………………………………………..
61
1.9. Дизайн проекта для транслирования и транслированного проекта…………………………………………………………………………
64
1.9.1. Вид форм проектов. Алгоритм работы с программами…………………………………………………………………
64
1.9.2. Сравнительный листинг программных кодов, отражающих объектно-ориентированный подход……………………….
65
1.10. Тестирование проекта, проиллюстрированного на примере мониторинга лесных пожаров на территории РФ………………………..
69
1.11. Выводы к разделу информационных технологий……………………………………………………………………
74
2.ДИДАКТИЧЕСКИЙ ПРОЕКТ ПОДГОТОВКИ БАКАЛАВРА ПО НАПРАВЛЕНИЮ 44.03.04 ПРОФЕССИОНАЛЬНОЕ ОБУЧЕНИЕ ПРОФИЛЬ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И СИСТЕМЫ …………………………………………………………….
75
2.1. Общекультурное значение педагогики…………………………
75
2.2. Исходные данные дидактического проекта
76
2.3. Анализ профессиональной деятельности специалиста
77
2.4. Квалификационные требования к бакалавру
78
2.5. Характеристика учебной дисциплины: Объектно-ориентированное программирование и технологии разработки программного обеспечения для студентов по специальности 44.03.04. Профессиональное обучение. Профиль Информационные технологии и системы
82
2.6. Составление перспективно-тематического плана изучения дисциплины: Объектно-ориентированное программирование и технологии разработки программного обеспечения
83
2.7. Постановка оперативных целей изучения темы Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
86
2.8. Перечень литературных источников по теме Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
88
2.9. Конструирование дидактических материалов. Построение структурно-логической схемы по теме Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
90
2.10. Анализ базовых условий обучения
91
2.11. Проектирование мотивационных технологий обучения на тему Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
92
2.12. Проектирование технологии формирования ориентированной основы деятельности на тему Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
93
2.13. Проектирование технологии формирования исполнительных действий на тему Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
93
2.14. Проектирование контрольных действий на тему Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
94
2.15. Разработка перспективно-поурочного плана преподавания темы Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
95
2. 16. Выводы к методическому разделу……………………………
103
3.ПРОГРАММА ДЛЯ ЭВМ КАК ОБЪЕКТ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ……………………
104
3.1. Право авторства на программу для ЭВМ
104
3.2. Охраноспособность программ для ЭВМ и их отдельных элементов
107
3.3. Способы защиты прав на программу для ЭВМ
110
3.4. Выводы к разделу интеллектуальной собственности
112
ВЫВОДЫ
113
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
115
ПРИЛОЖЕНИЕ 1. Листинг программного кода проекта
119
ПРИЛОЖЕНИЕ 2. Сценарий деловой игры на тему Разработка проектов с использованием объектно-ориентированного программирования, исследование трансляции программных кодов между языками программирования……………………………………………….
ПРИЛОЖЕНИЕ 3. Социометрическое исследование……………………
ПРИЛОЖЕНИЕ 4. Заявление о государственной регистрации программы для ЭВМ……………………………………………………….
ПРИЛОЖЕНИЕ 5. Отчет о проверке на заимствования………………..
ПРИЛОЖЕНИЕ 6. Презентация магистерской диссертации
129
133
139
142
143
ВВЕДЕНИЕ
Каждый должен учиться программированию,
потому что оно учит думать.
Стив Джобс
Объектно-ориентированный подход в последнее десятилетие стал одним из наиболее интенсивно развивающихся направлений в программировании и наиболее популярным средством разработки программного обеспечения. Систематическое применение объектно-ориентированного подхода позволяет разрабатывать хорошо структурированные, надежные в эксплуатации, достаточно просто модифицируемые программные системы. Этим объясняется интерес программистов к объектно-ориентированному подходу и объектно-ориентированным языкам программирования [1].
Объектно-ориентированный подход дает следующие основные преимущества:
– уменьшение сложности программного обеспечения;
– повышение его надежности;
– обеспечение возможности модификации отдельных компонент программ без изменения остальных компонент;
– обеспечение возможности повторного использования отдельных компонент программного обеспечения [2].
В диссертации ведется разработка проекта при помощи объектно-ориентированного программирования на языке программирования Delphi, предназначенного для вычисления площади многоугольника, а также транслирование программного кода данного проекта на язык программирования C#. Диссертация имеет особую ценность для преподавателей и учащихся СИПИ кафедры информационных систем, так как разработка может быть использована на занятиях курса Объектно-ориентированное программирование и технологии разработки программного обеспечения в качестве дополнительного материала в лабораторных работах. Педагогическая ценность диссертации заключается в повышении вовлеченности студентов при работе с проектом.
Результаты образования по дисциплине Объектно-ориентированное программирование и технологии разработки программного обеспечения являются основой для формирования следующих компетенций (в соответствии с государственными образовательными стандартами ВО и требованиями к результатам освоения основной образовательной программы (ООП):
общекультурных:
ОК-3
– способность использовать основы естественнонаучных и экономических знаний при оценке эффективности результатов деятельности в различных сферах;
общепрофессиональных:
ОПК-1
– способность проектировать и осуществлять индивидуально-личностные концепции профессионально-педагогической деятельности;
ОПК-2
– способность выявлять естественно-научную сущность проблем, возникающих в ходе профессионально-педагогической деятельности;
ОПК-6
– способность к когнитивной деятельности;
ОПК-8
– готовность моделировать стратегию и технологию общения для решения конкретных профессионально-педагогических задач;
ОПК-10
– владение системой эвристических методов и приемов;
профессиональных:
ПК-9
– готовность к формированию у обучающихся способности к профессиональному самовоспитанию;
ПК-10
– готовность к использованию концепций и моделей образовательных систем в мировой и отечественной педагогической практике;
ПК-14
– готовность к применению технологий формирования креативных способностей при подготовке рабочих, служащих и специалистов среднего звена;
ПК-18
– способностью проектировать пути и способы повышения эффективности профессионально-педагогической деятельности;
ПК-29
– готовность к конструированию, эксплуатации и техническому обслуживанию учебно-технологической и производственно-технологической среды для практической подготовки, переподготовки и повышения квалификации рабочих, служащих и специалистов среднего звена;
ПК-33
– способность выполнять работы соответствующего квалификационного уровня.
В первом разделе магистерской диссертации рассматривается актуальность темы диссертационного исследования, постановка задачи, дерево целей исследования, формирование программного проекта, транслирование программных кодов между языками программирования.
Во втором разделе магистерской диссертации рассматривается конструирование дидактических материалов, построение структурно-логической схемы по теме занятия, разработка перспективно-поурочного плана преподавания темы Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования.
В третьем разделе рассматривается право авторства на программу для ЭВМ, охраноспособность программ для ЭВМ и их отдельных элементов, а также способы защиты прав на программу для ЭВМ.
1.РАЗРАБОТКА ПРОЕКТОВ С ИСПОЛЬЗОВАНИЕМ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ, ИССЛЕДОВАНИЕ ТРАНСЛЯЦИИ ПРОГРАММНЫХ КОДОВ МЕЖДУ ЯЗЫКАМИ ПРОГРАММИРОВАНИЯ
1.1. Актуальность темы диссертационного исследования
Компьютеры используются во всех сферах деятельности человека, начиная с начального образования и заканчивая изучением новейших технологий, новых видов материи, неизученных пока человечеством. Использование компьютерных технологий упрощает процесс образования в средних и высших учебных заведениях как самих учащихся, студентов, так и преподавателей [4].
Благодаря многообразию программного и аппаратного обеспечения на сегодняшний день возможно применение всех допустимых возможностей компьютерных технологий. Это дает возможность хранить огромное количество информации, занимая при этом минимальное место. Также компьютерные технологии позволяют мгновенно эту информацию обрабатывать и держать ее защищенной.
Широчайшее распространение компьютеров сыграло огромную роль в развитии рынка труда. Автоматизация обработки информации позволяет в считанные секунды выполнить работу, на которую ранее тратились недели, оповещение руководителей о состоянии предприятий и рабочих мест происходит мгновенно. Экономический потенциал в страховой и финансовой сфере увеличивается благодаря возросшему обмену услуг. Компьютерные технологии внедряются для введения новых форм занятости и организации труда.
Теперь на разработку новых проектов расходуется гораздо меньше времени, потому что не надо тратить время на вычислительные процессы и можно полностью следить за самим процессом. Огромную роль компьютерные технологии играют в медицине: создаются всевозможные виртуальные модели развития заболеваний, на основе огромных информационных баз изобретаются новейшие препараты для лечения.
Современный компьютер значительно отличается от своих предшественников – вычислительных устройств прошлого века, которые предназначались для решения узкого круга задач. Сейчас компьютер выступает в роли универсального средства для работы, творчества, развлечений. Количество людей, которые постоянно пользуются компьютером, растет стремительными темпами [5].
Объектно-ориентированное программирование (ООП) – парадигма программирования, где реализация программного продукта осуществляется за счёт оперирования иерархиями классов и объектов, базируется на таких подходах, как полиморфизм, инкапсуляция, абстракция и наследование [6].
ООП используется при написании операционных систем, СУБД, компиляторов, драйверов, множества прикладных программ. Например, браузеры, пакет MicrosoftOffice, графические редакторы AdobePhotoshop и Illustrator – продукты объектно-ориентированного программирования [7].
Сегодня достаточно часто для разработки сайтов, приложений используются объектно-ориентированные языки. Многие программисты при создании сайтов используют лишь возможности ООП, например, инкапсуляцию данных. Безусловно, такое применение ООП делает код более качественным. Применяя другие принципы ООП можно добиться большего эффекта. Например, применение полиморфизма и наследования позволяет значительно сократить код, одновременно делая его более надежным [8].
Объектно-ориентированное программирование применяется для проектирования любых математических или имитационных моделей. Однако в большинстве таких средств объектно-ориентированным является только внешнее представление элементов модели, которое перед началом расчётов компилируется в код процедурно-ориентированного языка программирования или просто преобразуется в параметры готового кода.
Такой подход решает часть проблем стандартных моделей, связанных с их недостаточной наглядностью и с негибкостью по отношению к изменениям структуры. В частности, в моделях появляются чётко ограниченные блоки, которые можно быстро удалять, добавлять и использовать в совершенно других моделях [9].
Среда программирования Delphi, построена на основе теории объектно-ориентированного программирования. Это означает, что функциональность приложения определяется набором взаимосвязанных задач, каждая из которых становится самостоятельным объектом [10].
В Delphi можно составлять проекты для задач любого типа: расчетные задачи, задачи работы с файлами, обработка баз данных, и другие. Наиболее эффектными и интересными являются задачи моделирования различных логических игр [11].
С помощью Delphi создаются программы самых разных классов, например: TotalCommander или SystemMechanic, а также сложные автоматизированные системы управления (АСУ) предприятий и банков, например, бухгалтерский пакет Анжелика, экономическая платформа Гедимин [12].
На сегодня существует множество известных программ, написанных в Delphi с применением объектно-ориентированного подхода, среди них:
– программы мгновенного обмена сообщениями: Skype (до покупки Microsoft), QIP 2012, R&Q, TheBat!, PopTray, FeedDemon, MyChat;
– видео-иаудиопроигрыватели: Light Alloy, The KMPlayer, AIMP, X-Amp;
– программы для сжатия данных: PowerArchiver, ALZip, IZArc;
– учёт и налогообложение: Меркурий-ERP, Бюджет 21, Парус, AVARDA (до версии 6.x включительно), r_keeper, TraiderAlpha, Tillypad;
– администрирование и разработка баз данных: MySQLTools, IBExpert, OpenServer, EMS SQL ManagerforMySQL;
– текстовые редакторы: Sublimetext, Bred (до версии Bred 3), Notepad GNU, BirEdit, PSPad;
– программы для создания музыки: GuitarPro (до версии 6.0), FL Studio;
– компьютерныеигры: Venom. Codename: Outbreak, Space Empires V, Age of Wonders, Космическиерейнджеры [13].
C#–один из наиболее популярных языков программирования вмире. Его используют банки, диджитал-агентства, провайдеры связи икрупные IT-компании. Вот что пишут наC# российские изарубежные корпорации:
Microsoft– приложения для Windows иXbox;
Tesla– корпоративные веб-сервисы ипрограммы;
StackOverflow– серверную логику сайтов;
Сбербанк– 3D-графику ипрограммы виртуальной реальности;
Ozon– складские илогистические системы;
Яндекс– приложения для автоматизации продаж и мн. др.
На территории лесного фонда России ежегодно регистрируется от 10 до 30 тыс. лесных пожаров, нередко принимающих характер стихийных бедствий. Основная часть пройденной огнем площади приходиться на районы Сибири и Дальнего Востока.
В 2022 году очаги возгораний были в Красноярском и Алтайском краях, Иркутской, Кемеровской, Омской, Курганской областях и Хакасии.
Проект для магистерской диссертации проиллюстрирован на примере расчета площади пожаров и является актуальным для ведения сравнительного анализа территорий, подверженных пожарам. Так в РФ, в частности, российском отделении Гринписа, существует отдел, занимающийся ведением статистики лесных пожаров, территории возгорания, сравнивая площади территорий лесных пожаров по месяцам текущего и прошлых годов.
1.2. Постановка задачи исследования. Дерево целей
Цель исследования – формирование профессиональных компетенций в сфере применения ООП в различных языках программирования.
В соответствии с поставленной целью в работе необходимо решить следующие задачи:
1) изучить применение ООП для создания проектов в Delphi и C#;
2) оценить, охарактеризовать, сравнить технологии разработки проектов в Delphi и C#;
3) разработать дизайн проектов;
4) создать программные коды проектов с использованием ООП;
5) изучить технологии трансляции программных кодов между языками программирования;
6) реализовать технологию транслирования программного кода проекта.
Объектом исследования в диссертационной работе являются компьютерные методы создания проектов при помощи объектно-ориентированного программирования, а также методы трансляции программных кодов между языками программирования.
Предметом исследования и разработки является программный продукт, разработанный средствами языка программирования С#.
Дерево целей – структурированный комплекс целей организации, построенный по иерархическому принципу (распределенный по уровням, ранжированный). По сути, это визуальное представление достижения целей. Согласно этому принципу, главная цель достигается за счет сочетания второстепенных и дополнительных целей [14].
Цель – это конечное состояние или желаемый результат, которого должна достичь компания. Визуальное понимание результата. Поэтому цели должны быть конкретными, преодолимыми, достижимыми, обязательно согласованными между собой.
Название графического изображения задач связано со схематически представленной совокупностью распределенных по уровням целей, напоминающей по виду перевернутое дерево. Сверху – главная цель (вершина дерева); далее – подчиненные ей подцели первого, второго и последующего уровней (ветви дерева).
Метод дерева целей - один из наиболее эффективных методов планирования задач. С помощью изображения планов в виде графика, менеджмент компании наглядно видит, с какими проблемами придется столкнуться в будущем, какиедополнительные ресурсы потребуются, чтобы достичь задуманного.
Дерево целей позволяет:
скоординировать деятельность всех структурных подразделений организации;
увязать обязанности должностных лиц, повысив их взаимную ответственность;
осуществлять четкий контроль исполнительской дисциплины, установив конкретные задачи и сроки реализации;
обеспечить высокую степень управляемости бизнес-процессов;
подготовить организацию к незапланированным переменам;
достичь эффективности информационного обеспечения процессов управления – процесса разработки, принятия и контроля реализации управленческих решений [15].
Результатом применения дерева целей является создание программы для вычисления площади многоугольника с применением объектно-ориентированного программирования в среде Delphi, транслирование программного кода на язык программирования C#, дидактический проект по теме: Разработка проекта с использованием ООП в Delphi, составление заявки для получения патента на программу для ЭВМ.
Дерево целей данного проекта предоставлено на рисунке 1.1.
Рисунок 1.1 – Дерево целей
1.3. Основные определения и положения магистерской диссертации
Разработка программного обеспечения – деятельность по созданию нового программного обеспечения [16].
Исследование – процесс изучения чего-либо [16].
Трансляция программы – преобразование программы, представленной на одном из языков программирования, в программу на другом языке [17].
Транслятор – программа, предназначенная для преобразования кода между языками программирования, обычно выполняющая также диагностику ошибок, формирование словарей идентификаторов и прочее[18].
Компилятор – это транслятор, который осуществляет перевод исходной программы в эквивалентную ей объектную программу на языке машинных команд или языке ассемблера [19].
Компиляция – трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду [20].
Delphi – это: 1) среда разработки программ, ориентированных на работу в операционных системах семейства Windows; 2) объектно-ориентированный язык высокого уровня [21].
C# – современный объектно-ориентированный и типобезопасный язык программирования, являющийся языком разработки приложений для платформы Microsoft .NET Framework [22].
Многоугольник – геометрическая фигура, обычно определяемая как часть плоскости, ограниченная замкнутой ломаной линией [23].
Триангуляция – разбиение сложного геометрического объекта на более простые [24].
Объектно-ориентированное программирование – технология программирования, при которой программа рассматривается как набор объектов, содержащих, в свою очередь, наборы структур данных и процедур, взаимодействующих с другими объектами [25].
Объект – программный модуль, объединяющий в себе данные (свойства) и операции над ними (методы) [26].
Класс – множество объектов, которые обладают одинаковой структурой, поведением и отношением с объектами из других классов [27].
Инкапсуляция – сокрытие внутренней структуры данных и реализации методов объекта от остальной программы [28].
Наследование – свойство объекта, заключающееся в том, что характеристики одного объекта (объекта-предка) могут передаваться другому объекту (объекту-потомку) без их повторного описания [29].
Полиморфизм – способность объекта выбирать правильный метод в зависимости от типа данных, полученных в сообщении [30].
Абстракция – процесс изменения уровня детализации программы [31].
Диаграмма классов – методология объектно-ориентированного проектирования, предназначенная для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования [32].
Язык программирования — формальный язык, предназначенный для записи компьютерных программ. [32].
Тип данных – определение области допустимых значений, которые может принимать объект, и множества операций, которые могут выполняться над объектом [33].
Среда разработки – набор классов, предоставляющих некоторые базовые услуги в определенной области [34].
Событие – член класса, позволяющий классу или объекту класса послать другим объектам сообщение об изменении своего состояния, или получении сообщения от других объектов [35].
Реализация – внутреннее представление класса, объекта или модуля, включая секреты его поведения [36].
Объектно-ориентированное проектирование – методология проектирования, соединяющая процесс объектно-ориентированной декомпозиции и систему обозначений для представления логической и физической, статической и динамической моделей проектируемой системы[36].
Программный код – это текст, набор команд, выполненный на особом языке, понятном машине. Код управляет работой машины [37].
Модуль – программный блок, который содержит объявления, выраженные в соответствии с требованиями языка и образующие физическую реализацию части или всех классов и объектов логического проекта системы [38].
Конструктор – операция, создающая объект и/или инициализирующая его состояние [39].
Деструктор – специальный метод класса, служащий для деинициализации объекта (например, освобождения памяти) [39].
Интерфейс пользователя – форма с элементами управления [40].
Форма – это важнейший визуальный компонент, который представляет собой видимое окно Windows [40].
Атрибут – поименованное свойство класса, определяющее диапазон допустимых значений, которые могут принимать экземпляры данного свойства [41].
Устойчивость – способность объекта сохранять свое существование во времени и/или пространстве (адресном, в частности при перемещении между узлами вычислительной системы) [42].
Приложение (прикладное программное обеспечение) – это программы для обработки информации без использования программирования [43].
Проанализированы основные определения и положения, связанные с магистерской диссертацией, а также структурированы по мере разработки программного обеспечения.
1.4. Метод анализа иерархий
Метод анализа иерархий – это особый способ системного анализа. Также этот способ направлен на помощь в принятии решений. Метод анализа иерархий Томаса Саати является крайне популярным в криминалистике, особенно на Западе, бизнесе, государственном управлении. Также его часто называют методом анализа иерархий (МАИ).
Ценность метода Саати признана в развитых и развивающихся странах по всему миру. Например, в Китае было опубликовано более 900 статей по этому вопросу, также существует китайский научный журнал, посвященный исключительно методу анализа иерархий Саати [44].
Метод анализа иерархий является систематической процедурой для иерархического представления элементов, определяющих суть проблемы. Метод состоит в декомпозиции проблемы на все более простые составляющие части и дальнейшей обработке последовательности суждений лица, принимающего решения, по парным сравнениям [45].
В МАИ основная цель исследования и все факторы, в той или иной степени, влияющие на достижение цели, распределяются по уровням в зависимости от степени и характера влияния [46].
На первом уровне иерархии всегда находится одна вершина – цель проводимого исследования.
Второй уровень иерархии составляют факторы, непосредственно влияющие на достижение цели – критерии. При этом каждый фактор представляется в строящейся иерархии вершиной, соединенной с вершиной 1-го уровня. Третий уровень составляют факторы, от которых зависят вершины 2-го уровня. И так далее. Этот процесс построения иерархии продолжается до тех, пока в иерархию не включены все основные факторы или хотя бы для одного из факторов последнего уровня невозможно непосредственно получить необходимую информацию.
По окончании построения иерархии для каждой материнской вершины проводится оценка весовых коэффициентов, определяющих степень ее зависимости от влияющих на нее вершин более низкого уровня. При этом используется метод попарных сравнений [47].
Рассмотрим иерархическую структуру для магистерской диссертации Разработка проекта с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования, представленную на рисунке 1.2.
Рисунок 1.2 – Иерархическая структура
Иерархическая двухуровневая структура включает:
0-й уровень – уровень постановки цели.
1-й уровень – уровень критериев.
В качестве критериев выберем:
1) кроссплатформенность;
2) гибкость языка программирования;
3) скорость выполнения программы;
4) доступность учебной литературы об особенностях языка программирования.
2-й уровень – уровень альтернатив.
Будем считать, что задачу возможно решить с помощью следующих языков программирования:
1) VB.NET;
2) С#;
3) Delphi;
4) Python.
Таблица 1.1 – Критерии языков программирования
№ п/п
Название
Описание
1
Кроссплатформенность
Кроссплатформенноcть программного обеспечения – способность программного обеспечения, работать более чем на одной аппаратной платформе и/или операционной системе [48].
2
Гибкость языка программирования
Гибкость языка программирования проявляется в том, сколько возможностей он предоставляет программисту для выражения всех операций, которые требуются в программе. Простота языка обеспечивает лёгкость понимания семантики языковых конструкций и запоминания их синтаксиса[49].
3
Скорость
выполнения
программы
Скорость выполнения программы – это время, затрачиваемое на компиляцию программы. Скорость выполнения программ, составленных на языках высокого уровня, обычно не является неразрешимой проблемой, однако требует внимания. Если значение этого параметра окажется слишком низким, то в
Продолжение таблицы 1.1
большинстве случаев его можно повысить, не изменяя большей части программы. Обычно на реализацию 10 % объема программы расходуется до 90 % общего времени ее выполнения [50].
4
Доступность учебной литературы об особенностях языка программирования.
Доступность учебной литературы в электронных источниках является важным критерием, поскольку некоторые особенности языков программирования изучены в недостаточной степени для реализации задачи диссертационного исследования и требуют дополнительного изучения.
VisualBasic .NET (VB.NET) – это объектно-ориентированный язык программирования, реализованный на .NET Framework [51].
C# – современный объектно-ориентированный и типобезопасный язык программирования, являющийся языком разработки приложений для платформы Microsoft .NET Framework [52].
Delphi – это среда разработки программ, ориентированных на работу в операционных системах семейства Windows. Программы в Delphi создаются на основе современной технологии визуального проектирования, которая, в свою очередь, базируется на идеях объектно-ориентированного программирования [53].
Python – это высокоуровневый язык программирования, который используется в различных сферах IT, таких как машинное обучение, разработка приложений, web, и другие [54].
Итак:
Q1 – кроссплатформенность;
Q2 – гибкость языка программирования;
Q3 – скорость выполнения программы;
Q4 –доступность учебной литературы об особенностях языка программирования;
A1 – VB.NET;
А2 – С#;
А3 – Delphi;
А4 – Python.
Для анализа ситуации возможно считать себя экспертом и построить следующие матрицы попарных сравнений с использованием шкалы Саати.
Таблица 1.2. – Матрица попарных сравнений критериев разработки
K
Q1
Q2
Q3
Q4
Q1
1
3
1/9
1/5
Q2
1/3
1
1/8
1/5
Q3
9
8
1
3
Q4
5
5
1/3
1
Таблица1.3 − Попарноесравнение альтернатив по критерию Q1
Q1
A1
A2
A3
A4
A1
1
3
3
9
A2
1/3
1
1/5
7
A3
1/3
5
1
9
A4
1/9
1/7
1/9
1
Таблица1.4 − Попарноесравнение альтернатив по критерию Q2
Q2
A1
A2
A3
A4
A1
1
5
3
9
A2
1/5
1
1/2
7
A3
1/3
2
1
9
A4
1/9
1/7
1/9
1
Таблица1.5 − Попарноесравнение альтернатив по критерию Q3
Q3
A1
A2
A3
A4
A1
1
1/7
1/9
1
A2
7
1
3
9
A3
9
1/3
1
9
A4
1
1/9
1/9
1
Таблица1.6 − Попарноесравнение альтернатив по критерию Q4
Q4
A1
A2
A3
A4
A1
1
3
1/9
1/5
A2
1/3
1
1/8
1/5
A3
9
8
1
3
A4
5
5
1/3
1
Расчет векторов приоритетов производится по формуле:
(1.1)
Расчет уровня согласованности:
(1.2)
Расчет индекса согласованности:
(1.3)
Расчет отношения согласованности:
(1.4)
Таблица 1.7 – Векторы приоритетов, индекс и отношение согласованностикритериев разработки
K
Q1
Q2
Q3
Q4
Рi
Xi
Q1
1
3
1/9
1/5
0,508
0,08
Q2
1/3
1
1/8
1/5
0,302
0,048
Q3
9
8
1
3
3,834
0,604
Q4
5
5
1/3
1
1,699
0,268

6,343
1
λmax
4,17
Iu
2,085
Io
2,317
в %
2
Согласовано
Таблица 1.8 – Векторы приоритетов, индекс и отношение согласованностиальтернатив по критерию Q1
Q1
A1
A2
A3
A4
Рi
Xi
A1
1
3
3
9
3
0,5
A2
1/3
1
1/5
7
0,827
0,138
A3
1/3
5
1
9
1,968
0,328
A4
1/9
1/7
1/9
1
0,205
0,034

5,999
1
λmax
4,449
Iu
2,224
Io
2,471
В %
2
Согласовано
Таблица 1.9 – Векторы приоритетов, индекс и отношение согласованностиальтернатив по критерию Q2
Q2
A1
A2
A3
A4
Рi
Xi
A1
1
5
3
9
3,409
0,559
A2
1/5
1
1/2
7
0,915
0,15
A3
1/3
2
1
9
1,565
0,257
A4
1/9
1/7
1/9
1
0,205
0,034

6,093
1
λmax
4,21
Iu
2,105
Io
2,339
В %
2
Согласовано
Таблица 1.10 – Векторы приоритетов, индекс и отношение согласованностиальтернатив по критерию Q3
Q3
A1
A2
A3
A4
Рi
Xi
A1
1
1/7
1/9
1
0,355
0,053
A2
7
1
3
9
3,708
0,555
A3
9
1/3
1
9
2,28
0,341
A4
1
1/9
1/9
1
0,333
0,05

6,676
0,999
λmax
4,275
Iu
2,137
Io
2,375
В %
2
Согласовано
Таблица 1.11 – Векторы приоритетов, индекс и отношение согласованностиальтернатив по критерию Q4
Q4
A1
A2
A3
A4
Рi
Xi
A1
1
3
1/9
1/5
0,508
0,08
A2
1/3
1
1/8
1/5
0,302
0,048
A3
9
8
1
3
3,834
0,604
A4
5
5
1/3
1
1,699
0,268

6,347
1
λmax
4,17
Iu
2,085
Io
2,317
В %
2
Согласовано
Далее рассчитывается вектор глобальных приоритетов. Для этого необходимо собрать матрицу с векторов локальных приоритетов альтернатив по критериям:
Эту матрицу умножим на векторы локальных приоритетов:
Таким образом, на основе проведенных расчетов можно сделать вывод, что лучшим выбором при данном распределении оценок будет выбор программы Delphi.
1.5. Понятие и основные характеристики объектно- ориентированного программирования
Объектно-ориентированное программирование(ООП) –методология программирования, основанная на представлении программы в виде совокупности взаимодействующихобъектов, каждый из которых является экземпляром определённогокласса, а классы образуют иерархиюнаследования.
ООП– подход к программированию как кмоделированию информационных объектов, решающий на новом уровне основную задачуструктурного программирования: структурирование информации с точки зрения управляемости, что существенно улучшает управляемость самим процессом моделирования, что особенно важно при реализации крупных проектов.
Управляемость для иерархических систем предполагает минимизацию избыточности данных (аналогичнуюнормализации) и их целостность. Таким образом, через тактическую задачу управляемости решается стратегическая задача– транслировать понимание задачи программистом в наиболее удобную для дальнейшего использования форму.
Основныепринципыструктурирования в случае ООП связаны с различными аспектами базового понимания предметной задачи, которое требуется для оптимального управления соответствующей моделью:
абстракциядля выделения в моделируемом предмете важного для решения конкретной задачи по предмету, в конечном счёте– контекстное понимание предмета, формализуемое в виде класса;
инкапсуляциядля быстрой и безопасной организации собственно иерархической управляемости: чтобы было достаточно простой команды, без одновременного уточнения, так как это уже другой уровень управления;
наследованиедля быстрой и безопасной организации родственных понятий: чтобы было достаточно на каждом иерархическом шаге учитывать только изменения, не дублируя всё остальное, учтённое на предыдущих шагах;
полиморфизмдля определения точки, в которой единое управление лучше распараллелить или наоборот– собрать воедино.
То есть фактически речь идёт о прогрессирующей организации информации согласно первичным семантическим критериям: важное/неважное, ключевое/подробности, родительское/дочернее, единое/множественное. Прогрессирование, в частности, на последнем этапе даёт возможность перехода на следующий уровень детализации, что замыкает общий процесс.
Основные концепции ООП включают такие ключевые понятия как Класс, Объект, Метод.
Класс – универсальный, комплексный тип данных, состоящий из тематически единого набора полей (переменных более элементарных типов) и методов (функций для работы с этими полями), то есть он является моделью информационной сущности с внутренним и внешним интерфейсами для оперирования своим содержимым (значениями полей). В частности, в классах широко используются специальные блоки из одного или чаще двух спаренных методов, отвечающих за элементарные операции с определённым полем (интерфейс присваивания и считывания значения, геттер-сеттер), которые имитируют непосредственный доступ к полю. Эти блоки называются свойствами и почти совпадают по конкретному имени со своим полем (например, имя поля может начинаться со строчной, а имя свойства — с заглавной буквы). Другим проявлением интерфейсной природы класса является то, что при копировании соответствующей переменной через присваивание копируется только интерфейс, но не сами данные, то есть класс – ссылочный тип данных. Переменная-объект, относящаяся к заданному классом типу, называется экземпляром этого класса. При этом в некоторых исполняющих системах класс также может представляться некоторым объектом при выполнении программы посредством динамической идентификации типа данных. Обычно классы разрабатывают таким образом, чтобы обеспечить отвечающие природе объекта и решаемой задаче целостность данных объекта, а также удобный и простой интерфейс. В свою очередь, целостность предметной области объектов и их интерфейсов, а также удобство их проектирования, обеспечивается наследованием.
Объект – сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса (например, после запуска результатов компиляции и связывания исходного кода на выполнение).
Методы – процедуры и функции, связанные с классом. Они определяют действия, которые можно выполнять над объектом такого типа, и которые сам объект может выполнять.
1.6. Программное средство по обеспечению мониторинга лесных пожаров
1.6.1. Главная форма проекта, основное меню, окна проекта
Формирование дизайна проекта состоит из следующих этапов:
– творческие поиски и разработка стиля;
– создание прототипов;
– разработка графических элементов: дизайн форм, меню, рабочей области проекта.
Титульная страница проекта представлена на рисунке 1.1.
Рисунок 1.1 – Титульная страница проекта
При работе над интерфейсом важно отслеживать все поступающие идеи и совершенствовать их. При разработке данного проекта были взяты во внимание дизайны известных программных средств, таких как AutoCAD и среда разработки Delphi, в которых для удобства работы и освобождения пространства рабочей области предусмотрены дополнительные плавающие окна, главное меню и координаты положения курсора мыши в строке состояния (рисунки 1.2 – 1.3).
Рисунок 1.2 – Дополнительные окна проекта
Рисунок 1.3 – Главное меню проекта
Рисунок 1.4 – Вид формы Теоретические сведения
Рисунок 1.5 – Вид формы Справка
Рисунок 1.6 – Вид формы Об авторе
Рисунок 1.7 – Вид формы Лесные пожары в России
Рисунок 1.8 – Вид рабочей области проекта
Рисунок 1.9 – Вид рабочей области проекта с картой Иркутской обл.
Рисунок 1.10 – Вид рабочей области проекта с картой пожароопасных районов РФ
1.6.2. Алгоритм работы программы, работа с программой
Для начала работы с программой необходимо осуществить запуск программы двойным щелчком мыши по исполнительному файлу, имеющему название Pro_poly.
После этого на экране появится титульная форма проекта, содержащая наименование учебного заведения, тему магистерской диссертации, а также две кнопки: Продолжить и Выход.
При нажатии кнопки Выход осуществляется завершение работы с приложением.
При нажатии кнопки Продолжить осуществляется переход к рабочей области программы.
Рабочая область программы представляет из себя форму проекта, содержащую оси координат и координатную сетку. Создание вершин многоугольника осуществляется щелчком левой кнопкой мыши, а также при помощи выпадающего меню (при нажатии правой кнопки мыши), пункт Добавить вершину. Для удобства добавления вершины многоугольника щелчком мыши, положение курсора отражается в строке состояния в миллиметрах и пикселях. Для того, чтобы замкнуть многоугольник, необходимо воспользоваться соответствующим пунктом выпадающего меню. После этого, площадь замкнутого многоугольника рассчитывается автоматически и отражается в окне Свойства в миллиметрах, пикселях и гектарах. Окно также содержит сведения о количестве вершин и треугольников, на которые разбит многоугольник в результате триангуляции.
Программа содержит четыре раздела главного меню: Редактирование, Окна, О программе, Области.
Раздел Редактирование содержит три кнопки: Замкнуть полигон, Очистить полигон, Сменить цвета треугольников. При нажатии кнопки Замкнуть полигон происходит смыкание многоугольника, триангуляция и определение его площади. При нажатии кнопки Очистить полигон происходит удаление созданного многоугольника с рабочей области программы. При нажатии кнопки Сменить цвета треугольников происходит изменение цветов треугольников, полученных в результате триангуляции.
Раздел Окна содержит три пункта: Видимость, Свойства, Вершины. При выборе пункта Видимость, появляется окно, в котором имеется возможность скрыть или показать оси координат, координатную сетку, вершины, полигон, треугольники. При выборе пункта Свойства появляется окно, в котором отражена информация о количестве вершин и треугольников, а также площадь многоугольника. При выборе пункта Вершины появляется окно, в котором отражена информация о координатах вершин многоугольника.
Раздел О программе содержит четыре пункта: Теоретические сведения, Справка, Об авторе, Лесные пожары на территории РФ. При выборе пункта Теоретические сведения, появляется окно, содержащее сведения, касающиеся математического способа определения площади многоугольника. При выборе пункта Справка, появляется окно, содержащее справочную информацию о работе с программой. При выборе пункта Об авторе, появляется окно, содержащее информацию об авторе программы. При выборе пункта Лесные пожары на территории РФ, появляется окно, содержащее информацию об основных пожароопасных районах страны, а также статистику лесных пожаров.
Раздел Области содержит два пункта: Карта пожароопасных районов РФ, Карта Иркутской обл.. При выборе какого-либо пункта из данного раздела, соответствующая карта отразится на рабочей области программы и расчет площади многоугольника будет производиться в гектарах. Вернуться к осям координат можно воспользовавшись этим же разделом меню.
1.6.3. Основные процедуры, отражающие объектно-ориентированный подход
Программа по вычислению площади многоугольника состоит из 9 форм и 12 модулей.
В частности, модуль uPolygons содержит следующие классы:
базовый класс для объектов tDrawObject = class(tList), содержащий следующие процедуры:
procedure ReCalc();virtual;abstract; // пересчёт координат (абстрактный);
procedure render;virtual;abstract; // отрисока объекта (абстрактный);
список вершин tDrawVertices = class(tDrawObject), содержащий следующие процедуры и функции:
function next_item(item : pVertex) : pVertex; // получить следующий элемент списка (в круговую);
function get_vertex(index : uint32) : pVertex; // получить указатель на вершину;
function vertices_in_triangle(var a,b,c : tDoublePoint):bool; // проверка всех вершин на попаданиев треугольник;
constructor Create(own : tDrawObject);
procedure render();override; // отрисовка
procedure ReCalc();override; // пересчёт площади
function FindVertex(t : tDoublePoint):int32; // поиск вершины по координатам
function addVertex(t : tDoublePoint):uint32; // добавить вершину
property vertex[index : uint32] : pVertex read get_vertex;default;
property closed : bool read fClosed; // замкнуто (если = true)
property square : double read fSquare; // площадь в мм2
property pxSquare : double read fPxSquare; // площадь в пикc.кв.
список треугольников tDrawTriangles = class(tDrawObject), содержащий следующие процедуры и функции:
function get_triangle(index : uint32):pTriangle; // указатель на треугльник;
constructor Create(own : tDrawObject);
procedure render();override; // отрисовка треугольников
procedure setColors(); // генерация цветов
property triangle[index : uint32]:pTriangle read get_triangle;// треугольник;
полигон (Основной класс) tDrawPolygon = class(tDrawObject), содержащий следующие процедуры и функции:
procedure set_pix_coor(t : tPoint);
procedure draw_axis(); // отрисовка осей координат
procedure draw_grid(); // отрисока коорд. сетки
procedure draw_polygon(); // отрисовка полигона
procedure Recalc();override; // пересчёт площади
constructor Create(canv : tCanvas);
procedure Resize(w,h : uint32); // перегрузка размеров окна
function addTriangle(a,b,c : pVertex):bool; // добавление треуголника
procedure render();override; // прорисовка полигона (главная процедура)
function calculate():bool; // пересчёт координат
procedure Triangulate(counterWise : bool); // триангуляция, counterWise - признак направления обхода
function checkIntersect(var a : tDoublePoint):bool; // проверка на самопеерсечение
function checkIntersectClose():bool; // проверка на самопеерсечение при замыкании полигона
function logToPix(log : tDoublePoint):tPoint; // перевод мм в пиксели
function PixToLog(pix : tPoint):tDoublePoint; // пеервод пикселей в мм
procedure clear(); // очистка полигона
property vertices : tDrawVertices read fVertices; // вершины
property triangles : tDrawTriangles read fTriangles; // треугольники
property pixCoor : tPoint read fPixCoor write set_pix_coor; // текущ. коорд. от мыши пикс.
property logCoor : tDoublePoint read fLogCoor; // текущ. коорд.от мыши мм
Модуль uMath содержит следующие процедуры и функции:
// площадь трапеции
function sqr_trap(var a, b : tPoint):double;overload;
function sqr_trap(var a,b : tDoublePoint):double;overload;
// смешанное произведение
function cross_product(var a,b,c : tDoublePoint):double;
// пересечение отрезков
function intersect_lines(var a1,b1,a2,b2 : tDoublePoint):bool;
// попадание точки t в треугольник
function point_in_triangle(var a,b,c,t : tDoublePoint):bool;
// сравнение координат точек
function equ_points(var a,b : tDoublePoint):bool;
// генерация надписи для вершины (A..Z, AA..)
function GetLabelPoint(index : uint32): string;
1.7.Актуальность обеспечения пожарной безопасности
1.7.1. Лесные пожары на территории РФ
Лесной пожар – самопроизвольное или спровоцированное человеком возгорание в лесных экосистемах.
На территории лесного фонда России ежегодно регистрируется от 10 до 30 тыс. лесных пожаров, нередко принимающих характер стихийных бедствий. Основная часть пройденной огнем площади приходиться на районы Сибири и Дальнего Востока.
В 2022 году очаги возгораний были в Красноярском и Алтайском краях, Иркутской, Кемеровской, Омской, Курганской областях и Хакасии. Общая площадь пожаров с начала 2022 года – более 200 тысяч гектаров. Возможные причины возгораний — неосторожное обращение с огнём во время пикников на майских праздниках, замыкания ЛЭП и подстанций или возгорания сухой травы и также умышленные поджоги.
10 августа 2022 года площадь лесных пожаров в России за сутки увеличилась на 15 ℅. ВХанты-Мансийском автономном округе тушили более 110 тыс. га. Смог от лесных пожаров в Югре добрался до Приволжья — четыре района Башкирии заволокло дымом.
На 21 августа общая площадь лесных пожаров на территории Российской Федерации выросла за сутки более, чем на 17 тыс. га. Действовало 90 лесных пожаров на площади 102 883 га, по которым проводились работы по активному тушению. В Якутии тушили семь пожаров на площади 80 889 га. Также велось тушение возгораний на значительных площадях в Рязанской области (7 470 га), Республике Коми (6 741 га), Нижегородской области (5 200 га), Республике Марий Эл (700 га) и Ханты-Мансийском автономном округе (113 га). Два пожара тушили на землях особо охраняемых природных территорий на площади 1101 га в Рязанской области — в заповеднике Окский и национальном парке Мещрский [55].
26 августа площадь лесных пожаров в России увеличилась более чем на 12 тыс. га и составила 122,5 тыс. га. Самые масштабные пожары – в Якутии, где огнём пройдено 74 667 га, Коми (15 722 га), Рязанской области (14 000 га), Ханты-Мансийском автономном округе (6992 га), Нижегородской области (6500 га) [56].
С начала пожароопасного сезона в России возникло более 6 тыс. пожаров, а общая площадь, пройденная огнём, превысила 860 тыс. га, сообщили в Минприроды РФ.
Из них 467,7 тысяч (54 %) – на Дальнем Востоке и 306,9 тысяч (35 %) – в Сибири, говорится в сообщении в официальном телеграм-канале ведомства.
При этом в министерстве подчеркнули, что ни один лесной пожар, возникший с начала пожароопасного сезона 2022 года, не перешел в населённые пункты. В Минприроды уточнили, что в этом году федеральное финансирование на борьбу с лесными пожарами увеличили с 6 млрд рублей до 14,2 млрд рублей.
1.7.2. Технологии мониторинга леса
Наиболее традиционный метод обнаружения пожаров – это визуальное обнаружение людьми со специализированных конструкций – вышек. Настоящий метод используется более ста лет с небольшими усовершенствованиями, связанными с использованием средств связи (рации, сотовая связь и др.) и оптическими устройствами визуального контроля (бинокли, подзорные трубы и др.).
В идеальном варианте обнаружение пожара происходит следующим образом: на специализированной вышке (предназначенной для продолжительного нахождения на ней человека) на специальной площадке находится человек.
Дополнительно на площадку наносят азимутальный круг для определения направления. При визуальном обнаружении пожара наблюдатель с помощью азимутального круга определяет направление на пожар, и сообщает это направление в центр контроля с помощью средств связи. Из центра контроля определяют, с какой ещё вышки может быть обнаружен этот пожар и связываются с другим наблюдателем, который так же обнаруживает пожар и определяет направление на него. После чего в центре контроля, используя известные направления с вышек на пожар, определяют местонахождение предполагаемого пожара и предпринимают меры для его ликвидации.
Также существует метод обнаружения пожара при помощи авиации. Пилот на летательном аппарате (легкий самолет, вертолет) с определенной периодичностью облетают пожароопасную территорию, при визуальном обнаружении пожара штурман определяет его координаты и передает в центр контроля информацию об обнаруженном пожаре.
Некоторую популярность сейчас набирают беспилотные летательные аппараты, использование которых может несколько снизить стоимость летного часа, но не избавляет от проблемы несвоевременного обнаружения.
В России много лет существует государственная структура Авиалесохрана, в задачи которой входит обнаружение и тушение лесных пожаров. Но анализ их сайта показывает, что даже для них основным способом обнаружения является именно спутниковый мониторинг.
Система спутникового мониторинга работает следующим образом, специализированные спутники, находящиеся на негеостационарных орбитах производят снимки земной поверхности в ИК-диапазоне (с последующей передачей на наземную станцию). На основе разности температуры поверхности земли и температуры пожара, возможно, определить его местоположение. Картинка передается в специальные центры, откуда заинтересованные пользователи могут получать все данные через сеть Интернет.
В последние несколько лет начинают появляться системы видеомониторинга предназначенные для обнаружения лесных пожаров, первые системы в России появились в начале 2000-х годов. Основной особенностью видеосистемы мониторинга является высокая степень автоматизации и возможность использовать дешевые и простые вышки. Существующие системы представляют собой поворотные камеры, устанавливаемые на вышках с выводом видеоизображения на пульт оператору, который должен находиться рядом с постом видеомониторинга, данный подход не позволяет определять координаты пожара (невозможность определения направления с двух достаточно разнесенных точек). Масштабировать такую систему также не представляется возможным, заказчику фактически в каждой точке мониторинга необходимо держать работника, который будет осуществлять визуальный контроль. Особенностью представленных систем является невозможность предварительной обработки видеоизображения.
Группой, представляющей настоящий проект, был предложен метод обнаружения пожаров с помощью программно аппаратного комплекса основанного на видеонаблюдении.
В основу системы положена концепция клиент серверного приложения. Основным элементом системы является сеть дистанционно управляемых видеокамер соединенных различными каналами связи с сервером.
Система Лесной Дозор использует такое преимущество метода визуального мониторинга как раннее обнаружение и исключает его недостатки, благодаря чему имеет возможность использования любых вышек, автоматизации и минимизации количества людей, участвующих в процессе мониторинга. Кроме того, система Лесной Дозор — это информационная система, в которую легко могут быть интегрированы данные, поступающие из различных источников (систем спутникового мониторинга, от населения и др.) В отличие от космического авиамониторинга, система Лесной Дозор позволяет осуществлять мониторинг в реальном времени 24 часа в сутки 7 дней в неделю. К тому её эксплуатация существенно дешевле использования авиации и оперативнее спутникового мониторинга.
1.7.3. IQ FireWatch – эффективное решение для предотвращения природных пожаров
В конце 2021 года в России стартовали продажи уникального оптико-электронного комплекса для обнаружения дыма на расстоянии до 60 километров. По своим характеристикам комплекс IQ FireWatch уникален не только для России, но и для всего мира. Система раннего обнаружения лесных пожаров разработана немецкой компанией IQ wirelessGmbH в 2000 году и на протяжении последних 20 лет постоянно совершенствовалась. На сегодняшний день комплекс IQ FireWatch – это сочетание современных мультиспектральных оптических датчиков с инновационной системой алгоритмов поиска дыма, основанных на искусственном интеллекте (ИИ).
В комплексе IQ FireWatch используется тепловизор ближнего ИК спектра (NIR), что даёт ему значительные преимущества прозрачности атмосферы при данных условиях наблюдения. Такой тепловизор практически не замечает тумана и осадков, а наличие дополнительной сверхчувствительной дневной камеры усиливает эффект прозрачности атмосферы. При этом важно отметить, что тепловизор NIR в составе IQ FireWatch по-прежнему ищет очертания дыма, а не сам очаг пожара, который скрыт за листвой деревьев. В условиях тёмного времени суток обычные дневные камеры ничего не видят без активной подсветки, дающей максимальную видимость до 100 м. Конечно, можно использовать мощные направленные прожекторы освещения, но даже при их помощи максимальная видимость дневной камеры не превысит 1 км.
Достижение больших успехов в области машинного обучения и искусственного интеллекта позволило на порядки увеличить производительность процессов, связанных с обработкой большого массива данных. В случае с обнаружением очагов природных пожаров, речь идёт об обработке и анализе большого количества изображений в единицу времени. Разработчикам комплекса удалось реализовать уникальный алгоритм обработки изображений, позволяющий распознавать очертания дыма на изображениях при любой погоде и независимо от времени суток. В поисках лучшей картинки, искусственный интеллект комплекса анализирует до 6 различных кадров с 4 каналов. Все камеры комплекса работают с частотой 50 кадров в секунду, таким образом, искусственный интеллект комплекса суммарно обрабатывает до 300 кадров в секунду в поисках дыма.
1.7.4. Программные средства для мониторинга лесных пожаров
Наиболее эффективным решением задачи минимизации ущерба от лесных пожаров является комплексное использование авиационного, космического, наземного и автоматизированного видеомониторинга для обнаружения, точного определения координат и оповещения о пожаре на самой ранней стадии.
Автоматизированные системы наблюдения, оснащенные средствами беспроводной передачи цифровой информации, являются основой создания общей сети получения и передачи в реальном времени данных о пожаре (и
других характеристиках окружающей среды) в центры местного, районного и общегосударственного уровней.
Основным преимуществом космического мониторинга является большая площадь охвата земной поверхности. В настоящее время для целей оперативного мониторинга наибольшее применение нашли снимки со спутников серий NOAA (радиометр AVHRR с пространственным разрешением 1100 м и полосой обзора 3 000 км) и EOS (спутники Terra и Aqua с установленными на них радиометрами MODIS с пространственным разрешением 250, 500, 1000 м и полосой обзора 2 330 км). Наличие приемной станции дает возможность безлицензионного (бесплатного) приема снимков с получением данных не реже 6 раз в сутки (спутники серии NOAA) и 4–6 раз в сутки (спутники серии EOS).
Можно отметить современный аэрофотосъемочный комплекс земной поверхности – камеру RC-30 швейцарской фирмы "Leica" (новое название LH Systems.
В аэрофотокамере RC-30 используется фотопленка в качестве регистратора изображений, и предназначена она для высокоточных фотограмметрических и картографических работ.
Известно также, что Информационная система дистанционного мониторинга (ИСДМ) лесных пожаров Рослесхоза успешно использует в качестве исходной информации снимки со спутника Terra (система Modis) среднего разрешения (около 250 м). Разработанная унифицированная система обработки космической информации, предназначенная для картирования лесных пожаров и гарей, регулярно используется в Европейском (НИЦ "Планета", Москва), Западносибирском (Новосибирск) и Дальневосточном (Хабаровск) центрах Росгидромета. Обнаружение и картирование лесных пожаров для всей территории России осуществляется в автоматическом режиме на основе данных AVHRR (NOAA) и MODIS (Terra, Aqua) с использованием стандартной методики горячих точек. Одновременно с этим изображения высокого (38 м) и среднего (250 м) разрешения, получаемые с аппаратуры МСУ-Э (Метеор 3М № 1) MODIS (Terra, Aqua), соответственно, используются для детального интерактивного визуального анализа лесных пожаров, дымов и динамики горения. Ежедневно получаемые обработанные результаты регулярно передаются в Российские пожарные службы. ИСДМ имеет в своем распоряжении авиационные средства (подразделения "Авиалесоохраны") для отработки космической информации и осуществления мер по наблюдению и ликвидации пожаров.
1.7.5. Математические методы решения
Понятие и виды многоугольников. Многоугольник – геометрическая фигура, определяемая как часть плоскости, ограниченная замкнутой ломаной.
Точки перелома ломаной называются вершинами многоугольника, а её звенья – сторонами многоугольника. Число сторон многоугольника совпадает с числом его вершин.
Виды многоугольников. Многоугольник с тремя вершинами называется треугольником, с четырьмя – четырёхугольником, с пятью – пятиугольником и так далее. Многоугольник с n вершинами называется n-угольником.
Выпуклый многоугольник – это многоугольник, который лежит по одну сторону от любой прямой, содержащей его сторону (то есть продолжения сторон многоугольника не пересекают других его сторон).
Выпуклый многоугольник называется правильным, если у него равны все стороны и все углы, например равносторонний треугольник, квадрат и правильный пятиугольник.
Многоугольник, у которого равны все стороны и все углы, но который имеет самопересечения, называется правильным звёздчатым многоугольником, например, пентаграмма.
Описывая определение многоугольника, следует учитывать некоторые смежные геометрические понятия:
1. Если вершины являются концами одной стороны, они называются соседними.
2. Если отрезок соединяет между собой не соседние вершины, то он имеет название диагонали. У треугольника не может быть диагоналей.
3. Внутренний угол – это угол при одной из вершин, который образован двумя его сторонами, сходящимися в этой точке. Он всегда располагается во внутренней области геометрической фигуры. Если многоугольник невыпуклый, его размер может превосходить 180 градусов.
4. Внешний угол при определенной вершине – это угол смежный с внутренним при ней же. Иными словами, внешним углом можно считать разность между 180 и величиной внутреннего угла.
5. Сумма величин всех отрезков носит название периметра.
6. Если все стороны и все углы равны – многоугольник носит название правильного. Правильными могут быть только выпуклые многоугольники.
Понятие о площади. Свойства площади. Обычно говорят, что площадь фигуры есть число, показывающее, из скольких единиц площади составляется фигура. Однако это не определение, а только описание того, что такое площадь. Легко понять, что прямоугольник со сторонами 3 и 5 см составляется из 15 квадратных сантиметров ( его легко разделить на 15 квадратов со стороной 1 см; рисунок 1.11).
Рисунок 1.11 – Прямоугольник
Но сколько подобных квадратов нужно, чтобы составить круг радиуса 2 см (как на рисунке 1.12), совершенно неясно.
Рисунок 1.12 – Круг
Строгое математическое определение площади можно получить с помощью палетки – прозрачной пластинки с нанесенной на нее сеткой из равных квадратов. Можно представить, что такая палетка лежит на плоскости. Иначе говоря, плоскость разбита на квадраты со стороной, равной 1. Если фигура полностью помещается в фигуре, составленной, например,
из 81 квадрата палетки, и содержит фигуру из 43 квадратов (рисунок 1.13), то .
Рисунок 1.13 – Палетка
Для большей точности измерения можно каждый квадрат палетки разбить на сто квадратов (стороны которых в 10 раз меньше, чем у квадратов первой палетки, а площадь равна 1/100). Новая, более мелкая палетка даст и более тесные границы, в которых заключена площадь фигуры , скажем, . Если каждый квадрат второй палетки снова разбить на 100 квадратов, точность измерения ещё увеличится – например, получатся границы . Так, используя набор палеток со всё более мелкой сеткой, мы будем приближаться к пределу – площади фигуры .
Но здесь есть одна тонкость. Вначале мы получили отрезок , где , , в котором содержится искомое число . Затем этот отрезок уменьшили до , где , . Потом уменьшили ещё – до , где , , и т. д. Но пересечение системы вложенных отрезковчисловой прямой есть либо одна точка (в том случае, когда имеется только одно число , принадлежащее все рассматриваемым отрезкам, фигуру называют квадрируемой (по Жордану), а число - площадью фигуры .
Второй случай, когда пересечение всех отрезков представляет собой отрезок, а не одну точку, на первый взгляд кажется просто невозможным. Ведь всякая фигура имеет какую-нибудь площадь S(F). Число S(F) и должно быть единственной общей точкой рассматриваемых отрезков. Но на самом деле это не так. Следующий пример подтверждает это.
Возьмём квадрат Q1 со стороной 1. Выбросим из него крестообразную фигуру площадью , как показано на рисунке 1.14.
Рисунок 1.14 – Разбиение квадрата
Остаётся фигура Q2 из четырёх равных квадратов, примыкающих к вершинам Q1. (Сторона каждого из них составляет ). Теперь в каждом из квадратов фигуры Q2 вновь построим, а затем удалим крестообразную фигуру. Её размер определим из условия , что сумма площадей четырёх таких фигур была равна . Получим фигуру Q3 из 16 квадратов. Из каждого из них опять выбросим крестообразную фигуру так, чтобы сумма площадей всех 16 таких крестов была равна . Получим фигуру Q4 из 64 квадратов и т. д.
Обозначим через F пересечение всех фигур Q1, Q2,Q3,Q4, … Другими словами, F получается, если из квадрата Q1 выбросить по очереди все кресты. Общая площадь фигур, выбрасываемых из Q1, равна . Значит, на долю множества F остаётся площадь . Это кажется невероятным: ясно, что в фигуре F нет ни одного, пусть самого маленького, целого квадратика, и тем не менее она имеет площадь, равную .
Попробуем теперь измерить площадь фигуры F по Жордану (т. е. с помощью палеток). Какую бы мелкую палетку мы не взяли, площадь фигуры, составленной из квадратов палетки и включающей в себя F, равна нулю (поскольку в F нет ни одного целого квадрата. Таким образом, каждый из получающихся отрезков(а потому и пересечение всех этих отрезков) содержит отрезок , т. е. их пересечение не состоит из одной точки. Значит, фигура F неквадрируема.
Способ измерения площадей с помощью палеток был предложен в XIX веке французским математиком Камилем Жорданом. Другой французский математик – Анри Лебег предложил более общее определение площади. Построенная выше фигура F неквадрируема по Жордану, но имеет площадь (равную ), по определению Лебега, или, как говорят, измерима по Лебегу. Если же фигура квадрируема по Жордану, то она обязательно измерима и по Лебегу (и имеет ту же площадь).
А какие плоские фигуры квадрируемы? Прежде всего многоугольники. Для других фигур применяют следующую теорему:
Плоская фигура F (рисунок 1.15) в том и только в том случае квадрируема, если для любого положительного числа найдутся два таких многоугольника M и N, что М содержится в F, а N содержит F, и при этом
.
Рисунок 1.15 – Плоская фигура
Другими словами, квадрируемы фигуры, которые можно сколь угодно точно приблизить многоугольниками. Например, площадь круга находят как предел площади вписанного в него или описанного около него правильного n-угольника при.
Поскольку обе площади имеют общий предел, их разность стремится к нулю, значит, круг – квадрируемая фигура. Вообще, любая плоская выпуклая фигура квадрируема. Квадрируема и криволинейная трапеция под графиком непрерывной функции , заданной на отрезке .
Кроме приведённого выше определения площади с помощью палеток имеется ещё одно, аксиоматическое определение. Прежде чем его сформулировать рассмотрим некоторые свойства площади (будем иметь в виду только площадь по Жордану).
Обозначим через Q множество всех квадрируемых плоских фигур, тогда площадь S(F) есть числовая функция, определённая на данном множестве. Перечислим свойства, которыми она обладает.
А. Неотрицательность. Площадь любой квадрируемой фигуры Fнеотрицательна: . Не исключается нулевое значение площади, поскольку, например, любой отрезок представляет собой квадрируемую фигуру нулевой площади.
В. Аддитивность. Пусть F1 и F2 – две квадрируемые фигуры, у которых нет общих внутренних точек. Обозначим через F объединение этих фигур. Тогда фигура F квадрируема и справедливо равенство . То же имеет место при объединении не двух, а большего числа фигур, попарно не имеющих общих внутренних точек.
С. Инвариантность. Если две квадрируемые фигуры F1 и F2 равны, т. е. одна получается из другой с помощью движения, то площади таких фигур равны: . Иначе говоря, площадь не изменяется при движениях.
D. Нормируемость. При определении площади фигуры задаётся некоторая единица площади – квадрат К, сторона которого равна динице длины: .
Очевидно, что площадь , определяемая с помощью палеток, действительно удовлетворяет свойствам А и D. Проверить два других свойства сложнее. Например, если фигура F1 переходит в F2 при повороте, то эти две фигуры будут по-разному расположены относительно палеток и доказательство равенства их площадей (свойство С) требует некоторых усилий. Тем не менее можно утверждать:
На множестве Q всех квадрируемых фигур существует одна и только одна функция, которая обладает свойствами A, B, C, D.
То есть всякая функция на множестве Q, удовлетворяющая всем четырём свойствам, совпадает с.
Стало быть, свойства A, B, C, D можно принять за аксиомы площади, т. е. определить площадь как функцию на множестве квадрируемых фигур Q, удовлетворяющую данным аксиомам. Это и есть аксиоматическое определение площади. Все остальные её свойства можно вывести из перечисленных аксиом. Например, формулы для вычисления площадей многоугольников вытекают именно из аксиом A, B, C, D точно так же, как формулы площади круга, эллипса и других фигур.
Заметим, что и в геометрии Лобачевского, и в сферической геометрии площадь определяется теми же аксиомами. Однако палетками пользоваться уже не приходится; за эталон площади принимают не квадрат, а иную фигуру – квадратов на плоскости Лобачевского и сфере просто нет. Интересно, что в обеих геометриях площадь многоугольника пропорциональна разности между суммой его углов и суммой углов плоского многоугольника с тем же числом сторон.
Понятие о площади многоугольника
В вопросе о площади многоугольник понимается как часть плоскости, ограниченная простой замкнутой ломаной. В этом смысле понятие многоугольник используется в дальнейшем в изложении курса математики, а площадь многоугольника определяется с помощью указания её свойств:
1) численное значение площади любого многоугольника всегда положительно;
2) площади равных многоугольников, т. е. многоугольников, которые можно совместить с помощью движения, одинаковы;
3) площадь многоугольника, полученного объединением двух многоугольников, не имеющих общих внутренних точек, будем называть не перекрывающимися);
4) площадь квадрата со стороной единичной длины равна единице.
В различных учебниках по геометрии для общеобразовательных учреждений определения площади несколько отличаются друг от друга, но суть определений совпадает с указанным выше.
Таким образом, площадь многоугольников можно трактовать как функцию , заданную на множестве всех многоугольников, принимающую числовые значения. и обладающую следующими свойствами (аксиомами площади):
1. неотрицательность площади;
2. аддитивность площади (значение величины, соответствующее целому объекту, равно сумме значений величин, соответствующих его (непересекающимся) частям при любом разбиении объекта на части);
3. инвариантность площади (неизменность);
4. нормированность площади.
Для корректного определения площади многоугольников – функции - требуется доказать, что такая функция существует и единственна.
На основе аксиом площади вполне строго выведены формулы площади указанных основных плоских фигур.
1.8. Методология транслирования программных кодов
1.8.1. Программные средства трансляции языков программирования
Трансляция программы – преобразование программы, представленной на одном из языков программирования, в программу, написанную на другом языке. Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати текст программы и т. д.
Язык, на котором представлена входная программа, называется исходным языком, а сама программа – исходным кодом. Выходной язык называется целевым языком.
Существует несколько видов трансляторов.
Диалоговый транслятор– транслятор, обеспечивающий использование языка программирования врежиме разделения времени.
Синтаксически-ориентированный (синтаксически-управляемый) транслятор – транслятор, получающий на вход описаниесинтаксисаисемантикиязыка, текст на описанном языке и выполняющий трансляцию в соответствии с заданным описанием.
Однопроходнойтранслятор– транслятор, преобразующийисходный кодпри его однократном последовательном чтении (за один проход).
Многопроходнойтранслятор– транслятор, преобразующий исходный код после его нескольких чтений (за несколько проходов).
Оптимизирующий транслятор– транслятор, выполняющий оптимизациюсоздаваемого кода.
Тестовыйтранслятор– транслятор, получающий на входисходный коди выдающий на выходе изменённыйисходный код. Запускается перед основным транслятором для добавления висходный кодотладочныхпроцедур. Например, транслятор сязыкаассемблераможет выполнять заменумакрокомандна код.
Обратныйтранслятор– транслятор, выполняющий преобразование машинного кодав текст на каком-либоязыке программирования.
В нынешнее время существуют автоматические трансляторы, например, Code:: Blocks и Netbeans.
Code:: Blocks – интегрированная среда разработки, которую можно использовать для разных языков программирования - C, C ++, Fortran и др.
Имея инфраструктуру, построенную на плагинах, CodeBlocks позволяет расширять и улучшать возможности программного обеспечения без необходимости изменять какие-либо строки кода в исходном коде этого программного обеспечения.
После загрузки и установки Code: Blocks программа автоматически просканирует систему на предмет наличия поддерживаемых компиляторов.
Примеры компиляторов, поддерживаемых Code:: Blocks:
GCC (MinGW / GNU GCC);
MSVC ++;
Clang;
Borland C ++ 5.5.
Netbeans – еще один хороший вариант программного обеспечения, который может помочь преобразовать один язык программирования в другой, предоставляя возможность создавать широкий спектр приложений на Java, JavaScript, HTML5, PHP, C / C ++ и т.д.
Netbeans позволяет быстро редактировать любой исходный код в соответствии с потребностями конкретного проекта, и его можно настроить таким образом, чтобы он автоматически выделял исходный код как синтаксически, так и семантически.
1.8.2. Сравнение синтаксиса и семантики методов объектно-ориентированного программирования на различных языках программирования
При знакомстве с новым языком программирования необходимо изучение семантической основы языка, т.е. насколько его выразительные возможности позволяют реализовать привычные логические конструкции.
Учитывая то, что C#, как и Delphi, выступает одновременно в двух качествах, т.е. с одной стороны, является семантически строго определенным языком программирования и, с другой стороны, использует поставляемые в составе .Net библиотеки классов и компонентов имеет смысл проведение сравнительного анализа.
Если считать, что процедуры – это функции, которые не возвращают никакого значения, то семантическая нагрузка процедур и функций в Delphi одинакова. Это – выполнение некоторого фрагмента кода, который, возможно, зависит от входных параметров:
procedure A(aParam: integer);
begin
// ...
end;
function B(aParam: integer): integer;
begin
// ...
Result := 0;
end;
A(1);
X := B(1);
В C# семантическим эквивалентом процедур и функций выступают статические методы классов.
// класс-обертка
class Func {
// статический метод без возвращаемого значения - эквивалент процедуры
static public void A(int aParam);
// статический метод - эквивалент функции
static public int B(int aParam);
}
// вызов процедуры
Func.A(1);
// вызов функции
int X := Func.B(1);
Также в С# существует возможность передачи в метод переменного количества параметров:
class Test {
static void F(params int[] args) {
// обработка параметров
}
static void Main() {
F();
F(1);
F(1, 2);
F(1, 2, 3);
F(new int[] {1, 2, 3, 4});
}
}
В Delphi отсутствие переменного количества параметров можно частично скомпенсировать либо использованием значений параметров по умолчанию, либо передачей в качестве параметра открытого массива.
В Delphi можно реализовать свойство класса типа массив и, установив для него атрибут default, получить подобие индексатора:
type
TMyObject = class
public
property Items[Index: integer]: string read GetItem; default;
end;
Тогда в коде можно использовать две эквивалентные конструкции:
S := MyObject.Items[I];
S := MyObject[I];
Вторая строка демонстрирует основную идею индексаторов C# - возможность обращаться к объекту как к массиву. Однако в Delphi есть существенное ограничение - можно использовать только одно свойство (типа массива) по умолчанию.
В C# можно реализовать произвольное количество индексаторов для класса:
class A {
int this[int Index] { . . . }
string this[char Col, int Row] { . . . }
static void Main() {
A a = new A();
for (int i = 0; i < a.Count; i++)
Console.Writeln(a[i].ToString());
for (char c = 'a'; c < 'z'; c++)
for (int r = 1; r < 100; r++)
Console.Writeln(a[c, r]);
}
В Delphi обработчики событий играют роль делегатов - <делегируют> реальную работу внешнему объекту. Однако из-за того, что Delphi является гибридным языком программирования, встречаются ситуации, когда семантически эквивалентные задачи реализуются разными способами. Так, например, в классе TList при сортировке используется указатель на функцию сравнения элементов:
type TListSortCompare = function (Item1, Item2: Pointer): Integer;
procedure Sort(Compare: TListSortCompare);
Т.е. на самом деле задача сравнения элементов списка также делегируется функции, внешней по отношению к объекту TList.
Такая семантическая неоднозначность не упрощает программирование.
В C# реализован более общий и однозначный подход - делегаты:
delegate void SimpleDelegate();
class Test {
static void F() {
System.Console.WriteLine("Test.F");
}
static void Main() {
SimpleDelegate d = new SimpleDelegate(F);
d();
В качестве реализации делегата может выступать как статический, так и обычный метод.
1.9. Дизайн проекта для транслирования и транслированного проекта
1.9.1. Вид форм проектов. Алгоритм работы с программами
Для транслирования проекта и последующего использования на занятиях был создан упрощенный вариант программы для расчета площади многоугольника. Вид упрощенного варианта программы в интегрированной среде разработки Delphi показан на рисунке 1.16. На рисунке 1.17 показан вид транслированного проекта на язык программирования C# в среде Visual Studio.
Рисунок 1.16 - Вид упрощенного варианта программы в Delphi
Рисунок 1.17 – Вид транслированного проекта
Принципы работы программы для транслирования и транслированной программы идентичны. Для запуска программы необходимо произвести двойной щелчок левой кнопкой мыши по значку исполнительного файла программы.
После этого появится окно, в котором можно устанавливать вершины многоугольника путем нажатия левой кнопки мыши на рабочей области формы. Щелчок правой кнопкой мыши замыкает многоугольник, после чего, координаты вершин и площадь полученного многоугольника отобразятся в колонке справа. Площадь многоугольника также будет видна в строке названия проекта.
Выход из программы осуществляется при помощи крестика в правом углу окна, а также нажатием клавиши Esc.
1.9.2. Сравнительный листинг программных кодов, отражающих объектно-ориентированный подход
Листинг программы Delphi:
unit u_tri_main; // определяет имя модуля
interface // начинается интерфейсная часть модуля
uses //содержит сведения о других модулях, которые использует данный модуль
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type // типы
tDrawPolygon = class; // создание класса tDrawPolygon
Tfrm_sqr = class(TForm) // создание дочернего класса Tfrm_sqr от TForm
lb_points: TListBox;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); // процедура для закрытия приложения по кнопке
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); // процедура для передачи клика мышью, чтобы нарисовать и замкнуть многоугольник
procedure FormCreate(Sender: TObject); // процедура создания формы
procedure FormPaint(Sender: TObject); // процедура для рисования на форме
private // скрытые данные
public // открытые данные
poly : tDrawPolygon; //отношение полигона к классу tDrawPolygon
end;
tDrawPolygon = class(tList) // объявляется класс tDrawPolygon как наследник класса tList
protected //защищенный раздел объявлений определения класса
function get_point(index : integer):tPoint; //Функция Point определяет тип данных integer и возвращает значение TPoint
function sqr_trap(ind_1, ind_2 : integer):double; // функция для определения высоты и полусуммы оснований
public // открытые данные
isFull : boolean; //замкнутость фигуры
procedure render(dc : hdc); // процедура для рисования соединительных линий между вершинами
property point[index : integer]:tPoint read get_point;default; // Property определяет управляемый доступ к полям класса
function square : double; // функция определения площади
end;
var
frm_sqr: Tfrm_sqr;
implementation
{$R *.dfm}
const // раздел констант
SZ_POINT = 2; // размер точек 2 пикселя
function tDrawPolygon.get_point(index : integer):tPoint; // метод, читающий значение векторного свойства, описан как функция, возвращающая значение того же типа, что и элементы свойства, и имеющая единственный параметр того же типа и с тем же именем, что и индекс свойства
begin
Result := pPoint(items[index])^; // свойство и индекс свойства
end;
function tDrawPolygon.sqr_trap(ind_1, ind_2 : integer):double; // функция определения высоты и полусуммы оснований
begin
Result := (point[ind_2].X - point[ind_1].X)* // высота
(point[ind_1].Y + point[ind_2].Y)/2; // полусумма оснований
end;
function tDrawPolygon.square : double; // функция определения площади
var
i : integer;
begin
Result := 0.0; // площадь приравнивается к 0
for i:=1 to Count-1 do // определение координат вершин
Result := Result + sqr_trap(i-1,i); //добавление координат вершин
Result := abs(Result + sqr_trap(count-1,0)); //определение площади
end;
procedure tDrawPolygon.render(dc : hdc); //процедура рисования многоугольника
var
i : integer;
begin
if count > 0 then //если количество точек больше 0, то
begin
SelectObject(dc, GetStockObject(BLACK_PEN)); // цвет пера
MoveToEx(dc,point[0].X,point[0].y,nil); // рисование точки
// рисование линий
for i:=1 to Count-1 do
LineTo(dc,point[i].X, point[i].Y);
if isFull then LineTo(dc,point[0].X, point[0].Y);
for i:=0 to Count-1 do
Rectangle(dc,point[i].X-SZ_POINT, point[i].Y - SZ_POINT,
point[i].X+SZ_POINT, point[i].Y + SZ_POINT);
end;
end; // рисование линий закончилось
procedure Tfrm_sqr.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); // Key – это переменная, содержащая код нажатой клавиши; #27 код символа Esc; Close – команда закрытия формы. Если запустить программу и нажать Esc,то приложение закроется
begin
if key = 27 then close; // если нажата ESC – закрыть приложение
end;
procedure Tfrm_sqr.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); // процедура для рисования точек
var
p : ^tPoint;
i : integer;
sq : double;
begin
if not poly.isFull then // если многоугольник не замкнут, то
case Button of // определять точку по
mbLeft: // щелчку лкм
begin
new(p); // созданная точка
p.X := X; p.Y := Y; //координаты точки
poly.Add(p); // добавление точки
invalidate; // объект перерисовывается заново
end;
mbRight: // по щелчку пкм
if poly.Count >= 3 then // если количество точек больше или равно 3, тогда
begin
poly.isFull := true; // замкнуть многоугольник
sq := poly.square; //площадь многоугольника
Caption := format('Площадь = %.2f',[sq]); // вывод площади в название формы
for i:=0 to poly.Count-1 do // определение координат
lb_points.Items.Add(format('%d : x = %d y = %d',
[i,poly.point[i].X, poly.point[i].Y] )); // вывод координат в лист бокс
lb_points.Items.Add('-------------------------'); // разделительная линия
lb_points.Items.Add(format('Площадь = %.2f',[sq])); // вывод площади в лист бокс
invalidate; // объект перерисовывается заново
end;
end;
end;
procedure Tfrm_sqr.FormCreate(Sender: TObject); // процедура создания полигона
begin
poly := tDrawPolygon.Create;
end;
procedure Tfrm_sqr.FormPaint(Sender: TObject); // процедура рисования полигона на форме
var
dc : HDC; // контекст рендеринга, он необходим для OpenGL, чтобы рисовать на форме.
begin
dc := GetDC(Handle); // определение места на которое будет осуществляться вывод. В нашем случае это окно формы
poly.render(dc); //рисование в окне формы
ReleaseDc(Handle,dc); //освобождает контекст устройства (DC) для использования другими приложениями
end;
end.
Листинг программы C#:
using System; //область имен с системными базовыми классами
using System.Collections.Generic; //коллекции, что-то вроде шаблонов
using System.Drawing; //классы для рисования
using System.Linq; //классы для работы с массивами и коллекциями
using System.Windows.Forms; //классы для операции с формами
namespace Pro_Tri //название программы
{
public partial class Form1 : Form //доступный всем, разделённый на несколько файлов, класс с именем Form1 - наследник класса Form
{
public const int SZ_POINT = 2;// размер точки 2 пикселя
public DrawPolygon poly; // открытые данные
public Form1()// открытые данные
{
InitializeComponent();//метод, автоматически записываемый конструктором форм при создании / изменении форм
poly = new DrawPolygon();//прорисовка нового полигона
}
public class DrawPolygon // объявление класса DrawPolygon
{
public bool IsFull { get; set; }//замкнуть многоугольник
private readonly List points = new List();//Функция Point определяет тип данных integer и возвращает значение TPoint
public DrawPolygon()// открытые данные
{
IsFull = false; //многоугольник не замкнут
points = new List();//вывести
Pen(Color. Black, 1), points[i].X - SZ_POINT, points[i].Y - SZ_POINT, SZ_POINT * 2, SZ_POINT * 2); // цвет пера для точек
}
if (IsFull) g.DrawLine(new Pen(Color.Black, 1), points[points.Count() - 1], points[0]); // при замыкании многоугольника, цвет пера для линии
g.DrawRectangle(new Pen(Color.Green, 1), points[0].X - SZ_POINT, points[0].Y - SZ_POINT, SZ_POINT * 2, SZ_POINT * 2); // при замыкании многоугольника, цвет пера для точки
}
}
public void Add(Point point) //процедура добавления точек
{
points.Add(point); //добавить точку
}
public int Count()//функция определения количества точек
{
return points.Count; //количество точек
}
}
private void Form1_Paint(object sender, PaintEventArgs e) //процедура рисования на форме
{
poly.Render(e.Graphics); //рисование полигона
}
private void Form1_MouseUp(object sender, MouseEventArgs e) // процедура для рисования точек
{
if (!poly.IsFull) // если многоугольник не замкнут
{
if (e.Button == MouseButtons.Left) //если щелкнуть лкм
{
poly.Add(new Point(e.X, e.Y)); //добавится вершина и определятся ее координаты
Invalidate();// объект перерисовывается заново
новые вершины
}
public Point GetPoint(int index) // открытые данные о функции, возвращающей значение того же типа, что и элементы свойства
{
return points[index]; ) // открытые данные о функции, возвращающей значение того же типа, что и элементы свойства
}
public double SqrTrap(int ind1, int ind2) // функция для определения высоты и полусуммы оснований
{
return (points[ind2].X - points[ind1].X) * (points[ind2].Y + points[ind1].Y) / 2.0; // рассчет высоты и полусуммы оснований
}
public double Square()//рассчет площади
{
double result = 0.0; // площадь приравнивается к 0
for (int i = 1; i < points.Count; i++)// определение координат вершин
{
result += SqrTrap(i - 1, i); //добавление координат вершин
}
return Math.Abs(result + SqrTrap(points.Count - 1, 0)); //определение площади
}
public void Render(Graphics g) //процедура рисования многоугольника
{
if (points != null && points.Count > 0) //если количество точек больше 0, то
{
Point pred = points[0]; //считать вершины от 0
for (int i = 1; i < points.Count; i++)// наращивание массива вершин {
g.DrawLine(new Pen(Color.Black, 1), points[i - 1], points[i]); // цвет пера для линий
g.DrawRectangle(new
}
else if (e.Button == MouseButtons.Right) //или щелчек пкм
{
if (poly.Count() > 2) //если количество вершин больше 2
{
poly.IsFull = true; // возможно замкнуть многоугольник
double sq = poly.Square();//площадь многоугольника
Text = $"Площадь = {sq:0.00}";// вывод площади в название формы
for (int i = 0; i < poly.Count(); i++)// определение координат
{
listBox1.Items.Add($"{i + 1} : x = {poly.GetPoint(i).X}; y = {poly.GetPoint(i).Y}");// вывод координат в лист бокс
}
listBox1.Items.Add("--------------------------");// разделительная линия
listBox1.Items.Add($"Площадь = {sq:0.00}");// вывод площади в лист бокс
Invalidate();// объект перерисовывается заново
}
}
}
}
private void Form1_KeyDown(object sender, KeyEventArgs e) //процедура закрытия приложения по кнопке Escape
{
if (e.KeyCode == Keys.Escape) //если нажата кнопка Escape
{
Close();//закрыть приложение
}
}
}
}
1.10. Тестирование проекта, проиллюстрированного на примере мониторинга лесных пожаров на территории РФ
Тестирование проекта включает несколько этапов, таких как:
проверка работоспособности проекта в целом, а также его отдельных компонентов, таких как кнопки, главное меню, текстовое поле;
проверка затрат времени для многократного определения площади Иркутской области, используя для этого 10 вершин многоугольника;
измерение площади, путем опроксимации, территорий РФ, обладающих наиболее высокой пожароопасностью, это: Красноярский край, Республика Саха (Якутия), Иркутская область, используя разное количество вершин многоугольника.
Результаты проверки работоспособности компонентов проекта представлены в таблице 1.12.
Таблица 1.12 – Работоспособность компонентов проекта
Компонент проекта
Действие/содержание компонента
Кнопки
Выход
Обеспечивает закрытие проекта.
Продолжить
Обеспечивает закрытие титульной формы, появление главной формы проекта.
Пункты главного меню
Редактирование
Содержит вкладки: Замкнуть полигон, Очистка полигона, Сменить цвета треугольников.
Окна
Содержит вкладки: Видимость, Свойства, Вершины.
О программе
Содержит вкладки: Теоретические сведения, Справка, Об авторе, Лесные пожары на территории РФ.
Области
Содержит вкладки: Карта пожароопасных районов РФ, Карта пожаров Иркутской обл..
Вкладки пункта меню Редактирование
Замкнуть полигон
Соединяет первую и последнюю введенные вершины, обеспечивая этим целостность многоугольника. Также обеспечивает автоматическое определение площади многоугольника, вывод этой информации в текстовое поле, триангуляцию многоугольника. Минимальное количество вершин для замыкания многоугольника – 3. При меньшем количестве вершин команда не активна.
Очистка полигона
Удаляет существующий многоугольник с рабочей области проекта, очищает текстовое поле.
Сменить цвета треугольников
В случайном порядке сменяет цвета треугольников, на которые, в результате триангуляции, разбит многоугольник.
Вкладки пункта меню Окна
Видимость
Обеспечивает появление окна, содержащего 5 пунктов: Оси координат, Координатная сетка, Вершины, Полигон, Треугольники.
Свойства
Обеспечивает появление окна, содержащего таблицу, включающую информацию о таких параметрах как: Вершины, Треугольники, Площадь многоугольника.
Продолжение таблицы 1.12
Вершины
Обеспечивает появление окна, содержащего таблицу, включающую информацию о координатах вершин многоугольника.
Вкладки пункта меню О программе
Теоретические сведения
Содержит информацию, касающуюся математических методов определения площади многоугольника.
Справка
Содержит информацию, касающуюся особенностей работы с программой.
Об авторе
Содержит информацию об авторе проекта.
Лесные пожары на территории РФ
Содержит информацию о наиболее пожароопасных территориях РФ, статистику ущерба, причиненного лесными пожарами.
Вкладки пункта меню Области
Карта пожароопасных районов РФ
Содержит карту РФ, отображающуюся на рабочей области проекта. На карте, при помощи различных цветов отражены наиболее и наименее пожароопасные территории страны.
Карта пожаров Иркутской обл.
Содержит карту Иркутской области, отображающуюся на рабочей области проекта. На карте, при помощи различных цветов отражены наиболее и наименее пожароопасные территории области.
Подпункты вкладки Видимость
Оси координат
Содержит кнопку, позволяющую скрыть\показать оси координат на рабочей области проекта.
Координатная сетка
Содержит кнопку, позволяющую скрыть\показать координатную сетку на рабочей области проекта.
Вершины
Содержит кнопку, позволяющую скрыть\показать вершины многоугольника и их буквенное обозначение на рабочей области проекта.
Полигон
Содержит кнопку, позволяющую скрыть\показать красную линию, очерчивающую границы многоугольника на рабочей области проекта.
Треугольники
Содержит кнопку, позволяющую скрыть\показать триангуляцию многоугольника на рабочей области проекта.
Рабочая область
Содержит оси координат, координатную сетку, текстовое поле.
Текстовое поле
Пусто, пока не создан многоугольник, после команды Замкнуть многоугольник, отражает информацию о площади многоугольника. В случае, если пользователь ввел в это поле какие-либо символы, они будут автоматически удалены, после определения площади многоугольника.
Результаты проверки затрат времени для многократного определения площади Иркутской области, используя для этого 10 вершин многоугольника приведены в таблице 1.13.
Таблица 1.13 – Затраты времени для многократного определения площади Иркутской области
№ попытки
1
2
3
4
5
6
7
8
9
10
Время, с
16,31
16,02
14,22
14,16
12,46
12.,23
12,08
11,07
10,09
9,43
Тестирование затрат времени наглядно показывает, что с каждой попыткой на измерение площади требовалось все меньше времени.
Среднее время, затраченное для определения площади Иркутской области составляет 13 с.
Рисунок 1.18 – Вычисление площади Иркутской области
В рамках тестирования опытным путем определены максимальная и минимальная площади многоугольника.
Максимальная площадь определялась путем выделения всей рабочей области программы и составила 36793 мм2.
Минимальная площадь определялась путем создания треугольника с максимально приближенными друг к другу вершинами и составила 0,32 мм2.
Для тестирования проекта также проведено измерение площади, путем опроксимации, территорий РФ, обладающих наиболее высокой пожароопасностью, это: Красноярский край, Республика Саха (Якутия), Иркутская область.
Полученные данные приведены в таблице 1.14.
Таблица 1.14 – Площадь пожароопасных территорий РФ
Название территории
Площадь, полученная при 6 вершинах многоугольника, га
Площадь, полученная при 12 вершинах многоугольника, га
Площадь, полученная при 18 вершинах многоугольника, га
Реальная площадь территории, га
Красноярский край
194149001
208405000
233788000
233970000
Республика Саха
24987846
26784590
29786864
308352230
Иркутская обл.
72679048
74873946
77358697
77484600
Исходя из полученных данных можно отметить, что большее количество вершин многоугольника дает результат наиболее приближенный к реальной площади пожароопасной территории РФ, однако результат не является точным. Поэтому существует необходимость определения абсолютной и относительной погрешности расчетов на примере определения площади Иркутской обл.
Абсолютная погрешность определяется по формуле:
(=(Точное значение – Приближенное значение((1.1)
В качестве приближенного значения будет использоваться площадь, полученная при 18 вершинах многоугольника.
Для данного случая:
(= (77484600 – 77358697(=125903=1,3%
Относительная погрешность определяется по формуле:
( =х100% (1.2)
Для данного случая:
(= HYPER15 х100% = 0,12 = 1,2%
Так как погрешность находится в пределах допустимых значений (до 7%), расчеты могут считаться точными.
1.11. Выводы к разделу информационных технологий
Во время выполнения раздела информационных технологий было проанализировано большое количество литературы по теме разработки проектов и их транслирования, а также средств разработки и транслирования программных кодов. Были выделены основные определения и положения, которые использовались в диссертации.
Разработано дерево целей, в котором четко описаны все этапы выполнения магистерской диссертации, применен метод анализа иерархий для выбора наилучшего программного решения в данный момент на современном информационном рынке, а также изучены аспекты актуальности обеспечения пожарной безопасности на территории РФ, в частности программные средства для мониторинга лесных пожаров. Проведен сравнительный анализ синтаксиса и семантики методов объектно-ориентированного программирования на языках программирования Delphi и C#.
Результатом работы являются:
программа для расчета площади многоугольника, проиллюстрированная на примере определения площади лесных пожаров на территории РФ (17,3 Мб);
программа в Delphi по определению площади многоугольника, разработанная для транслирования в язык C# (385 Кб);
транслированная программа по определению площади многоугольника в C# (136 Кб).
В дальнейшем данную разработку можно совершенствовать в соответствии с потребностями кафедры.
2. ДИДАКТИЧЕСКИЙ ПРОЕКТ ПОДГОТОВКИ БАКАЛАВРА ПО НАПРАВЛЕНИЮ 44.03.04 ПРОФЕССИОНАЛЬНОЕ ОБУЧЕНИЕ ПРОФИЛЬ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И СИСТЕМЫ
2.1. Общекультурное значение педагогики
Педагогика – это наука о педагогическом процессе, обеспечивающем развитие человека в рамках конкретной педагогической системы. Основными категориями педагогике являются воспитание, обучение, образование. Педагогика является развивающейся наукой и соответственно совокупность разных ее отраслей представляет собой открытую систему. В системе человек-знания представляет собой отрасль гуманитарной науки о способах и путях передачи-получения человеком информации и приобщения к общекультурным ценностям с учетом его индивидуально-возрастных особенностей развития в контексте конкретной педагогической системы.
Педагогика как наука имеет свой предмет, объект и задачи (постоянные и временные), а также выполняет три основные функции теоретическую, прикладную (по отношению к другим наукам) и практическую (по совершенствованию конкретной практики обучения и воспитания человека).
Педагогика может рассматриваться как элемент культуры. Педагогическая культура человека входит в качестве составляющей в мировую культуру современности. На протяжении всего исторического развития общества складывались разные парадигмы образования и воспитания человека. Данные парадигмы имеют не только научно-педагогическую, но и общекультурную ценность.
Для того чтобы профессионально обучать и воспитывать, надо знать педагогику как науку. Но одно лишь знание не всегда обеспечивает умение эффективно решать педагогические задачи. Для успеха в деле обучения и воспитания, проявления педагогического мастерства, необходимо органическое соединение научно-педагогических знаний с постоянным личным творчеством человека, выполняющего педагогическую миссию.
Педагогические проблемы имеют важное жизненное и общекультурное значение.
2.2. Исходные данные дидактического проекта
Направление подготовки 44.03.04.09 Профессиональное обучение.
Профиль Информационные технологии и системы
Образовательный уровень специалиста: базовое высшее образование;
Квалификационный уровень: бакалавр, специалист в сфере информационных систем, преподаватель практических дисциплин.
Название учебной дисциплины Объектно-ориентированное программирование и технологии разработки программного обеспечения.
Общая трудоемкость освоения дисциплины составляет 6 зачетных единиц, 216 часов.
Область профессиональной деятельности выпускников, освоивших программу бакалавриата, включает подготовку обучающихся по профессиям и специальностям в образовательных учреждениях, реализующих образовательные программы профессионального, среднего профессионального и дополнительного профессионального образования, учебно-курсовой сети предприятий и организаций, в центрах по подготовке, переподготовке и повышению квалификации рабочих, служащих и специалистов среднего звена, в службе занятости населения.
Выпускники могут осуществлять профессиональную деятельность в других областях профессиональной деятельности и (или) сфере профессиональной деятельности при условии соответствия уровня их образования и полученных компетенций требованиям к квалификации работника.
Объектами профессиональной деятельности выпускников, освоивших программу бакалавриата, являются участники и средства реализации производственно-технологического процесса на предприятиях и в организациях и целостного образовательного процесса в образовательных организациях среднего профессионального и дополнительного профессионального образования, включающие учебно-курсовую сеть предприятий и организаций по подготовке, переподготовке и повышению квалификации рабочих, служащих и специалистов среднего звена, а также службу занятости населения.
Виды профессиональной деятельности, к которым готовятся выпускники, освоившие программу бакалавриата:
учебно-профессиональная;
образовательно-проектировочная;
организационно-технологическая (эксплуатационная);
обучение рабочей профессии.
2.3. Анализ профессиональной деятельности специалиста
Таблица 2.1 – Анализ профессиональной деятельности специалиста
Вид деятельности
Функции деятельности
Процесс деятельности
Организационно-технологическая (Эксплуатационная)
1. Подготовительная
Процедура включения компьютера под управлением программного обеспечения
Используя нормативные данные
проводить расчеты компьютерных сетей.
Диагностика технического состояния, испытание аппаратного и программного обеспечения.
Продолжение таблицы 2.1
2. Технологическая
1.Разработка технологических процессов изготовления деталей, сборочных единиц.
2.Нахождение рациональных вариантов использования технологического оборудования и механизмов оснащения.
3.Составление технического задания на проектирование.
3. Контрольная
1.Организация и проведение контроля соблюдения технологической дисциплины;
2.Контролирование соблюдение правил эксплуатации оборудования, оснастки;
3.Умение проводить анализ брака.
4.Организационная
1.Анализ состояния охраны труда в производственном подразделении (предприятии).
2.Анализ наличия нормативных документов по охране труда при эксплуатации оргтехники;
3.Обеспечение санитарно-гигиенических условий труда.
2.4. Квалификационные требования к бакалавру
Таблица 2.2 – Квалификационные требования к бакалавру по профилю Информационные технологии и системы
Специалист должен знать
Специалист должен уметь
Высшую математику, основы алгоритмизации, навыки программирования типовых алгоритмов. Электронные таблицы. Системы управления базами данных (СУБД). Классификацию, структуру и возможности педагогических программных средств. Принципы построения изображений пространственных форм, ЕСКД, принципы конструирования технических средств. Методы, средства и формы обучения.
Решать позиционные и метрические задачи. Создавать компьютерные программы для решения типовых задач обработки данных, отлаживать эти программы с использованием инструментальных средств программирования на ПК. Разрабатывать алгоритмы и программы решения производственных задач. Выполнять обработку и анализ данных, которые
Продолжение таблицы 2.2
Контроль качества обучения, закономерности и принципы обучения. Педагогическую систему. Объектно-оринтированно программирование ObjectPascal, ООП, Delphi, СУБД. Принципы построения ДО через современные информационные технологии. Компьютерные средства создания документации. Принципы создания психологических характеристик. Методы, формы, средства учебно–воспитательного процесса. Предметные области и связи между ними. Психологический анализ профессиональной деятельности, особенности инженера-педагога, методику профессионального отбора специалиста.
имеют табличную форму. Создавать базы данных с поиском и обработкой данных.Используя инструментальные компьютерные средства, разрабатывать
учебные программы по разным дисциплинам и оформлять документацию к ним. Решать позиционные и метрические задачи. Строить беседу, рассказ, пояснение, составлять опорный конспект, создавать проблемные ситуации, структурировать учебную деятельность на уроке. Создавать компьютерные объектно-ориентированные проекты и модули. Разрабатывать компоненты программиста для решения прикладных задач. Использовать компьютерные обучающие системы и компьютерные комплексы при изложении дисциплин по специальности.
Выпускник, освоивший программу бакалавриата, в соответствии с видом (видами) профессиональной деятельности, на который (которые) ориентирована программа бакалавриата, должен быть готов решать следующие профессиональные задачи:
учебно-профессиональная деятельность:
определение подходов к процессу подготовки рабочих (специалистов) для отраслей информационных технологий;
развитие профессионально важных качеств личности современного рабочего, служащего и специалиста среднего звена;
планирование мероприятий по социальной профилактике в образовательных организациях, реализующих программы подготовки квалифицированных рабочих, служащих и среднего профессионального образования (СПО);
организация и осуществление учебно-воспитательной деятельности в соответствии с требованиями профессиональных и государственных образовательных стандартов в образовательных организациях среднего, дополнительного профессионального образования;
диагностика и прогнозирование развития личности будущих рабочих, служащих и специалистов среднего звена;
организация профессионально-педагогической деятельности на основе нормативно-правовых документов;
анализ профессионально-педагогических ситуаций;
воспитание будущих рабочих, служащих и специалистов среднего звена на основе индивидуального подхода, формирование у них духовных, нравственных ценностей и патриотических убеждений.
Научно-исследовательская:
участие в исследованиях по проблемам подготовки рабочих, служащих и специалистов среднего звена, а также развития техники и технологий в конкретной сфере производства;
организация учебно-исследовательской работы обучающихся;
создание, распространение, применение новшеств, творчество в педагогическом и технико-технологическом процессах для решения профессионально-педагогических и производственно-технологических задач, применение технологии формирования креативных способностей при подготовке рабочих, служащих и специалистов среднего звена.
образовательно-проектировочная:
проектирование комплекса учебно-профессиональных целей, задач;
прогнозирование результатов профессионально-педагогической деятельности;
конструирование содержания учебного материала по общепрофессиональной и специальной подготовке рабочих, служащих и специалистов среднего звена;
проектирование и оснащение образовательно-пространственной среды для теоретического и практического обучения рабочих, служащих и специалистов среднего звена;
разработка, анализ и корректировка учебно-программной документации подготовки рабочих, служащих и специалистов среднего звена;
проектирование, адаптация и применение комплекса дидактических средств для подготовки рабочих, служащих и специалистов среднего звена;
проектирование и организация коммуникативных взаимодействий и управление общением;
проектирование форм, методов и средств контроля результатов процесса подготовки рабочих, служащих и специалистов среднего звена;
Организационно-технологическая деятельность:
организация учебно-производственного (профессионального) и производственно-технологического процессов через производительный труд обучающихся и квалифицированных работников;
анализ и организация информационно-технологической деятельности в учебно-производственных мастерских и на предприятиях (организациях);
организация образовательного процесса с применением эффективных технологий подготовки рабочих, служащих и специалистов среднего звена;
организация технико-технологического процесса с применением инновационных производственных технологий;
эксплуатация и техническое обслуживание учебно-технологического и производственно-технологического оборудования;
использование учебно-технологической и производственно-технологической среды в практической подготовке, переподготовке и повышении квалификации рабочих, служащих и специалистов среднего звена;
реализация учебно-технологического и производственно-технологического процессов в учебных мастерских, организациях и предприятиях.
Обучение по рабочей профессии:
определение путей повышения производительности и безопасности труда, качества продукции;
использование передовых отраслевых технологий в процессе обучения рабочей профессии;
формирование профессиональной компетентности рабочего соответствующего квалификационного уровня;
организация производительного труда обучаемых.
2.5. Характеристика учебной дисциплины: Объектно-ориентированное программирование и технологии разработки программного обеспечения для студентов по специальности 44.03.04.09. Профессиональное обучение. Профиль Информационные технологии и системы
Цели и задачи дисциплины:
целью изучения дисциплины является изучение современного подхода к программированию в объектах, знакомства с методами разработки программ.
Основными задачами изучения дисциплины Объектно-ориентированное программирование и технологии разработки программного обеспечения являются: совершенствование навыков визуального программирования в объектно-ориентированной среде разработки Delphi;
умение разрабатывать алгоритмы решения задач, знания важных приемов и методов создания классов.
Общая трудоемкость освоения дисциплины составляет 6 зачетных единиц, 216 часов. Программой дисциплины предусмотрены лекционные (56ч.), лабораторные работы (56ч), самостоятельная работа студента (104ч.).
Виды контроля по дисциплине: зачет, экзамен.
Название темы, в составе которой предусмотрено проведение лабораторной работы: Принципы ООП. Наследование классов.
Цели изучения темы:
сформировать знания у учащихся о разработке проектов с использованием объектно-ориентированного программирования.
Компетентностная составляющая второго уровня образования в профессиональной области включает:
создание программного продукта с использованием объектно-ориентированного программирования в среде Delphi;
умение пользоваться программным обеспечением для создания программного продукта;
обоснование и выбор методов независимого эксперимента, объяснение его результатов.
2.6. Составление перспективно-тематического плана изучения дисциплины: Объектно-ориентированное программирование и технологии разработки программного обеспечения
Перспективно-тематический план – это документ, который содержит перечень занятий по конкретной теме, а также организационные и дидактические характеристики каждого из них, представленные время, отводимое на изучение тех или иных вопросов темы, типов занятий, целей обучения, содержание базового материала, методов обучения [57].
Ниже представлена таблица Перспективно-тематический план изучения дисциплины Объектно-ориентированное программирование и технологии разработки программного обеспечения.
Таблица 2.3 – Перспективно-тематический план изучения дисциплины Объектно-ориентированное программирование и технологии разработки программного обеспечения
№ урока
Тема занятия
Тип занятия
Учебная цель
Развивающая цель
1 .
2
3
4
5
Занятие 1.
2 часа
Тема 1. Объектно-ориентированное программирование. Определение класса.
Занятие формирования новых знаний:
Организационный момент;
Мотивация;
Актуализация знаний;
Сообщение нового материала;
4. Выдача д/з.
Изучить основные определения ООП, классов, уметь осуществлять основные действия над классами.
Развить память, мышление, творческий подход к работе
Занятие 2.
4 часа
Теса 2. Реализация собственного класса.
Практическое занятие:
Организационный момент;
Мотивация;
Актуализация знаний;
Сообщение нового материала;
Практическая работа;
Выдача д/з.
Изучить возможности создания собственных классов.
Развить память, логическое мышление
Занятие 3.
2 часа
Тема 3. Наследование классов.
Занятие формирования новых знаний:
Организационный момент;
Мотивация;
Актуализация знаний
Изучить возможности наследования классов в ООП
Развить способность к самостоятельному изучению материала.
Занятие 4.
2 часа
Тема 4. Свойства объектов. Сеттеры. Геттеры.
Актуализация знаний;
Сообщение нового материала;
4. Выдача д/з.
Изучение определений свойств объектов, геттеров, сеттеров.
Развить память, мышление, творческий подход к работе
Продолжение таблицы 2.3
Занятие 5.
4 часа
Тема 5. Разработка приложения с использованием класса.
Практическое занятие:
Организационный момент;
Мотивация;
Актуализация знаний;
Сообщение нового материала;
Лабораторная;
Выдача д/з.
Изучить основные методы разработки приложений с использованием класса.
Развить память, логическое мышление
Занятие 6.
4 часа
Тема 6. Принципы ООП. Наследование классов.
Занятие формирования новых знаний:
Организационный момент;
Мотивация;
Актуализация знаний;
Сообщение нового материала;
4. Выдача д/з.
Изучить основные принципы ООП. Проработать приемы наследования классов.
Развить память, умение сопоставлять математические объекты
Занятие 7.
4 часа
Тема 7. Полиморфизм в ООП. Виртуальные методы.
Практическое занятие:
Организационный момент;
Мотивация;
Актуализация знаний;
Сообщение нового материала;
Лабораторная работа;
Выдача д/з.
Изучить механизм полиморфизма в ООП. Получить опыт работы с виртуальными методами.
Развить память, логическое мышление
Занятие 8.
2 часа •
Тема 8. Полиморфизм в ООП. Перегрузка операторов.
Практическое занятие:
Организационный момент;
Мотивация;
Актуализация знаний;
Сообщение нового материала;
Практическая работа;
Выдача д/з.
Изучить способы перезагрузки операторов.
Развить память, умение сопоставлять математические объекты
Продолжение таблицы 2.3
Занятие 9.
4 часа
Тема 9. Применение наследования и полиморфизма в графическом режиме.
Создание графического редактора изображений.
Занятие формирования новых знаний:
Организационный момент;
Мотивация;
Актуализация знаний;
Сообщение нового материала;
4. Выдача д/з.
Изучить основы применения наследования и полиморфизма в графическом режиме. Разработать схему алгоритма создания графического редактора изображений.
Развить память, логическое мышление
2.7. Постановка оперативных целей изучения темы Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Таблица 2.4 – Постановка оперативных целей изучения темы Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Цель темы в виде конечного результата её изучения
Уровень цели
Условия достижения цели изучения темы
Результат в виде эталона действий с уровнем её сформированности
Критерии оценки результата обучения
Способность свободно называть основное программное обеспечение для создания программного продукта с использованием объектно-ориентированного программирования
Репродуктивный
Слушатели должны свободно называть основные программы и их свойства
Сформировать понятия об основных программах для создания программного продуктаи их свойствах
100-90% правильных ответов -5;
89-80%-4;
79-60%-3;
59-0%-2.
Продолжение таблицы 2.4
Способность свободно объяснять роль и способы использования отдельных операторов при создании программного продукта (ПП)
Репродуктивно-
алгоритмический
Слушатели должны самостоятельно объяснять, почему они будут использовать конкретно эти операторы при создании программного продукта
Сформировать умение объяснять причины использования конкретных операторов
100-90% правильных ответов -5;
89-75%-4;
74-50%-3;
49-0%-2.
Навыки для самостоятельной разработки программного продукта с использованием объектно-ориентированного программирования (ООП)
Продуктивно-практический
Слушатели должны самостоятельно разработать программный продукт
Сформировать умения самостоятельно создавать программный продукт с использованием объектно-ориентированного программирования
100-90% правильных ответов -5; 89-75%-4;
74-50%-3;
49-0%-2.
Условия достижения цели изучения темы характеризируются объемом информации, определенным учебным временем, сформированностью базового учебного материала и другими факторами. Цели урока конкретизируются на основе перспективно-тематического плана. При этом дидактические цели формируем в виде целей-задач, т.е. конечных результатов, которые должны быть достигнуты после реализации учебных задач урока (таблица 2.5).
Таблица 2.5 – Цели и задачи на отдельных этапах достижения оперативных целей
Уровни усвоения учебного материала темы
Цели-задачи на отдельных этапах достижения оперативных целей
Репродуктивный
Формирование знаний о программах для создания ПП с использованием ООП.
Формирование знаний о свойствах и сферах применения отдельных операторов при разработке ПП.
Формирование знаний о типовых ошибках.
Продолжение таблицы 2.5
Репродуктивно-алгоритмический
Формирование умений работы с программными продуктами для создания ПП.
Продуктивно-практический
Самостоятельный подбор программного обеспечения для дальнейшей модернизации ПП.
2.8. Перечень литературных источников по теме Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
1. Бобровский С.И. Delphi 7. Учебный курс. – М.: КУДИЦ-Образ, 2011. –736 с.
2.Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов. М.: Киев: ДиаСофт, 2014. – 640 с.
3. Сухарев, М.В. Основы Delphi. Профессиональный подход; Наука и техника – М., 2018. – 600 c.
Таблица 2.6 – Система качества сравниваемых учебников

Наименование показателя
К
Учебник №1
Учебник №2
Учебник №3
Pig
Nig
Pig
Nig
Pig
Nig
1
Присутствие диагностической поставленной цели
1
1
1
1
1
1
1
2
Список специальностей для которых предназначен учебник
1
1
1
1
1
1
1
3
Указание уровней усвоения материала, который усваивается
1
1
1
1
1
1
1
4
Присутствие цели перед каждым разделом
1
0
0
0
0
0
0
5
Присутствие структуры учебника
1
1
1
1
1
1
1
6
Присутствие рекомендации по его использованию
1
1
1
1
1
1
1
7
Полнота отобранного материала, который изучается
3
3
9
3
9
3
9
Продолжение таблицы 2.6
8
Присутствие и отображения логической структуры материала, который изучается
3
3
9
3
9
3
9
9
Последовательность и логичность
3
3
9
3
9
3
9
10
Присутствие современных достижений развития науки и техники
3
1
3
2
5
2
1
11
Связь преподавания с практикой
3
1
3
1
3
1
3
12
Соответствие определений и терминов общепринятых в базовой дисциплине
2
2
6
2
4
2
4
13
Равномерность распределения учебного материала
2
2
4
2
6
2
5
14
доступность изложения
3
3
9
3
9
3
7
15
наглядность
2
1
2
1
2
1
2
16
Присутствие указаний к самостоятельной работе по каждому разделу
3
1
3
1
3
1
3
17
Присутствие задач и упражнений с примерами их решения и методическими указаниями
3
1
3
2
6
2
4
18
Присутствие задач к самостоятельному решению
2
0
0
0
0
0
0
19
Присутствие тестов самопроверки и критериев оценки ответов по ним
3
0
0
0
0
0
0
ВСЕГО
64
69
60
По данным анализа выбираем для дальнейшего использования учебник № 2.
Следуя оперативным целям необходимо подобрать учебно-техническую и научно-техническую литературу с необходимой информацией для написания контурного конспекта и составления опорного конспекта по теме.
Анализ однотипной учебной литературы по теме: Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования сделаем бальным методом. Сумма баллов определяется следующим образом: коэффициент значимости каждого показателя качества учебника К (показатель качества) увеличивается на Р степень реализации показателя в данном учебнике.
2.9. Конструирование дидактических материалов. Построение логико-семантической схемы по теме Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Выполняя анализ структуры учебного материала по теме, определяются компоненты структуры и характер связей между ними. На основе этого анализа разрабатывается план преподавания содержания учебного материала темы.
План изложения темы Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования:
1. Объектно-ориентированное программирование. Определение класса.
2. Реализация собственного класса.
3. Наследование классов.
4. Свойства объектов. Сеттеры. Геттеры.
5. Разработка приложения с использованием класса.
6. Принципы ООП. наследование классов.
7. Полиморфизм в ООП. Виртуальные методы.
8. Полиморфизм в ООП. Перегрузка операторов.
9. Применение наследования и полиморфизма в графическом режиме.
10. Создание графического редактора изображений.
11. Изучение основных операторов С# в среде программирования VsualStudio.
12. Транслирование программных кодов между языками программирования.
Логико-семантическая структура изучения темы: Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования представлена ниже.
Логико-семантическая структура изучения темы:Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Рисунок 2.1 – Логико-семантическая схема изучения темы Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
2.10. Анализ базовых условий обучения
Анализ базового учебного материала, определение способов актуализации базовых знаний и способов действий (табл. 2.7).
Таблица 2.7 – Анализ базового материала и способы актуализации базовых знаний
Перечень базовых понятий, законов, способов действий
Название дисциплин и тем, в которых формируются базовые знания и действия
Способы (методы, формы, способы) проверки уровня сформированности базовых знаний и способов действий
Способы актуализации или пополнения базовых знаний и способов действий
Основные понятия по теме:
программный код, ООП, компитяция,
трансляция
Междисциплинарный курс: Программное обеспечение систем управления и обучения
Тема Циклические алгоритмы.
Репродуктивный фронтальный устный опрос путем ответа на вопросы на протяжении 10 мин.:
Что представляет собой программный код?
Каковы основные принципы ООП?
Как происходит компиляция проекта?
При актуализации и пополнении базовых знаний, применяются методы:
1. Повторения
2. Объяснения
3.Демонстрации
2.11. Проектирование мотивационных технологий обучения на тему Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Таблица 2.8 – Выбор методов мотивации учебной деятельности
Вид и методы мотивации
Вступительная мотивация
Поддерживающая (текущая) мотивация
Внешняя мотивация основана на поощрения, наказания и других видах стимуляции, которые или направляют, или тормозят поведение человека. В случае внешней мотивации факторы, которые регулируют поведение, не зависят от внутреннего я личности.
Внутренняя мотивация способствует получению удовольствия от работы, вызывает интерес, радостное возбуждение, повышает самоуважение личности.
Полученные знания помогут вам реализоваться как будущему специалисту.
Мы рассмотрим такие вопросы:
1. Разработка программного продукта в среде Delphi.
2. Транслирование программного кода с языка Delphiна язык программирования C#.
Поточная мотивация осуществляется путем:
- рассказа и ориентации содержания темы урока на конкретную профессиональную деятельность.
Указанная тема поможет Вам в самореализации и самовыражению Вас как личности.
2.12. Проектирование технологии формирования ориентированной основы деятельности на тему Разработка проектов с использованием объектно-ориентированного программирования, исследование трансляции программных кодов между языками программирования
Таблица 2.9 – Выбор и обоснование способов формирования ориентированной основы деятельности (ООД)
Уровни усвоения учебного материала темы
Формы
Методы
Средства
I Репродуктивный
фронтальная
Лекция, рассказ
Раздаточный материал по теме занятия
II Репродуктивно-алгоритмический
фронтальная
групповая
индивидуальная
Лекция, беседа, рассказ
Раздаточный материал по теме занятия
III Продуктивно-практический
фронтальная
групповая
индивидуальная
Лекция, беседа, демонстрация.
Раздаточный материал по теме занятия
2.13. Проектирование технологии формирования исполнительных действий на тему Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Таблица 2.10 – Выбор и обоснование способов формирования исполнительных действий (ИД)
Уровни усвоения учебного материала темы
Формы
Методы
Средства
1.Репродуктивный
Фронтальная
Конспектирование, изображение
Пункты плана:
1. Понятие и сущность ООП;
2. Основные принципы ООП;
3. Алгоритм транслирования программных кодов между языками программирования.
Продолжение таблицы 2.10
2.Репродуктивно- алгоритмический
Фронтальная
Конспектирование, беседа
Вопросы к беседе:
1.Раскрыть понятие объектно-ориентированное программирование. Определение класса.
2. Как осуществляется реализация собственного класса?
3. Для чего предназначено наследование классов?
4. Свойства объектов. Сеттеры. Геттеры.
5. Назовите основные этапы разработки приложения с использованием класса.
6. Назовите принципы ООП.
3.Практически - репродуктивный
Групповая
Деловая игра
См. приложение 2
2.14. Проектирование контрольных действий на тему Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
В данном пункте отражаются особенности осуществления самоконтроля и самооценки полученных результатов студентом, их контроль и оценка преподавателем. При самооценке студенты должны сделать вывод о достоверности, точности полученного результата и его соответствия требованиям. При разработке методики оценки результатов выполнения лабораторной работы со стороны преподавателя следует указать каким именно образом и по каким критериям оценивается работа студента.
Таблица 2.11 – Проектирование технологии формирования контрольных действий (КД)
Уровни усвоения учебного материала темы
Формы
Методы
Способы
Репродуктив-ный
Фронтальная
Фронтальный опрос.
Вопросы:
1.Назовите определение класса.
2.Как осуществляется реализация собственного класса?
3.Что представляет собой наследование классов?
4.Каковы свойства объектов.
Репродуктив-но-алгоритми-ческий
Индивидуальная
Индивидуальный опрос
Вопросы:
1.Как осуществляется разработка приложения с использованием класса?
2.Каковы принципы ООП?
3.Что представляет собой полиморфизм в ООП?
Продуктивно-практический
Групповая
Деловая игра
См. приложение 2
2.15. Разработка перспективно-поурочного плана преподавания темы Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Современная концепция образовательного процесса в профессиональном образовании исходит из того, что основное назначение педагога – помочь обучающемуся организовать собственную эффективную учебную деятельность. Поурочный план обеспечивает методически правильное планирование учебного занятия в соответствии с перспективно-тематическим планом.
Таблица 2.12 – Фрагмент перспективно-поурочный план обучения по теме Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования

п/п
Название темы занятия
Длительность занятия
Цели занятия
Тип занятия
Структура занятия
Методы обучения
1
Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
90 мин.
Дидактическая:
закрепление знаний; формирование умений работы с объектно-ориентированным программированием;
Воспитательная: воспитывать самостоятельность и организованность.
Развивающая: развить умения и навыки работы с программами Delphi, C#.
Лабораторная работа
1.Организационный момент.
2.Мотивация.
3.Излажение материала темы.
4.Закрепление новой информации.
5.Подведение итогов.
6.Выдача домашнего задания.
Рассказ, объяснение, деловая игра
Сценарий лабораторного занятия по теме Разработка проектов с использованием объектно-ориентированного программирования, исследование трансляции программных кодов между языками программирования
План-конспект занятия
Тема: Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Цели лабораторной работы:
изучение основ разработки проектов с использованием объектно-ориентированного программирования, исследование трансляции программных кодов между языками программирования;
развить аналитическое мышление, умение формулировать проблемы и находить пути их решения;
способствовать воспитанию активной творческой личности.
Задачи:
разработка проектов с использованием объектно-ориентированного программирования;
вырабатывать навыки применениятрансляции программных кодов между языками программирования;
повысить интерес к будущей профессии за счёт выработки навыков решения задача в офисных программах.
Основные понятия: объектно-ориентированное программирование, наследование, полиморфизм, инкапсуляция, транслирование.
Форма организации учебной работы: лабораторная работа.
Время работы:90 минут.
Дидактическое и материально-техническое обеспечение: мультимедийная презентация по теме, проектор, персональный компьютер.
План проведения
1. Организационный момент:
постановка задач и целей лабораторной работы;
актуализация опорных знаний;
опрос и проверка готовности к занятию.
2. Основной этап:
проведение лабораторной работы.
3. Заключение:
заключительная часть занятия;
защита лабораторных работ;
выставление оценок.
Таблица 2.13 – Сценарий лабораторного занятия по теме Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
№ п/п
Структурные элементы занятия
Содержание структурных элементов
Действия студентов
1
Организацион-ный
Приветствие, проверка присутствия учащихся, сообщение темы занятия.
Студенты приветствуют преподавателя.
Староста передает журнал.
2.
Актуализация, 3мин.
Опрос путем ответов на вопросы:
1.Назовите определение класса.
2.Как осуществляется реализация собственного класса?
3.Что представляет собой наследование классов?
4.Каковы свойства объектов.
5.Как осуществляется разработка приложения с использованием класса?
6.Каковы принципы ООП?
7.Что представляет собой полиморфизм в ООП?
Студенты изучают определения и слушают преподавателя и отвечают на вопросы.
3.
Мотивация, 5мин.
Мотивационное введение: Что делает ООП актуальным? Во-первых, это работает. Так или иначе, программисты научились понимать друг друга, создавать сложные системы и создавать абстракции припомощи паттернов. Большое число программистов начало думать в терминах ООП, большое число кода написано и протестировано. Это то, что делает ООП актуальным ещё долгое время, особенно с целью решения классических задач. Однако для задач нетривиальных, постоянно необходимо пробовать и применять новые подходы. Серебряной пули не существует. Более того, понимание подходов функционального программирования, макроязыков, алгоритмов, устройства компиляторов-интерпретаторов дают программисту неоспоримые преимущества для написания качественного и гибкого кода
Студенты слушают преподавателя.
Продолжение таблицы 2.13
4.
Вводный инструктаж, 10мин
По теме Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования. Для создания программного продукта будет использоваться интегрированная среда разработки Delphi 7, для транслирования программного кода – язык C#, т.к. имеют самые гибкие возможности и достаточно актуальны в нынешнее время.
Студенты внимательно слушают преподавателя и задают интересующие вопросы по теме занятия.
5.
Выполнение лабораторной работы, 60 мин.
Деловая игра Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования (прил. 4)
Студенты проводят исследование трансляции программных кодов между языками программирования и отчитываются преподавателю о проделанной работе.
6.
Контроль, 10мин.
Вопросы:
1.Назовите определение класса.
2.Как осуществляется реализация собственного класса?
3.Что представляет собой наследование классов?
4.Каковы свойства объектов. Сеттеры. Геттеры?
5.Как осуществляется разработка приложения с использованием класса?
6.Каковы принципы ООП?
7.Что представляет собой полиморфизм в ООП?
8. Каковы основные операторы С# в среде программирования VsualStudio?
9. Какие способы транслирования программных кодов между языками программирования вам известны?
Учащиеся отвечают на уточняющие вопросы по теме занятия.
7.
Провернка лабораторных работ.
Выдача домашнего задания, 2 мин.
Проводится проверка выполненных лабораторных работ.
Разработка приложения, используя лабораторную работу как пример.
Студенты защищают лабораторные работы и записывают домашнее задание.
Проанализировав важность познавательного интереса и возможности тренинга, были определены дидактические возможности данного метода в образовательной сфере.
Цель экспериментальной работы – определение влияния деловой игры в условиях организации учебного процесса на занятиях информатики в институте на формирование познавательного интереса студентов.
Исследование влияния тренинга на уровень развития познавательного интереса на занятие по объектно-ориентированному программированию и технологиям разработки программного обеспечения для студентов 4-го курса было организовано в образовательном учреждении города Стаханов СИПИ.
Экспериментальная работа предполагает реализацию следующих этапов:
1 этап – констатирующий – выявление исходного уровня развития познавательного интереса к предмету Объектно-ориентированное программирование и технологии разработки программного обеспечения у студентов 4-го курса.
2 этап – формирующий – организация работы по повышению познавательного интереса учащихся к предмету Объектно-ориентированное программирование и технологии разработки программного обеспечения.
3 этап – контрольный – повторная диагностика уровня развития познавательного интереса к предмету Объектно-ориентированное программирование и технологии разработки программного обеспечения у студентов 4-го курса, проведение анализа полученных результатов.
Была проведена диагностика познавательного интереса, с целью
выявления исходного уровня познавательного интереса обучающихся, которая строится на применении комплекса психолого-педагогических методов, а именно: анкетирование, экспериментальные задания, наблюдение.
В целях сравнения данных по самооценке студенты уровня развития познавательного интереса и уточнения уровня развития познавательного интереса был использован метод экспериментальных заданий.
Для теста по самооценке уровня познавательного интереса и экспериментального задания была выбрана единая шкала оценивания – 30 баллов, что позволяет соотносить результаты, полученные разными методами, прослеживать в дальнейшем динамику развития познавательного интереса.
Во время выполнения заданий проводилось наблюдение за эмоциональным состоянием испытуемых, характером их деятельности. Наблюдение, является важным методом исследования познавательного интереса. Данный метод позволяет обобщить информацию, установить связи между наблюдаемыми фактами, проследить процесс развития познавательного интереса.
На констатирующем этапе по итогам проведения выбранных методик получили следующие результаты в экспериментальной группе: количество обучающихся с низким уровнем сформированного познавательного интереса – 6 человека, что составляет 60% от общего количества. Показатель среднего уровня сформированного познавательного интереса – 5 человека (50%). Высокий уровень – 3 человека (30%).
В контрольной группе получили следующие результаты: количество обучающихся с низким уровнем сформированного познавательного интереса – 2 человека (20%). На среднем уровне находятся 5 обучающихся (50%). Высокий уровень – 3 человека (30%).
По результатам обработки анкеты было выявлено, что уровень познавательного интереса во второй подгруппе выше, чем в первой. Для большей наглядности полученные результаты на этапе констатирующего эксперимента.
Сравним результаты констатирующего и контрольного этапов эксперимента в экспериментальном и контрольном классе (рисунок 2.2).
Рисунок 2.2 – Результаты контрольного этапа экспериментальной работы
По данным контрольной диагностики можно сделать вывод о том, что уровень сформированного познавательного интереса у студентов экспериментального курса повысился как в сравнении с контрольным группой, так и в сравнении с первичной диагностикой экспериментальной группы. Следовательно, применение тренинга при проведении занятий в рамках предмета Объектно-ориентированное программирование и технологии разработки программного обеспечения у обучающихся четвертого курса является действенным инструментом формирования и повышения у них познавательного интереса.
Таким образом, по результатам проведенных занятий можно наблюдать положительную динамику в формировании познавательного интереса обучающихся.
2.16. Выводы к методическому разделу
На основе анализа научных источников, изучения существующих подходов к обучению информатике, а также принципов деловой игры, появилась возможность сделать процесс обучения студентов по дисциплине Объектно-ориентированное программирование и технологии разработки программного обеспечения более интересным и инновационным благодаря использованию современного метода обучения – деловой игры.
Такое нововведение позволяет повысить наглядность и интерактивность обучения, проводить ранее недоступные практические и экспериментальные работы по разработке программных продуктов.
Проведен эксперимент влияния инновационных технологий на развитие познавательного интереса у учебной группы и спроектирована программа профессиональной подготовки. Спроектированы технологии по дисциплине: Объектно-ориентированное программирование и технологии разработки программного обеспечения, а также спроектировано лабораторное занятие с приведением и разъяснением учебного материала.
3. ПРОГРАММА ДЛЯ ЭВМ КАК ОБЪЕКТ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ
3.1. Право авторства на программу для ЭВМ
Совокупность сведений, систематизированных для поиска и обработки с помощью ЭВМ (компьютеров), является необходимым элементом развития информационно-коммуникационного рынка. Как и большинство интеллектуальных разработок, создание программы для ЭВМ требует значительного творческого труда. А от изготовителя - существенных временных и иных затрат.
Статья ГК РФ Статья 1261. дает следующее определение объекту интеллектуальной деятельности, связанному с ИКТ:
Авторские права на все виды программ для ЭВМ (в том числе на операционные системы и программные комплексы), которые могут быть выражены на любом языке и в любой форме, включая исходный текст и объектный код, охраняются так же, как авторские права на произведения литературы. Программой для ЭВМ является представленная в объективной форме совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств в целях получения определенного результата, включая подготовительные материалы, полученные в ходе разработки программы для ЭВМ, и порождаемые ею аудиовизуальные отображения [57].
Таким образом, непременно должны быть выполнены следующие условия:
Наличие совокупности материалов. Отсутствие либо наличие у них автора не имеют значения.
Систематизация информации.
Подбор и расположениеданных и команд, предназначенных для функционирования ЭВМ должны являться результатом творческой деятельности составителя.
Комплексное программно-аппаратное решение, позволяющее работать с совокупностью сведений, используя современные ЭВМ.
Несмотря на неразрывную связь софта, используемого для создания программы для ЭВМ, программные решения могут самостоятельно подпадать под правовую защиту действующего законодательства [58].
Для определения охраноспособности программы для ЭВМ не имеют значения ни потребительские характеристики, ни назначение собранных материалов, ни их ценность. Не важно, с какой целью создавалась программа, полностью ли она соответствует заявленным характеристикам, точны ли представленные в ней сведения. Даже не имеет значения, представляет ли она коммерческий интерес.
Любому объекту авторского права присущ творческий характер, который всегда презюмируется (т. е. доказать его отсутствие можно только через суд). Это правило распространяется и на программы для ЭВМ, тем более, закон раскрывает, что сущность творческой деятельности создателя программы состоит в правильной подборке и размещении операторов и команд.
Создатель приобретает личные неимущественные права, а правообладатель – исключительное. Последний получает возможность использовать интеллектуальную собственность и извлекать из этого материальную выгоду.
Для предоставления государственной услуги в части приема заявок на государственную регистрацию программы для ЭВМ или базы данных, их регистрации, проверки и выдачи свидетельств заявителем представляются следующие документы:
Заявление о государственной регистрации программы для ЭВМ или базы данных с указанием правообладателя, а также автора, если он не отказался быть упомянутым в качестве такового;
2. Депонируемые материалы, идентифицирующие программу для ЭВМ или базу данных, включая реферат;
3. Подтверждение согласия на обработку персональных данных субъектов персональных данных, указанных в заявлении о государственной регистрации программы для ЭВМ или базы данных;
4. Документ, подтверждающий согласие автора на указание сведений об авторе, указанных в заявлении;
5. Документ, подтверждающий уплату государственной пошлины в размере и порядке, предусмотренных Налоговым кодексом Российской Федерации, может быть представлен с документами по собственной инициативе заявителя.
Максимальный срок предоставления государственной услуги в части государственной регистрации программы для ЭВМ или базы данных и выдачи свидетельства составляет шестьдесят два рабочих дня с даты приема заявки.
В магистерской диссертации автора была разработана программа для ЭВМ, проиллюстрированная на примере определения площади лесных пожаров на территории РФ. Программа разработана при помощи объектно-ориентированного программирования для дальнейшего применения в рамках дисциплины Объектно-ориентированное программирование и технологии разработки программного обеспечения, которая читается на кафедре информационных систем. Эти рекомендации будут очень важны для модернизации изучения дисциплины. Заявление о государственной регистрации программы для ЭВМ В Федеральную службу по интеллектуальной собственности (Роспатент) расположено в приложении.
3.2. Охраноспособность программы для ЭВМ и ее отдельных элементов
Действующим законодательством программы отнесены к результатам интеллектуальной деятельности, которым предоставляется правовая охрана. Очевидно, однако, что не любая программа для ЭВМ может получить охрану.
Одним из основных критериев охраноспособности программы для ЭВМ, как и других объектов авторского права, является ее оригинальность. Ни в международных нормативных актах, ни в ГК РФ требование оригинальности не выражено прямо. Оригинальность рассматривается не как самостоятельное свойство объекта, а в качестве выражения определенной внутренней связи, которая существует между субъектом (автором) и объектом (произведением). В соответствии с п. 1 ст. ГК РФ Статья 1228 автором результата интеллектуальной деятельности признается гражданин, творческим трудом которого создан такой результат. Таким образом, оригинальность является существенной характеристикой и одновременно критерием охраноспособности произведения в силу презумпции способа его создания – интеллектуальными и творческими усилиями физического лица.
Отнесение программы для ЭВМ к составным произведениям определяет особенности применения критерия оригинальности. Если авторские права на программу для ЭВМ касаются только подбора или расположения материалов (п. 2 ст. 1393 ГК РФ), значит, и критерий оригинальности может быть применен только в отношении указанных характеристик программы.
Само по себе наличие требования оригинальности не проясняет вопроса об охраноспособности программы для ЭВМ. Необходимы, следовательно, содержательные пояснения, касающиеся применения данного критерия. Поскольку закон не дает расшифровки понятия творческого труда, вопрос оценки оригинальности того или иного произведения остается на усмотрение суда. В наиболее сложных случаях, требующих специальных знаний, суд вправе обратиться к экспертамHYPER13 HYPERLINK "" \l "gads_btm" HYPER15. Однако чаше всего суд самостоятельно решает данный вопрос, опираясь на существующую доктрину авторского права и опыт, накопленный в судебной практике.
Прежде всего, оригинальным может считаться только самостоятельное произведение. Творчество и плагиат – несовместимые понятия. Произведение, защищаемое авторским правом, следовательно, не может быть копией или простым повторением другого произведения.
Другим критерием (который одними авторами рассматривается как производный от критерия оригинальности, а другими – как самостоятельный) является новизна. По сравнению с применением его в сфере промышленной собственности применение данного критерия в авторском праве требует большей осторожности. Прежде всего необходимо четко установить, в отношении какого элемента произведения должен использоваться данный критерий. Для признания произведения охраноспособным не требуется, например, чтобы в произведении раскрывалась новая тема или использовался новый сюжет, так как охраноспособным произведение в рамках авторского права делает не его содержание, а его форма; новизна в этом отношении имеет значение только применительно к форме выражения произведения.
Как и оригинальность, новизна программы для ЭВМ находит свое выражение в подборе или расположении материалов. Под новизной обыкновенно понимают нетривиальность произведения. Какой дополнительный смысл имеет критерий новизны в оценке оригинальности произведения, становится ясным. Произведение не только не должно копировать другие произведения, оно также не должно воспроизводить то, что является очевидным, вошло в общее употребление. Таким образом, чтобы считаться автором программы для ЭВМ, ее создатель, во-первых, не может заимствовать структуру или подбор материалов у иной авторской программы, а во-вторых, не может расположить или подобрать материалы так, как это делается обычно, тем способом, который используется повсеместно. В противном случае его программа не будет защищаться авторским правом. То, что было своеобразным в момент своего создания, в дальнейшем может утерять это качество, а вместе с ним свою новизну и оригинальность. Последнее замечание имеет прямое отношение к программам для ЭВМ. Эффективные и оригинальные с дизайнерской точки зрения решения нередко становятся образцами, моделями, оригинальная черта становится обычной вещью. В этой связи соответствие объекта указанным критериям должно проверяться по состоянию на момент создания программы.
Спорная программа представляет собой изложение информационного материала в виде таблицы, в которой горизонтальные колонки несут информацию о репертуаре развлекательных учреждений, учреждений досуга и пр. с вертикальной разбивкой по дням недели. Нельзя признать обоснованным довод подателя жалобы о том, что ее оригинальность выражается в том, что информация располагается, начиная с пятницы. Одного этого признака недостаточно для признания того, что программа создана в результате творческого труда и является оригинальной и новой по отношению к размещению информации подобного рода в других изданиях.
Следует подчеркнуть, что экономическая и даже культурная ценность программы для ЭВМ не может служить критерием ее охраноспособности. Точно так же на охраноспособность программы не влияют цель ее создания и область применения. Как и в отношении иных произведений, здесь действует общее правило, согласно которому охрана программ для ЭВМ осуществляется независимо от их достоинств и назначения (п. 2 ст. 1270 ГК РФ).
Помимо критериев охраноспособности программы для ЭВМ следует выделить также условия охраноспособности, к которым относятся временные и территориальные ограничения авторского права. Так, программа для ЭВМ, созданная иностранным гражданином и обнародованная за пределами Российской Федерации, получает правовую охрану на территории Российской Федерации в соответствии с заключенными нашей страной международными договорами или иными международными актами, к которым присоединилась Российская Федерация. Как указывалось выше, автор произведения (его правообладатель) определяется по закону государства, на территории которого имел место юридический факт, послуживший основанием для приобретения авторских прав (п. 3 ст. 1388 ГК ЛНР).
3.3. Способы защиты прав на программу для ЭВМ
Способы защиты могут быть разделены на общие (универсальные, применяемые ко всем видам гражданских прав) и специальные (ориентированные на конкретные виды гражданских прав); юрисдикционные (требующие участия уполномоченных государственных органов) и неюрисдикционные (осуществляемые лицом без обращения к уполномоченным государственным органам) и т.д.
Перечень способов защиты общего характера дан в ст. 1252 ГК РФ:
признание права;
восстановление положения, существовавшего до нарушения права, и пресечение действий, нарушающих право или создающих угрозу его нарушения;
признание оспоримой сделки недействительной и применение последствий ее недействительности, применение последствий недействительности ничтожной сделки;
признание недействительным решения собрания;
признание недействительным акта государственного органа или органа местного самоуправления;
самозащита права;
присуждение к исполнению обязанности в натуре;
возмещение убытков;
взыскание неустойки;
компенсация морального вреда;
прекращение или изменение правоотношения;
неприменение судом акта государственного органа или органа местного самоуправления, противоречащего закону.
Данный перечень не является закрытым (можно упомянуть, например, такой важный способ, как публикация решения суда о допущенном нарушении), однако большинство других способов защиты, как правило, не будут носить универсального характера.
Признание права является важным способом защиты в первую очередь авторских прав – там, где возникает вопрос об авторстве. Признание имущественных прав в отрыве от личных неимущественных прав имеет гораздо меньшее значение. Для признания права как способа защиты необходимо участие суда.
Следующие четыре способа связаны с принятием судом решения, изменяющего правоотношения сторон. Суд может, например, принять решение о запрете распространения экземпляров программы для ЭВМ, признать сделку об отчуждении исключительного права или о предоставлении права на использование программы по лицензионному договору и т.д.
Самозащита как способ защиты права может применяться к программам для ЭВМ даже чаще, чем к обычным объектам. Связано это с неимущественной природой объекта и его тесной связью с программным обеспечением. Правообладатель может контролировать использование программы и, например, с помощью технических средств защиты авторских и смежных прав, пресекать несанкционированный доступ к программе, выход за пределы разрешенного использования и т.д. Однако во всех случаях его действия должны быть соразмерны нарушению – правообладателю не следует создавать для пользователя неудобств больше, чем требуется для пресечения конкретного нарушения.
3.4. Выводы к разделу интеллектуальной собственности
С широким распространением компьютерной техники и совершенствованием телекоммуникаций программа для ЭВМ стала товаром. Это значит также, что программа в настоящее время – объект правовых отношений.
В разделе исследованы наиболее актуальные вопросы, касающиеся правоотношений в области создания и использования программ для ЭВМ, а также защиты прав и охраняемых законом интересов правообладателей данных нематериальных благ.
В результате проведенного исследования можно сформулировать следующие общие выводы:
необходимость и значимость вопросов правовой охраны и защиты прав на программу для ЭВМ обусловлена высоким уровнем пиратства и наличием контрафактных экземпляров на рынке ПО, недобросовестной конкуренцией, необходимостью защиты деловой репутации и т. д.;
основной задачей в рамках правовой охраны и защиты интеллектуальной собственности на программу для ЭВМ является разработка эффективных мер защиты объектов интеллектуальной собственности на интенсивно развивающемся рынке программных продуктов.
ВЫВОДЫ
В результате работы разработано дерево целей, в котором четко описаны все этапы выполнения магистерской диссертации, применен метод анализа иерархий для выбора наилучшего программного решения в данный момент на современном информационном рынке, а также изучены аспекты актуальности обеспечения пожарной безопасности на территории РФ, в частности программные средства для мониторинга лесных пожаров. Проведен сравнительный анализ синтаксиса и семантики методов объектно-ориентированного программирования на языках программирования Delphi и C#.
Результатом работы являются:
программа для расчета площади многоугольника, проиллюстрированная на примере определения площади лесных пожаров на территории РФ (17,3 Мб);
программа в Delphi по определению площади многоугольника, разработанная для транслирования в язык C# (385 Кб);
транслированная программа по определению площади многоугольника в C# (136 Кб).
Исследования, проведенные в данной области, позволили разработать новый учебный дидактический материал, который позволяет активизировать работу студентов, повысить их вовлеченность по дисциплине Объектно-ориентированное программирование и технологии разработки программного обеспечения.
На основе анализа научных источников, изучения существующих подходов к обучению информатике, а также мультимедийному пособию, появилась возможность сделать процесс обучения студентов по дисциплине Объектно-ориентированное программирование и технологии разработки программного обеспечения более интересным и инновационным благодаря внедрению в учебный процесс деловой игры с использованием разработанного программного продукта.
Проведен эксперимент влияния инновационных технологий на развитие познавательного интереса у учебной группы и спроектирована программа профессиональной подготовки. Спроектированы технологии по дисциплине: Объектно-ориентированное программирование и технологии разработки программного обеспечения, а также спроектировано лабораторное занятие с приведением и разъяснением учебного материала.
В разделе интеллектуальной собственности исследованы наиболее актуальные вопросы, касающиеся правоотношений в области создания и использования программ для ЭВМ, а также защиты прав и охраняемых законом интересов правообладателей данных нематериальных благ.
Рассмотрены вопросы защиты программ для ЭВМ, заполнено заявление для регистрации программы для ЭВМ в федеральную службу по интеллектуальной собственности РФ.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Моё образование. [Электронный ресурс]: Режим доступа: (дата последнего посещения 11.02.2021).
vc.ru — крупнейшая в рунете платформа для предпринимателей и высококвалифицированных специалистов. [Электронный ресурс]: Режим доступа: (дата последнего посещения 11.02.2021).
Вести. [Электронный ресурс]: Режим доступа: (дата последнего посещения 11.02.2021).
Догадин, Н.Б. Архитектура компьютера. – М.: Лаборатория знаний, 2015. – 274 с.
Мазаник, С.А. Безопасность компьютера. Защита от сбоев, вирусов и неисправностей. – М.: Эксмо, 2014. – 256 с.
Сообщество менеджеров. [Электронный ресурс]: Режим доступа: Дерево_целей (дата последнего посещения 19.01.2020).
Соломенчук, В.Г. Аппаратные средства PC. – М.: ВНУ, 2010. – 800с.
Газаров, А.Ю.Устранение неисправностей и ремонт ПК своими руками. – СПб.: Питер, 2012. – 280 с.
Колисниченко, Д.А. Компьютер. Большой самоучитель по ремонту, сборке и модернизации. – М.: Инфра-М, 2010. – 450 с.
Мюллер С. Модернизация и ремонт ПК, 19 изд.: Пер. с англ. – М.: ООО Издательский дом "Вильямс", 2011. – 1072 с.: ил.
Яшин В.Н. Информатика: аппаратные средства персонального компьютера: Учеб. пособие / – М.: ИНФРА-М, 2008. —254 с. — (Высшее образование).
Леонтьев, В.П. Новейшая энциклопедия. Компьютер и Интернет 2013 / Леонтьев Виталий Петрович. - М.: Олма Медиа Групп, 2012. -785c.
Википедия свободная энциклопедия. [Электронный ресурс]: Режим доступа: Метод_анализа_иерархий (дата последнего посещения 19.01.2020)
Степаненко О.С. Сборка компьютера. – М.: ООО Издательский дом "Вильямс", 2009. – 544 с.: ил.
Таненбаум Э. Архитектура компьютера. 5-е изд. (+CD). – СПб.: Питер, 2007. – 2007. – 844 с. : ил.
Мюллер С. Модернизация и ремонт ноутбуков. : Пер. с англ. - М. : Издательский дом "Вильямс", 2006. - 688 с.: ил. - Парал. тит. англ.
Гук М.Ю. Аппаратные средства IBM PC. Энциклопедия. – 3 изд. – СПб.: Питер, 2006. – 1072 с.: ил.
Климов, А.П. Железо ПК. Народные советы / Александр Климов. - М.: БХВ-Петербург, 2014. -684c.
Ревич, Ю.О. 1001 совет по обустройству компьютера / Юрий Ревич. - М.: БХВ-Петербург, 2012. -276c.
Рыбаков, М.А. Анатомия персонального компьютера. – М.:Интермеханика, 1990. – 220с
Фигурнов, В.Э. IBM PC для пользователя. – М.: Инфра-М, 1999. – 640с.
Авдеев, В. А. Периферийные устройства: интерфейсы, схемотехника, программирование. - М.: ДМК Пресс, 2012. -680c.
Яшин В.Н. Информатика: аппаратные средства персонального компьютера: Учеб. пособие / – М.: ИНФРА-М, 2008. - 254 с.
Ватаманюк А.И. Обслуживание и настройка компьютера. – СПб.: Питер, 2009. – 384 с.: ил.
Соломенчук В.Г. Железо ПК 2010. – СПб.: БХВ-Петербург, 2010. – 448 с.
Симонович С.В., Евсеев Г.А. Компьютер и уход за ним: Практическое руководство по эффективному обслуживанию компьютера. – М.: АСТ_ПРЕСС КНИГА: Издательство Развитие, 2004. – 576 с.
Дьяченко В.К. Организационная структура учебного процесса. — М., 1989. – 286 с.
Громкова, М.Т. Педагогика высшей школы: Учебное пособие / М.Т. Громкова. — М.: ЮНИТИ, 2013. – 447 c.
Прохоров А. М. Высшее образование // Большая советская энциклопедия: [в 30 т.] / гл. ред. А. М. Прохоров. – 3-е изд. – М.: Советская энциклопедия, 1969 – 1978.
Дивногорцева, С.Ю. Теоретическая педагогика. В 2-х т. Т. 2. Теория обучения. Управление образовательными системами: Учебное пособие / С.Ю. Дивногорцева. – М.: ПСТГУ, 2012. – 262 c.
Гражданский кодекс Луганской Народной Республики от 8.10.2018 № 265-II (ред. от 03.03.2021 № 254-III) – 890 с.
Близнец И.А., Право интеллектуальной собственности: учебник / Близнец И.А., Гаврилов Э.П., Добрынин О.В., Леонтьев К.Б., Мухамедшин И.С., Орлова В.В., Синельникова В.Н., Тыцкая Г.И. - М.: Проспект, 2016. – 896с.
Остапенко Г.Ф., Управление интеллектуальной собственностью: Учебное пособие для магистров / Г.Ф. Остапенко, В.Д. Остапенко - М.: Дашков и К, 2016. - 160 с.
Рожкова М.А., Интеллектуальная собственность: основные аспекты охраны и защиты: учебное пособие / М.А. Рожкова. - М.: Проспект, 2015. – 1865 с.
Тон В.В., Основы патентоведения / Тон В.В. - М.: МИСиС, 2016. – 78с.
Бирюков А.А., Право интеллектуальной собственности: просто о сложном / Бирюков А.А. - М.: Проспект, 2017. – 144 с.
Близнец И.А., Интеллектуальная собственность в современном мире / Близнец И.А. - М.: Проспект, 2017. – 672 с.
Вишнякова И.В., Авторское право: учебное пособие / И.В. Вишнякова – Казань: Издательство КНИТУ, 2017. – 112 с.
Ларионов И.К., Защита интеллектуальной собственности: Учебник для бакалавров / Под ред. проф. И.К. Ларионова, доц. М.А. Гуреевой, проф. В.В. Овчинникова. – М.: Дашков и К, 2016. – 256 с.
Рожкова М.А., Международные договоры в сфере интеллектуальной собственности (актуальный обзор многосторонних соглашений) - сборник международных договоров: учебное пособие / Рожкова М.А., Афанасьев Д.В. – М.: Статут, 2017. – 768 с.
Энтин В.Л., Интеллектуальная собственность в праве Европейского Союза / Энтин В.Л. – М.: Статут, 2018. – 174 с.
Гражданский кодекс Российской Федерации (часть первая) от 30.11.1994 № 51-ФЗ (ред. от 29.12.2022) (с изм. и доп. от 06.08.2021) [Электронный ресурс] // Справочная правовая система Консультант плюс (дата обращения: 12.05.2023).
Гражданский кодекс Российской Федерации (часть вторая) от 26.01.1996 № 14-ФЗ (ред. от 28.12.2022) [Электронный ресурс] // Справочная правовая система Консультант плюс (дата обращения: 12.05.2023).
Гражданский кодекс Российской Федерации (часть третья) от 01.11.2001 № 156-ФЗ (ред. от 18.03.2022) [Электронный ресурс] // Справочная правовая система Консультант плюс (дата обращения: 21.05.2023).
Гражданский кодекс Российской Федерации (часть четвертая) от 24.11.2006 № 318-ФЗ (ред. от 11.06.2022) [Электронный ресурс] // Справочная правовая система Консультант плюс (дата обращения: 22.05.2023).
ПРИЛОЖЕНИЕ 1
Листинг программного кода проекта
unit uPolygons;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, uMath;
const
GRID_WIDTH = 1; // толщина линии координатной сетки
AXIS_WIDTH = 2; // толщина линии осей координат
POLY_WIDTH = 1; // толщина линии полигона
TRI_WIDTH = 1; // толщиан линии треугольника
SZ_POINT = 4; // половина размера вершины
MM_INCH = 25.4; // миллиметров в дюйме
MUL_DEC = 10; // коэффициент масштабирования логических единиц (мм)
SZ_FONT_AXIS = 12; // размер шрифта надписей координатных осей
type
// вершина
pVertex =^tVertex;
tVertex = record
point : tPoint; // координаты мыши
coor : tDoublePoint; // мм
end;
// треугольник
pTriangle = ^tTriangle;
tTriangle = record
color : tColor; // цвет
vertex : array[0..2]of pVertex; // вершины
end;
// базовый класс для объектов
tDrawObject = class(tList)
protected
fOwner : tDrawObject; // владелец
fCanvas : tCanvas; // холст
public
visible : bool; // видимость
colorLine : tColor; // цвет линий
colorLineSelect : tColor; // цвет выделенной линии
colorBrush : tColor; // цвет кисти
colorBrushSelect : tColor; // цвет кисти выделения
procedure ReCalc();virtual;abstract; // пересчёт координат (абстрактный)
procedure render;virtual;abstract; // отрисока объекта (абстрактный)
end;
// список вершин
tDrawVertices = class(tDrawObject)
protected
fClosed : bool; // полигон замнкут
fSquare : double; // площадь мм
fPxSquare : double; // площадь в pix
function next_item(item : pVertex) : pVertex; // получить следующий элемент списка (в круговую)
function get_vertex(index : uint32) : pVertex; // получить указатель на вершину
function vertices_in_triangle(var a,b,c : tDoublePoint):bool; // проверка всех вершин на попадание
public // в треугольник
ItemIndex : int32; // индекс выделенной вершины (-1 не выделено)
constructor Create(own : tDrawObject);
procedure render();override; // отрисовка
procedure ReCalc();override; // пересчёт площади
function FindVertex(t : tDoublePoint):int32; // поиск вершины по координатам
function addVertex(t : tDoublePoint):uint32; // добавить вершину
property vertex[index : uint32] : pVertex read get_vertex;default;
property closed : bool read fClosed; // замкнуто (если = true)
property square : double read fSquare; // площадь в мм2
property pxSquare : double read fPxSquare; // площадь в пикc.кв.
end;
// список треугольников
tDrawTriangles = class(tDrawObject)
protected
function get_triangle(index : uint32):pTriangle; // указатель на треугльник
public
constructor Create(own : tDrawObject);
procedure render();override; // отрисовка треугольников
procedure setColors(); // генерация цветов
property triangle[index : uint32]:pTriangle read get_triangle;// треугольник
end;
// полигон (Основной класс)
tDrawPolygon = class(tDrawObject)
protected
fTriangles : tDrawTriangles; // треугольники
fVertices : tDrawVertices; // вершины
fPixCoor : tPoint; // текущая коордната pix
fLogCoor : tDoublePoint; // текущая коордната мм
fKoeff : double; // коэфф. преобразования pix в мм
fKoeffConv : double; // коэфф. преобразования мм в pix
fCenter : tPoint; // коорд. центра окна pix
fWidth : uint32; // ширина окна
fHeight : uint32; // высота окна
procedure set_pix_coor(t : tPoint);
procedure draw_axis(); // отрисовка осей координат
procedure draw_grid(); // отрисока коорд. сетки
procedure draw_polygon(); // отрисовка полигона
procedure Recalc();override; // пересчёт площади
public // флаги видимости:
visibleGrid : bool; // сетка
visibleAxis : bool; // оси
visiblePolygon : bool; // полигон
colorAxis : tColor; // цвет коорд. осей
colorGrid : tColor; // цвет сетки
constructor Create(canv : tCanvas);
procedure Resize(w,h : uint32); // перегрузка размеров окна
function addTriangle(a,b,c : pVertex):bool; // добавление треуголника
procedure render();override; // прорисовка полигона (главная процедура)
function calculate():bool; // пересчёт координат
procedure Triangulate(counterWise : bool); // триангуляция, counterWise - признак направления обхода
function checkIntersect(var a : tDoublePoint):bool; // проверка на самопеерсечение
function checkIntersectClose():bool; // проверка на самопеерсечение при замыкании полигона
function logToPix(log : tDoublePoint):tPoint; // перевод мм в пиксели
function PixToLog(pix : tPoint):tDoublePoint; // пеервод пикселей в мм
procedure clear(); // очистка полигона
property vertices : tDrawVertices read fVertices; // вершины
property triangles : tDrawTriangles read fTriangles; // треугольники
property pixCoor : tPoint read fPixCoor write set_pix_coor; // текущ. коорд. от мыши пикс.
property logCoor : tDoublePoint read fLogCoor; // текущ. коорд.от мыши мм
end;
var
poly : tDrawPolygon; // полигон, глобальная переменная
implementation
// tDrawPolygon ---------------------------------------
constructor tDrawPolygon.Create(canv : tCanvas);
begin
inherited Create();
fCanvas := canv;
fVertices := tDrawVertices.Create(self); // вершины
fTriangles := tDrawTriangles.Create(self); // треугольники
fTriangles.visible := true;
// получить текущее разрешение (монитора) по вертикали в пикс.
// и рассчитать коээфициенты перевода мм->пикс, пикс->мм
fKoeffConv := GetDeviceCaps(fCanvas.Handle, LOGPIXELSY)/MM_INCH; // мм->пикс
fKoeff := 1/fKoeffConv; // пикс->мм
colorAxis := clBlue;
colorBrush := clWhite;
colorLine := clRed;
visibleGrid := true;
visibleAxis := true;
visiblePolygon := true;
end;
procedure tDrawPolygon.render();
begin
if triangles.visible then triangles.render();
if visibleGrid then draw_grid();
if visibleAxis then draw_axis();
if visiblePolygon then draw_polygon();
if vertices.visible then vertices.render();
end;
procedure tDrawPolygon.Resize(w,h : uint32);
begin
fCenter := Point(w shr 1, h shr 1);
fWidth := w;
fHeight := h;
fCenter := Point(w shr 1,h shr 1);
ReCalc();
end;
procedure tDrawPolygon.ReCalc();
var
i : uint32;
begin
if vertices.Count > 0 then
for i:=0 to vertices.Count-1 do
vertices[i].point := LogToPix(vertices[i].coor);
end;
procedure tDrawPolygon.clear();
begin
fTriangles.Clear();
fVertices.Clear();
fVertices.fClosed := false;
fVertices.fSquare := 0.0;
fVertices.fPxSquare := 0.0;
end;
// триангуляция
procedure tDrawPolygon.Triangulate(counterWise : bool);
// counterWise = true - обход по часовой
// counterWise = false - обход по часовой
var
index : uint32; // индекс первой вершины предполагаемого треугольника
tmp_lst : tDrawVertices; // вспомогательный список
a,b,c : pVertex; // вершины треугольника
begin
tmp_lst := tDrawVertices.Create(self); // вспомогательный список вершин
if counterWise then // если направление обхода по часовой
tmp_lst.Assign(fVertices, laCopy) // копируем вершины во вспом. список в том же порядке
else // если направление обхода против часовой
for index :=0 to fVertices.Count-1 do // копируем во вспом. список в обратном порядке
tmp_lst.Add(fVertices.Items[fVertices.Count - 1 - index]);
index := 0;
// цикл пока вспомог. список не пуст
while tmp_lst.Count > 0 do
begin
if index > tmp_lst.Count-1 then break; // проверка выхода индекса за пределы списка
a := tmp_lst[index];
b := tmp_lst.next_item(a); // следующая вершина после a
c := tmp_lst.next_item(b); // следующая после b
if addTriangle(a,b,c) then
begin // если треугольник успешно добавлен, то
tmp_lst.Remove(b); // вершину b исключаем из вспомог. списка
index := 0; // и анчинаем с первой вершины в списке
end else inc(index); // иначе переходим к следующей по списку
end;
fTriangles.setColors(); // генерируем цвета треугольнкиов
tmp_lst.Destroy(); // удаляем вспомог. список
end;
// добавление треугольника
function tDrawPolygon.addTriangle(a,b,c : pVertex):bool;
var
p : pTriangle;
begin
Result := false;
// проверка левой тройки векторов (смешанное произведение)
if cross_product(a.coor, b.coor, c.coor) < 0 then
// проверка на вхождение вершин списка в добавляемый треуголник
if not vertices.vertices_in_triangle(a.coor, b.coor, c.coor) then
begin
new(p);
p.vertex[0] := a;
p.vertex[1] := b;
p.vertex[2] := c;
fTriangles.Add(p);
Result := true;
end;
end;
// пересчёт координат и площади
function tDrawPolygon.Calculate():bool;
var
i : uint32;
begin
Result := false;
if vertices.Count = 0 then exit;
// преобразуем мм в пиксели
for i:=0 to vertices.Count-1 do
vertices[i].point := LogToPix(vertices[i].coor);
if vertices.Count < 3 then exit;
// расчёт площади
vertices.ReCalc();
// триангуляция
Triangulate(vertices.square > 0); // обход по часовой/против часовой (в зависимости от знака площади)
Result := true;
end;
// отрисовка полигона
procedure tDrawPolygon.draw_polygon();
var
i : uint32;
begin
if vertices.Count = 0 then exit;
with fCanvas do
begin
Pen.Color := colorLine;
Pen.Style := psSolid;
Pen.Width := POLY_WIDTH;
Brush.Style := bsClear;
MoveTo(vertices[0].point.X, vertices[0].point.y);
// отрисовка линий
for i:=1 to vertices.Count-1 do
LineTo(vertices[i].point.X, vertices[i].point.Y);
// если замкнут, рисуем замыкающую линию
if vertices.fClosed then LineTo( vertices[0].point.X, vertices[0].point.Y);
end;
end;
// координатная сетка
procedure tDrawPolygon.draw_grid();
var
i,j,cnt, step : uint32;
coor : tPoint;
begin
with fCanvas do
begin
Brush.Color := colorBrush;
Pen.Style := psDot;
Pen.Color := colorGrid;
Pen.Width := GRID_WIDTH;
step := round(MUL_DEC * fKoeffConv);
// все линии сетки рисуются от центра
// вертикальные линии
cnt := round(fWidth * fKoeff /(MUL_DEC * 2)); //
количество шагов
coor := Point(fCenter.X,fHeight-1); // начальная координата
for i:=0 to cnt-1 do
begin
MoveTo(coor.X + step*i, coor.Y);
LineTo(coor.X + step*i, 0);
MoveTo(coor.X - step*i, coor.Y);
LineTo(coor.X - step*i, 0);
end;
// горизонтальные линии
cnt := round(fHeight * fKoeff /(MUL_DEC * 2));
coor := Point(fWidth-1, fCenter.Y);
for i:=0 to cnt-1 do
begin
MoveTo(coor.X, coor.Y + step*i);
LineTo(0, coor.Y + step*i);
MoveTo(coor.X, coor.Y - step*i);
LineTo(0, coor.Y - step*i);
end;
end;
end;
// shl - сдвиг влево, shl 1 эквивалентен умножению на 2, shl 2 = * 4, shl 3 = *8 и т.д.
// shr - сдвиг вправо, shr 1 эквивалентен целочисленному делению на 2, shr 2 = /4, shr 3 = /8 и т.д.
// оси координат с засечками и подписями
procedure tDrawPolygon.draw_axis();
var
sz : uint32;
step : uint32;
coor : tPoint;
i,cnt : int32;
old_fSize : int32;
old_fStyle : tFontStyles;
arrow : array[0..2]of tPoint; // полигон "стрелка"
begin
with fCanvas do
begin
Brush.Color := colorBrush;
Pen.Style := psSolid;
Pen.Color := colorAxis;
Pen.Width := AXIS_WIDTH;
//ось X ============================
MoveTo(0,fHeight shr 1);
LineTo(fWidth-1,fHeight shr 1);
// засечки X
step := round(MUL_DEC * fKoeffConv);
sz := step shr 3;
cnt := round(fWidth * fKoeff /(2*MUL_DEC));
for i:=0 to cnt-1 do
begin
MoveTo(fCenter.X + step*i, fCenter.Y-sz);
LineTo(fCenter.X + step*i, fCenter.Y+sz);
MoveTo(fCenter.X - step*i, fCenter.Y-sz);
LineTo(fCenter.X - step*i, fCenter.Y+sz);
// цифры
TextOut(fCenter.X + step*i,fCenter.Y - sz shl 2, IntToStr(i*MUL_DEC));
if i > 0 then
TextOut(fCenter.X - step*i,fCenter.Y - sz shl 2, '-' + IntToStr(i*MUL_DEC));
end;
// ось Y ============================
MoveTo(fWidth shr 1,0);
LineTo(fWidth shr 1,fHeight - 1);
// засечки Y
cnt := round(fHeight * fKoeff /(2*MUL_DEC));
for i:=0 to cnt-1 do
begin
MoveTo(fCenter.X - sz, fCenter.Y + step*i);
LineTo(fCenter.X + sz, fCenter.Y + step*i);
MoveTo(fCenter.X - sz, fCenter.Y - step*i);
LineTo(fCenter.X + sz, fCenter.Y - step*i);
// цифры
if i > 0 then
begin
TextOut(fCenter.X + sz,fCenter.Y - step*i, IntToStr(i*MUL_DEC));
TextOut(fCenter.X + sz,fCenter.Y + step*i, '-' + IntToStr(i*MUL_DEC));
end;
end;
// стрелки
Brush.Color := colorAxis;
// стрелка X
arrow[0] := Point(fWidth, fHeight shr 1);
arrow[1] := Point(fWidth - sz shl 2,fHeight shr 1 - sz);
arrow[2] := Point(fWidth - sz shl 2,fHeight shr 1 + sz);
Polygon(arrow);
// стрелка Y
arrow[0] := Point(fWidth shr 1, 0);
arrow[1] := Point(fWidth shr 1 + sz, 1 + sz shl 2);
arrow[2] := Point(fWidth shr 1 - sz, 1 + sz shl 2);
Polygon(arrow);
// сохранаям ьекущие параметры шрифта
old_fSize := Font.Size;
old_fStyle := Font.Style;
Brush.Style := bsClear;
Font.Size := SZ_FONT_AXIS;
Font.Style := [fsBold];
TextOut(fWidth - sz shl 4,fHeight shr 1 - sz shl 3,'X');
TextOut(fWidth shr 1 + sz shl 1, 1 + sz shl 2,'Y');
// восстанавливаем текущие параметры шрифта
font.Style := old_fStyle;
Font.Size := old_fSize;
Brush.Style := bsSolid;
end;
end;
procedure tDrawPolygon.set_pix_coor(t : tPoint);
begin
fPixCoor := t;
fLogCoor := PixToLog(t);
end;
// перевод пикселей в мм
function tDrawPolygon.logToPix(log : tDoublePoint):tPoint;
begin
Result.X := round(log.x * fKoeffConv) + fCenter.X;
Result.Y := fCenter.Y - round(log.y * fKoeffConv);
end;
// перевод мм в пиксели
function tDrawPolygon.PixToLog(pix : tPoint):tDoublePoint;
begin
Result.x := (pix.X - fCenter.X) * fKoeff;
Result.y := (fCenter.Y - pix.y) * fKoeff;
end;
// проверка пересечения линии с добавляемой вершиной со всеми сторонами полигона
function tDrawPolygon.checkIntersect(var a : tDoublePoint):bool;
var
i,cnt : uint32;
begin
Result := false;
cnt := vertices.Count;
if (cnt < 2) or vertices.fClosed then exit;
for i:=1 to cnt-1 do
begin
Result :=
intersect_lines(a ,vertices[cnt-1].coor,
vertices[i-1].coor , vertices[i].coor);
if Result then exit;
end;
end;
// проверка пересечния азамыкающей линии со всеми сторонами полигона
function tDrawPolygon.checkIntersectClose():bool;
var
i,cnt : uint32;
begin
Result := false;
cnt := vertices.Count;
if (cnt < 2) or vertices.fClosed then exit;
for i:=1 to cnt-1 do
begin
Result :=
intersect_lines(vertices[0].coor,vertices[cnt-1].coor,
vertices[i-1].coor , vertices[i].coor);
if Result then exit;
end;
end;
// tTrianglesList ------------------------------------
// треугольники
constructor tDrawTriangles.Create(own : tDrawObject);
begin
inherited Create();
fOwner := own; // владелец = полигон
end;
procedure tDrawTriangles.render();
var
i : uint32;
t : pTriangle;
c : tColor;
begin
if Count = 0 then exit;
with fOwner.fCanvas do
begin
c := brush.Color;
Pen.Color := colorLine;
Pen.Style := psSolid;
Pen.Width := TRI_WIDTH;
for i:=0 to Count-1 do
begin
t := Items[i];
Brush.Color := t.color;
Polygon([t.Vertex[0].point,
t.Vertex[1].point,
t.Vertex[2].point]);
end;
brush.Color := c;
end;
end;
function tDrawTriangles.get_triangle(index : uint32):pTriangle;
begin
Result := items[index];
end;
procedure tDrawTriangles.setColors();
var
i : uint32;
t : pTriangle;
r,g,b : byte;
begin
randomize;
for i:=0 to Count-1 do
begin
r := random(255);
g := random(255);
b := random(255);
triangle[i].color := RGB(r,g,b);
end;
end;
// tVerticesList -------------------------------------
// вершины
constructor tDrawVertices.Create(own : tDrawObject);
begin
inherited Create;
visible := true;
fClosed := false;
fSquare := 0.0;
fPxSquare := 0;
fOwner := own;
ItemIndex := -1;
colorLine := clBlack;
colorLineSelect := clBlack;
colorBrush := clWhite;
colorBrushSelect := clRed;
end;
// отрисовка вершин
procedure tDrawVertices.render();
var
i : uint32;
old_fSize : int32;
old_fStyle : tFontStyles;
begin
if Count = 0 then exit;
with fOwner.fCanvas do
begin
Pen.Width := 1;
Pen.Style := psSolid;
Pen.Color := colorLine;
Brush.Color := colorBrush;
// надписи
old_fSize := Font.Size;
old_fStyle := font.Style;
Font.Size := 12;
Font.Style := [fsBold];
for i:=0 to Count-1 do
TextOut(vertex[i].point.X + SZ_POINT shl 1, vertex[i].point.Y - SZ_POINT shl 2, GetLabelPoint(i));
// вершины
Brush.Style := bsSolid;
for i:=0 to Count-1 do
Ellipse(vertex[i].point.X - SZ_POINT, vertex[i].point.Y - SZ_POINT,
vertex[i].point.X + SZ_POINT, vertex[i].point.Y + SZ_POINT);
if (ItemIndex > - 1)and(ItemIndex < Count) then
begin
i := ItemIndex;
Pen.Color := colorLineSelect;
Brush.Color := colorBrushSelect;
Ellipse(vertex[i].point.X - SZ_POINT, vertex[i].point.Y - SZ_POINT,
vertex[i].point.X + SZ_POINT, vertex[i].point.Y + SZ_POINT);
end;
font.Style := old_fStyle;
font.Size := old_fSize;
end;
end;
// поиск вершины на совпадение координат
function tDrawVertices.FindVertex(t : tDoublePoint):int32;
var
i : uint32;
begin
Result := -1;
if Count = 0 then exit;
for i:=0 to Count-1 do
if (vertex[i].coor.x = t.x)and(vertex[i].coor.y = t.y) then
begin
Result := i;
exit;
end;
end;
// найти следующий элемент списка вершин
function tDrawVertices.next_item(item : pVertex) : pVertex;
var
ind : uint32;
begin
ind := indexOf(item);
if ind < Count-1 then Result := items[ind + 1]
else Result := items[0];
end;
// добавить вершину
function tDrawVertices.addVertex(t : tDoublePoint):uint32;
var
p : pVertex;
begin
new(p);
p.coor := t;
p.point := tDrawPolygon(fOwner).logToPix(t);
Result := Add(p);
end;
// пересчёт площадей
procedure tDrawVertices.ReCalc();
var
i : uint32;
k : double;
begin
fSquare := 0.0;
fPxSquare := 0.0;
for i:=1 to Count-1 do
fSquare := fSquare + sqr_trap(vertex[i-1].coor, vertex[i].coor);
fSquare := fSquare +
sqr_trap(vertex[Count-1].coor, vertex[0].coor);
k := tDrawPolygon(fOwner).fKoeffConv;
fPxSquare := fSquare * k * k;
fClosed := true;
end;
// проверка вершин на попадание в треугольник
function tDrawVertices.vertices_in_triangle(var a,b,c : tDoublePoint):bool;
var
i : uint32;
t : tDoublePoint;
begin
Result := false;
for i:=0 to Count-1 do
begin
t := vertex[i].coor;
if equ_points(t,a) or equ_points(t,b) or equ_points(t,c) then continue;
if point_in_triangle(a,b,c,t) then
begin
Result := true;
exit;
end;
end;
end;
function tDrawVertices.get_vertex(index : uint32) : pVertex;
begin
Result := items[index];
end;
end.
unit uPoly;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Grids, ValEdit,
CheckLst, Menus, ActnList, uMath, uPolygons;
type
// tDrawPolygon = class;
TfrmPoly = class(TForm)
Status: TStatusBar;
Actions: TActionList;
acView: TAction;
MainMenu: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
acClearPoly: TAction;
acReColor: TAction;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
acClosePoly: TAction;
N6: TMenuItem;
acProperties: TAction;
N7: TMenuItem;
PopupMenu: TPopupMenu;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
acCoors: TAction;
N13: TMenuItem;
acAddVertex: TAction;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormResize(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
// команда "Видимоть"
procedure acViewExecute(Sender: TObject);
// команда "Очистить полигон"
procedure acClearPolyExecute(Sender: TObject);
// команда "Перегрузка цветов"
procedure acReColorExecute(Sender: TObject);
// команда "Замкнуть полигон"
procedure acClosePolyExecute(Sender: TObject);
// команда "Свойства"
procedure acPropertiesExecute(Sender: TObject);
// Команда "Вершины"
procedure acCoorsExecute(Sender: TObject);
// команад "Добавить вершину"
procedure acAddVertexExecute(Sender: TObject);
// контекстное меню
procedure PopupMenuPopup(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure N23Click(Sender: TObject);
private
public
// добавление вершины
function add_vertex(t : tDoublePoint):bool;
end;
var
frmPoly: TfrmPoly;
implementation
{$R *.dfm}
uses u_View, u_Properties, u_Coors, u_InputCoor, Unit2, Unit3, Unit4,
Unit5;
// добавить вершину в полигон
function tFrmPoly.add_vertex(t : tDoublePoint):bool;
begin
Result := false;
if poly.vertices.Closed then exit; // если замкнут, выход
if poly.vertices.FindVertex(t)=-1 then // првоерка на совепадение координат
if not poly.checkIntersect(t) then // проверка добавляемой линии на пресечение
begin
poly.vertices.addVertex(t);
invalidate;
fCoors.LoadProperties(); // обновление свитков "Вершины"
fProperties.LoadProperties(); // и "Свойства"
Result := true;
end;
end;
// проерка ESC, выход если нажата
procedure TfrmPoly.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 27 then close; // ESC
end;
procedure TfrmPoly.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate;
end;
// создание полигона
procedure TfrmPoly.FormCreate(Sender: TObject);
begin
poly := tDrawPolygon.Create(Canvas);
end;
procedure TfrmPoly.FormDestroy(Sender: TObject);
begin
Application.Terminate;
end;
// прорисовка объектов
procedure TfrmPoly.FormPaint(Sender: TObject);
begin
poly.render();
end;
// обработка отжатия левой кнопки мыши
procedure TfrmPoly.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
add_vertex(poly.PixToLog(Point(x,y))); // попытка добавть вершину
end;
// перегрузка параметров при изменении размеров формы
procedure TfrmPoly.FormResize(Sender: TObject);
begin
poly.Resize(ClientWidth,ClientHeight);
Invalidate();
end;
// передача координат мыши полигону при перемещении указателя
procedure TfrmPoly.FormMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
poly.pixCoor := Point(x,y);
status.SimpleText := Format('Пиксели x: %d y: %d Миллиметры x: %.2f y: %.2f',
[poly.pixCoor.X, poly.pixCoor.Y, poly.logCoor.x, poly.logCoor.y]);
end;
//"Видимость"
procedure TfrmPoly.acViewExecute(Sender: TObject);
begin
fView.Visible := not fView.Visible;
end;
// "Очистка полигона"
procedure TfrmPoly.acClearPolyExecute(Sender: TObject);
begin
if poly.vertices.Count > 0 then
begin
poly.vertices.ItemIndex := -1;
poly.clear();
fProperties.LoadProperties();
fCoors.LoadProperties();
Invalidate();
end;
end;
// "Перегрузка цветов"
procedure TfrmPoly.acReColorExecute(Sender: TObject);
begin
if poly.triangles.Count > 0 then
begin
poly.triangles.setColors();
Invalidate();
end;
end;
// "Замкнуть полигон"
procedure TfrmPoly.acClosePolyExecute(Sender: TObject);
begin
if not poly.vertices.closed then
if not poly.checkIntersectClose then
if poly.calculate() then
begin
fProperties.LoadProperties();
Invalidate();
end;
end;
// "Свойства"
procedure TfrmPoly.acPropertiesExecute(Sender: TObject);
begin
fProperties.Visible := not fProperties.Visible;
end;
//"Вершины"
procedure TfrmPoly.acCoorsExecute(Sender: TObject);
begin
fCoors.Visible := not fCoors.Visible;
end;
// "Добавление вершины"
procedure TfrmPoly.acAddVertexExecute(Sender: TObject);
begin
fInputCoor.ShowModal;
end;
// обработка контекстного меню
procedure TfrmPoly.PopupMenuPopup(Sender: TObject);
begin
acAddVertex.Enabled := not poly.vertices.Closed;
acClosePoly.Enabled := not poly.vertices.Closed and (poly.vertices.Count > 2);
acClearPoly.Enabled := poly.vertices.Count > 0;
acRecolor.Enabled := poly.vertices.Closed;
end;
procedure TfrmPoly.N17Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TfrmPoly.N18Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TfrmPoly.N19Click(Sender: TObject);
begin
Form4.Show;
end;
procedure TfrmPoly.N20Click(Sender: TObject);
begin
Form5.Show;
end;
procedure TfrmPoly.N22Click(Sender: TObject);
begin
frmPoly.close;
WinExec('karta1.exe',SW_RESTORE);
end;
procedure TfrmPoly.N23Click(Sender: TObject);
begin
frmPoly.close;
WinExec('karta2.exe',SW_RESTORE);
end;
end.
Unit uMath;
interface
uses Windows, Messages, SysUtils, Graphics;
type
int32 = integer;
uint32 = LongWord;
// координаты в мм
pDoublePoint = ^tDoublePoint;
tDoublePoint = record
x : double;
y : double;
end;
// площадь трапеции
function sqr_trap(var a, b : tPoint):double;overload;
function sqr_trap(var a,b : tDoublePoint):double;overload;
// смешанное произведение
function cross_product(var a,b,c : tDoublePoint):double;
// пересечение отрезков
function intersect_lines(var a1,b1,a2,b2 : tDoublePoint):bool;
// попадание точки t в треугольник
function point_in_triangle(var a,b,c,t : tDoublePoint):bool;
// сравнение координат точек
function equ_points(var a,b : tDoublePoint):bool;
// генерация надписи для вершины (A..Z, AA..)
function GetLabelPoint(index : uint32): string;
// сборка координат
function DoublePoint(x,y : double):tDoublePoint;
implementation
const
ORD_A = ord('A'); // код 'A'
ORD_Z = ord('Z'); // код 'Z'
MAX_IND = ORD_Z - ORD_A;
// генерация надписи для вершины (A..Z, AA..)
function GetLabelPoint(index : uint32): string;
var
c : char;
i,n,d : int32;
begin
Result := '';
if index <= MAX_IND then
Result := chr(index + ORD_A)
else
begin
n := index div (MAX_IND + 1);
d := index mod (MAX_IND + 1);
for i:=0 to n-1 do
Result := Result + chr(i + ORD_A);
Result := Result + chr(d + ORD_A);
end;
end;
// сравнение координат 2-х вершин
function equ_points(var a,b : tDoublePoint):bool;
begin
Result := (a.X = b.X)and(a.Y = b.Y);
end;
// площадь трапеции
function sqr_trap(var a, b : tDoublePoint):double;
begin
Result := (b.X - a.X)* // высота
((a.Y + b.Y)/2); // полусумма оснований
end;
function sqr_trap(var a, b : tPoint):double;
begin
Result := (b.X - a.X)* // высота
((a.Y + b.Y)/2); // полусумма оснований
end;
// проверка 2-х отрезков на взаимопересечение
function intersect_lines(var a1,b1, a2,b2 : tDoublePoint):bool;
var
v1,v2,v3,v4 : double;
begin
v1 := (b2.x - a2.x) * (a1.y - a2.y) - (b2.y - a2.y) * (a1.x - a2.x);
v2 := (b2.x - a2.x) * (b1.y - a2.y) - (b2.y - a2.y) * (b1.x - a2.x);
v3 := (b1.x - a1.x) * (a2.y - a1.y) - (b1.y - a1.y) * (a2.x - a1.x);
v4 := (b1.x - a1.x) * (b2.y - a1.y) - (b1.y - a1.y) * (b2.x - a1.x);
Result := (v1*v2 < 0)and(v3*v4 < 0);
end;
// смешанное произведение 3-х векторов
// < 0 - правая тройка векторов
// > 0 - левая тройка векторов
function cross_product(var a, b, c : tDoublePoint) : double;
begin
Result := (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
end;
// попадание точки в треугольник
function point_in_triangle(var a,b,c, t : tDoublePoint):bool;
var
f_1,f_2,f_3 : bool;
begin
f_1 := cross_product(a,b, t) < 0.0;
f_2 := cross_product(b,c, t) < 0.0;
f_3 := cross_product(c,a, t) < 0.0;
Result := (f_1 = f_2) and (f_2 = f_3) and (f_3 = f_1);
end;
function DoublePoint(x,y : double):tDoublePoint;
begin
Result.x := x;
Result.y := y;
end;
end.
ПРИЛОЖЕНИЕ 2
Сценарий деловой игры
Тема: Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Цели деловой игры:
изучение основ разработки проектов с использованием объектно-ориентированного программированияИсследование трансляции программных кодов между языками программирования;
развить аналитическое мышление, умение формулировать проблемы и находить пути их решения;
способствовать воспитанию активной творческой личности.
Задачи:
разработка проектов с использованием объектно-ориентированного программирования;
вырабатывать навыки применениятрансляции программных кодов между языками программирования;
повысить интерес к будущей профессии за счёт выработки навыков решения задача в офисных программах.
Основные понятия: объектно-ориентированное программирование, наследование, полиморфизм, инкапсуляция, транслирование.
Форма организации учебной работы: деловая игра с использованием компьютерных технологий.
Время работы: 90 минут.
Дидактическое и материально-техническое обеспечение: мультимедийная презентация по теме, проектор, персональный компьютер.
План проведения
1. Организационный момент:
постановка задач и целей деловой игры;
актуализация опорных знаний;
опрос и проверка готовности к занятию.
2. Основной этап:
Проведение деловой игры.
3. Заключение:
Заключительная часть занятия.
Подведение итогов, награждение победителей.
Таблица 2.1 - Структура и содержание сценария деловой игры по теме Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
№ п/п
Структурные элементы занятия
Содержание структурных элементов
Действия обучающихся
1.
Вступление
Приветствие студентов, проверка их наличия на занятии.
Студенты приветствуют преподавателя.
Оглашение темы
Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Студенты слушают тему и задают организационные вопросы.
Цель занятия
-изучение основ разработки проектов с использованием объектно-ориентированного программирования Исследование трансляции программных кодов между языками программирования;
-развить аналитическое мышление, умение формулировать проблемы и находить пути их решения;
-способствовать воспитанию активной творческой личности.
Студенты изучают определения и слушают преподавателя. Осваивают особенности и назначение ООП;
Запускают программу для работы с программным кодом; ознакомление с интерфейсом и функциями.
Мотивация
Что делает ООП актуальным? Во-первых, это работает. Так или иначе, программисты научились понимать друг друга, создавать
Студенты внимательно слушают преподавателя, задают интересующие вопросы по теме занятия.
Продолжение таблицы 2.1
сложные системы и создавать абстракции при помощи паттернов. Большое число программистов начало думать в терминах ООП, большое число кода написано и протестировано. Это то, что делает ООП актуальным ещё долгое время, особенно с целью решения классических задач. Однако для задач нетривиальных, постоянно необходимо пробовать и применять новые подходы. Серебряной пули не существует. Более того, понимание подходов функционального программирования, макроязыков, алгоритмов, устройства компиляторов-интерпретаторов дают программисту неоспоримые преимущества для написания качественного и гибкого кода.
Анализ опорных знаний
1.Назовите определение класса.
2.Как осуществляется реализация собственного класса?
3.Что представляет собой наследование классов?
4.Каковы свойства объектов. Сеттеры. Геттеры?
5.Как осуществляется разработка приложения с использованием класса?
6.Каковы принципы ООП?
7.Что представляет собой полиморфизм в ООП?
8. Каковы основные операторы С# в среде программирования VsualStudio?
9. Какие способы транслирования программных кодов между языками программирования вам известны?
Студенты отвечают на вопросы преподавателя. Самые активные получают оценки.
Продолжение таблицы 2.1
2.
Основная часть
Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Студенты разбиваются на подгруппы, определяют капитана подгруппы, проводят исследование программных средств и готовых проектов, разработку этапов проекта и элементы проекта.
3.
Заключение
Подведение итогов занятия:
На текущем занятии мы сформировали знания об основных понятиях ООП, а также транслировании программных кодов
Студенты подходят к преподавателю для обсуждения игры и сравнения полученных результатов. Определяется команда-победитель.
между языками программирования. А теперь сравним проекты Ваших программ и определим победителя деловой игры.
Проведение контроля: Фронтальный опрос
Студенты отвечают на уточняющие вопросы по теме занятия.
Выдача домашнего задания:
Выучить термины и инструменты по теме.
Студенты записывают домашнее задание
ПРИЛОЖЕНИЕ 3
Социометрическое исследование
Социометрическое исследование проводилось в группе ДГ-ИТ8-1 с целью изучения индивидуальных особенностей учащихся – определение темперамента и оценки уровня общительности в коллективе студентов. Списочный состав группы – 13 человек, не все студенты принимали участие в исследовании.
По результатам ответов составлена сводная таблица 3.1.
Согласно кругу Айзенка были определены уровни стабильности-нестабильности личности, а также уровни экстраверсии-интроверсии.
Рисунок 3.1 – Характеристики личности каждого учащегося
Таблица 3.1 – Результаты проведенного тестирования учащихся
№ п/п
Фамилия / Имя
Темперамент
Оценка уровня общительности
Эмоциональная стабильность учащегося
1
Александров К.Ю.
сангвиник
12
Непостоянный
2
Внукова Е.А.
сангвиник
12
Оптимистичная
Продолжение таблицы 3.1
3
Горбунов Д.К.
сангвиник
10
Импульсивный
4
Довгаль А.В.
флегматик
6
Разговорчивый
5
Забоев А.Д.
сангвиник
10
Тихий
6
Киященко Б.Д.
холерик
14
Оптимистичный
7
Константинов А.А.
сангвиник
12
Оптимистичный
8
Лаврин Н. А.
флегматик
8
Оптимистичный
9
Лянскорунский А. В.
сангвиник
10
Тихий
10
Пшеничкина Я. Е.
сангвиник
12
Импульсивный
11
Садики М. С.
флегматик
6
Тихий
12
Ткачёва О.В.
сангвиник
12
Импульсивный
13
Шевченко В. С.
холерик
14
Оптимистичный
Среди индивидуальных особенностей личности, которые ярко характеризуют поведение человека, его деятельность и общение с другими людьми, особое место принадлежит темпераменту.
Под темпераментом следует понимать индивидуально своеобразные свойства психики.
В ходе исследования было выявлено, что тип темперамента не оказывает определяющего влияния на успеваемость или неуспеваемость в обучении, он влияет на индивидуальный стиль поведения человека в учебной деятельности, который и влияет на результативность обучения.
На занятиях группа ведёт себя активно и для повышения успеваемости, формирования моральных и нравственных качеств, куратор проводит воспитательные работы. Куратора данная группа любит и уважает, выполняют все его поручения и никогда не перечат ему.
Общие психолого-педагогические выводы: группа ДГ-ИТ8-1 в общих чертах сильна и активна, но рекомендуется проводить в группе воспитательные работы, направленные на развитие сплочённости в коллективе, а так же как можно больше проводить мероприятий по развитию общего кругозора учащихся и приобщению к здоровому образу жизни.
Результаты тестирования и рекомендации конкретного характера относительно выполнения заданий дидактического раздела
Результаты исследования типа темперамента по методике Н.Н. Обозова:
1. холерик – 2 ученика – 14%;
2. сангвиник – 8 учеников – 71%;
3. флегматик – 3 ученика – 14%;
4. меланхолик – 0 учеников – 0%.
Результаты теста Мюнстерберга на восприятие и внимание:
1. обнаружено не более 15 слов – 0 ученик 0%;
2. обнаружено не более 20 слов – 3 учеников – 42%;
3. обнаружено 24 – 25 слов – 4 учеников – 58%.
Результаты теста на сообразительность:
низкий уровень: 0 учеников – 0%;
средний уровень: 2 ученика – 29%;
высокий уровень: 5 учеников – 71%.
Результаты теста на определение коммуникабельности:
1. 14 – 19 баллов: 1 ученика – 14%;
2. 9 – 13 баллов: 4 учеников – 57%;
3. 4 – 8 баллов: 2 ученико в – 29%.
Результаты определения типа мышления и уровня креативности по методике Дж. Брунера:
предметное мышление:0 учеников – 0%
символическое мышление: 2 учеников – 29%;
знаковое мышление: 5 учеников – 57%;
образное мышление: 1 ученик – 14%.
низкий уровень креативности: 0 учеников – 0%;
средний уровень креативности: 4 ученика – 57%;
высокий уровень креативности: 3 учеников – 43%.
Подробнее все полученные оценки занесены в таблицу 3.2.
После проведения теста можно сказать, что группа имеет хороший уровень коммуникабельности, внимательности и креативности. Следовательно, контрольно-проверочные упражнения, в процессе группового опроса, будут происходить в комфортной атмосфере с преподавателем и учащимися, приносить достойную производительность и результат в будущем.
Таблица 3.2 - Результатыпсиходиагностическоготестирования
ФИО
студента
Тип темпе-ра-мента
Диагнос-тика восприя-тия и мнима-ния
Показа-тельсооб-рази-тельности
Определение коммуникабель-ности
Тип мыщле-ния
Уро-вень кре-атив-
ности
Александров К.Ю.
С
25с
30
13
З
15
Внукова Е.А.
С
24с
28
11
З
14
Горбунов Д.К.
С
15с
19
8
С
9
Довгаль А.В.
Ф
17с
22
14
З
8
Забоев А.Д.
С
18с
20
17
С
9
Киященко Б.Д.
Х
24с
23
11
З
11
Константинов А.А.
С
24с
25
6
О
13
Лаврин Н. А.
Ф
18с
28
12
С
8
Лянскорунс-кий А. В.
С
17с
19
10
З
15
Пшеничкина Я. Е.
С
24с
23
12
З
9
Садики М. С.
Ф
18с
20
8
С
13
Ткачёва О.В.
С
24с
19
10
З
12
Шевченко В. С.
Х
17с
24
13
С
8
Общие выводы по результатам тестирования:
По результатам тестирования можно сделать вывод, что большинство учащихся в группе по типу темперамента являются сангвиниками, имеют среднюю концентрацию внимания, показатель сообразительности представлен на высоком уровне, достаточно коммуникабельны, владеют знаковым типом мышлений и высокой креативностью. Соответственно можно выявить что группа учащихся представлена без каких-либо отклонений от нормы в развитии и способностях.
Рекомендации инженеру-педагогу:
1.Учитывая, то что большинство учащихся группы относятся к типу сангвиников, инженер-педагог в процессе контрольно-проверочных упражнений может применять различные активные методы обучения такие как беседа, ролевые игры, демонстрирование, тестовый контроль с целью интенсивного завлечения учащихся и повышения продуктивности.
2. Учитывая, что большинство учащихся имеют уровень внимательности в пределах нормы и выше, инженер педагог может концентрировать внимание группы на анализе, осмыслении и сравнении учебного материала. Сюда также можно включить задания основанные методом демонстрации.
3.Учитывая, что вся группа владеет высоким показателем сообразительности, инженер-педагог может устраивать блиц опросы и брейн-ринги по вопросам изучаемого материала. Подобные формы проведения уроков помогут повысить уровень коммуникабельности, абстрактного и логического мышления.
4. Беря во внимание тот факт, что группа обучающихся имеет средний и высокий показатель коммуникабельности инженер-педагог имеет возможность проводить семинары на изучаемые и интересующие темы. Это в свою очередь увеличит эффективность применения знаний на практических занятиях.
5. Рассматривая, что большинство учащихся имеют знаковый тип мышления и высокий уровень креативности инженер-педагог может в процессе групповой работы применять метод обучения(путем рассказа, инструктажа), с целью направления учащихся на решение задач и упражнений. В последующем так же есть смысл проводить практические занятия для выявления индивидуальных способностей и творческого потенциала каждого ученика.
Рекомендации куратору группы: во время проведения кураторских часов и воспитательных бесед во внеурочное время, следует развивать коммуникабельность учеников путем ее активизации с помощью специальных тестовых заданий, проведения экскурсий, социальных акций, мероприятий и тд; с целью повышения уровня внимательности в группе следует выполнять упражнения на улучшение концентрации внимания по типу игр, тренингов и упражнений, применяя метод демонстрации; беря во внимание что в группе преобладает темперамент сангвиников, куратору следует опираться на активные формы проведения воспитательных часов, тем самым помочь раскрыться более умеренным темпераментам.
Рекомендации родителям учащихся группы: для регулярного развития и усовершенствования личностных характеристик учеников, родителям желательно находиться в контакте с куратором с целью определения поведения и успеваемости ученика, родителям необходимо проводить воспитательные беседы для обсуждения важных актуальных вопросов научной и личной сферы, при возможностях повышать интеллектуальный и культурный показателя развития, чем также можно поддержать уровень внимания и коммуникабельности.
Рекомендации учащимся группы: учащимся, получившим низкие показатели, следует развивать внимательность и коммуникабельность, применяя соответствующие методики и упражнения, посещать и участвовать в семинарах, акциях, общественных мероприятиях, ученикам, получившим высокие показатели.
ПРИЛОЖЕНИЕ 4
Заявление о государственной регистрации программы для ЭВМ
ВХОДЯЩИЙ НОМЕР ВК
______________________________________
Дата поступления: _____. ______. 20______
РЕГИСТРАЦИОННЫЙ номер ПРОГРАММЫ ДЛЯэвм или Базы Данных в РЕЕСТРЕ
_________________________________
Дата регистрации: _____. _____. 20______
РЕГИСТРАЦИОННЫЙ номер заявки
_________________________
Дата поступления: _____. _____. 20______
В Федеральную службу по интеллектуальной собственности
Бережковская наб., д. 30, корп.1, г. Москва, Г-59, ГСП-3, 125993
З А Я В Л Е Н И Е
о государственной регистрации (отметить[X]):
Программы для ЭВМ
Базы данных, государственная регистрация которой осуществляется в соответствии с пунктом 4 статьи 1259 Кодекса
Базы данных, государственная регистрация которой осуществляется в соответствии с пунктом 3 статьи 1334 Кодекса
АДРЕС ДЛЯ ПЕРЕПИСКИ (Почтовый индекс, адрес на терри-тории Российской Федерации; имя или наименование адресата)
94005, ЛНР, г. Первомайск, ул. Тургенева, д.7, Дорофеева Анастасия Викторовна
Тел.: +380721300717
Факс:
Адрес электронной почты:
Anastasiua_mihaukuyk@mail.ru
Представляя указанные ниже документы, заявитель подтверждает отсутствие в представленном на регистрацию объекте сведений, составляющих государственную тайну, и предоставляет Роспатенту право на воспроизведение материалов, идентифицирующих регистрируемый объект, на бумажном носителе и путем записи на электронном носителе, в том числе записи в память ЭВМ, в целях, необходимых для предоставления государственной услуги
1. Название представленной на регистрацию ПРОГРАММы ДЛЯ ЭВМ ИЛИ БАЗЫ ДАННЫХ
Программа Многоугольник
2. ПРАВООБЛАДАТЕЛЬ (ЗАЯВИТЕЛЬ(И))ОГРН: ИНН:3556514275_
Серия и номер документа, удостоверяющего личность ЕН935053СНИЛС:_
Дорофеева Анастасия Викторовна, ЛНР, г. Первомайск, ул. Тургенева, д.7
(указываются фамилия, имя, отчество (последнее – при наличии) и место жительства (для физического лица) или наименование юридического лица (согласно учредительным документам) и место нахождения (для юридического лица), включая название страны. Данные о месте жительства автора(ов)-заявителя(ей) приводятся в графе 7А)
регистрируемый объект создан за счет средств федерального бюджета
Указанное лицо является:государственным заказчикоммуниципальным заказчиком
исполнитель работ:
исполнителем работ погосударственному контрактумуниципальному контракту
заказчик работ:
Контракт от: 20 № Всего правообладателей 1 _
(заполняется только в случае создания программы для ЭВМ или базы данных по государственному или муниципальному контракту)
2А. ОСНОВАНИЯ ВОЗНИКНОВЕНИЯ ПРАВА НА РЕГИСТРИРУЕМУЮ ПРОГРАММУ ДЛЯ ЭВМ ИЛИ БАЗУ ДАННЫХ: (отметить [Х]) (заполняется, если заявитель является юридическим лицом, или состав заявителей не соответствует составу авторов)
заявитель является работодателем автора передача прав автором или его правопреемником заявителю
передача прав работодателем заявителю в порядке универсального правопреемства (наследование, реорганизация)
заявитель является изготовителем базы данныхзаявитель является автором _____________________________
Для БД, охраняемой смежными правами Иное - указать
3. РЕГИСТРИРУЕМЫЙ ОБЪЕКТ
Не содержит персональные данные
Содержит персональные данные Регистрационный номер в Реестре операторов, осуществляющих обработку персональных данных
4. ГОД СОЗДАНИЯ РЕГИСТРИРУЕМОЙ ПРОГРАММЫ ДЛЯ ЭВМ ИЛИ БАЗЫ ДАННЫХ 2022 _
5. СТРАНА И ГОД ОБНАРОДОВАНИЯ (ПЕРВОГО ОПУБЛИКОВАНИЯ) РЕГИСТРИРУЕМОЙ ПРОГРАММЫ ДЛЯ ЭВМ ИЛИ БАЗЫ ДАННЫХ:
Страна: Год: _
5А. ГОД ОБНОВЛЕНИЯ РЕГИСТРИРУЕМОЙ БАЗЫ ДАННЫХ, государственная регистрация которой осуществляется в соответствии с пунктом 3 статьи 1334 Кодекса _
6. Представленная на регистрацию база данных зарегистрирована в Реестре баз данных как:
База данных, государственная регистрация которой осуществляется в соответствии с пунктом 4 статьи 1259 Кодекса. Рег. № от _
База данных, государственная регистрация которой осуществляется в соответствии с пунктом 3 статьи 1334 Кодекса. Рег. № от нет
7. АВТОРЫ Всего авторов: __1__ авторы отказались быть упомянутыми в качестве таковых
7А. СВЕДЕНИЯ ОБ АВТОРЕ:
Фамилия имя отчество: Дорофеева Анастасия Викторовна
Дата рождения: число: 30 месяц: 08 год: 1988 Гражданство: ЛНР
Автор согласен с обработкой указанных персональных данных в объеме действий, предусмотренных предоставляемой государственной услугой, и в течение срока действия исключительного права на регистрируемый объект
Место жительства, включая указание страны:
94005, ЛНР, г. Первомайск, ул. Тургенева, д.7
Краткое описание творческого вклада автора при создании регистрируемой программы для ЭВМ или базы данных:
Расположение операторов и команд. Дизайн программы.
При публикации сведений о государственной регистрации программы для ЭВМ или базы данных автор просит: (отметить [X])
упоминать его под своим именем не упоминать его (анонимно)
упоминать его под псевдонимом: __________________________________________________________________
8.СВЕДЕНИЯ О ПЛАТЕЛЬЩИКЕ (указываются полное имя физического лица или наименование юридического лица)
Дорофеева Анастасия Викторовна
Для физического лица
Серия и номер документа, удостоверяющего личность:
для юридического лица
ИНН:
КПП:
КИО:
ИНН: 3556514275
СНИЛС:
9. СВЕДЕНИЯ О СОДЕРЖАЩИХСЯ В ЗАЯВКЕ ДОКУМЕНТАХ (отметить [X])
идентифицирующие программу для ЭВМ материалы в форме распечатки исходного текста на л. в 1 экз.
идентифицирующие программу для ЭВМ материалы в иной форме на л. в 1 экз.
материалы аудиовизуальных отображений, порождаемых программой для ЭВМ на л. в 1 экз.
материалы, идентифицирующие базу данных на л. в 1 экз.
документы, подтверждающие существенные затраты на создание базы данных на л. в 1 экз.
реферат на л. в 2 экз.
иные материалы: на л. в 1 экз.
дополнение к заявлению на л. в 1 экз.
доверенность(и) на л.
документ(ы) об уплате государственной пошлины (представляется по инициативе заявителя ) на л. в 1 экз.
документ, подтверждающий наличие оснований для освобождения от уплаты
государственной пошлины либо для уменьшения ее размера, либо для отсрочки ее уплаты на л. в 1 экз.
ходатайство(а) на л. в 1 экз.
иные документы (указать наименование документа) на л. в 1 экз.
10. КОНТАКТНЫЕ РЕКВИЗИТЫ ДЛЯ ПРЕДСТАВЛЕНИЯ ТРЕТЬИМ ЛИЦАМ (тел., адрес электронной почты и др.):
Anastasiua_mihauluyk@mail.ru
11. Заявителю известно, что в соответствии с подпунктом 4 пункта 1 статьи 6 Федерального закона от 27 июля 2006 г. № 152-ФЗ
О персональных данных Федеральная служба по интеллектуальной собственности осуществляет обработку персональных данных субъектов персональных данных, указанных в заявлении, в целях и объеме, необходимых для предоставления государственной услуги.
Заявитель настоящим подтверждает, что имеет согласия субъектов персональных данных, указанных в заявлении (за исключением представителя), на обработку их персональных данных, приведенных в настоящем заявлении, в Федеральной службе по интеллектуальной собственности в связи с предоставлением государственной услуги. Согласия оформлены в соответствии со статьей 9 Федерального закона от 27 июля 2006 г. № 152-ФЗ О персональных данных.
12. ПОДПИСЬ(И) ЗАЯВИТЕЛЯ(ЕЙ) (ПРАВООБЛАДАТЕЛЯ(ЕЙ) ИЛИ ЕГО (ИХ) ПРЕДСТАВИТЕЛЯ(ЕЙ)
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________
(от имени юридического лица заявление подписывается руководителем организации или иным лицом, уполномоченным на это в установленном законодательством Российской Федерации порядке, с указанием его должности и скрепляется печатью юридического лица при наличии печати
Подпись любого лица должна быть расшифрована с указанием фамилии и инициалов и указана дата подписания заявления.
Правообладатели – физические лица подтверждают согласие с обработкой указанных в данном заявлении персональных данных в целях и объе-ме, необходимых для предоставления государственной услуги, и в течение срока действия исключительного права на регистрируемый объект)
ПРИЛОЖЕНИЕ 5
Отчет о проверке на заимствования
ПРИЛОЖЕНИЕ 6
Презентация магистерской диссертации
Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов междуязыками программирования.
Актуальность диссертационного исследования
Построение дерева целей
Метод анализа иерархий (МАИ)
Основные определения и положения магистерской диссертации
Характеристика объектно-ориентированных языков программирования
Комплекс средств для разработки проекта с использованием ООП
Способы трансляции программных кодов между языками программирования
Разработка проекта определения площади многоугольника в Delphi
Разработка проекта с использованием ООП в Delphi
Транслирование программного кода в язык программирования C#
Разработка дидактического проекта по теме: Разработка проекта с использованием ООП в Delphi
Анализ профессиональной деятельности специалиста
Изучение пед. технологий при построении дед.материалов
Разработка сценария занятия
Проведение педагогического исследования
Подведение итогов (Выводы)
Изучение характеристики и учебного плана дисциплины ООПРПО
Изучение и разработка раздела Защита интеллектуальной собственности
Актуальность защиты интеллектуальной собственности
Авторское право и виды авторского права
Программный код какобъект защиты авторских прав
Выводы к разделу
Информаци-онно-технологи-ческий раздел
Педагогический раздел
Раздел защиты интеллектуальной собственности
Выводы
Разработка проекта с использованием объектно- ориентированного программирования, исследование трансляции программных кодов между языками программирования
Доступность учебной литературы об особенностях языка программирования
Скорость выполнения программы
Гибкость языка программирования
Кроссплатформенность
Python
Delphi
VB.NET
С#
Разработка проектов с использованием объектно-ориентированного программирования. Исследование трансляции программных кодов между языками программирования
Разработка проектов с использованием объектно-ориентированного программирования.
Объектно-ориентированное программирование. Определение класса.
Реализация собственного класса.
Свойства объектов. Сеттеры. Геттеры.
Принципы ООП. наследование классов.
Наследование классов.
Транслирование программных кодов между языками программирования.
Изучение основных операторов С# в среде программированияVsualStudio.
Исследование трансляции программных кодов между языками программирования
Разработка приложения с использованием класса.
Полиморфизм в ООП. Виртуальные методы.
Полиморфизм в ООП. Перегрузка операторов.
Применение наследования в графическом режиме.
Создание графического редактора изображений.
Изм.
Лист
№ докум.
Подпись
Дата
Лист
6
44.04.04.09 ДГ-ИТ1-маг МД (047)
Разраб.
Дорофеева А.В.
Провер.
Консультант
Консультант
Н.контр.
РАЗРАБОТКА ПРОЕКТОВ С ИСПОЛЬЗОВАНИЕМ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ, ИССЛЕДОВАНИЕ ТРАНСЛЯЦИИ ПРОГРАММНЫХ КОДОВМЕЖДУ ЯЗЫКАМИ ПРОГРАММИРОВАНИЯ
Лит.
Листов
83
Изм.
Лист
№ докум.
Подпись
Дата
Лист
5
44.04.04.09 ДГ-ИТ1-маг МД (047)
Разраб.
Дорофеева А.В.
Провер.
Консультант
Консультант
.
Н.контр.
.
РАЗРАБОТКА ПРОЕКТОВ С ИСПОЛЬЗОВАНИЕМ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ, ИССЛЕДОВАНИЕ ТРАНСЛЯЦИИПРОГРАММНЫХ КОДОВ МЕЖДУ ЯЗЫКАМИПРОГРАММИРОВАНИЯ
Лит.
Листов
83
Изм.
Лист
№ докум.
Подпись
Дата
Лист
87
87
44.04.04.09 ДГ-ИТ1-маг МД (047)