<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Электронный научно-практический журнал «Психология, социология и педагогика» &#187; informatics</title>
	<atom:link href="http://psychology.snauka.ru/tags/informatics/feed" rel="self" type="application/rss+xml" />
	<link>https://psychology.snauka.ru</link>
	<description></description>
	<lastBuildDate>Tue, 13 Jan 2026 12:21:40 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>О подготовке школьников к участию в олимпиадах по информатике</title>
		<link>https://psychology.snauka.ru/2015/01/4255</link>
		<comments>https://psychology.snauka.ru/2015/01/4255#comments</comments>
		<pubDate>Mon, 26 Jan 2015 14:58:28 +0000</pubDate>
		<dc:creator>Козлов Сергей Валерьевич</dc:creator>
				<category><![CDATA[Педагогика]]></category>
		<category><![CDATA[individual training]]></category>
		<category><![CDATA[informatics]]></category>
		<category><![CDATA[olympiad]]></category>
		<category><![CDATA[preprofile training]]></category>
		<category><![CDATA[profile training]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[индивидуальное обучение]]></category>
		<category><![CDATA[информатика]]></category>
		<category><![CDATA[олимпиада]]></category>
		<category><![CDATA[предпрофильное обучение]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[профильное обучение]]></category>

		<guid isPermaLink="false">https://psychology.snauka.ru/?p=4255</guid>
		<description><![CDATA[Обучение учащихся в профильной школе предполагает развитие способностей в соответствии с направлением подготовки на углубленном высоком творческом уровне. Это предполагает участие школьников в предметных олимпиадах [1]. Остановимся в данной статье на особенностях подготовки к олимпиадам по информатике и их отличительных признаках от других олимпиад физико-математического профиля. Участие в олимпиаде по информатике может принять школьник любого [...]]]></description>
			<content:encoded><![CDATA[<p>Обучение учащихся в профильной школе предполагает развитие способностей в соответствии с направлением подготовки на углубленном высоком творческом уровне. Это предполагает участие школьников в предметных олимпиадах [1]. Остановимся в данной статье на особенностях подготовки к олимпиадам по информатике и их отличительных признаках от других олимпиад физико-математического профиля.</p>
<p>Участие в олимпиаде по информатике может принять школьник любого возраста. Как правило, это учащиеся 8-11 класса, обладающие выраженными способностями к изучению информатики. На школьном этапе проведения олимпиады количество участников обычно делится в пропорции один к двум между учениками средней и старшей школы. В тоже время на муниципальном этапе в процентном соотношении превалируют ученики профильной школы. Это объясняется тем, что на предпрофильном уровне обучения информатике в 8-9 классе учащиеся получают базовую подготовку по предмету. Они изучают все основные дидактические предметные линии школьного курса информатики и ИКТ. Специфика же олимпиады по информатике заключается в том, что задания на ней предлагаются сугубо по программированию.</p>
<p>Следует подчеркнуть, что всем учащимся независимо от класса предлагается решить одинаковые задачи. В связи с этим, если ученик в 8-9 классе дополнительно не занимался программированием ему трудно пробиться на более высокий этап олимпиады. Однако это вовсе не означает, что такая подготовка не ведется [2]. Приобрести необходимый багаж знаний и умений школьник может, посещая как профильные школьные кружки по программированию, так и, например, областную физико-математическую школу при Смоленском государственном университете или профильные занятия подобной направленности [3].</p>
<p>Анализ условий задач школьного этапа муниципальной олимпиады по информатике позволяет выделить задания следующих типов:</p>
<p>1. Задания, требующие знания простейших математических фактов.</p>
<p>2. Задания на делимость.</p>
<p>3. Задания на обработку символьных данных.</p>
<p>4. Задания на обработку числовых массивов данных.</p>
<p>Рассмотрим задания указанных типов, предложенные в 2014 году на школьном этапе олимпиады по информатике.</p>
<p>К первому типу можно отнести задачу «Две окружности». В данной задаче требовалось определить, пересекаются ли на плоскости две окружности, заданные координатами своих центров и радиусами. Сложность задачи заключалась в том, что возможны два случая расположения центров окружностей друг относительно друга. Первый – когда центр второй окружности лежит вне первой окружности и второй – когда центр одной из них лежит внутри другой. Школьники, решая поставленную задачу, забывали рассмотреть второй случай, тем самым, теряя половину решения, и получая верный алгоритм только в частном виде.</p>
<p>Ко второму типу следует отнести задачу «Деление». В ней требуется выяснить, делится ли на 7 натуральное число, состоящее не более чем из 60 цифр, и найти остаток от деления. Особенность решения задачи заключается в том, что если решать ее «в лоб», объявляя переменную целого типа, то на «больших» числах задача работать не будет. Ввиду этого число необходимо вводить в виде строковой переменой, длина которой может быть до 255 символов. Остаток от деления положить равным 0. Затем задать цикл от первого символа до последнего символа строки. В цикле выделять по одному символу строки и последовательно переводить его в числовое значение. Находить текущий остаток от деления на 7 от суммы остатка предыдущего шага увеличенного на один разряд и текущей цифры. В таком виде алгоритм решения задачи будет давать верный результат при входных данных задачи.</p>
<p>К третьему типу относится задача «Редактор», в которой предлагается обработать определенным образом входную строку символов. В строке может встречаться символ «#», означающий директиву стереть предыдущий символ. Подряд <em>k</em> символов «#» предполагают удаление <em>k</em> предыдущих символов. Ученику требуется вывести итоговую строку с учетом роли символа «#». Сформировать новую строку можно следующим образом. Объявить пустую строку. Затем в цикле по номеру исходной строки считывать текущий символ. Если он отличен от знака «#», то добавлять его к новой строке. Иначе удалять из формируемой строки последний символ. Если же формируемая строка пустая, а в исходной строке встретился символ «#», то она не изменит своего значения, так как из нее нечего удалять. Однако, несмотря на кажущуюся простоту изложенного алгоритма, учащиеся, не имевшие дело с работой над строками, не берутся ее решать. В тоже время из остальных учеников многие пытаются изменять исходную строку, что, как правило, приводит к неверной работе предложенной программы в частных случаях.</p>
<p>В задачах четвертого типа чаще всего предлагается обработать данные, представленные в виде двумерного массива. Например, задана матрица размера <em>n</em> на <em>m</em>, состоящая из нулей и единиц. Матрица называется «симпатичной», если в ней нет ни одного квадрата 2 на 2, заполненного либо целиком нулями, либо целиком единицами. В задаче требуется проверить, будет ли матрица «симпатичной» или нет. Задача имеет достаточно очевидный алгоритм решения. Объявить переменную логического типа и присвоить ей значение true, то есть предположить, что матрица «симпатичная». Затем во вложенном цикле по столбцам цикла по строкам последовательно просмотреть элементы матрицы без элементов последнего столбца и последней строки. Для каждого из них проверить совпадают ли с ним три элемента, стоящие справа, снизу и по диагонали вниз направо от него. Если совпадают, то изменить значение переменной логического типа на false. В таком случае при выполнении условия хотя бы один раз матрица «симпатичной» являться не будет. Этот способ не единственен, возможны и другие схожие алгоритмы. Затруднения вызывают у рядового школьника организация обработки данных во внутреннем цикле. Нередко учащиеся вовсе не знают, как задать двумерный массив данных, так как данная тематика вынесена на дополнительные занятия. Также многие ученики при обработке строк и столбцов выходят за границы массива, что считается ошибкой при решении задачи. И в тоже время наибольшую сложность представляет найти математический подход для решения задач подобного вида. Выработка подхода достигает в отдельных случаях до двух третей сложности поставленного перед учащимся задания.</p>
<p>Олимпиады, проводимые вузами, результаты которых засчитываются в качестве вступительных испытаний по предмету или дающие дополнительные баллы при поступлении, отличаются по тематике заданий. Они должны отражать области предметных знаний и содержать разноуровневые задания – от простых вопросов до сложных задач. Так, на подобных вузовских олимпиадах обязательно есть задания на программирование базовых алгоритмических конструкций – следования, ветвления и цикла. Также учащимся, как правило, предлагаются задачи на обработку одномерных и двумерных массивов, включая не только поиск, но и сортировку данных. Это обусловлено тем, что в таких олимпиадах принимают участие ученики всех направлений профильного обучения в школе.</p>
<p>Нередко задания подобных олимпиад частично дублируют, особенно на отборочных этапах, тестовые задания ЕГЭ. В тоже время они должны носить иной характер. Задания должны проверять на основе фундаментальных предметных знаний умения их применять в незнакомой нестандартной ситуации или предполагать наличие полипредметных компетенций. В олимпиадных задачах по программированию это составление алгоритма решения на основе известных математических фактов и закономерностей.</p>
<p>Проанализируем задания олимпиады СмолГУ по информатике для школьников, поступающих в вуз в 2015 году. Итак, учащимся были предложены следующие пять заданий.</p>
<p><span style="text-decoration: underline;">Задача.</span> <em>2015 год.</em></p>
<p>Вычислите число и месяц в 2015 году по номеру дня.</p>
<p><em>Пример входных данных: 129. Пример выходных данных: 9.05.2015.</em></p>
<p>Решение этой задачи предполагало умение использовать структуру вложенных друг в друга операторов ветвления If либо оператор выбора Case. Также необходимо было подметить закономерность в вычислении дня. А именно, следовало вычитать из номера дня числовое значение, определяющее правый конец предшествующего диапазона-месяца. В том числе следовало учитывать и формат вывода данных.</p>
<p><span style="text-decoration: underline;">Задача.</span> <em>Максимальное число.</em></p>
<p>Дано трехзначное число. Составьте из цифр данного числа наибольшее трехзначное число, используя каждую цифру не более одного раза. Например, 235 – 532, 857 – 875, 399 – 993.</p>
<p><em>Пример входных данных: 235. Пример выходных данных: 532.</em></p>
<p>Решение этой задачи можно описать сразу несколькими способами. Один из подходов заключается в выделении цифр трехзначного числа с помощью операций целочисленного деления div и mod. После чего останется аккуратно с использованием условного оператора If описать всевозможные порядки вывода цифр и сформировать из них новое число. Для расстановки цифр по разрядам нового числа необходимо использовать степени 10 и операцию сложения целых чисел. Другой подход заключается в записи цифр числа в одномерный массив из трех элементов. После чего элементы массива сортируются по убыванию. На последнем шаге также как и при первом подходе формируется новое число: первый элемент массива умножается на 100, второй – на 10 и все три элемента массива складываются. Иной вариант решения заключается в записи числа в строку, после чего следует упорядочить по убыванию ее символы. Например, это можно сделать с помощью того же условного оператора If или сортировкой символов строки, что и при первом подходе и новое число будет получено сразу.</p>
<p><span style="text-decoration: underline;">Задача.</span> <em>Уникальные числа.</em></p>
<p>Среди чисел от 1 до <em>n</em> найдите те, сумма квадратов цифр которых делится на <em>m</em>.</p>
<p><em>Пример входных данных: </em><em>n=10, </em><em>m=3. Пример выходных данных: </em><em>3, 6, 9.</em></p>
<p>Специфика данной задачи заключается в том, что неизвестно количество цифр в числе. Диапазон может быть такой, что он включает и двузначные, и трехзначные, и четырехзначные и так далее числа. Следовательно, для выделения цифр числа не обойтись последовательностью инструкций с div и mod. Для решения задачи требуется использовать структуру вложенных циклов. Внешний цикл должен включать перебор целых чисел от 1 до <em>n</em>. После чего значение переменной цикла следует передать вспомогательной переменной, например, <em>x</em>. Внутренний цикл необходимо выполнять до тех пор, пока в числе остаются цифры. На каждом его витке выделяется последняя цифра числа с помощью операции <em>x</em> mod 10. Эта цифра возводится в квадрат и добавляется в сумму квадратов цифр, значение которой обнуляется перед каждым внутренним витком. После чего число во вспомогательной переменной изменяется на новое число, состоящее из цифр исходного числа без последней цифры. Это можно выполнить с помощью команды <em>x</em> div 10. Таким образом, во внешнем цикле остается проверить делится ли найденное значение суммы квадратов цифр числа на число, введенное пользователем с клавиатуры.</p>
<p><span style="text-decoration: underline;">Задача.</span> <em>Рост учеников.</em></p>
<p>В классе <em>N</em> учеников (<em>N</em>&lt;=33). Известен рост каждого из них. Найдите ученика, рост которого наиболее близок к среднему росту учащихся класса.</p>
<p><em>Пример входных данных: </em><em>N=3; 160, 170, 180. Пример выходных данных: 170.</em></p>
<p>Это задание предполагает обработку массива данных. Сначала требуется сформировать одномерный массив и заполнить его значениями в диапазоне от 160 до 210. Затем найти среднее арифметическое элементов массива как сумму значений его элементов деленную на количество элементов в массиве. Необходимо учитывать тот факт, что средняя величина есть значение вещественного типа данных, несмотря на целочисленный массив. После этого нужно выбрать наименьшую по модулю разность между каждым элементом массива и средним арифметическим значением. При определении данной наименьшей по модулю величины также следует запоминать позицию элемента массива, для которого это условие выполняется. Значение данного элемента и будет искомым.</p>
<p><span style="text-decoration: underline;">Задача.</span> <em>Математические величины.</em></p>
<p>Для заданных натуральных чисел <em>m</em> и <em>n</em> вычислите их НОК (наименьшее общее кратное).</p>
<p><em>Пример входных данных: 4, 6. Пример выходных данных: 12.</em></p>
<p>При решении этого задания требуется вспомнить тот факт, что вычислить НОК можно как произведение искомых натуральных чисел, деленное на НОД (наибольший общий делитель). НОД же можно вычислить по алгоритму Евклида. Данный алгоритм можно сформулировать так. Из двух заданных натуральных чисел выбирается наибольшее число и меняется на разность между большим и меньшим значением. Так делается до тех пор, пока числовые значения не совпадут. На этом данные действия завершаются, а найденное итоговое значение и есть НОД двух заданных натуральных чисел. Однако это решение не единственное. Можно, например, выбрать из двух чисел наибольшее, записать его как предполагаемое НОК и проверить делится ли оно на меньшее значение. Если да, то оно и есть НОК. Если нет, то увеличить его на наибольшее значение из двух заданных чисел и снова проверить делится ли оно на меньшее число и так далее. Как только на очередном шаге остаток от деления будет равен нулю, то текущее значение и есть НОК двух заданных чисел.</p>
<p>Анализ заданий олимпиады СмолГУ по информатике показывает, что большая часть из них для учащихся занимающихся информатикой, и программированием в частности, действительно базируются на знаниях полученными ими на занятиях в школе. Одна из задач является, как правило, стандартной, три – повышенного уровня сложности и одна – высокого уровня сложности. Такое соотношение действует на многих олимпиадах не только по информатике, но и другим учебным дисциплинам. В тоже время более успешными на олимпиаде по информатике оказываются ученики со специальной подготовкой, обучающиеся в профильных физико-математических классах или классах с профилем по информатике. Тем не менее, ученики, для которых предмет информатики является общеобразовательным, также могут найти на олимпиаде свои задачи и попробовать получить дополнительные баллы-бонусы для поступления в вуз.</p>
<p>Обобщая данные участия в муниципальном этапе олимпиады по информатике и олимпиады по информатике для школьников, поступающих в СмолГУ, можно отметить еще один немаловажный факт. Среди участников этих двух олимпиад набрали больше баллов те учащиеся 10 и 11 классов, кто сдавал в 9 классе ГИА (ОГЭ) по информатике и ИКТ. Во всех тестовых заданиях трех частей ГИА (ОГЭ) по информатике и ИКТ для учащихся 9 классов присутствуют задачи по программированию [4, 5, 6]. При этом в 9 классе на ГИА по информатике эти ученики стабильно показывают высокие результаты. Это говорит о том, что олимпиады по информатике, как и по другим предметам, требуют специальной подготовки. Они позволяют выявить наряду с другими формами учебной и внеучебной работы одаренных учащихся, интересующихся предметной областью информатики на углубленном уровне [7, 8].</p>
<p>Интересно также и распределение мест между призерами и победителями этих олимпиад. Если на муниципальной олимпиаде по информатике за редким исключением это учащиеся 11 классов. То на олимпиаде по информатике СмолГУ среди победителей есть один-два ученика 10 класса, а между призерами они и вовсе делятся пропорционально с учениками 11 класса. Это говорит о том, что заниматься на профильном уровне программированием предметной области информатики, не говоря уже о других областях школьного предмета, можно не обязательно с классов средней школы, а начиная в старшей школе с 10 класса. Тем не менее, эта подготовка должна носить целенаправленный и систематический характер. Так, например, заинтересовать учащихся занятиями по программированию, можно привлечением к участию в школьных, городских и областных днях науки, а также в предметных конкурсах по информатике и современным информационным технологиям [9]. В частности можно совместно с учащимися проектировать и разрабатывать программные оболочки различной направленности от методического характера до прикладных игр [10].</p>
<p>Следует также подчеркнуть еще один немаловажный факт. Если задания рассматриваемых олимпиад по информатике сопоставимы по тематике и уровню сложности, то олимпиадные задачи городского, областного и особенно всероссийского этапов требуют специальной подготовки. В задачах городского этапа необходимо знание и умение запрограммировать, как правило, рекурсивные и простейшие виды переборных алгоритмов. На областном этапе решение отдельных задач предполагает знание понятий «список», «стек» и «очередь». Особенно важно понимать их назначение и уметь программировать данные структуры, если они не являются встроенными в язык программирования, который использует учащийся для решения поставленной задачи. Также ежегодно на областном уровне встречаются задачи на клеточной карте.</p>
<p>Еще одной из особенностей является умение организовывать чтение входных данных из файла и запись выходных данных в файловую структуру. В заданиях анализируемых школьного этапа муниципальной олимпиады и олимпиады для абитуриентов при поступлении в вуз данные можно считывать как с клавиатуры, так и из файла. Решение задачи не предполагает знание последнего факта. Важен собственно алгоритм решения задачи. На олимпиадах более высокого уровня, начиная с областного этапа, чтение и запись файловых данных прямо оговорена в условии задания, другие варианты решения просто не проверяются и не оцениваются, даже при правильном алгоритме. В связи с этим для участия в таких олимпиадах необходима специальная подготовка, например, в рамках исследовательских кружков или олимпийских сборных по программированию задач на компьютере. В рамках этих занятий для достижения наилучших результатов целесообразно использовать в обучении инновационные адаптивные системы [11, 12, 13].</p>
<p>Итак, анализ особенностей олимпиадных заданий, проведенный в данной статье, показывает следующее. Начальные стадии всероссийской олимпиады школьников по информатике, как и профильные вузовские олимпиады для абитуриентов по предмету требуют знания основ программирования в объеме базового курса информатики и ИКТ. Последующие этапы всероссийской олимпиады школьников по информатике предполагает знания на профильном уровне, а заключительный этап – кроме прочего фундаментальную математическую подготовку и творческое мышление. Также и олимпиады по информатике для абитуриентов, поступающих в вуз, делятся по уровню значимости. Чем шире возможность представления результатов такой олимпиады по вузам, тем более фундаментальная требуется профессиональная подготовка.</p>
<p>Таким образом, необходимо вести разъяснительную профориентационную работу по предмету, заинтересовывать школьников изучением алгоритмических основ и обучением программированию в целом. Это можно и нужно делать при изучении базового курса информатики и ИКТ. При этом хорошая базовая подготовка может в последующем при участии в вузовской олимпиаде дать определенные преимущества при поступлении в учебное заведение. Для участия же в олимпиадах всероссийского уровня по информатике обязательна профильная подготовка школьника при изучении предмета на углубленном уровне.</p>
]]></content:encoded>
			<wfw:commentRss>https://psychology.snauka.ru/2015/01/4255/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Содержание и особенности разработки учебно-методического мультимедийного проекта по математике «В помощь школьнику» в среде программирования Lazarus</title>
		<link>https://psychology.snauka.ru/2015/05/4945</link>
		<comments>https://psychology.snauka.ru/2015/05/4945#comments</comments>
		<pubDate>Wed, 06 May 2015 10:36:23 +0000</pubDate>
		<dc:creator>Козлов Сергей Валерьевич</dc:creator>
				<category><![CDATA[Педагогика]]></category>
		<category><![CDATA[computer game]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[developing training]]></category>
		<category><![CDATA[informatics]]></category>
		<category><![CDATA[mathematics]]></category>
		<category><![CDATA[multimedia project]]></category>
		<category><![CDATA[profile training]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[информатика]]></category>
		<category><![CDATA[компьютерная графика]]></category>
		<category><![CDATA[компьютерная игра]]></category>
		<category><![CDATA[математика]]></category>
		<category><![CDATA[мультимедийный проект]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[профильное обучение]]></category>
		<category><![CDATA[развивающие обучение]]></category>

		<guid isPermaLink="false">https://psychology.snauka.ru/?p=4945</guid>
		<description><![CDATA[Обучение на любой стадии образовательного процесса должно отвечать принципу оптимальности. В связи с этим в условиях развития общества в XXI веке при организации учебного процесса целесообразно использовать последние достижения в области информационно-коммуникационных технологий [1]. Это определяет использование в процессе обучения инновационных программных сред [2, 3] и сопровождение образовательной деятельности мультимедийными учебно-методическими материалами [4]. Они позволяют [...]]]></description>
			<content:encoded><![CDATA[<p>Обучение на любой стадии образовательного процесса должно отвечать принципу оптимальности. В связи с этим в условиях развития общества в XXI веке при организации учебного процесса целесообразно использовать последние достижения в области информационно-коммуникационных технологий [1]. Это определяет использование в процессе обучения инновационных программных сред [2, 3] и сопровождение образовательной деятельности мультимедийными учебно-методическими материалами [4]. Они позволяют разнообразить образовательный процесс, комплексно воздействуя на системы восприятия школьника.</p>
<p>На рынке образовательных услуг существует множество программных продуктов такого назначения [5, 6]. Однако, по тем или иным причинам, они не всегда доступны школьному учителю или не отвечают его запросам. Таким образом, для достижения результата обучения оптимальным образом учителю необходимо находить компромисс в выборе мультимедийного учебно-методического средства.</p>
<p>В тоже время современный учитель должен владеть базовыми информационными технологиями обеспечения учебного процесса [7]. Учителя математики, физики, а информатики так и вовсе непременно находятся в более выгодном положении относительно педагогов другого профиля. Следует учитывать, что в педагогических вузах на сегодняшний день этих учителей-предметников, как правило, готовят сразу по двум направлениям – «Математика и информатика» или «Физика и информатика». Исходя из этого, все они должны быть готовы применять на практике свои познания для разработки собственных программных продуктов сопровождения образовательного процесса.</p>
<p>Рассмотрим особенности разработки простейших учебно-методических мультимедийных проектов. Навыки создания такого рода программ современные учителя, как правило, приобретают еще на стадии обучения в вузе в курсах по программированию или во время учебных вычислительных практик [8]. Языком программирования подобных оболочек может служить любой язык. Специфика же вузовского обучения и обучения информатике в школе определяет в качестве использования визуальной среды программирования – язык Delphi или Lazarus [9]. Обе эти программные среды основаны на языке программирования Object Pascal. Первая из них является платной и более полной с точки зрения инструментария и ресурсных возможностей, вторая – бесплатна и не включает ряд компонент программирования. С позиций проектирования простейших учебно-методических мультимедийных проектов потенциал данных сред одинаков.</p>
<p>Итак, проанализируем на примере проекта «В помощь школьнику» специфику разработки подобных учебно-методических мультимедийных сред средствами языка программирования Lazarus. Остановимся подробно на содержательных и программных особенностях реализации данного проекта.</p>
<p>Стартовая форма проекта представляет собой окно, в области которого расположен ряд интерактивных кнопок (рис. 1). На ней представлены такие кнопки как «Формулы», «Калькулятор», «Календарь», «Словарь», «Расписание», «Гимнастика» и «Игра». Название дано в соответствии с содержанием вызываемого по нажатию на кнопку раздела программы. Количество и направленность кнопок в других проектах может быть и иной. Также нередко в более объемных программных продуктах бывает целесообразнее и удобнее организовать навигацию с помощью меню. В данном случае кнопки на форме сразу акцентируют внимание пользователя на содержимом программы.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/?attachment_id=11047" rel="attachment wp-att-11047"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/1.bmp" alt="" width="538" height="343" /></a></p>
<p align="center">Рисунок 1 – Проект «В помощь школьнику»</p>
<p>Кнопка «Формулы» открывает вспомогательную форму (рис. 2), на которой расположены кнопки «Алгебраические формулы» и «Геометрические формулы», а также кнопка возврата на основную форму «Меню».</p>
<p style="text-align: center;" align="center"><a href="https://psychology.snauka.ru/?attachment_id=11048" rel="attachment wp-att-11048"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/2.bmp" alt="" width="399" height="242" /></a></p>
<p align="center">Рисунок 2 – Форма «Формулы»</p>
<p>Раздел «Алгебраические формулы» содержит основные формулы по алгебре за курс средней школы, которые тематически объединены в пять групп (рис. 3). Они включают формулы сокращенного умножения, формулы корней квадратного уравнения, формулу разложения квадратного трехчлена на множители и ряд других формул.</p>
<p style="text-align: center;" align="center"><a href="https://psychology.snauka.ru/?attachment_id=11050" rel="attachment wp-att-11050"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/3.bmp" alt="" width="520" height="287" /></a></p>
<p align="center">Рисунок 3 – Форма «Алгебраические формулы»</p>
<p>На форме также есть кнопка «Решение уравнений», нажав которую можно перейти на одноименную форму (рис. 4). На этой форме можно выбрать вид уравнения – квадратное или линейное, ввести его коэффициенты и посмотреть его решение.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/?attachment_id=11051" rel="attachment wp-att-11051"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/4.bmp" alt="" width="557" height="352" /></a></p>
<p align="center">Рисунок 4 – Форма «Решение уравнений»</p>
<p>Раздел «Геометрические формулы» содержит основные теоремы и формулы геометрии средней школы. Они тематически объединены в одиннадцать групп (рис. 5). Так, например, можно посмотреть теоремы Пифагора и Фалеса, тригонометрические формулы и формулы площадей геометрических фигур.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/?attachment_id=11052" rel="attachment wp-att-11052"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/5.bmp" alt="" width="555" height="371" /></a></p>
<p align="center">Рисунок 5 – Форма «Геометрические формулы»</p>
<p>На форме есть кнопка «Задача на построение», нажатие которой позволяет пошагово посмотреть построение центра вписанной в треугольник окружности циркулем и линейкой (рис. 6).</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/?attachment_id=11053" rel="attachment wp-att-11053"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/6.bmp" alt="" width="580" height="395" /></a></p>
<p align="center">Рисунок 6 – Форма «Задача на построение»</p>
<p>Программная реализация взаимодействия данных форм друг с другом и отображения учебного материала включала следующие этапы. Во-первых, необходимо создать в соответствии с количеством кнопок на каждой форме процедуры, которые по щелчку на кнопке открывают нужную форму и делают ее активной. Во-вторых, следовало на каждой форме разместить текстовые либо графические поля для отображения текста и формул. В-третьих, отдельно нужно было запрограммировать процедуры решения уравнений и задачи на построение. Первая из них обрабатывает данные полей Edit, расположенные на форме «Решение уравнений», и выводит результаты вычислений в поле Memo. Вторая из процедур по щелчку на объекте Static Text, содержащем текст комментария, последовательно отображает на панелях формы Panel объекты-изображения типа Image.</p>
<p>Кнопка «Калькулятор» показывает форму с простейшим калькулятором (рис. 7). В окне калькулятора можно выполнять арифметические действия над числами, возводить числа в степень, вычислять значения простейших тригонометрических функций и факториал натурального числа.</p>
<p><a href="https://psychology.snauka.ru/?attachment_id=11054" rel="attachment wp-att-11054"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/7.bmp" alt="" /></a></p>
<p align="center">Рисунок 7 – Форма «Калькулятор»</p>
<p>Для организации вычислений на форме создано поле Memo. В нем с помощью свойства Text отображаются вводимые числовые значения и результаты производимых вычислений. Кнопки формы заданы как объект BitBtn. Для каждой из них прописана в программном коде отдельная процедура, которая по щелчку мыши осуществляет закрепленное за кнопкой действие.</p>
<p>Нажатие на кнопке «Календарь» главной формы проекта открывает календарь-ежедневник (рис. 8). На открывшейся форме слева показан календарь на год, начиная с текущего месяца. Текущая дата отображена внизу формы, а в календаре этот день обведен красным цветом. С помощью кнопок навигации «Влево» и «Вправо» календарь можно пролистывать назад и вперед. На форме справа от календаря открыто поле Memo для записей в ежедневник. Запись осуществляется на дату, отображаемую в поле Edit, расположенную над записями ежедневника. Дату в это поле можно ввести либо с клавиатуры, либо двойным щелчком по ней в календаре. Сохранить записи в ежедневнике, можно зайдя в меню и выполнив команду «Сохранить». Для просмотра записей в ежедневнике на выбранное число следует нажать кнопку «Открыть» на форме рядом с окном даты. В главном меню формы «Калькулятор» также есть пункты «Новый» и «Открыть» для создания нового и открытия уже имеющегося ежедневника. Диалог при выборе данных пунктов меню объекта MainMenu организован с помощью объектов SaveDialog и OpenDialog.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/?attachment_id=11055" rel="attachment wp-att-11055"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/8.bmp" alt="" width="609" height="518" /></a></p>
<p align="center">Рисунок 8 – Форма «Календарь»</p>
<p>При нажатии на кнопке «Словарь» открывается одноименная форма, содержащая словарь математических терминов (рис. 9). Описание терминов представлено в поле RichEdit в алфавитном порядке. В тексте сделаны метки в виде заглавных букв русского алфавита. На заднем фоне формы с помощью объекта Image расположена картинка, иллюстрирующая словарь. Поверх нее слева на форме находятся кнопки с буквами русского алфавита. Каждая из них организована как объект Button. Щелчок мышью на кнопке осуществляет переход на метку поля RichEdit, соответствующей заглавной букве в файле с расширением rtf.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/?attachment_id=11056" rel="attachment wp-att-11056"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/9.bmp" alt="" width="526" height="342" /></a></p>
<p align="center">Рисунок 9 – Форма «Словарь»</p>
<p>Кнопка «Расписание» служит для просмотра и редактирования расписания уроков на неделю. На форме «Расписание» (рис. 10) на заднем фоне расположено изображение с незаполненным расписанием уроков. Для каждого урока подготовлено собственное поле с помощью объекта Label для отображения его названия.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/?attachment_id=11057" rel="attachment wp-att-11057"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/10.bmp" alt="" width="538" height="380" /></a></p>
<p align="center">Рисунок 10 – Форма «Расписание уроков»</p>
<p>Возле названия дней недели на изображении помещены шесть кнопок с помощью объекта BitBtn. На кнопках для привлечения внимания помещены восклицательные знаки. Нажатие кнопки приводит к открытию формы для редактирования расписания (рис. 11). Учащийся с клавиатуры может набрать новое расписание на выбранный день и сохранить его нажатием на одноименную кнопку формы.</p>
<p><a href="https://psychology.snauka.ru/?attachment_id=11058" rel="attachment wp-att-11058"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/111.bmp" alt="" /></a></p>
<p align="center">Рисунок 11 – Форма «Редактирование расписания»</p>
<p>Нажатие на кнопке «Гимнастика» приводит к открытию формы «Гимнастика для глаз» (рис. 12).</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/?attachment_id=11059" rel="attachment wp-att-11059"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/12.bmp" alt="" width="557" height="288" /></a></p>
<p align="center">Рисунок 12 – Форма «Гимнастика для глаз»</p>
<p>Данная форма содержит информацию о гимнастике и комплексы различных упражнений способствующих отдыху глаз (рис. 13). Наличие в программе таких упражнений для глаз позволяет ученику своевременно чередовать работу в компьютерных программах с отдыхом, вовремя снять напряжение и усталость. Подобранные комплексы упражнений отвечают принципам здоровьесберегающего обучения, они незаменимы при работе за компьютером.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/?attachment_id=11060" rel="attachment wp-att-11060"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/13.bmp" alt="" width="467" height="332" /></a></p>
<p align="center">Рисунок 13 – Форма «Комплекс для глаз»</p>
<p>Технически на форме «Гимнастика» расположен ряд кнопок. Щелчок мышью на кнопке «Информация о гимнастике» открывает текстовый документ, который содержит основные сведения о гимнастике для глаз и предлагаемых комплексах упражнений. Каждая из оставшихся семи кнопок закреплена за отдельным набором упражнений. Щелчок по каждой из них открывает новую форму, на которой имеется объект Image с соответствующими упражнениями для глаз.</p>
<p>Наличие кнопки «Игра» вносит развлекательно-развивающий момент в обучение школьника. Нажатие данной кнопки запускает простейший вариант игры «Сапер» (рис. 14). Суть игры заключается в следующем. На поле 10 на 10 расположено 10 мин. Игроку требуется указать их расположение, не взорвавшись. В противном случае игра заканчивается. Мина отмечается на поле нажатием правой кнопки мыши. Щелчок левой кнопкой мыши на поле без мины отображает на нем число, указывающее информацию о том, сколько мин находится вокруг данного поля.</p>
<p><a href="https://psychology.snauka.ru/?attachment_id=11061" rel="attachment wp-att-11061"><img class="aligncenter" src="https://human.snauka.ru/wp-content/uploads/2015/04/14.bmp" alt="" /></a></p>
<p align="center">Рисунок 14 – Форма «Игра сапер»</p>
<p>Игры, включаемые в подобные проекты, должны носить развивающий характер [10, 11]. С одной стороны они будут служить, также как и гимнастика для глаз, смене вида учебной деятельности, производя положительный эффект на обучение в целом, и отвечать принципу сбережения здоровья на уроках. С другой стороны наличие в них обучающего учебного момента будет способствовать развитию познавательного интереса к предмету изучения.</p>
<p>Итак, пример проекта «В помощь школьнику» наглядно демонстрирует особенности разработки мультимедийных программ по математике учебно-методического характера. Такие проекты возможно создавать не только по предметам физико-математического профиля, но и по другим школьным дисциплинам. Использование подобных проектов в школьном обучении будет при правильном подходе, несомненно, оказывать положительное влияние на ход образовательного процесса. В итоге учитель будет осознанно использовать достоинства учебно-методических мультимедийных проектов при организации обучения в школе. В свою очередь разнообразие методического инструментария позитивно скажется на качестве построения учебного процесса в целом [12, 13]. Вместе с систематическим применением на уроках новых современных образовательных подходов и технологий [14, 15] это позволит качественно улучшить школьное обучение.</p>
]]></content:encoded>
			<wfw:commentRss>https://psychology.snauka.ru/2015/05/4945/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Содержание и особенности разработки игровых мультимедийных проектов обучения математике в среде программирования Lazarus</title>
		<link>https://psychology.snauka.ru/2015/06/5340</link>
		<comments>https://psychology.snauka.ru/2015/06/5340#comments</comments>
		<pubDate>Thu, 25 Jun 2015 18:10:06 +0000</pubDate>
		<dc:creator>Козлов Сергей Валерьевич</dc:creator>
				<category><![CDATA[Педагогика]]></category>
		<category><![CDATA[computer game]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[computer technologies]]></category>
		<category><![CDATA[developing training]]></category>
		<category><![CDATA[informatics]]></category>
		<category><![CDATA[mathematics]]></category>
		<category><![CDATA[multimedia project]]></category>
		<category><![CDATA[profile training]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[информатика]]></category>
		<category><![CDATA[компьютерная графика]]></category>
		<category><![CDATA[компьютерная игра]]></category>
		<category><![CDATA[компьютерные технологии]]></category>
		<category><![CDATA[математика]]></category>
		<category><![CDATA[мультимедийный проект]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[профильное обучение]]></category>
		<category><![CDATA[развивающие обучение]]></category>

		<guid isPermaLink="false">https://psychology.snauka.ru/?p=5340</guid>
		<description><![CDATA[В настоящее время обучение на всех стадиях учебного процесса требует использования мультимедийных образовательных ресурсов [1, 2]. Это обусловлено последними достижениями современных компьютерных технологий, которые позволяют одновременно эффективно воздействовать на различные системы восприятия человека [3]. Мультимедийные ресурсы могут быть эффективно использованы как самостоятельные обучающие среды [4, 5], так и в качестве сопровождения процесса обучения [6, 7]. [...]]]></description>
			<content:encoded><![CDATA[<p>В настоящее время обучение на всех стадиях учебного процесса требует использования мультимедийных образовательных ресурсов [1, 2]. Это обусловлено последними достижениями современных компьютерных технологий, которые позволяют одновременно эффективно воздействовать на различные системы восприятия человека [3]. Мультимедийные ресурсы могут быть эффективно использованы как самостоятельные обучающие среды [4, 5], так и в качестве сопровождения процесса обучения [6, 7].</p>
<p>При обучении младших школьников и учащихся средней школы математике целесообразно на уроках и во внеучебной деятельности применять игровые мультимедийные игры [8]. Они позволяют учителю в игровой форме освоить термины и понятия математической науки. Школьники увлеченно и сосредоточенно выполняют учебные задания, что, несомненно, способствует повышению интереса к изучению учебной дисциплины. Кроме того, учащиеся при таком обучении не только изучают предметную область математики, но и приобретают необходимые каждому умения работы в компьютерных средах.</p>
<p>Проанализируем в данной статье на примере проекта «Маша и медведь в мире математики» основные особенности проектирования подобных обучающих мультимедийных сред средствами языка программирования Lazarus. Также охарактеризуем содержание данного проекта и установим принципы работы в развивающих программных оболочках.</p>
<p>Мультимедийная среда проекта «Маша и медведь в мире математики» представляет собой стандартное окно, в верхней части которого находится строка с названием проекта. В этой строке справа, как и во всех оконных приложениях, размещены три кнопки управления программой – «свернуть», «развернуть» и «закрыть». Ниже расположено универсальное меню, содержащее два пункта – «Игры» и «Выход» (рис. 1). Рабочая область главной формы содержит необходимую информацию о проекте – краткую инструкцию к действиям и приветствие пользователю. Также на главную форму в данном проекте вынесена кнопка «Справка». Нажатие кнопки открывает вспомогательную форму проекта, которая содержит описание назначения проекта и правила работы в программе. В других программных разработках такого рода вместо размещения кнопки на форме в главное меню включают аналогичный пункт [9].</p>
<p><a href="https://psychology.snauka.ru/2015/06/5340/1-12" rel="attachment wp-att-5341"><img class="aligncenter size-full wp-image-5341" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/1.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 1 – Проект «Маша и медведь в мире математики»</p>
<p>Данная программная оболочка содержит четыре развивающие игры познавательного характера. Каждая из игр кратко знакомит ученика с одним из ученых-математиков – Рене Декартом (рис. 2), Леонардо Эйлером (рис. 3), Фридрихом Гауссом (рис. 4) и Бернардом Риманом (рис. 5). Для выбора одной из игр оболочки необходимо войти в пункт «Игры» главного меню программы и щелкнуть мышью на одном из подпунктов. После этого отроется диалоговая форма-приглашение к игре. Она содержит текстовое поле с краткими биографическими сведениями об ученом. Также на форме расположены две кнопки, одна из которых позволяет начать игру, а другая возвратиться на главную форму проекта. Диалог на соответствующей форме с каждым из них отправляет школьника к решению познавательных задач. Для перехода от диалога к игре ученику следует нажать кнопку «Играть» на форме-приглашении.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/2015/06/5340/2-8" rel="attachment wp-att-5342"><img class="aligncenter size-full wp-image-5342" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/2.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 2 – Форма «Знакомство с Рене Декартом»</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/2015/06/5340/3-8" rel="attachment wp-att-5343"><img class="aligncenter size-full wp-image-5343" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/3.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 3 – Форма «Знакомство с Леонардо Эйлером»</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/2015/06/5340/4-6" rel="attachment wp-att-5344"><img class="aligncenter size-full wp-image-5344" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/4.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 4 – Форма «Знакомство с Фридрихом Гауссом»</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/2015/06/5340/5-3" rel="attachment wp-att-5345"><img class="aligncenter size-full wp-image-5345" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/5.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 5 – Форма «Знакомство с Бернардом Риманом»</p>
<p>Рассмотрим содержание и особенности разработки каждой из игр программной оболочки проекта. Первая в списке меню «Игры» – игра вместе с Рене Декартом. Диалог в игре с Рене Декартом открывает форму, которая содержит игру «Пятнашки» (рис. 6). Данная форма представляет собой поле BitMap, которое отображает части исходного изображения. Школьнику требуется с помощью щелчков мыши на частях картинки передвигать их на свободное поле так, чтобы после ряда перемещений изображение стало целым.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/2015/06/5340/6-3" rel="attachment wp-att-5346"><img class="aligncenter size-full wp-image-5346" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/6.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 6 – Форма «Игра с Рене Декартом»</p>
<p>Программная реализация подразумевает объявление двух массивов – эталонного и рабочего игрового поля. В эталонном массиве записана правильная последовательность расположения частей исходного изображения. Рабочий массив содержит текущее расположение частей картинки. Изображение загружается из файла и разбивается на части, при этом размер формы устанавливается равным его размеру. Для отображения изображения используется процедура ShowPole, которая преобразует номер части картинки в координаты соответствующего левого верхнего угла области источника. Процедура Mixer перемешивает части картинки на форме произвольным образом.</p>
<p>Перемещение в пустую клетку поля, выбранной части изображения, осуществляется по щелчку мыши. При этом с помощью процедуры обработки события определяются координаты перемещаемой клетки, и если она является смежной с пустой ячейкой, то действие выполняется. Для этого разработана процедура Move. Она проверяет, возможно ли перемещение клетки, производит обмен ячеек и отображает на форме новое расположение частей изображения. Если текущее расположение совпадает с эталоном картинки, то пользователю предлагается либо закончить игру, либо попробовать сыграть еще раз. В первом случае он возвращается на главную форму проекта, во втором – игра начинается заново с новым произвольно полученным расположением частей исходного изображения. Во время игры ученик может прервать ее в любой момент, воспользовавшись кнопками управления в верхней правой части игровой формы. При этом текущее расположение частей изображения будет запомнено до тех пор, пока игрок не начнет игру заново.</p>
<p>Вторая из списка игр главного меню – игра вместе с Леонардом Эйлером. Она содержит математический кроссворд. Переход к его отгадыванию осуществляется нажатием кнопки «Играть» с диалоговой формы-приглашения данной игры аналогично с первой игрой. При щелчке мыши по этой кнопке открывается две вспомогательные формы. Первая из них содержит собственно кроссворд (рис. 7), а вторая – вопросы к нему (рис. 8).</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/2015/06/5340/7-2" rel="attachment wp-att-5347"><img class="aligncenter size-full wp-image-5347" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/7.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 7 – Форма «Кроссворд»</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/2015/06/5340/8-2" rel="attachment wp-att-5348"><img class="aligncenter size-full wp-image-5348" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/8.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 8 – Форма «Вопросы к кроссворду»</p>
<p>С точки зрения программной реализации формы с кроссвордом на ее задний план помещен фоновый рисунок с помощью объекта BitMap. За отображение рисунка на форме отвечает процедура FormPaint, которая делает изображение видимым. Процедура CreateTab выполняет построение клеток кроссворда на форме. Для этого построчно считываются данные из текстового файла. Данные из файла при прочтении заносятся в массив, который хранит объекты вида Edit. Все клетки кроссворда являются потомками единственного родителя поля Edit1. Они наследуют все свойства исходного объекта типа Edit [10].</p>
<p>Если при его прочтении встречается буква, то на форме отображается клетка в виде объекта Edit. При этом в том случае если буква является заглавной, то над клеткой формируется объект Label, содержащий номер вопроса кроссворда по порядку. В противном случае, если встречается пробел, то на этом месте формы остается пустота. Между клетками в строке, также как и между самими строками, предусмотрены стандартные отступы по ширине и высоте. Номера вопросов объектов Label на форме отображаются сразу при чтении данных из файла над соответствующими клетками в междустрочном пространстве. Значения же полей Edit изначально остаются скрытыми для участника игры. Для этого при загрузке основной формы кроссворда значение свойства Visible всех полей Edit устанавливается равным False.</p>
<p>При отгадывании кроссворда обработка введенного символа осуществляется при помощи процедуры Edit1KeyPress. Если код введенного с клавиатуры символа совпадает с кодом соответствующей буквы, записанным при прочтении из файла, то она отображается в данном поле. Если же буква введена неправильно, то после ввода символ отражен не будет и клетка останется пустой. При этом в заголовке формы кроссворда будет выведено количество текущих ошибок при заполнении клеток кроссворда в данной игре. При полном разгадывании кроссворда в заголовке появится надпись «Кроссворд разгадан».</p>
<p>Форма с вопросами к кроссворду содержит единственное поле Memo. С помощью текстового свойства данного поля Lines в нем построчно записаны вопросы кроссворда. Вопросы разделены на две категории – «По горизонтали» и «По вертикали». Номер возле каждого вопроса соответствует номеру слова отраженного на форме кроссворда.</p>
<p>Игра вместе с Фридрихом Гауссом включает занимательные задачи для младшего школьного возраста (рис. 9). Эти задачи направлены на развитие логического мышления учащихся. Школьнику предложено решить пять математических задач на логику рассуждений.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/2015/06/5340/9-2" rel="attachment wp-att-5349"><img class="aligncenter size-full wp-image-5349" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/9.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 9 – Форма «Занимательные задачки»</p>
<p>На форме расположено пять объектов типа Memo. Они содержат условия для каждой из задач игры. Запись текста задач осуществлена по такому же принципу что и отражение вопросов кроссворда в поле Memo игры вместе с Леонардом Эйлером. Рядом с каждым из данных полей на форме находятся поля Edit. Они служат для ввода школьником ответа на вопрос задачи. После ввода ответов можно проверить количество совершенных при решении всех задач ошибок. Для этого на форме предусмотрено дополнительное поле типа Edit с соответствующим пояснением возле него. Надпись около поля Edit размещена в поле Label. Щелчок мыши на кнопке «Проверить результаты», расположенной под полем Edit, приводит к отображению результатов решения задач школьником. Вычисление результатов реализовано в процедуре Button1Click. В ней задан счетчик неправильных ответов на вопросы задач, начальное значение которого равно нулю. Затем с помощью последовательности условных операторов организовано изменение значения счетчика. Если ответ на вопрос задачи не совпадает с эталоном, то значение счетчика увеличивается на единицу. После проверки всех ответов пользователя, в поле Edit отражается его значение. В других проектах можно увидеть иной подход к выводу результатов решения задач школьником [11]. Возможен вывод ответа на каждую задачу отдельно с помощью совокупности пар полей Label и Edit и одной или нескольких кнопок в зависимости от предлагаемой логики решения набора задач. Также вывод результатов решения всех задач можно осуществить построчно в поле Memo и вывести в случае необходимости комментарии и замечания к решению заданий.</p>
<p>Последняя в списке игр, включенная в данную оболочку, – игра вместе с Бернардом Риманом. Она включает набор познавательных игр, объединенных под общим названием «Веселые игры» (рис. 10). На форме в отделенных друг от друга областях представлены условия четырех игр: «Узнай свое число», «Определить на ощупь», «Не ошибись» и «Лучший счетовод». Учащимся предлагается организовать данные развивающие игры с одноклассниками во внеучебное время.</p>
<p style="text-align: center;"><a href="https://psychology.snauka.ru/2015/06/5340/attachment/10" rel="attachment wp-att-5350"><img class="aligncenter size-full wp-image-5350" src="https://psychology.snauka.ru/wp-content/uploads/2015/06/10.bmp" alt="" /></a></p>
<p style="text-align: center;">Рисунок 10 – Форма «Веселые игры»</p>
<p>Реализация кода данной части программы наиболее простая в проекте «Маша и медведь в мире математике». На форме размещены четыре поля Memo, в каждом из которых с помощью свойства Lines задан текст условия задачи. Для полей Memo данной формы заменены стандартные цвет текста и фона в соответствии с единым оформлением элементов на всех формах проекта.</p>
<p>Итак, при проектировании такого рода программных оболочек видна общая концепция их построения. Программная оболочка проекта состоит из главной формы, содержащей стандартное меню. Меню включает основные пункты и инструменты работы с программой. Каждый пункт меню связан со вспомогательной формой проекта или программным действием. Все формы программы образуют единую взаимосвязанную систему относительно автономных частей оболочки проекта. Так, в рассматриваемом проекте, формы сопоставлены пунктам главного меню, с помощью которых происходит запуск обучающих и развивающих игр, включенных в данных проект.</p>
<p>Основными элементами на формах выступают поля Label и Memo для размещения текста, управляющие действиями кнопки Button и поля Edit для ввода данных и вывода результатов работы программы. Также на диалоговых формах для размещения изображений предусмотрены объекты Image, а для фоновых рисунков – объекты BitMap. Для программной реализации простейших диалогов и вычислительных действий достаточно использования в коде последовательности условных операторов и отдельных или вложенных друг в друга циклических конструкций. Программирование же сценариев даже простейших, как в данном проекте, обучающих игр требует написания собственных процедур и функций в соответствии с логикой проекта. Рассмотренные примеры демонстрируют, что программная реализация содержательных элементов приведенных игр возможна в среде визуального программирования Lazarus. При этом разработчик такого проекта в большинстве своем должен владеть базовыми навыками использования свойств основного набора компонентов и применения действий обработки стандартных событий [12].</p>
<p>Обучающие игры, представленные в данном проекте, необходимо разумно использовать для сопровождения процесса обучения математике в школе. Игры подобного содержания можно применять при должной доработке в соответствии с возрастом учащихся на уроках не только в начальных и средних, но и в старших классах. Сопровождение учебного процесса посредством таких обучающих игр также будет содействовать, наряду с вовлечением учеников в конкурсную деятельность [13] и их участием в профильных олимпиадах [14], всестороннему развитию их умений и навыков в области компьютерных технологий.</p>
<p>Изменяя предметное содержание данных развивающих игр такие проекты можно внедрять в обучение и других учебных дисциплин, например, информатике [15, 16] или же, вообще, истории [17]. При этом особенно целесообразно использование игр межпредметного характера на стыке двух и более школьных предметов. Это будет способствовать получению учащимися более прочных знаний, приобретенных в увлекательной игровой междисциплинарной деятельности.</p>
]]></content:encoded>
			<wfw:commentRss>https://psychology.snauka.ru/2015/06/5340/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Аналогия в обучении информатике</title>
		<link>https://psychology.snauka.ru/2016/11/7491</link>
		<comments>https://psychology.snauka.ru/2016/11/7491#comments</comments>
		<pubDate>Wed, 30 Nov 2016 13:37:45 +0000</pubDate>
		<dc:creator>Лялин Андрей Васильевич</dc:creator>
				<category><![CDATA[Педагогика]]></category>
		<category><![CDATA[analogy]]></category>
		<category><![CDATA[informatics]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[travelling salesman problem]]></category>
		<category><![CDATA[аналогия]]></category>
		<category><![CDATA[задача о коммивояжёре]]></category>
		<category><![CDATA[информатика]]></category>
		<category><![CDATA[решение задач]]></category>

		<guid isPermaLink="false">https://psychology.snauka.ru/?p=7491</guid>
		<description><![CDATA[Об аналогии                                                                                                           [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;" align="center"><strong>Об аналогии</strong></p>
<p style="text-align: right;"><em>                                                                                                                                                                                                                                   Возможно, не существует открытий ни в элементарной,</em></p>
<p style="text-align: right;"><em>                                                                                                                                                                                                                                   ни в высшей математике, ни даже, пожалуй, в любой другой</em></p>
<p style="text-align: right;"><em>                                                                                                                                                                                                                                   области, которые могли бы быть сделаны… без аналогии</em></p>
<p align="right"><em>Д. Пойа</em></p>
<p align="right">Аналогия в обучении информатике, конечно, используется. В основном – просто для объяснения  нового. Например, когда учитель вместо – «<em>просматриваем элементы массива, начиная с элемента с индексом один, пока очередной элемент не станет равным данному числу</em>» говорит – «<em>бежим от начала массива, пока не встретим наше число</em>». Такой «человеческий» язык помогает уловить суть. С меньшими затратами, как для учителя, так и для  ученика. Или, например, когда решаются несколько изменённые задачи. Находили минимум в том же массиве, а сейчас находим максимум. Да, аналогия есть. Но на <em>репродуктивном</em>, очевидном уровне.</p>
<p>Важно показать силу аналогии более высокого уровня. В науке это мощное средство открытий и источник гипотез. В истории множество примеров. Чего стоит одна бионика. Здесь только и занимаются, как «всматриваются» в природу и «списывают» у неё изобретения.</p>
<p>И в информатике есть такие примеры, доступные для учеников. Пусть и редкие. Так известная задача о коммивояжёре имеет три «природных» алгоритма решения [1]. Первый имитирует отжиг металлов. Второй – биологическую эволюцию. Третий – поведение муравьёв. Изучение этих алгоритмов позволит ученикам увидеть и почувствовать, как делаются открытия, на основе<em> аналогии, которая подсказывает и направляет.</em></p>
<p align="center"><strong>Задача коммивояжёра</strong></p>
<p>Имеется <strong>n</strong> городов, стоимости проезда между которыми известны. Коммивояжёру, бродячему торговцу, необходимо начать путешествие от первого города, посетить все остальные <strong>n</strong><strong>-1</strong> городов по одному разу и вернуться обратно. При этом маршрут торговца должен быть самый дешёвый.</p>
<p>Стоимости проезда между городами удобно хранить в таблице <strong>n</strong><strong>*</strong><strong>n</strong>. В первой строке хранятся стоимости проезда от первого города до всех остальных, во второй  строке – от второго города до всех остальных и т.д. Скажем, для пяти городов таблица может быть такой, как на рис. 1.</p>
<div style="text-align: center;">
<dl id="attachment_6311">
<dt><a href="https://psychology.snauka.ru/?attachment_id=6311" rel="attachment wp-att-6311"><img src="https://pedagogika.snauka.ru/wp-content/uploads/2016/11/ris.png" alt="" width="602" height="268" /></a></dt>
<dd>Рис.1. Пример задачи коммивояжёра для пяти городов</dd>
</dl>
</div>
<p align="center">Первый, очевидный, универсальный способ решения. Перебрать все возможные маршруты торговца, а их <strong>(n-1)!, </strong><strong> </strong>и выбрать  маршрут с минимальной стоимостью. Но для больших значений <strong>n</strong><strong> </strong>этот алгоритм бессилен, так как работает непозволительно долго.</p>
<p>Что делать в таких случаях? Искать быстрые приближенные алгоритмы. Они не всегда выдают точное решение, но стремятся получить близкое к нему.</p>
<p align="center"><strong>В поисках идеи</strong></p>
<p><em>Факт.</em> Многие изобретения «списаны» с природы. Так ещё Леонардо да Винчив 15 веке старался подражать природе. Наблюдал за полетом птиц и строил летательные аппараты. И даже написал книгу «О летании птиц», в которую до сих пор  заглядывают и современные конструкторы аэропланов.</p>
<p><em>Другой пример.</em> Это было в годы первой мировой войны. Британский флот получил на вооружение гидрофоны &#8211; приборы для обнаружения германских подводных лодок по шуму винтов. Сторожевые корабли вышли в море и&#8230; изобретение оказалось бесполезным.</p>
<p>Первые гидрофоны походили на большую докторскую трубку. Во время хода корабля движение воды у приемного отверстия создавало шум. Этот шум заглушал звук винтов преследуемой подводной лодки. Приходилось останавливаться и прекращать преследование.</p>
<p>Физику Роберту Вуду было известно, что тюлени отлично слышат при движении. Он предложил гидрофоны, которые имели форму ушной раковины тюленя. И гидрофоны стали «слышать», даже на полном ходу корабля.</p>
<p><em>Ещё одно открытие</em>, «подсмотренное» у природы. Английскому инженеру Сэмюэлю Брауну было поручено построить через реку Твид железнодорожный мост. Мост должен был быть прочным и <em>в то же время</em> не слишком дорогим. Как-то, прогуливаясь по своему саду, Браун заметил паутину, протянутую через дорожку. В ту же минуту ему пришла в голову мысль. Точно так же можно построить и висячий мост на железных цепях.</p>
<p>Примеров очень и очень много [2]. Вернёмся к задаче о коммивояжёре. Оказывается, и её решение можно позаимствовать у природы [3, 4, 5].</p>
<p align="center"><strong>Алгоритм отжига</strong></p>
<p><strong>Наблюдение.</strong> Металлическая деталь отлита. Однако не всегда её охлаждение происходит равномерно. Атомы «застывают» в случайных положениях. Возникают неоднородности, напряжения и изломы в различных местах. Где-то деталь более пластичная. Где-то более хрупкая. Что делают? Металл отжигают. Нагревают до определённой температуры и медленно охлаждают. При высокой температуре атомы, выстроившиеся в «кривую» кристаллическую решетку, покидают свои места. Стремятся занять правильное положение между другими атомами. Так чтобы их общая <em>энергия </em>колебательного движения стала <em>минимальной.</em> Температура медленно понижается. Атомы становятся менее подвижными. Их положения фиксируются. Происходит выравнивание кристаллической решётки. Неоднородности исчезают.</p>
<p><strong>Аналогия. </strong>Возьмём произвольный маршрут торговца. Скорее всего его стоимость не минимальна. Города расположены не в том порядке. Какие-то можно переставить и стоимость уменьшится.</p>
<p>Ситуация та же, что и в только что отлитой детали. Скорее всего энергия колебательных движений её атомов в некоторых местах не минимальна. Атомы застыли в «кривой» кристаллической решётке. Если её исправить, то энергия уменьшиться.</p>
<p>Города – это атомы. Маршрут – кристаллическая решётка. Стоимость – энергия. Перестановка городов в маршруте – движение атомов по кристаллической решётке.  А раз ситуация та же, то можно попробовать отжечь наш «неправильный» маршрут до «правильного» или близкого к нему.</p>
<p><strong>Алгоритм.</strong></p>
<p><strong>1.</strong> Берём какой-нибудь произвольный маршрут – <strong>s</strong><strong>.</strong></p>
<p><strong>2.</strong> Находим его стоимость – <strong>e</strong><strong>(</strong><strong>s</strong><strong>)</strong>.</p>
<p><strong>3.</strong> Считаем этот маршрут наилучшим – <strong>sbest</strong><strong>:=</strong><strong>s</strong><strong>, </strong><strong>ebest</strong><strong>:=</strong><strong>e</strong><strong>(</strong><strong>s</strong><strong>).</strong></p>
<p><strong>4.</strong> Задаём начальную высокую температуру – <strong>t</strong><strong>:=</strong><strong>t</strong><strong>0</strong>. А также комнатную – <strong>tlast</strong>, до которой и будем понижать.</p>
<p><strong>6.</strong> Выбираем коэффициент <strong>р</strong>, который будет отвечать за скорость понижения температуры. Например, <strong>р:=0,9</strong>. А также <strong>k</strong> – время, на протяжении которого мы не будем менять температуру. Например, <strong>k</strong><strong>:=100</strong>.</p>
<p><strong>7.</strong> Пока температура больше комнатной – <strong>t</strong><strong> &gt; </strong><strong>tlast</strong>.</p>
<p>Повторяем <strong>k</strong><strong> </strong>раз при данной температуре <strong>t</strong>.</p>
<p>*Получаем новый маршрут <strong>snew</strong>, переставив два случайных соседних города в текущем маршруте <strong>s</strong>.</p>
<p>*Находим стоимость нового маршрута – <strong>e</strong><strong>(</strong><strong>snew</strong><strong>).</strong></p>
<p>*Если стоимость нового маршрута меньше стоимости текущего – <strong>e</strong><strong>(</strong><strong>snew</strong><strong>)&lt;</strong><strong>e</strong><strong>(</strong><strong>s</strong><strong>)</strong>, то принимаем новый маршрут <strong>– </strong><strong>s</strong><strong>:=</strong><strong>snew</strong><strong>, </strong><strong>e</strong><strong>(</strong><strong>s</strong><strong>):= </strong><strong>e</strong><strong>(</strong><strong>snew</strong><strong>). </strong>То есть к «хорошему» маршруту переходим в любом случае.</p>
<p>*Иначе генерируем случайное число <strong>x</strong> из промежутка (0;1). И если <strong>x</strong><strong>&lt;</strong><strong>t</strong><strong>/</strong><strong>t</strong><strong>0</strong>, то и такой маршрут также принимаем <strong>– </strong><strong>s</strong><strong>:=</strong><strong>snew</strong><strong>, </strong><strong>e</strong><strong>(</strong><strong>s</strong><strong>):= </strong><strong>e</strong><strong>(</strong><strong>snew</strong><strong>). </strong>То есть к более «плохому» маршруту переходим не всегда, а с вероятностью <strong>t</strong><strong>/</strong><strong>t</strong><strong>0</strong>. Эта вероятность будет уменьшаться с понижением температуры <strong>t</strong><strong>.</strong></p>
<p>*Если очередной маршрут лучше – <strong>s</strong><strong>&lt;</strong><strong>sbest</strong>, то запоминаем его – <strong>sbest</strong><strong>:=</strong><strong>s</strong><strong>, </strong><strong>ebest</strong><strong>:=</strong><strong>e</strong><strong>(</strong><strong>s</strong><strong>).</strong></p>
<p>Уменьшаем температуру – <strong>t</strong><strong>:=</strong><strong>p</strong><strong>*</strong><strong>t</strong><strong>.</strong><strong></strong></p>
<p><strong>8.</strong> Выводим наилучший маршрут и его стоимость – <strong>sbest</strong><strong> и </strong><strong>ebest</strong><strong>.</strong></p>
<p>Коээфициенты <strong>t</strong><strong>0, </strong><strong>tlast</strong><strong>, </strong><strong>p</strong><strong> </strong>и<strong> </strong><strong>k</strong><strong> </strong>подбираем эмпирически. Необходимо попробовать разные значения и выбрать наилучшие.</p>
<p><em>Методическое замечание.</em> Аналогию здесь и далее ученики, по возможности, должны увидеть сами и даже предложить свой вариант алгоритма. А вот уже его уточнение и детализация – совместная работа. Программирование не должно представлять сложности – цикл в цикле, простые условия и строки. И ещё, в реальном алгоритме, вероятность принятия «плохого» маршрута вычисляется по другой формуле. А именно, <strong>exp</strong><strong>(-(</strong><strong>e</strong><strong>(</strong><strong>snew</strong><strong>)-</strong><strong>e</strong><strong>(</strong><strong>s</strong><strong>))/</strong><strong>t</strong><strong>). </strong>То есть она зависит не только от температуры, но и от того, насколько «плох» маршрут. При одной температуре более «плохие» маршруты принимаются реже. Но мы взяли более простой вариант. Тот, который может предложить и сам ученик.</p>
<p align="center"><strong>Генетический алгоритм</strong></p>
<p><strong>Наблюдение.</strong> Жизнь на нашей планете развивалась от одноклеточных организмов и до первых животных и людей. Так утверждает <em>эволюционная</em> теория. Действовал естественный отбор и генетическая наследственность. Наиболее приспособленные организмы чаще выживали, чем менее приспособленные. «Срещивались», обмениваясь генами,  и приносили потомство. При этом потомки наследовали признаки своих родителей. Иногда происходили мутации, изменение некоторых генов. Например, под воздействием радиации. Организмы приобретали новые качества. Всё повторялось из поколения в поколение.</p>
<p><strong>Аналогия. </strong>Пусть у нас есть несколько маршрутов для коммивояжёра. Разумеется, у одних стоимость меньше, у других больше. Представим, что это организмы и запустим в этом виртуальном мире эволюцию. Наиболее приспособленные маршруты – с меньшей стоимостью – будут выживать, «скрещиваться» и давать новые маршруты. Те иногда мутировать. Наш мир развиваться. В нём будут появляться всё лучшие и лучшие маршруты. Через достаточно долгое время остановим эволюцию и выберем наиболее приспособленный организм в поколении. Есть надежда, что это будет если не самый лучший (дешёвый) маршрут, но близкий к нему. Вершина эволюции.</p>
<p><strong>Алгоритм.</strong></p>
<p><strong>1. Инициализация.</strong><strong> </strong><em>Создаём начальное поколение.</em>  Случайным образом генерируем <strong>m</strong>  различных маршрутов.</p>
<p><strong>2. Оценка.</strong><strong> </strong><em>Вычисляем  приспособленность каждого  маршрута</em>  текущего поколения.  Приспособленность маршрута равна  единице, поделённой на его стоимость. Чем меньше стоимость, тем больше приспособленность.</p>
<p><strong>3. Отбор</strong><strong>. </strong><em>Из текущего  поколения выбира­ем  наиболее приспособленные </em>маршруты, которые будут  участвовать  в создании следующего поколения. Остальные вымирают. Используем для этого «метод рулетки»<em>.</em><strong></strong></p>
<p>Для обычной рулетки у шарика одинаковые шансы остановиться в любом из секторов. Разделим рулетку на неравные секторы. Тогда вероятность того, что шарик остановится в широком секторе велика, а в узком мала. Пусть каждый сектор нашей «кривой» рулетки отвечает за один из маршрутов. Чем больше приспособленность маршрута, тем больший сектор он получает.</p>
<p>Запускаем рулетку <strong>m</strong> раз. Получаем <strong>m</strong> маршрутов. Они и <em>будут участвовать</em> в следующем этапе эволюции. Некоторые из маршрутов будут выбраны несколько раз, а некоторые &#8211; ни разу. Но в основном, это будут наиболее приспособленные. Мы оставляем шанс и неприспособленным организмам, так как и они могут иметь полезные качества.</p>
<p><strong>4. </strong><strong>Скрещивание. </strong>Все <strong>m</strong><strong> </strong>отобранных  маршрутов произвольно разбиваем на пары и «скрещиваем».</p>
<p>Пара родителей даёт двух потомков. Но не каждая. Это происходит с некоторой вероятностью скрещивания <strong>pc</strong><strong>. </strong>Обычно<strong> </strong> <strong>0,5&lt;</strong><strong>pc</strong><strong>&lt;1. </strong>То есть способными дать потомство оказываются от 50 до 100% родителей.</p>
<p>Если родители получили потомков, то эти потомки и переходят в новое поколение. Иначе переходят сами родители. Таким образом, в новом поколении снова <strong>m</strong> маршрутов.</p>
<p>Как происходит скрещивание? Если случайно взять точку разреза и обменять части маршрутов справа от неё, то возникает проблема.</p>
<p>Так родители:</p>
<p>(<strong>1 2 3 4 5</strong> | 6 7 8 9)</p>
<p>(<strong>1 5 3 6 8</strong> | 9 7 2 4)</p>
<p>дают таких потомков:</p>
<p>(<strong>1 2 3 4 5</strong> | 9 7 2 4)</p>
<p>(<strong>1 5 3 6 8</strong> | 6 7 8 9)</p>
<p>Может оказаться, что в потомках некоторые города будут повторяться, а некоторые вообще отсутствовать. Дети уже не будут маршрутами, так как города должны быть все и по одному разу.</p>
<p>Используем другой способ. Снова случайно выбираем точку разреза. В первого потомка копируем из первого родителя все города до этой точки. А затем просматриваем второго родителя и записываем в потомка только те города, которых в нём ещё нет. Точно так же строится второй потомок. В него копируем из второго родителя все города до точки разреза. Просматриваем первого родителя и записываем в потомка только те города, которых в нём ещё нет.</p>
<p>Например, родители:</p>
<p>(<strong>1 2 3 4 5</strong> | 6 7 8 9)</p>
<p>(<strong>1 5 3 6 8</strong> | 9 7 2 4)</p>
<p>дают таких потомков:</p>
<p>(<strong>1 2 3 4 5</strong> | 6 8 9 7)</p>
<p>(<strong>1 5 3 6 8</strong> | 1 2 7 9)</p>
<p><strong>5. Мутация. </strong><em>Новое поколение мутирует. </em>Но не всё маршруты. Это происходит с некоторой вероятностью мутации <strong>pm</strong>. Обычно <strong>pm</strong><strong>&lt;0,05</strong>. То есть мутирует только около 5%.</p>
<p>Как происходит мутация? В маршруте меняются местами два случайных города. Скажем, был маршрут (1 2 <strong>3 </strong>4 5 6 8 <strong>9</strong> 7), а стал (1 2 <strong>9</strong> 4 5 6 8 <strong>3</strong> 7).</p>
<p><strong>6. Завершение алгоритма</strong>. Итак, в результате <em>оценки, отбора, скрещивания и мутации</em> образуется новое поколение из <strong>m</strong> маршрутов. И всё повторяется <em>заново,</em> с этапа оценки. Поколение сменяет поколение.   До тех пор, пока не пройдёт <strong>n</strong> поколений. В последнем берём самый приспособленный (дешёвый) маршрут. Он и будет решением задачи.</p>
<p>Параметры <strong>m</strong><strong>, </strong><strong>n</strong><strong>, </strong><strong>pc</strong><strong> </strong>и<strong> </strong><strong>pm</strong>  подбираем эмпирически.  Очевидно, например, чем больше маршрутов в поколении, тем медленнее  алгоритм. Но, быть может, поколение будет более разнообразным – и в нем возникнет более приспособленный маршрут.</p>
<p align="center"><strong>Муравьиный алгоритм</strong></p>
<p><strong>Наблюдение.</strong> Муравьи, пожалуй, самые общественные насекомые. Один муравей – в поле не воин. А вот уже их колония справляется со многими задачами. Некоторые ученые даже называют такие колонии «коллективным разумом». Например, группа муравьев прекрасно умеет находить кратчайший путь к пище.</p>
<p>Вначале муравьи двигаются произвольно. При этом оставляя за собой дорожки из особых веществ &#8211; феромонов. Нашедшие самый короткий путь к «кормушке» успевают по нему пробежать больше раз. Путь становится всё заметнее. Привлекает муравьев. Они всё чаще сворачивают на него. На остальных путях феромон постепенно испаряется и они исчезают. И вот, через какое-то время, большинство муравьёв передвигаются по одному кратчайшему пути.</p>
<p><strong>Аналогия. </strong>Очевидная. Запустим муравьев из первого города. И пусть они, вместо коммивояжёра, бегают по различным возможным маршрутам и возвращаются обратно. На дешёвых маршрутах оставляют больше феромона. На дорогих – меньше. Через некоторое время их остановим. Наилучший маршрут, который они найдут, и будем считать решением задачи. <strong></strong></p>
<p><strong>Алгоритм.</strong></p>
<p><strong>1.</strong> Строим какой-нибудь случайный маршрут. Считаем его наилучшим.</p>
<p><strong>2.</strong> Задаем начальный уровень феромона. Вводим ещё одну таблицу <strong>F</strong> размерности <strong>n</strong><strong>*</strong><strong>n</strong>. Для хранения количества феромана между городами. В каждую клетку записываем одно и то же небольшое положительное число. Считаем, что вначале между любыми двумя городами одинаковое количество феромона. Поэтому при первом запуске муравьи будут двигаться произвольно, «не принюхиваясь».</p>
<p><strong>3</strong>. Выбираем коэффицент испарения феромона <strong>p</strong>, из промежутка (0;1). Чем больше возьмём <strong>p</strong>, тем быстрее будет происходить испарение.</p>
<p><strong>4. </strong>Повторяем <strong>k</strong> раз (<strong>k</strong> можно считать временем жизни муравьиной колонии).</p>
<p>* <em>Запускаем</em> <strong>m</strong> муравьёв из первого города. Они пробегают оставшиеся <strong>n</strong><strong>-1</strong> городов по одному разу и возвращаются обратно. Для каждого находим свой маршрут и его стоимость.</p>
<p>Как муравей, путешествуя, определяет следующий город? Во-первых, этот город должен быть ещё не посещённым. Во-вторых, на пути к нему должно быть больше феромона. Применяем знакомый метод «рулетки». Возможным городам ставим в соответствие сектор рулетки. Чем больше феромона, тем больше сектор. Запускаем рулетку. Случай выбирает один город. <strong></strong></p>
<p>*<strong> </strong>Если какой-то муравей нашёл лучший маршрут, чем ранее, то запоминаем этот маршрут и его стоимость.<strong></strong></p>
<p>* <em>Увеличиваем феромон</em> вдоль всех маршрутов, по которым прошли муравьи. На лучших (дешёвых) маршрутах оставляем больше феромона.  Берём первого муравья, просматриваем рёбра из его маршрута и на каждое добавляем феромон. По формуле <strong>F</strong><strong>[</strong><strong>i</strong><strong>,</strong><strong>j</strong><strong>]:=</strong><strong>F</strong><strong>[</strong><strong>i</strong><strong>,</strong><strong>j</strong><strong>]+</strong><strong>Q</strong><strong>/</strong><strong>L</strong><strong>, </strong>где<strong> </strong><strong>L</strong><strong> – </strong>стоимость маршрута, <strong>Q</strong> – некоторая константа. Затем берём второго муравья и т.д.</p>
<p>*<strong> </strong><em>Испаряем феромон</em> на всех рёбрах между городами.<strong> </strong>По формуле<strong> </strong><strong>F</strong><strong>[</strong><strong>i</strong><strong>,</strong><strong>j</strong><strong>]:=(1-</strong><strong>p</strong><strong>)*</strong><strong>F</strong><strong>[</strong><strong>i</strong><strong>,</strong><strong>j</strong><strong>].  </strong>Тем самым<strong> </strong>постепенно удаляем рёбра, которые меньше всего используются.<strong></strong></p>
<p><strong>5. </strong>Выводим наилучший маршрут и его стоимость.</p>
<p>Параметры <strong>p</strong><strong>, </strong><strong>k</strong><strong>, </strong><strong>m</strong><strong> </strong>и<strong> </strong><strong>Q</strong>  подбираем эмпирически.</p>
]]></content:encoded>
			<wfw:commentRss>https://psychology.snauka.ru/2016/11/7491/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
