План.
Введение
Глава I. Роль и место компьютера в учебном процессе.
§1.Компьютер как средство обучения.
§2.Классификация учебно-программных средств.
§3.Анализ разработок обучающих программ.
Глава II. Разработка обучающей программы.
§1.Структура обучающей программы для ЭВМ.
§2.Разработка обучающей программы по теме “Векторы на плоскости”.
§3.Приложения.
Заключение.
Список литературы.
Введение
Появление компьютеров вызвало небывалый интерес к их применению в сфере обучения. Процесс компьютеризации необратим, остановить его ничто не может.
Во-первых, на возрастающей роли компьютеров в жизни современного общества. Сейчас трудно назвать какую-либо ее область - будь то производство, наука, техника, культура, сельское хозяйство, быт, развлечение, где бы применение компьютеров не приносило ощутимых результатов.
Во-вторых, на стремительном росте применения компьютеров всех регионов планеты.
В основе того и другого - впечатляющие (и даже более того - потрясающие ум и воображение, особенно если говорить о перспективах) успехи в развитии компьютерной техники. Возможности компьютеров растут столь стремительно, что прогнозы специалистов об их ближайшем будущем напоминают научную фантастику.
Практически все развитые страны широко разрабатывают компьютерные технологии обучения. Это вызвано тем, что компьютер стал средством повышения производительности труда во всех сферах деятельности человека. Резко возрос объем необходимых знаний, и с помощью традиционных способов и методик преподавания уже невозможно подготовить требуемое количество высокопрофессиональных специалистов.
Умелое использование вычислительной техники приобретает в наши дни общегосударственное значение, и одна из важнейших задач школы - вооружать учащихся знаниями и навыками использования современной вычислительной техники. С компьютеризацией обучения во всем мире связаны надежды повысить эффективность учебного процесса, уменьшить разрыв между требованиями, которые общество предъявляет подрастающему поколению, и тем, что действительно дает школа.
Целью дипломной работы является
написание программного продукта, позволяющего объединить несколько обучающих программ, обеспечивая при этом более удобный пользовательский интерфейс, что позволит даже практически неподготовленному пользователю ЭВМ (педагогу, обучаемому) быстро научиться работать с программой.
В связи с этим были поставлены следующие задачи:
1. Изучить психолого-педагогическую и методическую литературу, посвященную использованию компьютеров в учебном процессе.
2. Изучить некоторые имеющиеся программные разработки в области компьютеризации учебного процесса при обучении математике.
3. Разработать вариант обучающей программы по теме "Векторы на плоскости".
4. Разработать методические рекомендации по использованию созданной программы для учителя и для ученика.
В основе дипломного исследования лежит теоретический анализ и синтез информации на основе разнообразных источников. Методологическому анализу исследуемой проблемы способствовали работы отечественных педагогов и ученых Ершова Д.П., КушниренкоА.Г., Лебедева Г.В., ЛапчикаМ.П., ПерегудоваФ.И., Житомирского В.Б., Каймина В.А.
Важное значение для раскрытия психологических аспектов подготовки учителя с использованием прикладных технических средств имели исследования Выготского Л.С., Гершунского B.C., Давыдова В. В., Левицкого М.Л., Леонтьева А.Н., Рубинштейна Л.С., Тихомирова
O.K., Гальперина П.Я. и других.
При рассмотрении дидактических вопросов изучаемой проблемы были приняты во внимание работы ведущих отечественных ученых Бабанского Ю.К., Жафярова А.Ж., Глушкова В.М., Ершова А.П., Тихомирова O.K. и других.
Теоретическому осмыслению различных аспектов исследования способствовали труды отечественных ученых, посвященные истории, теории и практике обучения с использование компьютерных технологий за рубежом, Боярчука Ю.Г. (Япония), Литвиненко Г.Н. (Германия), Бенедек А. (Венгрия), Выставкина Я.П. (Япония и США).
Принципиально важными для исследования источниками явились документы реформ образования в России: “Компьютеризация школы и математическое образование” (1990), “Развитие образования в России(направление III “Информатизация образования”)” (1993--1994гг.) и другие.
Для разработки темы исследования были особенно полезны нормативные документы школьного образования, учебные планы и программы.
В процессе работы над темой исследования изучались монографии зарубежных авторов, таких как P.Norton, Bork A., Williams R., Rich Т., Maclean С., в которых освещались вопросы развития образования с использованием компьютерных технологий. Эти авторы выступают с различных позиций, что дает возможность более широко и всесторонне исследовать рассматриваемую проблематику
.
Значительный материал по теме диплома представляет научно- педагогическая (зарубежная и отечественная) периодика. Это, в частности, такие зарубежные журналы как PC Magasin, Scientific American, Fortune, Byte, High Technology, Popular Computing, Science, Personal Computing, Psychology Today, Infoworld, отечественные “Информатика и образование”, “Математика в школе”, “Мир ПК”, “Компьюьтер-пресс”, “Журнал доктора Добба”, “Монитор”, “Наука и жизнь”, “ В мире науки” и другие.
Структура работы. Диплом состоит из введения, двух глав и заключения.
Во введении обоснована актуальность исследования, определены его проблема, цель, объект, предмет, задачи, охарактеризованы методологическая база и методы исследования, раскрыта научная новизна, показаны теоретическое и практическое значение, сформулированы основные положения, выносимые на защиту диплома
В главе 1.
речь идет о компьютеризации процесса обучения в целом.
В главе 2 рассматривается своя собственная разработка компьютерного обучения, ее достоинства и недостатки, теоретическую обоснованность появления этого программного продукта.
В заключении представлены основные выводы исследования, определены проблемы для дальнейших разработок. В приложении приводятся тексты компьютерных программ.
Глава I. Роль и место компьютера в учебном процессе.
§
1. Компьютер как средство обучения.
Функции компьютера в системе образования весьма разнообразны - от управления органами народного образования в целом и отдельной школы до средств развлечения учащихся во внеурочное время. Если же говорить об основных функциях компьютера в учебном процессе, то он выступает как объект изучения и средство обучения. Каждой из этих функций соответствует свое направление компьютеризации обучения. Первая из них предполагает усвоение знаний, умений и навыков, которые позволяют успешно использовать компьютер при решении разнообразных задач, или, другими словами, овладение компьютерной грамотностью, которую называют нередко “второй грамотностью”. Второе направление видит в компьютере мощное средство обучения, которое способно значительно повысить его эффективность. Указанные два направления и составляют основу компьютеризации обучения.
Указанный аспект компьютеризации обучения охватывает первое ее направление, где компьютер выступает как объект изучения. Наша школа, как общеобразовательная, так и профессиональная, уже приступила к практической реализации этой задачи. Повсеместно введен новый учебный предмет “Основы информатики и вычислительной техники”. Имеется и второе направление компьютеризации, в рамках которого компьютер рассматривается как средство обучения. С компьютеризацией обучения во всем мире связаны надежды повысить эффективность учебного процесса, уменьшить разрыв между требованиями, которые общество предъявляет подрастающему поколению, и тем, что действительно дает школа.
Когда говорят о достоинствах компьютера в обучении, обычно имеют в виду, прежде всего дисплей. Не только схемы, график, чертежи и прочая "скучная" символика, но и рисунки, движущиеся изображения словно по мановению волшебной палочки возникают на дисплее - в цвете и со звуковым сопровождением, причем эти изображения может создавать и сам ученик. Часто указывают на возможность для школьника вести содержательную беседу, диалог с компьютером, причем ученик не только отвечает на вопросы электронного педагога, но и сам может их ставить и даже вступать с компьютером в спор. Одно из наиболее плодотворных применений компьютера в обучении - использование его как средств управления учебной деятельностью школьников. Именно в этом качестве он может наиболее существенно повысить эффективность обучения.
Школьный компьютер дает возможность учащемуся выступить в непривычной для него роли пользователя современной вычислительной техники. Эта роль изменяет весь процесс обучения. Школьник, подобно конструктору, может теперь проектировать новые объекты и анализировать их. С помощью компьютера можно будет решать задачи на поиск и устранение неисправностей в различных технических системах, получить доступ к самой различной информации. Компьютер поможет превратить эту информацию в знания, сделать их средством деятельности ученика, которое он сможет применить в учении и в труде. Чтобы эффективно использовать компьютер в учебном процессе, необходимо решить множество проблем, в первую очередь психолого-педагогических.
Научно-педагогическими предпосылками всеобщей компьютерной грамотности являются результаты психолого-педагогических исследований выполненных в двух областях - обучение школьников программированию и обучение непрофессиональных пользователей решению задач с помощью ЭВМ. В настоящее время накоплен значительный опыт обучения учащихся работе с вычислительной техникой, прежде всего программированию. В течение почти четверти века во многих странах мира исследователи изучали различные аспекты приобщения школьников к компьютеру. В нашей стране наиболее интенсивно эти вопросы изучались в Москве, Новосибирске, Киеве, Симферополе и других городах. Результаты опытной работы и специальных исследований нашли широкое освещение в педагогической печати. Большое число учебных пособий для факультативных курсов программирования дало возможность практически приобщить школьников в разных городах и селах нашей страны к изучению основ программирования. Результаты исследовательской работы позволили заложить фундамент методической системы обучения школьников ОИВТ и наметить ряд психолого-педагогических проблем которые требуют своего решения.
Основные цели компьютерной грамотности учащихся состоят в следующем. Прежде всего, надо обеспечить формирование знаний, умений и навыков, которые дают понимание возможностей компьютера и его влияния на общество в целом и на самого обучаемого. Последнее связано с пониманием того, как компьютер поможет решать разнообразные задачи, в том числе и учебные. Важнейшим компонентом компьютерной грамотности является формирование умений практически использовать компьютер при решении разнообразных учебных и трудовых задач с использованием современных средств математического обеспечения. В число этих задач обязательно должны входить задачи автоматизированного поиска информации. Компьютерная грамотность - это отнюдь не какая- то, пусть даже очень важная, добавка к системе знаний и умений, формируемых у учащихся в школе. Она должна входить в единую систему интеллектуального достояния школьника.
Есть ряд проблем общего характера, при решении которых полезно учесть опыт, накопленный в различных странах при создании аналогичных учебных курсов. В нашей стране он примыкает к предметам математического цикла. Усвоение многих тем опирается преимущественно на математику, учащиеся обучаются составлять программы решения главным образом математических и физических задач.
Математическая направленность учебного курса по компьютерной грамотности в какой-то мере объясняется тем, что в ближайшие годы этот курс у нас будут преподавать учителя математики и физики, прошедшие специальную подготовку. Однако по мере получения соответствующей подготовки всеми учителями рамки содержания учебного курса должны быть расширены.
Чтобы решение задачи с помощью компьютера, с одной стороны, способствовало развитию мышления, а с другой - не вызывало дополнительных трудностей, обусловленных ограниченными возможностями компьютера, язык программирования должен быть удобным для:
a) анализа и описания условия задачи;
b) планирования решений;
c) осуществления человеком решения задачи, включая и составление программы;
d) контроля правильности решения в целом и отдельных его этапов.
Кроме того, язык должен быть удобен для общения человека с компьютером (лингвистическим и естественным). Реализация требования психологической естественности языка программирования предполагает оптимальный выбор объекта преобразования (его называют операндом) и операций преобразования (операторов).
Дать общую оценку дидактических возможностей компьютера непросто, поскольку существует громадный разрыв не только между потенциальными и реальными возможностями, но и между возможностями различных обучающих систем. Обычно отмечаются следующие сильные стороны компьютера:
- новизна работы с компьютером вызывает у учащихся повышенный интерес к работе с ним и усиливает мотивацию учения;
- Цвет, мультипликация, музыка, звуковая речь расширяют возможности представления информации;
- Компьютер позволяет строить индивидуализированное обучение на основе модели учащегося, учитывающей историю его обучения и индивидуальные особенности памяти, восприятия, мышления;
- С помощью компьютера может быть реализована личностная манера общения;
- Компьютер активно включает учащихся в учебный процесс, позволяет им сосредоточить внимание на наиболее важных аспектах изучаемого материала, не торопит с решением;
- На много расширяются наборы применяемых учебных задач;
- Благодаря компьютеру учащиеся могут пользоваться большим объемом ранее недоступной информации.
Когда говорят о недостатках компьютеров, нередко технико-экономические факторы ставят в один ряд с психолого-педагогическими. Не всегда отделяют частные ограничения, обусловленные теоретической концепцией авторов обучающих систем или отсутствием у них методического мастерства, от принципиальных ограничений компьютера. Перефразируя известное выражение, можно сказать, что недостатки компьютера - это не до конца реализованные его возможности. Прежде всего это касается способов общения, распознавания ошибок и их причин, учета индивидуальных особенностей учащихся. Но и это нельзя считать принципиальными ограничениями компьютера. Многое объясняется недостаточной изученностью психолого-педагогических проблем обучения и психического развития школьников.
В настоящее время все согласны с тем, что учителя должны принимать самое активное участие в составлении обучающих программ. Это бесспорно, но нельзя признать верным мнение, будто учитель или группа энтузиастов смогут создать достаточно эффективные учебные материалы. Можно не сомневаться в том, что они создадут, например, программы направленные на усвоение некоторой темы или на выполнение лабораторной работы. Здесь требуется иной подход в разработке обучающих программ, обеспечивающий достижение многих, в том числе и отдаленных целей, предусматривающих построение модели учащегося и т.д. Поэтому на вопрос, может ли учитель самостоятельно создать программу компьютерного обучения для целого учебного курса, следует ответить так - может, если он является одновременно крупным специалистом соответствующей области знаний, психологом, дидактом, методистом, программистом. Если он к тому же владеет мастерством редактора, художника и может работать не мене часов в сутки. Только коллектив, куда входят специалисты указанных профилей, может взять на себя решение такой задачи, создать полноценные обучающие программы для школьников. Чтобы эффективно использовать компьютер в учебном процессе, учитель должен приобрести многие знания и умения. Первые шаги в этом направлении уже сделаны. В течении относительно короткого времени все преподаватели ОИВТ в нашей стране получили необходимую подготовку. Если речь идет о всеобщей компьютерной грамотности, то ею должны овладеть все учителя. Кроме того, те учителя, которые будут использовать компьютер в обучении, должны получить более основательную подготовку в этой области.
Так, для компьютерного обучения необходима такая трактовка метода обучения, которая допускает его операциональное описание и тем самым его технологизацию. Метод обучения реализуется прежде всего: а) в системе обучающих воздействий; б) в способе включения учащихся в учебную деятельность; в) в "поле самостоятельности" учащегося (что характеризуется допустимыми отклонениями от нормативного способа решения учебных задач, при которых учащемуся не оказывается помощь); г) в организационных формах обучения и модальности обмена информацией между обучающим устройством и обучаемым.
Сфера применения и роль вычислительных машин в повышении эффективности деятельности человека должны быть раскрыты учащимся прежде всего в процессе практического использования ЭВМ для решения разного рода задач в ряде учебных предметов. При этом необходимо, чтобы совокупность этих задач охватывала все основные области применения ЭВМ. Школьный компьютер может быть использован учащимися для вычислительной работы в курсах математики, физики, химии, анализа данных учебного эксперимента и поиска закономерностей при проведении лабораторных работ, исследовании функций в курсе алгебры, построении и анализе математических моделей.
Курс математики - научная база изучения информатики. Понятие алгоритма необходимо формировать не только на примере алгоритмов из курса математики, но и на примере алгоритмов из других сфер деятельности человека. Необходимо дать ясные представления ученику о возможности автоматизации деятельности человека на основе алгоритма. Тем самым будет понятна роль техники в решении возникающих перед человеком практических задач.
Формирование навыков работы с компьютером, освоение прикладного программного обеспечения в курсе информатики позволит реализовать вторую важнейшую задачу внедрения ЭВМ в школу. При обучении математике могут найти применения прежде всего следующие возможности современных компьютеров.
1. Быстрота и надежность обработки информации любого вида. Отметим, что для обработки числовой информации можно использовать не только микро ЭВМ, но и калькулятор.
2. Представление информации в графической форме. По своим графическим (демонстрационным) возможностям микро ЭВМ практически не уступают даже цветному телевидению, но позволяют активно влиять на ход демонстраций, что значительно повышает их методическую ценность.
3. Хранение и быстрая выдача больших объемов информации. Например, все используемые в курсе математики таблицы могут храниться в памяти компьютера. Требуемая информация выдается на экран после одного - двух нажатий клавиш.
Возможность применения микро ЭВМ на уроках зависят от программного обеспечения машин. Все используемые на занятиях программы можно условно разделить на обучающие и учебные. Обучающие программы создаются для того, чтобы заменить учителя в некоторых видах его деятельности (при объяснении нового материала, закреплении пройденного, проверки знаний и т.п.). Цель учебных программ - помочь ученику в его познавательной деятельности, работе на уроке. Использование учебных программ осуществляется при участии и под руководством учителя. С помощью учебных программ можно выполнить разнообразные вычислительные операции, анализировать функции, строить и исследовать математические модели различных процессов и явлений, использовать графику машины для повышения наглядности изучаемого материала.
Разговор о месте компьютера в учебном процессе будет неполным, если не показать его возможности в познании учащимися самих себя, в осознании своей деятельности, качеств и личностной рефлексии. Значение ее в учебной деятельности трудно переоценить. Чтобы сформировать полноценную учебную деятельность, недостаточно выработать у учащегося систему знаний о предметном мире. Он должен овладеть своей деятельностью, знать, как он анализирует условия задачи, каковы его стратегии поиска решения, то есть у него должен выработаться рефлексивный механизм саморегуляции. В конце концов всё это необходимо для формирования целостного представления о самом себе как о личности, становления устойчивого “образа Я”.
С какого возраста можно обучать детей с помощью компьютера. При решении этого вопроса следует учитывать ряд факторов, причем не только психологических. Имеет большое значение и количество компьютеров, и рост их дидактических возможностей. Если абстрагироваться от этого, то вряд ли можно говорить о каких-то противопоказаниях к применению компьютеров даже в младших классах. И теоретические доводы, и экспериментальные данные показывают, что при этом может быть получен значительный образовательный эффект. По видимому, еще в нашем веке компьютером будут пользоваться даже первоклассники. Исследовательская работа в этом направлении весьма перспективна.
Важным направлением использования ЭВМ как средства обучения является моделирования изучаемых в школе объектов и явлений с помощью ЭВМ. Современные ЭВМ представляют широкие возможности для моделирования различных явлений и процессов. Главная особенность электронной вычислительной техники - прежде всего возможность конечной реализации модельной информации на уровне точных вычислений. Точность обеспечивается математическим совершенством способов программирования и огромной легкостью памяти ЭВМ, универсальность - способностью больших вычислительных машин становиться при соответствующем программировании изоморфными любой динамической системе.
В учебном процессе ЭВМ не должна просто заменять и подменять собой классную доску, плакат, кино - и диапроектор, натуральный эксперимент. Такая замена целесообразна только тогда, когда использование ЭВМ даст весомый дополнительный эффект по сравнению с использованием других средств обучения. При этом ЭВМ и другие средства обучения должны взаимно дополнять друг друга.
§
2. Классификация учебно-программных средств.
Место компьютера в учебном процессе во многом определяется типом обучающей программы. Некоторые из них предназначены для закрепления умений и навыков. Место таких программ определить не трудно: их можно использовать после усвоения определенного теоретического материала в рамках традиционной системы обучения. Другие программы ориентированы преимущественно на усвоение новых понятий в режиме, близком к программированному обучению. Большинство их обладает ограниченными дидактическими возможностями. Компьютер здесь используется как средство программированного обучения, несколько более совершенное, чем простейшее обучающее устройство, но не допускающее развернутого диалога, содержащее, как правило, фиксированный набор обучающих воздействий. Преобладают обучающие программы, которые реализуют проблемное обучение, особенно “интеллектуальные” обучающие программы (своим названием они обязаны тому, что при их разработке использованы идеи “искусственного интеллекта”). Эти системы осуществляют рефлексивное управление учебной деятельностью, что предполагает построение модели обучаемого. Многие из них генерируют обучающие воздействия (учебные тексты, задачи, вопросы, подсказки). Такие системы, как правило, учитывают правильность ответа, но и способ решения, могут его оценивать, а некоторые - совершенствовать стратегию обучения учетом накапливаемого опыта. Имеются системы, которые могут обсуждать с учащимися не только правильность решения но и возможные варианты решения, причем в языке, близком к естественному. По мнению педагогов и психологов, знакомившихся с протоколами диалогов, создается такое впечатление, что общались ученик и учитель.
Следующий тип обучающих программ предполагает моделирование и анализ конкретных ситуаций. Такие программы особенно полезны в трудовом и профессиональном обучении, поскольку способствуют формированию умений принимать решения в различных ситуациях, в том числе и экстремальных. Число таких программ в последнее время возросло.
Наконец, можно выделить программы обучение по которым строится в виде игры. Они способствуют повышению мотивации учения (хотя следует отметить, что соревновательные мотивы, желание во что бы то ни стало победить иногда преобладают тут над познавательными мотивами, что вряд ли педагогически оправдано). Игра стимулирует инициативу и творческое мышление, способствует формированию умений совместно действовать (особенно в кооперативных играх), подчинить свои интересы общим целям. Кроме того, игра позволяет выйти за рамки определенного учебного предмета, побуждая учащихся приобретению знаний в смежных областях и практической деятельности. Игры создают предпосылки для формирования у обучаемых всевозможных стратегий решения задач и структуры знаний, которые могут быть успешно применены в различных областях. Немаловажно и то, что обучаемый может свободно принимать решения - как правильные, так и не правильные - и при этом видит, к чему приводит каждое решение
Такое обучение весьма привлекательно для школьников, и многим оно настолько нравится, что они хотели бы осуществлять все учение в форме игры. Приступая к изучению основ вычислительной техники, школьники часто задают вопрос, будут ли использованы при этом игры.
Положительно оценивая игровые программы в целом, следует учитывать, что чрезмерное увлечение играми может дать и нежелательный эффект. Развлекательность может оказать отрицательное влияние на волевые качества школьников: учение и труд не могут основываться на эмоционально привлекательной деятельности. Готовность к труду предполагает волевые усилия, готовность к выполнению даже малоинтересных, но необходимых функций.
Одной из основных достоинств моделей, реализуемых с помощью ЭВМ, состоит в гибкости и вариативности, в том, что пользователь может управлять их поведением, активно вмешиваться в работу моделей и даже сам участвовать в их создании. Если пользователь ЭВМ - учитель, то он может использовать учебную компьютерную модель (УКМ) в демонстрационных целях и перед ним открывается широкое поле для педагогического творчества. Демонстрируя модель, он может по своему усмотрению выбирать режим работы, в той или иной последовательности менять параметры исследуемого объекта, регулировать темп работы, при необходимости повторять элементы демонстрации и одновременно вести беседу с классом. Если пользователем ЭВМ является ученик, то УКМ может выступать как объект исследования (например, при выполнении фронтальной лабораторной работы или работы практикума на базе ЭВМ). При этом ученик имеет большие возможности для исследовательской, творческой деятельности, что стимулирует развитие его умственных способностей, делает усваиваемые им знания глубже и прочнее, повышает интерес к изучаемому предмету. Одновременно ученик приобретает элементарные умения работы с ЭВМ: запуск и останов программы, ввод данных, проведение несложных вычислений и др. С другой стороны, УКМ может выступать как чисто иллюстративное средство, повышающее наглядность изучаемого материала.
Работа ученика с УКМ может длиться несколько минут, а может и весь урок (лабораторная работа или работа практикума на базе ЭВМ). Но ни в том, ни в другом случае необходимы определенные указания учителя по организации учебной деятельности, во втором случае, кроме того, необходимы печатные пособия, содержащие описания лабораторной или практической работы.
Выделим те свойства УКМ, которые будут способствовать успешному применению этих моделей в учебном процессе.
1. Информативность. Под этим свойством в данном случае понимается способность моделирующей программы выдать пользователю необходимую для изучения объекта информацию, глубина и характер которой определяются дидактической целью данной учебной деятельности.
2. Наглядность. Ясно, что наглядность и информативность - не одно и то же, хотя они и тесно связаны. Информация, получаемая в процессе работы с моделью, должна иметь удобный для восприятия вид. Это обеспечивается делением информации на порции оптимального объема, выбором определенного темпа ее подачи, применением разных видов сообщения информации (тексты, формулы, графики, рисунки и др.), выделением в ней наиболее существенных элементов.
3. Динамичность. Современные ЭВМ позволяют наблюдать на экране дисплея не просто неподвижные картинки, но изображение различных явлений в их движении, развитии.
4. Возможность варьирования пользователем параметров модели и режимов работы моделирующей программы.
5. Простота управления работой УКМ.
6. Цикличность использование моделирующей программы или её частей в учебном процессе. Цикличность полезна тогда, когда исследуется зависимость одних параметров изучаемого объекта от других (например, зависимость давления газа от его объема).
Отметим, что пункты 1-3 характеризуют в основном саму УКМ, 4-6 процесс ее использования, особенности взаимодействия пользователя с моделирующей программой. Свойства 1, 2, 5 и в пункте 4 - "возможность варьирования пользователем параметров модели" - следует, на наш взгляд, признать обязательными для всех УКМ, остальные в ряде случаев могут и не быть реализованы.
Естественно, что, прежде чем приступить к созданию УКМ, необходимо хотя бы в общих чертах определить, какие учебные задачи будут решаться с помощью данной модели и каким образом, то есть будет ли ученик самостоятельно работать с моделью или же учитель будет использовать ее в демонстрационных целях и т.д. Кроме того, необходимо представлять себе вычислительные, графические и другие возможности той ЭВМ, на которой будет реализовываться разрабатываемая УКМ.
Если сходство модели и оригинала лишь качественное, то математический аппарат модели может быть значительно упрощен по сравнению с аппаратом оригинала. Если же в информацию о модели, которую получает пользователь, входят числа, графики, диаграммы, то здесь должно выполняться соответствие на уровне количественных соотношений и аппарат модели (или его часть, описывающая данное свойство физического явления или процесса) должен копировать математический аппарат оригинала (или его части). Конечно, в одной модели часть свойств может описываться лишь качественно, а другая часть - количественно.
§
3. Анализ разработок обучающих программ.
При разработке программно-педагогического обеспечения основное внимание должно уделяться идейной стороне: методическим, педагогическим и психологическим приемам, логике развертывания содержания изучаемой темы, развитию творческих способностей ученика.
Учебные пакеты можно проанализировать с различных точек зрения. Так, в многоязыковых системах возможны инструментальные принципы организации фонда пакетов- по языковым средствам реализации. Для системного программиста может оказаться интересным подразделение множества пакетов по используемым механизмам программирования. Организация, тиражирующими и распространяющим учебное программное обеспечение, и в частности учебное ППП, удобно концентрировать пакеты по типам ЭВМ, типам информационных носителей или типам используемых периферийных устройств. Школьному учителю - предметнику важна привязка того или иного пакета к темам или урокам предмета.
Наиболее полное представление о функциональных возможностях этого вида средств, программно обеспечивающих урок дает классификация школьных пакетов прикладных программ (ППП) с точки зрения их методической направленности. Обсуждаемая здесь классификация расширят и уточняет первую попытку систематизации учебных пакетов.
Приведем схему данной классификации.
Структуры верхнего уровня составляют управляющие, предметные, инструментальные и объектные пакеты.
Управляющие пакеты решают задачи управления и организации урока. Дидактика средней школы определяет некоторую общую схему организации урока, единую для всех предметов. Такая схема может быть структурирована программными средствами. Программы, реализующие последовательность выводов запланированных на уроке пакетов, образуют структурирующие пакеты. Возможность выделить структурирующие пакеты в самостоятельную группу обеспечивается тем, что соответствие между элементами структурирующего пакета и содержанием конкретного урока, для которого учитель комплектует набор планируемых пакетов, устанавливается с помощью специальных программ-формирователей - в ходе диалога пользователя - учителя с формирующим пакетом. Наконец, после урока учителю предстоит собрать информацию о ходе урока, успехах и неудачах учеников. Сбор, структурирование и форматирование итогов урока выполняют протоколирующие пакеты.
Информация, собранная протоколирующими пакетами и соответствующим образом структурированная, чаще всего непосредственно используется учителем, проводившим компьютеризованный урок. Статистическая учебная информация позволяет формировать научно обоснованные суждения о степени усвоения материала отдельными учащимися, группами, учащимися всего класса.
Выполняемая по алгоритмам - заданиям, разработанным специалистами по педагогической психологии, статистическая обработка учебной информации, которая собрана персональными машинами школьного кабинета информатики во время урока, дает возможность квалифицированно диагностировать учебный процесс, вырабатывать сообщения учителю, классному руководителю, родителям с дополнительными рекомендациями, касающимися разных аспектов учебной деятельности школьников, также физического и психологического их состояния. В такого рода программах заинтересованы психологи, исследующие школьный учебный процесс. Программные средства этих, вообще говоря, малосвязанных с содержанием конкретных уроков преобразований информации представляют собой статистические пакеты.
В том случае, когда школьный кабинет информатики представляет собой локальную сеть ПЭВМ, а не автономный набор машин, среди управляющих пакетов существенную роль начинают играть сетевые пакеты - распределители (организующие информационные потоки от учительской машины к ученическим) и интеграторы (собирающие информацию с ученических машин в учительскую).
В группе инструментальных пакетов функциональная связь программных средств с содержанием школьного пакета выраженных чаще всего неясно: основные целевые характеристики этих пакетов определены используемыми программными инструментами.
Редактирующие (текстовые) пакеты собираются из программ текстовой информации и создают комфортные условия для ученика и учителя при работе с текстами. Такие пакеты незаменимы в диктантах, они весьма удобны в изложениях и оказываются весьма удобны в сочинениях. Программы редактирующих пакетов обеспечивают вставку символов, слов, строк, их исключения, замены, всевозможные способы выделения фрагментов текстов (разрядка, назначение шрифтов, цветовое оформление) и т.д. Удобства работы с текстом на экране ПЭВМ, эстетичность восприятия, возможность бесследной корректировки ошибок, обнаруженных во время написания текста, раскрепощает ученика и значительно повышают производительность его работы над текстами, идет ли речь о рутинных видах работы (как диктанты) или о творческой деятельности (сочинения). Среди предметных областей редактирующих пакетов превалирующими являются, конечно, родной язык и литература, однако столь же активно они могут использоваться при изучении иностранных языков, математики и др.
Глава II. Разработка обучающей программы.
§
1.Структура обучающей программы для ЭВМ.
Идеей создания программы объединяющей несколько обучающих программ послужило создание нового пользовательского интерфейса. Практически неподготовленный пользователь (в частности учащийся, с минимальным багажом знаний ПК), при запуске программы буквально за считанные минуты овладевает теми знаниями, требованиями необходимыми при работе с программой, что немаловажно при использовании компьютера при обучении математики. Курс ОИВТ в средней школе изучается в 10-11 классах, а если учесть, что программа написана для 5 или 6 класса, то у учащихся возникают проблемы, “как запустить программу”.
Вариант такой программы был разработан автором дипломной работы. При ее запуске на экране появляется основное меню состоящее из пунктов:
1. Работа в системе.
2. Справка о программе
3. Выход
Пользуясь клавишами управления курсором -- учащийся устанавливает курсор на необходимый ему пункт, заранее сказанный учителем и нажимает клавишу <ENTER>.
При выборе пункта 1 (Работа в системе) на экране появляется дополнительное меню в котором учащемуся предлагается выбрать нужное задание (выбор задания аналогичен выбору пункта в главном меню). Варианты заданий будут рассмотрены в §2. Главы II.
При выборе учащимся пункта 2 (Справка о программе) на экране появляется информационно справочная система, в которой можно узнать информацию об использовании программы. Выход из информационно-справочной системы осуществляется нажатием клавиши <Esc>.
При ошибочном входе в программу можно выбрать пункт 3 (Выход).
При необходимости добавления нового задания в дополнительное меню необходимо в каталог в котором находятся файлы программы переписать файлы программ с новыми заданиями, войти в дополнительное меню и нажать клавишу <F3>. После ввода названия пункта меню необходимо написать полное имя файла, при этом следует учитывать, что расширение файла должно иметь имя EXE, COM, BAT, или программа написанная на языке QBASIC с расширением BAS.
После этих процедур в дополнительном меню появляется новый пункт.
§
2.Разработка обучающей программы по теме “Векторы на плоскости”
В основу разработки комплекса обучающих программ по математике теме “Векторы на плоскости и в пространстве” были взяты книги “Аналитическая геометрия”, “Векторы на плоскости и в пространстве”. В этих учебных пособиях указанная выше тема раскрыта достаточно полно и поэтому в этой дипломной работе мы не будем дублировать теоретический материал по математике. Отметим, что эти пособия предназначены для школьника старших классов и для студентов первых курсов высшего учебного заведения.
В работе над программой перед авторами стояла задача контроля качества пройденного материала с помотаю ЭВМ.
Несмотря на то что тема “Векторы на плоскости и в пространстве” довольно таки часто упоминалась в различных учебных изданиях и монографиях автор считает, что их собственная концепция изложения темы несколько отличается от традиционной, ей присуще некоторая своеобразность и новизна. Так, отлично от общепринятого определение вектора - не как направленного отрезка, а как представителя класса направленных отрезков, что выводит ученика на более научный уровень усвоения материала, нежели предполагает школьный и ряд вузовских учебников.
В программах присутствует несколько взаимосвязанных разделов, каждый из которых выполняет особую функцию:
-“Помощь”, раздел, который содержит в себе справочник по теоретическим основам темы “Векторы на плоскости”;
-
Теоретический тренажер по теме “Векторы на плоскости”, позволяющий проводить тестирование испытуемого по практическим навыкам решения задач.
Но это лишь описание структуры уже готовой программы. Хочется сказать, что автор делает основной упор программы на некоторые аспекты проведения текущего контроля знаний.
В настоящее время новые информационные технологии (НИТ), базирующиеся на деятельностном подходе к обучению, призваны стать мощным инструментом в совершенствовании учебно-воспитательного процесса.
Анализ советского и зарубежного опыта показывает, что проблема использования НИТ не может быть решена только за счет развития техники, так как компьютер сам по себе не определяет реальной среды обучения. Новые технологии обучения порождают новые формы учения, психологический подход к содержанию урока и специфичное учебное содержание.
Причины возникновения компьютерных учебников и их внедрение в учебный процесс связано с появлением ряда проблем, которые оказались неразрешимыми существующим методологическим подходом к уроку, учебному курсу.
Для разработки и внедрения комплекса компьютерных программ в учебный процесс предусматривалось следующее функциональное назначение:
- организация практических занятий, в которых посредством компьютерного учебника осуществлялась связь: ученик <=> компьютер <=> учитель;
- усиление пропедевтического подхода в учебном курсе;
- увеличение интенсивности учебной деятельности, как на уроке так и дома, которое диктуется внедрением компьютера в саму учебную деятельность, с одновременным снятием с учащегося рутинных работ;
- расширение класса решаемых задач с увеличением наглядности обучения;
- контроль за учебной деятельностью обучаемого;
- возможность оценки освоения материала с одновременным анализом деятельности учащегося.
Выходными данными после прохождении программы есть протокол работы учащегося написанный в доступном виде (состоит из реальных ответов ученика). На основе полученных данных можно провести контроль данных как указано выше и конечно же поставить “стандартную” школьную отметку. Важно и то, что компьютерный учебник ученик может использовать и как незаменимый помощник при подготовке к экзамену, зачету, чтобы выявить свой уровень знаний.
Структура программы. Интерфейс пользователя.
Комплекс обучающих программ по теме “Векторы на плоскости” состоит из следующих программ:
* Сложение векторов.
Учащемуся предлагается построить два вектора на координатной плоскости, ввести их координаты и посчитать координаты вектора суммы. Затем учащемуся предлагается построить вектор суммы.
* Вычитание векторов.
Учащемуся предлагается построить два вектора на координатной плоскости, ввести их координаты и посчитать координаты вектора разности. Затем учащемуся предлагается найденный вектор суммы.
* Умножение вектора на число.
Учащемуся предлагается построить вектора на координатной плоскости, ввести его координаты и посчитать координаты вектора равного произведению построенного вектора и числу загаданному компьютером. Затем учащемуся предлагается построить вектор произведения.
Каждая программа состоит из 10 однотипных заданий.
Все три программы имеют одинаковый внешний вид.
При входе в выбранную программу в правой части экрана появляется задание которое необходимо выполнить. В левой части экрана появляется изображение координатной плоскости. В правом верхнем углу нарисовано 10 яблок, которые являются индикатором степени выполняемости заданий. Если в процессе выполнения задания учащийся не допускает ошибок, то яблоко закрашивается в красный цвет, если учащийся допустил 1 ошибку яблоко приобретает желтую окраску, 2 ошибки - зеленый цвет, 3 ошибки - синий, 4 и более ошибок - белый.
Рассмотрим вариант программы (Умножение вектора на число). При запуске программы на в левой части экрана изображается координатная плоскость и стрелочка-курсор. Учащийся при помощи клавиш управления курсором перемещает стрелочку до места, где он предполагает отметить начало вектора и нажимает клавишу <ПРОБЕЛ>, тем самым отмечая на координатной плоскости начало вектора. Затем аналогичным образом он отмечает конец вектора. После этого все события переходят в правую часть экрана, где испытуемому предлагается указать координаты построенного вектора. При неправильном указании координат испытуемому предлагается повторить ввод координат.
На следующем этапе работы с программой учащемуся предлагается ввести координаты вектора произведения равного произведению построенного испытуемым вектора на число загаданное компьютером. При правильном построении на экране появляется сообщение о количестве ошибок и предлагается выполнить следующее задание.
Выйти из программы можно нажав клавишу <Esc>.
Программы построены таким образом, что от пользователя практически не требуется никаких навыков работы с персональным компьютером, благодаря удачному пользовательскому интерфейсу. В каждой программе выходными данными является количество ошибок за тестирование. Количество ошибок не говорит о точном оценивании знаний учащегося, так как неизвестен “уровень претензий” предъявляемых к тестируемому.
Благодаря обширной системе подсказок пользователь может в том или ином месте программы нажав клавишу <F1> получить всегда хорошую помощь в виде сообщения на экране.
Программа написана на языке программирования Qbasic. Программа требует для работы персональной компьютер совместимый с IBM PC386 и выше. Обязательно должен быть загружен драйвер кириллицы.
§
3. Приложения
Приложение №1
Файл - modul.bas
REM ГЛАВНОЕ МЕНЮ
CLS
FILEHLP$ = "GLMENU.HLP"
menuha:
'вывод на экран меню
baz$ = "menu.dat"
dlin = 30
m = 1
GOSUB menu
IF rez1$ = "Работа в системе" THEN GOTO rmp
IF cur = 2 THEN GOSUB reklama
IF rez1$ = "Выход" THEN CLS : SYSTEM
GOTO menuha
rmp:
REM вывод на экран меню с темами
baz$ = "prog.dat"
baz$ = parh$ + baz$
dlin = 30
GOSUB menu
finalshow:
OPEN "bat.bat" FOR OUTPUT AS #1
FOR i = 1 TO LEN(rez2$)
IF MID$(rez2$, i, 1) = "." THEN rash$ = MID$(rez2$, i + 1, 3)
NEXT i
PRINT #1, "@echo off "
IF rash$ = "bas" THEN PRINT #1, "@qbasic.exe /run "; rez2$
IF rash$ = "com" OR rash$ = "exe" OR rash$ = "bat" THEN PRINT #1, rez2$
PRINT #1, "@del bat.bat"
CLOSE #1
CLS
SYSTEM
reklama:
OPEN FILEHLP$ FOR INPUT AS #1
S = 0
DO
ON ERROR GOTO 0
LINE INPUT #1, stran$
S = S + 1
LOOP UNTIL EOF(1)
CLOSE #1
IF FIX(S / 18) >= (S / 18) THEN KS = FIX(S / 18) ELSE KS = FIX(S / 18) + 1
DIM stran$(S)
OPEN FILEHLP$ FOR INPUT AS #1
FOR i = 1 TO S
ON ERROR GOTO 0
LINE INPUT #1, stran$(i)
NEXT i
CLOSE #1
NS = 1
GOSUB stran
obrabotka:
A$ = INKEY$
IF A$ = CHR$(0) + CHR$(73) THEN NS = NS - 1: GOSUB stran
IF A$ = CHR$(0) + CHR$(81) THEN NS = NS + 1: GOSUB stran
IF A$ = CHR$(27) THEN ERASE stran$: RETURN
GOTO obrabotka
stran:
IF NS < 1 THEN NS = 1: RETURN
IF NS > KS THEN NS = KS: RETURN
n = 18 * NS
'SLC:
LOCATE 1, 1
PRINT "г"; STRING$(64, "="); "T=============¬"
PRINT "¦"; STRING$(15, " "); : COLOR 15, 0: PRINT "ИНФОРМАЦИОННО - СПРАВОЧНАЯ СИСТЕМА"; : COLOR 7, 0: PRINT STRING$(15, " ");
IF NS < 10 THEN PRINT "¦ Страница "; NS; "¦" ELSE PRINT "¦ Страница"; NS; "¦"
PRINT "¦"; STRING$(64, " "); "L=============¦"
FOR i = n - 17 TO n
IF i > S THEN PRINT "¦"; STRING$(78, " "); "¦" ELSE PRINT "¦ "; stran$(i); STRING$((76 - LEN(stran$(i))), " "); "¦"
NEXT i
PRINT "L"; STRING$(78, "="); "-"
COLOR 1, 7: PRINT " Выход - Esc ";
IF NS = 1 THEN COLOR 8, 7 ELSE COLOR 1, 7
PRINT " Предыдущая страница - PageUp ";
IF NS = KS THEN COLOR 8, 7 ELSE COLOR 1, 7
PRINT " Следующая страница - PageDown "
COLOR 7, 0
RETURN
menu:
COLOR 7, 0
CLS
OPEN baz$ FOR INPUT AS #2
DIM mas$(150, 2)
INPUT #2, R$
i = 0
DO
i = i + 1
INPUT #2, mas$(i, 1)
INPUT #2, mas$(i, 2)
LOOP UNTIL EOF(2)
CLOSE #2
m = i
IF m > 10 THEN m = 10
R = INT((25 - m) / 2)
nashalo:
u = 1: cur = 1: cur1 = 1
uold = LEN(R$): uold = dlin - uold: uuold = INT(uold / 2): uuuold = uold - uuold
R1$ = STRING$(uuuold, "=") + R$ + STRING$(uuold, "=") ' Формирование заголовка таблицы
tablisha:
LOCATE R, 1
PRINT STRING$(21, " "); "г"; R1$; "¬"
PRINT STRING$(21, " "); "¦"; STRING$(dlin, " "); "¦"
schet = 0
FOR t = u TO u + m - 1
schet = schet + 1
COLOR 7, 0: PRINT STRING$(21, " "); "¦";
IF cur1 = schet THEN COLOR 0, 7
' установка стандартной длинны фразы
uold = LEN(mas$(t, 1)): uold = dlin - uold: uuold = INT(uold / 2): uuuold = uold - uuold
t$ = STRING$(uuuold, " ") + mas$(t, 1) + STRING$(uuold, " ")
PRINT t$;
COLOR 7, 0: PRINT "¦"
NEXT t
PRINT STRING$(21, " "); "L"; STRING$(dlin, "="); "-"
GOSUB smotr
chetire:
kbd$ = INKEY$
flag = 0
SELECT CASE kbd$
CASE CHR$(0) + "H": cur = cur - 1: cur1 = cur1 - 1: flag = 1
CASE CHR$(0) + "P": cur = cur + 1: cur1 = cur1 + 1: flag = 1
CASE CHR$(0) + CHR$(61): GOTO dopoln
CASE CHR$(13): GOTO final
CASE CHR$(27): CLS : SYSTEM
END SELECT
IF flag = 0 THEN GOTO chetire
IF cur = 0 THEN u = i - m + 1: cur = i: cur1 = m: GOTO tablisha
IF cur = i + 1 THEN GOTO nashalo
IF cur1 = 0 THEN u = u - 1: cur1 = 1
IF cur1 = m + 1 THEN : u = u + 1: cur1 = m
GOTO tablisha
smotr:
LOCATE 1, 1: COLOR 15, 3: PRINT STRING$(80, " ")
ddl = (80 - LEN(mas$(cur, 2))) / 2
LOCATE 1, 1: COLOR 15, 3: PRINT STRING$(ddl, " "); mas$(cur, 2)
COLOR 7, 0
RETURN
final:
rez1$ = mas$(cur, 1)
rez2$ = mas$(cur, 2)
ERASE mas$
RETURN
dopoln:
CLS
LOCATE 10, 20: COLOR 7, 0: PRINT "Добавление новой темы в меню"
LOCATE 12, 10: COLOR 7, 0: PRINT "Для отмены нажмите <Esc> или <F3> для продолжения"
mmm:
kbd$ = INKEY$
SELECT CASE kbd$
CASE CHR$(0) + CHR$(61): GOSUB pop
CASE CHR$(27): CLS : GOTO rmp
END SELECT
GOTO mmm
pop:
CLS
LOCATE 10, 10: COLOR 7, 0
PRINT "Введите название новой темы"
LOCATE 12, 10
PRINT "Введите имя файла"
COLOR 0, 7
LOCATE 10, 40: PRINT STRING$(31, " ")
LOCATE 12, 40: PRINT STRING$(31, " ")
LOCATE 10, 40: INPUT "", a1$
LOCATE 12, 40: INPUT "", a2$
ERASE mas$
CLS
OPEN baz$ FOR APPEND AS #1
PRINT #1, a1$
PRINT #1, a2$
CLOSE #1
GOTO rmp
Приложение №2
Файл - vector1.bas
REM СУММА ВЕКТОРОВ
'Константы
speed = 800 'Скорость
FILEHLP$ = "vector.hlp"
filerez$ = "vector.rez"
oshibka = 0 'Общее количество ошибок
k = 10 'Длина пера вектора
k1 = 3 'Ширина пера вектора
radius = 2 'Радиус начала вектора
zakr = 1 'Закраска начала вектора
zakrstr = 1 'Закраска стрелки вектора
c = 12 'Цвет стрелки - курсора
curx = 0: cury = 0 'Установка начальниых координат положения стрелки
DIM colora(10)
DIM slovo$(5)
DIM zapusk$(18)
SCREEN 9, , 0, 0
OPEN filerez$ FOR APPEND AS #3
PRINT #3, DATE$; " СТАРТ ПРОГРАММЫ < СЛОЖЕНИЕ ВЕКТОРОВ > - "; TIME$;
GOSUB coord 'Построение координатной плоскости
GOSUB zapusk 'Страничка с заданиями
FOR shag = 1 TO 10
PRINT #3, : PRINT #3, "Задание - "; shag
glupo = 0
GOSUB coord 'Построение координатной плоскости
p = 1: GOSUB slov
FOR ccc = 10 TO 13 STEP 3
GOSUB telo
IF ccc = 10 THEN abx = curx - curoldx: aby = cury - curoldy ELSE cdx = curx - curoldx: cdy = cury - curoldy
NEXT ccc
PRINT #3, "AB("; abx; ","; aby; ")"; TAB(15); "; CD("; cdx; ",&quo
GOSUB analis
NEXT shag
GOSUB coord
LOCATE 10, 53: PRINT "Вы допустили "; oshibka; " ошибок"
PRINT #3,
PRINT #3, "Количество допущенных ошибок - "; oshibka
PRINT #3,
CLOSE #3
DO WHILE INKEY$ = "": LOOP
GOTO alis
telo:
GOSUB preobr:
GOSUB zapomin ' Запоминает
GOSUB strelka ' Рисует стрелку
GOSUB vibor '
GOSUB oldstrelka ' Закрашивает место, где была стрелка
IF fl = 2 THEN fl = 0: RETURN
GOTO telo
vibor:
flag = 0
kbd$ = INKEY$
SELECT CASE kbd$
CASE CHR$(0) + "H": IF cury < 10 THEN cury = cury + 1: flag = 1
CASE CHR$(0) + "P": IF cury > -10 THEN cury = cury - 1: flag = 1
CASE CHR$(0) + "K": IF curx > -11 THEN curx = curx - 1: flag = 1
CASE CHR$(0) + "M": IF curx < 11 THEN curx = curx + 1: flag = 1
CASE CHR$(0) + CHR$(59): GOSUB reklama
CASE CHR$(32): GOSUB final: IF fl = 2 THEN RETURN
CASE CHR$(27): GOSUB vihod
END SELECT
IF flag = 0 THEN GOTO vibor
kx = x: ky = y
GOSUB preobr
RETURN
strelka:
'==== x y c ============ Рисует стрелку ========
PSET (x, y), c
DRAW "r6g2f4g2h4g2u6"
PAINT (x + 1, y + 1), c
PSET (x, y), 15
DRAW "r6g2f4g2"
RETURN
zapomin:
'==== x y ============ zap(9,9) ========
DIM zap(9, 9)
FOR i = 1 TO 9
FOR j = 1 TO 9
zap(i, j) = POINT(i + x - 1, j + y - 1)
NEXT j
NEXT i
RETURN
oldstrelka:
'==== kx ky zap(9,9) ==== Рисует ====
FOR i = 1 TO 9
FOR j = 1 TO 9
PSET (i + kx - 1, j + ky - 1), zap(i, j)
NEXT j
NEXT i
ERASE zap
RETURN
preobr:
x = curx * 16 + 203
y = 160 - cury * 14
RETURN
final:
kx = x: ky = y: GOSUB oldstrelka
IF fl = 1 THEN x2 = x: y2 = y: GOSUB strvect: IF ccc = 10 THEN p = 2: GOSUB slov ELSE p = 5: GOSUB slov
IF fl = 0 THEN curoldx = curx: curoldy = cury: x1 = x: y1 = y: CIRCLE (x, y), radius, ccc: IF zakr = 1 THEN PAINT (x, y), ccc
IF ccc = 10 AND fl = 0 THEN p = 3: GOSUB slov
IF ccc = 13 AND fl = 0 THEN p = 4: GOSUB slov
IF ccc = 14 AND fl = 0 THEN p = 6: GOSUB slov
fl = fl + 1
GOSUB zapomin: GOSUB strelka: RETURN
coord:
COLOR 15: CLS
'LINE (0, 0)-(639, 349), 15, B
LINE (10, 10)-(395, 311), 15, B
LINE (10, 10)-(394, 310), 7, B
LINE (400, 10)-(629, 311), 15, B
LINE (400, 10)-(628, 310), 7, B
FOR g = 27 TO 380 STEP 16
LINE (g, 15)-(g, 305), 8, B
NEXT g
FOR g = 20 TO 300 STEP 14
LINE (19, g)-(387, g), 8, B
NEXT g
FOR g = -10 TO 10 STEP 2
LOCATE 13, g * 2 + 25
IF g <> 0 THEN PRINT g
NEXT g
FOR g = -10 TO 10 STEP 2
LOCATE 12 - g, 24
PRINT g
NEXT g
LINE (19, 160)-(387, 160), 7, B
LINE (384, 158)-(387, 160), 7
LINE (384, 162)-(387, 160), 7
LINE (203, 15)-(203, 305), 7, B
LINE (200, 18)-(203, 15), 7
LINE (206, 18)-(203, 15), 7
LOCATE 2, 28
PRINT "y"
LOCATE 11, 49
PRINT "x"
shar:
FOR c = 1 TO 10
CIRCLE (405 + c * 20, 41), 7, 15
LINE (405 + c * 20, 38)-(410 + c * 20, 31), 15
PAINT (405 + c * 20, 39), colora(c), 15
NEXT c
RETURN
strvect:
dx = SQR((x2 - x1) ^ 2)
dy = SQR((y2 - y1) ^ 2)
df = SQR((dx * dx) + (dy * dy))
IF df = 0 THEN df = 1
dsx = k * dx / df
dsy = k * dy / df
dxx = k1 * dy / df
dyy = k1 * dx / df
IF x1 < x2 THEN x3 = x2 - dsx: x4 = x2 - dsx / 2 ELSE x3 = x2 + dsx: x4 = x2 + dsx / 2
IF y1 < y2 THEN y3 = y2 - dsy: y4 = y2 - dsy / 2 ELSE y3 = y2 + dsy: y4 = y2 + dsy / 2
IF SGN(x1 - x2) = SGN(y1 - y2) THEN x31 = x3 - dxx: y31 = y3 + dyy: x32 = x3 + dxx: y32 = y3 - dyy
IF SGN(x1 - x2) * (-1) = SGN(y1 - y2) THEN x31 = x3 + dxx: y31 = y3 + dyy: x32 = x3 - dxx: y32 = y3 - dyy
IF SGN(x1 - x2) = 0 OR SGN(y1 - y2) = 0 THEN x31 = x3 - dxx: y31 = y3 - dyy: x32 = x3 + dxx: y32 = y3 + dyy
LINE (x31, y31)-(x2, y2), ccc
LINE (x32, y32)-(x2, y2), ccc
IF zakrstr = 1 THEN LINE (x32, y32)-(x31, y31), ccc: PAINT (x4, y4), ccc
LINE (x1, y1)-(x2, y2), ccc
RETURN
reklama:
SCREEN 9, , 1, 1
COLOR 7, 0
OPEN FILEHLP$ FOR INPUT AS #1
S = 0
DO
ON ERROR GOTO 0
LINE INPUT #1, stran$
S = S + 1
LOOP UNTIL EOF(1)
CLOSE #1
IF FIX(S / 18) >= (S / 18) THEN KS = FIX(S / 18) ELSE KS = FIX(S / 18) + 1
DIM stran$(S)
OPEN FILEHLP$ FOR INPUT AS #1
FOR i = 1 TO S
ON ERROR GOTO 0
LINE INPUT #1, stran$(i)
NEXT i
CLOSE #1
NS = 1
GOSUB stran
obrabotka:
a$ = INKEY$
IF a$ = CHR$(0) + CHR$(73) THEN NS = NS - 1: GOSUB stran
IF a$ = CHR$(0) + CHR$(81) THEN NS = NS + 1: GOSUB stran
IF a$ = CHR$(27) THEN ERASE stran$: SCREEN 9, , 0, 0: RETURN
GOTO obrabotka
stran:
IF NS < 1 THEN NS = 1: RETURN
IF NS > KS THEN NS = KS: RETURN
n = 18 * NS
LOCATE 1, 1
PRINT "г"; STRING$(64, "="); "T=============¬"
PRINT "¦"; STRING$(15, " "); : COLOR 15, 0: PRINT "ИНФОРМАЦИОННО - СПРАВОЧНАЯ СИСТЕМА"; : COLOR 7, 0: PRINT STRING$(15, " ");
IF NS < 10 THEN PRINT "¦ Страница "; NS; "¦" ELSE PRINT "¦ Страница"; NS; "¦"
PRINT "¦"; STRING$(64, " "); "L=============¦"
FOR i = n - 17 TO n
IF i > S THEN PRINT "¦"; STRING$(78, " "); "¦" ELSE PRINT "¦ "; stran$(i); STRING$((76 - LEN(stran$(i))), " "); "¦"
NEXT i
PRINT "L"; STRING$(78, "="); "-"
'COLOR 1, 7:
PRINT " Выход - Esc ";
'IF NS = 1 THEN COLOR 8, 7 ELSE COLOR 1, 7
PRINT " Предыдущая страница - PageUp ";
'IF NS = KS THEN COLOR 8, 7 ELSE COLOR 1, 7
PRINT " Следующая страница - PageDown "
COLOR 7, 0
RETURN
analis:
PRINT #3,
PRINT #3, "Варианты ответов ученика:";
ccc = 10
COLOR ccc
LOCATE 9, 58: PRINT "__"
LOCATE 10, 58: PRINT "AB ( ; )"
PRINT #3,
PRINT #3, "координата x вектора AB ";
vectx1:
p = 11: GOSUB slov
mm = 3: nx = 10: ny = 63
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF abx <> VAL(m$) THEN GOSUB glupo: GOTO vectx1
PRINT #3,
PRINT #3, "координата y вектора AB ";
vecty1:
p = 12: GOSUB slov
mm = 3: nx = 10: ny = 69
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF aby <> VAL(m$) THEN GOSUB glupo: GOTO vecty1
ccc = 13
COLOR ccc
LOCATE 11, 58: PRINT "__"
LOCATE 12, 58: PRINT "CD ( ; )"
PRINT #3,
PRINT #3, "координата x вектора CD ";
vectx2:
p = 13: GOSUB slov
mm = 3: nx = 12: ny = 63
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF cdx <> VAL(m$) THEN GOSUB glupo: GOTO vectx2
PRINT #3,
PRINT #3, "координата y вектора CD ";
vecty2:
p = 14: GOSUB slov
mm = 3: nx = 12: ny = 69
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF cdy <> VAL(m$) THEN GOSUB glupo: GOTO vecty2
ccc = 14
COLOR ccc
LOCATE 13, 53: PRINT "__ __ _"
LOCATE 14, 53: PRINT "AB+CD=m ( ; )"
PRINT #3,
PRINT #3, "координата x вектора m ";
vectx3:
p = 15: GOSUB slov
mm = 3: nx = 14: ny = 63
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF cdx + abx <> VAL(m$) THEN GOSUB glupo: GOTO vectx3
PRINT #3,
PRINT #3, "координата y вектора m ";
vecty3:
p = 16: GOSUB slov
mm = 3: nx = 14: ny = 69
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF cdy + aby <> VAL(m$) THEN GOSUB glupo: GOTO vecty3
ccc = 14: p = 5: GOSUB slov
vectm:
GOSUB telo
'Обработка ошибки правильности построения вектора m
mmx = curx - curoldx: mmy = cury - curoldy
IF mmx <> abx + cdx OR mmy <> aby + cdy THEN GOSUB glupo: PRINT #3, : PRINT #3, "Построил вектор m("; mmx; ","; mmy; ")"; : CIRCLE (x1, y1), radius, 12: ccccc = ccc: ccc = 12: GOSUB strvect: ccc = ccccc: GOTO vectm
p = 20: GOSUB slov
IF glupo = 0 THEN colora(shag) = 4: coob$ = " Нет ошибок ": GOSUB shar
IF glupo = 1 THEN colora(shag) = 14: coob$ = " Одна ошибка ": GOSUB shar
IF glupo = 2 THEN colora(shag) = 2: coob$ = " Две ошибки! ": GOSUB shar
IF glupo = 3 THEN colora(shag) = 9: coob$ = " Три ошибки! ": GOSUB shar
IF glupo > 3 THEN colora(shag) = 15: coob$ = " Много ошибок!!! ": GOSUB shar
oshibka = oshibka + glupo
glupo = 0
COLOR colora(shag): LOCATE 20, 52: PRINT coob$: COLOR ccc
DO WHILE INKEY$ = "": LOOP
RETURN
napis:
LOCATE nx, ny: PRINT STRING$(mm, " ")
napis1:
k$ = ""
DO WHILE k$ = ""
LOCATE nx, ny: PRINT CHR$(95)
k$ = INKEY$
IF k$ = CHR$(0) + CHR$(59) THEN GOSUB reklama
LOOP
k = ASC(k$)
IF k = 13 AND m <> 0 THEN LOCATE nx, ny: PRINT " ": RETURN
IF k = 27 THEN GOSUB vihod
IF k = 8 AND m <> 0 THEN m = m - 1: m$ = LEFT$(m$, m): LOCATE nx, ny: ny = ny - 1: PRINT " ": GOTO napis1
IF INSTR(1, l$, k$) = 0 OR m = mm THEN GOTO napis1
m = m + 1:
m$ = m$ + k$: LOCATE nx, ny: PRINT k$: ny = ny + 1
GOTO napis1
vihod:
vih$ = ""
SCREEN 9, , 1, 1
CLS
LOCATE 10, 10
PRINT "Выйти из программы - <Esc>"
DO WHILE vih$ = ""
vih$ = INKEY$
IF vih$ = CHR$(27) THEN CLS : PRINT #3, "Выход из программы по желанию пользователя - "; TIME$: PRINT #3, : CLOSE #3: GOTO alis
LOOP
SCREEN 9, , 0, 0
RETURN
alis:
CLS
LOCATE 10, 30: PRINT "GOOD BYE !!!"
DO WHILE INKEY$ = "": LOOP
FOR i = 1 TO 120
LINE (i + 200, 140)-(i + 240, 120), 0
SOUND i * 3 + 1100, .05
FOR j = 1 TO speed: NEXT j
NEXT i
SYSTEM
slov:
COLOR 15
IF p < 10 THEN slovo$(1) = " Перемещай стрелку по ": slovo$(2) = " координатной плоскости ": slovo$(3) = "пользуясь клавишами " + CHR$(27) + CHR$(24) + CHR$(25) + "->": slovo$(4) = " Клавишей <ПРОБЕЛ> укажи "
IF p = 1 THEN slovo$(5) = " начало вектора AB "
IF p = 2 THEN slovo$(5) = " начало вектора CD "
IF p = 3 THEN slovo$(5) = " конец вектора AB "
IF p = 4 THEN slovo$(5) = " конец вектора CD "
IF p = 5 THEN slovo$(5) = " начало вектора m "
IF p = 6 THEN slovo$(5) = " конец вектора m "
IF p > 10 THEN slovo$(1) = " Введи с клавиатуры ": slovo$(3) = " и нажми <Enter> ": slovo$(4) = " если ошибся ": slovo$(5) = " нажми <== "
IF p = 11 THEN slovo$(2) = " координату x вектора AB "
IF p = 12 THEN slovo$(2) = " координату y вектора AB "
IF p = 13 THEN slovo$(2) = " координату x вектора CD "
IF p = 14 THEN slovo$(2) = " координату y вектора CD "
IF p = 15 THEN slovo$(2) = " координату x вектора m "
IF p = 16 THEN slovo$(2) = " координату y вектора m "
IF p = 20 THEN FOR cl = 1 TO 5: slovo$(cl) = " ": NEXT cl
LINE (403, 235)-(626, 309), 15, B
LINE (403, 235)-(625, 308), 7, B
PAINT (450, 240), 0, 7
FOR lo = 18 TO 22
LOCATE lo, 52: PRINT slovo$(lo - 17)
NEXT lo
LOCATE 6, 52: PRINT "<F1>-Помощь <Esc>-Выход"
LINE (403, 65)-(626, 89), 15, B
LINE (403, 65)-(625, 88), 7, B
COLOR ccc
RETURN
zapusk:
zapusk$(1) = " СЛОЖЕНИЕ ВЕКТОРОВ "
zapusk$(2) = " "
zapusk$(3) = " Тебе предстоит: "
zapusk$(4) = " выполнить 10 заданий "
zapusk$(5) = " "
zapusk$(6) = " В каждом задании нужно: "
zapusk$(7) = "1 - построить на "
zapusk$(8) = " координатной плоскости "
zapusk$(9) = " два вектора, указав "
zapusk$(10) = " их начало и конец "
zapusk$(11) = "2 - ввести их координаты "
zapusk$(12) = "3 - сложить построенные "
zapusk$(13) = " векторы и ввести "
zapusk$(14) = " координаты вектора суммы"
zapusk$(15) = "4 - построить вектор суммы"
zapusk$(16) = " указав начало вектора "
zapusk$(17) = " в произвольной точке "
zapusk$(18) = " "
FOR ii = 1 TO 26
FOR ki = speed TO speed * 2: BEEP: NEXT ki
FOR ji = 1 TO 18
LOCATE ji + 4, 51 + ii
PRINT MID$(zapusk$(ji), ii, 1)
NEXT ji
NEXT ii
DO WHILE INKEY$ = "": LOOP
FOR ii = 26 TO 1 STEP -1
FOR ki = speed TO speed * 2: BEEP: NEXT ki
FOR ji = 1 TO 18
LOCATE ji + 4, 51 + ii
PRINT " "
NEXT ji
NEXT ii
RETURN
glupo:
glupo = glupo + 1
FOR clor = 15 TO 0 STEP -1
PLAY "n60l20"
COLOR clor
LOCATE 16, 53: PRINT "ОШИБКА! ПОВТОРИТЕ ВВОД"
NEXT clor
COLOR ccc
RETURN
Приложение №3
Файл - vector2.bas
REM РАЗНОСТЬ ВЕКТОРОВ
'Константы
speed = 800 'Скорость
FILEHLP$ = "vector.hlp"
filerez$ = "vector.rez"
oshibka = 0 'Общее количество ошибок
k = 10 'Длина пера вектора
k1 = 3 'Ширина пера вектора
radius = 2 'Радиус начала вектора
zakr = 1 'Закраска начала вектора
zakrstr = 1 'Закраска стрелки вектора
c = 12 'Цвет стрелки - курсора
curx = 0: cury = 0 'Установка начальниых координат положения стрелки
DIM colora(10)
DIM slovo$(5)
DIM zapusk$(18)
SCREEN 9, , 0, 0
OPEN filerez$ FOR APPEND AS #3
PRINT #3, DATE$; " СТАРТ ПРОГРАММЫ < РАЗНОСТЬ ВЕКТОРОВ > - "; TIME$;
GOSUB coord 'Построение координатной плоскости
GOSUB zapusk 'Страничка с заданиями
FOR shag = 1 TO 10
PRINT #3, : PRINT #3, "Задание - "; shag
glupo = 0
GOSUB coord 'Построение координатной плоскости
p = 1: GOSUB slov
FOR ccc = 10 TO 13 STEP 3
GOSUB telo
IF ccc = 10 THEN abx = curx - curoldx: aby = cury - curoldy ELSE cdx = curx - curoldx: cdy = cury - curoldy
NEXT ccc
PRINT #3, "AB("; abx; ","; aby; ")"; TAB(15); "; CD("; cdx; ","; cdy; ")"; " ;"; TAB(34); "m("; cdx - abx; ", "; cdy - aby; ")";
GOSUB analis
NEXT shag
GOSUB coord
LOCATE 10, 53: PRINT "Вы допустили "; oshibka; " ошибок"
PRINT #3,
PRINT #3, "Количество допущенных ошибок - "; oshibka
PRINT #3,
CLOSE #3
DO WHILE INKEY$ = "": LOOP
GOTO alis
telo:
GOSUB preobr:
GOSUB zapomin ' Запоминает
GOSUB strelka ' Рисует стрелку
GOSUB vibor '
GOSUB oldstrelka ' Закрашивает место, где была стрелка
IF fl = 2 THEN fl = 0: RETURN
GOTO telo
vibor:
flag = 0
kbd$ = INKEY$
SELECT CASE kbd$
CASE CHR$(0) + "H": IF cury < 10 THEN cury = cury + 1: flag = 1
CASE CHR$(0) + "P": IF cury > -10 THEN cury = cury - 1: flag = 1
CASE CHR$(0) + "K": IF curx > -11 THEN curx = curx - 1: flag = 1
CASE CHR$(0) + "M": IF curx < 11 THEN curx = curx + 1: flag = 1
CASE CHR$(0) + CHR$(59): GOSUB reklama
CASE CHR$(32): GOSUB final: IF fl = 2 THEN RETURN
CASE CHR$(27): GOSUB vihod
END SELECT
IF flag = 0 THEN GOTO vibor
kx = x: ky = y
GOSUB preobr
RETURN
strelka:
'==== x y c ============ Рисует стрелку ========
PSET (x, y), c
DRAW "r6g2f4g2h4g2u6"
PAINT (x + 1, y + 1), c
PSET (x, y), 15
DRAW "r6g2f4g2"
RETURN
zapomin:
'==== x y ============ zap(9,9) ========
DIM zap(9, 9)
FOR i = 1 TO 9
FOR j = 1 TO 9
zap(i, j) = POINT(i + x - 1, j + y - 1)
NEXT j
NEXT i
RETURN
oldstrelka:
'==== kx ky zap(9,9) ==== Рисует ====
FOR i = 1 TO 9
FOR j = 1 TO 9
PSET (i + kx - 1, j + ky - 1), zap(i, j)
NEXT j
NEXT i
ERASE zap
RETURN
preobr:
x = curx * 16 + 203
y = 160 - cury * 14
RETURN
final:
kx = x: ky = y: GOSUB oldstrelka
IF fl = 1 THEN x2 = x: y2 = y: GOSUB strvect: IF ccc = 10 THEN p = 2: GOSUB slov ELSE p = 5: GOSUB slov
IF fl = 0 THEN curoldx = curx: curoldy = cury: x1 = x: y1 = y: CIRCLE (x, y), radius, ccc: IF zakr = 1 THEN PAINT (x, y), ccc
IF ccc = 10 AND fl = 0 THEN p = 3: GOSUB slov
IF ccc = 13 AND fl = 0 THEN p = 4: GOSUB slov
IF ccc = 14 AND fl = 0 THEN p = 6: GOSUB slov
fl = fl + 1
GOSUB zapomin: GOSUB strelka: RETURN
coord:
COLOR 15: CLS
'LINE (0, 0)-(639, 349), 15, B
LINE (10, 10)-(395, 311), 15, B
LINE (10, 10)-(394, 310), 7, B
LINE (400, 10)-(629, 311), 15, B
LINE (400, 10)-(628, 310), 7, B
FOR g = 27 TO 380 STEP 16
LINE (g, 15)-(g, 305), 8, B
NEXT g
FOR g = 20 TO 300 STEP 14
LINE (19, g)-(387, g), 8, B
NEXT g
FOR g = -10 TO 10 STEP 2
LOCATE 13, g * 2 + 25
IF g <> 0 THEN PRINT g
NEXT g
FOR g = -10 TO 10 STEP 2
LOCATE 12 - g, 24
PRINT g
NEXT g
LINE (19, 160)-(387, 160), 7, B
LINE (384, 158)-(387, 160), 7
LINE (384, 162)-(387, 160), 7
LINE (203, 15)-(203, 305), 7, B
LINE (200, 18)-(203, 15), 7
LINE (206, 18)-(203, 15), 7
LOCATE 2, 28
PRINT "y"
LOCATE 11, 49
PRINT "x"
shar:
FOR c = 1 TO 10
CIRCLE (405 + c * 20, 41), 7, 15
LINE (405 + c * 20, 38)-(410 + c * 20, 31), 15
PAINT (405 + c * 20, 39), colora(c), 15
NEXT c
RETURN
strvect:
dx = SQR((x2 - x1) ^ 2)
dy = SQR((y2 - y1) ^ 2)
df = SQR((dx * dx) + (dy * dy))
IF df = 0 THEN df = 1
dsx = k * dx / df
dsy = k * dy / df
dxx = k1 * dy / df
dyy = k1 * dx / df
IF x1 < x2 THEN x3 = x2 - dsx: x4 = x2 - dsx / 2 ELSE x3 = x2 + dsx: x4 = x2 + dsx / 2
IF y1 < y2 THEN y3 = y2 - dsy: y4 = y2 - dsy / 2 ELSE y3 = y2 + dsy: y4 = y2 + dsy / 2
IF SGN(x1 - x2) = SGN(y1 - y2) THEN x31 = x3 - dxx: y31 = y3 + dyy: x32 = x3 + dxx: y32 = y3 - dyy
IF SGN(x1 - x2) * (-1) = SGN(y1 - y2) THEN x31 = x3 + dxx: y31 = y3 + dyy: x32 = x3 - dxx: y32 = y3 - dyy
IF SGN(x1 - x2) = 0 OR SGN(y1 - y2) = 0 THEN x31 = x3 - dxx: y31 = y3 - dyy: x32 = x3 + dxx: y32 = y3 + dyy
LINE (x31, y31)-(x2, y2), ccc
LINE (x32, y32)-(x2, y2), ccc
IF zakrstr = 1 THEN LINE (x32, y32)-(x31, y31), ccc: PAINT (x4, y4), ccc
LINE (x1, y1)-(x2, y2), ccc
RETURN
reklama:
SCREEN 9, , 1, 1
COLOR 7, 0
OPEN FILEHLP$ FOR INPUT AS #1
S = 0
DO
ON ERROR GOTO 0
LINE INPUT #1, stran$
S = S + 1
LOOP UNTIL EOF(1)
CLOSE #1
IF FIX(S / 18) >= (S / 18) THEN KS = FIX(S / 18) ELSE KS = FIX(S / 18) + 1
DIM stran$(S)
OPEN FILEHLP$ FOR INPUT AS #1
FOR i = 1 TO S
ON ERROR GOTO 0
LINE INPUT #1, stran$(i)
NEXT i
CLOSE #1
NS = 1
GOSUB stran
obrabotka:
a$ = INKEY$
IF a$ = CHR$(0) + CHR$(73) THEN NS = NS - 1: GOSUB stran
IF a$ = CHR$(0) + CHR$(81) THEN NS = NS + 1: GOSUB stran
IF a$ = CHR$(27) THEN ERASE stran$: SCREEN 9, , 0, 0: RETURN
GOTO obrabotka
stran:
IF NS < 1 THEN NS = 1: RETURN
IF NS > KS THEN NS = KS: RETURN
n = 18 * NS
LOCATE 1, 1
PRINT "г"; STRING$(64, "="); "T=============¬"
PRINT "¦"; STRING$(15, " "); : COLOR 15, 0: PRINT "ИНФОРМАЦИОННО - СПРАВОЧНАЯ СИСТЕМА"; : COLOR 7, 0: PRINT STRING$(15, " ");
IF NS < 10 THEN PRINT "¦ Страница "; NS; "¦" ELSE PRINT "¦ Страница"; NS; "¦"
PRINT "¦"; STRING$(64, " "); "L=============¦"
FOR i = n - 17 TO n
IF i > S THEN PRINT "¦"; STRING$(78, " "); "¦" ELSE PRINT "¦ "; stran$(i); STRING$((76 - LEN(stran$(i))), " "); "¦"
NEXT i
PRINT "L"; STRING$(78, "="); "-"
'COLOR 1, 7:
PRINT " Выход - Esc ";
'IF NS = 1 THEN COLOR 8, 7 ELSE COLOR 1, 7
PRINT " Предыдущая страница - PageUp ";
'IF NS = KS THEN COLOR 8, 7 ELSE COLOR 1, 7
PRINT " Следующая страница - PageDown "
COLOR 7, 0
RETURN
analis:
PRINT #3,
PRINT #3, "Варианты ответов ученика:";
ccc = 10
COLOR ccc
LOCATE 9, 58: PRINT "__"
LOCATE 10, 58: PRINT "AB ( ; )"
PRINT #3,
PRINT #3, "координата x вектора AB ";
vectx1:
p = 11: GOSUB slov
mm = 3: nx = 10: ny = 63
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF abx <> VAL(m$) THEN GOSUB glupo: GOTO vectx1
PRINT #3,
PRINT #3, "координата y вектора AB ";
vecty1:
p = 12: GOSUB slov
mm = 3: nx = 10: ny = 69
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF aby <> VAL(m$) THEN GOSUB glupo: GOTO vecty1
ccc = 13
COLOR ccc
LOCATE 11, 58: PRINT "__"
LOCATE 12, 58: PRINT "CD ( ; )"
PRINT #3,
PRINT #3, "координата x вектора CD ";
vectx2:
p = 13: GOSUB slov
mm = 3: nx = 12: ny = 63
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF cdx <> VAL(m$) THEN GOSUB glupo: GOTO vectx2
PRINT #3,
PRINT #3, "координата y вектора CD ";
vecty2:
p = 14: GOSUB slov
mm = 3: nx = 12: ny = 69
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF cdy <> VAL(m$) THEN GOSUB glupo: GOTO vecty2
ccc = 14
COLOR ccc
LOCATE 13, 53: PRINT " __ __ _"
LOCATE 14, 53: PRINT " CD-AB=m( ; )"
PRINT #3,
PRINT #3, "координата x вектора m ";
vectx3:
p = 15: GOSUB slov
mm = 3: nx = 14: ny = 63
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF cdx - abx <> VAL(m$) THEN GOSUB glupo: GOTO vectx3
PRINT #3,
PRINT #3, "координата y вектора m ";
vecty3:
p = 16: GOSUB slov
mm = 3: nx = 14: ny = 69
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF cdy - aby <> VAL(m$) THEN GOSUB glupo: GOTO vecty3
ccc = 14: p = 5: GOSUB slov
vectm:
GOSUB telo
'Обработка ошибки правильности построения вектора m
mmx = curx - curoldx: mmy = cury - curoldy
IF mmx <> cdx - abx OR mmy <> cdy - aby THEN GOSUB glupo: PRINT #3, : PRINT #3, "Построил вектор m("; mmx; ","; mmy; ")"; : CIRCLE (x1, y1), radius, 12: ccccc = ccc: ccc = 12: GOSUB strvect: ccc = ccccc: GOTO vectm
p = 20: GOSUB slov
IF glupo = 0 THEN colora(shag) = 4: coob$ = " Нет ошибок ": GOSUB shar
IF glupo = 1 THEN colora(shag) = 14: coob$ = " Одна ошибка ": GOSUB shar
IF glupo = 2 THEN colora(shag) = 2: coob$ = " Две ошибки! ": GOSUB shar
IF glupo = 3 THEN colora(shag) = 9: coob$ = " Три ошибки! ": GOSUB shar
IF glupo > 3 THEN colora(shag) = 15: coob$ = " Много ошибок!!! ": GOSUB shar
oshibka = oshibka + glupo
glupo = 0
COLOR colora(shag): LOCATE 20, 52: PRINT coob$: COLOR ccc
DO WHILE INKEY$ = "": LOOP
RETURN
napis:
LOCATE nx, ny: PRINT STRING$(mm, " ")
napis1:
k$ = ""
DO WHILE k$ = ""
LOCATE nx, ny: PRINT CHR$(95)
k$ = INKEY$
IF k$ = CHR$(0) + CHR$(59) THEN GOSUB reklama
LOOP
k = ASC(k$)
IF k = 13 AND m <> 0 THEN LOCATE nx, ny: PRINT " ": RETURN
IF k = 27 THEN GOSUB vihod
IF k = 8 AND m <> 0 THEN m = m - 1: m$ = LEFT$(m$, m): LOCATE nx, ny: ny = ny - 1: PRINT " ": GOTO napis1
IF INSTR(1, l$, k$) = 0 OR m = mm THEN GOTO napis1
m = m + 1:
m$ = m$ + k$: LOCATE nx, ny: PRINT k$: ny = ny + 1
GOTO napis1
vihod:
vih$ = ""
SCREEN 9, , 1, 1
CLS
LOCATE 10, 10
PRINT "Выйти из программы - <Esc>"
DO WHILE vih$ = ""
vih$ = INKEY$
IF vih$ = CHR$(27) THEN CLS : PRINT #3, "Выход из программы по желанию пользователя - "; TIME$: PRINT #3, : CLOSE #3: GOTO alis
LOOP
SCREEN 9, , 0, 0
RETURN
alis:
CLS
LOCATE 10, 30: PRINT "GOOD BYE !!!"
DO WHILE INKEY$ = "": LOOP
FOR i = 1 TO 120
LINE (i + 200, 140)-(i + 240, 120), 0
SOUND i * 3 + 1100, .05
FOR j = 1 TO speed: NEXT j
NEXT i
SYSTEM
slov:
COLOR 15
IF p < 10 THEN slovo$(1) = " Перемещай стрелку по ": slovo$(2) = " координатной плоскости ": slovo$(3) = "пользуясь клавишами " + CHR$(27) + CHR$(24) + CHR$(25) + "->": slovo$(4) = " Клавишей <ПРОБЕЛ> укажи "
IF p = 1 THEN slovo$(5) = " начало вектора AB "
IF p = 2 THEN slovo$(5) = " начало вектора CD "
IF p = 3 THEN slovo$(5) = " конец вектора AB "
IF p = 4 THEN slovo$(5) = " конец вектора CD "
IF p = 5 THEN slovo$(5) = " начало вектора m "
IF p = 6 THEN slovo$(5) = " конец вектора m "
IF p > 10 THEN slovo$(1) = " Введи с клавиатуры ": slovo$(3) = " и нажми <Enter> ": slovo$(4) = " если ошибся ": slovo$(5) = " нажми <== "
IF p = 11 THEN slovo$(2) = " координату x вектора AB "
IF p = 12 THEN slovo$(2) = " координату y вектора AB "
IF p = 13 THEN slovo$(2) = " координату x вектора CD "
IF p = 14 THEN slovo$(2) = " координату y вектора CD "
IF p = 15 THEN slovo$(2) = " координату x вектора m "
IF p = 16 THEN slovo$(2) = " координату y вектора m "
IF p = 20 THEN FOR cl = 1 TO 5: slovo$(cl) = " ": NEXT cl
LINE (403, 235)-(626, 309), 15, B
LINE (403, 235)-(625, 308), 7, B
PAINT (450, 240), 0, 7
FOR lo = 18 TO 22
LOCATE lo, 52: PRINT slovo$(lo - 17)
NEXT lo
LOCATE 6, 52: PRINT "<F1>-Помощь <Esc>-Выход"
LINE (403, 65)-(626, 89), 15, B
LINE (403, 65)-(625, 88), 7, B
COLOR ccc
RETURN
zapusk:
zapusk$(1) = " РАЗНОСТЬ ВЕКТОРОВ "
zapusk$(2) = " "
zapusk$(3) = " Тебе предстоит: "
zapusk$(4) = " выполнить 10 заданий "
zapusk$(5) = " В каждом задании нужно: "
zapusk$(6) = "1 - построить на "
zapusk$(7) = " координатной плоскости "
zapusk$(8) = " два вектора, указав "
zapusk$(9) = " их начало и конец "
zapusk$(10) = "2 - ввести их координаты "
zapusk$(11) = "3 - вычесть из второго "
zapusk$(12) = " вектора первый вектор "
zapusk$(13) = " и ввести координаты "
zapusk$(14) = " вектора разности "
zapusk$(15) = "4 - построить вектор "
zapusk$(16) = " разности указав начало "
zapusk$(17) = " вектора в произвольной "
zapusk$(18) = " точке "
FOR ii = 1 TO 26
FOR ki = speed TO speed * 2: BEEP: NEXT ki
FOR ji = 1 TO 18
LOCATE ji + 4, 51 + ii
PRINT MID$(zapusk$(ji), ii, 1)
NEXT ji
NEXT ii
DO WHILE INKEY$ = "": LOOP
FOR ii = 26 TO 1 STEP -1
FOR ki = speed TO speed * 2: BEEP: NEXT ki
FOR ji = 1 TO 18
LOCATE ji + 4, 51 + ii
PRINT " "
NEXT ji
NEXT ii
RETURN
glupo:
glupo = glupo + 1
FOR clor = 15 TO 0 STEP -1
PLAY "n60l20"
COLOR clor
LOCATE 16, 53: PRINT "ОШИБКА! ПОВТОРИТЕ ВВОД"
NEXT clor
COLOR ccc
RETURN
Приложение №4
Файл - vector3.rez
REM УМНОЖЕНИЕ ВЕКТОРА НА ЧИСЛО
'Константы
speed = 800 'Скорость
FILEHLP$ = "vector.hlp"
filerez$ = "vector.rez"
oshibka = 0 'Общее количество ошибок
k = 10 'Длина пера вектора
k1 = 3 'Ширина пера вектора
radius = 2 'Радиус начала вектора
zakr = 1 'Закраска начала вектора
zakrstr = 1 'Закраска стрелки вектора
c = 12 'Цвет стрелки - курсора
curx = 0: cury = 0 'Установка начальниых координат положения стрелки
DIM colora(10)
DIM slovo$(5)
DIM zapusk$(18)
SCREEN 9, , 0, 0
OPEN filerez$ FOR APPEND AS #3
PRINT #3, DATE$; " СТАРТ ПРОГРАММЫ < УМНОЖЕНИЕ ВЕКТОРА НА ЧИСЛО > - "; TIME$;
GOSUB coord 'Построение координатной плоскости
GOSUB zapusk 'Страничка с заданиями
FOR shag = 1 TO 10
PRINT #3, : PRINT #3, "Задание - "; shag
glupo = 0
GOSUB coord 'Построение координатной плоскости
p = 1: GOSUB slov
ccc = 10
GOSUB telo
abx = curx - curoldx: aby = cury - curoldy
er: 'Задание числа er
RANDOMIZE TIMER
er = INT(RND(1) * 19) - 9
IF ABS(er * abx) > 20 OR ABS(er * aby) > 22 THEN GOTO er
PRINT #3, "AB("; abx; ","; aby; ")"; TAB(15); "Загадано число "; er
GOSUB analis
NEXT shag
GOSUB coord
LOCATE 10, 53: PRINT "Вы допустили "; oshibka; " ошибок"
PRINT #3,
PRINT #3, "Количество допущенных ошибок - "; oshibka
PRINT #3,
CLOSE #3
DO WHILE INKEY$ = "": LOOP
GOTO alis
telo:
GOSUB preobr:
GOSUB zapomin ' Запоминает
GOSUB strelka ' Рисует стрелку
GOSUB vibor '
GOSUB oldstrelka ' Закрашивает место, где была стрелка
IF fl = 2 THEN fl = 0: RETURN
GOTO telo
vibor:
flag = 0
kbd$ = INKEY$
SELECT CASE kbd$
CASE CHR$(0) + "H": IF cury < 10 THEN cury = cury + 1: flag = 1
CASE CHR$(0) + "P": IF cury > -10 THEN cury = cury - 1: flag = 1
CASE CHR$(0) + "K": IF curx > -11 THEN curx = curx - 1: flag = 1
CASE CHR$(0) + "M": IF curx < 11 THEN curx = curx + 1: flag = 1
CASE CHR$(0) + CHR$(59): GOSUB reklama
CASE CHR$(32): GOSUB final: IF fl = 2 THEN RETURN
CASE CHR$(27): GOSUB vihod
END SELECT
IF flag = 0 THEN GOTO vibor
kx = x: ky = y
GOSUB preobr
RETURN
strelka:
'==== x y c ============ Рисует стрелку ========
PSET (x, y), c
DRAW "r6g2f4g2h4g2u6"
PAINT (x + 1, y + 1), c
PSET (x, y), 15
DRAW "r6g2f4g2"
RETURN
zapomin:
'==== x y ============ zap(9,9) ========
DIM zap(9, 9)
FOR i = 1 TO 9
FOR j = 1 TO 9
zap(i, j) = POINT(i + x - 1, j + y - 1)
NEXT j
NEXT i
RETURN
oldstrelka:
'==== kx ky zap(9,9) ==== Рисует ====
FOR i = 1 TO 9
FOR j = 1 TO 9
PSET (i + kx - 1, j + ky - 1), zap(i, j)
NEXT j
NEXT i
ERASE zap
RETURN
preobr:
x = curx * 16 + 203
y = 160 - cury * 14
RETURN
final:
kx = x: ky = y: GOSUB oldstrelka
IF fl = 1 THEN x2 = x: y2 = y: GOSUB strvect: IF ccc = 10 THEN p = 2: GOSUB slov ELSE p = 5: GOSUB slov
IF fl = 0 THEN curoldx = curx: curoldy = cury: x1 = x: y1 = y: CIRCLE (x, y), radius, ccc: IF zakr = 1 THEN PAINT (x, y), ccc
IF ccc = 10 AND fl = 0 THEN p = 3: GOSUB slov
'IF ccc = 13 AND fl = 0 THEN p = 4: GOSUB slov
'IF ccc = 14 AND fl = 0 THEN p = 6: GOSUB slov
fl = fl + 1
GOSUB zapomin: GOSUB strelka: RETURN
coord:
COLOR 15: CLS
'LINE (0, 0)-(639, 349), 15, B
LINE (10, 10)-(395, 311), 15, B
LINE (10, 10)-(394, 310), 7, B
LINE (400, 10)-(629, 311), 15, B
LINE (400, 10)-(628, 310), 7, B
FOR g = 27 TO 380 STEP 16
LINE (g, 15)-(g, 305), 8, B
NEXT g
FOR g = 20 TO 300 STEP 14
LINE (19, g)-(387, g), 8, B
NEXT g
FOR g = -10 TO 10 STEP 2
LOCATE 13, g * 2 + 25
IF g <> 0 THEN PRINT g
NEXT g
FOR g = -10 TO 10 STEP 2
LOCATE 12 - g, 24
PRINT g
NEXT g
LINE (19, 160)-(387, 160), 7, B
LINE (384, 158)-(387, 160), 7
LINE (384, 162)-(387, 160), 7
LINE (203, 15)-(203, 305), 7, B
LINE (200, 18)-(203, 15), 7
LINE (206, 18)-(203, 15), 7
LOCATE 2, 28
PRINT "y"
LOCATE 11, 49
PRINT "x"
shar:
FOR c = 1 TO 10
CIRCLE (405 + c * 20, 41), 7, 15
LINE (405 + c * 20, 38)-(410 + c * 20, 31), 15
PAINT (405 + c * 20, 39), colora(c), 15
NEXT c
RETURN
strvect:
dx = SQR((x2 - x1) ^ 2)
dy = SQR((y2 - y1) ^ 2)
df = SQR((dx * dx) + (dy * dy))
IF df = 0 THEN df = 1
dsx = k * dx / df
dsy = k * dy / df
dxx = k1 * dy / df
dyy = k1 * dx / df
IF x1 < x2 THEN x3 = x2 - dsx: x4 = x2 - dsx / 2 ELSE x3 = x2 + dsx: x4 = x2 + dsx / 2
IF y1 < y2 THEN y3 = y2 - dsy: y4 = y2 - dsy / 2 ELSE y3 = y2 + dsy: y4 = y2 + dsy / 2
IF SGN(x1 - x2) = SGN(y1 - y2) THEN x31 = x3 - dxx: y31 = y3 + dyy: x32 = x3 + dxx: y32 = y3 - dyy
IF SGN(x1 - x2) * (-1) = SGN(y1 - y2) THEN x31 = x3 + dxx: y31 = y3 + dyy: x32 = x3 - dxx: y32 = y3 - dyy
IF SGN(x1 - x2) = 0 OR SGN(y1 - y2) = 0 THEN x31 = x3 - dxx: y31 = y3 - dyy: x32 = x3 + dxx: y32 = y3 + dyy
LINE (x31, y31)-(x2, y2), ccc
LINE (x32, y32)-(x2, y2), ccc
IF zakrstr = 1 THEN LINE (x32, y32)-(x31, y31), ccc: PAINT (x4, y4), ccc
LINE (x1, y1)-(x2, y2), ccc
RETURN
reklama:
SCREEN 9, , 1, 1
COLOR 7, 0
OPEN FILEHLP$ FOR INPUT AS #1
S = 0
DO
ON ERROR GOTO 0
LINE INPUT #1, stran$
S = S + 1
LOOP UNTIL EOF(1)
CLOSE #1
IF FIX(S / 18) >= (S / 18) THEN KS = FIX(S / 18) ELSE KS = FIX(S / 18) + 1
DIM stran$(S)
OPEN FILEHLP$ FOR INPUT AS #1
FOR i = 1 TO S
ON ERROR GOTO 0
LINE INPUT #1, stran$(i)
NEXT i
CLOSE #1
NS = 1
GOSUB stran
obrabotka:
a$ = INKEY$
IF a$ = CHR$(0) + CHR$(73) THEN NS = NS - 1: GOSUB stran
IF a$ = CHR$(0) + CHR$(81) THEN NS = NS + 1: GOSUB stran
IF a$ = CHR$(27) THEN ERASE stran$: SCREEN 9, , 0, 0: RETURN
GOTO obrabotka
stran:
IF NS < 1 THEN NS = 1: RETURN
IF NS > KS THEN NS = KS: RETURN
n = 18 * NS
LOCATE 1, 1
PRINT "г"; STRING$(64, "="); "T=============¬"
PRINT "¦"; STRING$(15, " "); : COLOR 15, 0: PRINT "ИНФОРМАЦИОННО - СПРАВОЧНАЯ СИСТЕМА"; : COLOR 7, 0: PRINT STRING$(15, " ");
IF NS < 10 THEN PRINT "¦ Страница "; NS; "¦" ELSE PRINT "¦ Страница"; NS; "¦"
PRINT "¦"; STRING$(64, " "); "L=============¦"
FOR i = n - 17 TO n
IF i > S THEN PRINT "¦"; STRING$(78, " "); "¦" ELSE PRINT "¦ "; stran$(i); STRING$((76 - LEN(stran$(i))), " "); "¦"
NEXT i
PRINT "L"; STRING$(78, "="); "-"
'COLOR 1, 7:
PRINT " Выход - Esc ";
'IF NS = 1 THEN COLOR 8, 7 ELSE COLOR 1, 7
PRINT " Предыдущая страница - PageUp ";
'IF NS = KS THEN COLOR 8, 7 ELSE COLOR 1, 7
PRINT " Следующая страница - PageDown "
COLOR 7, 0
RETURN
analis:
PRINT #3, "Варианты ответов ученика:";
ccc = 10
COLOR ccc
LOCATE 9, 58: PRINT "__"
LOCATE 10, 58: PRINT "AB ( ; )"
PRINT #3,
PRINT #3, "координата x вектора AB ";
vectx1:
p = 11: GOSUB slov
mm = 3: nx = 10: ny = 63
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF abx <> VAL(m$) THEN GOSUB glupo: GOTO vectx1
PRINT #3,
PRINT #3, "координата y вектора AB ";
vecty1:
p = 12: GOSUB slov
mm = 3: nx = 10: ny = 69
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF aby <> VAL(m$) THEN GOSUB glupo: GOTO vecty1
ccc = 14
COLOR ccc
LOCATE 13, 53: PRINT TAB(56); " __ _"
LOCATE 14, 53: PRINT er; TAB(56); "*AB= m( ; )"
PRINT #3,
PRINT #3, "координата x вектора m ";
vectx3:
p = 15: GOSUB slov
mm = 3: nx = 14: ny = 64
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF er * abx <> VAL(m$) THEN GOSUB glupo: GOTO vectx3
PRINT #3,
PRINT #3, "координата y вектора m ";
vecty3:
p = 16: GOSUB slov
mm = 3: nx = 14: ny = 70
l$ = "+-1234567890"
m$ = "": m = 0
GOSUB napis
PRINT #3, VAL(m$);
IF er * aby <> VAL(m$) THEN GOSUB glupo: GOTO vecty3
ccc = 14: p = 5: GOSUB slov
vectm:
GOSUB telo
'Обработка ошибки правильности построения вектора m
mmx = curx - curoldx: mmy = cury - curoldy
IF mmx <> abx * er OR mmy <> aby * er THEN GOSUB glupo: PRINT #3, : PRINT #3, "Построил вектор m("; mmx; ","; mmy; ")"; : CIRCLE (x1, y1), radius, 12: ccccc = ccc: ccc = 12: GOSUB strvect: ccc = ccccc: GOTO vectm
p = 20: GOSUB slov
IF glupo = 0 THEN colora(shag) = 4: coob$ = " Нет ошибок ": GOSUB shar
IF glupo = 1 THEN colora(shag) = 14: coob$ = " Одна ошибка ": GOSUB shar
IF glupo = 2 THEN colora(shag) = 2: coob$ = " Две ошибки! ": GOSUB shar
IF glupo = 3 THEN colora(shag) = 9: coob$ = " Три ошибки! ": GOSUB shar
IF glupo > 3 THEN colora(shag) = 15: coob$ = " Много ошибок!!! ": GOSUB shar
oshibka = oshibka + glupo
glupo = 0
COLOR colora(shag): LOCATE 20, 52: PRINT coob$: COLOR ccc
DO WHILE INKEY$ = "": LOOP
RETURN
napis:
LOCATE nx, ny: PRINT STRING$(mm, " ")
napis1:
k$ = ""
DO WHILE k$ = ""
LOCATE nx, ny: PRINT CHR$(95)
k$ = INKEY$
IF k$ = CHR$(0) + CHR$(59) THEN GOSUB reklama
LOOP
k = ASC(k$)
IF k = 13 AND m <> 0 THEN LOCATE nx, ny: PRINT " ": RETURN
IF k = 27 THEN GOSUB vihod
IF k = 8 AND m <> 0 THEN m = m - 1: m$ = LEFT$(m$, m): LOCATE nx, ny: ny = ny - 1: PRINT " ": GOTO napis1
IF INSTR(1, l$, k$) = 0 OR m = mm THEN GOTO napis1
m = m + 1:
m$ = m$ + k$: LOCATE nx, ny: PRINT k$: ny = ny + 1
GOTO napis1
vihod:
vih$ = ""
SCREEN 9, , 1, 1
CLS
LOCATE 10, 10
PRINT "Выйти из программы - <Esc>"
DO WHILE vih$ = ""
vih$ = INKEY$
IF vih$ = CHR$(27) THEN CLS : PRINT #3, "Выход из программы по желанию пользователя - "; TIME$: PRINT #3, : CLOSE #3: GOTO alis
LOOP
SCREEN 9, , 0, 0
RETURN
alis:
CLS
LOCATE 10, 30: PRINT "GOOD BYE !!!"
DO WHILE INKEY$ = "": LOOP
FOR i = 1 TO 120
LINE (i + 200, 140)-(i + 240, 120), 0
SOUND i * 3 + 1100, .05
FOR j = 1 TO speed: NEXT j
NEXT i
SYSTEM
slov:
COLOR 15
IF p < 10 THEN slovo$(1) = " Перемещай стрелку по ": slovo$(2) = " координатной плоскости ": slovo$(3) = "пользуясь клавишами " + CHR$(27) + CHR$(24) + CHR$(25) + "->": slovo$(4) = " Клавишей <ПРОБЕЛ> укажи "
IF p = 1 THEN slovo$(5) = " начало вектора AB "
IF p = 3 THEN slovo$(5) = " конец вектора AB "
IF p = 5 THEN slovo$(5) = " начало вектора m=" + STR$(er) + "*AB "
IF p = 6 THEN slovo$(5) = " конец вектора m=" + STR$(er) + "*AB "
IF p > 10 THEN slovo$(1) = " Введи с клавиатуры ": slovo$(3) = " и нажми <Enter> ": slovo$(4) = " если ошибся ": slovo$(5) = " нажми <== "
IF p = 11 THEN slovo$(2) = " координату x вектора AB "
IF p = 12 THEN slovo$(2) = " координату y вектора AB "
IF p = 15 THEN slovo$(2) = " координату x вектора m "
IF p = 16 THEN slovo$(2) = " координату y вектора m "
IF p = 20 THEN FOR cl = 1 TO 5: slovo$(cl) = " ": NEXT cl
LINE (403, 235)-(626, 309), 15, B
LINE (403, 235)-(625, 308), 7, B
PAINT (450, 240), 0, 7
FOR lo = 18 TO 22
LOCATE lo, 52: PRINT slovo$(lo - 17)
NEXT lo
LOCATE 6, 52: PRINT "<F1>-Помощь <Esc>-Выход"
LINE (403, 65)-(626, 89), 15, B
LINE (403, 65)-(625, 88), 7, B
COLOR ccc
RETURN
zapusk:
zapusk$(1) = "УМНОЖЕНИЕ ВЕКТОРА НА ЧИСЛО"
zapusk$(2) = " "
zapusk$(3) = " Тебе предстоит: "
zapusk$(4) = " выполнить 10 заданий "
zapusk$(5) = " "
zapusk$(6) = " В каждом задании нужно: "
zapusk$(7) = "1 - построить на "
zapusk$(8) = " координатной плоскости "
zapusk$(9) = " вектор AB, указав его "
zapusk$(10) = " начало и конец "
zapusk$(11) = "2 - ввести его координаты "
zapusk$(12) = "3 - умножить построенный "
zapusk$(13) = " вектор на число a "
zapusk$(14) = " заданное компьютером "
zapusk$(15) = "4 - построить вектор "
zapusk$(16) = " произведения AB * a "
zapusk$(17) = " указав начало вектора "
zapusk$(18) = " в произвольной точке "
FOR ii = 1 TO 26
FOR ki = speed TO speed * 2: BEEP: NEXT ki
FOR ji = 1 TO 18
LOCATE ji + 4, 51 + ii
PRINT MID$(zapusk$(ji), ii, 1)
NEXT ji
NEXT ii
DO WHILE INKEY$ = "": LOOP
FOR ii = 26 TO 1 STEP -1
FOR ki = speed TO speed * 2: BEEP: NEXT ki
FOR ji = 1 TO 18
LOCATE ji + 4, 51 + ii
PRINT " "
NEXT ji
NEXT ii
RETURN
glupo:
glupo = glupo + 1
FOR clor = 15 TO 0 STEP -1
PLAY "n60l20"
COLOR clor
LOCATE 16, 53: PRINT "ОШИБКА! ПОВТОРИТЕ ВВОД"
NEXT clor
COLOR ccc
RETURN
Заключение
В конце исследовательской работы подведем некоторые итоги и ответим на вопросы, поставленные в начале диплома.
В данной работе, в полное мере, удалось показать все положительные и отрицательные стороны при обучении математике с помощью компьютера.
Во введении есть обоснование всем проблемам компьютеризации в сфере образования.
Дана оценка программированному обучению. Освещены проблемы создания и использования обучающих программ.
Показана целесообразность и возможности компьютерного обучения, рассмотрены проблемы взаимодействия человека и компьютера в сфере образования.
Рассмотрены предпосылки для подачи учебного материала с применением ЭВМ.
В основе дипломной работы применены исследования многих ученых, мнения и суждения отечественных и зарубежных источников информации.
В тоже время есть ряд очень сложных проблем компьютеризации учебного процесса в целом.
Основной проблемой является нищета учебных заведений. Практически все сельские школы слабо оснащены компьютерной техникой, учащиеся заканчивая 11-й класс не имеют представления о компьютере. В городских школах дела обстоят немного лучше, хотя не во всех.
Второй не менее важной проблемой является то, что если даже школе удалось приобрести компьютеры, то возникают проблемы с программным обеспечением. В этом случае компьютер используется не как средство обучения, а в качестве печатной машинки.
В приложении приведен листинг программ написанных на языке программирования высокого уровня Qbasic.
Список литературы: