Статья: Исследование и сравнение способов решения логических задач

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Первый тип задач, задачи типа «кто есть кто?» решаются с помощью трех из описанных методов. Это метод рассуждений, метод таблиц и метод графов. Самые простые можно решить с помощью метода рассуждений, то есть не делая никаких записей, так как все умозаключения можно производить в уме. Если данных больше, или если для решения задачи необходимо представить материал более наглядно, используются метод таблиц и метод графов. Таблица дает возможность объединить все данные задачи и делать пометки на каждом этапе решения. Графы удобны соей наглядностью. Однако зачастую ими неудобно пользоваться при решении задач с большим количеством исходных данных из-за чрезмерной громоздкости.

Задачи «на переливание» решаются с помощью метода блок - схем и метода математического бильярда. Преимущество метода математического бильярда в том, что он является более наглядным, так как суть метода в том, чтобы интерпретировать действия движениями бильярдного шара. Однако этот метод бывает сложным для понимания, и тогда вместо него используют более простой метод блок - схем.

Глава II. Практическая часть. Разработка сайта и тестирующей программы

2.1 Сайт с описанием методов решения логических задач

Как уже было сказано в введении, одной из задач моего диплома было создание сайта с описанием методов решения логических задач для удобства ознакомления с ними. Сайт был написан на языке HTML с использованием элементов JavaScript, так как HTML прост в использовании и изучении и является стандартным языком разметки веб - страниц.

Моей целью было представление информации, содержащейся в теоретической части дипломной работы в более удобной для ознакомления форме, поэтому на сайте есть некоторые элементы, которые облегчают доступ к необходимой информации, такие как текстовые ссылки и разделение станицы на связанные фреймы.

На основной странице сайта расположены три связанных фрейма (рис.1)

Рис.1

Верхний фрейм содержит заголовок и бегущую строку с приветственной фразой (декоративный элемент), задаваемой тегом <marquee>. Программный код этого фрейма представлен в Приложении 1.

В нижнем левом фрейме расположен список методов решения логических задач, рассматриваемых в дипломной работе. Название каждого метода представляет собой ссылку на его описание, отрабатываемую в нижнем правом фрейме. Для создания ссылок был использован тег <a href>, а также одно из его основных свойств - свойство target. Также в качестве элемента декоративного оформления текста была использована функция, написанная на JavaScript. Программный код нижнего левого фрейма представлен в Приложении 2.

2.2 Тестирующая программа

Вторая половина теоретической части моего диплома - программа, позволяющая проверить знания, полученные в результате изучения теоретической части работы. Программа написала в HTML с использованием JavaScript.

Как сказано в введении, я планировала написание тестирующей программы в среде программирования Delphi, однако в ходе работы мной был сделан вывод, что JavaScript больше подходит для создания тестирующей программы в данном случае, так как является прототипно - ориентированным сценарным языком программирования, широко применяемым в создании веб - страниц.

Тестирующая программа представляет собой веб - страницу, на которой размещен тест из пяти задач с несколькими вариантами ответа (рис.2). После прохождения теста программой выставляются две оценки, первая - за правильность решения задач, вторая - за правильность выбора метода решения (рис.3). логический задача сайт тестирующий

Рис.2

Рис.3

В тесте присутствуют задачи на все описываемые в работе методы. Ссылка на тестирующую программу расположена в нижней части фрейма, содержащего ссылки на описание методов на сайте и открывается в отдельном окне. Программный код страницы с тестом представлен в Приложении 3.

Заключение.

В ходе моей работы я достигла своей основной цели: изучить и сравнить различные методы решения логических задач, выполнив поставленные перед началом работы цели:

Изучила подобранную литературу

Описала каждый из методов решения на примере конкретных задач и провела их сравнение

Создала сайт по теме дипломной работы с описанием каждого метода

Написала тестирующую программу для проверки знаний, полученных при прочтении теоретической части моего диплома

Написала отчет о проделанной работе

Составила презентацию результатов исследования в бумажной и электронной формах

Следует добавить, что конечный продукт дипломной работы может быть использован на уроках для ознакомления с методами решения логических задач.

Список литературы

Информатика и ИКТ. Задачник по моделированию. 9-11 класс. Базовый уровень / Под ред. проф. Н. В. Макаровой. - Питер, 2008. - 192 с.: ил.

Информатика и ИКТ. Базовый курс: Учебник для 9 класса / Н. Д. Угринович. - 3-е изд. - М.: БИНОМ. Лаборатория знаний, 2006. - 320 с.: ил.

Программирование в среде Delphi 7. Самоучитель. : - М. : Издательский дом «Вильямс», 2003. - 288 с. : ил.

Логика в информатике /В.Ю. Лыскова, Е.А. Ракитина; М.: Лаборатория Базовых Знаний, 2004. - 160с.:ил.

Приложение 1

<html>

<head>

<title>заголовок</title>

</head>

<body background=f-m.png text=#990045 bgcolor="#FFDCD2">

<h2 align=center>Методы решения логических задач</h2><p>

<center><marquee width=500 height=30 bgcolor=#FFDCD2 direction=left behavior=alternate

scrollamount=3 scrolldelay=9 align=middle>Добро пожаловать на наш сайт!

</marquee></center>

</body>

</html>

Приложение 2

<html>

<head>

<title> ссылки </title>

<SCRIPT>

k=0;

function color()

{cvet=new Array("red","blue","yellow","gold","orange","purple","navy");

head1.style.color=cvet[k];

k++;

if (k==cvet.length)k=0;

setTimeout("color()",200);}

</SCRIPT>

</head>

<body onLoad="color()" background=f2.jpg text=#000098>

<center><img src=k.png align=center width=100 height=83></center><p>

<a href=0.htm target="frame3"> На главную </a><p>

<a>1.Методы решения логических задач</a><p>

<a href=1.htm target="frame3"> Метод рассуждений </a><p>

<a href=2.htm target="frame3"> Метод таблиц</a><p>

<a href=3.htm target="frame3"> Метод графов</a><p>

<a href=4.htm target="frame3"> Метод блок - схем</a><p>

<a href=5.htm target="frame3"> Метод кругов Эйлера</a><p>

<a href=6.htm target="frame3"> Метод математического бильярда</a><p>

<a href=7.htm target="frame3"> Сравнение методов решения логических задач</a><p>

<h3 ID="head1"><i>Вы можете пройти тест на решение логических задач разными методами!</i></h3>

<a href=test_main.htm target=_blank> Тест</a><p>

</body>

</html>

Приложение 3

<html>

<head>

<meta http-equiv="Content-Language" content="ru">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Тест</title>

<script>

function sbros()

{for(i=0;i<5;i++){document.forms[i].reset();}}

function test()

{var re=new Array(7,6,7,8,9);

t=new Array(0,0,0,0,0);

r=0;

k=0;

for(i=0;i<5;i++)

{for(j=6;j<10;j++){if(document.forms[i].elements[j].checked==true)

t[i]=j}}

{if((document.forms[0].elements[0].checked==true)&&(document.forms[0].elements[1].checked==false)&&(document.forms[0].elements[2].checked==true)&&

(document.forms[0].elements[3].checked==false)&&(document.forms[0].elements[4].checked==false)&&(document.forms[0].elements[5].checked==false))k++;}

{if((document.forms[1].elements[0].checked==true)&&(document.forms[1].elements[1].checked==false)&&(document.forms[1].elements[2].checked==true)&&

(document.forms[1].elements[3].checked==false)&&(document.forms[1].elements[4].checked==false)&&(document.forms[1].elements[5].checked==false))k++;}

{if((document.forms[2].elements[0].checked==false)&&(document.forms[2].elements[1].checked==false)&&(document.forms[2].elements[2].checked==false)&&

(document.forms[2].elements[3].checked==true)&&(document.forms[2].elements[4].checked==false)&&(document.forms[2].elements[5].checked==true))k++;}

{if((document.forms[3].elements[0].checked==false)&&(document.forms[3].elements[1].checked==false)&&(document.forms[3].elements[2].checked==false)&&

(document.forms[3].elements[3].checked==false)&&(document.forms[3].elements[4].checked==true)&&(document.forms[3].elements[5].checked==false))k++;}

{if((document.forms[4].elements[0].checked==false)&&(document.forms[4].elements[1].checked==true)&&(document.forms[4].elements[2].checked==false)&&

(document.forms[4].elements[3].checked==false)&&(document.forms[4].elements[4].checked==false)&&(document.forms[4].elements[5].checked==false))k++;}

for(i=0;i<5;i++)

{if(re[i]==t[i])r++};

{alert("Оценка за задачи = "+r+", оценка за выбор методов решения = "+k+".");}}

</script>

</head>

<body bgcolor="FFCCCC">

<form method="POST" action="--WEBBOT-SELF--">

<!--webbot bot="SaveResults" U-File="C:\Users\Nadya-T\Desktop\_private\form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->

<p><b>Задача 1. </b>Левин, Митерев, Набатов работают в банке, в качестве бухгалтера, кассира и экономиста. Если Набатов - экономист, то Митерев - бухгалтер. Если Митерев - не кассир, то Левин - не экономист. Если Левин - бухгалтер, то Набатов - экономист. Кто какую должность занимает?</p>

<p>Каким методом/методами можно решить данную задачу?</p>

<p><input type="checkbox" name="C1" value="ON">рассуждений

<input type="checkbox" name="C2" value="ON">таблиц

<input type="checkbox" name="C3" value="ON">графов

<input type="checkbox" name="C4" value="ON">блок-схем

<input type="checkbox" name="C5" value="ON">кругов Эйлера

<input type="checkbox" name="C6" value="ON">математического бильярда</p>

<p>Выберите правильный ответ:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p><input type="radio" value="V9" name="R1">Левин - бухгалтер,

Митерев - кассир, Набатов - экономист</p>

<p><input type="radio" value="V8" name="R1">Левин - кассир, Митерев -

экономист, Набатов - бухгалтер</p>

<p><input type="radio" value="V7" name="R1">Левин - кассир, Митерев -

бухгалтер, Набатов - экономист</p>

<p><input type="radio" value="V10" name="R1">Левин - экономист, Митерев

- бухгалтер, Набатов - кассир</p>

<p>&nbsp;</p>

</form>

<form method="POST" action="--WEBBOT-SELF--">

<!--webbot bot="SaveResults" U-File="C:\Users\Nadya-T\Desktop\_private\form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->

<p class="MsoNormal"><b>Задача 2. </b>В соревнованиях по гимнастике

участвуют: Аня, Валя, Таня и Даша. Болельщики строят прогнозы:<br>

1) Таня займет I место, Валя - II;<br>

2) Таня займет II место, Даша - III;<br>

3) Аня займет II место, Даша - IV.<br>

По окончании соревнований оказалось, что в каждом предположении только

одно из высказываний каждого болельщика истинно, другое - ложно. Каковы

результаты соревнований, если на каждом месте по одной девушке?</p>

<p>Каким методом/методами можно решить данную задачу?</p>

<p><input type="checkbox" name="C7" value="ON">рассуждений

<input type="checkbox" name="C8" value="ON">таблиц

<input type="checkbox" name="C9" value="ON">графов

<input type="checkbox" name="C10" value="ON">блок-схем

<input type="checkbox" name="C11" value="ON">кругов Эйлера

<input type="checkbox" name="C12" value="ON">математического бильярда</p>

<p>Выберите правильный ответ:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p><input type="radio" value="V9" name="R1">Аня - 2, Валя - 4,

Таня - 1, Даша - 3</p>

<p><input type="radio" value="V10" name="R1">Аня - 3, Валя - 2, Таня -

3, Даша - 1</p>

<p><input type="radio" value="V11" name="R1">Аня - 2, Валя - 1, Таня -

2, Даша - 4</p>

<p><input type="radio" value="V12" name="R1">Аня - 1, Валя - 3, Таня -

2, Даша - 4</p>

</form>

<form method="POST" action="--WEBBOT-SELF--">

<!--webbot bot="SaveResults" U-File="C:\Users\Nadya-T\Desktop\_private\form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->

<p><b>Задача 3. </b>

<span style="font-size: 13.5pt; font-family: Times New Roman; color: black">

Как разделить поровну между двумя семьями 12 литров хлебного кваса,

находящегося в двенадцатилитровом сосуде, воспользовавшись для этого

двумя пустыми сосудами: 8-литровым и 3-литровым? В ответе укажите

количество ходов для решения задачи.</span></p>

<p>Каким методом/методами можно решить данную задачу?</p>

<p><input type="checkbox" name="C13" value="ON">рассуждений

<input type="checkbox" name="C14" value="ON">таблиц

<input type="checkbox" name="C15" value="ON">графов

<input type="checkbox" name="C16" value="ON">блок-схем

<input type="checkbox" name="C17" value="ON">кругов Эйлера

<input type="checkbox" name="C18" value="ON">математического бильярда</p>

<p>Выберите правильный ответ:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

<p><input type="radio" value="V9" name="R1">3</p>

<p><input type="radio" value="V10" name="R1">5</p>

<p><input type="radio" value="V11" name="R1">6</p>

<p><input type="radio" value="V12" name="R1">8</p>

</form>

<form method="POST" action="--WEBBOT-SELF--">

<!--webbot bot="SaveResults" U-File="C:\Users\Nadya-T\Desktop\_private\form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->

<p><b>Задача 4. </b><strong>

<span style="font-size:13.5pt;color:black;font-weight:

normal">В&nbsp; трёх&nbsp; седьмых&nbsp; классах 70 ребят. Из&nbsp; них&nbsp; 27&nbsp; занимаются&nbsp; в&nbsp;

драмкружке,&nbsp; 32&nbsp; поют&nbsp; в хоре,&nbsp; 22&nbsp; увлекаются&nbsp; спортом.&nbsp; В&nbsp; драмкружке&nbsp;

10 ребят из хора, в хоре 6 спортсменов, в драмкружке 8&nbsp; спортсменов;&nbsp; 3&nbsp;

спортсмена&nbsp; посещают&nbsp; и&nbsp; драмкружок&nbsp; и&nbsp; хор. Сколько&nbsp; ребят&nbsp; не&nbsp; поют&nbsp;

в&nbsp; хоре,&nbsp; не увлекаются спортом и не занимаются в драмкружке?</span></strong></p>

<p>Каким методом/методами можно решить данную задачу?</p>

<p><input type="checkbox" name="C19" value="ON">рассуждений

<input type="checkbox" name="C20" value="ON">таблиц

<input type="checkbox" name="C21" value="ON">графов

<input type="checkbox" name="C22" value="ON">блок-схем

<input type="checkbox" name="C23" value="ON">кругов Эйлера

<input type="checkbox" name="C24" value="ON">математического бильярда</p>

<p>Выберите правильный ответ:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>