ЕЙСКИЙ МОРСКОЙ РЫБОПРОМЫШЛЕННЫЙ ТЕХНИКУМ (ФИЛИАЛ)
ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО
ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ОБРАЗОВАНИЯ
«АСТРАХАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
РАССМОТРЕНО на заседании цикловой комиссии математических дисциплин и информационных технологий Протокол № 7 Председатель_________ Е.В.Кодаченко « 30 » ____августа____ 2019 г. |
УТВЕРЖДАЮ Заместитель директора
__________ Е.Н.Горбанева « 30 » ____августа___2019 г. |
ПАСПОРТ
КОНТРОЛЬНО-ИЗМЕРИТЕЛЬНЫХ МАТЕРИАЛОВ
УЧЕБНОЙ ДИСЦИПЛИНЫ
ОП.16 ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ
программы подготовки специалистов среднего звена (ППССЗ)
по специальности СПО
09.02.01 Компьютерные системы и комплексы
(базовая подготовка)
2019
Разработчик:
ЕМРПТ ФГБОУ ВО «АГТУ» |
преподаватель |
М.В.Алексеева |
|
|
|
1.Паспорт контрольно-измерительных материалов
В соответствии с ФГОС СПО по специальности 35.02.09 Ихтиология и рыбоводство (углубленная подготовка) в процессе обучения по дисциплине ОП. 09 Основы алгоритмизации и программирования, у обучающегося формируются следующие общие компетенции (ОК):
ОК 1. Понимать сущность и социальную значимость своей будущей профессии, проявлять к ней устойчивый интерес.
ОК 2. Организовывать собственную деятельность, определять методы и способы выполнения профессиональных задач, оценивать их эффективность и качество.
ОК 3. Решать проблемы, оценивать риски и принимать решения в нестандартных ситуациях.
ОК 4. Осуществлять поиск, анализ и оценку необходимой для постановки и решения профессиональных задач, профессионального и личностного развития.
ОК 5. Использовать информационно-коммуникационные технологии для совершенствования профессиональной деятельности.
ОК 6. Работать в коллективе и команде, обеспечивать ее сплочение, эффективно общаться с коллегами, руководством, потребителями.
ОК 7. Ставить цели, мотивировать деятельность подчиненных, организовывать и контролировать их работу с принятием на себя ответственности за результат выполнения заданий.
ОК 8. Самостоятельно определять задачи профессионального и личностного развития, заниматься самообразованием, осознанно планировать повышение квалификации.
ОК 9. Быть готовым к смене технологий в профессиональной деятельности.
следующие профессиональные компетенции (ПК):
ПК 1.1. Разрабатывать схемы цифровых устройств на основе интегральных схем разной степени интеграции.
ПК 1.2. Выполнять требования технического задания на проектирование цифровых устройств.
ПК 1.3. Использовать средства и методы автоматизированного проектирования при разработке цифровых устройств.
ПК 2.1. Создавать программы на языке ассемблера для микропроцессорных систем.
ПК 2.3. Осуществлять установку и конфигурирование персональных компьютеров и подключение периферийных устройств.
ПК 3.2. Проводить системотехническое обслуживание компьютерных систем и комплексов.
ПК 3.3. Принимать участие в отладке и технических испытаниях компьютерных систем и комплексов; инсталляции, конфигурировании программного обеспечения.
С целью овладения формирования вышеуказанных компетенций обучающийся в ходе освоения дисциплины должен:
уметь:
У1- использовать методы абстрагирования и управления современных языков программирования для описания и решения конкретных прикладных задач;
У2- строить формальную модель системы (подсистемы) по ее описанию в терминах предметной области;
У3- разработать структуры информационных объектов, функционирующих в программной системе, и соответствующие им структуры данных (в том числе абстрактные);
У4- разработать алгоритм и реализовать программу, выбрав наиболее подходящий метод и язык программирования;
У5- разработать модульную структуру программной системы, обеспечивающие ее функциональную наполненность, и дружественный интерфейс пользователя;
У6- выполнить тестирование и отладку программной системы с целью устранения синтаксических и семантических ошибок с целью повышения надежности программного обеспечения.
В результате освоения учебной дисциплины студент должен знать:
З1- стандартные и пользовательские типы данных и методы их обработки;
З2- принципы структурного, модульного и объектно-ориентированного программирования;
З3- принципы разработки сложных программных систем, в том числе правила разработки интерфейса;
З4- принципы тестирования программных систем;
З5 -основные понятия объектно-ориентированного программирования.
2. Результаты освоения профессиональных компетенций (ПК), соответствующих виду профессиональной деятельности, и элементов общих компетенций (ОК) текущим контролем и промежуточной аттестацией:
Результаты (освоенные общие компетенции) |
Основные показатели оценки результата |
Формы и методы контроля и оценки |
1 |
2 |
3 |
ОК 1. Понимать сущность и социальную значимость своей будущей профессии, проявлять к ней устойчивый интерес. |
Проявлять устойчивый интерес к будущей профессии. |
Оценка деятельности обучающегося в процессе освоения образовательной программы осуществляется при проведении теоретических занятий, выполнении практических занятий, внеаудиторной самостоятельной работы. Наблюдение и оценка активности обучающегося при проведении учебно-воспитательных мероприятий профессиональной направленности (конкурсы на лучшего знатока дисциплины, участие в мероприятиях недели цикловой комиссии, профессиональные конкурсы, «брейн-ринги» и т. п.). |
ОК 2. Организовывать собственную деятельность, определять методы и способы выполнения профессиональных задач, оценивать их эффективность и качество. |
Мотивированная обоснованность выбора и применения методов и способов решения профессиональных задач; своевременность, правильность и полнота выполнения профессиональных задач. |
Оценка деятельности обучающегося в процессе освоения образовательной программы осуществляется при проведении теоретических занятий, выполнении практических занятий, внеаудиторной самостоятельной работы. |
ОК 3. Решать проблемы, оценивать риски и принимать решения в нестандартных ситуациях. |
Способность принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность при выполнении профессиональных задач. |
Оценка деятельности обучающегося в процессе освоения образовательной программы осуществляется при проведении теоретических занятий, выполнении практических занятий, внеаудиторной самостоятельной работы. |
ОК 4. Осуществлять поиск, анализ и оценку информации, необходимой для постановки и решения профессиональных задач, профессионального и личностного развития. |
Оперативность поиска и использования необходимой информации для качественного выполнения профессиональных задач, профессионального и личностного развития; широта использования различных источников информации, включая электронные. |
Оценка деятельности обучающегося в процессе освоения образовательной программы осуществляется при проведении теоретических занятий, выполнении практических занятий, внеаудиторной самостоятельной работы. |
ОК 5. Использовать информационно - коммуникационные технологии для совершенствования профессиональной деятельности. |
Выполнение и демонстрация компьютерной обработки полученных результатов в профессиональной деятельности |
Оценка деятельности обучающегося в процессе освоения образовательной программы осуществляется при проведении теоретических занятий, выполнении внеаудиторной самостоятельной работы. |
ОК 6. Работать в коллективе и команде, обеспечивать ее сплочение, эффективно общаться с коллегами, руководством, потребителями |
Коммуникабельность при взаимодействии с обучающимися, преподавателями практики в процессе обучения. |
Оценка деятельности обучающегося в процессе освоения образовательной программы осуществляется при проведении теоретических занятий, выполнении практических занятий, внеаудиторной самостоятельной работы. Наблюдение и оценка использования обучающимся коммуникативных методов и приемов при подготовке и проведении учебно-воспитательных мероприятий различной тематики. |
ОК 7. Ставить цели, мотивировать деятельность подчиненных, организовывать и контролировать их работу с принятием на себя ответственности за результат выполненных заданий. |
Ответственность за результат выполнения заданий; способность к самоанализу и коррекции результатов собственной работы. |
Оценка деятельности обучающегося в процессе освоения образовательной программы осуществляется при проведении теоретических занятий, выполнении практических занятий. Наблюдение и оценка уровня ответственности обучающегося за работу членов команды, при проведении учебно-воспитательных мероприятий различной тематики, общественной деятельности. |
ОК 8. Самостоятельно определять задачи про- фессионального и личностного развития, заниматься самообразованием, осознанно планировать повышение квалификации. |
Способность: планировать и организовывать задачи про- фессионального и личностного развития; заниматься самообразованием и осознанно планировать повышение квалификации. |
Оценка деятельности обучающегося в процессе освоения образовательной программы осуществляется при проведении теоретических занятий, выполнении и практических занятий, внеаудиторной самостоятельной работы. |
ОК 9. Быть готовым к смене технологий в профессиональной деятельности. |
Проявление интереса к инновациям в области профессиональной деятельности |
Оценка деятельности обучающегося в процессе освоения образовательной программы осуществляется при проведении теоретических занятий, выполнении практических занятий, внеаудиторной самостоятельной работы. |
Вид профессиональной деятельности (ВПД) |
ПК |
ОПОР |
У |
З |
Формы и методы контроля и оценки |
Проектирование цифровых устройств |
ПК 1.1. Разрабатывать схемы цифровых устройств на основе интегральных схем разной степени интеграции. |
1.1.2 изложение правил оформления схем цифровых устройств;
|
У1 |
З5 |
Текущий контроль практические занятия, контрольная работа, письменная работа, устный опрос, тестирование, диктант. Промежуточная аттестация экзамен
|
ПК 1.2. Выполнять требования технического задания на проектирование цифровых устройств. |
1.2.3 Изложение основных задач и этапов проектирования цифровых устройств |
У2 |
З1 |
||
ПК 1.3. Использовать средства и методы автоматизированного проектирования при разработке цифровых устройств. |
1.3.3демонстрация навыков проектирования цифровых устройств на основе пакетов прикладных программ;
|
У5 |
З4 |
||
ПК 1.4 Определять показатели надежности и качества проектируемых цифровых устройств |
1.4.3изложение методов оценки качества и надежности цифровых устройств; |
У3 |
З2 |
||
Применение микропроцессорных систем, установка и настройка периферийного оборудования
|
ПК 2.1. Создавать программы на языке ассемблера для микропроцессорных систем.
|
2.1.1 выполнение работ согласно чертежей, схем, технической документации; |
У4 |
З4 |
|
ПК 2.3. Осуществлять установку и конфигурирование персональных компьютеров и подключение периферийных устройств.
|
2.3.1 подбирать необходимые инструменты, материалы, техническую документацию для выполнения рабочего задания; |
У6 |
З5 |
||
Техническое обслуживание и ремонт компьютерных систем и комплексов |
. ПК 3.2. Проводить системотехническое обслуживание компьютерных систем и комплексов. ПК 3.3. Принимать участие в отладке и технических испытаниях компьютерных систем и комплексов; инсталляции, конфигурировании программного обеспечения.
|
3.2.1 устанавливать прикладное программное обеспечение; 3.3.2 понимать сущность процесса обмена информацией между компьютерными системами
|
У6
У5 |
З2
З3 |
3. Формы и методы оценивания дисциплины
Предметом оценки служат умения и знания, формирующие профессиональные компетенции, а также способствующие развитию общих компетенций по ОП.09 ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ 09.02.01 Компьютерные системы и комплексы
Содержательно-компетентностная матрица оценочных средств текущего контроля.
Содержание учебного материала по программе УД |
ПК 1.1 |
ПК 1.2 |
ПК 1.3 |
ПК 1.4 |
ПК 2.1 |
ПК 2.3 |
ПК 3.2 |
ПК 3.3 |
ОК |
||||||||
У1 |
З5 |
У2 |
З5 |
У5 |
З4 |
У3 |
З7 |
У4 |
З6 |
У5 |
З8 |
У6 |
З2 |
У5 |
З3 |
||
Введение |
УО |
СР |
|
|
УО |
|
|
|
|
СР |
|
|
|
|
|
|
ОК.1-ОК.9 |
Раздел 1 Организация процесса проектирования программного обеспечения Тема 1.1 Жизненный цикл программного продукта |
УО |
|
ПЗ |
|
|
|
|
|
ПЗ |
|
|
|
|
|
|
|
|
Тема 1.2 Таблица решений |
УО |
|
|
СР |
|
|
|
|
|
|
|
|
СР |
|
|
|
|
Тема 1.3 Case- технологии |
|
|
Т |
|
|
|
СР |
|
|
|
|
|
|
|
|
|
|
Тема 1.4 Архитектура программного средства |
|
|
|
СР |
|
|
|
|
Т |
|
|
|
|
СР |
|
|
|
Раздел 2 Методы проектирования программного обеспечения |
|
|
|
|
УО |
СР |
|
|
|
|
|
|
|
|
|
|
|
Тема 2.1 Парадигма программирования |
|
|
СР |
|
|
|
|
|
Т |
|
|
|
|
|
|
|
|
Тема 2.2 Методы программирования |
ПЗ |
|
|
|
УО |
|
|
|
|
|
СР |
|
ПЗ |
|
|
|
|
Тема 2.3 Структурное программирование |
|
|
|
СР |
|
|
|
|
|
|
|
|
|
|
|
|
|
Тема 2.4 Модульное программирование |
УО |
|
|
|
|
|
|
|
СР |
Т |
|
|
|
|
|
|
|
Тема 2.5 Объектно-ориентированное программирование |
|
|
ПЗ |
|
УО |
|
|
|
|
|
|
|
|
|
|
|
|
Тема 2.6 Компонентный подход |
|
|
СР |
|
|
|
|
|
|
Т |
ПЗ |
|
|
УО |
|
|
|
Раздел 3 Язык программирования Delphi.
|
ПЗ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Тема 3.1 Основные понятия |
|
|
|
|
|
СР |
|
|
Т |
|
|
|
|
УО |
|
|
|
Тема 3.2 Подпрограммы. Процедуры и функции |
ПЗ |
|
|
СР |
|
|
|
|
|
|
СР |
|
ПЗ |
|
|
|
|
Тема 3.3 Основные понятия ООП на примере интегрированной среды Delphi |
|
|
|
|
|
|
|
|
СР |
|
|
|
|
|
|
|
|
Тема 3.4 Иерархия классов в среде Delphi |
ПЗ |
|
|
СР |
|
|
|
|
ПЗ |
|
|
|
|
|
|
УО |
|
Тема 3.5Поля. Свойства. Методы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Тема 3.6 Библиотека визуальных компонентов |
|
|
Т |
СР |
|
|
|
|
|
|
СР |
|
|
|
|
УО |
|
Раздел 4 Тестирование и отладка |
|
|
|
|
ПЗ |
СР |
|
|
|
|
|
|
|
|
|
|
|
Тема 4.1 Методы тестирования |
|
|
СР |
|
|
|
|
|
ПЗ |
|
|
|
УО |
|
|
|
|
Тема 4.2 Отладка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Примечание: уо-устный опрос; пр – письменная работа; д-диктант; т- тестирование; лр – лабораторная работа; пз– практическое занятие; ср – самостоятельная работа (внеаудиторная); КР-курсовая работа
Содержательно-компетентностная матрица оценочных средств промежуточной аттестации.
Содержание учебного материала по программе УД |
ПК 1.1 |
ПК 1.2 |
ПК 1.3 |
ПК 1.4 |
ПК 2.1 |
ПК 2.3 |
ПК 3.2 |
ПК 3.3 |
ОК |
||||||||
У1 |
З5 |
У2 |
З5 |
У5 |
З4 |
У3 |
З7 |
У4 |
З6 |
У5 |
З8 |
У6 |
З2 |
У5 |
З3 |
||
Введение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ОК.1-ОК.9 |
Раздел 1 Организация процесса проектирования программного обеспечения Тема 1.1 Жизненный цикл программного продукта |
|
дз |
|
|
|
|
|
|
дз |
|
|
|
|
|
дз |
|
|
Тема 1.2 Таблица решений |
|
дз |
|
|
|
|
|
|
|
|
|
|
дз |
|
|
|
|
Тема 1.3 Case- технологии |
|
|
|
дз |
|
|
|
|
дз |
|
|
|
|
|
|
|
|
Тема 1.4 Архитектура программного средства |
|
дз |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Раздел 2 Методы проектирования программного обеспечения |
|
|
|
|
дз |
|
|
|
|
|
|
|
дз |
|
|
|
|
Тема 2.1 Парадигма программирования |
|
|
дз |
|
|
|
|
|
|
|
дз |
|
|
|
дз |
|
|
Тема 2.2 Методы программирования |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
дз |
|
Тема 2.3 Структурное программирование |
|
|
дз |
|
|
|
|
|
|
дз |
|
|
|
дз |
|
|
|
Тема 2.4 Модульное программирование |
|
|
|
|
|
|
|
|
|
|
|
|
|
дз |
|
|
|
Тема 2.5 Объектно-ориентированное программирование |
|
|
дз |
|
|
|
дз |
|
|
|
|
|
|
дз |
|
|
|
Тема 2.6 Компонентный подход |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Раздел 3 Язык программирования Delphi.
|
дЗ |
|
|
|
дз |
|
|
|
|
дз |
|
|
|
|
|
|
|
Тема 3.1 Основные понятия |
|
|
|
|
|
|
|
|
|
дз |
|
|
|
|
|
|
|
Тема 3.2 Подпрограммы. Процедуры и функции |
|
|
|
дз |
|
|
|
|
|
|
|
|
|
|
|
|
|
Тема 3.3 Основные понятия ООП на примере интегрированной среды Delphi |
|
дз |
|
|
|
|
|
|
дз |
|
|
|
|
|
дз |
|
|
Тема 3.4 Иерархия классов в среде Delphi |
|
|
|
|
|
дз |
|
|
|
|
дз |
|
дз |
|
|
дз |
|
Тема 3.5Поля. Свойства. Методы |
|
дз |
|
|
|
|
|
|
дз |
дз |
|
|
|
|
|
дз |
|
Тема 3.6 Библиотека визуальных компонентов |
|
|
|
|
дз |
|
|
дз |
|
|
|
дз |
|
дз |
|
|
|
Раздел 4 Тестирование и отладка |
дз |
|
|
дз |
|
|
дз |
|
|
|
|
|
дз |
|
|
дз |
|
Тема 4.1 Методы тестирования |
|
|
|
|
|
|
|
|
|
дз |
|
|
|
|
|
дз |
|
Тема 4.2 Отладка |
|
|
|
дз |
|
|
|
|
|
|
|
|
|
|
|
|
|
Примечание: дз – дифференцированный зачет; э - экзамен
4. Задания для оценки освоения профессионального модуля
4.1 Задания текущего контроля
Раздел 1 Организация процесса проектирования программного обеспечения.
Тема 1.1 Жизненный цикл программного продукта
Устный опрос
1. Задачи и содержание дисциплины.
2. Основные понятия и определения курса
3. Основные этапы решения задач на ЭВМ
4. Постановка задачи – первый этап решения задачи.
Самостоятельная (внеаудиторная) работа
Изучение жизненного цикла ПС.
Тема 1.2 Таблица решений
Устный опрос
1 Основные положения, понятия, определения.
2 Различные модели жизненного цикла программных систем
3 Сходства и отличия ЖЦ ПС
Самостоятельная (внеаудиторная) работа
Рассмотреть функции и классификацию таблиц решений;
Изучить основные методы составления таблиц решений
Тема 1.3 Cаse-технологии
Устный опрос
1 Функции и классификация таблиц решений.
2 Составляющие таблиц решений
3 Виды таблиц решений
4 Полная и сокращённая таблица решений
5 Методика составления таблиц решений
6 Самостоятельная (внеаудиторная) работа
Самостоятельная (внеаудиторная) работа
Изучить case-технологии в разработке ПС;
Написание реферата по теме: «Эффективность разработок с помощью case-технологий».
Тема 1.4 Архитектура программного средства
Устный опрос
1 Понятие Case-технологий
2 Основные достоинства
3 Применение Case-технологий при разработки ПС
4 Классификация по типам
Практическое занятие № 1
Программирование алгоритмов обработки файловой информации
Составить таблицу решений с объединенными колонками
1. Дан текстовый файл. Распечатать его, заменив символами «-» заглавные латинские символы четных строк и на символы «_» строчные русские буквы каждой 3-ей строки. В начале каждой пятой строки вывести восклицательный знак.
2. Дан текстовый файл. Распечатать его, заменив символы «a» на символы «@», символы «ab» на символы «$%» и символы «abc» на символы «&*#». В начале каждой второй строки вывести восклицательный знак.
3. Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция возвращает ноль. При первом четном аргументе и втором нечетном аргументе функция возвращает минус один. При первом нечетном аргументе и втором четном аргументе функция возвращает минус два. Если оба аргумента нечетные и первый больше второго функция возвращает разность аргументов, если второй меньше нуля и сумму – если больше. Если оба аргумента четные и первый больше второго функция возвращает произведение аргументов, если второй меньше нуля и удвоенное произведение – если больше.
4. Дан текстовый файл. Распечатать его, заменив символы «c» на символы «@», символы «cd» на символы «$%» и символы «cde» на символы «&*#». В начале каждой четвертой строки вывести восклицательный знак.
5. Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция возвращает ноль. При первом четном аргументе и втором нечетном аргументе функция возвращает минус один. При первом нечетном аргументе и втором четном аргументе функция возвращает минус два. Если оба аргумента нечетные и первый больше второго функция возвращает произведение аргументов, если второй меньше нуля и удвоенное произведение – если больше. Если оба аргумента четные и первый больше второго на единицу функция возвращает второй аргумент, если первый больше второго на двойку – удвоенный второй аргумент, если больше более чем на двойку – утроенный второй аргумент.
6. Дан текстовый файл. Распечатать его, заменив символы «s» на символы «@», символы «sb» на символы «$%». В начале четных строк вывести вопросительный знак. В начале нечетных строк производить звуковой сигнал.
7. Описать одноместную функцию от целочисленного аргумента. Если аргумент меньше нуля, функция возвращает ноль. При четном аргументе функция его удваивает. Нечетный аргумент функция возводит в куб. Если аргумент равен 13, функция возвращает 99. Если аргумент равен 14 – 100.
8. Дан текстовый файл. Распечатать его, заменив в четных строках символы «y» на символы «@», в каждой четвертой строке символы «yb» на символы «$%», в каждой шестой строке символы «ybz» на символы «$%!».
9. Описать работу системы выращивания культур. Для корейской моркови на 1, 3, 7 и 10-е сутки роста план выращивания предусматривает поддержание в течении 8 часов температуры 24 градуса, из них первые 8 часов с освещением, а затем понижение температуры до 18 градусов на остальное время суток. Кроме того, может потребоваться внесение удобрений в середине дня, чтобы поддержать заданное значение кислотности в 65%. В остальные дни план предусматривает выращивание без дополнительного освещения, с уровнем кислотности в 50% и температурой 20 градусов.
10. Дан текстовый файл. Распечатать его, заменив в четных строках символы «f» на символы «@», в каждой четвертой строке символы «ft» на символы «$%». В начале четных строк вывести знак «*».
11. Описать работу системы выращивания культур. Для фасоли на 3, 5, 7 и 15-е сутки роста план выращивания предусматривает поддержание в течение 16 часов температуру 23 градуса, из них первые 14 часов с освещением, а затем понижение температуры до 16 градусов на остальное время суток. Кроме того, может потребоваться внесение удобрений в середине дня, чтобы поддержать заданное значение кислотности в 70%. В остальные дни план предусматривает выращивание без дополнительного освещения, с уровнем кислотности в 50% и температурой 20 градусов.
12. Дан текстовый файл. Распечатать его, заменив в нечетных строках символы «n» на символы «@», в каждой четвертой строке символы «nb» на символы «$%». В начале четных строк вывести восклицательный знак, в начале каждой четвертой строки – вопросительный знак.
13. Описать работу домашнего устройства управления микроклиматом. При работе в неавтоматическом режиме он держит постоянную температуру воздуха равную 20 градусов. В автоматическом режиме, выходные дни круглосуточно, а в будние дни между 20:00 и 8:00 он поддерживает постоянную температуру в 22 градуса. В будние дни между 8:00 и 20:00 сохраняет температуру 15 градусов.
14. Описать работу домашнего устройства управления микроклиматом. При работе в неавтоматическом режиме он держит постоянную влажность воздуха равную 50%. В автоматическом режиме, в выходные дни круглосуточно, а в будние дни между 20:00 и 8:00 он поддерживает постоянную влажность воздуха 30%. В будние дни между 8:00 и 20:00 сохраняет влажность воздуха 10%.
15. Дан текстовый файл. Распечатать его, заменив в нечетных строках символы «z» на символы «@», в каждой третьей строке символы «zb» на символы «$%», в каждой пятой строке символы «zbm» на символы «$%!».
16. Описать работу домашнего устройства управления микроклиматом. При работе в неавтоматическом режиме он держит постоянный уровень освещения равный 75%. В автоматическом режиме, в выходные дни круглосуточно, а в будние дни между 20:00 и 8:00 он поддерживает постоянный уровень освещения 70%. В будние дни между 8:00 и 20:00 сохраняет уровень освещения 5%
Самостоятельная (внеаудиторная) работа
Изучить системную архитектуру операционной системы;
Написание реферата по теме: «Функциональная архитектура операционной системы».
Оформить отчёт к практической работы №1
Раздел 2 Методы проектирования программного обеспечения
Тема 2.1 Парадигма программирования
Практическая работа №2
Исследование структуры и характеристик типовой автоматизированной системы
При проектировании сложных систем, таких как микропроцессорная автоматизированная системы или её узлы, возникает ряд комбинаторно-оптимизационных задач структурного синтеза, на всех этапах, начиная с эскизного проектирования и заканчивая разработкой конструкторской документации. К таким задачам относятся, например, схемная компоновка, размещение компонентов в монтажном пространстве, коммутации соединений и т. д. Автоматизация указанных процессов является актуальной проблемой. Поэтому целью настоящего курсового проекта является автоматизация решения комбинаторно-оптимизационных задач.
Для достижения указанных задач необходимо решить ряд инженерных задач, а именно:
- анализ области применения комбинаторно-оптимизационных задач;
- математические методы выбранных задач;
- разработка архитектуры ПС;
- выбор метода проектирования, программных средств реализации ПС;
- разработка структуры данных для хранения информации;
- разработка алгоритмов решения задач;
- тестирование ПС;
- разработка руководства программиста;
- зработка руководства пользователя;
- енка экономической эффективности внедрения ПС;
- зопасность труда пользователя.
Решение данных задач возможно на основании методов дискретной математики, программирования на языках высокого уровня, теории баз данных, статистических методов и моделей.
2 Назначение
Целью данной разработки является создание программного средства, позволяющего автоматизировать работу по решению комбинаторно-оптимизационных задач коммутации.
3 Архитектура программного средства
4 Даталогическая модель базы данных
Изучить руководство пользователя
После запуска программы на выполнение на экране монитора отображается главное окно программы, на которой пользователь имеет возможность выбора одного из четырех пунктов: «Открыть», «Рисовать», «Помощь» и «Выход» (рисунок 5).
Рисунок 5 – Главное окно ПС
При выборе пункта «Открыть» появляется возможность выбора или удаления данных, хранящихся в базе данных (рисунок 6).
Рисунок 6 – Выбор/удаление задачи
При активации кнопки «Рисовать» появляется возможность нарисовать с помощью графических примитивов: окружности (вершина) и линии (дуга с весом) граф (рисунок 7).
Рисунок 7 – Рисование графа с помощью примитивов
После выбора задачи из БД или рисования графа
открывается доступ к остальному меню: «Min_way»(поиск
кратчайшего пути рисунок 8) , «Min_cycle» (цикл минимальной длины рисунок 9), «Min_frame»
(кратчайшее остовное дерево рисунок 10), «Save»
(сохранение графа в БД рисунок 3.7).
Рисунок 8 – Поиск кратчайшего пути
Рисунок 9 – Поиск цикла минимальной длины
Рисунок 10 – Поиск кратчайшего остовного дерева
Рисунок 12 – Матричное представление графа
На рисунке 13 представлены результаты применение
выбранных алгоритмов, просмотр которых возможен после выбора закладки «Результаты».
Рисунок 13 – Результаты оптимизации
В пункте меню «Справка» имеется возможность обращения к справочной информации, на рисунке 14 показана форма вывода справочной информации.
Рисунок 14 – Справочная информация ПС
При выборе пункта «Выход» главного окна, ПК завершает свою работу.
Задание 1 Создание диаграммы модели данных
2.3 Разработка диаграммы вариантов использования
Диаграмма вариантов использования отображает взаимодействие между вариантами использования, представляющими функции системы, и действующими лицами, представляющими людей или системы, получающие или передающие информацию в данную систему.
Данный тип диаграмм предназначен для создания списка операций, которые выполняет Язык UML предусматривает систему графических обозначений для вариантов использования (рис. 2.5).
Рисунок 2.5 – Графические обозначения диаграммы вариантов использования
Действующее лицо (actor) – это непосредственный внешний пользователь системы. Это объект или множество объектов, непосредственно взаимодействующих с системой. Каждое действующее лицо является обобщением группы объектов, ведущих себя определенным образом по отношению к системе. Действующими лицами могут быть люди, устройства и другие системы – все, что взаимодействует с интересующей нас системой непосредственно.
Различные взаимодействия действующих лиц с системой группируются в варианты использования. Вариант использования (usecase) – это связный элемент функциональности, представляемый системой при взаимодействии с действующими лицами (рис. 2.6) .
Рисунок 2.6 – Вариант использования
В каждом варианте использования участвуют одно или несколько действующих лиц и система.
Вариант использования объединяет все поведение, имеющее отношение к элементу функциональности системы: нормальное поведение, вариации нормального поведения, исключительные ситуации, сбойные ситуации и отмены запросов.
На рисунке 2.7 приведен пример документирования варианта использования.
Рисунок 2.7 – Окно документирования варианта использования
Между компонентами диаграммы вариантов использования могут существовать различные отношения, которые описывают взаимодействие экземпляров одних актеров и вариантов использования с экземплярами других актеров и вариантов. Один актер может взаимодействовать с несколькими вариантами использования. В этом случае этот актер обращается к нескольким сервисам данной системы. В языке UML имеется несколько стандартных видов отношений между действующими лицами и вариантами использования:
- отношение ассоциации;
- отношение зависимости;
- отношение обобщения.
Ассоциация– структурное отношение, описывающее совокупность связей, представленных соединениями между объектами модели. Выделяют разновидность ассоциации, агрегирование, предусмотренное для выражения отношений между целым и его частями.
Рисунок 2.8 – Пример реализации отношения ассоциации
Применительно к диаграммам вариантов использования оно служит для обозначения специфической роли актера в отдельном варианте использования. Другими словами, ассоциация специфицирует семантические особенности взаимодействия актеров и вариантов использования в графической модели системы. Таким образом, это отношение устанавливает, какую конкретную роль играет актер при взаимодействии с экземпляром варианта использования. На диаграмме вариантов использования, так же как и на других диаграммах, отношение ассоциации обозначается сплошной линией между актером и вариантом использования. Эта линия может иметь дополнительные условные обозначения, такие, например, как имя и кратность
Рисунок 2.8 - Пример графического изображения отношения зависимости (расширения) между вариантами использования
Обобщение – отношение, при котором объект специализированного элемента может быть подставлен и использован вместо объекта обобщенного элемента. Следует подчеркнуть, что потомок наследует все свойства и поведение своего родителя, а также может быть дополнен новыми свойствами и особенностями поведения. Графически данное отношение обозначается сплошной линией со стрелкой в форме незакрашенного треугольника, которая указывает на родительский вариант использования (рис. 2.9).
Рисунок 2.9 - Пример графического изображения отношения обобщения между действующими лицами
2.4 Особенности разработки диаграмм вариантов использования в среде IBMRationalRose 2003
Запустите RationalRose, и создайте новую пустую модель. Для этого в окне CreateNewModel мастера создания моделей, открывающегося после первого запуска системы, включите флажок Don’tshowthisdialoginthefuture и нажмите кнопку Cancel. Эта команда закроет окно мастера, и не будет выводить его при следующих открытиях RationalRose. В рабочем поле RationalRose будет выведена пустое окно диаграммы классов. Это будет наша рабочая модель, в которой и должны быть отражены все нюансы будущей системы. Затем для того чтобы открыть окно диаграммы UseCaseнеобходимо сделать двойной щелчок по значку Main в папке UserCaseViewв окне Browser. Если открыто окно хотя бы одной диаграммы, то в главном меню активизируется пункт Browse и диаграмму UseCaseможно открыть командой Browse,UseCaseDiagram. Отметим, что в панели инструментов Standard нет кнопки просмотра BrowseUseCaseDiagram.Создание новых элементов в диаграмме UseCase
RationalRose предоставляет несколько способов создания новых элементов в окне диаграмм UseCase:
1. Командой New,UseCase контекстного меню папки UseCaseView в окне Browser .
2. КомандойTools,Create,Use Case главногоменю.
3. Командами строки инструментов окна UseCaseDiagram.
Рассмотрим панель инструментов рабочего окна диаграммы UseCase.
Таблица 2.5 - Пиктограммы панели инструментов диаграммы UseCase
Пиктограмма |
Кнопка |
Описание |
|
Selectsordeselectsanitem (Выделение или отмена выделения объекта) |
Превращает курсор в стрелку указателя, так что вы можете выделить объект |
|
TextBox (Текст) |
Добавляет к диаграмме текст |
|
Note (Примечание) |
Добавляет к диаграмме примечание |
|
AnchorNotetoItem (Прикрепление примечания к объекту) |
Связывает примечание с вариантом использования или объектом на диаграмме |
|
Package (Пакет) |
Помещает на диаграмму новый пакет |
|
UseCase (Вариант использования) |
Помещает на диаграмму новый вариант использования |
|
Actor (Действующее лицо |
Помещает на диаграмму новое действующее лицо |
|
UnidirectionalAssociation (Однонаправленная ассоциация) |
Рисует связь между действующим лицом и вариантом использования |
|
DependencyorInstantiates (Зависимость или наполнение) |
Рисует зависимость между элементами диаграммы |
|
Generalization (Обобщение) |
Рисует связь использования или расширения между вариантами использования либо рисует связь наследования между действующими лицами |
Структурным элементам Actor, UseCaseи Package, вводимым в диаграмму, система RationalRose автоматически присваивает умалчиваемые имена (NewClassN, NewUseCaseNи NewPackageN). Изменит эти имена можно двумя способами:
– редактирования подписи под значком после двойного щелчка на ней левой клавишей мыши (эта команда переводит окно с надписью в режим редактирования текста);
– контекстной командой Rename на соответствующем значке в дереве модели окна Browser;
– активизируя панель спецификаций элемента (двойным левым щелчком мыши на самом значке элемента в окне диаграммы) и редактируя умалчиваемое имя в поле Name: этой панели.
Связям умалчиваемые имена не присваиваются. При необходимости их именования можно использовать только третий способ – вводом нужного имени в поле Name: окна спецификаций связей. Для открытия этого окна переведите указатель мыши точно на стрелку связи в окне диаграммы и выполните двойной левый щелчок. Должно открыться диалоговое окно AssotiasinSpecificationfor… с полем Name:, в которое и вводится имя связи.
2.4.1 Пример разработанной диаграммы вариантов использования
На рисунке 2.7 приведена диаграмма вариантов использования для приложения АИС «Трудоустройство».
Описание предметной области. Организация предоставляет услуги по трудоустройству. Организацией ведется банк данных о существующих вакансиях. По каждой вакансии поддерживается определенная информация. Помимо проектирования реляционной базы данных АИС, необходимо еще и разработать приложение к ней.
Цель приложения: автоматизация информационного процесса определения подходящей вакансии по данным резюме (анкеты) соискателя.
Метод: дискриминантный анализ.
Пользователь: менеджер по работе с кадрами.
Рисунок 2.11 – Пример диаграммы вариантов использования
3 Задание на практическое занятие
Согласно своему варианту (Приложение А - Варианты заданий на практическую работу №2) разработать диаграмму вариантов использования, используя выше описанную методику ее построения.
4 Содержание отчета
- титульный лист;
- постановка задачи;
- диаграмма вариантов использования.
5 Контрольные вопросы для защиты лабораторной работы
1. Что представляет собой программа RationalRose?
2. Что такое язык UML?
3. Какие преимущества дает применение RationalRose при разработке программных систем?
4. Какие UML диаграммы доступны в RationalRose?
5. Для чего используется диаграмма UseCase?
6. Как создать новую диаграмму?
7. Какие значки находятся в строке инструментов диаграммы UseCase и каково их назначение? Как настроить панель инструментов для диаграмм в RR?
8. Какие типы связи существуют между элементами диаграммы вариантов использования?
9. Какие значки специфичны только для диаграммы UseCase?
10. Как при помощи диаграммы создать сценарий поведения?
Самостоятельная работа студента
Изучить основные модели программирования;
Написание реферата по теме: «Модели программирования».
Оформить отчёт к практической работы №2,3
Тема 2.2 Методы программирования
Устный опрос
1 История термина
2 Определение парадигмы программирования
3 Основные модели программирования
4 Подходы и приёмы
Самостоятельная работа студента
Изучить нисходящий и восходящий метод программирования;
Написание реферата по теме: «Современные методы программирования».
Тема 2.3 Структурное программирование
Устный опрос
1 Основные методы программирования
2 Классификация методов программирования
3 Метод восходящего программирования
4 Метод нисходящего программирования
Практическое занятие №4
Программирование алгоритмов ветвления
1. Составить программу для вычисления значения функции
Индивидуальные задания к лабораторной работе
1. Построить структурную схему алгоритма и написать программу для вычисления значения функции y(x). Предусмотреть форматируемый вывод исходных данных и результата с простыми пояснениями. Для этапа верификации разработать тест.
2. Предъявить преподавателю вышеперечисленные этапы работы, оформленные в рабочей тетради.
3 Произвести отладку программы . Предъявить результаты тестирования программы преподавателю. Оформить отчет.
Контрольные вопросы
1. Что понимают под алгоритмом ветвления?
2. Как обозначается ветвление в структурных схемах?
3. Какие условные операторы существуют в языке Turbo Pascal?
4. Из чего состоит логическое выражение?
5. В каких случаях используется оператор выбора?
6. В каких случаях используется составной оператор?
Самостоятельная (внеаудиторная) работа
Изучить построения прототипа программы;
Оформить отчёт к практической работы №4
Тема 2.4 Модульное программирование
Устный опрос
1. Цель структурного программирования
2. Принципы структурного программирования
3. Построение протопипа
4. Стратегии программирования
Практическое занятие №5
Модульное программирование в Delphi
Ход выполнения работы
1. Создайте модуль, реализующий арифметику комплексных чисел.
2. Создайте новый проект. Разместите на форме компонент bbRun
3. При каждом щелчке по кнопке bbRun учебной программы создается пара случайных комплексных чисел, над которыми осуществляются все четыре арифметических действия. Обработчик bbRunClick:
implementation
uses Cmplx;
{$R *.DFM}
procedure Tform1.bbRunClick(Sender: TObject);
var
x,y,z: Complex;
procedure Output(Operation: Char);
//Осуществляет нужное действие и выводит результат в mmOutput
var
S: String;
begin
case Operation of
'+': z := AddC(x,y) ;
'-': z := SubC(x,y) ;
'*': z := MulC(x,y) ;
'/': z := DivC(x,y) ;
end;
S := '('+FormatFloat('+0.0000;-0.0000',x.re)+
FormatFloat('+O.OOOOj;-O.OOOOj',x.im)+')'
+0peration+
'('+
FormatFloat('+0.0000;-0.0000',у.re)+
FormatFloat('+0.OOOOj;-0.OOOOj',у.im)+'='+
FormatFloat('+0.0000;-0.0000',z.re)+
FormatFloat('+0.OOOOj;-0.OOOOj',x.im);
mmOutput.Lines.Add(S) ;
end; //Output
begin //bbRunClick
x.re := Random;
x.im := Random;
y.re := Random;
y.im := Random;
Output('+');
Output('-');
Output ('*');
Output ('/');
mmOutput.Lines.Add('');
end;
Обратите внимание на ссылку uses cmpix в самом начале исполняемой части - именно она делает доступными обработчику bbRunClick объекты модуля Cmplx. Эту ссылку можно вставить с помощью среды Delphi: выберите опцию File | Use Unit и в появившемся окне щелкните по имени модуля Сmplx.
Самостоятельная работа студента
Изучить разработать модуль программы;
Оформить отчёт к практической работы №5
Тема 2.5Объектно-ориентированное программирование
Устный опрос
1. Цель модульного программирования
2. Принципы модульного программирования
3. Использование модуля в программах
4. Методы модульного программирования
Практическая работа №6
Знакомство с объектно -ориентированным программированием
1. Напишите строчку кода. Это очень простой код, состоящий из одного слова Close:
procedure TForm1.TerminateClick(Sender: Tobject);
begin
Close;
end;
Когда этот код исполняется, то главная форма (значит и все приложение) закрывается. Для проверки кода запустите программу и нажмите кнопку Terminate. Если все сделано правильно, программа закроется и Вы вернетесь в режим дизайна.
Прежде, чем перейти к следующему разделу, перейдите в Инспектор Объектов и измените значение свойства Name для кнопки на любое другое, например OK. Нажмите Enter для внесения изменений. Посмотрите в Редактор, Вы увидите, что код, написанный Вами изменился:
procedure Tform1.OkClick(Sender: Tobject);
begin
Close;
end;
Заметьте, что аналогичные изменения произошли и в определении класса:
Tform1 = class(Tform)
Edit1: Tedit;
Memo1: Tmemo;
Ok: Tbutton;
procedure OkClick(Sender: Tobject);
private
{ Private declarations }
public
{ Public declarations }
end;
Задание 2
1. Работа с компонентами в конструкторе форм Чтобы понять, как организована работа с компонентами непосредственно в самом конструкторе форм, а также какое место при этом занимает окно Object TreeView, рассмотрим форму, созданную в предыдущем разделе, на которой размещены три кнопки
2. Выделение компонентов. Компоненты, выделенные на форме, становятся активными. Это означает, что к ним можно применять действия для модификации их свойств либо непосредственно в конструкторе форм, либо в инспекторе объектов.
На этапе проектирования компонент можно сделать активным пятью различными способами.
1. Щелкнув на нем мышью в конструкторе форм.
2. При помощи рамки выделения, получаемой перемещением указателя мыши при нажатой левой кнопке мыши. При этом не обязательно, чтобы компонент был охвачен полностью — достаточно только его частичного пересечения с рамкой выделения.
3. Выделив мышью элемент древовидной структуры в окне Object TreeView.
4. При помощи клавиши <ТаЬ> и клавиш управления курсором с изображением стрелок, позволяющих переходить от компонента к компоненту в конструкторе форм, а также — в окне Object TreeView — при помощи полного набора клавиш управления курсором.
5. Выбрав необходимый компонент в раскрывающемся списке, расположенном в верхней части инспектора объектов.
Для того чтобы выделить одновременно несколько компонентов, необходимо выполнить одно из следующих действий.
• Воспользоваться рамкой выделения.
• Щелкнуть поочередно мышью на каждом из компонентов в конструкторе форм, удерживая нажатой клавишу <shif t>.
• Щелкнуть поочередно мышью на каждом из компонентов в окне Object TreeView, удерживая нажатой клавишу <shif t> или клавишу <ctrl>, или воспользоваться клавишами управления курсором при нажатой клавише <shif t>. Для того чтобы выделить все компоненты, можно выполнить команду Edit > Select All контекстного меню конструктора форм, или выполнить аналогичную команду главного меню Delphi.
Задание 3
1. Измените размеры кнопок Buttonl, Button2 и Buttons, а также расположите их на форме в произвольном порядке любым из выше описанных методов.
2. Выделите все три кнопки и выполните команду Position >• Size контекстного меню этих кнопок. В поле Width (Ширина), открывшегося диалогового окна, выберите значение Grow to largest (Увеличить до наибольшего), а в поле Height (Высота) — значение Shrink to smallest (Сжать до наименьшего).
3. Еще раз щелкните на выделенных компонентах правой кнопкой мыши и выполните команду Position >• Align их контекстного меню. В открывшемся на экране диалоговом окне выберите в поле Horizontal значение Center in window — центрирование в окне по горизонтали. В поле Vertical — значение Tops — выравнивание по вертикали относительно верхнего края последнего
выделенного компонента.
3. Расположите выделенные компоненты Button вдоль верхнего края формы.
Контрольные вопросы:
1. При проектировании приложения Delphi создает файлы. Перечислите их и напишите назначение.
2. Из чего состоит проект Delphi?
3. В каких вариантах выпускаются версий Delphi ?
4. Что может Delphi?
5. Перечислите 6 этапов создания программы.
Самостоятельная (внеаудиторная) работа
Изучить использование классов общего назначения для написания программ;
Оформить отчёт к практической работы №6
Тема 2.6 Компонентный подход
Устный опрос
1 Понятие объектно-ориентированного программирования
2 Спецификация классов на основе абстрагирования
3 Механизм наследования (виды наследования).
Практическая работа № 7
Разработка приложений
Методические указания
Delphi представляет собой систему быстрой разработки приложений Windows. В основе Delphi лежит Object Pascal фирмы Borland.
Окно Delphi имеет следующий вид (рис.4.1).
Компонентами называют экземпляры классов, которые являются потомками класса TComponent. Визуальными называются компоненты, которые видны на форме во время выполнения приложения.
Для создания приложения Delphi необходимо расположить на форме соответствующие визуальные компоненты, а затем свойствам и событиям этих компонентов присвоить нужные значения. Для того чтобы расположить объект на форме, следует выбрать нужную закладку страницы под палитрой компонентов, щелкнуть на пиктограмме соответствующего компонента, переместить указатель мыши на форму в требуемое место и щелкнуть опять. После того как объект будет выбран, вокруг него появятся маркеры, используемые для изменения размеров объекта. Кроме того, выбранный объект можно перемещать по форме. Для того чтобы выбрать объект, необходимо щелкнуть на нем один раз или выделить его имя в раскрывающемся списке окна Object Inspector. Можно сразу выбрать несколько компонентов, щелкнув и охватив их пунктирной линией.
Свойства представляют собой величины, определяющие характеристики объектов. Например, такие объекты, как кнопки и метки, имеют свойство Font, позволяющее назначить имя шрифта, его размер и стиль.
События определяют действия объекта во время работы программы. При двойном щелчке на значении события в исходный код программы будет встав-
|
1 - главное меню; 2 - панели инструментов; 3 - Палитра Компонентов; 4 - окно формы;
5 - окно редактора кода; 6 - окно Инспектора Объектов (Object Inspector).
лена заготовка обработчика события. В данном случае действия объекта можно запрограммировать, разместив один или больше операторов Object Pascal между ключевыми словами begin и end процедуры, которую Delphi вставляет автоматически.
При выборе двух или больше объектов в окне Object Inspector появятся их общие свойства и события. Любые изменения значений этих свойств и событий повлияют на выбранные объекты.
Delphi поддерживает визуальное представление вашего приложения в окне формы и представление в виде исходного кода Object Pascal в окне редактирования модуля. Оба представления синхронизированы. Изменения в одном окне повлекут за собой изменения в другом.
Каждый проект обладает, по меньшей мере, одной формой, являющейся главным окном программы. Проекты могут иметь несколько форм. Форма является компонентом, но она не присутствует в палитре компонентов. Форма создается при выполнении нового проекта или команды File/New Form. Для каждой формы имеется соответствующий модуль, содержащий код формы. Значение свойства Name и имя файла модуля формы должны различаться. Форма обладает свойствами и событиями, которые можно программировать для определения характеристик окна и выполнения действий. Шаблоны форм полезны для создания часто используемых экранов, прототипов и демонстрационных программ. Можно выбрать один из готовых шаблонов форм или образовать собственный.
Задание:
1. Ознакомьтесь со средой программирования Delphi.
2. Составьте и отладьте программу линейной структуры для расчета значений
Самостоятельная работа студента
Изучить принципы компонентного подхода;
Оформить отчёт к практической работы №7
Раздел 3 Язык программирования Delphi.
Тема 3.1 Основные понятия
Устный опрос
1. Цель компонентного подхода программирования
2. Принципы компонентного программирования
3. Построение нового компонента
Самостоятельная (внеаудиторная) работа
Подготовка к тест-опросу.
Тема 3.2 Подпрограммы Процедуры и функции
Устный опрос
1. Инструментальная среда Delphi
2. Палитра компонентов
3. Пустая форма и ее модификация
4. Основы языка Delphi
Практическая работа № 8
Разработка простой программы
Создать программу построения графика, в которой устанавливается масштаб, в цикле осуществляется построение графика функции, рисуются оси координат и печатаются на них числовые шкалы.
Описание плана разработки программы
1. Открыть новый проект.
2. Разместить на форме экземпляры компонентов: кнопка Button, область рисования
PaintBox.
3. Выполните следующие действия
Вкладка окна Имя свойства/
Выделенный объект Действие |
Object Inspector имя события |
Form1 Properties Caption Установка имени формы «График функции» |
Button1 Properties Caption Введите название «График» |
Events Onclick Написать процедуру, рисующую график по точкам |
PaintBox1 Properties Canvas Соединение линиями получаемых точек |
Button2 Properties Cap tion Введите название «Выход» |
Events Onclick Close; |
4. Сохраните проект, запустите и протестируйте его.
Листинг программы
procedure TForm1.Button1Click(Sender: Tobject);
function f(x:integer):integer;
var c:integer;
begin
c:=round(10*sin(0.1*x));
f:=c;
end;
var x:integer;
begin
PaintBox1.Canvas.LineTo(0,150);
PaintBox1.Canvas.LineTo(410,150);
x:=0;
for x:=0 to 350 do
begin
PaintBox1.Canvas.LineTo(x, f(x)+150);
end;
end;
procedure Tform1.Button2Click(Sender: Tobject);
begin
Close; end; end
5. Выберите вариант задания
№ |
Задание |
№ |
Задание |
1 |
Х от 0 до 250, F= round(10*cos(0.3*x)) |
6 |
Х от 0 до 350, F= sqr (5/tg(0.9*x)) |
2 |
Х от 0 до 255, F=sqrt (20*tg(0.5*x)) |
7 |
Х от 0 до 350, F= sqrt (10*cos(0.5*x)) |
3 |
Х от 0 до 340, F=sqr(10/cos(0.8*x)) |
8 |
Х от 0 до 360, F= sqrt (20*sin(0.8*x)) |
4 |
Х от 0 до 330, F= sqrt (15/tg(0.8*x)) |
9 |
Х от 0 до 320, F= round (15*tg(0.6*x)) |
5 |
Х от 0 до 340, F= round (10*tg(0.5*x)) |
10 |
Х от 0 до 321, F= sqr (8/sin(0.2*x)) |
Контрольные вопросы:
1. Как вызвать процедуру и функцию?
2. Как описывается процедура?
3. Как описывается функция?
4. Чем отличается процедура от функции?
5. В каком разделе описывается функция и процедура?
6. Какая инструкция пишется последней в функции?
7. Какие процедуры вызываются на объект?
Самостоятельная работа студента
Изучить процедуры и функции в Delphi;
Тема 3.3 Основные понятия ООП на примере интегрированной среды Delphi
Устный опрос
1. Понятие процедуры
2. Задание и описание процедуры Локализация имен
3. Заголовок и стандартные директивы
4. Функции. Понятие.
5. Задание и описание функции
Практическая работа№9
Изучение свойств и методов объектов
Создание нового проекта
Создать обработчик события нажатия на форму мышью который будет устанавливать цвет формы либо красным либо зеленым. Для этого в «Инспекторе объектов» перейдите на вкладку Eventsи два раза нажмите на строчку напротив надписиOnClick. Заметьте что при этом Дизайнер форм заменился на Окно редактирования модуля. Delphiавтоматически создала заготовку процедуры обработки события. Внутри можно писать свои действия.
procedure TForm1.FormClick(Sender: TObject);
begin
{Здесь можно писать код}
end;
Раньше мы меняли свойства формы используя Инспектор объектов. Есть еще один способ это обращение к свойствам напрямую через код. Для этого надо указать имя объекта (свойство Name) затем «.» и имя свойства в нашем случае свойство Color
procedure TForm1.FormClick(Sender: TObject);
begin
if(Form1.Color=clRed) then
Form1.Color:=clGreen
else
Form1.Color:=clRed;
end;
Запустите приложение и попробуйте несколько раз понажимать мышкой на окно.
Краткая справка о событиях которые понадобятся на данной лабораторной работе:
Событие OnClick – одинарное нажатие мышью на форму
Событие OnActivate – появление формы на экране (в первый раз и также при разворачивании после сворачивания в системную панель)
Событие OnMouseDown – нажатие мышью на форму
Событие OnPaint – графическое рисование на форме
Экспериментальный раздел работы
1. Создайте обработчик события нажатия на клавишу клавиатуры (OnKeyPress) поместите в процедуру следующий код:
Form1.Canvas.Rectangle(0, 0, Form1.Width, Form1.Height);
Form1.Canvas.Font.Height:=40;
Form1.Canvas.Font.Color:=clYellow;
Form1.Canvas.TextOut(1, 1, 'Нажата клавиша: ' + Key);
Запустите приложение и попробуйте понажимать на клавиши. Разберем пример поподробнее.
Представим что форма это полотно на котором можно рисовать. Рисование происходит через объект Canvas. Этот объект содержит большое количество команд для рисования. Например вызывая метод Rectangle мы нарисуем прямоугольник. Вывод текста графическим методом происходит с помощью метода TextOut в который передается координаты начальной точки от которой происходит вывод и сам текст.
Итак обработчик события при нажатии на клавишу записывает в переменную Key значение нажатой буквы. Затем мы рисуем прямоугольную область чтобы стереть с экрана лишнюю информация. Потом используя объект Font мы задаем размер и цвет текста. И методом TextOut выводим значение нажатой клавиши на экран.
Поэкспериментируйте с программой. Попробуйте закомментировать строчку с рисованием прямоугольника и посмотрите что будет при нажатии например таких клавиш как «W».
2. Сделаем возможность рисовать на форме подобно тому как рисуют в программе Paint. При нажатой клавиши мыши происходит рисование.
Создайте обработчик события OnMouseDown. Поместите в него следующий код:
Form1.Canvas.Pen.Color:=clBlack;
Form1.Canvas.MoveTo(X, Y);
mousedown1:=true;
Свойство объекта Canvas – Pen отвечает за рисование линий. Устанавливаем цвет линий в черный.
MoveTo – переносит карандаш на точку с координатами X и Y (куда была нажата мышь).
Переменную mousedown1 стоит объявить в начале программы как глобальную имеющую тип boolean:
var
Form1: TForm1;
mousedown1: Boolean;
Она будет показывать нажата ли клавиша мыши в данный момент.
Создайте обработчик события OnMouseMove – перемещение мыши и поместите туда следующий код:
if (mousedown1=true) then
Form1.Canvas.LineTo(X, Y);
Если нажата клавиша то методом LineTo проводим линию до координат куда совершено перемещение.
Последний обработчик – OnMouseUp – когда мы отпускаем кнопку мыши:
mousedown1:=false;
Запустите приложение и попробуйте порисовать. Заметьте что когда вы отпускаете кнопку форма меняет цвет и рисунок стирается. Попробуйте понять почему это происходит.
Вырежьте код внутри обработчика события OnClick, создайте обработчик события OnDblClickи вставьте туда этот код. Обратите внимание что при сохранении и компиляции пустые обработчики автоматически удаляются.
Теперь цвет фона будет меняться при двойном нажатии на левую кнопку мыши.
Задание
1. Сделать замену надписи и стандартного цвета формы при запуске приложения.
2. Сделать вывод сообщений о нажатой клавише не в сверху, а посередине.
3. Поменять цвет шрифта на зеленый если общий фон красный и на красный если общий фон зеленый, при смене цвета фона.
4. Сделать чтобы размер шрифта задавался случайно (в пределах от 20 до 50) при запуске приложения и оставался таким же на всем периоде его работы.
Практическая работа № 10
Разработка фрагмента ПС с использованием ОПП
Ход работы
1. Создать программы для решения арифметического выражения по вариантам.
2. Ответить на контрольные вопросы.
Рекомендации:
1. Вычисления должны производиться по нажатию кнопки (Button)
2. Для ввода значений использовать компонент Edit, размещений текста компонент Label, результат вывести в Label.
3. Используйте функцию StrToFloat, FloatToStr
Например:
А:=StrToFloat(Edit1.text);
Варианты заданий
№ |
задание |
№ |
задание |
1 |
У=(а+4)/в |
4 |
У=с+а/5 |
2 |
У=(в-с)/2 |
5 |
У=20*(а+в) |
3 |
У=(а+в)-(в/2) |
6 |
У=10/(в-с) |
Контрольные вопросы:
6. При проектировании приложения Delphi создает файлы. Перечислите их и напишите назначение.
7. Из чего состоит проект Delphi?
8. В каких вариантах выпускаются версий Delphi ?
9. Что может Delphi?
10. Перечислите 6 этапов создания программы.
Самостоятельная работа студента
Изучить иерархию компонентов среды разработки Delphi;
Подготовка к тест-опросу;
Оформить отчёт к практической работы №9,10
Тема 3.4 Иерархия классов в среде Delphi
Устный опрос
1 Классы общего назначения
2 Обработка исключений
3 Списки. Наборы строк и объектов
4 Потоки данных. Графический инструментарий.
Практическая работа №11
В листинге 1 приведен текст модуля компонента NkEdit после внесения всех необходимых изменений.
Листинг 1. Модуль компонента NkEdit
unit NkEdit;
interface
uses
Windows, Messages, SysUtils,
Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TNkEdit = class(TEdit)
private
FNumb: single; // число, находящееся в поле редактирования
/// Это описание функции доступа и процедуры установки поля FNumb
function GetNumb: single;
procedure SetNumb(value:single);
protected
procedure KeyPress(var Key: Char);
override;
public
published
constructor Create(AOwner:TComponent);
override; property Numb : single
read GetNumb write SetNumb; // свойство компонента
end;
procedure Register;
implementation
procedure Register; // процедура регистрации компонента
begin
RegisterComponents('Samples',[TNkEdit]);
end;
// конструктор компонента
constructor TNkEdit.Create(AOwner:TComponent);
begin
// don't forget to call the ancestors' constructor
inherited Create(AOwner);
end;
// функция доступа к полю FNumb
function TNkEdit.GetNumb:single;
begin
try // поле Text может быть пустым Result:=StrToFloat(text); except
on EConvertError do begin
Result:=0; text: =' ' ;
end; end; end;
// процедура записи в поле FNumb
procedure TNkEdit.SetNumb(Value:single);
begin
FNumb:=Value;
Text:=FloatToStr(value);
end;
// процедура обработки события KeyPress
procedure TNkEdit.KeyPress(var key:char) ;
begin
case key of
'0'.. '9', #8, #13: ;
'-': if Length(text)<>0 then key:=#0;
else
if not ((key = DecimalSeparator) and
(Pos(DecimalSeparator,text)=0))
then key:= #0;
end;
inherited KeyPress(key);
// вызов процедуры обработки события
// OnKeyPress родительского класса
end; end.
В описание класса TNkEdit добавлено объявление свойства Numb, которое представляет собой число, находящееся в поле редактирования. Для хранения Значения свойства Numb используется поле FNumb. Функция GetNumb необходима для доступа к полю FNumb, а процедура setNumb — для установки значения свойства.
Конструктор класса TNkEdit сначала вызывает конструктор родительского класса (TEdit), присваивает значение свойству Text, затем устанавливает значение свойства Numb.
Реакция компонента NkEdit на нажатие клавиши клавиатуры определяется процедурой обработки события TNkEdit.KeyPress, которая замещает соответствующую процедуру базового класса. В качестве параметра процедура TNkEdit.KeyPress получает код нажатой клавиши. Перед вызовом процедуры обработки события OnKeyPress родительского класса код нажатой клавиши проверяется на допустимость. Если нажата недопустимая для компонента NkEdit клавиша, то код символа заменяется на ноль. Допустимыми для компонента NkEdit являются цифровые клавиши, разделитель целой и дробной частей числа (в зависимости от настройки Windows: точка или запятая), "минус", <Backspase> (позволяет удалить ошибочно введенный символ) и <Enter>.
Здесь следует вспомнить, что в тексте программы дробная часть числовой константы отделяется от целой части точкой. Во время работы программы при вводе исходных данных пользователь должен использовать тот символ, который задан в настройке Windows. В качестве разделителя обычно применяют запятую (это для России стандартная настройка) или точку. Приведенная процедура обработки события OnKeyPress учитывает, что настройка Windows может меняться, и поэтому введенный пользователем символ сравнивается не с константой, а со значением глобальной переменной
DecimalSeparator, которая содержит символ-разделитель, используемый в Windows в данный момент.
После ввода текста модуля компонента модуль нужно откомпилировать и сохранить.
Тестирование модуля компонента
Перед добавлением нового компонента в палитру компонентов необходимо всесторонне его проверить. Для этого надо создать приложение, использующее компонент и убедиться, что компонент работает так, как надо.
Во время создания формы приложения нельзя добавить в форму компонент, значка которого нет в палитре компонентов. Однако такой компонент может быть добавлен в форму динамически, т. е. во время работы приложения.
Создается тестовое приложение обычным образом: сначала создается форма приложения, а затем — модуль приложения.
Вид формы приложения тестирования компонента NkEdit- приведен на рис..2.
Рис2. Форма приложения Тест компонента NkEdit
Форма содержит две метки и командную кнопку. Первая метка предназначена для вывода информационного сообщения, вторая метка (на рисунке она выделена) используется для вывода числа, введенного в поле редактирования. Самого поля редактирования компонента NkEdit в форме нет. Этот компонент будет создан динамически во время работы программы, но для него оставлено место над полем метки.
После создания формы в модуль приложения, автоматически сформированный Delphi, необходимо внести следующие дополнения:
1. В список используемых модулей (раздел uses) добавить имя модуля тестируемого компонента (NkEdit).
2. В раздел объявления переменных (var) добавить инструкцию объявления компонента. Здесь следует вспомнить, что компонент является объектом, поэтому объявление компонента в разделе переменных не обеспечивает создание компонента, а только генерирует указатель на компонент, следовательно необходима инструкция вызова конструктора объекта, которая действительно создает компонент (объект).
3. Для формы приложения создать процедуру обработки события oncreate, которая вызовом конструктора тестируемого компонента создаст компонент и установит значения его свойств.
В листинге 3 приведен модуль приложения тестирования компонента NkEdit.
Листинг 2. Тест компонента NkEdit
unit tstNkEdit_; interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics,
Controls,Forms, Dialogs, StdCtrls,
NkEdit; // ссылка на модуль компонента
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Buttonl: TButton;
procedure FormCreate(Sender: TObject);
procedure ButtonlClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
myEdit: TnkEdit; // компонент NkEdit
implementation
{$R *.dfm)
procedure TForm1.FormCreate(Sender: TObject);
begin
// создадим компонент и поместим его на форму
myEdit := TNkEdit.Create(self);
myEdit.Parent := self;
myEdit.Left := 8;
myEdit.Top := 64;
end;
procedure TForm1.ButtonlClick(Sender: TObject);
begin
label2. Caption := FloatToStr (myEdit .Numb) ;
end;
end.
Тестируемый компонент создается процедурой обработки события Formcre-ate (Создание формы) посредством вызова конструктора компонента, которому в качестве параметра передается значение self, показывающее, что владельцем компонента является форма приложения.
После создания компонента обязательно должен быть выполнен важный шаг: свойству Parent необходимо присвоить значение. В данном случае тестируемый компонент находится в форме приложения, поэтому свойству Parent присваивается значение self.На рис.3 приведено окно программы Тест компонента NkEdit во время ее работы, после ввода числа в поле редактирования и щелчка на кнопке Тест.
Рис. 3. Тестирование компонента. Поле ввода — компонент NkEdit
Установка компонента
Для того чтобы значок компонента появился в палитре компонентов, компонент должен быть добавлен в один из пакетов (Packages) компонентов
Delphi. Пакет компонентов — это файл с расширением dpk (Delphi Package File). Например, компоненты, созданные программистом, находятся в пакете Dclusr70.dpk.
Во время добавления компонента в пакет Delphi использует модуль компонента и файл ресурсов компонента, в котором должен находиться битовый образ значка компонента. Имя файла ресурсов компонента должно обязательно совпадать с именем файла модуля компонента. Файл ресурсов имеет расширение dcr (Dynamic Component Resource). Битовый образ, находящийся внутри файла ресурсов, должен иметь имя, совпадающее с именем класса компонента.
Ресурсы компонента
Файл ресурсов компонента можно создать при помощи утилиты Image Editor, которая запускается выбором из меню Tools команды Image Editor.
Для того чтобы создать новый файл ресурса компонента, нужно из меню File выбрать команду New и из появившегося списка выбрать тип создаваемого файла — Component Resource File.
В результате открывается окно файла ресурсов Untitledl.dcr, а в меню диалогового окна Image Editor появляется новый пункт — Resource. Теперь нужно из меню Resource выбрать команду New/Bitmap и в открывшемся окне Bitmap Properties установить характеристики битового образа значка компонента: Size — 24x24 пиксела, Colors — 16.
В результате этих действий в создаваемый файл ресурсов компонента будет добавлен новый ресурс — битовый образ с именем Bitmap1 Двойной щелчок на имени ресурса (Bitmapl) раскрывает окно редактора битового образа, в котором можно нарисовать нужную картинку.
Изображение в окне графического редактора можно увеличить. Для этого необходимо выбрать команду Zoom In меню View.
Следует обратить внимание, что цвет правой нижней точки рисунка определяет "прозрачный" цвет. Элементы значка компонента, закрашенные этим цветом, на палитре компонентов Delphi не видны.
Перед тем, как сохранить файл ресурсов компонента, битовому образу надо присвоить имя. Имя должно совпадать с именем класса компонента. Чтобы задать имя битового образа, необходимо щелкнуть правой кнопкой мыши на имени битового образа (Bitmap1), выбрать в появившемся контекстном меню команду Rename и ввести новое имя.
Созданный файл ресурсов компонента нужно сохранить в том каталоге, в котором находится файл модуля компонента. Для этого надо из меню File выбрать команду Save.
Внимание!
Имя файла ресурсов компонента (Edit.dcr) должно совпадать с именем модуля компонента (Edit.pas), а имя битового образа (Edit) — с именем класса компонента (Edit).
Установка
После создания файла ресурсов компонента, в котором находится битовый образ значка компонента, можно приступить к установке компонента. Для этого надо из меню Component выбрать команду Install Component и заполнить поля открывшегося окна Install Component (рис. 16.5).
Рис..4. Диалоговое окно Install Component
В поле Unit file name нужно ввести имя файла модуля. Для этого удобно воспользоваться кнопкой Browse.
Поле Search path (Путь поиска) должно содержать разделенные точкой с запятой имена каталогов, в которых Delphi во время установки компонента будет искать необходимые файлы, в частности файл ресурсов компонента. Если имя файла модуля было введено в поле Unit file name выбором файла из списка, полученного при помощи кнопки Browse, то Delphi автоматически добавляет в поле Search path имена необходимых каталогов.
Примечание
Файл ресурса компонента должен находиться в одном из каталогов, перечисленных в поле Search path. Если его там нет, то компоненту будет назначен значок его родительского класса.
Поле Package file name должно содержать имя пакета, в который будет установлен компонент. По умолчанию компоненты, создаваемые программистом, добавляются в пакет Dclusr70.dpk.
Поле Package description содержит название пакета. Для пакета Dclusr70.dpk
ЭТО текст: Borland User's Components.
После заполнения перечисленных полей и нажатия кнопки ОК начинается процесс установки. Сначала на экране появляется окно Confirm, в котором Delphi просит подтвердить обновление пакета.
Рис. 5 Запрос подтверждения обновления пакета в процессе установки компонента
После нажатия кнопки Yes процесс установки продолжается. Если он завершается успешно, то на экране появляется информационное сообщение (рис. 5) о том, что в результате обновления пакета палитра компонентов обновлена, т. е. в нее добавлен значок компонента, и новый компонент зарегистрирован.
Рис. 5. Сообщение о неуспешной установке компонента
После установки компонента в пакет открывается диалоговое окно Package (Редактор пакета компонентов, в котором перечислены компоненты, находящиеся в пакете.
На этом процесс установки компонента заканчивается. В результате на вкладке палитры компонентов, имя которой было задано при создании модуля компонента, появляется значок установленного компонента (рис. 6).
Рис. 6. Вкладка Samples после установки компонента NkEdit
Ошибки при установке компонента
Во время работы над новым компонентом наиболее частой ошибкой является попытка установить (переустановить) компонент, который уже находится в одном из пакетов (обычно такое желание возникает после внесения изменений в модуль компонента).
В этом случае Delphi выводит сообщение: The package already contains unit named... (Пакет уже содержит модуль, который называется...) и процесс установки завершается. Для того чтобы преодолеть эту ошибочную ситуацию и установить компонент в нужный пакет или установить в пакет обновленную версию компонента, необходимо сначала удалить компонент из пакета, а затем установить его снова.
Самостоятельная работа студента
Изучить графический инструментарий среды разработки Delphi;
Подготовка к тест-опросу;
Оформить отчёт к практической работы №11
Тема 3.5 Поля. Свойства. Методы
Устный опрос
1. Классы общего назначения
2. Обработка исключений
3. Списки. Наборы строк и объектов
4. Потоки данных. Графический инструментарий.
Самостоятельная работа студента
Изучить графический инструментарий среды разработки Delphi;
Тема 3.6 Библиотека визуальных компонентов
Устный опрос
1 Составляющие класса: поля, методы, свойства
2 Объявление класса
Практическая работа №12
Сообщения и события
Событие и процедура обработки события
Вид созданной формы подсказывает, как работает приложение. Очевидно, что пользователь должен ввести значение веса в фунтах в поле редактирования, затем щелкнуть на кнопке Пересчет. Щелчок на изображении командной кнопки — это пример того, что в Windows называется событием. Событие — это то, что происходит во время работы приложения. В Delphi у каждого события есть имя, например, щелчок кнопкой мыши это событие ondick, двойной щелчок — событие onDbiciick.
Ниже, в таблице, приведены некоторые события Windows. Событие
OnClick Происходит при щелчке кнопкой мыши
OnDblClick Происходит при двойном щелчке кнопкой мыши
OnEnter Происходит перед тем, как элемент управления действительно получает фокус
ОпЕггог Происходит, когда элемент контроля обнаруживает ошибку и не может вернуть информацию об ошибке вызывающей программе
OnExit Происходит непосредственно перед тем, как элемент управления теряет фокус
OnKeyDown Происходит при нажатии на клавишу. События
OnKeyDown и OnKeyPress — это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживае-' мая клавиша (в этот момент происходит событие OnKeyUp)
OnKeyPress Происходит, когда пользователь нажимает клавишу, которая генерирует печатаемый символ. Может происходить также при нажатии клавиши печатаемого символа с <Ctrl>. He происходит при нажатии клавиш <Tab>, <Enter>, клавиш перемещения курсора
OnKeyUp Происходит при отпускании нажатой клавиши
OnMouseDown Происходит при нажатии кнопки мыши
OnMouseMove Происходит при перемещении мыши
OnMouseUp Происходит при отпускании кнопки мыши
Реакцией на событие должно быть какое-либо действие. Например, реакцией на событие Ondick, произошедшее на кнопке Пересчет, должен быть пересчет веса из фунтов в килограммы. В Delphi реакция на событие реализуется как процедура обработки события. Таким образом, задача программиста состоит в написании необходимых процедур обработки событий.
Методику создания подобных процедур рассмотрим на примере процедуры
обработки события для кнопки.
Сначала следует маркировать (выделить) объект, для которого создается процедура обработки события, в нашем случае это командная кнопка Пересчет. Затем выбрать вкладку Events (события) окна Object Inspector. В результате этих действий в окне Object Inspector появится вкладка со списком событий, которые способен воспринимать маркированный компонент, в данном случае — командная кнопка.
В левой колонке вкладки перечислены имена событий, на которые может реагировать маркированный объект. Если для события определена процедура обработки события, то в правой колонке, рядом с именем события выводится ее имя.
Чтобы создать процедуру обработки события, надо сделать двойной щелчок в поле имени процедуры обработки события. В результате открывается окно редактора кода (вDelphi кодом называется текст программы) с макетом процедуры обработки события
Delphi автоматически присваивает процедуре обработки события имя. Имя процедуры обработки события состоит из двух частей. Первая часть идентифицирует форму, которой принадлежит объект, для которого создается процедура обработки события. Вторая часть имени идентифицирует сам объект и событие. В нашем случае имя формы —Formi, Bottoni — имя командной кнопки Пересчет, а имя события — click.
В окне редактора кода, между begin и end, можно печатать инструкции Object Pascal, реализующие процедуру обработки события.
Ниже приведен текст процедуры для события ondick на кнопке Пересчет.
procedure TFormI.ButtonlClick(Sender: TObject);
var
f: real; ( вес в фунтах }
k: real; ( вес в килограммах } begin
f:= StrToFloat(Edit1.Text) ;
k:= f*0.4059;
label2.caption:=Editl.text+' фунт(а/ов) это '+ FloatToStrF(k,ffGeneral,4,2)+ ' килограмм(а/ов)';
end;
Исходные данные программа получает из поля редактирования Editi, обращением к свойству Text. Свойство Text содержит строку символов, текст, поэтому, для преобразования изображения числа в число, в программе используется ФУНКЦИЯ StrToFloatF.
Вывод вычисленного значения программа осуществляет в поле метки Label2, присвоением ее свойству caption метки значения — текста сообщения.
Сохранить проект в отдельной папке.
Задание 2. Спроектировать приложение для перевода шкалы температур из Фаренгейта в Цельсия. Использовать для пересчета формулу (x-32) * 5/9 0C
Для работы с документами используются приложения: MDI (Multiple Document Interface) – интерфейс для одновременной работы со многими документами и SDI (Single Document Interface) – интерфейс для работы с одним документом. В MDI-приложениях два или более окон могут быть активными. В SDI-приложениях это невозможно. Различные документы имеют общее рабочее пространство, называемое родительским окном. В MDI-приложении родительское окно всегда является главной формой приложения. В нем возможны другие окна, в которых могут быть открыты различные документы. Эти окна не могут размещаться за пределами окна приложения. Они называются дочерними окнами.
В проект поместите четыре формы. В форме Unit1 в свойстве FormStyle установите значение fsMDIForm – родительскую форму. Все остальные формы определите как дочерние установкой значения fsMDIChild. Свойству Visible всех форм должно быть задано значение True. Включите в форму компонент TMainMenu. Назовите его Window. В это меню добавьте пункты Cascade, Tile и т.д. С их помощью можно управлять окнами MDI-приложения (рис. 11):
Рис. 11. Форма управления окнами
procedure TForm1.Tile1Click(Sender: TObject);
begin
TileMode:=tbVertical;
Tile;
end;
procedure TForm1.ArrangeIcons1Click(Sender: TObject);
begin
ArrangeIcons;
end;
procedure TForm1.Cascade1Click(Sender: TObject);
begin
Cascade;
end;
procedure TForm1.Next1Click(Sender: TObject);
begin
Next;
end;
procedure TForm1.Previous1Click(Sender: TObject);
begin
Previous;
end;
procedure TForm1.CLOSE1Click(Sender: TObject);
begin
IF ActiveMDIChild <> nil then
activeMDIChild.close;
end; end.
Задание№3. Каждой форме присвойте свой заголовок, используя свойство Caption. Для каждой дочерней формы установите разныt значения свойства WindowState. На каждой дочерней форме расположите по кнопке Button1. На каждую кнопку напишите процедуру изменения свойств другой формы (WindowState, Position, BorderStyle, Font).
Практическая работа №13
Сообщения и события
Залание1. На форму поместим компоненты: Label1 (Его свойство "Caption" изменим на надпись "Введите вес в футах и щелкните на пересчет); Label2; Edit1; Button1, изменив их соответствующие свойства, как показано на рисунке.
Событие и процедура обработки события
Вид созданной формы подсказывает, как работает приложение. Очевидно, что пользователь должен ввести значение веса в фунтах в поле редактирования, затем щелкнуть на кнопке Пересчет. Щелчок на изображении командной кнопки — это пример того, что в Windows называется событием. Событие — это то, что происходит во время работы приложения. В Delphi у каждого события есть имя, например, щелчок кнопкой мыши это событие ondick, двойной щелчок — событие onDbiciick.
Ниже, в таблице, приведены некоторые события Windows. Событие
OnClick Происходит при щелчке кнопкой мыши
OnDblClick Происходит при двойном щелчке кнопкой мыши
OnEnter Происходит перед тем, как элемент управления действительно получает фокус
ОпЕггог Происходит, когда элемент контроля обнаруживает ошибку и не может вернуть информацию об ошибке вызывающей программе
OnExit Происходит непосредственно перед тем, как элемент управления теряет фокус
OnKeyDown Происходит при нажатии на клавишу. События
OnKeyDown и OnKeyPress — это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживае-' мая клавиша (в этот момент происходит событие OnKeyUp)
OnKeyPress Происходит, когда пользователь нажимает клавишу, которая генерирует печатаемый символ. Может происходить также при нажатии клавиши печатаемого символа с <Ctrl>. He происходит при нажатии клавиш <Tab>, <Enter>, клавиш перемещения курсора
OnKeyUp Происходит при отпускании нажатой клавиши
OnMouseDown Происходит при нажатии кнопки мыши
OnMouseMove Происходит при перемещении мыши
OnMouseUp Происходит при отпускании кнопки мыши
Реакцией на событие должно быть какое-либо действие. Например, реакцией на событие Ondick, произошедшее на кнопке Пересчет, должен быть пересчет веса из фунтов в килограммы. В Delphi реакция на событие реализуется как процедура обработки события. Таким образом, задача программиста состоит в написании необходимых процедур обработки событий.
Методику создания подобных процедур рассмотрим на примере процедуры
обработки события для кнопки.
Сначала следует маркировать (выделить) объект, для которого создается процедура обработки события, в нашем случае это командная кнопка Пересчет. Затем выбрать вкладку Events (события) окна Object Inspector. В результате этих действий в окне Object Inspector появится вкладка со списком событий, которые способен воспринимать маркированный компонент, в данном случае — командная кнопка.
В левой колонке вкладки перечислены имена событий, на которые может реагировать маркированный объект. Если для события определена процедура обработки события, то в правой колонке, рядом с именем события выводится ее имя.
Чтобы создать процедуру обработки события, надо сделать двойной щелчок в поле имени процедуры обработки события. В результате открывается окно редактора кода (вDelphi кодом называется текст программы) с макетом процедуры обработки события
Delphi автоматически присваивает процедуре обработки события имя. Имя процедуры обработки события состоит из двух частей. Первая часть идентифицирует форму, которой принадлежит объект, для которого создается процедура обработки события. Вторая часть имени идентифицирует сам объект и событие. В нашем случае имя формы —Formi, Bottoni — имя командной кнопки Пересчет, а имя события — click.
В окне редактора кода, между begin и end, можно печатать инструкции Object Pascal, реализующие процедуру обработки события.
Ниже приведен текст процедуры для события ondick на кнопке Пересчет.
procedure TFormI.ButtonlClick(Sender: TObject);
var
f: real; ( вес в фунтах }
k: real; ( вес в килограммах } begin
f:= StrToFloat(Edit1.Text) ;
k:= f*0.4059;
label2.caption:=Editl.text+' фунт(а/ов) это '+ FloatToStrF(k,ffGeneral,4,2)+ ' килограмм(а/ов)';
end;
Исходные данные программа получает из поля редактирования Editi, обращением к свойству Text. Свойство Text содержит строку символов, текст, поэтому, для преобразования изображения числа в число, в программе используется ФУНКЦИЯ StrToFloatF.
Вывод вычисленного значения программа осуществляет в поле метки Label2, присвоением ее свойству caption метки значения — текста сообщения.
Сохранить проект в отдельной папке.
Задание 2. Спроектировать приложение для перевода шкалы температур из Фаренгейта в Цельсия. Использовать для пересчета формулу (x-32) * 5/9 0C
Для работы с документами используются приложения: MDI (Multiple Document Interface) – интерфейс для одновременной работы со многими документами и SDI (Single Document Interface) – интерфейс для работы с одним документом. В MDI-приложениях два или более окон могут быть активными. В SDI-приложениях это невозможно. Различные документы имеют общее рабочее пространство, называемое родительским окном. В MDI-приложении родительское окно всегда является главной формой приложения. В нем возможны другие окна, в которых могут быть открыты различные документы. Эти окна не могут размещаться за пределами окна приложения. Они называются дочерними окнами.
В проект поместите четыре формы. В форме Unit1 в свойстве FormStyle установите значение fsMDIForm – родительскую форму. Все остальные формы определите как дочерние установкой значения fsMDIChild. Свойству Visible всех форм должно быть задано значение True. Включите в форму компонент TMainMenu. Назовите его Window. В это меню добавьте пункты Cascade, Tile и т.д. С их помощью можно управлять окнами MDI-приложения (рис. 11):
Рис. 11. Форма управления окнами
procedure TForm1.Tile1Click(Sender: TObject);
begin
TileMode:=tbVertical;
Tile;
end;
procedure TForm1.ArrangeIcons1Click(Sender: TObject);
begin
ArrangeIcons;
end;
procedure TForm1.Cascade1Click(Sender: TObject);
begin
Cascade;
end;
procedure TForm1.Next1Click(Sender: TObject);
begin
Next;
end;
procedure TForm1.Previous1Click(Sender: TObject);
begin
Previous;
end;
procedure TForm1.CLOSE1Click(Sender: TObject);
begin
IF ActiveMDIChild <> nil then
activeMDIChild.close;
end; end.
Задани №3 Каждой форме присвойте свой заголовок, используя свойство Caption. Для каждой дочерней формы установите разныt значения свойства WindowState. На каждой дочерней форме расположите по кнопке Button1. На каждую кнопку напишите процедуру изменения свойств другой формы (WindowState, Position, BorderStyle, Font).
Самостоятельная работа студента
Подготовиться к контрольной работе;
Оформить отчёт к практической работы №12,13
Раздел 4 Тестирование и отладка
Тема 4.1 Методы тестирования
Устный опрос
1. Компоненты. Общие свойства компонентов
2. Иерархия компонентов
3. Имена и собственники
4. Родительские и дочерние компоненты
5. Поддержка справочной службы. Поддержка СОМ
Практическое занятие № 14
Научиться работать с типом «записи»
Задание:
Написать тест-диспетчер на Visual Test и проверить программу, разработанными тестами.
Входные данные будут вводиться из текстового файла TestT.txt, и результаты сравниваться с эталонным файлом TestE.txt. Результат сравнения выводить в окне (см рис ниже).
Примеры задач с решением и тестами
Вариант 1
Написать программу используя функции WinAPI (WinMain, MessageBox, CreateWindow, ShowWindow, TextOut) которая при запуске создает окно, которое используется для вывода результатов работы, и завершает свое выполнение при его закрытии.
Задать функцию fun11 с параметром str (строка с произвольными символами, содержащая не более 256 элементов). Функция fun11 переводит строку str в верхний регистр. Результаты выводить в Edit2.
Примечание: Заголовок окна для варианта 1 должен называться “Лабораторная работа № 1_1”, для варианта 2 -“Лабораторная работа № 1_2” и тд.
Входные данные вводятся при помощи Edit, если несколько входных данных, то для каждой переменной свой Edit. Например, по заданию нужно ввести переменные a,b,c. Для переменной a создаем Edit1, для переменной b – Edit2, для переменной c – Edit3.
Еxe файл должен называться: «Project1.exe».
Вывод результирующих значений для каждого варианта описывается отдельно.
Решение:
'*** Scenario 1:
'Scenario ("Тест №1")
Dim Dir$,Fname$,EdVal$,RezVal$,hwnd&,hwnd1&,hwnd2&
Fname="Lab1_1_ASU.exe"
EdVal=""
hwnd=0
if Exists(Fname) then
Open "TestT.txt" for input As #1 'Файл тестов
Open "TestE.txt" for input As #2 'Файл эталонных результатов
Dim n as Integer 'Переменная цикла
Dim Tst as String 'Тестовое значение
Dim Etl as String 'Этплонное значение
Dim Rsl as String 'Результат преобразования
n=0
Do While EOF (1) = Null
n=n+1
LINE INPUT #1, Tst$ 'Получаетм тестовое значение
LINE INPUT #2, Etl$ 'Получаем эталонное значение
Run Fname, NOWAIT
Sleep(1)
hwnd=WFndWnd("ЛАБОРАТОРНАЯ РАБОТА № 1_1")
if hwnd then
if WEditExists("@1") then
EdVal=EditText ("@1")
hwnd1 = GETHANDLE (1)
WEditSetText("@1", Tst )
WClkWnd(hwnd,100,100)
WButtonClick("ПРЕОБРАЗОВАТЬ") 'Щелчек по кнопке
if WEditExists("@2") then
RezVal=EditText ("@2")
hwnd2 = GETHANDLE (2)
Rsl = GetText(hwnd2)
Rsl = EditText("@2")
If Rsl = Etl Then
MSGBOX ("Тест №"+STR$(n)+" пройден")
Else
MSGBOX ("Тест №"+STR$(n)+" не пройден")
EndIf
print (" ======================================")
If Rsl = Etl Then
print ("Тест №"+STR$(n)+" пройден")
Else
print ("Тест №"+STR$(n)+" не пройден")
EndIf
print "Тест", " Эталон", " Результат"
print Tst, Etl, Rsl
else
Print "Не найден EditBox2"
endif
else
Print "Не найден EditBox1"
endif
Sleep(1)
bKillProcess(Fname)
else
Print "Файл не найден"
endif
Loop
MSGBOX ("Тестирование завершено, результаты в окне.")
Close #1
else
Print "Не найдено окно"
endif
'Scenario Cleanup 'and handling of scenario failure
'End Scenario
' ***** END TEST CASE *****
End
Входные данные |
Эталонные данные |
(пустая строка) |
Строка не должна быть пустой. |
123 |
123 |
aaa |
AAA |
a1 |
A1 |
! « » № ; % : ? aa * ( ) _ - + = \ / ` ~ @ # $ ^ & { } [ ] ‘ ’ “ ” < > , . |
! « » № ; % : ? AA * ( ) _ - + = \ / ` ~ @ # $ ^ & { } [ ] ‘ ’ “ ” < > , . |
aaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaab (260 символов) |
Длина строки не должна превышать 256 символов |
aaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaa (256 символов) |
AAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAA (256 символов) |
Самостоятельная работа студента
Изучить методы тестирования;
Оформить отчёт к практической работы №14
Тема 4.2 Отладка
Устный опрос
1 Понятие тестирования
2 Методы тестирования
3 Заповеди Майерса
Практическая работа №15
Отладка программ
Задание: написать и отладить программу, которая выводит таблицу значений функции и ее разложения в ряд
для х изменяющихся в интервале от xN до xK c шагом h.
Функцию s(x) вычислять с точностью до 0,001.
Вывести число итераций, необходимое для достижения заданной точности.
При составлении алгоритма вычисления удобно использовать рекуррентную последовательность (такую последовательность, каждое новое слагаемое которой зависит от одного или нескольких предыдущих).
Для получения расчетной формулы рассмотрим значение слагаемого при различных значениях k:
при
при
при и т.д.
Видно, что на каждом шаге слагаемое дополнительно умножается на . Исходя их этого, формула рекуррентной последовательности будет иметь вид: .
Полученная формула позволяет избавиться от многократного вычисления факториала и возведения в степень. Если в выражении имеется нерекуррентая часть, то ее следует рассчитывать отдельно.
Панель диалога представлена на рис. 3.1.
Рис. 3.1.
Текст программы приведен на Листинге 3.1.
Листинг 3.1.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Memo1: TMemo;
Button1: TButton;
Label5: TLabel;
Edit4: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.text:='0';
Edit2.text:='2';
Edit3.text:='0,25';
Edit4.text:='0,001';
end;
procedure TForm1.Button1Click(Sender: TObject);
var xn,xk,x,h,e,a,s,y :extended;
n,k:integer;
begin
Memo1.Clear;
Memo1.Lines.Add('Результаты ст. гр. 552002 Петрова И.В.');
xn:=StrToFloat(Edit1.Text);
Memo1.Lines.Add(' xn='+FloatToStrF(xn,ffFixed,6,2));
xk:=StrToFloat(Edit2.Text);
Memo1.Lines.Add(' xk='+FloatToStrF(xk,ffFixed,6,2));
h:=StrToFloat(Edit3.Text);
Memo1.Lines.Add(' h='+FloatToStrF(h,ffFixed,8,3));
e:=StrToFloat(Edit4.Text);
Memo1.Lines.Add(' e='+FloatToStrF(e,ffFixed,8,5));
x:=xn;
repeat
a:=1; S:=1; n:=0;
while (abs(a) > e) do begin
n:=n+1;
a:=-a*x/n;
s:=s+a;
end;
y:=exp(-x);
Memo1.Lines.Add('при x='+FloatToStrF(x,ffFixed,6,2)+' сумма =' + FloatToStrF(s,ffFixed,8,4)+’ y =' + FloatToStrF(y,ffFixed,8,4)+' N ='+IntToStr(n));
x:=x+h;
until x>(xk+h/2) // (xk+h/2) применяется для исключения
end; // потери последнего x
end.
3.4. Выполнение индивидуального задания
По указанию преподавателя выберите вариант задачи. Нарисуйте схему алгоритма. Спроектируйте панель диалога и напишите текст программы.
Вывести на экран таблицу значений функции y(x) и ее разложения в ряд s(x) для x изменяющихся от xn до xk с заданным количеством шагов M () и точностью e. Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(x) и Y(x).
После написания программы и исправления ошибок трансляции изучите средства отладки программ, для чего установите курсор на первый оператор и нажмите клавишу F4. После этого, нажимая клавишу F7, выполните пошагово программу и проследите, как меняются все переменные в процессе выполнения.
Таблица 3.1.
№ |
|
|
S(x) |
e |
Y(x) |
1. |
0.1 |
1 |
|
0.001 |
|
|
|
|
|
||
2. |
0.1 |
1 |
|
0.0001 |
|
3. |
0.1 |
1 |
|
0.001 |
|
4. |
0.1 |
1 |
|
0.01 |
|
5. |
0.1 |
0.7 |
|
0.001 |
|
6. |
0.1 |
1 |
|
0.0001 |
|
7. |
0.2 |
1 |
|
0.001 |
|
8. |
0.1 |
0.7 |
|
0.0001 |
|
9. |
0.3 |
1 |
|
0.001 |
|
10. |
0.1 |
0.5 |
|
0.0001 |
|
11. |
0.2 |
1 |
|
0.001 |
|
12. |
0.1 |
1 |
|
0.0001 |
|
13. |
-2 |
-0.1 |
|
0.01 |
|
14. |
0.2 |
0.8 |
|
0.0001 |
|
15. |
0.1 |
0.8 |
|
0.001 |
|
Самостоятельная работа студента
Изучить методы отладки в Delphi;
Оформить отчёт к практической работы №15
4.2Промежуточная аттестация
Вопросы к дифференциальному зачету
по дисциплине «Технология программирования»
для
студентов специальности
230113 Компьютерные системы и комплексы
3 курс
1. Основные положения, понятия, определения технологии программирования
2. Особенности структурного подходов к программированию
3. Особенности объектного подходов к программированию
4. Особенности компонентного подходов к программированию
5. Основные этапы решения задач на ЭВМ
6. Преимущества использования CASE-технологий
7. Применение Case-технологий при разработки ПС
8. Жизненный цикл и этапы разработки ПО
9. Моделей жизненного цикла ПО
10. Изменение жизненного цикла ПО при использовании CASE-технологий
11. Критерии качества программных продуктов
12. Понятие архитектуры ПС
13. Свойства и характеристики модулей.
14. Функции и классификация таблиц решений
15. Методика составления таблиц решений
16. Достоинства и недостатки различных подходов к разработке программного обеспечения
17. Основные эксплуатационные требования к программным продуктам
18. Основные методы ручного контроля
19. Методы формирования тестовых наборов для тестирования маршрута
20. Методы формирования тестовых наборов при функциональном тестировании
21. Виды контроля качества разрабатываемого программного обеспечения.
22. Основные методы отладки программного обеспечения
23. Классификация ошибок. Ошибки выполнения, компоновки
24. Основные методы программирования
25. Инструментальная среда Delphi
26. Понятие процедуры, функции и модуля.
27. Понятие классы, компоненты и объекты
28. Инкапсуляция, наследование, полиморфизм
29. Иерархия классов в среде Delphi
30. Компоненты. Общие свойства компонентов
31. Иерархия компонентов. Имена и собственники
32. Поддержка справочной службы. Поддержка СОМ
Практическая часть
1. Построить структурную схему алгоритма и написать программу для вычисления значения функции f(x.y). для заданных значений a, b, c (из таблицы 1) и произвольного x.
2. Предусмотреть форматируемый вывод исходных данных и результата с простыми пояснениями.
3. Для этапа верификации разработать тест.
Вариант 1
где
Вариант 2
где .
Вариант 3
где
Вариант 4
где
Вариант 5
где
Вариант 6
где
Вариант 7
где .
Вариант 8
где
Вариант 9
где
Вариант 10
где
Вариант 11
где
Вариант 12
где
Вариант 13
где
Вариант 14
где
5. Критерии оценки индивидуальных образовательных достижений по результатам текущего и промежуточного контроля
5.1.Оценка индивидуальных образовательных достижений обучающихся по результатам текущего контроля и промежуточной аттестации производится в соответствии с системой оценки устного опроса, решения задач, контрольных работ, письменных работ, тестирования, заполнения таблиц, диктантов, ответов на вопросы билетов промежуточной аттестации, выполнения заданий билетов промежуточной аттестации и т.д.:
без ошибок – отлично;
не более 2х неточностей/ошибок – хорошо;
3-4 ошибки – удовлетворительно;
более 4х ошибок, нераскрытие темы, невыполнение задания - неудовлетворительно.
6. Рекомендуемая литература для разработки оценочных средств и подготовке обучающихся к аттестации
1. Гниденко, И. Г. Технологии и методы программирования : учебное пособие для прикладного бакалавриата / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. — М. : Издательство Юрайт, 2017. — 235 с. — (Серия : Бакалавр. Прикладной курс). — ISBN 978-5-534-02816-4. https://biblio-online.ru/book/E0A213EF-E61B-4F8B-A4E5-D75FD4E72E10
2. Лаврищева, Е. М. Программная инженерия и технологии программирования сложных систем : учебник для вузов / Е. М. Лаврищева. — М. : Издательство Юрайт, 2017. — 432 с. — (Серия : Бакалавр. Академический курс). — ISBN 978-5-534-04591-8. https://www.biblio-online.ru/book/DCD7188A-4AAB-4B59-84CD-40A05E3676A7
Дополнительная:
3. Технологии программирования: Учебник./В.А. Камаев, В.В. Костерин. – 2-е изд., перераб. И доп. – М.: Высш.шк., 2016. – 454 с.
4. Технология программирования: Учебник для вузов Иванова Г.С. -М.: Изд-во МГТУ им. Н.Э. Баумана, 2015.
5.
Хомоненко А.Д.
Delphi 7 / Под общей редакцией А.Д. Хомоненко - СПб.: БХВ - Петербург,
2015.-1216 с.
6. Культин Н.И. Delphi в задачах и примерах. - СПб.: БХВ - Петербург, 2015. - 288 с.
Авторы-составители:
преподаватели
Алексеева М.В.
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.