Введение
Счет и вычисления – основы порядка в голове.
Иоганн Генрих Песталоцци
Умеете ли вы считать?
Каждый, конечно, скажет «Да!». Умение правильно считать – одно из самых важных для человека в жизни. Возможно, ребенок не знает, кем он будет в будущем, но хорошо понимает, что без умения правильно считать - не обойтись. Это и покупки в магазине, и расчет своего бюджета. Если ты учишься в школе, то без правильного счета невозможно решать задачи, уравнения, а также успешно изучать не только математику, но и другие предметы. Кроме того, после 9 и 11 классов необходимо сдать успешно экзамены. Качество вычислительных умений зависит от того, знает ли ученик правила вычислений и умеет ли правильно выбрать подходящее правило.
На уроках математики мы изучали положительные и отрицательные числа, а также действия с ними. И вот тут у моих одноклассников возникла масса проблем. Ребята неверно выполняют действия (заменяют одно действие другим), «теряют» знаки или наоборот ставят там, где не нужно. Допускается много ошибок при выполнении вычислений, появляются сложности при устном счете. Конечно, в настоящее время на помощь всем приходят всевозможные калькуляторы. Поэтому я решил создать программу, которая поможет ребятам и потренироваться в решении примеров, и проверить свои умения выполнять действия с положительными и отрицательными числами, но также позволит больше заинтересовать ребят в получении правильного результата без калькулятора, так как решение заданий на компьютере значительно интереснее, чем обычное решение примеров в тетради.
Цель работы:
создать программу тренировки и автоматической проверки вычислительных умений.
Задачи:
изучить интернет-источники и литературу по данному вопросу,
выбрать программное обеспечение для реализации проекта,
разработать интерфейс программы,
написать программный код,
протестировать программу.
Гипотеза исследования: формирование вычислительных навыков школьников будет успешным, если использовать для тренировки и проверки знаний компьютерные тренажеры.
Сегодня персональный компьютер превратился в непременное требование нашей работы и жизни. В связи с этим появляется все больший интерес к использованию компьютера для автоматизации различных процессов, в том числе и образовательного процесса. В обучении – это, прежде всего, касается процесса контроля результатов обучения.
Технические средства развиваются очень быстро, при этом уменьшается цена на вычислительную технику, появляются качественные и мощные системы программирования, тем самым увеличивается потребность в системах, позволяющих объективно, быстро и надежно оценивать знания учащихся, предлагая интересные формы взаимодействия с ними. [2]
Компьютерная автоматическая проверка имеет некоторые преимущества:
объективность при оценке результатов,
удобная количественная форма для выражения результатов,
повышенная устойчивость к искажению результатов,
результат проверки появляется сразу после выполнения заданий.
Автоматизация контроля позволяет заметно повысить индивидуальность самого контроля. Появляется гораздо больше возможностей в заданиях с генерированием ответов. Компьютерная проверка знаний используется для контроля знаний, и в этом случае легко ввести временные ограничения или временное отслеживание процесса тестирования, что трудноосуществимо при бумажном тестировании. Преимуществом компьютерной проверки знаний является автоматическая проверка результатов и исключение влияния человеческого фактора.
Но вместе с перечисленными достоинствами такой проверки существуют и некоторые недостатки:
негативные психологические реакции,
воздействие на результаты учащихся предшествующего опыта работы на компьютере,
автоматический контроль не способствует развитию устной и письменной речи учащихся;
выбор ответа может происходить наугад, учителю невозможно проследить логику рассуждений учащихся.
Выбор программного обеспечения
Для создания приложения проверки и тренировки вычислительных умений была выбрана программа Lazarus.
Lazarus — это специальная программа со свободной средой для разработки любых проектов на основе Free Pascal. Lazarus — программа с полностью открытым исходным кодом, т.е. его коды доступны для изучения и изменения каждому. Еще говорят, что среда Lazarus – это RAD (Rapid Application Development) – среда Быстрой Разработки Приложений. Скачать программу можно на официальном сайте производителя, после чего программа устанавливается на компьютер.
Среда Lazarus подходит для всех разработчиков. Интерфейс программы очень простой. Все необходимые компоненты просто перетаскиваются в специальное окно, которое называется формой. Все компоненты располагаются на панели инструментов. Как только компонент размещается на форме, для него сразу создается программный код. Затем уже вручную программируются те действия, которые будет выполнять приложение.
Основная часть
Первая часть работы – это установка приложения. Далее всю работу можно разделить на несколько этапов.
Создание графического интерфейса – расположение всех необходимых элементов на форме.
Написание программного кода, который определит, что делает созданный компонент.
Отладка программы.
Графический интерфейс тренажера
На первом этапе для всех необходимых элементов задаются размеры, изменяются свойства: имя, выравнивание, настройки используемого шрифта, цвет, расположение, видимость, доступность.
Так как создаваемая программа будет проверять умения выполнять вычисления, то необходимы следующие компоненты (рис. 1):
кнопка «Новый пример» для генерации случайного числа и поле, в котором будет прописан этот пример,
метка, в которую будет вводиться ответ,
кнопка «Проверить» по нажатию, которой можно будет понять верно или неверно решен пример,
метка, в которой будет результат проверки,
кнопка «Итого»,
метка для вывода результата: сколько решено всего примеров и сколько из них правильных.
Рис. 1. Первоначальная форма проекта
Все кнопки и метки размещаются на форме, свойства которой можно настроить в инспекторе объектов (рис. 2). Форма нужна для того, чтобы увидеть каким будет окно будущего приложения.
Рис. 2. Инспектор объектов
Кнопка – это элемент управления, предназначенный для запуска каких-то действий. На панели в разделе Standart есть компонент TButton (рис. 3).
Рис. 3. Компонент TButton на панели в разделе Standart и на форме.
Этот компонент был использован для создания управляющих кнопок. Для каждой из кнопок в инспекторе объектов настраиваются свойства:
Caption – текст, отображаемый на кнопке,
Color – цвет кнопки,
Font – все, что относится к настройкам шрифта
Enabled – доступность кнопки
Для отображения нового примера, показа результатов проверки использовался компонент TLabel (рис. 4). Для ввода ответа – компонент TEdit. Основные свойства этих компонентов такие же, как и для кнопок.
Рис. 4. Компоненты TLabel и TEdit на панели в раздале Standart и на форме.
Программный код компонентов
Следующий этап – основная часть работы – это написание программного кода для работы каждого элемента на форме.
Работа с кнопками. Щелчок по кнопке вызывает событие OnClick. Чтобы кнопка работала необходимо написать программный код, который определит, что должно происходить по нажатию кнопки. Кнопка «Новый пример» предназначена для генерации слагаемых для каждого нового примера вида a + b, где a и b – случайные целые положительные и отрицательные числа.
Формула случайного числа из отрезка [a, b]
x:= random (b – a +1) + a.
Процедура для кнопки «Новый пример» предназначена для генерации примера со случайными слагаемыми (программный код в приложении 1)
Процедура для кнопки «Проверить» (приложение 2) предназначена для сравнения введенного ответа с правильным результатом и вывода результата «Верно» или «Неверно». Кроме того, если введен правильный ответ, то этот ответ накапливается в счетчике правильных ответов и кнопка «Проверить» становится недоступной, чтобы невозможно повторно подсчитать правильно введенный ответ. Если введенный ответ неверный, то можно еще раз дать ответ, неправильные ответы тоже подсчитываются. Сумма правильных и неправильных ответов дает общее количество попыток в решении примеров.
Для перечисленных действий были объявлены переменные: a, b, pr_rez, nv_rez, vs_prim. Все эти переменные используются в разных процедурах, поэтому объявляются в начале программы и являются глобальными. А переменные x, sum нужны только в процедуре для кнопки «Проверить», поэтому они объявлены в начале кода процедуры и являются локальными.
В процедуре для кнопки «Проверить» для ввода ответа использовался компонент TEdit. Так как ввод ответа осуществляется в виде текста, а программа сравнивает числа необходимо число-строку преобразовать в непосредственно число, для этого используется функция StrToInt.
Для вывода результата использовался компонент TLabel и его свойство Caption. С его помощью можно задать текст надписи, например Label4.Caption:='Верно'.
Процедура для кнопки «Итого» (приложение 3) предназначена для вывода результатов в следующем виде: выводится количество правильных ответов и общее количество ответов.
Процедура для кнопки «Завершить» (приложение 4) предназначена для окончания работы с приложением. Эта процедура закрывает текущее окно.
Отладка программы
Если введен правильный ответ, то можно было нажимать сколько угодно раз кнопку «Проверить», при этом срабатывал счетчик правильных ответов, и, не решая новый пример можно было получить баллы за уже решенный пример любое количество раз. Поэтому необходимо было после получения правильно ответа сделать кнопку «Проверить» недоступной. Для этого необходимо настроить свойство Button2.Enabled:=false – кнопка неактивна, а при нажатии на кнопку «Новый пример» свойство Button2.Enabled:=true – кнопка вновь активна. Еще было решено добавить вывод сообщения о том, что пользователь должен выбрать новый пример или проверить свой результат, нажав кнопку «Итого». Для этого была использована команда ShowMessage ('Выберите новый пример или нажмите кнопку ИТОГО').
При выполнении программы возникала ошибка, когда вместо ответа-числа введен ответ-строка или оставлено пустое поле и нажата кнопка «Проверить». Для решения этой проблемы вместо функции StrToInt(Edit1.Text) была использована функция StrToIntDef(Edit1.Text,0).
После того, когда была выполнена эта часть работы, было решено на форму добавить таймер для подсчета затраченного времени на решение примеров. Для работы таймера был использован невидимый компонент таймер и объявлена переменная Counter: Integer = 0; после создается процедура для работы таймера.
Процедура для работы таймера (приложение 5).
Таймер – это счетчик, который запускается при нажатии на кнопку «Новый пример» Timer1.Enabled:=true; и останавливается при нажатии на кнопку «Проверить» Timer1.Enabled:=false.
Следующее усовершенствование созданной программы касалось работы с меню. Было решено создать на каждой форме меню «Тема» (рис. 5), в котором можно было сделать выбор действия с помощью подменю «Сложение чисел», «Вычитание чисел», «Умножение чисел».
Рис. 5. Меню для выбора действия
Для каждого нового действия были созданы соответствующие формы по тем же правилам, что и ранее.
Для того, чтобы каждый раз новая форма была показана на экране, в том же месте, что и предыдущая, в инспекторе объектов для всех форм было настроено свойство Position со значением poDesktopCenter для того, чтобы окно выводилось в центре экрана (рис. 6).
Рис. 6. Настройка свойства Position
Для осуществления связи между тремя созданными формами была создана новая форма (рис. 7). С появлением новой – первоначальной формы стало возможно сразу выбрать необходимое действие.
Рис. 7. Начальная форма для выбора действия
Для этого в разделе implementation были добавлены связи между всеми формами usesu_f1,u_f2,u_f3;
На этой форме созданы кнопки, при нажатии на которые происходит выбор действия. Для показа окна с каждым действием использовались команды:
u_f1.itogo.ShowModal;
u_f2.itogos.ShowModal;
u_f3.itogoes.ShowModal;
ShowModal открывает определённое окно, так чтобы нельзя было вернутся к прошлому окну, т.е. если вы выбрали «Сложение», то это окно нужно обязательно закрыть, чтобы перейти в главное меню.
В процессе работы я предложил моим одноклассникам поработать с тренажером и решить несколько примеров. Сначала это были 10 примеров на сложение и вычитание положительных и отрицательных чисел. С тренажером ребята работали 2-3 недели по 2-3 раза в неделю. Результаты проверки представлены на диаграмме (рис. 8).
Рис. 8. Диаграмма «Результаты проверки»
Заключение
В результате проведенной работы я:
разработал тренажер для тренировки и проверки знаний при выполнении действий с положительными и отрицательными числами: разработал интерфейс, написал программный код и выполнил отладку программы.
По итогам проведенной работы могу сказать, что созданный тренажер поможет ученикам решить проблемы при выполнении действий с положительными и отрицательными числами.
Интернет-источники и литература:
Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. «Самоучитель по программированию на FreePascal и Lazarus»/ - Унитех, 2011
Автоматизация контроля результатов обучения учащихся [Электронный ресурс]-https://studbooks.net/2037482/pedagogika/vvedenie – статья в интернете.
Мансуров К.Т. Основы программирования в среде Lazarus. Учебник для студентов и преподавателей, а также для школьников и лиц, самостоятельно изучающих программирование на языке Паскаль, 2010 г.
Сайт-форум по работе в Lazarushttp://www.cyberforum.ru/lazarus/
Сайт-форум по работе во FreePascalhttp://www.freepascal.ru/forum/
Приложения
Приложение 1
Программный код для кнопки «Новый пример»
procedure Titogo.Button1Click(Sender: TObject); //Titogo - названиеформы
begin
randomize;
a:=random(100)-40; //генерация первого слагаемого
b:=random(90)-50; //генерация второго слагаемого
{Преобразование числа в строку и вывод примера в компонент TLabel}
if (b<0) then //вывод примера, если число отрицательное, то добавляем ( )
Label1.Caption:=IntToStr(a) + '+' + '(' + IntToStr (b) + ')'
Else // иначе вывод без скобок ( )
Label1.Caption:= IntToStr (a) + '+' + IntToStr (b);
Button2.Enabled:=true; //Кнопка «Проверить» становится активной
end;
Приложение 2
Программный код для кнопки «Проверить»
procedure Titogo.Button2Click(Sender: TObject);
varx, sum: integer;
begin
x:=StrToIntDef(Edit1.Text,0);//читаем введенный ответ и переводим его в числовой тип
sum:=a+b; //подсчет правильной суммы
if (x=sum) then //если ответ совпадает с правильной суммой
begin
pr_rez:=pr_rez+1; //счетчик правильных ответов +1
Label4.Caption:='Верно'; //пишем результат
ShowMessage ('Выберите новый пример или нажмите кнопку ИТОГО');
Button2.Enabled:=false; //кнопка «Проверить» становится недоступной
end
else
begin
nv_rez:=nv_rez+1;
Label4.Caption:='Неверно'; //пишем результат
end;
vs_prim:= pr_rez+ nv_rez;
end;
Приложение 3
Программный код для кнопки «Итого»
procedure Titogo.itogoClick(Sender: TObject);
var it_r: integer;
begin
it_r:=0;
it_r:=it_r+pr_rez;
it.caption:=inttostr(it_r) + ' из ' + inttostr(vs_prim);
end;
Приложение 4
Программный код для кнопки «Завершить»
procedure Titogo.Button3Click(Sender: TObject);
begin
close;
end;
Приложение 5
Программный код для работы таймера
procedure Titogo.timerClick(Sender: TObject);
begin
Counter:=Counter+1;
timer.Caption:=IntToStr(Counter);
end;