Современные электронные обучающие системы

advertisement
УДК 681.3.06 (075.8)
ББК 32.973 я73
Рекомендовано ученым советом ПГУ имени С. Торайгырова
Рецензент: кандидат физико-математических наук, доцент
Т.С.Сабиров
Нурбекова Ж.К., Даутова А.З., Кашкинбаева Д.Б.
Технология проектирования мультимедийных обучающих систем: Учебно-методические пособие. - Павлодар,2003- 108 с.
ISBN – 9965-599-27-1
Учебно-методическое пособие подготовлено для магистрантов
специальности 510252- прикладная математика и информатика и студентов специальности 010540- информатика, а также полезно для широкого круга читателей, интересующихся объектно-ориентированным
программированием мультимедийных обучающих систем.
T 602000000/00-(05)-03
ISBN – 9965-599-27-1
© Нурбекова Ж.К., Даутова А.З., Кашкинбаева Д.Б., 2003
© Павлодарский государственный университет имени С.Торайгырова, 2003
Министерство образования и науки Республики Казахстан
Павлодарский государственный университет
имени С. Торайгырова
Кафедра математического анализа и информатики
ТЕХНОЛОГИЯ ПРОЕКТИРОВАНИЯ
МУЛЬТИМЕДИЙНЫХ ОБУЧАЮЩИХ СИСТЕМ
Учебно-методическое пособие по курсу «языки программирования»
для индивидуальной и самостоятельной работы магистрантов специальности 510252- прикладная математика и информатика и студентов
специальности 010540- информатика
Павлодар
УДК 681.3.06 (075.8)
УТВЕРЖДАЮ
ББК 32.973 я73
Проректор по УР
_________Н.Э. Пфейфер
"___" __________2003г.
Составители:
к.п.н., доцент Нурбекова Жанат Кунапиановна,
старший преподаватель Даутова Айгуль Зейнуллиновна
преподаватель Кашкинбаева Дария Болатовна
Кафедра математики и информатики
Утверждено на заседании кафедры «__»______2003г., протокол
№___
Заведующий кафедрой _______________М.Н. Ильясов
Одобрено учебно-методическим советом
института Естество-
знания
Председатель
УМС
__________________Муканова
"_____"_________2003г., протокол №__________
Согласовано
Директор института_________С.К. Тлеукенов
"_____"_________2003 г.
Одобрено УМО
Начальник УМО __________Г.А. Амбарников
"____"________2003г.
Н/К отдел МКУП___________Г.С. Баяхметова
"___"___________2003г.
3
Ж.Г.
Содержание
Методологические основы проектирования обучающих систем
5
Современные электронные обучающие системы и тенденции их
развития
5
Эргономические и психолого-педагогические требования к
компьютерным обучающим системам
20
Требования к организации диалога учащегося с компьютером.
20
Технология создания обучающей программы
45
Технология моделирования случайных процессов и технология
внедрения мультимедиа
73
Проектирование игр
100
Список литературы
109
4
Методологические основы проектирования
обучающих систем
Современные электронные обучающие системы
и тенденции их развития
Применение компьютера в обучении имеет более чем сорокалетнюю историю. С течением времени информационные технологии,
используемые в различных сферах жизнедеятельности, в том числе и в
образовании, совершенствуются. Примером этому служит появление
мультимедиа1 технологии, позволяющей раскрыть широкий потенциал возможностей компьютера в информационной среде. Используя
мультимедиа технологии, начали разрабатывать различные обучающие программы.
Современные тенденции компьютерных технологий обучения
позволяют сделать вывод, что сегодня и в будущем значение применения мультимедиа технологий для целей обучения будет возрастать,
так как знания, обеспечивающие высокий уровень профессиональной
квалификации, всегда подвержены быстрым изменениям.
Первые попытки использовать компьютер для обучения в 60-70х годах были малоуспешными, что объяснялось невысокой производительностью аппаратных и программных средств того времени.
Кроме того, программы были недостаточно гибкими, поэтому мотивация, а отсюда и успехи в обучении были неубедительны. Обучающие программы сегодняшнего поколения предлагают для пользовате1
Мультимедиа – совокупность программно-аппаратных средств, реализующих обработку
информации в звуковом и зрительном виде. Мультимедиа спроектирована, чтобы передавать
звук, данные и изображения по местным, региональным и глобальным сетям.
5
ля очень много вариантов индивидуальной настройки, т.е. учащийся,
осваивая учебный материал, сам может устанавливать скорость изучения, объем материала и степень его трудности.
В современном мире, в котором информационный поток, обрушивающийся на человека, настолько велик, волей не волей приходится прибегать к помощи разнообразной техники. Сейчас трудно представить себе человека, не пользующегося телевизором и радио, компьютером, электрическим чайником и холодильником, и этот список
можно продолжать до бесконечности. Вся наша жизнь стала настолько зависеть от созданных нами вещей, что если бы человек вдруг лишился бы их, то долго просуществовать в этом мире он не смог бы.
Мы живем в век информации, в век, когда происходит компьютерная революция. Мы являемся свидетелями того, что компьютеры,
уже занявшие прочные позиции во многих областях современной
жизни, быстро проникают в школы и дома. Тема внедрения технических и автоматизирующих средств в образовательную сферу стала
особенно актуальна в наши дни.
С развитием современной информационной технологии, система
“человек и компьютер” быстро превратилась в проблему, которая касается
всех
членов
общества,
а
не
только
специалистов.
Информационный взрыв породил множество проблем, важнейшей из
которых является проблема обучения. В педагогике появилось понятие информатизации обучения. Что же это такое?
Под информатизацией обучения в современной дидактике чаще
всего понимается использование вычислительной техники и связанных с ней информационных технологий в процессе обучения как
средств управления познавательной деятельностью школьников и
6
предоставления учителю и учащемуся необходимой текстовой и наглядной информации, дополняющей содержание образования.
Как тенденция, информатизация обучения получила наибольшее
распространение в последние десятилетия, что связано с появлением в
70-е годы персональных компьютеров, ставших к настоящему времени относительно дешевым, доступным в системе образования и простым в управлении видом вычислительной техники. Однако первые
попытки внедрения информационных технологий в практику обучения имеют уже достаточно богатую историю. Здесь, прежде всего,
необходимо рассмотреть феномен программированного обучения.
Теория программированного обучения начала развиваться в 4050 гг. XX в. в США, затем в Европе. Она дала импульс к развитию
технологии обучения, к разработке теории и практики технически
сложных обучающих систем. Программированное обучение — это
относительно самостоятельное и индивидуальное усвоение знаний и
умений по обучающей программе с помощью компьютерных средств
обучения. В традиционном обучении ученик обычно читает полный
текст учебника и воспроизводит его, при этом его работа по воспроизведению почти никак не управляется, не регламентируется.
Главная идея программированного обучения – это управление учением, учебными действиями обучающегося с помощью обучающей
программы.
Для занятия самообразованием человеку на сегодня представлены большое количество обучающих и энциклопедических программ.
Дети и взрослые могут использовать мультимедиа как эффективное
средство обучения. Это как простые программы, способные научить
ребенка распознавать цвета, так и высокоинтеллектуальные, обучаю7
щие иностранным языкам или математическим законам. При этом на
одном компакт-диске может уместиться несколько томов энциклопедии. Кроме текста, компьютер с мультимедиа способен воспроизводить музыку, речь, мультфильмы и видеозаписи.
Появление звукозаписи как специфического учебного средства
стало началом новой эры в преподавании, благодаря техническим
средствам (ТС) раскрылись неограниченные возможности для создания искусственной среды в любое время обучения: в классе, в лаборатории, дома и даже в условиях естественного сна.
Необходимость широкого внедрения ТС в обучение обусловлена
тем, что их применение раскрывает большие возможности для реализации одного, из важнейших дидактических принципов — принципа
наглядности.
Преобразуется, прежде всего, деятельность субъектов образования - учителя и ученика, преподавателя и студента. Им приходится
строить принципиально новые отношения, осваивать новые формы
деятельности в связи с изменением средств учебной работы и специфической перестройкой ее содержания. И именно в этом, а не в овладении компьютерной грамотностью учителями и учениками или
насыщенности классов обучающей техникой, состоит основная трудность компьютеризации образования.
Выделяются три основные формы, в которых может использоваться компьютер при выполнении им обучающих функций:
а) компьютер как тренажер;
б) компьютер как репетитор, выполняющий определенные
функции за преподавателя, причем компьютер может выполнять их
лучше, чем человек;
8
в) компьютер как устройство, моделирующее определенные
предметные ситуации (имитационное моделирование).
Тренировочные системы наиболее целесообразно применять для
выработки и закрепления умений и навыков. Здесь используются программы контрольно-тренировочного типа: шаг за шагом учащийся получает дозированную информацию, которая наводит на правильный
ответ при последующем предъявлении задания. Такие программы
можно отнести к типу, традиционному присущему программированному обучению. Задача учащегося состоит в том, чтобы воспринимать
команды и отвечать на них, повторять и заучивать препарированный
для целей такого обучения готовый материал.
Отличие репетиторских систем определяется тем, что при четком определении целей, задач и содержания обучения используются
управляющие воздействия, идущие как от программы, так и от самого
учащегося. "Для обучающих систем такой обмен информацией получил название диалога". Таким образом, репетиторские системы предусматривают своего рода диалог обучающегося с ЭВМ в реальном
масштабе времени. Обратная связь осуществляется не только при контроле, но и в процессе усвоения знаний, что дает учащемуся объективные данные о ходе этого процесса. По сути дела репетиторские системы основаны на той же идеологии программированного обучения
(разветвленные программы), но усиленного возможностями диалога с
ЭВМ.
Появление систем мультимедиа, безусловно, производит революционные изменения в таких областях, как образование, компьютерный тренинг, во многих сферах профессиональной деятельности,
науки, искусства, в компьютерных играх и т.д. Нетрудно догадаться,
9
что возможности мультимедийных систем безграничны. Они могут
быть использованы не только в сфере образования по созданию электронных учебников, обучающих программ и т.д., но и в различных
областях жизнедеятельности человека.
На основе анализа основных существующих компьютерных технологий по изучению иностранных языков
выявлены следующие
возможности.
Основной возможностью применения мультимедийных средств
по обучению иностранным языкам является существование мультимедиа - лингофонного класса RINEL-LINGO (далее КЛАСС). Такой
класс позволяет осуществить речевую и видеосвязь преподавателя со
всеми учащимися или группой учащихся, а также речевая и видеосвязь учащихся, объединенных в группу между собой. Новые возможности класса в сочетании с мультимедиа-возможностями самих
компьютеров позволяют использовать самые разнообразные методики
обучения, ранее не доступные при персональном использовании компьютеров. КЛАСС наиболее эффективен для преподавания иностранного языка. КЛАСС также может быть использован для развития разнообразных навыков работы в группе, требующей активного речевого
взаимодействия между участниками группы.
Применение мультимедиа - лингофонного класса реализует обучение группы учащихся. На случай, если человек желает изучить язык
самостоятельно, существуют различные обучающие программы по
изучению иностранным языкам. В настоящее время существует множество различных обучающих программ, которые несложно приобрести. Естественно, что обучающие программы существуют не только
10
для изучения иностранных языков, но также для изучения других
предметов, программ и т.д.
Ссылаясь на статистические данные последних лет можно отметить следующее, рассматривая применение обучающих программ,
электронных
учебников в учебном процессе следует отметить,
что ученые уже давно (до появления мультимедиа-технологий) заметили, на многочисленных экспериментах отчетливую сильную связь
между методом, с помощью которого учащийся осваивал материал, и
способностью вспомнить (восстановить) этот материал
в памяти.
Например, только четверть услышанного материала остается в памяти. Если же учащийся имеет возможность воспринимать этот материал зрительно, то доля материала, оставшегося в памяти, повышается
до одной трети. При комбинированном воздействии (через зрение и
слух) доля усвоенного материала достигает половины, а если вовлечь
учащегося в активные действия в процессе изучения, например, при
помощи интерактивных обучающих программ типа мультимедиаприложений, то доля усвоенного может составить 75%. Поэтому применение мультимедийных средств в обучающих программах позволяет повысить эффективность запоминания и усвоения материала.
Сегодня имеется потребность в создании новой технологической
системы, которая позволила бы передать большому количеству людей
большой объем информации и специальных знаний. Одним из наиболее перспективных направлений в этом отношении является внедрение дистанционного обучения на основе компьютерной и телекоммуникационной техники.
Дистанционное образование предполагает организацию учебного процесса на базе телекоммуникационных и информационных тех11
нологий, средств Internet. По существу, это новая форма обучения, основанная на использовании компьютерных технологий для управления процессом обучения. Социальную, экономическую и педагогическую привлекательность дистанционному образованию в системе
высшей школы обеспечивают следующие преимущества:
- во-первых, при более низкой стоимости образовательных
услуг более высокая эффективность профессиональной подготовки по
сравнению с вечерней и заочными формами обучения;
- во-вторых, сокращение сроков обучения;
- в-третьих, возможности параллельного обучения в российских и зарубежных вузах;
- в-четвертых, независимость студента от географического расположения вуза.
Повышение эффективности и качества подготовки специалистов
в дистанционном образовании достигается путем широкого использования в учебном процессе мультимедийных форм предоставления информации, позволяющих создавать виртуальную среду познания, которая достаточно адекватно интерпретирует реальную педагогическую среду.
Компьютерное обучение – это основная форма организации
учебного процесса в системе дистанционного образования, которая
обеспечивает на высоком познавательном уровне продвижение студента по каждой дисциплине. Особое значение принадлежит целостным электронным учебным курсам, построенным на информационных технологиях обучения.
Внедрение информационных технологий в обучении, это, прежде всего, компьютерные обучающие программы (КОП), меняет тради12
ционный взгляд на образование, позволяет увеличить заинтересованность учащихся в предмете, более наглядно подать материал. За счет
усиления эмоциональной составляющей увеличивает темп урока на
10-15 процентов. Компьютер – это аудиовизуальный концентратор
внимания, используемый для иллюстраций основных идей преподаваемого курса, проверки качества знаний, решения задач. При работе с
КОП обеспечивается обратная связь, осуществляется быстрый поиск
нужной информации, экономится время при многократных обращениях к гипертекстовым объяснениям. Краткий текст и объяснения сопровождаются демонстрацией анимационных эффектов.
КОП позволяют гармонично объединить лекцию с демонстрацией учебного материала, практикум в виде компьютерного имитатора,
тестирующую систему и все дополнительные материалы в едином интерактивном компьютерном учебнике. Электронный учебник не просто разгружает преподавателя от рутинных каждодневных функций,
но значительно повышает интерес обучаемых к предмету, ускоряет
обучение и обеспечивает лучшее усвоение знаний.
Использование КОП ориентировано на поддержку традиционного метода обучения. Во-первых, электронный вариант учебника освобождает от рутинной работы, отвлекающего от основного содержания. Во-вторых, индивидуализация обучения при компьютерноориентированном обучении позволяет выявить и развить неповторимые личностные способности каждого. Учащийся, работая с компьютерной программой один на один, обязательно должен будет ответить
на вопросы по изучаемой теме. Однако здесь есть и то, что не является преимуществом – впрочем, это свойство любых технических
средств – такое общение никогда не будет по-настоящему полнокров13
ным. При обучении важна роль воздействия и в этом плане компьютер
дополняет очное обучение, но не заменяет его. Обучение только в
электронной форме и в будущем будет иметь определенные преимущества (возможность дистанционного обучения, экономия времени),
но никогда не сможет стать абсолютным.
В то же время активно популяризируется идея использования
уже существующих глобальных компьютерных сетей для нужд высшего образования. С этой целью предлагается объединить усилия мировых университетов на базе гипермедиа технологий. Существо заключается в следующем. Очевидный недостаток университетских
мультимедиа разработок - качество исполнения. В то время как для
создания рыночных CD-ROM продуктов привлекаются профессиональные художники, музыканты, актеры, аудио/видео инженеры, программисты, университетская разработка выполняется в лучшем случае
профессором и программистом. Как правило, такая разработка невелика по объему, зато ее методическое качество и глубина представления предметной области - вне конкуренции. Предлагается собирать
небольшие мультимедиа фрагменты учебных курсов на серверах сетей с тем, чтобы каждый преподаватель университета при подготовке
своего курса мог набрать необходимый материал по сети.
В одном из номеров журнала «Информатика» приводились примеры разработок мультимедийных учебников по естественнонаучным,
гуманитарным и техническим циклам.
Рассмотрим один из этих курсов. “Начала информатики” - представляет собой программно-методический комплекс, предназначенный для использования в базовом курсе “Основы информатики и вычислительной техники”. Курс, рассчитанный на учащихся 6-7-х клас14
сов, способствующий формированию представления об алгоритмическом языке и основных компьютерных инструментах. Комплекс дает
возможность без особого труда организовать самостоятельное и групповое изучение двухгодичного базового курса информатики, во многом благодаря средствам самоконтроля и проверки знаний, умений и
навыков учащихся. Курс состоит из задачника, включающего основные определения по темам, набор базовых задач и условия контрольных задач по вариантам, и компакт-диска с набором программ. Он
охватывает такие темы, как линейные алгоритмы, ветвление, циклы,
рекурсия, процедуры и сортировка. Учащиеся знакомятся с базовыми
понятиями информатики, с основами делового применения компонентов. Все задачи в курсе “Начала информатики” носят занимательный
характер, красочно оформлены, сопровождаются анимацией, звуком и
трехмерной графикой. Курс подготовлен в рамках проекта “Индивидуализация обучения на основе личностно ориентированного учебного плана”, цель которого - разработка новых педагогических средств
обучения.
Диапазон использования компьютера в учебно-воспитательном
процессе очень велик: от тестирования учащихся, учета их личностных особенностей до игры. Компьютер может быть как объектом изучения, так и средством обучения, т.е. возможны два вида направления
компьютеризации обучения: изучение информатики и также его использование при изучении различных предметов. При этом компьютер является мощным средством повышения эффективности обучения. Еще никогда учителя не получали столь мощного средства обучения.
15
Компьютер значительно расширил возможности предъявления
учебной информации. Применение цвета, графики, звука, современных средств видеотехники позволяет моделировать различные ситуации и среды.
КОП позволяют усилить мотивацию ученика. Не только новизна
работы с компьютером, которая сама по себе способствует повышению интереса к учебе, но и возможность регулировать предъявление
учебных задач по степени трудности, поощрение правильных решений позитивно сказывается на мотивации.
Кроме того, компьютер позволяет полностью устранить одну из
важнейших причин отрицательного отношения к учебе – неуспех,
обусловленный непониманием, значительными пробелами в знаниях.
Работая на компьютере, ученик получает возможность довести решение задачи до конца, опираясь на необходимую помощь. Одним из источников мотивации является занимательность. Возможности компьютера здесь неисчерпаемы, и очень важно, чтобы эта занимательность
не стала превалирующим фактором, чтобы она не заслоняла учебные
цели.
Обучающая система
Блок 1
Вводная часть
Теория
Блок 2
Основной образовательный
Тренажер
Тестирование
16
Блок 3
Справочная информация
По содержанию теории
По использнию прогрого продукта
Рисунок 1
Компьютер позволяет качественно изменить контроль над деятельностью учащихся, обеспечивая при этом гибкость управления
учебным процессом. Применение компьютерной техники делает урок
привлекательным и по-настоящему современным, происходит индивидуализация обучения, контроль и подведение итогов проходят объективно и своевременно.
При создании КОП следует учитывать определенные психологопедагогические и эргономические требования. В этой ситуации без
строгого определения логической структуры и четкого установления
границ обучения на каждом этапе их построения сама теория становится бесструктурной. Поэтому при создании КОП приходим к следующей структуре обучающей системы.
Обучающая система состоит из трех основных блоков. Каждый
блок, относительно своего содержания состоит в свою очередь из последовательностей кадров.
“Вводная часть” может содержать заставки, меню, информации
о программе.
Блок “Справочная информация” - справки по содержанию теории и по использованию программного продукта.
Блок “Основной образовательный блок” определяется требованиями к знаниям, умениям и навыкам учебной дисциплины. Как правило, для достижения достаточного уровня ЗУН необходимо сочетание всех форм обучения (лекции, практики, контроль и т.д.).
В настоящее время помимо КОП практически по всем направлениям учебных дисциплин создаются электронные учебники и самоучители. В основном электронные учебники применяются в дистан17
ционной форме обучения. Достоинством этих учебников являются:
во-первых, их мобильность, во-вторых, доступность связи с развитием
компьютерных сетей, в-третьих, адекватность уровню развития современных научных знаний. С другой стороны, создание электронных
учебников способствует также решению и такой проблемы, как постоянное обновление информационного материала. В них также может содержаться большое количество упражнений и примеров, подробно иллюстрироваться в динамике различные виды информации.
Кроме того, при помощи электронных учебников осуществляется контроль знаний – компьютерное тестирование. Практика использования
электронных учебников показала, что обучающиеся качественно
усваивают учебный материал.
Электронный учебник – в большей степени инструмент обучения и познания, и его структура и содержание зависят от его использования. Он и репетитор, и тренажер, и самоучитель. В отличие от
классического «бумажного» варианта учебника электронный учебник
предназначен для иного стиля обучения, в котором нет ориентации на
последовательное,
линейное
изучение
материала.
Учебно-
информационный текст должен быть четко иерархически структурирован по содержанию.
Обычно электронный учебник представляет собой комплект
обучающих, контролирующих, моделирующих и других программ,
размещаемых на магнитных носителях ПК, в которых отражено основное научное содержание учебной дисциплины. Электронный
учебник часто дополняет обычный, а особенно эффективен в тех случаях, когда он:
 обеспечивает практически мгновенную обратную связь;
18
 помогает быстро найти необходимую информацию, поиск которой в обычном учебнике затруднен;
 существенно экономит время при многократных обращениях
к гипертекстовым объяснениям;
 наряду с кратким текстом показывает, рассказывает, моделирует, позволяет быстро, но в темпе наиболее подходящем для конкретного индивидуума, проверить знания по определенному разделу.
Средства создания электронных учебников можно разделить на
группы, например, используя комплексный критерий, включающий
такие показатели, как назначение и выполняемый функции, требования к техническому обеспечению, особенности применения. В соответствии с указанным критерием возможна следующая классификация:
 традиционные алгоритмические языки;
 инструментальные средства общего назначения;
 средства мультимедиа;
 гипертекстовые и гипермедиа средства.
К электронным учебникам предъявляются следующие требования: структурированность, удобство в обращении, наглядность изложенного материала.
На рынке компьютерных продуктов с каждым годом возрастает
число обучающих программ, электронных учебников и т.п. Таким образом, развитие информационных технологий дает широкую возможность для изобретения новых методик в образовании и тем самым повысить качество.
19
Эргономические и психолого-педагогические требования к
компьютерным обучающим системам
В настоящее время в образовательной сфере наиболее широкое
распространение получили компьютерные обучающие программы
(КОП). Они способствуют наиболее эффективному восприятию учебного материала обучающимися. КОП, как и любой другой программный продукт, должна отвечать определенным требованиям. При разработке и использовании КОП в образовательной сфере имеет место
рассмотреть психолого-педагогические и эргономические требования
к КОП.
С точки зрения психологии наиболее существенными являются
следующие требования к КОП:
 проведение диалога;
 организация обратной связи;
 формирование мотивации учения;
 индивидуализация обучения на основе КОП.
Требования к организации диалога учащегося
с компьютером
При проектировании учебного диалога учащийся - компьютер
важно оценивать его по параметру симметричности. Асимметрия диалога в пользу компьютера, когда ему полностью принадлежит инициатива в определении темы, направления, структуры диалога, а от учащегося требуется только пассивное ответное реагирование, не может
считаться педагогически целесообразной. И учащемуся, и компьютеру
20
должны быть предоставлены равные возможности в инициировании
шагов диалога. Вместе с тем учащийся должен иметь возможность
инициировать диалог в любое время, а компьютер - не всегда. Здесь
вступают в силу такие факторы, как готовность учащегося к общению,
его потребность в нем, а также возможность компьютера в данный
момент вести диалог.
Диалог нужно строить так, чтобы учащийся осознавал полноценность собственной деятельности, мог чувствовать себя субъектом
своих действий, осуществлять деятельность с привычным размахом ее
упреждения. Другими словами учащийся должен иметь возможность
достаточно далеко планировать свои действия и доводить, если не до
логического конца, то хотя бы до некоторого критического пункта
свои замыслы, работать на привычном уровне самооценки.
Решая вопрос о вовлечении учащегося в диалог, необходимо
учитывать, возникла ли у учащегося в данный момент потребность в
общении, не нарушит ли диалог ход рассуждения учащегося.
Определяя направленность диалога, необходимо учитывать степень готовности к нему учащегося, которая в значительной мере
определяется тем, на каком этапе решения задачи находится в данный
момент учащийся. Диалог не самоцель, и его чрезмерная частота не
оправдана.
При организации диалогового взаимодействия в обучающих системах чаще всего встречаются следующие недочеты:
- избыточная помощь со стороны компьютера, когда при малейшей ошибке учащемуся даются слишком подробные указания о
способе решения;
21
- недостаточная помощь, когда даются пояснения и подсказки,
непонятные учащемуся.
При организации диалога следует:
- выяснить характер затруднения, испытываемого обучаемым,
и сообщить ему об этом;
- ознакомить учащегося с возможностями обучающей программы по оказанию ему помощи.
Неадекватность оценочных суждений - одна из основных причин, разрушающих диалоговое взаимодействие между учащимися и
компьютером. Одно из ее проявлений, довольно часто встречающееся
в обучающих программах – чрезмерная частота положительных оценок. При этом считается, что похвала учащемуся – важный стимул
его мотивации. Однако это не так. Только та похвала положительно
оценивается учащимися, которую он связывает с успехом, преодолением трудностей. Если же учащийся без труда справился с заданием и
при этом компьютер его хвалит, он начинает относиться к работе
снисходительно.
Сформулируем, каковы основные требования к лингвистическим аспектам сообщения учащегося.
1 Нужно стремиться к тому, чтобы ответ учащихся был как
можно более кратким, чтобы работа на клавиатуре терминала была
сведена к минимуму.
2 Незначительные ограничения в формальных аспектах сообщения (например, использование имени существительного только в
именительном падеже), своеобразие применения синтаксических знаков вполне допустимы, но при этом необходимо, чтобы учащиеся хо22
рошо усвоили эти ограничения, единые для всех фрагментов обучающей программы.
3 Вполне допустимы кодированные ответы, но при этом коды
должны быть естественными и постоянными. Примерами таких кодов
являются: 1-0;”+”-“-“-для положительных и отрицательных ответов.
4 Предусматривая возможность сокращений, необходимо четко
оговорить возможность их применения и унификацию.
5 Все форматные правила (ограничения на использование отдельных символов или слов, на допустимую длину сообщения) должны быть подробно оговорены.
В проектировании диалога учащийся - компьютер необходимо
учитывать теорию дизайна. Это, прежде всего, касается таких основных принципов теории живописи, как пропорция, порядок, акцент,
единство и равновесие.
Принцип пропорции касается соотношения между размерами
объектов и их размещением в пространстве. Организуя данные на
экране дисплея, необходимо стремиться к тому, чтобы логически связанные данные были явно сгруппированы и отделены от других категорий данных. Для упорядоченного представления их нужно использовать пробелы, группировку, табуляцию.
Порядок означает такую организацию объектов на экране дисплея, которая учитывает движение глаз. Установлено, что глаз, привычный к чтению, начинает движение обычно от левого верхнего угла
и движется слева направо по экрану к правому нижнему. Поэтому
начальная точка восприятия должна находиться в левом верхнем углу
23
экрана, а списки для быстрого просмотра должны быть подогнаны к
левому полю и выровнены вертикально.
Акцент – это принцип выделения наиболее важного объекта,
который должен быть воспринят в первую очередь. При соблюдении
этого принципа взгляд учащегося привлекается к зоне акцента. Для
создания такого акцента можно использовать разнообразные средства:
размещение важных сообщений в центре, отделение их от остальной
информации свободным пространством, применение яркого цвета.
Следует избегать излишних украшений, злоупотреблений цветом, избыточного кодирования и большого объема вводимой информации.
Подсказки необходимо специально выделять с помощью цвета.
Для них желательно отвести определенную зону экрана.
Необходимо выделять инструкции, указания к решению задач.
С этой целью можно, например, перед ними помещать такие символы,
как звездочки.
Необходимо выделить критическую информацию, необычные
данные, элементы, требующие изменения, сообщения высокого приоритета, ошибки ввода, предупреждения о последствиях команды и т.
п.
Для того чтобы привлечь внимание учащихся к основному объекту, целесообразно использовать цветное пятно: самым ярким цветом
изображается основной объект, остальные его части - дополнительными. Если цветовая гамма строится без учета психологии восприятия
рисунка, это затрудняет выделение главного, приводит к утомлению
зрения. Нужно учитывать, что светлые цвета на темном фоне кажутся
приближенными к зрителю, а темные на светлом – удаленными. В
тех случаях, когда речь идет об эвристических рекомендациях, цвет
24
можно согласовывать с обычным изображением: красный – запрет,
зеленый – рекомендация, желтый – предосторожность.
Принцип единства требует, чтобы элементы изображения выглядели взаимосвязанными, правильно соотносились по размеру,
форме, цвету. С этой целью необходимо позаботиться об упорядочении организации данных. Они могут быть организованы последовательно, функционально, по значимости и т.п. При этом учащегося
следует знакомить с принципом расположения данных.
Следует позаботиться о том, чтобы идентичные данные были
представлены унифицированно, а разноплановые – по-разному.
Для передачи разграничения нужно использовать контрастные
цвета, а для передачи подобия – похожие, но различные.
Представление информации должно быть унифицированным и
логичным.
Принцип равновесия (баланса) требует равномерного распределения оптической тяжести изображений. Поскольку одни объекты
зрительно воспринимаются как более тяжелые, а другие как более
легкие, необходимо распределять эту оптическую тяжесть равномерно
по обеим сторонам изображения.
Информация не должна скапливаться на одной стороне экрана,
логические группы информации должны продуманно размещаться в
пространстве, заголовки хорошо центрироваться.
Требования к организации обратной связи. Основные функции
обратной связи в КОП:
 информирование учащегося о допущенной ошибке;
 оказание помощи учащемуся по ее устранению;
25
 повышение мотивации учащихся с помощью оценочных суждений о результатах его деятельности.
Рассмотрим основные требования к реализации обратной связи.
1 После допущения ошибки должна обязательно следовать обратная связь, сообщение после ошибки имеет большую педагогическую ценность, чем после правильного ответа.
2 Эффективность обратной связи определяется тем, насколько
содержащаяся в ней информация помогает учащимся обнаружить и
устранить ошибки. Поэтому, как правило, сообщение типа “неправильно” или “в решении допущена ошибка” оказывается недостаточно
эффективным. Сообщения должны быть достаточными, объяснять,
почему ответ неправильный, и в то же время не быть чрезмерно
“мощными”.
3 Прежде чем выдать учащемуся дополнительную информацию о допущенной ошибке, целесообразно предложить ему самостоятельно ее устранить.
4 Дополнительную информацию следует давать только после
того, как учащийся либо ввел новый неправильный ответ, либо запросил помощь.
5 Сообщения по каналу обратной связи должны соответствовать возрастным и индивидуальным особенностям учащихся.
6 На начальных этапах изучения нового материала обратная
связь оказывает большое влияние на обучение, чем на более поздних
этапах.
7 Злоупотребление обратной связью нередко приводит к отрицательным последствиям, поскольку сужает “поле самостоятельно26
сти” учащихся, чрезмерно регламентирует их деятельность, уменьшает диапазон творческих поисков.
8 Учащиеся с заниженной самооценкой нуждаются в более
частой обратной связи, чем уверенные в себе.
9 Сообщение по каналу обратной связи должны передаваться в
течении нескольких секунд. Задержка сообщений на 30с. и больше
может отрицательно сказаться на результативности обучения и на отношении учащихся к помощи компьютеров.
10 Влияние немедленной и отсроченной обратной связи зависит
от типа решаемых задач и от этапа решения. В задачах на запоминание целесообразна немедленная обратная связь, на понимание – отсроченная. На этапе построения структуры (модели) решаемой задачи
целесообразна немедленная обратная связь, при планировании решения и контроля его правильности – отсроченная.
11 Сообщения, относящиеся к знанию результата, не должны
злоупотреблять похвалой, особенно, если учебная задача была несложной или правильному ответу предшествовало большое число
ошибок. В последнем случае похвала по адресу учащегося нередко
воспринимается как издевка.
12 Функция подкрепления правильных действий появляется
только тогда, когда, во-первых, учащемуся давалась трудная задача и,
во-вторых, ее решение осознается учащимися как успех.
Рассмотрим требования к формированию мотивации учения.
Одной из важных требований к КОП – в ней должно быть психологически правильным соотношение между поощрением и порицанием.
Оценка деятельности учащихся имеет решающее значение. Известно,
27
что исключительно большое влияние на мотивационную сферу учащихся оказывают успехи и неудачи в учебе.
Однако само по себе правильное решение учебных задач отнюдь не всегда воспринимается учащимися как некоторое достижение. Только тогда, когда оно связано с преодолением трудностей и
учащийся осознает угрозу неудач, оказывающий благотворное влияние на развитие мотивационной сферы обучаемых. Поэтому поощрение правильного ответа на задание, не вызвавшее трудностей, не
оправдано. Оно может даже вызвать пренебрежение к учению.
Особенно осторожно следует относиться к поощрениям в тех
случаях, когда правильный ответ учащийся дал не сразу, а, допустив
несколько ошибок, и ему была оказана соответствующая помощь. Такое поощрение отрицательно сказывается на отношении учащихся к
компьютеру.
Однако не следует чрезмерно порицать учащихся при ошибке.
Это может тормозить познавательную активность учащихся. Особенно следует избегать оценочных суждений в традиционной форме – в
виде “единиц”, ”двоек”. Если достаточно много возможностей указать на допущенную ошибку и помочь устранить ее, не задевая самолюбия учащихся.
В реализация индивидуализация обучения в КОП необходимо
отметить следующие моменты. В настоящее время наметились три
пути индивидуализации обучения при организации компьютерного
обучения. Первый путь – традиционный, характеризуется тем, что
выбор обучающих воздействий определяется компьютером. Второй
путь предполагает, что сами обучаемые определяют то управление
обучением, которое является для них предпочтительным. Он основы28
вается на предположении, что учащиеся намного лучше, чем компьютер, могут определить, какая помощь им нужна, сколько учебных задач и какой трудности им решить, и т. д. Третий путь предполагает
смешанное управление: учащемуся предлагается наметить свою стратегию обучения, но если учащийся плохо справляется с учебными заданиями, то управление процессом обучения компьютер полностью
берет на себя.
Предоставление учащимся возможности самостоятельно принимать решение, например, переходить к изучению нового материала
или продолжать упражнения по предыдущей теме, а также о сложности изложения и характере помощи, способствует лучшему усвоению
материала. К тому же такую адаптивную программу, где выбор пути
обучения предоставлен учащемуся, легче реализовать. Вместе с тем
следует иметь в виду, что представление учащихся о самих себе часто
бывает неадекватным, у многих самооценка либо занижена, либо завышена. Учащиеся не всегда могут правильно интерпретировать цели
обучения, оптимальные для них стратегии обучения, и т.д. Многие из
них не работают в полную силу. Нельзя не учитывать и того, что в ряде учебных предметов последовательность изложения материала
настолько жесткая, что любое ее изменение не желательно.
Необходимо иметь в виду следующее:
 чем более высокий уровень подготовки у учащихся и чем
выше их способности, тем больше функций по управлению учебным
процессом можно на них возложить и позволить ставить более сложные учебные цели;
 если учащийся систематически выбирает более легкий путь в
обучении, это не означает, что он не может справиться с более слож29
ными учебными задачами, в таких случаях целесообразно перейти на
смешанное управление, постепенно увеличивать трудность предлагаемых задач и уменьшать меру помощи;
- если учащиеся выбрали более сложный путь, но не справляются с учебными задачами, им следует также перейти на смешанное
управление, уменьшая при этом размер шага обучающей программы и
увеличивая меру помощи.
Кроме того, КОП должна быть не эффектной, а эффективной.
Для этого она должна:
- позволять строить содержание учебной деятельности с учетом
основных принципов педагогической психологии и дидактики;
- допускать реализацию способа управления учебной деятельностью, выбор которого обусловлен, с одной стороны, теоретическими воззрениями разработчиков КОП, а с другой - целями обучения;
- стимулировать познавательную активность учащихся, включая и продуктивную, необходимую для достижения основных учебных целей: как ближайших, так и отдаленных;
- стимулировать высокую мотивацию учащихся к учению, но
не за счет интересов к самому компьютеру;
- учитывать в содержании учебного материала и учебных задач
уже приобретенные знания, умения, навыки учащихся;
- обеспечивать диалог как внешний, так и внутренний, причем
диалог должен выполнять следующие функции:
- активизировать познавательную деятельность учащихся путем включения их в процесс рассуждения;
- моделировать совместную (субъект – субъектную) деятельность;
30
- способствовать пониманию текста;
- обеспечить адекватность содержания учебного предмета и
трудность учебных задач возрастным возможностям учащегося и их
индивидуальным особенностям;
- обеспечивать педагогически оправданную обратную связь,
информировать о допущенных ошибках, содержать информацию, достаточную для их устранения;
- диагностировать учащегося с целью индивидуализации обучения, а также оказания требуемой помощи;
- не требовать специальных знаний и усилий для ввода ответов,
свести к минимуму рутинные операции по вводу ответов;
- оказывать содействие при решении учебных задач, обеспечивая педагогически обоснованную помощь, достаточную для того, чтобы решить задачу и усвоить способ ее решения;
- оказывать помощь учащемуся с учетом характера затруднения и модели обучаемого;
- информировать обучаемого о цели обучения, сообщать ему,
насколько он продвинулся в ее достижении, его основные недочеты,
характер повторяющихся ошибок;
- проявлять дружелюбие, особенно при оказании учащимся помощи;
- допускать индивидуализацию обучения, позволять учащемуся
принимать решение о стратегии обучения, характерной помощи и т.п.;
- адекватно использовать все способы предъявления информации в виде текста, графики, изображения, в том числе движущиеся, а
также звук и цвет;
31
- вести диалог, управляемый не только компьютером, но и обучаемым, позволить последним задавать вопросы;
- позволить учащемуся вход и выход из программы в любой ее
точке, обеспечить доступ к ранее пройденному учебному материалу.
Наряду с психолого-педагогическими требованиями существуют также эргономические требования к КОП. Рассмотрим их более
подробно.
Эргономика – это наука, комплексно изучающая человека
(группу людей) в конкретных условиях их деятельности в современном производстве.
При разработке КОП, исходя из содержания обучения и проблемно – ориентированных компьютеризированных методов обучения, следует четко определить уровень подготовленности учащихся –
пользователей ЭВМ.
Для применения имеющихся эргономических требований целесообразно соотнести характеристики контингента предполагаемых
учащихся с характеристиками того типа пользователей, которые применяют аналогичные процедуры диалога.
При разработке КОП необходимо ориентироваться на эргономические требования, связанные с учетом типа пользователя. Выделяют следующие типы пользователя:
- профессиональный пользователь, который проводит весь рабочий день за терминалом, хорошо обучен и знаком с входным языком и особенностями работы с ЭВМ;
- “каузальный” (или случайный) пользователь, который проводит на ЭВМ незначительную часть рабочего времени;
32
- программирующий пользователь (или “парапрограммист”) –
пользователь, который владеет умением программировать, и может
выполнять на ЭВМ некоторые действия, трудные для непрофессионального или случайного пользователя;
- промежуточный пользователь, который выступает связующим
звеном между системой и конечным пользователем. Чем сложнее автоматизированная система, тем выше роль такого пользователя;
- конечный пользователь (или пользователь – постановщик задачи), который, как правило, нуждается в применении сложных автоматизированных систем, языков программирования высокого уровня
и привлекает промежуточных пользователей для решения своих задач.
Поскольку учащийся часто оказывается так называемым “каузальным” пользователем, должны учитываться требования к повышению ясности ответа от ЭВМ, ко времени ответа на запрос от ЭВМ.
В зависимости от типов заданий, характеристик структуры деятельности учащегося и особенно технических и программных средств
необходимо выбирать виды диалога учащихся с ЭВМ.
Вид диалога должен конкретизироваться в ходе разработки процедуры диалога как части эргономического обеспечения на основе
проекта деятельности учащегося – пользователя ЭВМ. Приемлемый
вид диалога определяется в ходе эргономического проектирования
при непременном участии представителей пользователей. Выделяются следующие виды диалога: вопрос – ответный диалог, в котором
пользователь отвечает на вопросы, задаваемые системой; основанный
на заполнении шаблонов; на выборе из “меню ”; на использовании
команд; базирующийся на использовании вопросного языка; на естественном языке; использующий командный язык, реализованный на
33
базе функциональной клавиатуры; базирующийся на интерактивной
графике.
Вопрос – ответный диалог предполагает, что учащийся отвечает на вопросы, задаваемые ЭВМ. Таким диалогом легко может пользоваться малообученный случайный пользователь. Этот вид диалога
наиболее свободен от ошибок. Однако он весьма неудобен для опытного пользователя.
Диалог, основанный на заполнении шаблонов, предусматривает
отображение на экране форматов, которые соответствуют структуре
обрабатываемых документов. В этом виде диалога могут возникнуть
трудности манипуляции с курсором, а также с исправлением ошибок.
Выбор из “меню” заключается в том, что система предъявляет
список альтернатив, и пользователь выбирает одну из них. При этом
информация учащемуся – пользователю представляется либо на естественном языке, либо с помощью легко идентифицируемых им мнемонических обозначений. Этот вид диалога удобен и не требует специальной подготовки.
Диалог, основанный на применении команд, предусматривает
введение учащимся команды, часто при этом используются мнемоники или аббревиатуры.
При использовании вопросного языка учащийся задает вопросы
без данных системы. ЭВМ затем выдает ответ. Считается, что такой
вид диалога пригоден как для опытного, так и для массового пользователя.
При применении диалога, использующего командный язык, реализованный на базе функциональной клавиатуры, учащемуся необходимо уметь управлять курсором, выбирать необходимые для опреде34
ления операции клавиши, при необходимости прерывать запрограммированный ход диалога. Такой диалог считается наиболее простым и
естественным.
Интерактивная графика – вид диалога, в котором принимается
графическая информация. Обычно этот вид диалога рассматривается в
качестве дополняющего соответствующие виды вербального диалога.
Следует учитывать, что для наименее обученного случайного
пользователя рекомендуется применение вопрос – ответного вида
диалога, базирующегося на естественном языке с элементами диалога
основанного на выборе из “меню”.
Необходимо учитывать, что виды диалога, удобные для случайного пользователя, весьма обременительны для опытного пользователя, которым может оказаться учащийся, успешно овладевший основами информатики и выполняющий самостоятельно задания по программированию.
Для опытного, хорошо обученного пользователя как наиболее
удобный рекомендуемый диалог, основанный на использовании команд и командных языков, реализованных на базе функциональной
клавиатуры, а также диалог, базирующийся на использовании вопросного языка.
После определения вида диалога и спроектированной процедуры, особое внимание необходимо уделить разработке дисплейных
форматов и кодированию данных.
При разработке сценария диалога учащегося с ЭВМ следует
предусматривать такую последовательность ввода сообщений, которая была бы наиболее близка к входному документу, в данном случае
к компьютеризированному учебному пособию.
35
Не рекомендуется требовать от учащегося выдачи подтверждающих сообщений слишком часто.
Не следует подчинять ритм работы учащегося ритму работы
ЭВМ.
Необходимо информировать учащегося в ходе диалога о действиях, которые потребуются от него на следующем шаге. Предусматривать в процедуре диалога возможность приостановки работы в
любой момент, а также возможность возобновить работу всегда, когда
она понадобится учащемуся, и с нужного листа. Предусматривать
возможность напоминания учащемуся о действиях, имевших место на
предыдущих стадиях диалога.
Целесообразно предусматривать различные уровни общения с
ЭВМ для учащихся с разной подготовкой, от подробного, снабженного большим количеством подсказок, до сжатого, содержащего лишь
необходимые основные шаги диалога.
Сообщения, предъявляемые учащемуся на экране дисплея,
должны быть логически последовательны, отнесены к структуре его
деятельности, последовательно решать подзадачи, предусмотренные
содержанием обучения.
Близкие по смыслу единицы информации должны быть так
сгруппированы, чтобы повысить читабельность текстов.
Информация должна быть структурирована вплоть до разделения на последовательность предъявляемых учащемуся кадров. В случае наличия большого количества необходимой для предъявления информации рекомендуется разделить ее на несколько кадров, а не
предъявлять ее всю на одном экране.
36
На экране должна предъявляться именно та информация, которая имеет отношение к тем действиям учащегося, которые он выполняет в данный момент.
Форматы должны быть настолько просты, насколько это возможно.
Организация контроля ошибок учащегося должна базироваться
на психологических принципах и проекте его деятельности, а также на
устранении психологических факторов, определяющих появление
следующих ошибок учащегося:
- перегрузка “пользовательского канала” (учащемуся предъявляется одновременно слишком много сообщений);
- пользовательская скука (работа должна быть не слишком
сложной, но и не слишком простой, особенно для подготовленного
учащегося);
- недостаток мотивации (учащийся нуждается в наличии интереса к работе);
- неадекватные инструкции для управления непредвиденными
ситуациями (когда ошибки имеют место, учащийся должен быть немедленно о них информирован).
При проектировании процедуры обнаружения и диагностики
ошибок рекомендуется избегать зашифрованных сообщений об ошибках. Сообщения об ошибках при процедуре их диагностики необходимо делать максимально ясными. Они должны быть заранее специфицированными системным проектировщиком, и их эффективность
должна быть проверена совместно с разработчиком психологопедагогического обеспечения и апробирована при участии учащихся.
37
Следует избегать в процессе исправления ошибок повторного
ввода правильно введенных ранее данных.
Целесообразно предусматривать вариантность в обеспечении
учащихся нужной информацией при обработке ошибок:
- учащимся – опытным пользователям – необходимо лишь указать на наличие ошибки, например, блокировкой клавиатуры, изменением яркости или специальным символом;
- программирующим учащимся – пользователям необходимо
лишь краткое замечание, напоминание о правильном синтаксисе или
списке разрешенных действий;
- неподготовленному учащемуся необходимо подробно объяснить характер ошибки и пути ее исправления.
Сообщения об ошибках рекомендуется обязательно включать в
системную документацию.
Сообщения об ошибках должны быть не сложными, четкими и
максимально понятными, а также точными и вызывающими доверие.
Большую роль в обеспечении эффективного использования
ЭВМ играет психологически и эргономически обоснованный выбор
времени ответа ЭВМ на различные запросы пользователя.
При определении временных параметров процедуры диалога
необходимо стремиться к постоянству времени реакции системы на
однотипные запросы учащегося.
Необходимо учитывать, что время реакции человека в среднем составляет 2с.
Необходимо стремиться к минимизации времени ответа. Время
ответа ЭВМ должно находиться в соответствии со сложностью и ценой запроса.
38
Дисперсия времени ответа должна быть уменьшена даже путем
увеличения среднего времени ответа.
Время реакции ЭВМ на различные запросы учащегося должно
проектироваться с учетом рекомендаций психологов относительно категории учащихся и специфики различных запросов учащихся.
Вопросы проектирования временных параметров диалога должны решаться в ходе разработки эргономического обеспечения каждой
конкретной учебной программы с учетом психолого-педагогических
требований к организации и содержанию обучения.
В табл.1 приведены рекомендации относительно выбора времени реакции ЭВМ на различные запросы пользователя.
Время реакции ЭВМ на запросы пользователя
Таблица 1
Определенное время ответа
Характер действия
Допустимый
Максимум, с
Ввод через клавиатуру
От нажатия на клавишу до ответа
0,1
От нажатия на клавишу до появления
0,2
символа
Инициация системы
От конца запроса до ответа
3,0
Продолжение таблицы 1
Характер действия
Определенное время ответа
Допустимый
Максимум, с
Вставка символов
От вставки до ответа
2,0
Выполнение простого
От конца запроса до ответа
2,0
От окончания запроса до начала ответа
5,0
запроса
Выполнение сложного
запроса
39
Переворачивание страницы
От конца запроса до первых видимых
1,0
строк
Сканирование страниц
От конца запроса до начала движения
0,5
текста
Манипулирование графикой
От конца запроса до начала ответа
2,0
Манипулирование сложной
То же
10,0
графикой
Выполнение действия по
От активации светового пера до ответа
1,0
вводу с помощью светового
пера
Окончание формулировки
От конца запроса до ответа
10,0
Модернизация файла
От конца запроса до окончания
10,0
Сообщения об ошибках
От ввода до появления сообщения
2,0
проблемы
об ошибке
При разработке КОП следует учитывать ряд эргономических
требований и рекомендаций, предъявляемых к организации информации на экране дисплея. К таким информациям можно отнести следующие:
- информация, предъявляемая на экране должна быть понятной,
логически связной, распределенной на группы по содержанию и
функциональному назначению;
- при организации информации на экране следует избегать избыточного кодирования и неоправданных, плохо идентифицируемых
сокращений;
- рекомендуется минимизировать использование терминов, привычных для учащихся;
- для выделения части информации, предъявляемой учащемуся
на экране ЭВМ, рекомендуется зонирование – разбивка экрана на зо40
ны. Допускается изменение масштаба знаков в отдельной зоне. Не
следует использовать краевые зоны экрана;
- эффекты, привлекающие внимание учащегося, следует применять строго в соответствии с проектом его деятельности и только в тех
случаях, когда это необходимо. Речь идет о мельканиях, повышенной
яркости, обратном контрасте и т.п.
Рекомендуются следующие количественные характеристики
информации, отображаемой на экране алфавитно-цифрового дисплея:
1) максимальное количество строк: для цветных – 25; для монохромных – 32;
2) максимальное количество символов на строку – 80.
Допускается увеличение размеров символов при проектировании КОП. Конкретные размеры символов, количество строк, особенности организации текстовой информации на экране должны решаться в каждом конкретном случае методами эргономического проектирования.
Следует уделять внимание организации основной информации
на экране. Основная текстовая информация на экране не должна полностью заполнять экран. На экране должна находиться только та информация, которая обрабатывается учащимися в данный момент.
При редактировании текста рекомендуется выводить информацию на экран таким образом, чтобы оба абзаца текста, актуальных в
данный момент, были представлены одновременно на экране.
При организации вспомогательной информации на экране следует учитывать следующие требования: должны быть выделены четко идентифицируемые зоны размещения на экране вспомогательной
информации: зона подсказок, зона комментариев, зона управляющих
41
сообщений, зона для сообщений об ошибках; рекомендуется вопросно-ответные сообщения и подсказки помещать в верхней части экрана, выделяя явным образом отведенную для этого зону, например, отделяя ее горизонтальной линией от основной информации на экране;
необходимо отделять друг от друга в зоне вспомогательной информации различные виды сообщений. Например, можно рекомендовать
применять инверсное изображение для подсказок.
Существует несколько способов кодирования информации на
экране: для алфавитно-цифровых и графических дисплеев: буквами,
цифрами, символами; размером; яркостью; цветом; частотой мельканий; для графических дисплеев, кроме перечисленных: формой; пространственной ориентацией; длиной и ориентацией линии.
Кодирование буквами, цифрами, символами – наиболее распространенный способ. Пользователь имеет возможность манипулировать информацией с помощью клавиатуры.
При необходимости выделения определенных знаков следует
применять следующие методы: изменение яркости знака (символа)
или контраста; применение добавочного цвета (для цветных знаков);
мелькание знака (символа); подчеркивание; изменение геометрических размеров или форм знака (символа).
Кодирование буквами, цифрами и символами следует использовать для отображения качественных характеристик объекта (типа,
структуры, функций).
Длина алфавита не ограничивается в связи с возможностью использования различных сочетаний. Знаки на экране дисплея должны
опознаваться безошибочно. Для этого должны быть выделены характерные признаки, отличающие один знак от другого.
42
Кодирование размером символа применяется для выделения
значений определенных символов. Его следует использовать для передачи информации, устанавливая соответствие между площадью или
линейными размерами знака с характеристиками объекта. При этом
предпочтительно, чтобы шкала размеров менялась в геометрической,
а не в арифметической прогрессии. Оптимальная длина надежно распознаваемого алфавита – 2, максимальная – 5.
Кодирование яркостью может применяться для выделения важной или наиболее интересной информации. Пределом яркостных градаций является использование 4 градаций, а наиболее употребительны
2 градации яркости.
Кодирование частотой мельканий применяется для выделения
информации, на которую нужна немедленная реакция. Рекомендуется
использовать частоту мельканий от 1 до 3 Гц. Поскольку мелькание
сильно привлекает внимание учащегося, этим способом кодирования
не следует злоупотреблять.
Кодирование цветом применяют: для структурирования информации на экране; для передачи состояния объекта; для выделения
наиболее важной и значимой информации. Цветное кодирование требует наибольшего рабочего пространства и обеспечивает малое время
обнаружения. Этим способом кодирования следует пользоваться в
следующих случаях:
- при необходимости быстрого обнаружения местонахождения
символа на экране с неупорядоченной информацией или на плотно загруженном экране;
43
- для выделения сигналов тревоги, предупреждающей информации об изменении какого-либо параметра, а также для выделения подсказки;
- при группировании однородной или разнородной информации;
- при организации многооконного вывода. Максимальная длина
надежно распознаваемого алфавита – 11.
В алфавите следует отдавать предпочтение зеленому, красному,
голубому, желтому и фиолетовому цветам. Не рекомендуется использовать красный и зеленый или голубой и желтый цвета для цветного
контраста, поскольку многие люди имеют красно-зеленую или желтосинюю аномалию зрения.
При организации многооконного вывода необходимо минимизировать количество цветов, используемых на экране одновременно.
Цвет переднего плана и цвет фона при организации окон должны находиться в сочетании между собой и цветом тех символов, которые должны быть выделены на экране. Исходя из этого, не рекомендуется использовать яркие цвета для градации окон и для заглавий.
Окна в многооконном выводе следует разделять между собой
цветом фона. При кодировании окон следует разделять три функции
цвета: выделение, задний план и нормальное чтение. Выделяемые
объекты, например сообщения об ошибках, рекомендуется окрашивать в цвета, используемые для предостережения. В текстообработке
для кодирования информации, предъявляемой не непрерывно, а необходимой только изредка, должны применяться нейтральные цвета.
Не рекомендуется пользоваться дополнительным цветом для
символов и фона, так как это раздражающе действует на зрение. При
44
создании цветового контраста не следует выходить за пределы значений, допустимых для яркостного контраста.
Форму следует использовать для отображения качественных характеристик объекта (кодирование его класса и вида). Рекомендуемая
длина надежно распознаваемого алфавита – от 8 до 16. Основной
классификационный признак объекта должен кодироваться контуром.
В состав знака могут входить основные и дополнительные детали.
Дополнительные детали не должны пересекать или искажать контур
знака.
Кодирование пространственной ориентации следует использовать для передачи информации о положении объекта в пространстве,
направлении движения, курсе, изменении величин. Максимальная
длина надежно распознаваемого алфавита – 8.
Длину и ориентацию линии следует использовать для передачи
информации о скорости и направлении движения объекта. Максимальная длина надежно распознаваемого алфавита – 4.
Технология создания обучающей программы
«Задачник-практикум на языке Object Pascal в среде Delphi»
Учебник, печатный текст по-прежнему остаются основным
учебным пособием, но средства мультимедиа могут существенно помочь в усвоении материала. Действительно, лучше один раз увидеть,
чем сто раз услышать. Можно на десятках страниц читать описание
некоторого процесса, но так ничего и не понять. Достаточно же увидеть короткий видео ролик, и сразу все станет ясно. Однако при подготовке учебного пособия еще более чем при работе с текстом, необ45
ходимы тщательный отбор исходного материала и его структурирование.
При создании прикладного продукта сначала необходимо подготовить с максимальным качеством информационные блоки (текст,
аудио- и видеоинформацию). На этом этапе определяются требования
к шрифтам, текстовым форматам, проводятся выверка данных и редактирование. Также необходимо выбрать среду, в которой будет создаваться программа и соответственно язык программирования.
Программирование, конечно, интересная и занимательная штука
(и к тому же хороший способ развития навыков решения задач), однако уметь программировать или знать, как отремонтировать компьютер пользователю совсем необязательно. Ведь не всякий обычный водитель является одновременно и опытным автомехаником.
Рассмотрим КОП «Задачник-практикум на языке Object Pascal в
среде Delphi». Целью данной работы является изучение применений
мультимедийных технологий в обучающих программах и их создание. Разработка данной обучающей программы предназначена для
широкого круга людей со знанием ПК на уровне пользователя. Программа обучает программированию, развитию навыков решения задач
в среде программирования Delphi.
Новизна данной работы – интеграция возможностей информационных технологий и объектно-ориентированного программирования, а также разработан подход подачи материала алгоритмического
характера.
Теоретическая и практическая значимость – разработанный
подход создания мультимедийных обучающих программ можно применить при программировании и других учебных дисциплин. Про46
грамма может быть использована в учебном процессе, как в средних,
так и в высших учебных заведениях.
Программа задачника-практикума содержит в себе небольшой
справочник, где описываются компоненты и т.д., затем описание задач линейного типа, ветвления и циклического типа, небольшой контроль за работой пользователя, показ результата обучения пользователя решению задач.
Вся программа спроектирована и описана на языке программирования Object Pascal в среде Delphi. Она позволяет легко и просто
включать в программу такие мультимедийные объекты, как звуки, видео и музыку. Как известно Delphi – это среда разработки программ,
ориентированных на работу в Windows. В основе идеологии Delphi
лежит технология визуального проектирования и методология объектно-ориентированного программирования. Delphi включает стандартный набор средств, обеспечивающих разработку высокоэффективных программ различного назначения. При программировании в
среде Delphi программисту представляются большие возможности, в
том числе и работа со звуком и анимацией. Так среда Delphi организует работу с мультимедийными проектами. Это является одним из
важных аспектов в программировании, поскольку в настоящее время с
развитием информационных технологий и внедрением все более широких возможностей компьютера большинство современных программ, работающих в среде Delphi, являются мультимедийными.
Delphi предоставляет в распоряжение программиста два компонента, которые позволяют разрабатывать мультимедийные программы. Первый - Animate - обеспечивает вывод простой анимации (подобной той, которую видит пользователь Windows во время копиро47
вания файлов), второй - MediaPlayer - позволяет решать более сложные задачи, например, воспроизводить видео ролики, звук, сопровождаемую звуком анимацию.
Компонент Animate, значок которого находится на вкладке
WIN32, позволяет воспроизводить простую анимацию, кадры которой
находятся в файле с расширением .avi. Компонент добавляется к форме, после чего следует установить значения его свойств. Свойства
компонента приведены в таблице 2.
Таблица 2
Свойство
Name
Определяет
Имя компонента. Используется для доступа к
свойствам компонента и управлением его поведением.
FileName
Имя AVI-файла, в котором находится анимация, отображаемая при помощи компонента.
StartFrame
Номер кадра, с которого начинается отображение анимации.
StopFrame
Номер кадра, на котором заканчивается отображение анимации
Activate
Признак активизации процесса, отображения
кадров анимации
Repetitions
Количество повторов отображения анимации
48
Компонент Animate позволяет программисту использовать в
своих программах стандартные анимации Windows. Вид анимации
определяется значением свойства
CommonAVI. Значение свойства
задается при помощи именованной константы.
Хотя анимация, находящаяся в avi-файле, может сопровождаться звуковыми эффектами, компонент Animate обеспечивает воспроизведение только изображения. Для полноценного воспроизведения сопровождаемой звуком анимации следует использовать компонент MediaPlayer.
Компонент MediaPlayer (рисунок 2), значок которого находится
на вкладке System, позволяет воспроизводить видео ролики, звук, сопровождаемую звуком анимацию. В результате добавления компонента к форме, на форме появляется группа кнопок, подобных тем, которые можно видеть на обычном аудио или видеоплеере.
Компонент MediaPlayer на форме
Рисунок 2
Назначение кнопок компонента приведено в таблице 3.
Таблица 3
Кнопка
Воспроизведение
Обозначение
Действие
Воспроизведение звука или ви-
BtPlay
део
Пауза
Приостановка воспроизведения
BtPause
49
Стоп
BtStop
Остановка воспроизведения
Следующий
BtNext
Переход к следующему кадру
Предыдущий
BtPrev
Переход к предыдущему кадру
Шаг
BtStep
Переход к следующему звуковому фрагменту
Назад
Переход к предыдущему звуко-
BtBack
вому фрагменту
Запись
BtRecord
Запись
Открыть/Закрыть
BtEject
Открытие или закрытие дисковода CD-ROM компьютера
Свойства компонента MediaPlayer приведены в таблице 4
Таблица 4
Свойство
Name
Описание
Имя компонента. Используется для доступа к
свойствам компонента и управлением работой
плеера
DeviceType
Тип устройства. Определяет конкретное устройство, которое представляет собой компонент
MediaPlayer. Тип устройства задается именованной константой: dtVaweAudio - проигрыватель
звука; dtAVIVideo – видеопроигрыватель;
dtCDAudio – проигрыватель компакт-дисков
50
FileName
Имя файла, в котором находится воспроизводимый звуковой фрагмент или видео ролик
AutoOpen
Признак автоматического открытия, сразу после
запуска программы, файла в виде ролика или звукового фрагмента
Display
Определяет компонент, на поверхности которого
воспроизводится видео ролик (обычно в качестве
экрана для отображения видео используют компонент Panel)
VisibleButtons
Составное свойство. Определяет видимые кнопки
компонента. Позволяет сделать невидимыми некоторые кнопки.
Давая общее определение мультимедиа, нужно отметить, что с
помощью компонента TMediaPlayer можно иметь дело с подмножеством мультимедиа, которое включает:
1 Показ видео в формате Microsoft's Video for Windows (AVI).
2 Воспроизведение звуков и музыки из MIDI и WAVE файлов.
Для проигрывания файлов мультимедиа может потребоваться
наличие некоторого оборудования и программного обеспечения. Так
для воспроизведения звуков нужна звуковая карта. Для воспроизведения AVI в Windows 3.1 (или WFW) требуется установить ПО Microsoft
Video.
Помимо воспроизведения звука, компонент MediaPlayer позволяет просматривать видео ролики и мультипликации, представленные
51
как AVI-файлы. В качестве экрана используется компонент Panel, на
который осуществляется вывод анимации и его имя используется в
качестве значения свойства Display компонента MediaPlayer. Поэтому
сначала к форме лучше добавить компонент Panel, а затем –
MediaPlayer. Такой порядок создания формы позволяет установить
значение свойства Display путем выбора его из списка.
Следует обратить внимание, что размер области вывода анимации на панели определяется не значением свойств Width и Height панели, а значением свойства DisplayRect компонента MediaPlayer.
Компонент TMediaPlayer в Delphi дает вам доступ ко всем основным возможностям программирования мультимедиа. Данный компонент очень прост в использовании. Фактически, он настолько прост,
что многим начинающим программистам будет проще создать свою
первую программу, проигрывающую видео или музыку, нежели показывающую классическую надпись "Hello World".
Простоту использования можно воспринимать двояко:

с одной стороны - это дает возможность любому со-
здавать мультимедиа приложения.

с другой стороны, можно обнаружить, что в компо-
ненте реализованы не все возможности. Если Вы захотите использовать низкоуровневые функции, то придется копаться достаточно глубоко, используя язык Delphi.
В данном уроке не описываются подробности внутренних вызовов мультимедийных функций при работе компонента. Все что
нужно знать - это то, что компонент называется TMediaPlayer, и что
он дает доступ к набору подпрограмм, созданных Microsoft и называемых Media Control Interface (MCI). Эти подпрограммы дают про52
граммисту простой доступ к широкому кругу устройств мультимедиа.
Собственно работа с TMediaPlayer интуитивно понятна и очевидна.
Для того чтобы создать видео ролики существуют программы,
например такие, как Adobe Premiere, Macromedia Flash и т.д.
При работе с программой Adobe Premiere необходимо создать
кадры анимации, которые можно создать при помощи графического
редактора. При этом каждый кадр нужно поместить в отдельный
файл. В имени файла, содержащего кадр, должен присутствовать номер кадра. Например, кадр00.bmp, кадр01.bmp и т.д. После создания
кадров анимации и записи звука можно приступать к созданию AVIфайла при помощи Adobe Premiere.
Macromedia Flash – программа, которая позволяет создавать яркие, запоминающиеся пользователям видеофрагменты и видеоролики,
благодаря возможности сочетать четкость и гибкость векторной графики с растром, звуком, анимацией и богатыми интерактивными идеями. Macromedia Flash в отличие от Adobe Premiere работает более
упрощенно. Здесь при создании кадров анимации не нужно помещать
их в отдельный файл, тем самым не занимая много места в памяти
компьютера. Также как и в Adobe Premiere, в этой программе можно
работать со звуком. После заготовки основной части видео ролика
нужно сохранить его и потом уже создавать AVI-файл.
А для работы с AVI-файлами в среде Delphi, как было уже сказано выше, существует компонент TMediaPlayer. При этом видео ролик помещается либо на форму, либо выводится в какой-либо компонент, например TOLEContainer, TPanel и т.д. Для воспроизведения видео файла необходимо после запуска программы нажать кнопку “воспроизведение”.
53
Иногда приходится предоставлять пользователям простой путь
для проигрывания максимально широкого круга файлов. Это означает,
что Вам нужно будет дать пользователю доступ к жесткому диску или
CD-ROM, и затем позволить ему выбрать и воспроизвести подходящий файл. В этом случае, на форме обычно располагается
TMediaPlayer, предоставляющий возможность управления воспроизведением.

Иногда программист может захотеть скрыть от пользова-
теля существование компонента TMediaPlayer. То есть, воспроизвести
звук или видео без того, чтобы пользователь заботился об их источнике. В частности, звук может быть частью презентации. Например, показ какого-нибудь графика на экране может сопровождаться объяснением, записанным в WAV файл. В течении презентации пользователь
даже не знает о существовании TMediaPlayer. Он работает в фоновом
режиме. Для этого компонент делается невидимым (Visible = False) и
управляется программно.
Как известно Delphi – это среда разработки программ, ориентированных на работу в Windows. В основе идеологии Delphi лежит технология визуального проектирования и методология объектноориентированного программирования. Delphi включает стандартный
набор средств, обеспечивающих разработку высокоэффективных программ различного назначения. При программировании в среде Delphi
программисту представляются большие возможности, в том числе и
работа со звуком и анимацией. Так среда Delphi организует работу с
мультимедийными проектами. Это является одним из важных аспектов в программировании, поскольку в настоящее время с развитием
информационных технологий и внедрением все более широких воз54
можностей компьютера большинство современных программ, работающих в среде Delphi, являются мультимедийными.
Для того чтобы реализовать разработку программы, непосредственно связанной с мультимедией необходимо:
-
четко отобрать теоретический и практический материал;
-
записать звук;
-
выбрать наиболее приемлемую программу для создания
видео роликов;
-
внедрить звук в файл;
-
экспортировать наш файл с видео роликом, при этом рас-
ширение должно быть .avi.
-
внедрить видео ролики в программу.
Рассмотрим принцип функционирования программных модулей,
которые работают при ссылке на их файл с exe расширением. Содержание программы спроектировано на основе презентации с помощью
прикладной программы Microsoft Power Point. Поэтому при выборе
того или иного раздела работа осуществляется с помощью гиперсылок.
Гиперссылка раздела «Справочная система» ссылается на файл
с .exe расширением. Сам файл содержит заранее подготовленные видео ролики с озвучиванием. Видео ролики вставляются в компонент
Panel, а воспроизведение звука осуществляется с помощью компонента Media Player. При записи кода программы, необходимо сначала
установить свойства компонента Media Player, связать его с Panel.
Осуществление связи с компонентом осуществляется с помощью
свойства Display. Для этого необходимо лишь свойству Display присвоить имя связываемого компонента, в нашем случае компонент Pan55
el 1. Также, для проигрывания какого либо файла, нужно указать в
свойстве Device Type тип проигрываемого файла. Так как в данной
программе мы выбрали dtAutoSelect, т.е. авто выбор, позволяющий
автоматически настраиваться на любой файл.
Перейдем к описанию кода программы.
В разделе описания глобальных переменных описываем массив,
содержащий названия файлов с расширениями bmp, avi. Таким образом, в последующем мы будем только давать запрос, т.е. обращаться к
данному массиву, какой из файлов в тот или иной момент времени
необходимо воспроизвести.
var
Form1: TForm1;
const
a: array[1..10]of string=('Button.bmp','Label.bmp',
'ListBox.bmp','MainMenu.bmp',
'Memo.bmp','Panel.bmp',
'PopupMenu.bmp','RadioGroup.bmp',
'ScrollBar.bmp','GrouBox.bmp');
A2:array[1..10]of string=('tButton.wav','tLabel.wav',
'tListBox.wav','tMainMenu.wav',
'tMemo.wav','tPanel.wav',
'tPopupMenu.wav','tRadioGroup.wav',
'tScrollBar.wav','tGroupBox.wav');
b: array[1..8] of string = ('Знакомство со средой Делфи.avi','Главное окно.avi',
'Инспектор объектов.avi','Окно формы.avi','Окно кода.avi',
'Установка компонентов.avi','Структура процедуры.avi',
56
'Структура функции.avi');
c: array[1..6]of string=(
'История языка Object Pascal.wav',
'Программирование в Делфи.wav',
'Соглашение об обозначениях.wav',
'Этапы разработки программы.wav',
'Контекстно-зависимая справочная система.wav',
'Компиляция.wav');
implementation
Это позволяет сделать нам соответствующий выбор или запрос
из этого массива. Основная процедура программы раскрывает принцип функционирования всей программы. Необходимо отметить, что
путь здесь указывает на папку «11111», которая находится на жестком
диске. Для этого нам заранее необходимо будет поместить все наши
заготовленные файлы в эту папку.
procedure TForm1.OpenFile(aType:Byte; aNum:Integer);
var Patch,S:String;
begin
Patch:=ExtractFilePath(Application.ExeName);
Patch:='c:\11111\';
if not (pTypeView=0) then
begin
MediaPlayer1.close;
PanelView.Refresh;
end;
case aType of
57
1: begin
Image1.Visible:=True;
S:=Patch+A[aNum];
Image1.Picture.Bitmap.LoadFromFile(S);
with MediaPlayer1 do
begin
FileName:=Patch+A2[aNum];
Open;
end;
Label1.Visible:=True;
end;
2: begin
Image1.Visible:=False;
with MediaPlayer1 do
begin
FileName:=Patch+B[aNum];
Open;
Label1.Visible:=false;
end;
end;
3: begin
Label1.Visible:=false;
Image1.Visible:=False;
MediaPlayer1.FileName:=(patch+C[aNum]);
58
MediaPlayer1.Open;
//MediaPlayer1.Play;
end;
end;//case
pTypeView:=aType;
end;
В последующем вся программа лишь указывает номер метки и
обращается к вышеуказанной процедуре для вызова проигрывания
файлов.
Рассмотрим листинг программы «Задачник-практикум на языке
Object Pascal в среде Delphi». Начало программы создано на основе
презентаций стандартной программы PowerPoint пакета Microsoft Office. Возможности, содержащиеся в этой программе, позволяют создавать презентации с использованием звука, анимации. Причем, здесь
представлены средства настройки анимации, которая включает в себя
настройку эффектов анимации и времени воспроизведения звука. С
помощью управляющих кнопок с использованием гиперсылок осуществляется переход от одного слайда к другому. Расположение и порядок появления управляющих кнопок и кадров созданы в соответствии с требованиями к КОП.
В оглавление обучающей программы входят следующие разделы: библиотека, справочная система, задачник-практикум, задачи.
59
Библиотека содержит хорошо обработанный материал по изучению языка программирования высокого уровня Object Pascal. С помощью справочной системы, обучающийся может получить необходимую и интересующую его информацию. Задачник-практикум содержит в себе задачи трех типов. Переход по пунктам позволяет осуществить выборку того или иного типа задачи. Здесь приводится
условие, код программы и вывод результата решенной задачи. Раздел
задачи содержит полное пояснение хода решения определенных задач.
Рассмотрим листинг программы с кратким комментарием и кадрами.
unit zadachi;
60
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, OleCtnrs, ExtCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N11: TMenuItem;
N21: TMenuItem;
N31: TMenuItem;
N12: TMenuItem;
N22: TMenuItem;
N32: TMenuItem;
N23: TMenuItem;
N33: TMenuItem;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Button3: TButton;
N5: TMenuItem;
61
Button2: TButton;
Memo1: TMemo;
Label3: TLabel;
Label4: TLabel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure N32Click(Sender: TObject);
procedure N23Click(Sender: TObject);
procedure N33Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
В разделе описания глобальных переменных описываем файлы,
содержащие рисунки с кодом определенной задачи.
var
Form1: TForm1;
62
const
a: array[1..8]of string=('1_1.bmp',
'1_2.bmp','1_3.bmp','2_1.bmp','2_2.bmp',
'2_3.bmp','3_1.bmp','3_2.bmp');
implementation
{$R *.DFM}
1 Задача подсчета символов в заданной последовательности
символов. Ниже приведен код решения данной задачи. При этом на
форме выводится в отдельный компонент, так называемый контейнер,
условие задачи и код решения данной задачи, а также поля ввода и
вывода решения.
procedure TForm1.Button1Click(Sender: TObject);
var //раздел описания переменных
i,h,k:integer;
s:string;
begin
s:=edit1.Text; //ввод текста в поле edit1
h:=length(s); //устанавливает длину слова
edit2.Text:=inttostr(h); //вывод количество символов в поле edit2
end;
63
2 Задача перевода из долларов в тенге.
procedure TForm1.Button3Click(Sender: TObject);
var
f:real; //количество долларов
d,k:real; //стоимость в тенге
begin
//ввод исходных данных
f:=strtofloat(edit1.text);
//вычисление
k:=f*152.3;
//вывод результата
label2.caption:=edit1.text+' '+'доллар(а/ов) это'+' '+
floattostr(k)+' '+ 'тенге'; end;
3 Решение данной задачи - перевод веса из фунтов в килограммы.
procedure TForm1.Button2Click(Sender: TObject);
var
f:real; //вес в фунтах
d,k:real; //вес в килограммах
begin
//ввод исходных данных
f:=strtofloat(edit1.text);
//вычисление
k:=f*0.4095;
//вывод результата
label2.caption:=edit1.text+' '+'фунт(а/ов) это'+' '+
64
floattostr(k)+' '+
'килограмм (а/ов)';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//определяет видимость компонентов на форме
Memo1.Visible:=false;
Button1.visible:=false;
Button2.visible:=false;
Button3.visible:=false;
label1.Visible:=false;
label2.Visible:=false;
label3.Visible:=false;
label4.Visible:=false;
edit1.Visible:=false;
edit2.Visible:=false;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
Image1.Picture.Bitmap.LoadFromFile(a[1]);
Button1.visible:=true;
Button2.visible:=false;
Button3.visible:=false;
form1.Memo1.Visible:=true; //поле вывода условия
form1.Memo1.Lines.text:='';
form1.Memo1.Lines.text:='Посчитать количество символов в заданном
выражении';
65
Edit1.Visible:=true;
Edit2.Visible:=true;
Edit1.Text:='';
Edit2.Text:='';
Label1.Visible:=true;
Label2.Visible:=true;
label3.Visible:=true;
label4.Visible:=true;
Label1.Caption:='';
Label2.Caption:='';
Label1.Caption:='Введите слово';
Label2.Caption:='Вывод результата';
end;
procedure TForm1.N21Click(Sender: TObject);
begin
Image1.Picture.Bitmap.LoadFromFile(a[2]);
Button1.visible:=false;
Button2.visible:=false;
Button3.visible:=true;
form1.Memo1.Visible:=true; //поле вывода условия
form1.Memo1.Lines.text:='';
form1.Memo1.Lines.text:='Перевести заданное количество долларов в
тенге';
Edit1.Visible:=true;
Edit2.Visible:=false;
Edit1.Text:='';
Label1.Visible:=true;
66
Label2.Visible:=true;
label4.Visible:=true;
Label1.Caption:='';
//вывод инструкции
Label2.Caption:='';
Label1.Caption:='Введите количество долларов';
Label3.Visible:=true;
end;
procedure TForm1.N31Click(Sender: TObject);
begin
Image1.Picture.Bitmap.LoadFromFile(a[3]);
Button1.visible:=false;
Button2.visible:=true;
Button3.visible:=false;
form1.Memo1.Visible:=true;
//поле вывода условия
form1.Memo1.Lines.text:='';
form1.Memo1.Lines.text:='Перевести фунты в килограммы';
Edit1.Visible:=true;
Edit2.Visible:=false;
Edit1.Text:='';
Label1.Visible:=true;
Label1.Caption:='';
//поле вывода инструкции
Label1.Caption:='Введите вес в фунтах и щелкните на пересчет';
Label2.Visible:=true;
Label2.Caption:='';
Label3.Visible:=true;
label4.Visible:=true;
end;
67
4 Задача определяет максимальное значение из суммы и произведения заданных чисел. В данном случае значения вводятся в диалоговое окно.
procedure TForm1.N12Click(Sender: TObject);
var
//описание переменных
x,y,z:integer;
begin
Image1.Picture.Bitmap.LoadFromFile(a[4]);
Button1.visible:=false;
Button2.visible:=false;
Button3.visible:=false;
Form1.Memo1.Visible:=true;
//поле вывода условия
Form1.Memo1.Lines.text:='';
form1.Memo1.Lines.text:='Определить максимальное значение из суммы и произведения трех заданных чисел';
Edit1.Visible:=false;
Edit2.Visible:=false;
Label1.Visible:=false;
Label2.Visible:=false;
Label3.Visible:=true;
label4.Visible:=true;
x:=strtoint(InputBox('Максимальное значение','Введите значение x',''));
// вводим значение х
y:=strtoint(InputBox('Максимальное значение','Введите значение y',''));
// вводим значение y
z:=strtoint(InputBox('Максимальное значение','Введите значение z',''));
68
// вводим значение z
if (x*y*z)>(x+y+z) then ShowMessage('Произведение заданных чисел
больше суммы')
else ShowMessage('Сумма заданных чисел больше произведения');
//проверка условия end;
5. Определение четности заданного числа.
procedure TForm1.N22Click(Sender: TObject);
var
//описание переменных
x:integer;
begin
Image1.Picture.Bitmap.LoadFromFile(a[5]);
form1.Memo1.Visible:=true;
//поле вывода условия
form1.Memo1.Lines.text:='Определить четность заданного числа';
x:=strtoint(InputBox('Четность числа','Введите любое число',''));
// вводим значение х
if x mod 2=0
then ShowMessage('Заданное число четное')
else ShowMessage('Заданное число нечетное');
end;
6 Определение знака числа.
procedure TForm1.N32Click(Sender: TObject);
var
//описание переменных
b:integer;
begin
69
//вывод сообщения
Image1.Picture.Bitmap.LoadFromFile(a[6]);
form1.Memo1.Visible:=true;
//поле вывода условия
form1.Memo1.Lines.text:='Определить положительно ли заданное число';
b:=strtoint(InputBox('Знак числа','Введите любое число',''));
// вводим значение х
if b<0
then ShowMessage('Заданное число отрицательное')
общения
//вывод со-
else ShowMessage('Заданное число положительное');
end;
7 Считает общее число вхождений символов в заданную последовательность символов.
procedure TForm1.N23Click(Sender: TObject);
var
//описание переменных
i,t,t1:integer;
s:string;
begin //раздел инструкций
Image1.Picture.Bitmap.LoadFromFile(a[7]);
Button1.visible:=false;
Button2.visible:=false;
Button3.visible:=false;
form1.Memo1.Visible:=true;
//поле вывода условия
form1.Memo1.Lines.text:='';
form1.Memo1.Lines.text:='Дано натуральное число n, символы
s1,s2,..,sn.Подсчитать общее число вхождений символов +,-, в последовательность.';
Edit1.Visible:=true;
70
Edit1.text:='';
Edit2.Visible:=true;
Edit2.text:='';
Label1.Visible:=true;
Label1.Caption:='';
Label1.Caption:='Общее число вхождений символа "+"';
Label2.Visible:=true;
Label2.Caption:='';
Label2.Caption:='Общее число вхождений символа "-"';
Label3.Visible:=true;
label4.Visible:=true;
t:=0;t1:=0;
s:=InputBox('Подсчет символов "+" и "-"','Введите любой набор символов','');
//ввод последовательности символов
for i:=1 to length(s) do // оператор цикла
begin
if (copy(s,i,1)='+') then
t:=t+1;
//подсчет числа вхождений "+"
if (copy(s,i,1)='-') then
t1:=t1+1;
//подсчет числа вхождений "+"
//вывод результата
edit1.Text:=inttostr(t);
edit2.Text:=inttostr(t1);
end;end;
8 Выводит на экран числа заданной последовательности чисел.
procedure TForm1.N33Click(Sender: TObject);
71
const m=25;
var
//раздел описания переменных
b:array[1..m]of integer;
i,n:integer;
s:string;
begin
Image1.Picture.Bitmap.LoadFromFile(a[8]);
form1.Memo1.Visible:=true;
//поле вывода условия
form1.Memo1.Lines.text:='';
form1.Memo1.Lines.text:='Вывести числа введенной последовательности на форму.';
Button1.visible:=false;
Button2.visible:=false;
Button3.visible:=false;
Label1.Visible:=false;
Label2.Visible:=false;
Label3.Visible:=true;
label4.Visible:=true;
Edit1.Visible:=false;
Edit2.Visible:=false;
n:=strtoint(inputbox('Ввод количества чисел последовательности','Введите число',''));
//ввод числа последовательности
for i:=1 to n do
begin
b[i]:=strtoint(inputbox('Окно ввода','Введите любое число','')); //ввод
чисел последовательности
72
canvas.textout(30*i,200,inttostr(b[i])); //вывод введенных чисел на форму
end; end;
end.
Технология моделирования случайных процессов
и технология внедрения мультимедиа
Основной модуль проекта
program PMC;
uses
Forms,
MC in 'MC.pas' {Form1},
Unit222 in 'Unit222.pas' {Form55};
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm55, Form55);
Application.Run;
end.
Модуль Unit222
Рассмотрим форму и программу модуля Unit222.
unit Unit222;
interface
73
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Mask, Buttons;
type
TForm55 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ProgressBar1: TProgressBar;
Label4: TLabel;
MaskEdit1: TMaskEdit;
BitBtn1: TBitBtn;
Button1: TButton;
Memo1: TMemo;
Label5: TLabel;
Edit1: TEdit;
Label8: TLabel;
Label9: TLabel;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormClick(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
74
procedure FormPaint(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Label5Click(Sender: TObject);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Label8Click(Sender: TObject);
procedure MaskEdit1Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
procedure swap(var a,b:real);
public
{ Public declarations }
end;
var
Form55: TForm55;
kol:integer=0;
xx,yy,rez1:integer;
gh:boolean=true;d:boolean=false;
ech,s:real;
implementation
uses mc;
{$R *.DFM}
procedure TForm55.swap(var a, b: real);
var c:real;
75
begin
c:=a; a:=b; b:=c;
end;
procedure TForm55.Button2Click(Sender: TObject);
var ch1,ch2,i,j,n:integer;
M:array[1..3,0..1000] of real;
P:array[0..1000] of tpoint;
begin
n:=strtoint(inputbox('Введите колличество вершин','','5'));
Canvas.Brush.Color:=clBlack;
Form55.Refresh;Randomize;
//прямоугольник 100*100 на 600*400
Canvas.pen.Color:=clBlue;
canvas.Rectangle(100,100,600,400);
For i:=1 to n do
begin
ch1:=Random(500)+100; ch2:=Random(300)+100;
m[1,i]:=ch1;
m[2,i]:=ch2;
end;
For i:=2 to n do
If m[1,1]>m[1,i] then
begin
swap(m[1,1],m[1,i]);
swap(m[2,1],m[2,i]);
end;
// здесь нужно проверить на деление на ноль ...
76
For i:=2 to n do
if m[1,i]-m[1,1]=0 then exit else m[3,i]:=( ( m[2,i]-m[2,1] )/( m[1,i]m[1,1]) );
//***********************************************
For i:=2 to n-1 do
For j:=i+1 to n do
if m[3,i]>m[3,j] then
begin swap( m[1,i] , m[1,j] ); swap( m[3,i] , m[3,j] ); swap( m[2,i] ,
m[2,j] );end;
m[1,0]:=m[1,n] ; m[2,0]:=m[2,n];
//рисуем ..........
Canvas.Pen.Color:=clWhite; Canvas.brush.Color:=clWhite;
For i:=0 to n do p[i]:=Point(Round(m[1,i]),Round(m[2,i]));
Canvas.Polygon(Slice(P,n));
//*****************
end;
procedure TForm55.FormCreate(Sender: TObject);
begin
left:=0;top:=0;Width:=Screen.Width;Height:=Screen.Height;
memo1.Visible:=false; edit1.Visible:=false;
end;
procedure TForm55.Button1Click(Sender: TObject);
var i:integer;e:real;
begin
ech:=strtofloat(edit1.Text);
MaskEdit1.Text:=inttostr(round(1/sqr(ech)));
77
kol:=0;
e:=strtofloat(MaskEdit1.Text);
edit1.Text:=floattostr(1/sqrt(e));
ProgressBar1.Min:=0;
ProgressBar1.Position:=0;
ProgressBar1.Max:=StrToInt(trim(MaskEdit1.Text));
For i:=1 to StrToInt(trim(MaskEdit1.Text)) do
begin
If Canvas.Pixels[random(500)+100,random(300)+100]=clwhite then
inc(kol);
ProgressBar1.Position:=ProgressBar1.Position+1;
Application.ProcessMessages;
end;
Label2.Caption:='вероятность попадания
точек='+floattostr(kol/strtoint(trim(MaskEdit1.Text)));
s:=(kol/strtoint(trim(MaskEdit1.Text)))*600*400 ;
Label3.Caption:='Площадь фигуры='+FloatToStr(s);
Label4.Caption:='Площадь ограничивающего прямоугольника='+intToStr(600*400);
end;
Метод Монте-Карло
procedure TForm55.FormMouseMove(Sender: TObject; Shift: TShiftState;
X,
Y: Integer);
begin
if(x<100) or (x>600) or (y<100) or (y>400) then
78
begin
Cursor:=crarrow;
if x>600 then x:=600;
if x<100 then x:=100;
if y>400 then y:=400;
if y<100 then y:=100;
end else begin Cursor:=crcross; xx:=x; yy:=y; end;
if d then Canvas.LineTo(xx,yy);
end;
procedure TForm55.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
canvas.Brush.Color:=clwhite;
if button=mbRight then begin canvas.FloodFill(x,y,clwhite,fsBorder );end;
gh:=true;
d:=true;Canvas.MoveTo(xx,yy);
end;
procedure TForm55.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d:=false;
end;
procedure TForm55.FormClick(Sender: TObject);
begin
79
if gh then begin canvas.MoveTo(xx,yy);gh:=false; end;
Canvas.pen.Color:=clwhite;
Canvas.LineTo(xx,yy);
end;
procedure TForm55.FormPaint(Sender: TObject);
begin
canvas.Pen.Color:=clblue;
canvas.brush.Color:=clNavy;
Canvas.Rectangle(100,100,600,400);
canvas.Pen.Color:=clwhite;
Canvas.Rectangle(98,98,602,402);
end;
procedure TForm55.Button3Click(Sender: TObject);
begin
Label2.Caption:='';
Label3.Caption:='';
Label4.Caption:='';
gh:=true;
Canvas.Brush.Color:=clNavy;
form55.Refresh;
end;
procedure TForm55.Label5Click(Sender: TObject);
begin
80
Memo1.Width:=529;
Memo1.Height:=369;
rez1:=rez1+1;
if rez1 mod 2=0 then begin
memo1.Visible:=true; Label5.Font.Color:=clgreen;end
else begin
memo1.Visible:=false;Label5.Font.Color:=cllime; end;
Form55.Refresh;
end;
procedure TForm55.Label8Click(Sender: TObject);
begin
Edit1.Visible:=true;
edit1.SetFocus;
end;
procedure TForm55.MaskEdit1Change(Sender: TObject);
begin
edit1.text:=floattostr((1/sqrt((strtoint(trim(MaskEdit1.Text))))));
end;
end.
Модуль МС
unit MC;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
81
StdCtrls, Menus, shellapi, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label6: TLabel;
Label7: TLabel;
GroupBox1: TGroupBox;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Memo1: TMemo;
Label5: TLabel;
BitBtn4: TBitBtn;
Memo2: TMemo;
Panel1: TPanel;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
82
BitBtn2: TBitBtn;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
RadioGroup1: TRadioGroup;
BitBtn1: TBitBtn;
Panel2: TPanel;
Image1: TImage;
Label4: TLabel;
Timer1: TTimer;
Label11: TLabel;
procedure FormCreate(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure Label1Click(Sender: TObject);
procedure Label8Click(Sender: TObject);
procedure Label9Click(Sender: TObject);
procedure Label10Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
83
// function proverca (ww:string):string;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
n,k,k1,f,p,m:integer;a,b,c,x,y,s:real;i,j,o:integer;
x0,y0,a0,a1,w,h,l,w1,h1,l1,dx,dy:real;n0,p0:integer;
i0,j0,k0,rez,time1:integer;
implementation
uses Unit222;
function proverca(ww: string): string;
var i:integer;
begin
for i:=1 to length(ww) do
if not (ww[i] in ['0','1','2','3','4','5','6','7','8','9',',']) then
begin result:='0,5';exit;end;
result:=ww;
end;
procedure cube1;
begin
Form1.Canvas.Pen.Color:=clwhite;
Form1.Canvas.Polyline([point(round(x0-(3*a0)/4),round(y0+(3*a0)/4)),
point(round(x0-(3*a0)/4),round(y0-a0/4)),
point(round(x0-a0/4),round(y0-(3*a0)/4)),
84
point(round(x0+(3*a0)/4),round(y0-(3*a0)/4)),
point(round(x0+(3*a0)/4),round(y0+a0/4)),
point(round(x0+a0/4),round(y0+(3*a0)/4)),
point(round(x0-(3*a0)/4),round(y0+(3*a0)/4))]);
end;
procedure cube;
begin
Form1.Canvas.Pen.Color:=clwhite;
Form1.Canvas.brush.Color:=clyellow;
Form1.Canvas.Polygon([point(round(x0-(3*a0)/4),round(y0+(3*a0)/4)),
point(round(x0-(3*a0)/4),round(y0-a0/4)),
point(round(x0-a0/4),round(y0-(3*a0)/4)),
point(round(x0+(3*a0)/4),round(y0-(3*a0)/4)),
point(round(x0+(3*a0)/4),round(y0+a0/4)),
point(round(x0+a0/4),round(y0+(3*a0)/4)),
point(round(x0-(3*a0)/4),round(y0+(3*a0)/4))]);
Form1.Canvas.Pen.Color:=cllime;
Form1.Canvas.Polyline([point(round(x0-a0/4),round(y0+a0/4)),
point(round(x0-(3*a0)/4),round(y0+(3*a0)/4)),
point(round(x0-a0/4),round(y0+a0/4)),
point(round(x0-a0/4),round(y0-(3*a0)/4)),
point(round(x0-a0/4),round(y0+a0/4)),
point(round(x0+(3*a0)/4),round(y0+a0/4))]);
end;
procedure vid;
begin
Form1.Canvas.Pen.Color:=clred;
85
Form1.Canvas.Polyline([point(round(x0+a0/4),round(y0-a0/4)),
point(round(x0-(3*a0)/4),round(y0-a0/4)),
point(round(x0+a0/4),round(y0-a0/4)),
point(round(x0+(3*a0)/4),round(y0-(3*a0)/4)),
point(round(x0+a0/4),round(y0-a0/4)),
point(round(x0+a0/4),round(y0+(3*a0)/4))]);
end;
procedure paral;
begin
Form1.Canvas.Pen.Color:=clwhite;
Form1.Canvas.brush.Color:=clgreen;
Form1.Canvas.Polygon([
point(round(x0-w/2-l/2),round(y0+h/2+l/2)),
point(round(x0-w/2-l/2),round(y0-h/2+l/2)),
point(round(x0-w/2-l/2+l),round(y0-h/2+l/2-l)),
point(round(x0+w/2-l/2+l),round(y0-h/2+l/2-l)),
point(round(x0+w/2-l/2+l),round(y0+h/2+l/2-l)),
point(round(x0+w/2-l/2),round(y0+h/2+l/2)),
point(round(x0-w/2-l/2),round(y0+h/2+l/2))]);
end;
procedure vid1;
begin
dx:=x0-w/2-l/2+l;dy:=y0+h/2+l/2-l;
Form1.Canvas.Pen.Color:=clwhite;
Form1.Canvas.Polyline([
point(round(dx),round(dy)),
point(round(dx-l),round(dy+l)),
86
point(round(dx),round(dy)),
point(round(dx),round(dy-h)),
point(round(dx),round(dy)),
point(round(dx+w),round(dy))]);
end;
procedure vid2;
begin
dx:=x0+w/2-l/2;dy:=y0-h/2+l/2;
Form1.Canvas.Pen.Color:=clfuchsia;
Form1.Canvas.Polyline([
point(round(dx),round(dy)),
point(round(dx),round(dy+h)),
point(round(dx),round(dy)),
point(round(dx-w),round(dy)),
point(round(dx),round(dy)),
point(round(dx+l),round(dy-l))]);
end;
procedure Fon;
begin
Form1.Canvas.Brush.Color:=clyellow;
Form1.Canvas.pen.Color:=clHighlight;
Form1.Canvas.Rectangle(k,k,k1*m,k1*m);
end;
procedure popal;
begin //квадрат
if f=1 then begin
87
if(x>=(k1-a)/2)and(x<=(k1+a)/2)and
(y>=(k1-a)/2)and(y<=(k1+a)/2)then p:=p+1;end;
//окружность
if f=2 then begin
if (sqr(x-k1/2)+sqr(y-k1/2))<=sqr(a)then p:=p+1;end;
//эллипс
if f=3 then begin
if sqr((x-k1/2)*(b))+sqr((y-k1/2)*(a))<=sqr(a*b)then p:=p+1;end;
//прямоугольник
if f=4 then begin
if (abs(x-0.5)<=a)and(abs(y-0.5)<=b)then p:=p+1;end;
//треугольник
if f=5 then begin
if (abs(x-0.5)<=a)and(abs(y-0.5)<=b)
then p:=p+1;end;
end;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowWindow(handle,SW_MINIMIZE);
ShellExecute(handle, 'open','П1.pps' ,'','', SW_SHOWNORMAL);
ShowWindow(handle,SW_MAXIMIZE);
Label5.Visible:=false;
time1:=0;
Panel2.Visible:=true;
Image1.Visible:=true;
Label4.Visible:=true;
88
Label11.Visible:=true;
memo1. Visible:= false;
memo2. Visible:= false;
GroupBox1.Visible:=false;
BitBtn11.Visible:=false;
m:=300;
k:=0;k1:=1;f:=1;
a:=0.5;rez:=0;
end;
procedure TForm1.BitBtn10Click(Sender: TObject);
var t,tt:real;ii,code:integer;
begin
Panel2.Visible:=false;
Image1.Visible:=false;
Label4.Visible:=false;
Label11.Visible:=false;
memo1.Clear;
p:=0;randomize;form1.Refresh;fon;
//Form1.Canvas.Brush.Color:=clBlue;
//Form1.Canvas.pen.Color:=clNavy;
val(edit1.text,ii,code);
if code <>0 then edit1.text:='100';
case f of
1:begin t:=(k1-a)/2;tt:=(k1+a)/2;
Canvas.Brush.Color:=clteal;
Canvas.Rectangle(round(t*m),round(t*m),round(tt*m),round(tt*m));
s:=a*a;end;
89
2:begin t:=k1/2-a;tt:=k1/2+a;
Canvas.Brush.Color:=clteal;
Canvas.Ellipse(round(t*m),round(t*m),round(tt*m),round(tt*m));
s:=pi*sqr(a); end;
3:begin t:=k1/2;tt:=k1/2;
Canvas.Brush.Color:=clteal;
Canvas.Ellipse(round((t-a)*m),round((tb)*m),round((tt+a)*m),round((tt+b)*m));
s:=0;
end;
4:begin t:=k1/2;tt:=k1/2;
Canvas.Brush.Color:=clteal;
Canvas.Rectangle(round((t-a)*m),round((tb)*m),round((tt+a)*m),round((tt+b)*m));
s:=a*b; end;
end;
n:=strtoint(edit1.text);
for i:=1 to n do
begin
x:=random;y:=random;
popal;
//Canvas.Pixels[round(x*m),round(y*m)]:=clred;
end;
Label6.Caption:=floattostr(s);
if s=0 then Label6.Caption:='?';
90
Label7.Caption:=floattostr(p/n);
memo1.lines.Text:='количество точек: '+inttostr(n);
memo1.lines.Add('вероятность попадания в точек область:
'+floattostr(p/n));
memo1.lines.Add('примерная площадь фигуры: '+floattostr(p/n));
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
Form1.Refresh;
Panel2.Visible:=true;
Image1.Visible:=true;
Label4.Visible:=true;
Label11.Visible:=true;
RadioGroup1.Visible:=true;
BitBtn1.Visible:=true;
BitBtn10.Enabled:=False;
BitBtn11.Enabled:=False;
BitBtn8.Enabled:=false;
BitBtn9.Enabled:=false;
BitBtn1.Caption:='выберете фигуру';
end;
procedure TForm1.BitBtn11Click(Sender: TObject);
var s0,io:integer;
code,kk1,kk2, kk3 :integer;
91
label 1;
begin
Panel2.Visible:=false;
Image1.Visible:=false;
Label4.Visible:=false;
Label11.Visible:=false;
memo1.Clear;
val(edit1.text,io,code);
if code <>0 then edit1.text:='100';
for kk1:=1 to length(edit2.text) do
begin
if copy(edit2.text,kk1,1)[1] in['0','1','2','3','4','5','6','7','8','9',',']
then edit2.text:=edit2.text else edit2.text:='0,5' ;
end;
for kk2:=1 to length(edit3.text) do
begin
if copy(edit3.text,kk2,1)[1] in['0','1','2','3','4','5','6','7','8','9',',']
then edit3.text:=edit3.text else edit3.text:='0,5' ;
end;
for kk3:=1 to length(edit4.text) do
begin
if copy(edit4.text,kk3,1)[1] in['0','1','2','3','4','5','6','7','8','9',',']
then edit4.text:=edit4.text else edit4.text:='0,5' ;
end;
if (copy(edit4.text,1,1)='0')and(copy(edit4.text,2,1)<>',') then edit4.text:='0,5';
92
if (copy(edit3.text,1,1)='0')and(copy(edit3.text,2,1)<>',') then edit3.text:='0,5';
if (copy(edit2.text,1,1)='0')and(copy(edit2.text,2,1)<>',') then edit2.text:='0,5';
Form1.Refresh;
s0:=0;
x0:=150;y0:=150;
a1:=1;a0:=a1*200;
w1:=strtofloat(edit2.text);
h1:=strtofloat(edit3.text);
l1:=strtofloat(edit4.text);
n0:=strtoint(edit1.text);
if w1>1 then begin w1:=1;edit2.text:='1';end;
if h1>1 then begin h1:=1;edit3.text:='1';end;
if l1>1 then begin l1:=1;edit4.text:='1';end;
w:=w1*200;
h:=h1*200;
l:=l1/2*200;
cube;
paral;
vid1;
for p0:=1 to n0 do
begin
1:
i0:=random(round(x0+(3*a0)/4));
j0:=random(round(y0+(3*a0)/4));
k0:=random(round((3*a0)/2));
93
if (i0<x0-(3*a0)/4) or (j0<y0-(3*a0)/4) then goto 1;
if not((j0>=x0+y0-a0-i0) and (j0<=x0+y0+a0-i0)) then goto 1;
//Canvas.Pixels[i0,j0]:=clblack;
if (i0>=x0-w/2-l/2)and(i0<=x0+w/2-l/2+l)
and(j0>=y0-h/2+l/2-l)and(j0<=y0+h/2+l/2)
and(k0>=a0/2-l*2)and(k0<=a0-(a0/2-l*2))
and( ((j0>=x0+y0-i0-h/2-w/2) and (j0<=x0+y0-i0+h/2+w/2)))
then begin s0:=s0+1;
Canvas.Pixels[i0,j0]:=claqua;
end;
end;
vid2;
cube1;
vid;
label6.Caption:=floattostr(w1*h1*l1);
label7.Caption:=floattostr(s0/n0);
memo1.lines.Text:='количество точек: '+inttostr(n0);
memo1.lines.Add('вероятность попадания в точек область:
'+floattostr(s0/n0));
memo1.lines.Add('примерный объем тела: '+floattostr(s0/n0));
end;
procedure TForm1.BitBtn9Click(Sender: TObject);
begin
BitBtn5.Visible:=true;
BitBtn6.Visible:=true;
94
BitBtn7.Visible:=true;
GroupBox1.Visible:=false;
BitBtn10.Visible:=true;
BitBtn11.Visible:=false;
BitBtn10.Click;
Label2.Caption:='рeальная площадь фигуры';
Label3.Caption:='примерная площадь фигуры';
end;
procedure TForm1.BitBtn8Click(Sender: TObject);
begin
BitBtn5.Visible:=false;
BitBtn6.Visible:=false;
BitBtn7.Visible:=false;
GroupBox1.Visible:=true;
BitBtn10.Visible:=false;
BitBtn11.Visible:=true;
BitBtn11.Click;
Label3.Caption:=' примерный объем тела';
Label2.Caption:='
рeальный объем тела';
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
rez:=rez+1;
if rez mod 2=0 then begin Label5.Visible:=true; memo1.Visible:=true;
end
95
else begin Label5.Visible:=false; memo1.Visible:=false; end;
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
form55.ShowModal;
form55.Label2.Caption:='';
form55.Label3.Caption:='';
form55.Label4.Caption:='';
form55.Refresh;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
Form1.Refresh;
rez1:=rez1+1;
if rez1 mod 2=1 then begin
memo2.Visible:=true;BitBtn4.Caption:='убрать справку';
Panel2.Visible:=false;
Image1.Visible:=false;
Label4.Visible:=false;
Label11.Visible:=false;
end
else begin
Panel2.Visible:=true;
Image1.Visible:=true;
Label4.Visible:=true;
96
Label11.Visible:=true;
memo2.Visible:=false;BitBtn4.Caption:='справка';end;
end;
procedure TForm1.Label1Click(Sender: TObject);
begin
edit1.SetFocus;
end;
procedure TForm1.Label8Click(Sender: TObject);
begin
edit2.SetFocus;
end;
procedure TForm1.Label9Click(Sender: TObject);
begin
edit3.SetFocus;
end;
procedure TForm1.Label10Click(Sender: TObject);
begin
edit4.SetFocus;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
label 1,2,3,4,5,6;
begin
if RadioGroup1.ItemIndex=0 then
begin
97
1:a:=strtofloat(proverca(inputbox('параметры квадрата','введите сторону
квадрата','0,5')));
if a>1 then goto 1;
f:=1;
end;
if RadioGroup1.ItemIndex=1 then
begin
2:a:=strtofloat(proverca(inputbox('параметры окружности','введите радиус окружности','0,25')));
if a>0.5 then goto 2;
f:=2;
end;
if RadioGroup1.ItemIndex=2 then
begin
3:a:=strtofloat(proverca(inputbox('параметры эллипса','введите 1-ю полуось эллипса','0,45')));
4:b:=strtofloat(proverca(inputbox('параметры эллипса','введите 2-ю полуось эллипса','0,25')));
if a>0.5 then goto 3;
if b>0.5 then goto 4;
f:=3;
end;
if RadioGroup1.ItemIndex=3 then
begin
5:a:=strtofloat(proverca(inputbox('параметры прямоугольника','введите
длину прямоугольника','0,45')));
98
6:b:=strtofloat(proverca(inputbox('параметры прямоугольника','введите
высоту прямоугольника','0,25')));
if a>1 then goto 5;
if b>1 then goto 6;
f:=4;
end;
BitBtn1.Kind:=bkAll;
BitBtn1.Caption:='Готово';
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
BitBtn10.Enabled:=true;
BitBtn11.Enabled:=true;
BitBtn1.Visible:=false;
BitBtn8.Enabled:=true;
BitBtn9.Enabled:=true;
RadioGroup1.Visible:=false;
BitBtn1.Repaint;
//Kind:=bkCustom;
BitBtn1.Caption:='';
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
time1:=time1+1;
Label4.Font.Color:=random(256);
99
Label11.Font.Color:=random(256);
if time1 mod 3=2 then begin Label4.Font.Pitch:=fpFixed;
Label11.Font.Pitch:=fpFixed; end;
if time1 mod 3=1 then begin Label4.Font.Pitch:=fpDefault;
Label11.Font.Pitch:=fpDefault;end;
if time1 mod 3=0 then begin Label4.Font.Pitch:=fpVariable;
Label11.Font.Pitch:=fpVariable;end;
end;
end.
Проектирование игр
П р а ви ла и г р ы : «Пятнадцать».
На квадратном поле размером 4*4 с помощью датчика случайных чисел расставлены 15 фишек с номерами от 1 до 15. Имеется одна
свободная позиция. Расставить фишки по возрастанию их номеров.
Передвигать фишки можно только на свободную соседнюю позицию.
6
5
7
8
11
13
9
3
10
4
15
14
1
2
12
Код программы.
unit Unit1;
interface
uses
100
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls, ExtCtrls, Buttons, ComCtrls, Menus;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure StringGrid1Click(Sender: TObject);
procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X,Y: Integer);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N6Click(Sender: TObject);
private
{ Private declarations }
function IsFull:Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
x1,y1,col,row:integer;
a: array [0..14] of integer;
b:string;
implementation
101
uses Unit4;
{$R *.DFM}
function TForm1.IsFull:boolean; //проверка на наличие пустой клетки
var i,j,k:integer;
h:boolean;
begin
k:=1; h:=true;
for i:=0 to 3 do
for j:=0 to 3 do
begin
if stringgrid1.cells[j,i]<>'' then
if strtoint(stringgrid1.cells[j,i])<>k
then h:=false;
inc(k);
end;
if h then IsFull:=true else IsFull:=False;
end;
procedure TForm1.StringGrid1Click(Sender: TObject); //процедура выбора перемещаемой клетки при нажатии кнопки мыши
begin
stringgrid1.MouseToCell(x1,y1,col,row);
if col-1>=0 then if stringgrid1.cells[col-1,row]='' then
begin
stringgrid1.cells[col-1,row]:=stringgrid1.cells[col,row];
stringgrid1.cells[col,row]:='';
end;
102
if row-1>=0 then if stringgrid1.cells[col,row-1]=''
then begin
stringgrid1.cells[col,row-1]:=stringgrid1.cells[col,row];
stringgrid1.cells[col,row]:='';
end;
if col+1<=3 then if stringgrid1.cells[col+1,row]='' then begin
stringgrid1.cells[col+1,row]:=stringgrid1.cells[col,row];
stringgrid1.cells[col,row]:='';
end;
if row+1<=3 then if stringgrid1.cells[col,row+1]='' then begin
stringgrid1.cells[col,row+1]:=stringgrid1.cells[col,row];
stringgrid1.cells[col,row]:='';
end;
if IsFull then
begin showmessage ('Вы выиграли!');
BitBtn1.caption:='Продолжить игру';
end;end;
procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift:
TShiftState; X, Y: Integer); //определение координат клетки
begin
x1:=x;
y1:=y;
end;
procedure TForm1.BitBtn1Click(Sender: TObject); //заполнение клеток с
номерами от 1 до 15
103
var
k,i,j,l: integer;
label 1;
function isin (k:integer):boolean; //проверка на наличие одинаковых чисел
var
g:integer; h:boolean;
begin
h:=true;
for g:=0 to 14 do
if a[g]=k then h:=false;
if h then isin:=true else isin:=false;
end;
begin
randomize;
for i:=0 to 14 do a[i]:=-1;
k:=0;
while k<>16 do
begin
1: l:=random(16);
if not isin(l) then goto 1;
a[k]:=l; k:=k+1;
end;
k:=0;
for i:=0 to 3 do
for j:=0 to 3 do
begin
104
if a[k]<>0 then stringgrid1.cells[i,j]:=inttostr(a[k]);
if a[k]=0 then stringgrid1.cells[i,j]:='';
k:=k+1;
end;
BitBtn1.Caption:='СБРОС';
end;
procedure TForm1.BitBtn2Click(Sender: TObject); //выход из программы
begin
if MessageDlg('Вы уверены?',mtConfirmation, [mbYes, mbNo], 0) =
mrYes then
close;
end;
procedure TForm1.N6Click(Sender: TObject); //выход из программы
begin
if MessageDlg('Вы уверены?',mtConfirmation, [mbYes, mbNo], 0) =
mrYes then
close;
end;
end.
Свойства компонентов:
object StringGrid1: TStringGrid
Left = 8
Top = 8
Width = 497
105
Height = 297
Color = clNavy
ColCount = 4
DefaultColWidth = 120
DefaultRowHeight = 67
FixedCols = 0
RowCount = 4
FixedRows = 0
Font.Charset = RUSSIAN_CHARSET
Font.Color = clRed
Font.Height = -64
Font.Name = 'Arial'
Font.Style = [fsBold, fsItalic]
ParentFont = False
TabOrder = 0
OnClick = StringGrid1Click
OnMouseMove = StringGrid1MouseMove
object BitBtn2: TBitBtn
Left = 264
Top = 8
Width = 145
Height = 25
Caption = 'Выход'
Font.Charset = DEFAULT_CHARSET
Font.Color = clRed
Font.Height = -19
106
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold, fsItalic]
ParentFont = False
TabOrder = 1
OnClick = BitBtn2Click
object BitBtn1: TBitBtn
Left = 24
Top = 8
Width = 217
Height = 25
Caption = 'Начало игры'
Font.Charset = DEFAULT_CHARSET
Font.Color = clRed
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold, fsItalic]
ParentFont = False
TabOrder = 0
OnClick = BitBtn1Click
object Panel1: TPanel
Left = 8
Top = 312
Width = 497
Height = 41
BevelInner = bvLowered
107
BevelWidth = 2
Color = clActiveCaption
TabOrder = 1
object Form1: TForm1
Left = 192
Top = 107
Width = 521
Height = 407
Caption = 'Игра "Пятнашки".'
Color = clRed
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
108
Литература
1.
Культин Н.Б. Самоучитель. Программирование на Object Pascal
в Delphi 5. СПб.: БХВ- Санкт – Петербург, 1999. -464 с.
2.
Дарахвелидзе П., Марков Е. Delphi 5. СПб.: БХВ- Санкт – Пе-
тербург, 1999. -724 с.
3.
Культин
Н.Б. Delphi 3. Программирование на Object Pascal.
СПб.: БХВ- Санкт – Петербург, 1998. -304 с.
4.
Нурбекова Ж.К. Практикум решения задач на Delphi 5.0 -
Павлодар, 2001.- 106 с.
5.
Лебедева М.Б., Марков С.А. и др. Разработка педагогических
программных средств вычислительной техники для учебных заведений профтехобразования: Метод. пособие. - М.:Высш.шк.,1990.-126с.
109
Download