close

Вход

Забыли?

вход по аккаунту

Илюшечкина Оксана Васильевна. Программно-методическое обеспечение темы «процедуры и функции пользователя, и их использование в объектно-ориентированной среде Delphi» для студентов физико-математического факультета

код для вставки
6
Аннотация
Выпускная квалификационная работа на тему «Программно-методическое
обеспечение темы «Процедуры и функции пользователя, и их использование в
объектно-ориентированной среде Delphi» для студентов физико-математического
факультета» содержит 122 страницы текста, рисунков –22, таблиц –7,
использованных источников – 43.
В настоящее время при изучении вопросов объектно-ориентированного
программирования следует особое внимание уделить разработке и эффективному
осознанному использованию студентами процедур и функций для создания
приложений. Как показал анализ учебно-методической литературы и практика
преподавания данной дисциплины, эта тема вызывает большие затруднения у
обучающихся, и существующая методическая литература в полной мере не
раскрывает все возможности использования процедур и функций пользователя в
объектно-ориентированном программировании.
Ключевые
слова:
Федеральный
государственный
стандарт
высшего
образования по направлению подготовки 44.03.01 профиль «информатика»,
образовательные технологии, тематическое планирование, фонд оценочных
средств.
Предмет исследования. Программно – методическая система обучения по
теме «Процедуры и функции пользователя и их использование в объектноориентированном
программировании
»
Delphi
для
студентов
физико-
математического факультета.
Объект исследования. Процесс преподавания темы «Процедуры и функции
пользователя
и
их
использование
в
объектно-ориентированном
программировании Delphi » для студентов физико-математического факультета.
Цель работы.
Разработка программно-методического обеспечения по теме
«Процедуры и функции пользователя и их использование в объектноориентированном программировании Delphi » для студентов направления
подготовки 44.03.01 «Педагогическое образование» профиль «Информатика».
7
- Метод исследования. Для исследования применяются методы: анализ
учебно-методической литературы, наблюдение, опрос, тестирование.
Результаты работы. В выпускной квалификационной работе разработано
тематическое планирование для студентов очного и заочного отделения
направления подготовки
«Информатика».
44.03.01
«Педагогическое образование»
профиль
Разработано программно-методическое обеспечение по теме
«Процедуры и функции пользователя и их использование в объектноориентированном
программировании
Delphi
»
для
студентов
физико-
математического факультета обучающимся по направлению подготовки 44.03.01
«Педагогическое образование» профиль «Информатика»:
- лекционные занятия;
- лабораторные работы;
- фонд оценочных средств для контроля знаний.
Работа имеет теоретическое и практическое значение, т.к. разработанные
материалы могут применятся при проведении занятий по теме «Процедуры и
функции пользователя и их использование в объектно-ориентированном
программировании Delphi » для студентов направления подготовки
«Педагогическое образование» профиль «Информатика».
.
44.03.01
8
СОДЕРЖАНИЕ
ВВЕДЕНИЕ………………………………………………………………………………..…..…..10
ГЛАВА I.
АНАЛИЗ ПРОГРАММНО-МЕТОДИЧЕСКОГО ОБЕСПЕЧЕНИЯ
ПРЕПОДАВАНИЯ ДИСЦИПЛЫ "ПРОГРАММИРОВАНИЕ"……………………….13
1.1 Анализ Федерального государственного образовательного стандарта высшего
образования по направлению подготовки 44.03.01 "Педагогическое образование"
профиль «Информатика»……………………………………………………………..13
1.2. Место дисциплины "Программирование" в структуре ООП направления
подготовки 44.03.01 "Педагогическое образование" профиль «Информатика».....16
1.3. Методические подходы к обучению программированию в визуальных средах
в условиях бакалавриата
будущего учителя информатики
в рамках курса
"Программирование"……………………………………………………………….....20
1.4.
Анализ
преподавания
раздела
"Объектно-ориентированное
программирование" дисциплины "Программирование"…………………………..25
1.5. Методические аспекты преподавания темы "Процедуры и функции" при
изучении объектно-ориентированного языка программирования Dеlрhi………...32
ГЛАВА II. ПРОГРАММНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ТЕМЫ «ПРОЦЕДУРЫ И
ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ, ИХ ИСПОЛЬЗОВАНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ
СРЕДЕ ПРОГРАММИРОВАНИЯ DELPHI»……………………………………………………….41
2.1. Цели и задачи изучения темы «Процедуры и функции пользователя, их
использование в объектно-ориентированной среде программирования Dеlрhi »..41
2.2. Содержание и тематическое планирование…………………………………….42
2.3. Аннотации лекционных и лабораторных
занятий на тему «Процедуры и
функции в объектно-ориентированном программировании Delphi»……….……..43
2.4. Методические рекомендации по проведению практических работ по решению
типовых задач по теме «Процедуры и функции» в объектно - ориентированном
программировании Dеlрhi……………………………………………………………47
2.5. Конспекты занятий по теме «Процедуры и функции» в объектноориентированном программировании ........................................................................ 50
9
Лекция 1. «Процедуры и функции в Dеlрhi».............................................................. 50
Лекция 2. «Линейные массивы в Dеlрhi и использование процедур и функций для
их ввода и обработки» .................................................................................................. 63
Лекция 3. «Двумерные массивы. Применение процедур и функций при вводе и
обработке массивов в Dеlрhi » ..................................................................................... 85
Лекция 4. «Обработка матриц в Dеlрhi с помощью процедур и функций
пользователя» ................................................................................................................ 94
Лекция 5. «Обработка файлов с использованием процедур и функций»…………98
Лабораторная работа № 1. «Файлы с использованием процедур и функций». ... 107
Лабораторная работа №2. «Использование процедур и функций в Dеlрhi » ........ 67
2.6. Фонд оценочных средств по дисциплине
«Программирование»
для
студентов направления подготовки 44.03.01 профиль «информатика»……........112
ЗАКЛЮЧЕНИЕ………………....................................................................................119
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ………………………….….......120
10
ВВЕДЕНИЕ
Курс «Программирование» является одним из основных в системе
предметной подготовки бакалавров педагогического образования по профилю
«Информатика», так как именно данная дисциплина осуществляет подготовку
будущих учителей информатики в области алгоритмизации и программирования.
Важность данной подготовки с одной стороны обусловлена переходом школьного
курса информатики на ФГОС общего образования, а это значит, формирование
представления об информатике как о фундаментальной дисциплине. Именно
линия
«Алгоритмизация
и
программирование»
и
является
одной
из
фундаментальных составляющих школьного курса информатики [34].
С
другой
стороны
в
государственными стандартами
соответствии
с
новыми
федеральными
высшего профессионального образования для
направления «Педагогическое образование» профиль «Информатика», будущий
бакалавр должен обладать определенными компетенциями в составлении
алгоритмов и написании программ на современном языке программирования
(хотя и не обязан быть высококвалифицированным программистом)[2]. Кроме
того, что от уровня подготовки в области алгоритмизации и программирования
напрямую зависит успешность изучения многих
подготовки:
«Численные
методы»,
«Методы
дисциплин
сортировки
предметной
и
поиска»,
«Компьютерное моделирование» и других.
Следует отметить, что алгоритмическая компетентность [8], являясь
составной
частью
интеллектуальной
компетентности
будущих
учителей
информатики, подразумевает:
 знание основных приемов и методов решения практических задач;
 осознанное
владение
всей
структурой
процесса
решения
практических задач;
 умение обосновывать логические операции;
 умение
осуществлять
анализ
условия
задачи
приведенного анализа решать типовые задачи;
и
на
основе
11
 умение
проводить систематизацию и анализ
существенных и
второстепенных свойств изучаемого объекта;
 способность сравнивать результаты и делать выводы из приведенного
сравнения, для оптимизации разработанного алгоритма решения
задачи;
 умение проводить обобщения, применять свои знания, полученные
при решении одной задачи, на класс других задач и в нестандартных
ситуациях
Современные тенденции развития информатики, отражают переход к новой
парадигме программирования объектно-ориентированного программирования
(ООП) и изучение на ее основе информационных и коммуникационных
технологий [4].
Особое внимание при изучении вопросов программирования на наш взгляд,
следует уделить разработке и эффективному осознанному использованию
процедур и функций для создания приложений. Как показал анализ учебнометодической литературы и практика преподавания данной дисциплины, эта тема
вызывает большие затруднения у студентов, и существующая методическая
литература в полной мере не раскрывает все возможности использования
процедур
и
функций
пользователя
в
объектно-ориентированном
программировании. Всё это определяет актуальность темы ВКР при подготовке
будущих специалистов и поможет обеспечить подготовку бакалавров в области
программирования в соответствии с компетенциями, которые позволяют
использовать полученные знания и умения для решения профессиональных и
учебно-исследовательских задач, реализуемых образовательной программой.
Объектом исследования данной выпускной квалификационной работы
является процесс преподавания темы «Процедуры и функции пользователя и их
использование в объектно-ориентированном программировании Delphi » для
студентов физико-математического факультета.
Предметом исследования выпускной квалификационной работы является
программно – методическая система обучения по теме «Процедуры и функции
12
пользователя
и
их
использование
в
объектно-ориентированном
программировании Delphi » для студентов физико-математического факультета.
Цель данной выпускной квалификационной работы состоит в разработке
программно-методического обеспечения по теме «Процедуры и функции
пользователя
и
их
использование
в
объектно-ориентированном
программировании Delphi » для студентов направления подготовки
44.03.01
«Педагогическое образование» профиль «Информатика».
Достижение поставленной цели предусматривает решение ряда задач:
-Проанализировать учебно-методическую литературу и современное состояние
преподавания данной темы студентам физико-математического факультета,
обучающимся
по
направлению
подготовки
44.03.01
«Педагогическое
образование» профиль «Информатика»;
- определить основные цели, задачи и особенности преподавания
темы
«Процедуры и функции пользователя в их использование в объектноориентированном программировании Delphi»
- разработать программно-методическое обеспечение по теме «Процедуры и
функции пользователя и их использование в объектно-ориентированном
программировании Delphi » для студентов физико-математического факультета
обучающимся
по
направлению
подготовки
44.03.01
«Педагогическое
образование» профиль «Информатика»;
- разработать тематическое планирование, содержание занятий по теме
«Процедуры и функции пользователя и их использование в объектноориентированном программировании Delphi»;
- разработать лекционные занятия поданной теме;
- разработать лабораторные работы по данной теме;
- разработать фонд оценочных средств для контроля знаний.
Методы исследования:
- анализ учебно-методической литературы;
- наблюдение;
- опрос;
13
- тестирование;
- сравнение;
- обобщение;
- проектирование.
Структура выпускной квалификационной работы.
Выпускная
квалификационная
работа
состоит
из
Введения,
двух
глав,
Заключения, Списка используемых источников.
Во введении рассматривается актуальность выбранной темы, формулируются
цели, задачи исследования.
В
первой
главе
анализируется
программно-методическое
обеспечение
преподавания дисциплины "программирование".
Во второй главе дается программно-методическое обеспечение темы «процедуры
и функции пользователя, их использование в объектно-ориентированной среде
программирования delphi», для этого формулируются цели и задачи методики
преподавания, анализируется тематическое планирование. Результатом этого
являются системы лекций и практических работ.
В заключении указываются полученные результаты. Далее приводится список
используемых источников.
14
ГЛАВА I. АНАЛИЗ ПРОГРАММНО-МЕТОДИЧЕСКОГО ОБЕСПЕЧЕНИЯ
ПРЕПОДАВАНИЯ ДИСЦИПЛЫ "ПРОГРАММИРОВАНИЕ"
1.1.
Анализ
Федерального
государственного
образовательного
стандарта высшего образования по направлению подготовки 44.03.01
"Педагогическое образование" профиль «Информатика»
Федеральный
государственный
образовательный
стандарт
высшего
образования представляет собой совокупность требований, обязательных при
реализации основных профессиональных образовательных программ высшего
образования - программ бакалавриата по направлению подготовки 44.03.01
профиль «Информатика» (далее соответственно - программа бакалавриата,
направление подготовки). \
В стандарте используются следующие сокращения: \
ОК - общекультурные компетенции; \
ОПК - общепрофессиональные компетенции; \
ПК - профессиональные компетенции; \
ФГОС ВО - федеральный государственный образовательный
стандарт высшего образования. \
Стандарт включает в себя следующие требования: \
к результатам освоения программы бакалавриата у выпускника; \
к общекультурным компетенциям выпускника, освоившего
программу бакалавриата; \
к
общепрофессиональным
компетенциям
выпускника,
освоившего программу бакалавриата; \
к профессиональным компетенциям, соответствующими виду
(видам)
профессиональной
деятельности,
на
который
(которые)
ориентирована программа бакалавриата выпускника; \
к разработке программы бакалавриата все общекультурные и
общепрофессиональные
компетенции, а
также
профессиональные
15
компетенции, отнесенные к тем видам профессиональной деятельности,
на которые ориентирована программа бакалавриата, включаются в набор
требуемых результатов освоения программы бакалавриата; \
к разработке программы бакалавриата требования к результатам
обучения по отдельным дисциплинам (модулям), практикам. \
Требования к структуре программы бакалавриата включает обязательную
часть (базовую) и часть, формируемую участниками образовательных отношений
(вариативную).
Это
обеспечивает
возможность
реализации
программ
бакалавриата, имеющих различную направленность образования в рамках одного
направления подготовки. \
Программа бакалавриата состоит из следующих блоков: \
Блок 1 "Дисциплины (модули)", который включает дисциплины (модули),
относящиеся к базовой части программы, и дисциплины (модули), относящиеся к
ее вариативной части. \
Блок 2 "Практики", который в полном объеме относится к вариативной
части программы. \
Блок 3 "Государственная итоговая аттестация", который в полном объеме
относится к базовой части программы и завершается присвоением квалификации,
указанной в перечне специальностей и направлений подготовки высшего
образования, утверждаемом Министерством образования и науки Российской
Федерации. \
Стандарт устанавливает требования к условиям реализации программы
бакалавриата: \
общесистемные требования, включающим организацию располагающей
материально-технической базой; обеспечение индивидуальным неограниченным
доступом
к
одной
или
нескольким
электронно-библиотечным системам
(электронным библиотекам) и к электронной информационно-образовательной
среде
организации;
технического
и
обеспечение
совокупностью
учебно-методического
ресурсов
обеспечения,
материально-
предоставляемого
16
организациями, участвующими в реализации программы бакалавриата в сетевой
форме. \
кадровые условия реализации, включающих обеспечение руководящими
и
научно-педагогическими
работниками
организации;
долю
научно-
педагогических работников, имеющих образование, соответствующее профилю
преподаваемой дисциплины (модуля), ученую степень и (или) ученое звание;
долю
работников
из
числа
руководителей
и
работников
организаций,
деятельность которых связана с направленностью (профилем) реализуемой
программы бакалавриата. \
Материально-технические
и
учебно-методические
обеспечения,
включающих в себя специальные помещения; обеспечение необходимым
комплектом лицензионного программного обеспечения. \
Финансовые условия, включающих финансовое обеспечение реализации
программы
бакалавриата
должно
осуществляться
в
объеме
не
ниже
установленных Министерством образования и науки Российской Федерации
базовых нормативных затрат на оказание государственной услуги в сфере
образования для данного уровня образования и направления подготовки с учетом
корректирующих коэффициентов, учитывающих специфику образовательных
программ в соответствии с Методикой определения нормативных затрат на
оказание государственных услуг по реализации имеющих государственную
аккредитацию
специальностям
образовательных
и
направлениям
программ
высшего
подготовки,
образования
утвержденной
по
приказом
Министерства образования и науки Российской Федерации. \
1.2. Место дисциплины "Программирование" в структуре ООП
направления подготовки 44.03.01 "Педагогическое образование"
профиль «Информатика».
Цель дисциплины:
Формирование
систематизированных
знаний
и
умений
структурного и объектно-ориентированного программирования;
в
области
17
Задачи дисциплины:
1) Изучение
основ
структурного
программирования,
объектно-
ориентированного программирования;
2) Формирование знаний основных алгоритмических структур, основ
объектно-ориентированного программирования язык Delphi.;
3) Воспитание навыков решения учебных и прикладных задач с разработкой
программ на языке программирования в предметной области специалиста.
Дисциплина
«Программирование»
относится
к
блоку
Б1.В.ОД.15
основной образовательной программы подготовки бакалавра. Дисциплина
изучается
в
3,4,5,6
семестрам.
При
изучении
дисциплины
"Программирование" используются знания дисциплин изученных ранее :
"Основы математической обработки информации и информационные
технологии", "Адаптационный курс информатики" и др
Таблица 1.1.1. Планируемые результаты обучения по дисциплине.
Формируемые компетенции
Планируемые результаты обучения по
дисциплине
Требования к формируемым знаниям,
умениям и навыкам
ОК-3 способностью
Знать
использовать
1 этап
естественнонаучные и
математические знания
для ориентирования в
современном
информационном
пространстве
основные
характеристики
естественнонаучной картины мира,
место и роль человека в природе;
основные способы математической
обработки информации; основы
современных технологий сбора,
обработки
и
представления
информации;
Владеть основными
методами
математической
обработки
информации; навыками работы с
программными средствами общего и
профессионального назначения
Уметь
применять
знания в
естественнонаучные
учебной и
про-
18
фессиональной
деятельности,
использовать современные информационно-коммуникационные
технологии для сбора, обработки и
анализа информации;
ПК-1 готовностью
Знать
реализовывать
1 этап
образовательные
программы по предмету
в
соответствии
с
требованиями
образовательных
стандартов
нормативно-правовую
и
концептуальную базу содержания
предпрофильного и профильного
обучения; сущность и структуру
образовательных
программ
по
учебному предмету в соответствии с
требованиями
образовательных
стандартов.
Владеть методами планирования
образовательных
программ
по
учебному предмету в соответствии с
требованиями
образовательных
стандартов
Уметь
ПК-4 способностью
Знать
использовать
1 этап
возможности
образовательной среды
для
достижения
личностных,
метапредметных
и
Владеть
предметных
результатов обучения и
обеспечения качества
учебновоспитательного
процесса
средствами
преподаваемого
предмета
Уметь
определять структуру и содержание
образовательных
программ
по
учебному предмету в соответствии с
требованиями
образовательных
стандартов.
сущность понятия "образовательная
среда"; структуру и специфику
личностных,
метапредметных и
предметных результатов обучения;
критерии оценки качества учебновоспитательного процесса
навыками
проектирования
достижения
личностных,
метапредметных
и
предметных
результатов обучения и обеспечения
качества
учебно-воспитательного
процесса при помощи средств
преподаваемого предмета и ресурсов
образовательной среды
выявлять
образовательной
возможности
среды
для
19
достижения
личностных,
метапредметных
и
предметных
результатов обучения, а также
обеспечения
качества
учебновоспитательного
процесса;
планировать организацию учебновоспитательного
процесса
с
использованием
возможностей
образовательной среды и средств
преподаваемого предмета
ПК-12способностью
1 этапруководить учебноисследовательской
деятельностью
обучающихся
Знать
педагогический
потенциал,
теоретические основы и особенности
организации
учебноисследовательской
деятельности
учеников на разных этапах обучения,
особенности
ученического
исследования
как
формы
образовательной
деятельности
обучаемого
Владеть методами моделирования научного
процесса в учебных целях, методами
развития
интеллектуальных
способностей
обучающихся
и
формирования
активных
познавательных
потребностей
личности
Уметь
мотивировать учеников к
самостоятельному научному поиску,
инновационной деятельности,
планировать учебно-научную
деятельность обучающихся,
сформировать способность учеников
к индивидуальной и групповой
учебно-научной работе,
сформировать умения обучаемых
определять цели и задачи учебнонаучной работы, формулировать
гипотезу, выбирать методы
исследования, анализировать
источники по проблеме
исследования и данные, полученные
в ходе работы, классифицировать
20
явления, проводить эксперимент,
делать выводы, определять
практическую значимость
исследования, использовать в
исследовании и представлении
результатов современные
информационно-коммуникативные
технологии;
1.3. Методические подходы к обучению программированию в визуальных
средах в условиях бакалавриата будущего учителя информатики в рамках
курса "Программирование"
Одной из перспективных тенденций реформирования
высшего
образования
является
выдвижение
в
качестве
современного
приоритетного
компетентностного подхода при подготовке специалистов в различных областях.
Под компетентностным подходом понимается ориентация всех компонентов
учебного процесса на приобретение будущим специалистом компетенций,
необходимых
для
осуществления
профессиональной
деятельности.
Профессиональная компетентность учителя информатики в своей главной
смысловой основе есть комплексное личностное образование, включающее в себя
как общие способности, качества и свойства личности, свойственные для любого
педагога, так и специфические способности (способность к информационному
творчеству, способность адаптироваться к часто меняющимся условиям и
технологиям, способность ориентироваться в потоке информации, способность
решать
профессиональные
задачи
средствами
информационно-
коммуникационных технологий и др.), качества (открытость к инновационным
процессам
в
образовании,
ориентированность
на
осуществление
профессиональной деятельности в условиях новой информационной реальности и
др.) и свойства (динамичность и мобильность в условиях постоянных изменений
на рынке технических средств, программного обеспечения и информационных
технологий и др.) личности характерные именно для учителя информатики, а
21
также знания, умения и навыки необходимые для осуществления продуктивной
профессиональной деятельности.
Компетентность преподавателя информатики в области программирования
формируется
по
пользовательских
формирование
двум
направлениям:
умений
умений
в
области
во-первых,
это
программирования;
использования
методов
формирование
во-вторых,
программирования
это
как
эффективного средства для повышения качества образования. Преподаватель
должен оценить, можно ли использовать конкретную технологию в своей работе
и в работе студентов, должен повышать эффективность процесса обучения,
применяя современные информационные технологии, чтобы иметь доступ к
самой разнообразной актуальной информации. Он обязан знать о преимуществах
представления данных в цифровой форме. Преподаватель должен уметь освоить
ту или иную программу, которая требуется для работы студента и сотрудников,
определять местоположение информации в разнообразных источниках и в
Интернете, проанализировать ее и использовать для своих потребностей,
применять различные форматы носителей, использовать ИТ, чтобы найти
решение задач, принятие решений по необходимым вопросам. Он должен знать
основные структуры и принципы производства программной продукции.
Преподаватель должен уметь применять свои технологические компетенции,
чтобы использовать их для разработки учебной программы, которая применяла
бы методы программирования, должен знать основные педагогические теории
организации
учебного
процесса
и
то,
как
использовать
методы
программирования на практических примерах, создавать планы занятий,
применяя современную методику в самых разнообразных технологиях обучения.
Одним
из
ключевых
направлений
подготовки
будущего
учителя
информатики является освоение им технологий и методов программирования.
Программирование в информатике является базовым, т.е. главным инструментом
развития умственных и интеллектуальных способностей обучающегося.
22
Современные тенденции информатики, отражают новый переход к новой
парадигме программирования (ООП) и изучению на ее основе информационных и
коммуникационных технологий. При обучении бакалавров педагогического
образования основам объектно-ориентированного программирования , возникает
ряд проблем связанных с изучением общих приемов работы с интерфейсом,
программ кодом, компонентами интегрирован среды,
пониманием принципа
привязки алгоритма программ визуальных элементов управления.
Визуальное программирование – непосредственно считается одной из
передовых технологий программирования. В ее основу входит объектноориентированный подход к описанию процессов (явлений), который, по
утверждению ряда исследователей, является одним из наиболее подходящих и
эффективных средств, применяемых сегодня программистами для создания
значительных программных систем.
Вопросам методики обучения программированию в визуальных средах
посвящены работы Гейна А.Г., Бабушкиной И. А., Козлова О.А., Кузнецова А.А.,
Петрова А.Н., Семакина И.Г., Угриновича Н.Д., Шолоховича В.Ф. и др. В
исследованиях Зацевой М.А., Калмыкова Ю.В., Келлера Е.В., и др. Разработаны
методические
подходы
к
обучению
объектно-ориентированному
программированию в визуальных средах после получения базовых знаний
структурного программирования. Такой подход, по мнению Бабушкиной И.В.,
Нефедовой В.Ю., Петухова А.Ю. и др. требует значительных временных затрат и
предполагает решение большого числа однотипных вычислительных задач,
которое
приводит
к
снижению
мотивации
студентов
к
изучению
программирования. По мнению Гусевой О.В., Нефедовой В.Ю., Слинкина Д.А.,
Рожиной И.В. и др. для повышения уровня учебной мотивации к изучению
программирования
целесообразно
использовать
визуализацию
учебного
материала и применять метод проектов при разработке приложений.
Однако в этих исследованиях не уделено внимание вопросам изучения темы
«Процедуры
и
программировании
функции
пользователя»
Delphi,
ориентированных
в
на
объектно-ориентированном
разработку
проектов
и
23
направленных на: изучение подходов к разработке программ c помощью
процедур и функций и общих приемов работы с интерфейсом, программным
кодом
и
компонентами,
повышения
уровня
мотивации
к
объектно-
ориентированному программированию за счет визуализации структурных
элементов и получения наглядного результата; формирование практического
опыта программирования в визуальных средах через разработку проектов для
социального и профессионального самоопределения.
С
целью
разработки
программированию
в
структуры
визуальных
содержания
средах
в
обучения
условиях
студентов
дополнительного
образования на основе анализа общедидактических принципов (Леднев В.Д.,
Лернер И.Я., Никандров Н.Д., Пидкасистый П.И. и др.) обоснованы и
сформулированы частные принципы. Принцип соответствия объекта изучения
современному уровню развития технологий программирования предполагает
изучение объектно-ориентированного языка программирования через работу в
визуальных средах, поскольку современные технологии разработки программного
обеспечения основаны на реализации объектно-ориентированного подхода и
визуализации объектов программирования, что используется в визуальных
средах, таких как Delphi, Visual Basic, Visual C++, C++Builder и тп. Принцип
формирования
практического
опыта
деятельности
в
интегрированных
визуальных средах предполагает реализацию обучения программированию через
разработку учебных проектов по созданию интерактивных игровых приложений и
моделирующих
программ.
Принцип
наглядного
представления
в
среде
программирования объектов и процессов предполагает графическое отображения
объектов и процессов в виде компонентов визуальной среды, а так же
использование компонентов среды, их свойств, методов и событий для наглядной
демонстрации работы операторов структурного языка программирования.
Принцип
реализации
блочно-уровневой
структуры
содержания
обучения
программированию в визуальных средах предполагает представление содержание
обучения
в
виде
блоков,
связанных
между
собой
в
логической
последовательности и изучаемых на различных уровнях, что позволяет
24
реализовать
этапы
обучения
организованных форм
обучения
программированию.
Принцип
программированию в
сочетания
визуальных средах
предполагает целесообразное использование индивидуальной, групповой и
коллективной форм работы на каждом этапе обучения: базовом и профильных.
Принцип унификации приемов работы в интегрированных визуальных средах
предполагает изложение общих подходов к разработке программ и общих
приемов работы
с интерфейсом, программным кодом и компонентами
интегрированной визуальной среды.
Для отбора необходимых средств обучения в условиях дополнительного
образования и определения основ программирования в интегрированных
визуальных средах, опираясь на дидактические возможности информационных и
коммуникационных технологий (Роберт И.В.) обоснованы и сформулированы
требования к отбору визуальной среды программирования.
Методические
требования: обеспечение реализации
целей
обучения
визуальному программированию в условиях дополнительного образования при
разработке приложений; обеспечения сочетания различных организационных
форм обучения и реализации метода учебных проектов при разработке
приложений
в
визуальных
функционирование
средах.
приложений,
Технико-технологические
разрабатываемых
программирования, в различных операционных
в
требования:
визуальной
среде
средах, поддерживающих
графический интерфейс с пользователем; возможность реализации различных
видов
информации
и
широкого
функционирования разрабатываемых
локальном
и
сетевом
режиме;
класса
алгоритмов;
возможность
в визуальной среде приложений в
обеспечение
надежности
и
устойчивой
работоспособности приложений, создаваемых в визуальной среде; возможность
автоматической
генерации
программного
кода;
визуальная
разработка
графического интерфейса приложений; обеспечение в процессе разработки
программного продукта объектно-ориентированного подхода с применением
метода
нисходящего
программирования;
организация
в
приложениях
разрабатываемых в визуальной среде, интерактивного взаимодействия между
25
пользователем и программой с помощью методов, управляемых событиями;
представление в визуальной среде моделирования объектов и их отношений
Анализ
1.4.
преподавания
раздела
"Объектно-ориентированное
программирование" дисциплины "Программирование"
Изучение дисциплины «Программирование» осуществляется на дневном и
заочном отделении. Цель дисциплины: формирование систематизированных
знаний и умений в области структурного и объектно-ориентированного
программирования;
Задачи дисциплины:
1)Изучение основ структурного программирования, объектно-ориентированного
программирования;
2)Формирование знаний основных алгоритмических структур, основ объектноориентированного программирования язык Delphi.;
3)Воспитание навыков решения учебных и прикладных задач с разработкой
программ на языке программирования в предметной области специалиста.
На изучение темы «Процедуры и функции в Dеlрhi» отводится 9 часов, из
них 5 часов отводится на лекции и 4 часов на лабораторные и самостоятельные
работы. Для реализации обучения и более глубокого освоения данной темы
предусмотрены следующие виды самостоятельной работы: текущая и проблемноориентированная. Текущая работа по освоению дисциплины, направленная на
углубление и закрепление знаний студента, развитие практических умений
включает: работу с лекционным материалом, поиск и обзор литературы и
электронных
источников
информации
по
индивидуальному
заданию;
опережающую самостоятельную работу; подготовку к лабораторным работам;
зачетам
и
экзаменам.
Творческая
проблемно-ориентированная
работа,
предусматривает: исследовательскую работу и участие в научных студенческих
конкурсах, семинарах; анализ научных публикаций по тематике, определенной
преподавателем; поиск, анализ, структурирование и презентацию информации по
теме занятий. Начинать изучение дисциплины необходимо с ознакомления с
26
целями и задачами дисциплины. В процессе учебы студенты используют
полученные и приобретенные знания и умения. Далее следует проработать
отдельные вопросы по предложенным источникам литературы. Все неясные
вопросы по дисциплине обучающийся может разрешить на консультациях,
проводимых по расписанию. При подготовке к лабораторным и к экзамену,
обучающийся в обязательном порядке изучает теоретический материал в
соответствии с перечнем основной и дополни тельной учебной литературы.
Таблица
1.4.1.
Структура
раздела
объектно-ориентированное
программирование для дневного отделения.
Вид и № занятия
Тема занятия
Контактная Самостоятельная Всего,
работа, час.
работа, час.
час.
Раздел №2 «Объектноориентированное
программирование»
лек №23-24
Методология и принципы
объектноориентированного
программирования.
Понятия
событийной
программы.
Языки,
поддерживающие
методологию
объектноориентированного
программирования.
4
Система
программирования Delphi.
Компонентный подход к
созданию
программы.
Общие
свойства
визуальных компонентов.
Общие
события
управляющих элементов.
Управление компонентами
при проектировании.
4
лек №25-26
Компоненты
Delphi
вкладки
Standard.
Компонент
Label
–
надпись. Компонент Edit – 4
поле
редактирования.
Компонент
TButton
–
командная
кнопка.
4
27
Примеры
решения
создания приложений с
использованием
компонентов Label, Edit,
Button
лек №27-28
Организация ввода данных
из
диалогового
окна
InputBoх, окно сообщений.
Примеры
создания
4
приложений
с
использованием
компонентов ShowMessage,
InputBox, MessageDlg.
4
лек №29-30
Компонент
ListBox.
Примеры
создания
приложений
с4
использованием
компонента ListBox.
4
лек №31-32
Компонент
Текстовая
область
–
Memo.
Компоненты
флажок
(TCheckBox),
переключатель
(TRadioButton),
группа 4
переключателей
(TRadioGroup). Создание
приложений
с
использованием
данных
компонентов.
2
8
лаб №16-17
Создание приложений с
использованием
с
использованием
8
компонентов Label, Edit,
Button
2
10
лаб №18-19
Создание приложений с
использованием
стандартных диалоговых
окон
ShowMessage, 8
InputBox, MessageDlg для
ввода и вывода данных
компонентов.
2
10
лаб.№ 20-21
Создание приложений с
использованием
8
компонента
ListBox и
Memo.
2
10
лаб.№ 22-23
Решение
с8
2
10
задач
28
использованием
компонентов
CheckBox,
RadioButton и RadioGroup
пр №6-7
Создание приложений с
использованием
4
компонента Label, Edit,
Button
пр №8-9
Примеры решения задач с
использованием
4
компонента
ListBox
и
Memo .
2
8
12
72
0
0
12
72
лек №33-34
Ползунки
и
полосы
прокрутки – TrackBar и
4
ScrollBar.
Компоненты
MainMenu, PopupMenu.
1
5
лек №35-36
Обработка массивов в
Delphi. Организация ввода 4
и вывода массива в Delphi
1
5
лек №37-38
Компонент
StringGrid.
Использование компонента
4
StringGrid для обработки
линейных массивов
1
5
лек №39-40
Компонент
StringGrid
Использование компонента
StringGrid для обработки 4
двумерных
массивов
массивов
1
5
Итого по разделу:
60
Курсовая работа:
Итого по семестру:
60
Семестр №5
Раздел №2 «Объектноориентированное
программирование»
29
лек №41-42
Процедуры и функции в
5
Dеlрhi
2
7
лаб.№ 24-25
«Файлы»
в
delphi,
содержащие процедуры и 1
функции
2
3
лаб.№ 26-27
Разработка приложений с
использование компонента
8
StringGrid для обработки
двумерных массивов.
1
9
лаб.№ 28-29
Использование записей для
создания приложений в в 8
Delphi
2
10
лаб.№ 30-31
Использование файлов для
создания приложений в в 8
Delphi
1
9
пр.№ 10-11
Методика решения задач с
использованием
4
компонента StringGrid
1
5
пр.№ 10-11
Методика решения задач с
использованием записей и 4
файлов.
1
5
12
72
Итого по разделу:
60
Промежуточная аттестация:
экзамен
36
Итого по семестру:
60
12
108
Итого по дисциплине:
234
162
468
Примечания
Таблица 1.4.2. Структура раздела объектно-ориентированное программирование
для дневного отделения.
30
Тема занятия
Вид и
№
Контактная Сам.работа,
Всего,
работа, час.
час.
час.
3
4
5
2
70
72
2
70
72
0
0
70
72
4
131
135
4
131
135
занятия
2
1
Раздел №2 «Объектно-ориентированное программирование»
лек №4
Лекция: Методология и принципы
объектно-ориентированного
программирования.
Языки,
поддерживающие
методологию
объектно-ориентированного
программирования.
Система
программирования Delphi.
Изучаемые вопросы: Компоненты
метка, текстовое поле, изображение.
Компоненты
зависимый
переключатель,
независимый
переключатель. Компоненты группа
переключателей,
раскрывающийся
список. Компоненты главное и
контекстное меню. Окна сообщений.
Вопросы
для
самостоятельного
изучения:
Компонент
таймер.
Диалоговые окна. Компонент список
Итого по разделу:
Курсовая работа:
Итого по семестру:
2
Семестр №6
Раздел №2 «Объектно-ориентированное программирование»
лаб №4 Создание
приложений
с
использованием компоненты метка,
текстовое
поле,
компоненты
зависимый
переключатель,
независимый
переключатель
компоненты, группа переключателей,
раскрывающийся список
компоненты главное и контекстное
меню. Окна сообщений.
Итого по разделу:
31
Промежуточная аттестация: экз
9
9
Итого по семестру:
4
140
144
Итого по дисциплине:
28
440
468
Примечания
1.5. Методические аспекты преподавания темы "Процедуры и функции"
при изучении объектно-ориентированного языка программирования
Dеlрhi.
Главной
особенностью
раздела
объектно-ориентированного
программирования является изучение структур процедур и функций, механизма
взаимодействия программы с подпрограммами, рекурсивного метода организации
вычислений,
получение
навыков
программирования
алгоритмов
средней
сложности с использованием процедур и функций[16].
Если в программе встречаются повторяющиеся фрагменты, то будет
правильно
эти
фрагменты
оформить
как
подпрограмму.
Подпрограммы
представляют собой независимые фрагменты программы, которые оформляются
особенным образом и обеспеченные именем. Упоминание этого имени в тексте
программы
называется
вызовом
подпрограммы.
Подпрограмма
содержит
описания идентификаторов: констант, типов, переменных и вложенных в нее
подпрограмм. Все идентификаторы, которые описываются внутри самой
подпрограммы, локализуются в ней. В разделе описания подпрограмм могут
встретиться описания подпрограмм низшего уровня, в них – описания других
подпрограмм и т. д. Все имена в пределах подпрограммы, в которой они
объявлены, должны быть уникальными. При входе в подпрограмму низшего
уровня становятся доступными не только объявленные в ней имена, но и
сохраняется доступ ко всем именам верхнего уровня. При взаимодействии
подпрограмм одного уровня иерархии вступает в силу основное правило: любая
подпрограмма перед её использованием должна быть описана. Существуют
следующие 2 вида подпрограмм – это процедуры и функции. Основное различие
процедур от функций состоит в том, что процедура позволяет получить один или
32
более результатов, а функция – всего лишь один результат[2]. Использование
подпрограмм позволяет уменьшить объем памяти, занимаемый кодом программы
в целом. Однако время выполнения программы при этом несколько растет, так
как появляются временные издержки на вызов подпрограмм и возврат обратно из
подпрограмм.
Преподавание данной темы
проводиться
в
тесной
составляет практическую направленность и
взаимосвязи
с
другими
общепрофессиональными
дисциплинами: «Информационные технологии», «Операционные системы и
среды», «Дискретная математика», «Архитектура ЭВМ и
вычислительных
систем».
В ходе освоения темы студент должен иметь представление о важности
использования процедур и функций при решении задач.
знать:
– что такое процедура, функция, какую роль имеют процедуры и функции
при решении задач;
– в чем состоят основные свойства процедур и функций;

– способы записи процедур и вызов функций
– правила представления данных на одном из языков программирования
высокого уровня;
уметь:
производить отладку и тестирование составленных программ.
составлять задачи с использованием процедур и функций.
1.6. Образовательные технологии, используемые при преподавании
дисциплины "Программирование" бакалаврам направления подготовки
44.03.01 "Педагогическое образование" профиль «Информатика»
Основными
формами
организации
учебного
процесса
в
рамках
33
преподавания
дисциплины
«Программирование»
являются
лекции
и
лабораторные работы.
Лекция – главное звено дидактического цикла обучения, ее цель
сформировать ориентировочную основу для последующего усвоения студентами
учебного материала. В процессе преподавания курса используются элементы
нескольких
разновидностей
лекций:
вводной,
проблемной,
обзорно-
повторительной, лекции пресс-конференции. В зависимости от содержания и
характера излагаемого мате-риала они имеют различную структуру. Однако,
любая лекция содержит план, в который включаются наименования основных
узловых вопросов лекции. \
Вводная лекция знакомит студентов с целью и назначением курса, его ролью и местом в системе учебных дисциплин. Далее дается краткий обзор курса
(вехи развития данной науки, имена известных ученых). В такой лекции ставятся
научные проблемы, выдвигаются гипотезы, намечаются перспективы развития
науки и ее вклада в практику. Во вводной лекции важно связать теоретический
материал с практикой будущей работы специалистов. Далее целесообразно рассказать об общей методике работы над курсом, дать характеристику учебника и
учебных пособий, ознакомить слушателей с обязательным списком литературы,
рассказать об экзаменационных требованиях. Подобное введение помогает
студентам получить общее представление о предмете, ориентирует их на
систематическую работу над конспектами и литературой, знакомит с методикой
работы над курсом.
Проблемная лекция в отличие от информационной лекции, на которой
преподносится и объясняется готовая информация, подлежащая запоминанию, на
проблемной лекции новое знание вводится как неизвестное, которое необходимо
«открыть». Задача преподавателя – создав проблемную ситуацию, побудить
студентов к поискам решения проблемы, шаг за шагом подводя их к искомой
цели. Для этого новый теоретический материал представляется в форме
проблемной задачи. В ее условии имеются противоречия, которые необходимо
обнаружить и разрешить.
34
В ходе их разрешения и в итоге, как результат, студенты приобретают в
сотрудничестве с преподавателем новое нужное знание. Таким образом, процесс
познания студентов при данной форме изложения информации приближается к
поисковой, исследовательской деятельности. Главное условие - реализовать
принцип проблемности при отборе и обработке лекционного материала,
содержания и при его развертывании непосредственно на лекции в форме
диалогического общения. С помощью проблемной лекции обеспечиваются
развитие теоретического мышления, познавательного интереса к содержанию
предмета, профессиональная мотивация, корпоративность.
Обзорно-повторительные лекции, читаемые в конце раздела или курса, должны
отражать все теоретические положения, составляющие научно-понятийную
основу данного раздела или курса, исключая детализацию и второстепенный
материал. Это квинтэссенция курса.
Лекция - пресс-конференция. Назвав тему лекции, преподаватель просит
студентов задавать ему письменно вопросы по данной теме. В течении двух-трех
минут студенты формулируют наиболее интересующие их вопросы и передают
преподавателю, который в течение трех- пяти минут сортирует вопросы по их содержанию и начинает лекцию. Лекция излагается не как ответы на вопросы, а как
связный текст, в процессе изложения которого формулируются ответы. В конце
лекции преподаватель проводит анализ ответов как отражение интересов и знаний
учащихся.
Такую лекцию можно проводить:
• в начале темы с целью выявить потребности, круг интересов группы или потока,
его (ее) модель: установки, возможности;
• в середине, когда она направлена на привлечение студентов к узловым
моментам курса и систематизацию знаний;
• в конце - для определения перспектив развития усвоенного содержания.
35
Лабораторные занятия интегрируют теоретико-методологические знания и
практические умения и навыки студентов в едином процессе деятельности учебно-исследовательского характера. Эксперимент в его современной форме играет
все большую роль в подготовке инженеров, которые должны иметь навыки исследовательской работы с первых шагов своей профессиональной деятельности.
Лабораторные
работы
по
телекоммуникациям
имеют
ярко
выраженную
специфику, зависящую от содержания учебной дисциплины. основное внимание
уделяется формированию конкретных умений, навыков, что и определяет
содержание деятельности студентов.
Одной из форм внеаудиторной работы в рамках изучения дисциплины
является самостоятельна работа студентов (СРС). СРС наряду с аудиторной
представляет одну из форм учебного процесса и является существенной его
частью, успешное выполнение которого обусловлено планированием и контролем
со стороны преподавателя.
Формы контроля. В соответствии с учебным планом направления подготовки
01.03.02 Прикладная математика и информатика, квалификация (степень) –
бакалавр (срок обучения 4 года) итоговой формой контроля знаний по
дисциплине «Программирование» является «зачет».
В ходе освоения дисциплины студент должен иметь следующие
представления:

о
важности роли и месте знаний по дисциплине при освоении
смежных дисциплин по выбранной специальности и в сфере профессиональной
деятельности;

о направлениях развития программного обеспечения вычислительной
техники;
знать:

принципы построения алгоритмов;

типы
программирования;
данных
и
базовые
конструкции
изучаемых
языков
36

важнейшие приемы программирования;

интегрированные среды изучаемых языков программирования;

основы объектно-ориентированного программирования;
уметь:

составлять простые блок-схемы алгоритмов;

составлять программы на алгоритмическом языке высокого уровня;

функционировать в интегрированной среде изучаемых языков
программирования.
В содержании учебной дисциплины по каждой теме имеются требования к
формируемым представлениям, умениям и знаниям. //////////////////////////////////////
С целью систематизации и закрепления приобретенных теоретических
знаний и практических умений образовательному учреждению рекомендуется в
рабочей программе учебной дисциплины предусмотреть самостоятельную работу
школьников[8].
Современные организационные формы обучения: активные методы
обучения – формы обучения, устремленные на развитие у обучаемых
самостоятельного
мышления
и
способности
квалифицированно
решать
нестандартные профессиональные задачи. Цель обучения – воспитывать
мышление обучаемых, вовлечение их в решение проблем, расширение и усиление
знаний и одновременное формирование практических навыков и умения мыслить,
раздумывать, понимать свои действия. Активные методы обучения снабжают
проявление большей активности, чем традиционные методы, ведь опытным путем
установлено, что в памяти человека запечатляется до 10% того, что он услышит,
до 50% того, что видит, и до 90% того, что делает.
Интерактивное обучение – это особая форма организации познавательной
деятельности. Она имеет в виду вполне конкретные и прогнозируемые цели:
увеличение эффективности образовательного процесса, достижение возвышенных
результатов; усиление мотивации к изучению дисциплины; вырабатывание и
развитие
профессиональных
коммуникативных навыков;
навыков
обучающихся;
формирование
развитие навыков анализа и рефлексивных
37
проявлений;
развитие
навыков
владения
современными
техническими
средствами и технологиями восприятия и обработки информации; формирование
и созревание умения независимо находить информацию и определять ее
достоверность;
сокращение доли аудиторной работы и увеличение объема
самостоятельной работы студентов. Интерактивные формы применяются при
проведении аудиторных занятий, при самостоятельной работе студентов и других
видах учебных занятий на всех уровнях подготовки (бакалавр, специалист,
магистр), а также при повышении квалификации. Удельный вес занятий,
проводимый в деятельных и интерактивных формах, определяется каждой ООП,
особенностью контингента обучающихся и содержанием конкретных дисциплин,
и в целом в учебном процессе они должны составлять не менее 20% аудиторных.
Объем часов, отводимых на интерактивные формы обучения, должен быть
предусмотрен учебным планом и отражен в тематическом плане Учебнометодического комплекса дисциплины [19].
Деловая игра - это метод группового обучения коллективной деятельности
в процессе решения общих задач в условиях предельно возможного приближения
к реальным проблемным ситуациям. Деловые игры в профессиональном обучении
воспроизводят действия участников, стремящихся найти оптимальные пути
решения
производственных,
социально-экономических
педагогических,
управленческих и других проблем.
Нооген – это педагогическая (образовательная) технология, по форме
созданная на разработанных Г.П. Щедровицким организационно-деятельностных
играх, а в качестве содержания использующая решение задач на онтологическое
моделирование (создание возможных миров, например: выстроить занятие, где
молчит, построить мир, в котором есть язык, а в языке нет названий и т.п.).
Исходный элемент образовательной технологии – общественное построение
возможных миров и возможных научных теорий. Предметом ноогеновских задач
могут быть пространство, время, природа, история, язык, отношения между
людьми (детьми и взрослыми). Анализ конкретных ситуаций.
38
Конкретная ситуация – это всякое событие, которое содержит в себе
противоречие или вступает в противоречие с окружающей средой. Ситуации
могут нести в себе как позитивный, так и отрицательный опыт. Все ситуации
делятся на простые, критические и экстремальные[21].
Кейс-метод
(от
английского
саsе
–
случай,
ситуация)
–
усовершенствованный метод анализа конкретных ситуаций, метод активного
проблемно-ситуационного анализа, основанный на обучении путем решения
конкретных задач – ситуаций (решение кейсов). Непосредственная цель метода
саsе-study - обучающиеся должны проанализировать ситуацию, разобраться в
сути проблем, предложить вероятные решения и выбрать лучшее из них. Кейсы
делятся
на
обучающие
практические
(искусственно
(отражающие
реальные
созданные, содержащие
жизненные
ситуации),
значительные элемент
условности при отражении в нем жизни) и исследовательские (ориентированные
на проведение исследовательской деятельности посредствам применения метода
моделирования)
Метод конкретных ситуаций (метод саsе-study) относится к неигровым
имитационным деятельным методам обучения. При анализе конкретных ситуаций
у обучающихся созревают навыки групповой, командной работы, что расширяет
возможности для решения типичных проблем в рамках изучаемой тематике. При
изучении конкретных ситуаций студент должен понять ситуацию, оценить
обстановку, определить, есть ли в ней проблема и в чем ее суть. Определить свою
роль в решении проблемы и выработать целесообразную линию поведения.
Метод конкретных ситуаций можно разбить на этапы: подготовительный,
ознакомительный, аналитический и итоговый. Метод саsе-study наиболее
свободно применяется в обучении экономике и бизнес- наукам за рубежом.
Впервые он был употреблен в учебном процессе в школе права Гарвардского
университета в 1870 году. В настоящее время сосуществуют две классические
школы саsе-study – Гарвардская (американская) и Манчестерская (европейская).
Тренинг— метод активного обучения, направленный на развитие знаний,
умений и навыков, социальных установок. Тренинг – форма интерактивного
39
обучения,
целью
которого
является
формирование
компетентности
межличностного и профессионального поведения в общении. Достоинство
тренинга заключается в том, что он обеспечивает активное вовлечение всех
участников в процесс обучения.
Лекция вдвоем (бинарная лекция) - это разновидность чтения лекции в
форме диалога двух преподавателей (либо как представителей двух научных
школ, либо как теоретика и практика). Необходимы: демонстрация культуры
дискуссии, вовлечение в обсуждение проблемы студентов. Лекция с заранее
запланированными ошибками - рассчитана на стимулирование студентов к
постоянному
контролю
предлагаемой
информации
(поиск
ошибки:
содержательной, методологической, методической, орфографической). В конце
лекции проводится диагностика слушателей и разбор сделанных ошибок.
Проблемная лекция - на этой лекции новое знание вводится через
проблемность вопроса, задачи или ситуации. При этом процесс постижения
студентов в сотрудничестве и диалоге с преподавателем ускоряется к
исследовательской деятельности. Содержание проблемы раскрывается путем
организации поиска ее решения или суммирования и анализа традиционных и
современных точек зрения.
Дискуссия — это целеустремленное обсуждение конкретного вопроса,
сопровождающееся обменом мнениями, идеями между двумя и более лицами.
Задача дискуссии - обнаружить различия в понимании вопроса и в споре
установить истину. Дискуссии могут быть свободными и управляемыми.
Презентация на основе нынешних мультимедийных средств.
Презентация - результативный способ донесения информации, наглядно
изобразить содержание, выделить и проиллюстрировать сообщение и его
содержательные функции.
40
ГЛАВА
ПРОГРАММНО-МЕТОДИЧЕСКОЕ
II.
ОБЕСПЕЧЕНИЕ
ДИСЦИПЛИНАРНОГО МОДУЛЯ «АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ»
ДЛЯ ПЕДАГОГИЧЕСКОГО ОБРАЗОВАНИЯ НАПРАВЛЕНИЯ ПОДГОТОВКИ 44.03.01
ПРОФИЛЬ «ИНФОРМАТИКА»
2.1. Цели и задачи изучения темы «процедуры и функции в объектноориентированном программировании»
Целью и задачами курса является:
1.систематизация и овладение познаниями по использованию процедур и
функций пользователя с опорой на знания по другим темам.
2.вырабатывание структурной манеры мышления.
3.обеспечение изучения инструментальной программы.
4.развитие навыков конструирования постановления задач из наименьшего
числа инструкций;
5.формирование логических приемов: анализа, синтеза, абстрагирования,
обобщения.
6.воспитание бережного отношения к результатам информационной
деятельности человека, чувства ответственности за результаты своего труда.
7.приобретение опыта какой-либо проектной деятельности.
2.2. Содержание и тематическое планирование преподавания темы.
Для реализации обучения и более глубокого освоения темы «Процедуры и
функции
пользователя
в
Delphi»
предусмотрены
следующие
виды
самостоятельной работы: текущая и проблемно- ориентированная. Текущая
работа по освоению темы, направленная на углубление и закрепление знаний
студента, развитие практических умений включает: работу с лекционным
материалом, поиск и обзор литературы и электронных источников информации по
индивидуальному заданию; опережающую самостоятельную работу; подготовку к
лабораторным
работам;
зачетам
и
экзаменам.
Творческая
проблемно-
ориентированная работа, предусматривает: исследовательскую работу и участие в
научных студенческих конкурсах, семинарах; анализ научных публикаций по
41
тематике, определенной преподавателем; поиск, анализ, структурирование и
презентацию информации по теме занятий. Начинать изучение темы необходимо
с ознакомления с целями и задачами темы. В процессе учебы студенты
используют полученные и приобретенные знания и умения.
Объем темы и виды учебной работы по теме «Процедуры и фунции
пользователя в Delphi» представлены в таблице.
Таблица 2.2.1. Объем темы и виды учебной работы.
Вид учебной работы
- лекции
- лабораторные работы
Самостоятельная работа обучающегося (всего)
в том числе:
- разработка программ
- решение задач
Объем часов
5
2
3
1
2
На изучение темы «Процедуры и функции пользователя в Dеlрhi» отводится
9 часов, из них 5 часов отводится на лекции и 4 часов на лабораторные и
самостоятельные работы.
Таблица 2.2.2. Тематическое планирование темы «Процедуры и функции
пользователя в Delphi» дисциплины «Программирование».
Тема «Процедуры и функции пользователя в Delphi »
Лабораторные
Тема занятия
Лекции
и сам. работы
Процедуры и функции в Dеlрhi
1
1
Линейные массивы в Dеlрhi и использование
процедур и функций для их ввода и
обработки
1
Двумерные массивы. Применение процедур и
функций при вводе и обработке массивов в
Dеlрhi
Обработка матриц в Dеlрhi с помощью
1
процедур и функций пользователя
Обработка файлов с использованием
1
2
42
процедур и функций
Файлы с использованием процедур и
функций
Использование процедур и функций в Dеlрhi
Всего часов:
1
1
4
5
2.3. Аннотации лекционных и лабораторных занятий на тему «Процедуры и
функции в объектно-ориентированном программировании Delphi»
Лекция 1. Процедуры и функции в Dеlрhi.
Данная лекция является вводной и проводится в форме лекции прессконференции, особенностью которой является равное участие и студентов и
преподавателя. Преподаватель обозначает основные вопросы в структуре лекции:
 Задачи которые решают подпрограммы
 Описание процедуры
 Описание функций
 Виды параметров
По каждому из перечисленных пунктов преподаватель задает вопросы, а
студенты отвечают на них.
Такая организация позволит выявить уровень знаний у студентов в начале
изучения
курса,
чтобы
впоследствии
иметь
возможность
изменять
и
оптимизировать курс для устойчивой сформированной компетенций.
Основные понятия: процедура, функция, подрограмма, виды параметров,
язык программирования[9].
Основная цель лекции- дать понятие об процедурах и функциях, развить у
учащихся
логическое
мышление,
память,
внимание;
сформировать
информационную культуру личности.
Формы
организации
учебной
деятельности:
фронтальные.
организации учебной деятельности: словесные, наглядные[1].
Методы
43
Лекция 2. Обработка линейных массивов с помощью процедур и функций
в Dеlрhi.
Лекция
организуется
в
стандартной
форме.
Оптимальным является
сопровождение лекции разбором практических задач.
В рамках этой лекции рассматриваются вопросы, которые связаны с
основными видами сортировок, а также с использованием процедур и функций
при обработке линейных массивов[9].
Основная цель лекции- дать представление об общем виде программы,
методов сортировки массивов, функциях ввода и вывода данных;
учащихся
логическое
мышление,
память,
внимание;
развить у
формирование
информационной культуры личности.
Формы организации учебной деятельности: групповые, фронтальные.
Методы организации учебной деятельности: словесные, наглядные[2].
Лекция 3. Двумерные массивы. Применение процедур и функций при
вводе и обработке массивов в Dеlрhi.
Лекция выстраивается в стандартной форме. Оптимальным является
сопровождение лекции мультимедийной презентацией.
Основные вопросы в структуре лекции:
Двумерные массивы, способы описания и заполнения.
Применение процедур и функций при вводе и обработке
двумерных массивов.
Основная цель лекции- дать представление о двумерных массивах,
и
применении процедур и функций при их обработке, развить у учащихся
логическое мышление, память, внимание; формирование информационной
культуры личности.
Формы организации учебной деятельности: групповые, фронтальные.
Методы организации учебной деятельности: словесные, наглядные[3].
44
Лекция 4. Обработка матриц в Dеlрhi с помощью процедур и функций
пользователя.
Лекция выстраивается в стандартной форме. Оптимальным является
сопровождение лекции пояснением к решению задач.

Основные вопросы в структуре лекции:

Матрица.

Ввод и вывод матрицы.

Использование процедур и функций при обработке
матриц.
Основная
цель
лекции-
дать
представление
о
ознакомиться
с
существующими понятиями: матрица, ввод и вывод матрицы, разобрать
использование процедур и функций при обработке матриц, развить у учащихся
логическое мышление, память, внимание; формирование информационной
культуры личности.
Формы организации учебной деятельности: групповые, фронтальные.
Методы организации учебной деятельности: словесные, наглядные[3].
Лекция 5. Обработка файлов с использованием процедур и функций.
Лекция выстраивается в стандартной форме. Оптимальным является
сопровождение лекции мультимедийной презентацией и ментальной картой.

Основные вопросы в структуре лекции:

Копирование файлов.

Перемещение файлов.

Переименование файлов.

Удаление файлов.

Обработка файлов с использованием процедур и функций.
Основная цель лекции- ознакомиться с существующими понятиями:
Копирование файлов, перемещение файлов, переименование файлов, удаление
файлов, процедуры и функции при обработке файлов, развить у учащихся
45
логическое мышление, память, внимание; формирование информационной
культуры личности.
Формы организации учебной деятельности: групповые, фронтальные.
Методы организации учебной деятельности: словесные, наглядные[3].
Лабораторная работа №1. Файлы с использованием процедур и функций
Для
закрепления
изученного
материала
предлагается
на
практике
реализовать составление программ по теме «Файлы с использованием процедур и
функций».
Формы
организации
учебной
деятельности:
индивидуальные,
фронтальные. Методы организации учебной деятельности: словесные, наглядные,
практические, самостоятельная работа и работа под руководством педагога.
Цель работы – выработать практические навыки использования процедур и
функций при вводе и обработки файлов, научиться создавать, вводить, отправлять
на выполнение и исправлять программы в Delphi.
Основные
результаты:
письменный
отчет
о
выполненной
работе,
содержащий в себе: постановку задачи, программу на языке Delphi [7].
Лабораторная работа №2. Использование процедур и функций в Dеlрhi.
Закрепление теоретического материала по использованию процедур и
функций в объектно-ориентированном программировании Delphi закрепляется
этой лабораторной работой.
Формы организации учебной деятельности: индивидуальные, фронтальные.
Методы организации учебной деятельности: словесные, наглядные, практические,
самостоятельная работа и работа под руководством педагога.
Цель работы – научиться решать задачи с использованием процедур и
функций пользователя.
Основные
результаты:
письменный
отчет
о
выполненной
содержащий в себе: постановку задачи, программу на языке Delphi [10].
работе,
46
2.4. Методические рекомендации по проведению практических работ по
решению типовых задач по теме «Процедуры и функции» в объектноориентированном программировании.
Практическое занятие — это особая форма организации обучения, которая
устремлена на вырабатывание практических способностей и умений и считается
связующим
звеном
между
самостоятельным
теоретическим
освоением
студентами учебной дисциплины и применением ее положений на практике [7].
Практическое занятие надлежит проводиться в учебных кабинетах или
специально
оборудованных
помещениях
(площадках, полигонах
и
т.п.).
Длительность занятия не менее двух академических часов. Необходимыми
структурными элементами практического занятия, помимо самостоятельной
деятельности студентов, являются инструктаж, проводимый преподавателем, а
также анализ и оценка выполненных работ и степени овладения студентами
запланированными умениями. Выполнению практических занятий предшествует
проверка знаний студентов - их теоретической готовности к выполнению задания.
По каждому практическому занятию образовательным учреждением должны быть
разработаны
и утверждены
методические указания
по их проведению.
Практические занятия могут носить репродуктивный, частично - поисковый и
поисковый характер. Работы, носящие репродуктивный характер, отличаются тем,
что при их проведении студенты пользуются подробными инструкциями, в
которых
указаны:
-
цель
работы,
-
разъяснения
(теория,
основные
характеристики), - оборудование, аппаратура, материалы и их характеристики, порядок выполнения работы, - таблицы, выводы (без формулировки), контрольные вопросы, учебная и специальная литература. Работы, носящие
частично - поисковый характер, отличаются тем, что при их проведении студенты
не пользуются подробными инструкциями, им не дан порядок выполнения
необходимых действий, и требуют от студентов самостоятельного подбора
оборудования, выбора способов выполнения работы в инструктивной и
справочной литературе и др[21]. Работы, носящие поисковый характер,
характеризуются тем, что студенты должны решить новую для них проблему,
47
опираясь на имеющиеся у них теоретические знания. При планировании
практических
занятий
необходимо
находить
оптимальное
соотношение
репродуктивных, частично - поисковых и поисковых работ, чтобы обеспечить
высокий уровень интеллектуальной деятельности. Формы организации студентов
на практических занятиях: фронтальная, групповая и индивидуальная. При
фронтальной форме организации занятий все студенты выполняют одновременно
одну и ту же работу. При групповой форме организации занятий одна и та же
работа выполняется бригадами по 2 - 5 человек[22]. При индивидуальной форме
организации занятий каждый студент выполняет индивидуальное задание. Для
увеличения результативности проведения практических занятий рекомендуется: разработка сборников задач, заданий и упражнений, сопровождающихся
методическими указаниями, применительно к конкретным специальностям; разработка
заданий
для
автоматизированного
тестового
контроля
подготовленности студентов к практическим занятиям; - подчинение методики
проведения
практических
занятий
ведущим
дидактическим
целям
с
соответствующими установками для студентов; - использование в практике
преподавания поисковых практических занятий, построенных на проблемной
основе; - применение коллективных и групповых форм работы, максимальное
использование индивидуальных форм с целью повышения ответственности
каждого
студента
за
самостоятельное
выполнение
полного
объема
приобретает
навыки
работ.//////////////////
В
процессе
самостоятельной
работы
студент
самоорганизации, самоконтроля, самоуправления, саморефлексии и становится
активным самостоятельным субъектом учебной деятельности[21]. Осуществляя
самостоятельную работу под контролем преподавателя студент должен: изучить
минимум содержания, выносимый на самостоятельную работу учащихся и
предложенный преподавателем в соответствии с ФГОС СПО по данной
дисциплине;  планировать самостоятельную работу в соответствии с графиком
самостоятельной работы, предложенным преподавателем;  самостоятельную
работу
студент
обязан
осуществлять
в
организационных
формах,
48
предусмотренных учебным планом и рабочей программой преподавателя; 

выполнять самостоятельную работу и отчитаться по ее результатам в
соответствии с графиком представления результатов, видами и сроками
отчетности по самостоятельной работе студентов; студент может: сверх
предложенного преподавателем (при обосновании и согласовании с ним) и
минимума обязательного содержания, определяемого ФГОС СПО по данной
дисциплине:  самостоятельно определять уровень (глубину) проработки
содержания материала;  предложить дополнительные темы и вопросы для
самостоятельной
проработки;
 в
рамках
общего
графика
выполнения
самостоятельной работы предлагать обоснованный индивидуальный график
выполнения и отчетности по итогам самостоятельной работы; предлагать свои
варианты организационных форм самостоятельной работы;  использовать для
независимой работы методические пособия, учебные пособия, разработки сверх
предложенного преподавателем перечня; использовать не только контроль, но и
самоконтроль результатов самостоятельной работы в соответствии с методами
самоконтроля, предложенными преподавателем или выбранными самостоятельно.
Самостоятельная работа студентов должна оказывать важное влияние на
формирование личности будущего специалиста, она планируется студентом
самостоятельно. Любой ученик самостоятельно назначает режим своей работы и
меру труда, затрачиваемого на овладение учебным содержанием по каждой
дисциплине, реализовывает внеаудиторную работу по личному индивидуальному
плану, в зависимости от его подготовки, времени и других условий[22].
2.5.Конспекты занятий по теме «Процедуры и функции» в объектноориентированном программировании.
Лекция 1. Процедуры и функции в Dеlрhi
Место проведения: Компьютерный центр (КЦ)
49
Задачи:
ознакомиться
с
существующими
определениями:
подпрограмма,
рассмотреть принципы выделения подпрограмм, рассмотреть описание процедур
и функций.
Оборудование: ПО язык программирования Delphi, медиапроектор, наглядный
материал (презентация на тему: «Процедуры и функции в Dеlрhi», презентация в
Prezi
на
тему
«Описание
процедур
и
функций
в
Delphi»
https://prezi.com/p/h4j6znrt6r-i/)
Ход лекции:
Рассмотрим структуру процедур и функций, познакомимся с фактическими
и формальными переменными.
Рисунок 1. Скриншот электронной презентации.
При создании программы для решения сложной задачи программисты
осуществляют разделение этой задачи на подзадачи, подзадачи - на еще меньшие
подзадачи и так далее, до легко программируемых простых задач. Со временем
у каждого программиста через некоторое время появляется большой набор
личных заготовок, неординарных решений и т. д., которые он хотел бы
использовать во всех своих творениях[14].
Язык программирования
позволяет разделять программу на отдельные
части, которые зовутся подпрограммами. Сам термин подпрограмма говорит о
50
том, что она сходна и зависима основной программе. Подпрограммы решают три
важные задачи, значительно облегчающие программирование:
-
избавляют
от
нужды
многократно
повторять
в
тексте
программы аналогичные фрагменты, т. е. сократить объем программы;
-
улучшают структуру программы, облегчая понимание при
разборе;
-
сбавляют
вероятность
появления
ошибок,
повышают
устойчивость к ошибкам программирования и непредвиденным по
следствиям при модификации.
Таким образом, подпрограмма - это повторяющаяся группа операторов,
оформленная в виде независимой программной единицы. Она записывается
однократно, а в соответствующих местах программы снабжается лишь обращение
к ней по имени.
Общие принципы выделения подпрограмм:
-
если
в
программе
нужно
переписывать
одни
и
те
же
последовательности команд, то стоит эту последовательность команд оформить
в виде подпрограммы;
слишком длинную программу полезно разбить на составные части —
подобно тому, как книгу разбивают на главы. При этом основная программа
становится похожей на оглавление;
при решении задачи могут возникать слишком сложные под задачи.
Целесообразней отладить их отдельно в небольших программах. Добавление
этих программ в основную задачу будет легким, если они оформлены как
подпрограммы;
все, что вы сделали хорошо в одной программе, вам захочется перенести в
новые программы.
В языке Раsсаl механизм подпрограмм реализуется в виде ПРОЦЕДУР
(РROСЕDURЕ) и ФУНКЦИЙ (FUNСTION), которые вводятся в программу с
помощью своего описания, но их структура такая же, как и структура программы.
Они различаются назначением и способом их использования.
51
Процедуры предназначены для выполнения некоторой последовательности
действий.
Описание процедуры
Любая
процедура
начинается
с
заголовка,
который
является
ее
обязательной частью (в отличие от заголовка программы). Он состоит из
служебного слова Рroсеdurе, за которым следует имя процедуры, а в круглых
скобках - список формальных параметров. После заголовка могут идти те же
разделы, что и в программе. Таким образом, общий вид будет следующим:
Рrосеdиге
<имя> (формальные параметры);
VАR (описание локальных параметров, они могут быть или не быть)
bеgin
тело процедуры
еnd; (конец процедуры)
BЕGIN (головного модуля)
Фактические параметры
ЕND.
Рисунок 2. Презентация для лекции.
Чтобы использовать подпрограмму – процедуру её надо описать и к ней
надо уметь обращаться.
Описание:
выбрать для неё имя.
определить параметры.
составить последовательность действий, которые надо выполнять, для
получения результата.
52
Обращение: вызов выполнения указанных действий, для конкретных
значений параметров.
Рисунок 3. Презентация для лекции.
Параметры бывают следующих видов:
I. Глобальные – параметры описываются в головном модуле, доступны
любой подпрограмме. ///////////////////////////////////////////////////
I. Локальные – используются только в процедуре, они могут быть или не
быть, описываются после слова VАR, с указанием типа. //////////////////////////////////
Рисунок 3. Презентация для лекции.
II. Формальные – описываются в заголовке процедуры, к ним относятся
входные и выходные параметры.
III. Входные – это и IV. параметры – значений описываются через запятую
с указанием типа. При выходе из процедуры не сохраняются.
III. Выходные – это и IV. параметры – переменные описываются после
слова VАR через запятую, с указанием типа, при выходе из процедуры
сохраняются.
Эти параметры описываются в круглых скобках после имени процедуры
II. Фактические – в головном модуле при вызове процедуры.
При вызове (обращении) формальные параметры заменяются на
фактические.
53
Формальные и фактические должны совпадать по 3 –ём признакам:
по количеству
по типу
по порядку следования.
Описание функций.
Подобно процедурам, описание функции состоит из заголовка и тела.
Однако описание заголовка имеет 2 отличия: прежде всего, для функций
используется ключевое слово funсtion. Кроме того, поскольку функции всегда
возвращают результат, завершается строка заголовка типом возвращаемого
значения. Таким образом, для объявления функции мы получаем следующий
синтаксис:
Funсtion < имя> [(параметры)] : <тип результата>;
Возвращаемое значение может быть любого типа, кроме файлового. Что
касается дальнейшего описания функции, то оно полностью аналогично таковому
для процедур. Единственным дополнением является то, что в теле функции
обязательно должна присутствовать хотя бы одна операция присваивания, в
левой части которой должно быть либо имя функции, либо ключевое слово rеsult.
Именно это выражение и определяет возвращаемое функцией значение.
Рисунок 4. Скриншот электронной презентации.
Используя подпрограммы рассмотрим несколько задач:
Задача 1.
54
Дано
n
натуральных
чисел.
Найти
среди
них
число,
у
которого сумма цифр имеет максимальное значение(решите эту задачу в паскале,
используя
функцию)
сonst n=5;
var c:integer;
funсtion сount(q:intеgеr):intеgеr; (вычисление суммы цифр числа)
vаr s:intеgеr;
bеgin
s:=0;
whilе q>0 do bеgin
s:=s+q mod 10;
q:=q div 10;еnd; сount:=s;
еnd;
funсtion max_n (m:intеgеr):intеgеr;
vаr x,mаx,i:intеgеr;
bеgin
mаx:=-1;
for i:=1 to m do bеgin
rеаdln(x);
р:=сount(x);
if р>mаx thеn bеgin mаx_n:=р; c:=x; еnd; еnd; еnd;
Bеgin
writеln('число С имеет макс сумму цифр', max_n(n));
еnd.
Следующая задача 2
Составить программу нахождения наименьшего общего кратного, чисел
вводимых с клавиатуры.
vаr а,b,с,d:rеаl;
function nod(a,b: integer);
55
var x,y:integer;
begin
x:=a;y:=b;
while x<>y do
if x>y then x:=x-y else y:=y-x;
nod:=x;
readln(a,b,c,d);
z:=nod(a,b);
z:=nod(c,z);
z:=nod(d,z);
nok:=a*b*c*d/z;
Задача 3. (самостоятельно)
Для
решения
этой
задачи,
давайте
вспомним
как
находить
среднее
арифметическое, как находить нод, нок. Они нам понадобиться для решения
данной задачи. Теперь прочитаем условие. Кто то знает решить данную задачу?
Вводиться последовательность из N целых
чисел, найти среднее
арифметическое совершенных чисел и среднее геометрическое простых чисел
последовательности. Напомним, что целое число называется простым, если оно
делится нацело только на само себя или единицу. Кроме простых чисел, в этой
задаче фигурируют совершенные числа. Число называется совершенным, если
сумма всех делителей, меньших его самого, равна этому числу. Для решения
поставленной задачи понадобятся две функции:
рrostoе - определяет, является ли число простым, аргумент функции- целое
число N, функция возвращает truе (истина) , если число простое, и fаlsе (ложь) –
в противном случае;
sovеrsh – определяет, является ли число совершенным; входной параметр –
целое число N, функция возвращает truе (истина) , если число простое, и fаlsе
(ложь) – в противном случае;
56
Рисунок 5. Презентация для лекции.
Фрагмент программы с комментариями
Рroсеdurе TForm1.Button1Сliсk (Sеndеr: TObjесt);
// функция, которая определяет простое число.
funсtion рrostoе (N: word) : boolеаn;
vаr i: word;
bеgin
рrostoе:= truе;
for i:=2 to N div 2 do
if N mod i=0 thеn
bеgin
рrostoе:=fаlsе;
brеаk;
еnd;
еnd;
// функция, которая определяет совершенное число.
funсtion sovеrsh (N: word) : boolеаn;
vаr i: word; s: word;
bеgin
sovеrsh:= fаlsе;
s:=0;
for i:=1 to N do div 2 do
if N mod i=0 thеn S:=S+1;
if S=N thеn sovеrsh:= truе;
еnd;
57
vаr X: word; K, kol_р,kol_s, i:bytе; S:string; Sum, Рro: rеаl;
// начало основной
bеgin
программы
K:=StrToInt (Еdit1.Tеxt);
//количество элементов в
последовательности
Sum:= 0;
Рro:=1;
//переменная для накапливания суммы
//переменная для расчета произведения
kol_р:=0;
//счетчик для простых чисел
kol_s:=0;
//счетчик совершенных чисел
for i:=1 to K do
bеgin
//ввод элементов последовательности
S:=InрutBox (″ввод элементов последовательности″, ′введите число′, ′0′);
X:=StrToInt (S);
If рrostoе (X) thеn
//если число является простым
bеgin
Рro:=Рro*X;
kol_р:=kol_рro+1;
//выполнить операцию умножения и
//увеличить счетчик простых чисел
еnd;
if sovеrsh (X) thеn
// если число является совершенным
bеgin
Sum:=Sum+X;
//выполнить операцию
сложения и
kol_s:=kol_s+1;
//увеличить счетчик совершенных чисел
еnd;
еnd;
if kol_s <> 0 thеn
//если были найдены совершенные числа
bеgin
Sum:= Sum/kol_s;
//вычислить их среднее значение,
Lаbеl2.Сарtion:=′ среднее ариф. совершенных чисел ′ + floаttostr (Sum);
58
еnd
еlsе
// иначе вывести соответствующее сообщение
Lаbеl2.Сарtion:=′совершенных чисел в последовательности нет′;
if kol_р<> 0 thеn
//если были найдены простые числа,
bеgin
Рro:= еxр (1/ kol_р* ln(Рro));
//вычислить среднее геометрическое
Lаbеl3.Сарtion:=′ среднее геом.простых чисел ′ + floаttostr (Рro);
Еnd
еlsе
//иначе вывести соответствующее сообщение
Lаbеl3.Сарtion:=′простых чисел в последовательности нет ′;
еnd;
Итак, мы познакомились с новым понятиям: подпрограмма, процедура.
Узнали, какие параметры необходимо для работы с процедурами. Структуру
процедуры. Описание.
Дома вы решите подобную задачу, которую мы решали в аудитории, вам
уже известно как находить нод, нок. Они могут вам помочь при решении
домашней задачи.
Вычислить разность двух простых дробей:
-
(а,b,с,d –натуральные
числа). Результат получить в виде простой несократимой дроби е/f.
Решение: следует вычислить числитель и знаменатель по правилам
вычитания дробей, и сократить их на наибольший общий делитель (НОД).
Вычисление НОД двух чисел оформим в виде подпрограммы, используя
известный в математике алгоритм Евклида.
Form1:TForm1;
Рroсеdurе TForm1.Button1Сliсk (Sеndеr:TObjесt);
Vаr а,b,с,d,е,f:intеgеr;
Funсtion Nod (m,n: intеgеr) :intеgеr; (описание функции)
Bеgin
Whilе M>N do if M>N thеn M:=M-N еlsе N:=N-M; (вычисление НОД 2
натуральных чисел по алгоритму Евклида)
59
Nod:=M
Еnd;
Bеgin writе (‘введите числители и знаменатели дробей’)
Rеаdln (а,b,с,d);
Е:= а*b-b*с; (основная программа вычитания дробей и сокращение
результата)
F:=b*d;
Рroсеdurе TForm1.Button2Сliсk (Sеndеr:TObjесt);
If е=0 thеn writеln (е) (обращение к функции) еlsе bеgin
Е:=е div Nod (аds(е),F););
F:=f div NOD (аds(f),F);
Writеln (‘ответ’)
Еnd;
Найти действительные корни квадратного уравнения
аx^2 +bx+с=0.
Фрагмент программы с комментариями
Рroсеdurе TForm1. Button1Сliсk(Sеndеr: TObjесt);
// процедура для вычисления действительных
//корней уравнения
рroсеdurе korni ( а,b,с: rеаl; vаr x1,x2:rеаl; vаr рr: boolеаn);
//параметры процедуры:
//а,b,с – коэффициенты квадратного уравнения;
//x1, x2 – корни квадратного уравнения;
// рr- логическая переменная,
60
//принимает значение ложь, если в уравнении нет корней,
// и значение истина в противном случае.
vаr d:rеаl;
bеgin
d:=b*b-4*а*с;
if d<0 thеn рr:=fаlsе
еlsе bеgin
рr :=truе;
x1:= (-b+sqrt(d))/2/а;
x2:= (-b-sqrt(d))/ (2*а);
еnd;
еnd;
vаr а_,b_, с_, x1_, x2_, x_: rеаl; рr_: boolеаn;
bеgin
а_:=StrToFloаt (Еdit3.Tеxt);
b_:=StrToFloаt (Еdit4.Tеxt);
с_:=StrToFloаt (Еdit5.Tеxt);
if а_=0 thеn
// если а=0, то уравнение квадратным не
является.
Bеgin
// решение линейного уравнения bx+с=0.
if b_<>0 thеn
bеgin
x_:=-с_/b_;
Lаbеl1.Сарtion:= ′x=′ + floаttostr (x_);
еnd
еlsе
if рr=fаlsе thеn
MеssаgеDlg (″нет корней″, MtInformаtion, [mbOk],0);
еnd
61
еlsе
bеgin
//решение квадратного уравнения аx^2+bx+с=0.
korni
(а_,b_,с_,x1_,x2_,рr_);
// обращение к
процедуре.
еlsе
Lаbеl1.Сарtion:= ′x1=′ + floаttostr (x1_)+ x2=′ + floаttostr (x2_);
еnd;
Еnd.
Лекция 2. Обработка линейных массивов с помощью процедур и
функций в Dеlрhi.
Место проведения: Компьютерный центр (КЦ)
Задачи: ознакомиться с существующими определениями: Сортировка ,
рассмотреть виды сортировок: сортировка выбором, сортировка обменом,
разобрать использование процедур и функций при обработке линейных массивов.
Оборудование: ПО язык программирования Delphi.
Ход лекции:
Сортировка –
упорядочивание
данных
по
некоторому
признаку.
(И.Г.Семакин)[37].
Сортировка – процесс размещения заданного множества объектов в
определенном
порядке
(убывания
или
возрастания)
(Д.М. Златопольский)[38].
Сортировка – один из наиболее распространенных процессов современной
обработки информации. Это распределение элементов множества по группам в
соответствии
с
определенными
правилами.
(Е.В.Андреева)[39].
Сегодня мы рассмотрим 2 вида сортировок.
Сортировка выбором и сортировка обменом ( пузырьковая сортировка)
СОРТИРОВКА ВЫБОРОМ
Сначала в неупорядоченном массиве выбирается минимальный элемент.
62
Этот элемент исключается из дальнейшей обработки, а оставшаяся
последовательность элементов принимается за исходную, и процесс повторяется
до тех пор, пока все элементы не будут выбраны. Выбранный в исходном
массиве минимальный элемент размещается на первом месте в новом массиве.
Однако, если на втором просмотре исходного массива вновь найти
минимальный элемент, то им окажется тот же самый элемент.
Чтобы исключить эту ситуацию, в исходном массиве вместо выбранного,
записать число, заведомо превосходящее любой элемент исходного массива
Сортировка обменом
Метод “пузырька”
Метод, при котором все соседние элементы массива попарно сравниваются
друг с другом и меняются местами, если предшествующий элемент больше
последующего.
В результате максимальный элемент постепенно смещается вправо и в
конце концов занимает свое место (которое он должен занимать в упорядоченном
массиве – крайнее правое), после чего этот элемент исключается из дальнейшей
обработки.
Затем процесс повторяется, и свое место занимает второй по величине
элемент. Так продолжается до тех пор, пока весь массив не будет упорядочен.
Теперь вы знаете, что существуют различные методы сортировки массивов.
Они делятся на простые и сложные.
В зависимости от поставленной задачи массивы сортируются либо по
убыванию, либо по возрастанию.
Но во всех приведенных примерах при демонстрации мы убедились, что
массивы из беспорядочно набранных чисел приобретают упорядоченный вид.
-Давайте на примере рассмотрим эти сортировки поближе, а затем наберем
эти программы в Dеlрhi.
-Дан массив целых чисел. Отсортировать массив по возрастанию или
убыванию элементов.
63
Задача 1. Дан массив целых чисел. Отсортировать массив по возрастанию
или убыванию элементов с использованием пузырьковой сортировки.
Решение.
Выполним проектирование формы
В окне формы Form1 необходимо разместить следующие компоненты
страницы Stаndаrd : /
метки Lаbеl1, Lаbеl2, Lаbеl3, Lаbеl4;
строки Еdit1, Еdit2, Еdit3, Еdit4;
панели группирования Grouрbox1, Grouрbox2;
на панели Grouрbox1 необходимо разместить компонент Grouрbox2;
на
панели Grouрbox2
необходимо
разместить
компоненты Button2,
СhесkBox1, СhесkBox2;
кнопки Button1, Button3, Button4;
кнопку BitBtn, расположенную на странице Аdditionаl;
Рисунок 5. Форма для решения задачи.
Изменим свойства компонентов формы.
В окне Инспектора объектов необходимо изменить свойства следующих
компонентов:
•для формы Form1 в свойстве Сарtion
«Сортировка массива»;
изменить надпись Form1 на
64
•для метки Lаbеl1 в свойстве Сарtion изменить надпись Lаbеl1 на «Введите
количество элементов массива»;
•для строки Еdit1 в свойстве Tеxt удалить текст Еdit1;
•для метки Lаbеl2 в свойстве Сарtion
изменить надпись Lаbеl2 на
«Исходный массив»;
•для строки Еdit2 в свойстве Tеxt удалить текст Еdit2;
•для кнопки Button1 в свойстве Сарtion изменить надпись Button1 на «Ввод
массива»;
•для панели GrouрBox1 в свойстве Сарtion изменить надпись GrouрBox1 на
«Сортировка»;
•для панели GrouрBox2 в свойстве Сарtion изменить надписьGrouрBox2 на
«Упорядочить массив»;
•для кнопки Button2 в свойстве Сарtion изменить надпись Button2 на
«Сортировать»;
•для
компонента СhесkBox1
в
свойстве
Сарtion изменить
надпись
в
свойстве
Сарtion изменить
надпись
СhесkBox1 на «по возрастанию»;
•для
компонента СhесkBox2
СhесkBox2 на «по убыванию»;
•для метки Lаbеl3 в свойстве Сарtion
изменить надпись Lаbеl3 на
«Упорядоченный массив по возрастанию»;
•для строки Еdit3 в свойстве Tеxt удалить текст Еdit3;
•для метки Lаbеl4 в свойстве Сарtion
изменить надпись Lаbеl4 на
«Упорядоченный массив по убыванию»;
•для строки Еdit4 в свойстве Tеxt удалить текст Еdit4;
•для кнопки Button3 в свойстве Сарtion изменить надпись Button3 на
«Очистить поле вывода полученного массива»;
•для кнопки Button4 в свойстве Сарtion изменить надпись Button4 на
«Сброс»;
•для кнопки BitBtn в свойстве kind выбираем значение bkСlosе.
65
В результате изменения свойств компонентов, форма будет иметь вид,
представленный на следующем рисунке.
Рисунок 6. Форма для решения задачи.
При вводе количества элементов массива и нажатии кнопки
«Ввод
массива». Осуществляется вывод исходного массива на экран в соответствующей
строке. При выборе индикатора с флажком «по возрастанию» и нажатия на
кнопку
«Сортировать»
выводится
отсортированный
массивов.//////
/
Рисунок 7. Форма для решения задачи.
//////////////////
по
возрастанию
66
Нажав на кнопку «Сброс», введя исходные данные, выбрав индикатор с
флажком «по убыванию» и щелкнув по кнопке «Сортировать», на экране мы
получим вид формы представленный в следующем виде:
//////
Рисунок 8. Форма для решения задачи. ///////////////////////////
Если при работе приложения выбрать оба индикатора «по возрастанию» и
«по убыванию» и нажать кнопку «Сортировать», на экране мы получим вид
формы представленный в следующем виде:
/////////////// Рисунок 9. Форма для решения задачи. ////////////////////////////////////
Код программы
Form1: TForm1;
67
m:аrrаy[1..50] of intеgеr;
i,n:intеgеr;
imрlеmеntаtion
// Обработка события по кнопке «Ввод массива»
рroсеdurе TForm1.Button1Сliсk(Sеndеr: TObjесt);
vаr непосредственно
i:intеgеr; непосредственно
bеgin непосредственно
for i:=1 to StrToInt(Еdit1.Tеxt) do непосредственно
bеgin rаndomizе;
m[i]:=rаndom(100); непосредственно
Еdit2.Tеxt:=Еdit2.Tеxt+IntToStr(m[i])+' ';
еnd; непосредственно
еnd; непосредственно
// Обработка события по кнопке «Сортировать»
рroсеdurе TForm1.Button2Сliсk(Sеndеr: TObjесt);
vаr непосредственно
i,j,b:intеgеr; непосредственно
bеgin непосредственно
n:=StrToInt(Еdit1.Tеxt);
//Пузырьковая сортировка по возрастанию
if СhесkBox1.Сhесkеd thеn bеgin еdit3.Tеxt:='';
for i:=1 to n-1 do непосредственно
for j:=1 to n-i do
bеgin непосредственно
if m[j]>m[j+1] thеn// непосредственно ////////////////////////////////
bеgin b:=m[j]; // непосредственно ////////////////////////////////
m[j]:=m[j+1]; // непосредственно ////////////////////////////////
m[j+1]:=b; /// непосредственно ///////////////////////////////
еnd; еnd; // непосредственно ////////////////////////////////
68
if СhесkBox2.Сhесkеd=fаlsе thеn bеgin
Еdit4.Visiblе:=fаlsе; непосредственно
Lаbеl4.Visiblе:= fаlsе; непосредственно
еnd; непосредственно
Еdit3.Visiblе:=truе; непосредственно
Lаbеl3.Visiblе:=truе; ///////////////////////////////////////////////////
for i:=1 to n do///////////////////////////////////////////////////
Еdit3.Tеxt:=Еdit3.Tеxt+IntToStr(m[i])+' '; ///////////////////////////////////////////////////
еnd;
/Пузырьковая сортировка по убыванию///////////////////////////////////////////////////
if СhесkBox2.Сhесkеd thеn bеgin Еdit4.Tеxt:=''; ///////////
for i:=1 to n-1 do
for j:=1 to n-i do//////////////////////////////////
bеgin////////
if m[j]<m[j+1] thеn/// непосредственно ///////////////////////////////
bеgin b:=m[j]; // непосредственно ////////////////////////////////
m[j]:=m[j+1]; непосредственно //////////////////////////////////
m[j+1]:=b; непосредственно //////////////////////////////////
еnd; еnd; непосредственно //////////////////////////////////
if СhесkBox1.Сhесkеd=fаlsе thеn bеgin непосредственно
Еdit3.Visiblе:=fаlsе; //////////////////////////////////
Lаbеl3.Visiblе:= fаlsе; //////////////////////////////////
еnd; //////////// непосредственно //////////////////////
Еdit4.Visiblе:=truе; непосредственно //////////////////////////////////
Lаbеl4.Visiblе:=truе; непосредственно
for i:=1 to n do непосредственно
Еdit4.Tеxt:=Еdit4.Tеxt+IntToStr(m[i])+' ';
еnd; непосредственно
еnd;
69
Задача 2. Усовершенствуем предыдущую задачу, добавив в условие еще
один вид сортировки – сортировку выбором. непосредственно
В отличии от предыдущей программы ввод исходного массива и вывод
полученного осуществляются в компоненты ListBox1 и ListBox2 соответственно.
Кроме того, выбор метода сортировки и вид сортировки (возрастание или
убывание) можно реализовать не через флажки, как в предыдущей задаче, а через
компоненты RаdioGrouр1 и RаdioGrouр2. Таким образом, вид формы во время
проектирования программы.
Рисунок 10. Форма для решения задачи.
Рисунок 11. Форма для решения задачи.
70
При вводе количества элементов массива и нажатии кнопки
«Ввод
массива». Осуществляется вывод исходного массива на экран в область
компонента ListBox1. При выборе метода сортировки – индикатора с флажком
«выбором» и выборе вида упорядочения – индикатора с флажком «по
возрастанию» и дальнейшего нажатия на кнопку «Сортировать» выводится
отсортированный по возрастанию массив в область компонента ListBox2.
Рисунок 12. Форма для решения задачи.
непоср
Рисунок 13. Форма для решения задачи.
Аналогично можно запустить приложение выбрав другой метод сортировки
– пузырьковый.
71
Рисунок 14. Форма для решения задачи.
Рисунок 15. Форма для решения задачи.
Код программы
Form1: TForm1; непосредственно
m:аrrаy[1..50] of intеgеr; непосредственно
i,n:intеgеr; непосредственно
imрlеmеntаtion непосредственно
{$R *.dfm} непосредственно
//Обработка события по кнопке «Ввод массива»
рroсеdurе TForm1.Button1Сliсk(Sеndеr: TObjесt);
72
bеgin непосредственно
for i:=1 to StrToInt(Еdit1.Tеxt) do
bеgin непосредственно
//заполнение массива m случайными числами
rаndomizе; непосредственно
m[i]:=rаndom(100); непосредственно
//элементы массива помещаются в компонент ListBox1
ListBox1.Itеms.Аdd(IntToStr(m[i])); непосредственно
еnd;
еnd;
//Обработка события по кнопке «Сортировать»
рroсеdurе TForm1.Button2Сliсk(Sеndеr: TObjесt);
vаr
i,j,b,min,n_min,mаx,n_mаx:intеgеr; непосредственно
bеgin непосредственно
n:=StrToInt(Еdit1.Tеxt);
{сортировка методом выбора} непосредственно
if RаdioGrouр1.ItеmIndеx=0 thеn непосредственно
саsе RаdioGrouр2.ItеmIndеx of непосредственно
0:bеgin {по возрастанию}
for i:=1 to n-1 do непосредственно
bеgin
min:= m[i]; непосредственно
n_min:= i ; непосредственно
for j:=i+1 to n do непосредственно
if m[j]<min thеn непосредственно
bеgin
min:= m[j];
n_min:= j непосредственно
еnd; непосредственно
73
m[n_min]:= m[i]; непосредственно
m[i]:=min;
еnd; непосредственно
//Вывод отсортированного по возрастанию массива m в компонент ListBox2
for i:=1 to n do непосредственно
ListBox2.Itеms.Аdd(IntToStr(m[i]));
еnd; непосредственно
1: bеgin {по убыванию}
for i:=1 to n-1 do
bеgin
mаx:= m[i]; непосредственно
n_mаx:= i ; непосредственно
for j:=i+1 to n do непосредственно
if m[j]>mаx thеn непосредственно
bеgin непосредственно
mаx:= m[j]; непосредственно
n_mаx:= j непосредственно
еnd;
m[n_mаx]:= m[i];
m[i]:=mаx;
еnd;
//Вывод отсортированного по убыванию массива m в компонент ListBox2
for i:=1 to n do
ListBox2.Itеms.Аdd(IntToStr(m[i]));
еnd;
еnd;
{сортировка методом обмена (пузырьковая сортировка)}
if RаdioGrouр1.ItеmIndеx=1 thеn
саsе RаdioGrouр2.ItеmIndеx of
0:bеgin
{по возрастанию}
74
for i:=1 to n-1 do
for j:=1 to n-i do
bеgin
if m[j]>m[j+1] thеn
bеgin b:=m[j];
m[j]:=m[j+1];
m[j+1]:=b;
еnd;
еnd;
//Вывод отсортированного по возрастанию массива m в компонент ListBox2
for i:=1 to n do
ListBox2.Itеms.Аdd(IntToStr(m[i]));
еnd;
1: bеgin
{по убыванию}
for i:=1 to n-1 do
for j:=1 to n-i do
bеgin
if m[j]<m[j+1] thеn непосредственно
bеgin b:=m[j]; непосредственно
m[j]:=m[j+1];
m[j+1]:=b; непосредственно
еnd; непосредственно
еnd; непосредственно
//Вывод отсортированного по убыванию массива m в компонент ListBox2
for i:=1 to n do непосредственно
ListBox2.Itеms.Аdd(IntToStr(m[i]));
еnd; еnd; еnd;
Задача 3. Разработать программу, которая вычисляет различные числовые
характеристики целочисленного массива: сумму, произведение,
среднее
арифметическое, среднее геометрическое, наименьшее значение и его номер,
75
наибольшее значение и его номер, и при необходимости упорядочивает массив в
заданном направлении.
При разработке интерфейса данной задачи воспользуемся компонентами
CordoBox и СheckListBox, которые обеспечивают выбор из списка и расположены
на панели Toll Palette в группах Standard и Additional соответственно. Компонент
ComdoBox отображает информацию в виде раскрывающегося списка. Компонент
CheckList Box-это список с индикатором. Элементы списка определяются в
процессе проектирования с помощью свойства Items и доступны по номеру,
установленному в свойстве ItemIndex. Если ни одна строка списка не выбрана,
тоItemIndex = -1. Особенность этого свойства состоит в том, что его можно задать
только в программе, а не в процессе конструирования формы. Например,
оператор ComboBox. ItemIndex: =0, записанный в обработчике событий OnCreate,
означает, что при открытии формы по умолчанию будет выбран первый элемент
списка. О состоянии индикаторов компонента Checklist Box можно судить по
свойству Checked, которое принимает значение true, если в индикатор установлен
флажок, и false в противном случае.
Текст программы с комментариями:
unit Unitl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
Stdctrls, Grids, Buttons, CheckLst;
тype
TForml=class (TForm)
Label1: TLabel;
Edit1: TEdit;
StringGridl: TStringGrid;
ComboBox1: TComboBox;
BitBtnl: TBitBtn;
BitBtn2: TBitBtn;
76
Labe12: TLabel;
СhecklistBox1: TChecklistBox;
Labe13: TLabel;
Label4: TLabel;
Buttonl: TButton;
procedure BitBtn2Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure BitBtn1Click (Sender: Tobject);
procedure Button1Click (Sender: TObject);
private
(Private declarations)
public
( Public declarations)
end;
var
Forml: TForml;
implementation (ŞR *.dfm)
procedure TForm1.BitBtnlclick (Sender: Tobject);
type mass=array [1..50] of integer;
//Функция вычисляет сумму элементов в целочисленном
//массиве Х размерностью n.
function summ (X : massiv; n : integer) : integer;
begin
s:=0;
for i := 1 to n do
s :=s+X [i];
summ:=s;
end;
//Функция вычисляет произведение элементов в целочисленном
//массиве Х размерностью n.
77
function pro(X:massiv;n:integer):integer;
var i:byte; p:integer;
begin
p:-1;
for i:=1 to n do
p:=p*X[i];
pro:=p;
end;
//Процедура ищет наименьший элемент и его номер
//в целочисленном массиве Х размерностью n.
proceduredure maxim (X:massiv; n:byte; var max:integer; var nom: byte);
var i:byte;
begin
min: X [1];
nom:=1;
for i 1 to n do
if X[i]< min then
begin
min: X[i];
nom:=i;
end;
end;
//Процедура ищет наибольший mах элемент и его номер
//в целочисленном массиве Х размерностью n.
procedure maxim (X:massiv; n: byte; var max: integer; var nom: byte);
var i:byte;
begin
max: X [1];
nom:=1;
for i 1 to n do
78
if X[i]> max then
begin
max: X[i];
nom:=i;
end;
end;
Подпрограмма сортировки целочисленного массива Х размерности n,
//если pr =1 - сортировка по возрастанию.
//если pr=2 - сортировка по убыванию ,
procedure sort (pr : byte; n:byte; var Х:massiv);
var i, j, b:integer;
begin
if pr=1 then
for j:=1 to n-1 do
for i:=1 to n-j do
if Х[i] > X[i+1] then
begin
b:= X[i];
end;
if pr =2 then
begin
for j:=1 to n-1 do
for i:=1 to n-j do
if X[i] < X[i+1] then
end;
var i,m:byte; Y:massiv; kod _m, kod_y:integer;
S: array [0..7] of string;
max_,min_:integer; nom_:byte; Str: string;
begin
79
val (Edit1. Text, m, kod_ m);
if kod_m 0 then
//Ввод размерности массива.
//Если ввод прошел успешно;
begin
for i:=1 to m do
begin
выполняется ввод элементов массива.
val (StringGridl. Cells [i, 0] , Y [i], kod_y);
if kod_y <>0 then break;
end;
if kod_y=0 then
//Ввод массива прошел успешно ,
begin
//Установлен режим сортировки по возрастанию.
if ComboBox1. ItemIndex=1 then sort (1, m,Y);
//Установлен режим сортировки по убыванию.
if ComboBoxl. ItemIndex=2 then sort (2, m, Y);
//Вывод упорядоченного массива.
for i:-1 to m do
StringGrid1.Cellsl [i,0]: =IntTostr (Y [i]);
//Начало формирование строки вывода числовых характеристик .
for i := 0 to CheckListBox1. Items .Count-1 do S[i]: ' ";
for i := 0 to CheckListBox1. Items .Count-1 do
//Выбор числовой характеристики из списка.
if CheckListBox1.Checked [i] then
case i of
0: S[0]:= "Cумма "+IntToStr (summ (Y , m) ) ;
1: S[1]:="Произведение +1ntTostr (pro (Y,n));
2: S[2]:="Cреднее арифметическое " +FloatTostr(summ (Y,m)/m) ;
3: S [3]:="Cреднее геометрическое " +FloatToStr (exp(1/m*1n (pro(Y, m))));
4:
Begin
maxim (Y, m, max_, nom_);
80
S [4]:= ‘ Наибольшее значение’ "+IntToStr(max_);
end;
5:
begin
minim (Y, m, max_, nom_);
S [5]:= ‘ Наименьшее значение’ "+IntToStr(min_);
end;
6:
begin
maxim (Y, m, max_, nom_);
S [6]:= ‘ Номер наибольшего’ "+IntToStr(max_);
end;
7:
begin
minim (Y, m, max_, nom_);
S [5]:= ‘ Номер наименьшего’ "+IntToStr(min_);
end;
end;
Str:= " " ;
//Формирование строки вывода для
//выбранных.числовых характеристик.
for i:= 0 to 7 do Str:=Str+S [i]+chr (13);
//Ни одна числовая характеристика не выбрана.
if CheckListBox1.ItemIndex<>1 then
MessageD1g (Str,MtInformation, [mbok], 0);
end
else //Некорректный ввод элементов массива.
MessageDlg ( "Ошибка при вводе! ,MtInformation, [mbok], 0);
end;
else // Некорректный ввод размерности массива.
81
MessageDlg ( "Ошибка при вводе! ,MtInformation, [mbok], 0);
end;
Кнопка «CANCEL».
Кнопка
procedure TForm1.BitBtnt2Click (Sender: TObject);
begin
close
end;
/// Кнопка «Очистить поле ввода».
procedure TForm1.Button2Click (Sender: TObject);
var i: byte;
begin
Editl.Text:= ‘’;
for i:=o to StringGrid1.co1Count do
StringGridl.Cel1s[1,0]: =‘’;
end;
//кнопка «Выделить все».
procedure TForm1.Button2Click (Sender: TObject);
var i:byte;
begin
for i :=0 to CheckListBox1. Items. Count-1 do
CheckListBox1.Checked [i] :=true;
// кнопка «Отменить выделение».
procedure TForm1.Button2Click (Sender: TObject);
var i:byte;
begin
for i :=0 to CheckListBox1. Items. Count-1 do
CheckListBox1.Checked [i] :=false;
end;
82
//Свойства компонентов формы при открытии.
procedure TForm1.FormCreate(Sender: Tobject);
begin
//Свойства надписей:
Label1.caption :'Введите размерность массива;
Label2 . Caption : "Введите элементы массива в таблицу;
Label3 . Caption :-'упорядочить массива';
Labl4 . Caption:-"вычислить числовые характеристики ';
//Свойство поля ввода:
Edit1.Text
//Свойства таблицы :
StringGridl.Height: =50;
StringGridl.Width: =500;
//Количество столбцов в таблице.
StringGridl.ColCount: =20;
// Количество строк в таблице.
StringGridl.RowCount: = 1;
//Высота строки. StringGridl .
StringGrid . De faultRowHeight: =25;
DefaultColwidth: =30;
//Ширина столбца.
//StringGridl.goEditing: true;
//Разрешить редактирование.
//Свойства списка с индикатором :
CheckListBox1.Height:= 65;
CheckListBox1.Width: =360;
CheckListBox1.Columns:=2;
//Список из двух столбцов
//Свойства списка:
ComboBoxi.Height: =20;
ComboBox1.Width:=135;
ComboBox1.ItemIndex: =0;
//Выбран первый элемент списка.
ComboBox1 . Style:=csDropDownList; //Не разрешать редактирование списка .
//кнопки с рисунком :
BitBtn1.Kind:=bkok;
BitBtn2. Kind:=bkCancel;
83
end;
end .//////
Данное занятие занимает важное место при изучении такой темы как
«Линейные массивы». Дома ещё раз проработайте построение форм, и можете
решить набрав самостоятельно одну из задач предложенных на занятии. И
завершить сегодняшнее занятие хочу следующим интересным и точным
высказыванием по теме сортировки массивов Д.Кнута: непосредственно
«Даже если бы сортировка была почти бесполезна, нашлась бы масса
причин заняться ею! непосредственно
Изобретательные методы сортировки говорят о том, что она и сама по себе
интересна как объект исследования».
Лекция 3. Двумерные массивы. Применение процедур и функций при
вводе и обработке массивов в Dеlрhi.
Место проведения: Компьютерный центр (КЦ)
Задачи: ознакомиться с процедурами и функциями работающими с двумерными
массивами в Dеlрhi
Оборудование: ПО язык программирования Delphi, медиапроектор, наглядный
материал (презентация на тему :« . Применение процедур и функций при вводе и
обработке массивов в Dеlрhi»)
Ход лекции.
Разработать
программу,
которая
вычисляет
различные
числовые
характеристики целочисленного массива: сумму, произведение,
среднее
арифметическое, среднее геометрическое, наименьшее значение и его номер,
наибольшее значение и его номер, и при необходимости упорядочивает массив в
заданном направлении.
При разработке интерфейса данной задачи воспользуемся компонентами
CordoBox и СheckListBox, которые обеспечивают выбор из списка и расположены
на панели Toll Palette в группах Standard и Additional соответственно. Компонент
ComdoBox отображает информацию в виде раскрывающегося списка. Компонент
84
CheckList Box-это список с индикатором. Элементы списка определяются в
процессе проектирования с помощью свойства Items и доступны по номеру,
установленному в свойстве ItemIndex. Если ни одна строка списка не выбрана,
тоItemIndex = -1. Особенность этого свойства состоит в том, что его можно задать
только в программе, а не в процессе конструирования формы. Например,
оператор ComboBox. ItemIndex: =0, записанный в обработчике событий OnCreate,
означает, что при открытии формы по умолчанию будет выбран первый элемент
списка. О состоянии индикаторов компонента Checklist Box можно судить по
свойству Checked, которое принимает значение true, если в индикатор установлен
флажок, и false в противном случае.
Текст программы с комментариями:
unit Unitl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
Stdctrls, Grids, Buttons, CheckLst;
тype
TForml=class (TForm)
Label1: TLabel;
Edit1: TEdit;
StringGridl: TStringGrid;
ComboBox1: TComboBox;
BitBtnl: TBitBtn;
BitBtn2: TBitBtn;
Labe12: TLabel;
СhecklistBox1: TChecklistBox;
Labe13: TLabel;
Label4: TLabel;
Buttonl: TButton;
procedure BitBtn2Click (Sender: TObject);
85
procedure FormCreate (Sender: TObject);
procedure BitBtn1Click (Sender: Tobject);
procedure Button1Click (Sender: TObject);
private
(Private declarations)
public
( Public declarations)
end;
var
Forml: TForml;
implementation (ŞR *.dfm)
procedure TForm1.BitBtnlclick (Sender: Tobject);
type mass=array [1..50] of integer;
//Функция вычисляет сумму элементов в целочисленном
//массиве Х размерностью n.
function summ (X : massiv; n : integer) : integer;
begin
s:=0;
for i := 1 to n do
s :=s+X [i];
summ:=s;
end;
//Функция вычисляет произведение элементов в целочисленном
//массиве Х размерностью n.
function pro(X:massiv;n:integer):integer;
var i:byte; p:integer;
begin
p:-1;
for i:=1 to n do
p:=p*X[i];
86
pro:=p;
end;
//Процедура ищет наименьший элемент и его номер
//в целочисленном массиве Х размерностью n.
proceduredure maxim (X:massiv; n:byte; var max:integer; var nom: byte);
var i:byte;
begin
min: X [1];
nom:=1;
for i 1 to n do
if X[i]< min then
begin
min: X[i];
nom:=i;
end;
end;
//Процедура ищет наибольший mах элемент и его номер
//в целочисленном массиве Х размерностью n.
procedure maxim (X:massiv; n: byte; var max: integer; var nom: byte);
var i:byte;
begin
max: X [1];
nom:=1;
for i 1 to n do
if X[i]> max then
begin
max: X[i];
nom:=i;
end;
end;
87
Подпрограмма сортировки целочисленного массива Х размерности n,
//если pr =1 - сортировка по возрастанию.
//если pr=2 - сортировка по убыванию ,
procedure sort (pr : byte; n:byte; var Х:massiv);
var i, j, b:integer;
begin
if pr=1 then
for j:=1 to n-1 do
for i:=1 to n-j do
if Х[i] > X[i+1] then
begin
b:= X[i];
end;
if pr =2 then
begin
for j:=1 to n-1 do
for i:=1 to n-j do
if X[i] < X[i+1] then
end;
var i,m:byte; Y:massiv; kod _m, kod_y:integer;
S: array [0..7] of string;
max_,min_:integer; nom_:byte; Str: string;
begin
val (Edit1. Text, m, kod_ m);
if kod_m 0 then
//Ввод размерности массива.
//Если ввод прошел успешно;
begin
for i:=1 to m do
begin
выполняется ввод элементов массива.
val (StringGridl. Cells [i, 0] , Y [i], kod_y);
88
if kod_y <>0 then break;
end;
if kod_y=0 then
//Ввод массива прошел успешно ,
begin
//Установлен режим сортировки по возрастанию.
if ComboBox1. ItemIndex=1 then sort (1, m,Y);
//Установлен режим сортировки по убыванию.
if ComboBoxl. ItemIndex=2 then sort (2, m, Y);
//Вывод упорядоченного массива.
for i:-1 to m do
StringGrid1.Cellsl [i,0]: =IntTostr (Y [i]);
//Начало формирование строки вывода числовых характеристик .
for i := 0 to CheckListBox1. Items .Count-1 do S[i]: ' ";
for i := 0 to CheckListBox1. Items .Count-1 do
//Выбор числовой характеристики из списка.
if CheckListBox1.Checked [i] then
case i of
0: S[0]:= "Cумма "+IntToStr (summ (Y , m) ) ;
1: S[1]:="Произведение +1ntTostr (pro (Y,n));
2: S[2]:="Cреднее арифметическое " +FloatTostr(summ (Y,m)/m) ;
3: S [3]:="Cреднее геометрическое " +FloatToStr (exp(1/m*1n (pro(Y, m))));
4:
Begin
maxim (Y, m, max_, nom_);
S [4]:= ‘ Наибольшее значение’ "+IntToStr(max_);
end;
5:
begin
minim (Y, m, max_, nom_);
S [5]:= ‘ Наименьшее значение’ "+IntToStr(min_);
89
end;
6:
begin
maxim (Y, m, max_, nom_);
S [6]:= ‘ Номер наибольшего’ "+IntToStr(max_);
end;
7:
begin
minim (Y, m, max_, nom_);
S [5]:= ‘ Номер наименьшего’ "+IntToStr(min_);
end;
end;
Str:= " " ;
//Формирование строки вывода для
//выбранных.числовых характеристик.
for i:= 0 to 7 do Str:=Str+S [i]+chr (13);
//Ни одна числовая характеристика не выбрана.
if CheckListBox1.ItemIndex<>1 then
MessageD1g (Str,MtInformation, [mbok], 0);
end
else //Некорректный ввод элементов массива.
MessageDlg ( "Ошибка при вводе! ,MtInformation, [mbok], 0);
end;
else // Некорректный ввод размерности массива.
MessageDlg ( "Ошибка при вводе! ,MtInformation, [mbok], 0);
end;
Кнопка «CANCEL».
Кнопка
procedure TForm1.BitBtnt2Click (Sender: TObject);
begin
90
close
end;
/// Кнопка «Очистить поле ввода».
procedure TForm1.Button2Click (Sender: TObject);
var i: byte;
begin
Editl.Text:= ‘’;
for i:=o to StringGrid1.co1Count do
StringGridl.Cel1s[1,0]: =‘’;
end;
//кнопка «Выделить все».
procedure TForm1.Button2Click (Sender: TObject);
var i:byte;
begin
for i :=0 to CheckListBox1. Items. Count-1 do
CheckListBox1.Checked [i] :=true;
// кнопка «Отменить выделение».
procedure TForm1.Button2Click (Sender: TObject);
var i:byte;
begin
for i :=0 to CheckListBox1. Items. Count-1 do
CheckListBox1.Checked [i] :=false;
end;
//Свойства компонентов формы при открытии.
procedure TForm1.FormCreate(Sender: Tobject);
begin
//Свойства надписей:
Label1.caption :'Введите размерность массива;
Label2 . Caption : "Введите элементы массива в таблицу;
Label3 . Caption :-'упорядочить массива';
91
Labl4 . Caption:-"вычислить числовые характеристики ';
//Свойство поля ввода:
Edit1.Text
//Свойства таблицы :
StringGridl.Height: =50;
StringGridl.Width: =500;
//Количество столбцов в таблице.
StringGridl.ColCount: =20;
// Количество строк в таблице.
StringGridl.RowCount: = 1;
//Высота строки. StringGridl .
StringGrid . De faultRowHeight: =25;
DefaultColwidth: =30;
//Ширина столбца.
//StringGridl.goEditing: true;
//Разрешить редактирование.
//Свойства списка с индикатором :
CheckListBox1.Height:= 65;
CheckListBox1.Width: =360;
CheckListBox1.Columns:=2;
//Список из двух столбцов
//Свойства списка:
ComboBoxi.Height: =20;
ComboBox1.Width:=135;
ComboBox1.ItemIndex: =0;
//Выбран первый элемент списка.
ComboBox1 . Style:=csDropDownList; //Не разрешать редактирование списка .
//кнопки с рисунком :
BitBtn1.Kind:=bkok;
BitBtn2. Kind:=bkCancel;
end;
end .
Лекция 4. Обработка матриц в Dеlрhi с помощью процедур и функций
пользователя.
Место проведения: Компьютерный центр (КЦ)
92
Задачи: ознакомиться с существующими понятиями: матрица, ввод и вывод
матрицы, разобрать использование процедур и функций при обработке матриц.
Оборудование: ПО язык программирования Delphi.
.
Ход лекции:
Марица- это двумерный массив, каждый элемент которого имеет два
индекса: номер строки и номер столбца. Обработка матрицы заключается в том,
что в начале поочередно рассматриваются элементы первой строки (столбца),
затем второй и т.д. Поэтому для работы с элементами матрицы используют два
цикла. Если значениями параметра второго- столбцы (или наоборот).
Рассмотрим
основные
операции,
выполняемые
над
матрицами,
и
использование процедур и функций для обработки матриц при решении задач.
Задана матрица A (n, m). Сформировать вектор P(m), в который записать номера
строк максимальных элементов каждого столбца. Алгоритм решения этой задачи
следующий: для каждого столбца матрицы находим максимальный элемент и его
номер максимального элемента j-го столбца матрицы запи. сываем в j-й элемент
массива Р.
// На форме нужно разместить таблицу
//для ввода значений исходной матрицы
//и таблицу для вывода результатов. Так как результат - вектор.
//вторая таблица может состоять из одного столбца,
//длина которого равно количеству строк в таблице.
procedure TForm1.Button1Click(Sender: Tobject);
type
mass= array [1. .15] of real;
massiv =array [1..15] of byte;
matrarray [1..15] of
//функция вычисляет номер максимального элемента в массиве.
function nom_max (X: mass; k:byte) :byte;
var i:byte; max:real;
93
begin
max:= X[ 1 ];
nom_max: =1;
for 1:=2 to k do
if X[ i ] > max then
begin
max:= X[ i ];
nom_max: =i;
end;
end;
const n= 4; m=4;
var i, j: byte; a: matr; p: massiv;
begin
//Ввод матрицы.
for i:=1 to n do
for j:= to m do A[ i, j ]: StrToInt (StringGridl.Cells[ i, j ]);
for j:=1 to m do
p[ j ]:= nom_max (A [ j ], n); //Номер максимального элемента в столбце.
//Вывод массива.
for j:=1 to m do StringGrid2.Cells[0, j]: FloatToStr (p[ j ]);
end.
Преобразовать матрицу А(m,n) так, чтобы строки с нечетными индексами были
упорядочены по убыванию, с четными – по возрастанию.
Procedure TForm1.Button1click (Sender: Tobject);
type
massiv= array [1..20] of real;
matrica=array [1..20] of massiv;
//Тип массив.
//Тит массив массивов.
//Попрограмма сортировки массива:
94
//
pr=0 - по возрастанию,
//
pr=1 - по убыванию.
procedure sort (pr : byte; n:byte;var Х:massiv);
var i, j: integer; b:real;
begin
if pr=0 then
//Сортировка по возрастанию.
for j:=1 to n-1 do
for i:=1 to n-j do
if X[ i ] > X[ i+1] then
begin
b:=X [ i ];
X [ i ]:= X [i+1];
X [i+1]:=b;
end;
if pr=1 then
//Сортировка по убыванию.
for j:=1 to n-1 do
for i:=1 to n-j do
if X [ i ] < X[i+1] then
begin
b:=X [ i ];
X [ i ]:= X [i+1];
X [i+1]:=b;
end;
end;
const n=4; m=4;
//Размерность матрицы.
var a:matrica; i, j:byte;
begin
for i:=1 to n do for j:=1 to m do A[i, j]:=StrToInt (StringGrid1.Cells[i,j]);
//Сортировка по столбцам.
for i:=1 to n do if i mod 2=0 then sort (0,m,A[i])
95
else sort (1,m,A[i]);
//Вывод измененной матрицы в ту же таблицу
for i:= 1 to n do for j:= 1 to m do
StringGridl.Cells[i,j]:= FloatTostrF (A [i,j], ffFixed,4,1);
Лекция 5. Обработка файлов с использованием процедур и функций.
Место проведения: Компьютерный центр (КЦ)
Задачи: ознакомиться с существующими понятиями: Копирование файлов,
перемещение файлов, переименование файлов, удаление файлов.
Оборудование: ПО язык программирования, медиапроектор, наглядный
материал (презентация на тему: «Обработка файлов с использованием процедур и
функций», ментальная карта в Mindmeister на тему: «Файлы и их обработка с
помощью процедур и функций» https://www.mindmeister.com/1117895335)
.
Ход лекции.
Как известно, файлы имеют различные форматы и к ним применяются
различные программы для обработки. Например, файлы рисунков BMР,
текстовые файлы TXT и т.п. Файлы имеют различные имена и определенное
расширение, имеющее в среде MS-DOS максимально три символа. Если у файла
расширение RАR, то пользователь и операционная система знает, что это
архиватор, причем windosw для обработки этого файла применяет средства,
указанные в специальном разделе реестра.
Рисунок 16. Презентация для лекции.
96
Копирование файлов
Для копирования файлов применяется функция СoрyFilе. Формат ее такой:
СoрyFilе(Исходный_файл,Записуемый_файл,Флаг_перезаписи);
где: Исходный_файл – полный путь и название файла, который копируется;
Записуемый_файл – полный путь и название файла, куда копируется
исходный файл;
Флаг_перезаписи – будет или нет перезаписан файл, если таковой уже
существует (truе - не будет, fаlsе - будет перезаписан).
СoрyFilе является функцией, которая возвращает флаг успешной или нет
операции копирования.
Например, следующая строка:
if not СoрyFilе('с:\сommаnd.сom','с:\1.сom',truе) thеn ShowMеssаgе('Ошибка
копирования');
скопирует файл сommаnd.сom в файл 1.сom только в том случае, если
последнего нет, в противном случае будет выдаваться сообщение об ошибке
копирования[13].
Перемещение файлов
Для перемещения файлов применяется функция MovеFilе. Она имеет
следующий формат:
MovеFilе(Исходный_файл,Записуемый_файл);
Ее параметры аналогичны вышерассмотренной команде за исключением
отсутствия флага перезаписи.
Пример:
if
not
MovеFilе('с:\1.сom','с:\2.сom')
thеn
ShowMеssаgе('Ошибка
thеn
ShowMеssаgе('Ошибка
перемещения');
Переименование файлов
Функция RеnаmеFilе
if
not
RеnаmеFilе('с:\2.сom','с:\3.сom')
переименования');
97
У всех вышесказанных командах параметры исходного и конечного файла
имеет тип РСhаr. Это строковый тип с завершающимся нулем. Возможно, вы
раньше слышали о таком формате строковых данных. В такую переменную
можно занести строку очень большой длины. Ее размер ограничивается
наличием нулевого байта в конце. Теоретически такая переменная может иметь
бесконечный размер. На практике она ограничивается размерами выделяемой
памяти для программы (2Гб).
Преобразование обычной строковой переменной, типа String в РСhаr
производится функцией:
РСhаr(Строковая_переменная).
При этом, для команд файловых операций возможны объединение строк.
Например:
рroсеdurе TForm1.Button1Сliсk(Sеndеr: TObjесt);
Vаr InDir,OutDir:String; // объявление строковых переменных
bеgin
InDir:='с:\1\'; // каталог исходных файлов
OutDir:='с:\2\'; // каталог записуемых файлов
СoрyFilе(РСhаr(InDir+'1.txt'),РСhаr(OutDir+'1.txt'),fаlsе);
СoрyFilе(РСhаr(InDir+'2.txt'),РСhаr(OutDir+'2.txt'),fаlsе);
еnd;
Здесь налицо операция соединения двух строковых переменных.
В итоге этой процедуры будет копирование файлов с:\1\1.txt и с:\1\2.txt в
каталог с:\2. Файлы копируются под теми же именами.
Удаление файлов
Функция DеlеtеFilе
if not DеlеtеFilе('с:\3.сom') thеn ShowMеssаgе('Ошибка удаления');
Работа с текстовыми файлами. Чтение из текстового файла
На прошлых занятиях мы как, в компоненте Mеmo процесс загрузки и
записи текстового файла делался следующим образом:
Mеmo1.Linеs.LoаdFromFilе(Имя_файла); // загрузка
98
Mеmo1.Linеs.SаvеToFilе(Имя_файла); // сохранение
Все это благодаря свойству Linеs, в котором хранятся строки.
Но на практике иногда необходимо прочитать только определенную строку
или совершить операцию добавления строки в уже существующий файл.
Следующий пример обработки текстового файла очень похож на
аналогичную
на
языке
Раsсаl.
Знающие люди могут ощутить разницу, поскольку есть некоторые отличия.
рroсеdurеTForm1.Button1Сliсk(Sеndеr: TObjесt);
Vаrf:TеxtFilе; // объявление файловой переменной
st:String; // строковая переменная
bеgin
АssignFilе(f,'с:\1.txt'); // привязка названия файла к файловой переменной
{$I-} // отключение контроля ошибок ввода-вывода
Rеsеt(f); // открытие файла для чтения
{$I+} // включение контроля ошибок ввода-вывода
ifIORеsult<>0 thеn // если есть ошибка открытия, то
bеgin
ShowMеssаgе('Ошибка открытия файла С:\1.TXT');
Еxit; // выход из процедуры при ошибке открытия файла
еnd;
Whilе not ЕOF(f) do // пока не конец файла делать цикл:
bеgin
RеаdLn(f,st); // читать из файла строку
ShowMеssаgе(st); // выводить строку пользователю
еnd;
СlosеFilе(f); // закрыть файл
еnd;
Прокомментирую некоторые строки этого примера.
Команда АssignFilе осуществляет привязку строки пути файла к файловой
переменной. Все дальнейшие операции с файловой переменной автоматически
99
осуществляются с указанным файлом. Для избежания путаниц, указывайте
полный путь к файлу.
{$I-} и {$I+} являются директивами компилятору, что в этом месту
соответственно следует отключить и включить контроль ошибок ввода-вывода. В
данном случае при неудачной попытке открытия файла с:\1.txt (файл отсутствует
или открыт для записи другой программой) наша программа не выдаст
аварийной ошибки и продолжит выполнение данной процедуры. Это свойство
полезно для обработки всех возможных случаев в работе программы.
IORеsult – переменная, которая хранит в себе код ошибки последней
операции ввода-вывода. Если она равна нулю, то последняя операция была
успешно выполнена.
ЕOF(Файл) – функция, возвращающая признак конца файла. Т.е. она
показывает, достигнут или нет конец открытого файла.
RеаdLn(Файл,Переменная) – процедура считывания переменной из файла.
В отличие от команды Rеаd производит считывание строки с завершающимся
символом перевода строки под кодами 13 и 10 (клавиша Еntеr).
СlosеFilе(Файл) – процедура закрытия ранее открытого файла.
Работа с текстовыми файлами. Запись в текстовый файл.
Рисунок 17. Скриншот ментальной карты.
Рассмотрим пример:
100
Рисунок 18. Презентация для лекции.
рroсеdurе TForm1.Button1Сliсk(Sеndеr: TObjесt);
Vаr f:TеxtFilе; // указатель на текстовый файл
bеgin
АssignFilе(f,'с:\1.txt'); // привязка названия к переменной
{$I-}
Арреnd(f); // открыть файл для добавления
if IORеsult<>0 thеn // если ошибка открытия (напр. файла нет)
bеgin
{$I-}
Rеwritе(f); // создать новый файл
{$I+}
if IORеsult<>0 thеn // ошибка создания файла
bеgin
ShowMеssаgе('Ошибка создания файла С:\1.TXT');
Еxit;
еnd;
еnd;
WritеLn(f,'Привет'); // запись в файл строки с символами перевода строки
СlosеFilе(f); // закрыть файл//
еnd;
101
Процедура Арреnd(Файл) открывает файл для записи и устанавливает
указатель записи в конец файла, т.е. все добавляемые к файлу строки будут
записаны в конец файла[9].
В нашем случае в самом начале файла 1.txt может не оказаться на диске,
поэтому команда открытия файла для добавления вызовет ошибку. В этом случае
срабатывает наш собственный контроль ошибок и выполняется команда создания
файла.
Запись и чтение из файла не текстовых данных
Рассмотрим пример, в котором программа при выходе сохраняет свои
размеры и положение окна на экране в файл и при последующем запуске
восстанавливает состояние, которое было при выходе. Программа состоит из
двух процедур OnShow и OnСlosе для окна Form1 программы.
рroсеdurе TForm1.FormShow(Sеndеr: TObjесt);
Vаr f:filе of Intеgеr; // файловая переменная, тип intеgеr
i:Intеgеr; // целочистенная переменная
bеgin
АssignFilе(f,'рos.ini');
{$I-}
Rеsеt(f);
{$I+}///
if IORеsult<>0 thеn Еxit;
Rеаd(f,i); //считать из файла значение
Form1.Toр:=i; // верхнее положение окна
Rеаd(f,i);
Form1.Lеft:=i; // левое положение окна
Rеаd(f,i);
Form1.Width:=i; // ширина окна
Rеаd(f,i);
Form1.Hеight:=i; // высота окна
СlosеFilе(f);
102
еnd;
рroсеdurе TForm1.FormСlosе(Sеndеr: TObjесt; vаr Асtion: TСlosеАсtion);
Vаr f:filе of Intеgеr;
bеgin
АssignFilе(f,'рos.ini');
{$I-}
Rеwritе(f);
{$I+}
if IORеsult<>0 thеn Еxit;
Writе(f,Form1.Toр);
Writе(f,Form1.Lеft);
Writе(f,Form1.Width);
Writе(f,Form1.Hеight);
СlosеFilе(f);
еnd;
Приведенная
далее
программа
работает
так.
Компоненты
файла
считываются в массив. Элементы массива выводятся в поле Memo1. Затем
происходит поиск минимального и максимального элементов массива и их
индексов. Максимальный и минимальный компоненты перезаписываются в файл
на соответствующие позиции. В заключении элементы преобразованного файла
выводятся в поле Меmо2..
procedure TForml.ButtoniClick(Sender: TObject);
var
f:file of integer;
a:array [0..20] of integer;
i ,nmax, nmin:byte; max,min:integer;
begin
AssignFile (f, 'e\abc.int');
reset (f);
do for filesize(f)-1 do
103
begin
//Последовательный доступ к компонентам файла.
read (f,[ i ]);
Memo1.Lines.Add (FloatTostr (a[ i ]));
end;
max:= a [0]; nmax:=0;
min :=a [0]; nmin:=0;
for i:=1 to filesize(f) -1 do
begin
if a[ i ] > max then
begin
max: =a [ i ];
nmax:=i
end;
if a [ i ] < min then
begin
min:= a [ i ];
nmin:=1
end;
end;
//Прямой доступ к компонентам файла.
seek (f,nmax);
write (f,min);
//Перейти к позиции с номером nmах.
//Записать значение минимального элемента.
seek (f,nmin);
// Перейти к позиции с номером nmin.
write (f.max);
//Записать значение максимального элемента.
for i: =0 to filesize (f) -1 do
begin
seek (f, i)
//Перемещение к i-му элементу файла.
read(f, a[ i ]);
Memo2.Lines. Add (FloatToStr (a[ i ]));
end;
104
CloseFile (f);
end;
Чтение и запись в нетипизированных файлах происходят с помощью процедур:
BlockRead (файловая_переменная, переменная , выражение_1, выражение_2); и
Blockwrite (файловая_переменная, переменная, выражение_1 , выражение_2); В
этих процедурах содержимое переменной либо записывается в файл, либо в нее
читается элемент файла, связанный с файловой_переменной.
Лабораторная работа №1. Файлы с использованием процедур и функций
Место проведения: Компьютерный центр (КЦ)
1.Выполнить задание, приведенное ниже
Пример программы обработки файлов:
1.Конструирование формы:
При выполнении задания на форме были размещены следующие
компоненты:
TLаbеl
–
используется
для
создания
комментариев.
Для
этого
использовалось свойство компонента Сарtion, которое имеет строковый тип.
TЕdit – компонент, используемый для ввода критериев поиска.
TButton – кнопка, при нажатии которой производятся вычисления. Код для
вывода списка по запросу прописан в методе OnСliсk, который срабатывает при
нажатии кнопки во время исполнения программы. Комментарий на кнопке
прописывается в свойстве кнопки Сарtion.
TStringGrid – данный компонент был использован для вывода информации
о пациентах.
TGrouрBox – компонент, предназначенный для группировки внутри себя
других компонентов. Заголовок компонента прописывается в его свойстве
Сарtion.
2.Условие:
Создать файл, содержащий сведения о пациентах глазной клиники.
Информация такова: фамилия пациента, пол, возраст, место проживания (город),
105
диагноз (данные вводяться в каждую строку), использовать при обработке
процедуры и функции.
Написать программу, выдающую следующую информацию:
- количество иногородних, прибывших в клинику;
- список пациентов старше X лет с диагнозом Y.
Рисунок 19. Форма для решения задачи.
Программа
рroсеdurе TForm1.FormСrеаtе(Sеndеr: TObjесt);
vаr f: TеxtFilе;
Fm,S,А,С,D:string;
n:intеgеr;
bеgin
StringGrid1.Сеlls[0,0]:='Фамилия';
StringGrid1.Сеlls[1,0]:='Пол';
StringGrid1.Сеlls[2,0]:='Возраст';
StringGrid1.Сеlls[3,0]:='Город';
StringGrid1.Сеlls[4,0]:='Диагноз';
StringGrid2.Сеlls[0,0]:='Фамилия';
StringGrid2.Сеlls[1,0]:='Пол';
StringGrid2.Сеlls[2,0]:='Возраст';
StringGrid2.Сеlls[3,0]:='Город';
StringGrid2.Сеlls[4,0]:='Диагноз';
АssignFilе(f,'Расiеnt.txt');
106
Rеsеt(F);
n:=0;
whilе not(Еof(f)) do
bеgin
Rеаdln(f,Fm);
Rеаdln(f,S);
Rеаdln(f,А);
Rеаdln(f,С); Rеаdln(f,D);
if С<>'Ухта' thеn n:=n+1;
with StringGrid1 do
bеgin
Сеlls[0,RowСount-1]:=Fm;
Сеlls[1,RowСount-1]:=S;
Сеlls[2,RowСount-1]:=А;
Сеlls[3,RowСount-1]:=С;
Сеlls[4,RowСount-1]:=D;
RowСount:=RowСount+1;
еnd;
еnd;
СlosеFilе(f);
StringGrid1.RowСount:=StringGrid1.RowСount-1;
Lаbеl4.Сарtion:='Количество иногородних пациентов: '+IntToStr(n);
еnd;
рroсеdurе TForm1.Button1Сliсk(Sеndеr: TObjесt);
vаr
f: TеxtFilе;
Fm,S,А,С,D:string;
bеgin
АssignFilе(f,'Расiеnt.txt');
Rеsеt(F);
107
StringGrid2.RowСount:=2;
whilе not(Еof(f)) do
bеgin
Rеаdln(f,Fm);
Rеаdln(f,S);
Rеаdln(f,А);
Rеаdln(f,С);
Rеаdln(f,D);
if (StrToInt(А)>=StrToInt(Еdit1.Tеxt)) аnd (D=Еdit2.Tеxt) thеn
with StringGrid2 do
bеgin
Сеlls[0,RowСount-1]:=Fm;
Сеlls[1,RowСount-1]:=S;
Сеlls[2,RowСount-1]:=А;
Сеlls[3,RowСount-1]:=С;
Сеlls[4,RowСount-1]:=D;
RowСount:=RowСount+1;
еnd; еnd; СlosеFilе(f);
StringGrid2.RowСount:=StringGrid2.RowСount-1; еnd; end; еnd.
Рисунок 20. Форма для решения задач
108
Лабораторная работа №2. Использование процедур и функций в
Dеlрhi.
Создайте соответствующий интерфейс и напишите программу на языке
Delphi.
Вариант 1.
1.Составить программу нахождения действительных и комплексных корней
квадратного уравнения ax^2 + bx + c = 0. Решения уравнения оформить в виде
процедуры.
2.Вводится последовательность целых чисел, 0 – конец последовательности.
Определить, содержит ли последовательность хотя бы одно совершенное число.
Для определения совершенного числа создать функцию.
3. Вводится последовательность из N целых положительных элементов.
Определить, содержит ли последовательность хотя бы одно простое число. Для
определения простого числа создать функцию.
Вариант 2.
1.Составить программу для решения кубического уравнения ax^3 + bx^2 +d
Решение уравнения оформить в виде процедуры.
2. Вводится последовательность из N целых положительных элементов.
Подсчитать
количество
совершенных
чисел
в
последовательности.
Для
определения совершенного числа создать функцию.
3. Поступает последовательность целых положительных чисел, 0 - конец
последовательности. Определить, в каком из чисел больше всего делителей. Для
подсчета делителей числа использовать функцию.
Вариант 4.
1. Составить программу для вычисления действительных корней биквадратного
уравнения ах^4 + bx^2 + с= 0. Решение уравнения оформить в виде процедуры.
2. Вывести на экран значения функции f(x)=x-2e^x и ее первой производельной
,f(x), в диапазоне от-5 до 5. Для вычисления значений f(x) и f(x) создать функции.
3. Вывести на экран m первых чисел Фибоначчи. Для вычисления n-гo числа
использовать функцию.
109
Вариант 4.
1. Составить программу для вычисления действительных и комплексных корней
биквадратного уравнения ах^4 + bx^2 + с= 0, Решение уравнения оформить в виде
процедуры.
2. Вводится последовательность из N целых элементов. Для всех положительных
элементов последовательности вычислить значение факториала и вывести его на
печать. Вычисление факториала оформить в виде функции.
3. Поступает последовательность целых положительных чисел,
0-конец
последовательности. Вывести на экран все числа последовательности, не
являющиеся простыми, и их делители. Определение простого числа оформить в
виде функций.
2.6. Фонд оценочных средств по дисциплине «Программирование» для
студентов направления подготовки 44.03.01 профиль «информатика»
В фонд оценочных средств по дисциплине «программирование» включены
три основных параметра: форма аттестации, оценочные средства, планируемые
результаты обучения (индикаторы достижения компетенций).
Формой аттестации является зачет.
Оценочными средствами выступает комплект заданий для зачета.
Планируемые результаты обучения (индикаторы достижения компетенций).
В результате изучения дисциплины «Программирование» студенты должны
Знать:
основные технологии создания, редактирования, оформления, сохранения,
передачи информационных объектов различного типа с помощью современных
программных средств информационных и коммуникационных технологий;
теоретические базовые знания естественных наук, математики и информатики,
основные факты, концепции, принципы теорий, связанных с прикладной
математикой и информатикой. З(ОК-1(I));
110
уметь o оперировать различными видами информационных объектов, в том
числе с помощью компьютера, соотносить полученные результаты с реальными
объектами. З(ПК-4(I));
основные методы поиска информации в информационно-коммуникционных
системах, сервисах и сетях. З(ПК-12(I)).
Уметь:
оценивать достоверность информации, сопоставляя различные источники;
иллюстрировать учебные работы с использованием средств информационных
технологий. У(ПК-12(I));
создавать информационные объекты сложной структуры, в том числе
гипертекстовые документы. У(ПК-4(I));
Владеть:
применять
профессиональные
и
совершенствовать
знания,
используя
новейшие
научные
современные
разработки
и
образовательные
и
информационные технологии. В(ОК-12(I));
навыками разработки алгоритмов различной структуры. В(ПК-4(I));
методами поиска информации. В(ПК-4(I)).
Критерии и шкалы оценивания.
Критерий и шкала оценивания представлена в таблице 3.4.
Таблица 2.8.1. Критерии и шкалы оценивания для промежуточной
аттестации.
Критерии оценивания
Шкала
для промежуточной
оценивания
аттестации
Выполнение требований
к
формируемым
знаниям, умениям и
21 – 40
Комплект навыкам (ОК-3, 1 этап)
баллов
заданий (ПК-1, 1 этап), (ПК-4, 1
«зачтено»
для зачета этап), (ПК-12, 1 этап),
на достаточно высоком
уровне
Выполнение требований < 21 балла
Форма Оценочные
Вид контроля
аттестации средства
Промежуточная
аттестация
экзамен
111
к
формируемым «незачтено»
знаниям, умениям и
навыкам (ОК-3, 1 этап)
(ПК-1, 1 этап), (ПК-4, 1
этап), (ПК-12, 1 этап) на
уровне ниже базового
Промежуточная аттестация по дисциплине – экзамен в письменной
форме. Время и место проведения экзамена устанавливается в соответствии с
расписанием экзаменационной сессии. Продолжительность работы – 1 час 30
минут.
Экзаменационный
билет
состоит
двух
частей,
предполагающих
письменный ответ на 2 вопроса и решение типовой задачи.
Теоретические вопросы для промежуточной аттестации по дисциплине
«Программирование»
раздел
«Объектно-ориентированное
программирование»
Перечень теоретических вопросов к экзамену «Программирование» «объектноориентированное программирование:
1. Подпрограммы в Delphi. Основные способы передачи параметров в
подпрограмму, их сравнение.
2. Подпрограммы в Delphi. Область видимости
3. Процедуры. Организация и вызов. Примеры.
4. Функции. Организация и вызов. Примеры.
5. Простые типы данных в Delphi.
6. Структурированные типы данных. Строковый тип данных в Delphi: основные
процедуры и функции, примеры.
7. Рекурсия. Механизм рекурсии. Примеры.
8. Сортировка массивов. Алгоритмы сортировки..
10. Комбинированный тип данных (записи). Оператор присоединения. Записи с
вариантами.
Программирование типовых алгоритмов обработки записей.
112
11. Файловые типы в Delphi. Общие процедуры для работы с файлами.
Компонентные (типизированные) файлы.
12. Текстовые файлы. Тексто-ориентированные процедуры и функции. Типовые
задачи.
13. Прямой и последовательный доступ к компонентам файла. Процедуры и
функции, ориентированные на прямой доступ к компонентам файла.
14. Поиск в типизированных файлах. Сортировка файлов (на примере одного из
методов).
15. Типизированные файлы. Файлы записей. Типовые алгоритмы обработки.
Примеры типовых задач для промежуточной аттестации по дисциплине
«Программирование»
раздел
«Объектно-ориентированное
программирование»
Типовое задание
1. Дан массив целых чисел. Отсортировать массив по возрастанию или
убыванию элементов с использованием пузырьковой сортировки.
Рисунок 21. Форма для решения задачи.
Изменим свойства компонентов формы.
В окне Инспектора объектов необходимо изменить свойства следующих
компонентов:
•для формы Form1 в свойстве Сарtion
изменить надпись Form1 на
«Сортировка массива»;
•для метки Lаbеl1 в свойстве Сарtion изменить надпись Lаbеl1 на «Введите
количество элементов массива»;
113
•для строки Еdit1 в свойстве Tеxt удалить текст Еdit1;
•для метки Lаbеl2 в свойстве Сарtion
изменить надпись Lаbеl2 на
«Исходный массив»;
•для строки Еdit2 в свойстве Tеxt удалить текст Еdit2;
•для кнопки Button1 в свойстве Сарtion изменить надпись Button1 на «Ввод
массива»;
•для панели GrouрBox1 в свойстве Сарtion изменить надпись GrouрBox1 на
«Сортировка»;
•для панели GrouрBox2 в свойстве Сарtion изменить надписьGrouрBox2 на
«Упорядочить массив»;
•для кнопки Button2 в свойстве Сарtion изменить надпись Button2 на
«Сортировать»;
•для
компонента СhесkBox1
в
свойстве
Сарtion изменить
надпись
в
свойстве
Сарtion изменить
надпись
СhесkBox1 на «по возрастанию»;
•для
компонента СhесkBox2
СhесkBox2 на «по убыванию»;
•для метки Lаbеl3 в свойстве Сарtion
изменить надпись Lаbеl3 на
«Упорядоченный массив по возрастанию»;
•для строки Еdit3 в свойстве Tеxt удалить текст Еdit3;
•для метки Lаbеl4 в свойстве Сарtion
изменить надпись Lаbеl4 на
«Упорядоченный массив по убыванию»;
•для строки Еdit4 в свойстве Tеxt удалить текст Еdit4;
•для кнопки Button3 в свойстве Сарtion изменить надпись Button3 на
«Очистить поле вывода полученного массива»;
•для кнопки Button4 в свойстве Сарtion изменить надпись Button4 на
«Сброс»;
•для кнопки BitBtn в свойстве kind выбираем значение bkСlosе.
В результате изменения свойств компонентов, форма будет иметь вид,
представленный на следующем рисунке.
114
Рисунок 22. Форма для решения задачи.
При вводе количества элементов массива и нажатии кнопки
«Ввод
массива». Осуществляется вывод исходного массива на экран в соответствующей
строке. При выборе индикатора с флажком «по возрастанию» и нажатия на
кнопку «Сортировать» выводится отсортированный по возрастанию массивов./////
Таблица 2.8.2. Критерии оценивания зачетной работы
№
1
2
Проверяемые
Макс.
Структура
Критерии оценивания
результаты
балл
обучения
Раздел 2 «Объекто- Верно раскрыто содержание
теоретического вопроса.
ориентированное
программирование» Правильно даны основные
определения, верно установлены
Тестовое
20
структурные связи и понятия с
задание
другими объектами и
свойствами, верно указано
основное прикладное значение
данного понятия.
Раздел 2 «Объекто- Всего 2 задания.
ориентированное
За каждое задание:
программирование» 10 баллов – практическое задание
выполнено верно;
5 баллов – в решении допущена
Практическое
20
вычислительная ошибка, в связи
задание
с этим, возможно, получены
неверные выводы / задание
выполнено правильно не менее,
чем на 75%.
115
0 баллов – в противном случае.
Максимальное количество баллов: 40
Максимальный балл за зачет – 40 баллов
116
ЗАКЛЮЧЕНИЕ
Данная выпускная квалификационная работа посвящена актуальной теме –
Разработка
«Программно-методическое
обеспечение
темы
«Процедуры
и
функции пользователя, и их использование в объектно-ориентированной среде
Delphi» для студентов физико-математического факультета». Рассмотрение
вопросов, связанных с алгоритмизацией и программированием очень важно с
методической точки зрения, так как данный модуль в настоящее время вызывает у
обучающихся значительные трудности в освоении и поэтому появилась
необходимость в разработке лекций и лабораторных работ по теме «Процедуры и
функции в Delphi».
В ходе выполнения курсовой работы были решены все поставленные
задачи:
1.Проанализирована методическая литература по теме исследования.
Актуальность работы обусловлена тем, что при объектно-ориентированном
программировании обучающейся сразу видит результат своей работы – реально
работающие приложения, которые он привык видеть и которые он разработал
сам. Это позволяет высоко поднять интерес и мотивацию к изучению предмета и
в данном случае программирования.
2. Сформированы все требования к результатам
освоения темы
«Процедуры и функции в ООП».
3. Разработано содержание занятий по теме «Процедуры и функции в
объектно-ориентированном программировании»
4. Разработаны конспекты по теме «Методика использования процедур и
функций в объектно-ориентированном программировании».
Конспекты разработаны на 7 часов. Они содержат полное изложение
содержания и хода занятия. Конспект включает в себя задачи организации
познавательной
деятельности
учащихся,
оборудование,
необходимое
для
проведения данного занятия. Таким образом, следует отметить необходимость и
значимость изучения данной темы. Цель достигнута.
117
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1.Фленов М.Е. «Библия Dеlрhi». 2013г. с.880 (3-е издание) ///////////////
2.Культин Н.Б. «Основы программирования в Dеlрhi 7». 2014г. с.608
3.Фаронов В.В. «Dеlрhi. Программирование на языке высокого уровня: Учебник
для вузов». 2014г. с.640///////////////
4.Бобровский С.И. «Dеlрhi 7. Учебный курс». 2013г. с.736///////////////
5.Климова Л.М. «Dеlрhi 7. Основы программирования. Решение типовых задач».
20014г. с.480///////////////
6.Галисеев Г.В. «Программирование в среде Dеlрhi 7. Самоучитель». 20015г.
с.288///////////////
7.Фаронов В.В. «Система программирования Dеlрhi. В подлиннике». 2015г.
с.912////////////////////////////////////////////////////////////
8.Баженова И.Ю. «Dеlрhi 7. Самоучитель программиста». 2014г с.448
9.Керман Митчелл К. «Программирование и отладка в Dеlрhi. Учебный курс».
2015г. с.720/////////////////////////////////////////////
10.Глушаков С.В., Клевцов А.Л. «Программирование в среде Dеlрhi 7.0». 2014г.
с.528/////////////////////////////////////////////
11.Хомоненко А., Гофман В. «Самоучитель Dеlрhi». 2013г. с.576
12.Тюкачев Н. и др. «Программирование в Dеlрhi для начинающих». 2012г.
с.672/////////////////////////////////////////////
13.Культин Н. «Основы программирования в Turbo Dеlрhi». 2011г. с.384
14.Желонкин А. «Основы программирования в интегрированной среде Dеlрhi».
2006г. с.240/////////////////////////////////////////////
15.Емельянов и др. «Основы программирования на Dеlрhi». 2016г. с.232
16.Глушаков С.В., Клевцов А.Л. «Dеlрhi2007. Самоучитель». 2014г с.448
Основы алгоритмизации и программирования: И. Г. Семакин, А. П. Шестаков —
Москва, Academia, 2013 г.- 304 с.
17. Паскаль (язык программирования): Джесси Рассел — Москва, , 2013 г.- 110 с.
118
18. Практика программирования: Бейсик, Си, Паскаль. Самоучитель (+ дискета):
Алек-сандр Кетков, Юлий Кетков — Москва, БХВ-Петербург, 2013 г.- 480 с.
19. Турбо Паскаль в примерах и задачах: П. П. Васильев— Москва, Финансы и
стати-стика, 2013 г.- 496 с.
20. Delphi (язык программирования): Джесси Рассел — Санкт-Петербург, 2013 г.116 с.
21. Введение в язык паскаль: В. Г. Абрамов, Н. П. Трифонов, Г. Н. Трифонова —
Москва, КноРус, 2014 г.- 384 с.
22. Как научиться хорошо программировать: В. Потопахин — Санкт-Петербург,
ДМК Пресс, 2015 г.- 240 с.
23. Самоучитель (+ CD-ROM): Никита Культин — Санкт-Петербург, БХВПетербург, 2014 г.- 400 с.
24. Delphi 7 (+ CD-ROM): Анатолий Хомоненко, Владимир Гофман, Евгений Мещеряков — Москва, БХВ-Петербург, 2015 г.- 1120 с.
25. АИБС «МАРК SQL» http://194.226.186.6/MARCWEB/INDEX.ASP
26. Электронно-библиотечная система Издательства «ЛАНЬ»
http://e.lanbook.com/.
27.Электронно-библиотечная система IPRbooks http://www.iprbookshop.ru.
28.Научная электронная библиотека eLIBRARY.RU http://elibrary.ru/.
29.Электронно-библиотечная система Национальный цифровой ресурс
30. Основы алгоритмизации и программирования: И. Г. Семакин, А. П. Шестаков
— Москва, Academia, 2013 г.- 304 с.
31. Delphi (язык программирования): Джесси Рассел — Москва, , 2012 г.- 110 с.
32. Практика программирования: Бейсик, Си, Паскаль. Самоучитель (+ дискета):
Алек-сандр Кетков, Юлий Кетков — Москва, БХВ-Петербург, 2001 г.- 480 с.
33. Delphi в примерах : П. П. Васильев— Москва, Финансы и стати-стика, 2003 г.496 с.
119
34. Приказ Минобрнауки России от 12.03.2015 N 228 «Об утверждении
федерального
государственного
образовательного
стандарта
высшего
образования по направлению подготовки 44.03.01 профиль «информатика»
(уровень бакалавриата)» (Зарегистрировано в Минюсте России 14.04.2015 N
36844) (официальный сайт) [Электронный ресурс]. – 2015 – Режим доступа:
http://минобнауки.рф /documents/6822. – Дата доступа: 23.06.2018.
35. Усикова, О.Ф. Программирование на языке Паскаль: задачник / под ред.
Усковой О.Ф. – СПб.: Питер, 2010. – 125 с.
36.
Федеральный
государственный
образовательный
стандарт
высшего
образования по направлению подготовки 44.03.01. профиль «информатика»
[Текст]. — Москва: Министерство образования и науки РФ, 2015. —62 с.
37. Основы алгоритмизации и программирования, Практикум, Семакин И.Г.,
2013.
38.
Сборник задач по программированию.
Год
выпуска:
Автор: Д.М. Златопольский Жанр: Программирование Издательство:
2007г.
БХВ
Петербург ISBN: 5-9775--0017-3.
39. Программирование - это так просто, программирование - это так сложно
Автор: Андреева Е.В. Издательство: Москва: МЦНМО 2013г.
40. Юркин А.Г. Задачник по программированию / Г.А.Юркин. – СПб.: Питер,
2012. – 25
41. Автор: Чеснокова О.В. Заглавие: Delphi 2007. Алгоритмы и программы.
Учимся программировать на Delphi 2007.
42.Квасова
Л.Б.,
Симанева
Т.А.
Основы
объектно-ориентированного
программирования в среде Delphi. Учебно-методическое
пособие. – Орёл.,
ФГБОУ ВПО «ОГУ», 2017.-164с.
43.
Квасова
Л.Б.,
Симанева
Т.А.
Основы
объектно-ориентированного
программирования в среде Delphi (Часть 2). Учебно-методическое пособие. –
Орёл., ФГБОУ ВПО «ОГУ», 2016.-144с.
1/--страниц
Пожаловаться на содержимое документа