.

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

Язык: русский
Формат: реферат
Тип документа: Word Doc
62 2269
Скачать документ

ГЛАВА 1. Постановка задачи.

§1. Введение.

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

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

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

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

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

Выбор олимпиады школьников в качестве предметной базы для отработки
педагогической модели интеллектуального испытания обусловлен целым рядом
обстоятельств. Здесь, в первую очередь, следует отметить простоту и
прозрачность олимпиады как педагогического мероприятия с четко
определенным регламентом, в рамках которого многие педагогические
проблемы приобретают смысл, доступный для описания на языке
количественных соотношений. Вторым обстоятельством, выделяющим олимпиаду
в качестве оптимального объекта педагогических исследований, является
уникальность ансамбля ее участников, представляющего простейшую
педагогическую систему, образованную «механическим» соединением
школьников. Данная система действительно уникальна. Она характеризуется
заведомой аддитивностью своих свойств и соответствует наиболее простой
(если не сказать самой примитивной) форме взаимоотношения личности и
коллектива, выражающейся в элементарном сложении.

Простота олимпиады заключается еще и в небольшом разбросе ее участников
по уровням подготовки (все они в большинстве своем хорошо успевающие
школьники). Это создает условия для использования линейных приближений,
что значительно упрощает математическое описание. Моделирование итогов
олимпиады облегчается тем, что распределение участников по способностям
известно априори. В силу многоэтапного характера олимпиады оно
соответствует распределению отобранного ансамбля, в котором основную
массу испытуемых составляют именно «способные» учащиеся, поскольку малая
доля «истинно талантливых» школьников определяется чисто объективными
причинами, а незначительное представительство в ансамбле «откровенно
слабых» учащихся – их отсевом на предыдущих этапах.

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

Непосредственную опытную базу настоящего исследования составили
региональные физические олимпиады школьников, проходившие в Рязани в
2003 г., а также ведомости успеваемости студентов физико-математического
факультета по разным предметам. Это дало возможность судить о гуманности
преподавания на тех или иных кафедрах Рязанского педагогического
университета им. С. А. Есенина. Кроме того, в настоящем исследовании
были использованы материалы, взятые во время прохождения педагогической
практики в средней школе №43 г. Рязани.

§2. Цель работы.

Работа полностью опирается на теоретические исследования Б. С.
Кирьякова, и была призвана дополнить их. С самого начала передо мной
ставилась задача превратить эти исследования, а также накопленную в них
математическую базу, в нечто осязаемое, то есть попросту упростить тот
процесс обработки экспериментальных результатов, который предлагает сам
автор теории. Таким образом, целью данной работы можно считать
разработку автоматизированной системы распределения мест и оценки уровня
качества олимпиадных задач по физике. При выполнении работы, мною была
разработана специальная программа, которая инкапсулирует в себе ту
математическую теорию, которую разработал Б. С. Кирьяков. Совместно с
ним была произведена проверка данной программы на примере городской
олимпиады по физике в 11 классах. Кроме этого, в качестве эксперимента,
через программу «прогнали» и ведомости студентов физмата по некоторым
дисциплинам. При этом были получены очень интересные результаты, о
которых речь пойдет ниже.

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

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

Глава 2. Проблема распределения мест на олимпиаде и ее решение. Оценка
уровня качества олимпиадных заданий.

§1. Теория распределения мест. Проблема дифференцированного подхода.

Проблема автоматизированного распределения мест на олимпиадах не нова.
Существуют определенные системы распределения мест во многих странах
мира (например, в США), и все они имеют ряд очевидных преимуществ по
сравнению со стандартной схемой.

Первое (и самое главное) преимущество – отсутствие «человеческого
фактора» при этой процедуре. Машине чужды эмоции, она бесстрастна, а что
еще нужно для грамотной постановки вопроса. К тому же, в связи с
широким, в последние 5 лет, распространением компьютерной техники в
России, разработка таких систем является достаточно перспективной
областью.

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

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

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

Теперь немного теории.

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

Фактическую базу, определяющую распределение мест, образуют итоги
олимпиады, отражающие успехи школьников в решении олимпиадных задач.
Обычно их представляют в виде (1):

x1, x2, x3, …,xi, …, xn, (1)

где xi = 0, 1, 2, …, m – баллы, набранные участником за задачу с номером
i.

Распределение мест непосредственно проводят не по итогам решения
отдельных задач (1), а по некоторым показателям ?1, ?2, ?3, …,
характеризующим выполнение олимпиадного задания в целом:

(?1, ?2, ?3, …)=?П?( x1, x2, x3, …) (2)

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

Показатели ?1, ?2, ?3, …, определяющие распределение мест, удобно
называть показателями приоритета. Одним из таких показателей, как
известно, является суммарный балл:

S=х1+х2+х3 + … + хi+… + хn (3)

В общем, порядок распределения участников соревнования по местам при
множественном числе показателей приоритета определяется выбором самих
показателей ?1, ?2, ?3, …, их числом l и логикой приоритета,
определяющей место участника олимпиады в соответствии с численными
значениями показателей ?1, ?2, ?3, … . С формальной стороны
использование нескольких показателей при выстраивании какой-либо
одномерной очередности объектов не создает больших сложностей. Для этого
достаточно один показателей считать «главным», второй ?
«второстепенным», третий ? «третьестепенным» и т.д. При распределении
мест главный показатель ?1 следует принимать во внимание в первую
очередь, второстепенный ?2 при равенстве главных, а третьестепенный ?3
при одновременном равенстве главных и второстепенных показателей и т.д.

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

Однако это только формальная сторона дела. Вся сложность проблемы
заключается в том, что ввести отмеченную иерархию показателей приоритета
(«главный», «второстепенный» и т.д.) достаточно непросто. Особенность
ситуации состоит в том, что формальная логика распределения мест при
множественном числе показателей

l?2 (4)

оказывается внутренне противоречивой. Данное противоречие кроется в
равноправной возможности двух подходов к распределению мест между
участниками олимпиады ? одного с ориентацией на большее удаление от
«абсолютного аутсайдера» (участника, не набравшего ни одного балла),
другого с ориентацией на наибольшее приближение к «абсолютному лидеру»
(участнику, давшему исчерпывающее решение всех задач),

Отмеченное противоречие не имеет места при одном показателе приоритета
?1. В этом случае каждый участник, набирая баллы по задачам и удаляясь
от аутсайдера, неминуемо приближается к лидеру.

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

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

Ситуация соответствует случаю, когда возможный порядок распределения
мест таков, что приоритет численных значений показателя ?1, определяется
формальной логикой, а приоритет значений показателя ?2 ? педагогической
целесообразностью. В силу вариативного характера педагогических
соображений данное распределение можно провести дифференцированно, меняя
точку зрения на приоритет значений ?2 по отношению к каким-то выделенным
группам школьников.

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

Приведенные выше соображения говорят о том, что дифференцированный
подход к участникам олимпиады в рамках ее регламента вполне возможен. Он
может быть реализован лишь на стадии распределения мест, но только в том
случае, когда оно проводится по нескольким показателям приоритета (4).
Одного главного показателя ?1, определяющего приоритет выполненного
задания с позиций формальной логики, для этого недостаточно.
Педагогические соображения, обеспечивающие дифференцированный характер
распределения мест, могут быть учтены лишь с помощью второго, третьего и
других показателей более высокой степени.

Смысл главного показателя приоритета ?1 вполне ясен. Суммарный балл (3)
способен исполнять роль лишь главного показателя приоритета ?1, и в
принципе не может служить предметной базой для дифференцированного
подхода.

Возможность использования величины ?2= x1?x2 (5) в качестве
второстепенного показателя приоритета, дополняющего суммарный балл ?1
(4), достаточно очевидна. Если суммарный балл ?1 определяет выполнение
задания с количественной стороны, то показатель ?2 (5) характеризует
качество выполнения задания. Он показывает, в решении какой из задач
(простой или сложной) участник больше преуспел.

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

В общепедагогическом плане пренебрежение дифференцированным подходом
может вызывать лишь глубокое сожаление. Олимпиада, являясь
педагогическим мероприятием, должна заниматься не только констатацией
способностей участников на момент ее проведения, но и заботиться о
создании мотивационной базы для развития скрытых потенциальных
возможностей учащихся. В первую очередь, здесь следует обращать внимание
на участников, которые выступили на олимпиаде пока еще не совсем удачно.
Этих школьников необходимо поддержать и отметить хотя бы самые малые их
успехи на олимпиаде, подкрепив все соответствующим поощрением по
соображениям педагогического характера. Дифференцированный подход к
распределению мест, возможный при выполнении соотношения (4), создает
для этого все необходимые условия.

Следует отметить, что введение множественного числа показателей
приоритета, определяющих саму возможность дифференцированного подхода,
не может быть произвольным. Для этого необходимы различаемые этапы
решения задач или различаемые задачи (что несколько предпочтительнее).
Именно по этой причине для олимпиады должны быть использованы
разноуровневые задачи (2). Только различие этих задач сделало понятным
смысл ?2 (5) как показателя поляризации способностей школьника. Для
одноуровневых неразличимых задач показатель ?2 (в отличие от ?1,
характеризующий выполнение задания с количественной стороны) потерял бы
всякий смысл, что сделало бы невозможным его использование как
показателя приоритета.

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

Таким образом, имея результаты олимпиады (или, например, сессии), можно
точно подсчитать эти три показателя, исходя из них, можно с большой
точностью говорить о распределении мест. Здесь возникает еще один
вопрос: какой из показателей главный, а какие второстепенный и
третьестепенный? Частично эта проблема решена выше, но там описывались
только два параметра. Решение здесь может быть таким. Необходимо вводить
несколько «дифференцированных подходов» на базе значений показателя ?1
(так как он является основным и главным для других). Если значения ?1
для большей части (или для всех) участников отрицательны (это говорит о
потенциальной слабости испытуемого коллектива), то имеет смысл за
второстепенный показатель принять ?2, а за третьестепенный – ?3. Проще
говоря, в этом случае мы акцентируем внимание на репродуктивные
(типовые) задачи, которые, по логике вещей, участники должны решить.
Продуктивные (творческие) же задачи мы как бы не учитываем вообще в силу
того, что такой коллектив может их не решить вообще. Например, таким
ансамблем является коллектив школьников, представленный в программе в
базе dbolymp1. Это условно первый вариант дифференцированного подхода.

Возможен вариант, что значения ?1 для всех участников только равны нулю
или положительны (это признак сильного коллектива). В этом случае за
второстепенный показатель приоритета имеет смысл принять ?3, а за
третьестепенный – ?2. Другими словами, здесь мы делаем упор именно на
продуктивные задачи (они обычно сложнее), а решение типовых задач
считаем саморазумеющимся. Этот подход можно назвать вторым методом
дифференцированного подхода.

И, наконец, самый интересный случай – ?1 для всех участников принимает
и нулевые, и положительные, и отрицательные значения. Здесь процесс
распределения мест несколько усложняется, так как во всем количестве
участников присутствуют и потенциально сильные ученики, и слабые.
Понятно, что всех их сортировать только одним из способов нельзя
(исчезает главный принцип дифференцированного подхода), поэтому мы
прибегаем к комбинационному методу. Суть метода такова. Все многообразие
участников делится пополам, исходя из значений ?1. Тех участников, у
которых ?1?0, относят к условно «сильной» группе и для сортировки
используют метод ?1? ?3? ?2. Те же участники, у которых ?1NP??OOeOAe AE gdyK  !??? 0 ? ¶ ? . 0 ? ”   „ † ? ? ¬ ® ? ? ¶ A A i ? h h h hae4 yyyya$gd»:U ??????????оводство по работе с разработанной системой. Таким образом, на этом можно завершить. В следующей главе вниманию читателей будет представлено описание результатов работы системы с реальными наборами данных. Глава 4. Результаты, полученные в ходе исследования. §1. Результаты, полученные на основе олимпиад. В комплекте с программой поставляется БД, которая представляет собой протокол областной олимпиады по физике в 11 классах. Данная БД размещается в файле DBOLYMP1.DB. Общее количество записей в этой БД равно 32. Ниже будут представлены результаты, для этого набора, которые были получены при помощи разработанной системы. Непосредственно сами фамилии участников можно посмотреть при помощи программы, а мы опишем только результаты по двум операциям: распределение участников по местам и оценка уровня качества заданий. Распределение по местам. Ниже, на рис. 1, представлено окно распределения мест для этой БД. Конфигурация системы для этой БД следующая: количество блоков задач – 3, максимальный балл за задачу – 6, установлен второй порядок сортировки. На рисунке видно, что данный набор является потенциально слабым, так как значения поля «Параметр1» (?1) почти все отрицательны. Поэтому, можно сортировать по второму методу сортировки (сортировка для слабого коллектива). Очевидно, что победителем олимпиады является Панкратов С. А., который набрал максимальный суммарный балл (18). При желании, можно отсортировать участников по одному из трех параметров или автоматически. Рис. 1. Распределение по местам для данной БД. Ниже места участникам присуждаются исходя из положения их результатов в таблице. На следующем рисунке представлены распределения участников по 4 параметрам (?1, ?2, ?3, S). Рис. 2. Распределения по параметрам. Из этого рисунка видно, что до идеального вида этим распределениям далеко. Полученный вид распределений указывает на то, что задания, которые предлагались в качестве базового блока, были слишком простыми (об этом говорит и сам протокол), а задания, которые предлагались в качестве квалификационного блока, оказались практически нерешаемыми. Можно сделать вывод о том, что, скорее всего, комплект заданий, предложенный этим участникам, сбалансированным не будет. Верно ли это предположение или нет, можно узнать лишь в результатах оценки качества этих заданий. Оценка уровня качества заданий. После того, как распределение участников по местам закончено, можно попытаться оценить качество заданий. Окно оценки качества приведено ниже на рис. 3: Рис. 3. Оценка качества заданий. Диаграмма «Сбалансированность комплекта» показывает нам, что наше предположение оказалось верным. Данный комплект не является сбалансированным. Однако два других параметра указывают на достаточно хорошие показатели. Видно, что составителям удалось реализовать большую сложность 2 блока по сравнению с 1, а также большую сложность 3 блока по сравнению с 1, на 100%. Большая же сложность 3 блока по сравнению со 2 реализована лишь на 68,75%, что тоже считается хорошим результатом. Коэффициент мест для данного коллектива равен 0,71875. Это тоже достаточно хороший результат. Описание в целом. В целом об олимпиаде можно сказать следующее: составителям удалось реализовать основные требования к проведению такого мероприятия как олимпиада, однако участники оказались достаточно слабыми для такого класса заданий, которые предлагались им для решения. §2. Результаты, полученные на основе педагогической практики. Кроме БД, которая описана выше в §1, в комплекте поставляется еще одна локальная БД (содержится в файле DBOLYMP5.DB). Она сформирована мной на педагогической практике и включает результаты учащихся моего класса по нескольким работам. Для демонстрации мультифункциональности системы решено было использовать данную БД для демонстрации. При проверке использовалась следующая конфигурация системы: количество блоков задач – 3, использовался смешанный метод сортировки, максимальный балл за задания – 5. Распределение по местам. Окно распределения мест для данного набора данных представлено ниже на рис. 1. Из этого рисунка видно, что лидером по успеваемости по физике в 11Б классе является Нечаева Е., которая набрала самый большой суммарный балл. Этот вывод подтверждается классным журналом. Распределения по четырем параметрам представлены на рис. 2. Из вида этих распределений можно сделать вывод о том, что предложенный мною комплект задач не является сбалансированным. Рис. 1. Распределение мест для этой БД. Более того, если обратить внимание на распределение по суммарному баллу, то видно, что «колокол» имеет максимум не в зоне среднестатистических результатов (так должно быть в идеале), а в зоне, приближенной к максимально возможному баллу. Рис. 2. Распределения по четырем параметрам. Это говорит о том, что задания, предложенные на самостоятельных работах, оказались очень простыми для учащихся и, поэтому, большая их часть набрала высокий балл. Вид других распределений только подтверждает это обстоятельство. Оценка уровня качества. В результате оценки качества для этой БД были получены следующие результаты. Диаграмма сбалансированности комплекта представлена на рис. 3. Она подтверждает наше предположение о несбалансированности комплекта. Точки, каждая из которых характеризует отдельный блок, находятся практически «друг на друге». Для сбалансированности комплекта это неприемлемо. Рис. 3. Диаграмма сбалансированности комплекта. Следующая диаграмма, необходимая для оценки качества, это диаграмма надежности реализации сложности. Она представлена на рис. 4. При помощи данной диаграммы получены следующие численные результаты. Надежность реализации неравенств: x1?x2 – 50%; x2?x3 – 64,29%; x1?x3 – 64,29%. Эти значения говорят о том, что в целом удалось реализовать разную сложность для разных задач. Однако сами по себе эти показатели имеют достаточно маленькие значения. Рис. 4. Диаграмма надежности реализации сложности. И последний параметр, это коэффициент мест. Для данной БД его значение составляет 0,93. Это говорит о том, что 93% всех участников занимают одно заслуженное место, и только 7% делят свое место с другими. Такой результат считается достаточно высоким. Описание в целом. Все параметры, описанные выше, позволяют сделать несколько выводов касательно данной БД. Во-первых, параметры качества заданий говорят о достаточно высоком классе подбора заданий, однако этот подбор не явился в результате сбалансированным, а это большой минус. Во-вторых, необходимо подбирать (для этого коллектива) задачи с большим уровнем сложности. Это может помочь в выявлении скрытых талантов учеников. §3. Результаты, полученные на основе ведомостей студентов. Самым интересным из проделанной работы явились результаты, полученные на основе зимней сессии студентов физико-математического факультета нашего университета. В качестве тестируемых были взяты результаты экзаменов трех групп по трем предметам. Естественно, для чистоты эксперимента было необходимо полное различие в фактической сложности предметов. Поэтому, были выбраны три следующих: возрастная психология, общая физика и математический анализ. Причем последние два предмета были взяты у двух групп отделения «Физика». Сдавались эти экзамены в зимнюю сессию одним и тем же преподавателям. Не секрет, что в студенческих кругах психология считается легким экзаменом, общая физика – средним, а математический анализ – сложным. Однако такое деление предметов во многом зависит от преподавателя. Например, если преподаватель принимает экзамен по математическому анализу очень мягко, то, очевидно, такой экзамен автоматически становится простым, а если экзамен принимается очень жестко, то он становится сложным. Кроме этого сложность предмета зависит еще и от его фактической сути. Например, тот же математический анализ является точной наукой, а это накладывает определенный отпечаток на его сложность. Психология же во многом является очевидным предметом (это многим только кажется). Эти факты склоняют его сложность в более простую сторону. Физика же есть эмпирическая наука. Это значит, что практически все ее законы можно проверить на опыте. Это обстоятельство вызывает определенный интерес у студентов, а это способствует лучшему пониманию предмета. Из этих соображений вытекает суть той идеи, которую мы используем для описания конкретно этих результатов. А идея проста: если есть набор оценок по каким-либо предметам, то, построив распределение по этим оценкам, можно оценить жесткость экзаменаторов по конкретным дисциплинам. Первая БД (содержится в файле DBOLYMP2.DB) представляет собой протокол экзамена по математическому анализу у групп 15 и 16 ФМФ. В результате обработки данного протокола было получено следующее распределение по суммарному баллу: Рис. 1. Распределение по суммарному баллу для DBOLYMP2. Очевидно, что максимально возможный балл за экзамен равен 5, а минимально возможный балл условно принимаем равным 2. Из вида диаграммы можно сделать вывод о том, что самое оценка, которую получила большая часть студентов, это 2. А оценка, которую получила меньшая часть студентов, это 5. На симметричный относительно среднестатистического балла «колокол» полученное распределение явно не похоже. Причина этого может быть объяснена при помощи нескольких вариантов. Первый вариант заключается в чрезвычайной жесткости экзаменатора, то есть, либо он спрашивает со студентов то, чего не рассказывал на лекциях, либо просто спрашивает очень жестко. Второй вариант говорит о том, что сами студенты пришли на экзамен абсолютно не готовыми. Вторая БД (содержится в файле DBOLYMP3.DB) представляет собой протокол экзамена тех же групп, но по общей физике. В результате обработки этого протокола получено следующее распределение. Рис. 2. Распределение по суммарному баллу для DBOLYMP3. Аппроксимируя данное распределение, мы получаем практически идеальный «колокол». Это говорит о сбаланированном подходе экзаменатора к приему экзамена. То есть, при таком подходе осуществляется гуманистический подход к личности студента, а также равномерное соединение всех трех режимов испытания. Третья БД (содержится в файле DBOLYMP4.DB) представляет собой протокол экзамена по возрастной психологии у 11 группы ФМФ. В результате обработки данного протокола получено следующее распределение. На рис. 3 мы видим полную противоположность распределению, полученному при анализе экзамена по математическому анализу. Здесь большая часть студентов получила 5, а совсем малая часть получила 3. Рис. 3. Распределение по суммарному баллу для DBOLYMP4. Двоек нет вообще. Такое распределение характерно для щадящего режима испытания. То есть экзаменационные вопросы, которые предлагались студентам, были очень простыми. Исходя из всех протоколов, описанных выше, можно сделать один очень важный вывод. На экзамене необходимо придерживаться такого варианта испытания, который представлен в описании экзамена по физике. Нет смысла в очень жестком испытании (как на математическом анализе), однако нет смысла и в очень щадящем режиме (как на психологии). Необходимо выбрать «золотую середину». Тогда преподаватель будет на 100% уверен в своей рациональности. Глава 5. Заключение. §1. Итоги исследования. Подводя итоги проведенных исследований, можно выделить ряд моментов. Главный из них заключается в том, что на примере интеллектуального испытания удалось продемонстрировать саму возможность количественного моделирования педагогического процесса, создания автоматизированной системы и показать практическую значимость получаемых результатов. При разработке модели была реализована достаточно последовательная схема педагогического моделирования, в процессе которой была сформулирована замкнутая система исходных педагогических положений; введены понятия идеализированного испытания и идеализированного ансамбля испытуемых школьников; выбран и изучен математический объект, адекватный оптимальным педагогическим итогам испытаний идеализированного ансамбля; дана педагогическая интерпретация свойств этого объекта; определены оптимальный педагогический и математический формат интеллектуального испытания и взаимосвязь его исходных и итоговых показателей; исходя из теоретических предпосылок, разработана автоматизированная система, позволяющая визуализировать смысл всей теории. Разработка модели и системы велась по отношению к конкретным вариантам интеллектуального испытания, в качестве которых были выбраны испытания участников олимпиад по физике и студентов физико-математического факультета РГПУ на различных учебных дисциплинах. Разработанную схему отличает доказательность и обоснованность, определяемые достоверным характером исходных педагогических положений модели и строгостью ее математического аппарата. Этот аппарат дает возможность вести проектирование итогов интеллектуального испытания, может составить основу инструментария педагогической экспертизы испытания на предмет его соответствия критериям общепедагогического характера. Математический аппарат модели позволил построить шкалу сложности задач, ввести понятие сбалансированного комплекта задач, обеспечивающего оптимальное соответствие интеллектуального испытания новой шкале ценностных приоритетов образования. Был рассмотрен вопрос о выборе показателей приоритета, о дифференцированном и недифференцированном порядке распределения испытуемых школьников по занимаемым местам. Интерес представляют выявленные свойства идеализированного ансамбля как «механического» объединения школьников, на уровне которого реализуется наиболее простая, но в то же время и самая фундаментальная форма взаимоотношения личности и коллектива, выражающаяся в элементарном сложении. Подобное объединение школьников, лишенное выраженных межличностных взаимоотношений, хорошо соотносится с ансамблем участников олимпиады. Идеализированный ансамбль отличается заведомой аддитивностью своих свойств. Исследование подобных систем в научном плане имеет большой интерес. История науки дает основания надеяться, что они могут составить простейшую базу для построения количественных шкал, необходимых для измерения педагогических характеристик. Объединение школьников, лишенное выраженных межличностных и групповых взаимоотношений, интересно и по отношению к проблемам учебно-воспитательного коллектива. Оно может сыграть роль первичной матрицы, на фоне которой влияние на коллектив межличностных и групповых взаимоотношений должно прослеживаться наиболее рельефно. Практическую значимость имеют разработанные в рамках модели 2-блочные и 3-блочные макеты олимпиадных заданий, характеризуемые оптимальным соответствием педагогической модели. Макеты были отработаны в условиях реального эксперимента. Итоги этого эксперимента показали, что педагогическая модель подтверждается опытом и имеет хорошие перспективы для практического использования. Она решает большинство накопившихся на уровне региональных олимпиад проблем, способствуя переводу этих олимпиад в режим «талантосбережения». Отмечая положительные моменты проведенного исследования, можно остановиться в заключение на перспективах его практического и теоретического использования. Полученные результаты интересны тем, что являются, строго говоря, лишь первым шагом на пути построения полномасштабной педагогической модели интеллектуального испытания. Характеризуя этот шаг в теоретическом плане, можно сказать, что он был сделан в правильном направлении, поскольку вывел нас на исходные позиции теории вероятности, способной дать вероятностное истолкование различия репродуктивного и продуктивного видов деятельности школьников и процесса их соединения. Полученные данные важны тем, что делают контуры вероятностной модели интеллектуального испытания просматриваемыми. Залогом этого является математический аппарат модели, сформированный в процессе настоящего исследования. Что касается перспектив практического использования системы, то они достаточно понятны. Разработанная система и модель интеллектуального испытания в ее сегодняшнем виде пригодна для определения формата не только олимпиад, но и большинства способов оценки и контроля уровня знаний учащихся (контрольных и самостоятельных работ, экзаменов, тестов). В рамках модели, например, можно определить возможный формат единого экзамена школьников, к которому должна перейти отечественная система образования. Достаточно лишь задать его выходные параметры (разрешение, уровень интеллектуальной нагрузки школьников и т.д.). Модель может быть использована и для решения ряда других задач. Она позволяет исследовать структуру ансамбля испытуемых школьников, что может быть интересным, скажем, для оценки влияния дифференциации системы образования на уровень подготовки школьников. С помощью модели, например, можно оценивать не только уровень сложности задач, но и уровень профессиональной подготовки учителя, через его знание класса и его способность подготовить разноуровневое контрольное задание, сбалансированное по видам учебной деятельности. Приложение. Исходный код системы (по модулям). Модуль 1. Код данного модуля отвечает за формирование главного окна программы. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ToolWin, ComCtrls, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons, DB, DBTables, INIFiles, ShellAPI; type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N10: TMenuItem; N12: TMenuItem; N13: TMenuItem; N14: TMenuItem; N15: TMenuItem; N16: TMenuItem; N17: TMenuItem; N18: TMenuItem; N20: TMenuItem; ToolBar1: TToolBar; DBGrid1: TDBGrid; Panel1: TPanel; GroupBox1: TGroupBox; BitBtn1: TBitBtn; BitBtn2: TBitBtn; GroupBox2: TGroupBox; BitBtn3: TBitBtn; BitBtn4: TBitBtn; GroupBox3: TGroupBox; BitBtn5: TBitBtn; BitBtn6: TBitBtn; dbOlymp: TDatabase; dsOlymp: TDataSource; Table1: TTable; OpenDialog1: TOpenDialog; Label1: TLabel; procedure N5Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure N16Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Config:TIniFile; implementation uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7; {$R *.dfm} procedure TForm1.N5Click(Sender: TObject); begin if Application.MessageBox('Закончить работу?','Выход',mb_YesNo+mb_IconAsterisk)=idYes then Application.Terminate else Exit; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if Application.MessageBox('Закончить работу?','Выход',mb_YesNo+mb_IconAsterisk)=idYes then Action:=caFree else Action:=caNone; end; procedure TForm1.N16Click(Sender: TObject); begin ShellAbout(Form1.Handle,'FoxSoft Olymps v1.0 (beta)','Programm by Chernetckiy Kirill aka Fox',Application.Icon.Handle); end; procedure TForm1.N2Click(Sender: TObject); begin Form6.ShowModal; end; procedure TForm1.FormCreate(Sender: TObject); begin try with dbOlymp do begin Connected:=False; Params.Clear; Params.Add('PATH='+GetCurrentDir+'\Bases'); Params.Add('DEFAULT DRIVER=PARADOX'); Params.Add('ENABLE BCD=FALSE'); Connected:=True; end; except Application.MessageBox('Ошибка инициализации баз данных. Возможно не установлен BDE.','Ошибка',mb_Ok+mb_IconHand); Application.Terminate; end; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin Form2.ShowModal; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin Form3.ShowModal; end; procedure TForm1.N7Click(Sender: TObject); begin Form4.ShowModal; end; procedure TForm1.N10Click(Sender: TObject); begin try if Application.MessageBox('Хотите сохранить текущий вид таблицы?','Подтвердите',mb_YesNo+mb_IconAsterisk)=idNo then Exit else begin Config:=TIniFile.Create(GetCurrentDir+'\Config.ini'); with Config do begin WriteString('GRID_CONFIG','FIO',IntToStr(DBGrid1.Columns[0].Width)); WriteString('GRID_CONFIG','MARK1',IntToStr(DBGrid1.Columns[1].Width)); WriteString('GRID_CONFIG','MARK2',IntToStr(DBGrid1.Columns[2].Width)); WriteString('GRID_CONFIG','MARK3',IntToStr(DBGrid1.Columns[3].Width)); WriteString('GRID_CONFIG','MARK4',IntToStr(DBGrid1.Columns[4].Width)); WriteString('GRID_CONFIG','MARK5',IntToStr(DBGrid1.Columns[5].Width)); WriteString('GRID_CONFIG','MARK6',IntToStr(DBGrid1.Columns[6].Width)); WriteString('GRID_CONFIG','SUMMARK',IntToStr(DBGrid1.Columns[7].Width)); WriteString('GRID_CONFIG','SCHOOL',IntToStr(DBGrid1.Columns[8].Width)); UpdateFile; end; Config.Free; Application.MessageBox('Настройки успешно сохранены!','Сообщение',mb_Ok+mb_IconAsterisk); end; except Application.MessageBox('Ошибка сохранения настроек!','Ошибка',mb_Ok+mb_IconHand); Exit; end; end; procedure TForm1.BitBtn3Click(Sender: TObject); begin Form5.ShowModal; end; procedure TForm1.N3Click(Sender: TObject); var i:integer; begin OpenDialog1.InitialDir:=GetCurrentDir+'\Bases'; if OpenDialog1.Execute then begin try with Table1 do begin Active := False; DatabaseName := 'Olymp'; TableType := ttParadox; TableName := ExtractFileName(OpenDialog1.FileName); Active:=True; end; dsOlymp.DataSet:=Table1; DBGrid1.DataSource:=dsOlymp; Application.MessageBox('База успешно открыта.','Сообщение',mb_Ok+MB_ICONASTERISK); except Application.MessageBox('Ошибка открытия базы. Возможно она не существует.','Ошибка',mb_Ok+MB_ICONHAND); Exit; end; end; end; procedure TForm1.BitBtn4Click(Sender: TObject); begin Form7.ShowModal; end; end. Модуль 2. Код этого модуля отвечает за формирование баз данных, то есть за запись участника. unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons; type TForm2 = class(TForm) Panel1: TPanel; GroupBox1: TGroupBox; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation uses Unit1, DB, DBTables; {$R *.dfm} procedure TForm2.BitBtn1Click(Sender: TObject); begin ModalResult:=mrCancel; end; procedure TForm2.BitBtn2Click(Sender: TObject); var Fio,Sch:string; n1,n2,n3,n4,n5,n6,snum:double; begin Fio:=Edit1.Text; Sch:=Edit2.Text; if (Fio='') or (Sch='') then begin Application.MessageBox('Не введено ФИО или Школа!','Ошибка',mb_Ok+mb_IconHand); Edit1.SetFocus; Exit; end; try n1:=StrToFloat(Edit3.Text); n2:=StrToFloat(Edit4.Text); n3:=StrToFloat(Edit5.Text); n4:=StrToFloat(Edit6.Text); n5:=StrToFloat(Edit7.Text); n6:=StrToFloat(Edit8.Text); except Application.MessageBox('Одно или несколько текстовых полей заполнены неверно!','Ошибка',mb_Ok+mb_IconHand); Edit1.SetFocus; Exit; end; snum:=n1+n2+n3+n4+n5+n6; try with Form1.Table1 do begin Active:=True; Append; FieldValues['COUNTER']:=RecordCount+1;; FieldValues['FIO']:=Fio; FieldValues['MARK1']:=n1; FieldValues['MARK2']:=n2; FieldValues['MARK3']:=n3; FieldValues['MARK4']:=n4; FieldValues['MARK5']:=n5; FieldValues['MARK6']:=n6; FieldValues['SUMMARK']:=snum; FieldValues['SCHOOL']:=Sch; Post; end; Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; Edit4.Text:=''; Edit5.Text:=''; Edit6.Text:=''; Edit7.Text:=''; Edit8.Text:=''; Edit1.SetFocus; Application.MessageBox(PChar('Добавлен участник: "'+Fio+'". Суммарный балл '+FloatToStr(snum)+'.'),'Сообщение',mb_Ok+mb_IconAsterisk); except Application.MessageBox('Ошибка записи участника в БД. Загрузите базу.','Ошибка',mb_Ok+mb_IconHand); Edit1.SetFocus; Exit; end; end; end. Модуль 3. Данный модуль отвечает за удаление участника из базы данных. unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons; type TForm3 = class(TForm) Panel1: TPanel; Label1: TLabel; ComboBox1: TComboBox; BitBtn1: TBitBtn; BitBtn2: TBitBtn; procedure BitBtn1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation uses Unit1; {$R *.dfm} procedure TForm3.BitBtn1Click(Sender: TObject); begin ModalResult:=mrCancel; end; procedure TForm3.FormShow(Sender: TObject); var i:integer; begin try if Form1.Table1.RecordCount=0 then begin Application.MessageBox('В БД нет ни одной записи!','Ошибка',mb_Ok+mb_IconHand); ComboBox1.Color:=clMenu; ComboBox1.Enabled:=False; BitBtn2.Enabled:=False; end else begin ComboBox1.Items.Clear; ComboBox1.Color:=clWhite; ComboBox1.Enabled:=True; BitBtn2.Enabled:=True; Form1.Table1.First; for i:=0 to Form1.Table1.RecordCount-1 do begin ComboBox1.Items.Add(Form1.Table1.FieldValues['FIO']); Form1.Table1.Next; end; end; ComboBox1.ItemIndex:=0; Form1.Table1.First; except Application.MessageBox('Ошибка БД. Возможно база не открыта!','Ошибка',mb_Ok+MB_ICONHAND); ComboBox1.Color:=clMenu; ComboBox1.Enabled:=False; BitBtn2.Enabled:=False; end; end; procedure TForm3.BitBtn2Click(Sender: TObject); var i:integer; begin try Form1.Table1.First; For i:=0 to Form1.Table1.RecordCount-1 do begin if ComboBox1.Text=Form1.Table1.FieldValues['FIO'] then begin Form1.Table1.Delete; Application.MessageBox(PChar('Запись участника "'+ComboBox1.Text+'" успешно удалена'),'Удаление',mb_Ok+mb_IconAsterisk); ModalResult:=mrCancel; Exit; end; Form1.Table1.Next; end; except Application.MessageBox('Ошибка удаления записи!','Ошибка',mb_Ok+mb_IconHand); Exit; end; end; end. Модуль 4. Код этого модуля отвечает за формирование окна конфигурации программы, а также за запись настроек этой конфигурации. unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, INIFiles; type TForm4 = class(TForm) Panel1: TPanel; Label1: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; GroupBox1: TGroupBox; RadioGroup1: TRadioGroup; GroupBox2: TGroupBox; Label2: TLabel; Edit1: TEdit; RadioGroup2: TRadioGroup; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form4: TForm4; Conf:TIniFile; implementation {$R *.dfm} procedure TForm4.BitBtn1Click(Sender: TObject); begin ModalResult:=mrCancel; end; procedure TForm4.BitBtn2Click(Sender: TObject); begin try Conf:=TIniFile.Create(GetCurrentDir+'\Config.ini'); with Conf do begin case RadioGroup1.ItemIndex of 0: WriteString('BLOCK_CONFIG','NUM_BLOCKS','1'); 1: WriteString('BLOCK_CONFIG','NUM_BLOCKS','2'); 2: WriteString('BLOCK_CONFIG','NUM_BLOCKS','3'); end; case RadioGroup2.ItemIndex of 0: WriteString('SORT_CONFIG','SORT_TYPE','1'); 1: WriteString('SORT_CONFIG','SORT_TYPE','2'); 2: WriteString('SORT_CONFIG','SORT_TYPE','3'); end; WriteString('MARK_CONFIG','MARKS_TYPE','ONE_IN_ONE'); WriteString('MARK_CONFIG','MARKS_VALUE',Edit1.Text); UpdateFile; end; Conf.Free; Application.MessageBox('Настройки успешно сохранены!','Сообщение',mb_Ok+mb_IconAsterisk); ModalResult:=mrCancel; except Application.MessageBox('Ошибка записи настроек в INI-файл!','Ошибка',mb_Ok+mb_IconHand); Exit; end; end; end. Модуль 5. Код этого модуля представляет собой программный вариант распределения участников по местам, а также построение распределений по указанным параметрам. Проще говоря, модуль отвечает за окно распределения по местам и все действия, производимые в нем. unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, Buttons, DB, DBTables, INIFiles, TeeProcs, TeEngine, Chart, TeeFunci, Series, Menus; type TForm5 = class(TForm) Panel1: TPanel; Label1: TLabel; DBGrid1: TDBGrid; GroupBox1: TGroupBox; BitBtn1: TBitBtn; Label2: TLabel; Label3: TLabel; Label4: TLabel; RadioGroup1: TRadioGroup; DataSource1: TDataSource; Query1: TQuery; PopupMenu1: TPopupMenu; N11: TMenuItem; N21: TMenuItem; N31: TMenuItem; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; ColorDialog1: TColorDialog; Chart1: TChart; Series1: TBarSeries; procedure FormShow(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form5: TForm5; Conf1:TIniFile; SortType:String; NumMarks:double; implementation uses Unit1; {$R *.dfm} procedure TForm5.FormShow(Sender: TObject); var Default, BCon, MCon:string; i:integer; blocks, param:array [1..3] of double; begin NumMarks:=0; RadioGroup1.ItemIndex:=3; try Conf1:=TIniFile.Create(GetCurrentDir+'\Config.ini'); with Conf1 do begin BCon:=ReadString('BLOCK_CONFIG','NUM_BLOCKS',Default); Label2.Caption:='Количество блоков задач - '+Bcon; MCon:=ReadString('MARK_CONFIG','MARKS_TYPE',Default); SortType:=ReadString('SORT_CONFIG','SORT_TYPE',Default); if MCon='ONE_IN_ONE' then begin NumMarks:=StrToFloat(ReadString('MARK_CONFIG','MARKS_VALUE',Default)); Label3.Caption:='Общий балл для всех задач равен '+FloatToStr(NumMarks); end; if SortType='1' then Label4.Caption:='Слабый коллектив (1,2,3)'; if SortType='2' then Label4.Caption:='Сильный коллектив (1,3,2)'; if SortType='3' then Label4.Caption:='Смешанный коллектив'; end; Conf1.Free; except Application.MessageBox('Ошибка чтения из INI-файла. Проверьте конфигурацию.','Ошибка',mb_Ok+mb_IconHand); Exit; end; try with Query1 do begin Active:=False; SQL.Clear; SQL.Add('Select * from "'+Form1.Table1.TableName+'"'); ExecSQL; end; Query1.Active:=True; Chart1.Enabled:=True; DBGrid1.Enabled:=True; RadioGroup1.Enabled:=True; except Application.MessageBox('Ошибка инициализации БД. Возможно не установлен BDE, или база не открыта.','Ошибка',mb_Ok+MB_ICONHAND); Chart1.Enabled:=False; DBGrid1.Enabled:=False; RadioGroup1.Enabled:=False; Exit; end; if Query1.RecordCount=0 then begin Application.MessageBox('В БД нет ни одной записи.','Сообщение',mb_Ok+MB_ICONASTERISK); RadioGroup1.Enabled:=False; Exit; end; try with Query1 do begin First; for i:=1 to RecordCount do begin if BCon='3' then begin blocks[1]:=FieldValues['MARK1']+FieldValues['MARK2']; blocks[2]:=FieldValues['MARK3']+FieldValues['MARK4']; blocks[3]:=FieldValues['MARK5']+FieldValues['MARK6']; param[1]:=(blocks[1]+blocks[2]+blocks[3])-3*NumMarks; param[2]:=2*(blocks[2]-0.5*(blocks[1]+blocks[3])); param[3]:=(blocks[3]-blocks[1])+NumMarks; end; if Bcon='2' then begin blocks[1]:=FieldValues['MARK1']+FieldValues['MARK2']+FieldValues['MARK3' ]; blocks[2]:=FieldValues['MARK4']+FieldValues['MARK5']+FieldValues['MARK6' ]; blocks[3]:=0; param[1]:=(blocks[1]+blocks[2])-3*NumMarks; param[2]:=(blocks[2]-blocks[1])+NumMarks; param[3]:=0; end; if Bcon='1' then begin blocks[1]:=FieldValues['MARK1']+FieldValues['MARK2']+FieldValues['MARK3' ]+FieldValues['MARK4']+FieldValues['MARK5']+FieldValues['MARK6']; blocks[2]:=0; blocks[3]:=0; param[1]:=blocks[1]-NumMarks; param[2]:=0; param[3]:=0; end; Edit; FieldValues['PARAM1']:=param[1]; FieldValues['PARAM2']:=param[2]; FieldValues['PARAM3']:=param[3]; Next; end; end; except Application.MessageBox('Неизвестная ошибка!','Ошибка',mb_Ok+MB_ICONHAND); Exit; end; try with Query1 do begin Active:=False; SQL.Clear; SQL.Add('select * from "'+Form1.Table1.TableName+'"'); SQL.Add('order by PARAM1 desc, PARAM2 desc, PARAM3 desc'); ExecSQL; end; DataSource1.DataSet:=Query1; DataSource1.Enabled:=True; DBGrid1.DataSource:=DataSource1; DBGrid1.Enabled:=True; Query1.Active:=True; except Application.MessageBox('Ошибка выполнения сортировки участников. Проверьте конфигурацию.','Ошибка',mb_Ok+MB_ICONHAND); Exit; end; end; procedure TForm5.BitBtn1Click(Sender: TObject); begin ModalResult:=mrOk; end; procedure TForm5.RadioGroup1Click(Sender: TObject); var SortStr:string; begin case RadioGroup1.ItemIndex of 0: SortStr:='order by PARAM1 desc'; 1: SortStr:='order by PARAM2 desc'; 2: SortStr:='order by PARAM3 desc'; 3: SortStr:='order by PARAM1 desc,PARAM2 desc,PARAM3 desc'; end; if (SortType='1') and (RadioGroup1.ItemIndex=3) then SortStr:='order by PARAM1 desc, PARAM3 desc, PARAM3 desc'; with Query1 do begin Active:=False; SQL.Clear; SQL.Add('select * from "'+Form1.Table1.TableName+'"'); SQL.Add(SortStr); ExecSQL; Active:=True; end; end; procedure TForm5.N11Click(Sender: TObject); var i,j,NumI:integer; ind,per:double; GrPar, GrPercent, parm:array[1..200] of double; begin NumI:=StrToInt(FloatToStr(NumMarks)); for i:=0 to 200 do begin GrPar[i]:=0; GrPercent[i]:=0; parm[i]:=0; end; per:=0; ind:=0; Query1.First; if Sender=N11 then begin for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['PARAM1']; Query1.Next; end; ind:=-3*NumMarks; for i:=1 to 6*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Параметр 1'; Chart1.BottomAxis.Minimum:=-3*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 6*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; end; if Sender=N21 then begin for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['PARAM2']; Query1.Next; end; ind:=-2*NumMarks; for i:=1 to 4*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Параметр 2'; Chart1.BottomAxis.Minimum:=-2*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 4*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; end; if Sender=N31 then begin for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['PARAM3']; Query1.Next; end; ind:=-1*NumMarks; for i:=1 to 2*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Параметр 3'; Chart1.BottomAxis.Minimum:=-1*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 2*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; end; if Sender=N1 then begin for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['SUMMARK']; Query1.Next; end; ind:=0; for i:=1 to 6*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Суммарный балл'; Chart1.BottomAxis.Minimum:=0*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 6*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; end; Query1.First; end; procedure TForm5.N3Click(Sender: TObject); begin if ColorDialog1.Execute then begin Series1.SeriesColor:=ColorDialog1.Color; end; end; procedure TForm5.N4Click(Sender: TObject); begin if ColorDialog1.Execute then begin Chart1.Gradient.EndColor:=ColorDialog1.Color; Chart1.Gradient.StartColor:=clWhite; end; end; end. Модуль 6. Код этого модуля отвечает за окно и сам процесс создания локальной базы данных. unit Unit6; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, DB, DBTables; type TForm6 = class(TForm) Panel1: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form6: TForm6; implementation uses Unit1; {$R *.dfm} procedure TForm6.BitBtn1Click(Sender: TObject); begin ModalResult:=mrNo; end; procedure TForm6.BitBtn2Click(Sender: TObject); var Comm:TStringList; begin try with Form1.Table1 do begin Active := False; DatabaseName := 'Olymp'; TableType := ttParadox; TableName := Edit1.Text; if not Form1.Table1.Exists then begin with FieldDefs do begin Clear; with AddFieldDef do begin Name := 'Counter'; DataType := ftInteger; Required := True; end; with AddFieldDef do begin Name := 'FIO'; DataType := ftString; Size := 25; end; with AddFieldDef do begin Name := 'MARK1'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK2'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK3'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK4'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK5'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'MARK6'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'SUMMARK'; DataType := ftFloat; Required := True; end; with AddFieldDef do begin Name := 'SCHOOL'; DataType := ftString; Size := 35; end; with AddFieldDef do begin Name := 'PARAM1'; DataType := ftFloat; Required:=False; end; with AddFieldDef do begin Name := 'PARAM2'; DataType := ftFloat; Required:=False; end; with AddFieldDef do begin Name := 'PARAM3'; DataType := ftFloat; Required:=False; end; with AddFieldDef do begin Name := 'PLACE'; DataType := ftInteger; Required:=False; end; end; with IndexDefs do begin Clear; with AddIndexDef do begin Name := ''; Fields := 'COUNTER'; Options := [ixPrimary]; end; with AddIndexDef do begin Name := 'VAL1'; Fields := 'PARAM1'; Options := [ixDescending]; end; with AddIndexDef do begin Name := 'VAL2'; Fields := 'PARAM2'; Options := [ixDescending]; end; with AddIndexDef do begin Name := 'VAL3'; Fields := 'PARAM3'; Options := [ixDescending]; end; end; CreateTable; Application.MessageBox('Локальная база данных успешно создана!','Сообщение',mb_OK+mb_IconAsterisk); end else Application.MessageBox('Локальная база данных уже существует и открыта!','Сообщение',mb_OK+mb_IconAsterisk); end; except Application.MessageBox('Ошибка создания базы данных!','Внимание',mb_OK+mb_IconHand); Exit; end; Form1.Table1.Active:=True; Form1.dsOlymp.DataSet:=Form1.Table1; Form1.DBGrid1.DataSource:=Form1.dsOlymp; Comm:=TStringList.Create; Comm.Clear; Comm.Add(Edit2.Text); Comm.SaveToFile('Bases\'+Edit1.Text+'.olp'); Comm.Free; Form1.Label1.Caption:='Описание БД: '+Edit2.Text; ModalResult:=mrNo; end; end. Модуль 6. Этот модуль отвечает за весь процесс оценки качества заданий. В нем рассчитываются все параметры, и строятся необходимые диаграммы. unit Unit7; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, TeEngine, Series, TeeProcs, Chart, DB, DBTables, INIFiles; type TForm7 = class(TForm) Panel1: TPanel; BitBtn1: TBitBtn; Chart1: TChart; Series1: TBarSeries; DataSource1: TDataSource; Query1: TQuery; GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; Label4: TLabel; Label5: TLabel; Chart2: TChart; Series2: TBarSeries; Chart3: TChart; Series3: TLineSeries; Series4: TBarSeries; Series5: TBarSeries; Label3: TLabel; Series6: TLineSeries; procedure BitBtn1Click(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form7: TForm7; Cf1:TIniFile; implementation uses Unit1, Unit5, foxsoft; {$R *.dfm} procedure TForm7.BitBtn1Click(Sender: TObject); begin ModalResult:=mrOk; end; procedure TForm7.FormShow(Sender: TObject); var i,j,NumI,kl,kz,nz,gr:integer; ind,per,block1,block2,block3,coun,coun1,coun2,coun3,n1,n2,n3,k:double; p1,p2,p3:array [1..50] of double; GrPar, GrPercent, parm:array[1..200] of double; MCon, Default,maxb:string; sbl1,sbl2,sbl3:double; kn, kp:array[1..3] of double; srbl1,srbl2,srbl3,sdxq1,sdxq2,sdxq3:double; dx1,dx2,dx3,sigm1,sigm2,sigm3,m:double; begin try with Query1 do begin Active:=False; SQL.Clear; SQL.Add('Select * from "'+Form1.Table1.TableName+'"'); ExecSQL; end; Query1.Active:=True; Chart1.Enabled:=True; except Application.MessageBox('Ошибка инициализации БД. Возможно не установлен BDE, или база не открыта.','Ошибка',mb_Ok+MB_ICONHAND); Chart1.Enabled:=False; Exit; end; if Query1.RecordCount=0 then begin Application.MessageBox('В БД нет ни одной записи.','Сообщение',mb_Ok+MB_ICONASTERISK); Exit; end; Cf1:=TIniFile.Create(GetCurrentDir+'\Config.ini'); try with Cf1 do begin MCon:=ReadString('MARK_CONFIG','MARKS_TYPE',Default); if MCon='ONE_IN_ONE' then begin maxb:=ReadString('MARK_CONFIG','MARKS_VALUE',Default); end; MCon:=ReadString('BLOCK_CONFIG','NUM_BLOCKS',Default); end; NumI:=StrToInt(maxb); Cf1.Free; except Application.MessageBox('Ошибка чтения из INI-файла. Проверьте конфигурацию.','Ошибка',mb_Ok+mb_IconHand); Exit; end; for i:=0 to 200 do begin GrPar[i]:=0; GrPercent[i]:=0; parm[i]:=0; end; per:=0; ind:=0; Query1.First; for j:=1 to Query1.RecordCount do begin parm[j]:=Query1.FieldValues['SUMMARK']; Query1.Next; end; ind:=0; for i:=1 to 6*NumI+1 do begin for j:=1 to Query1.RecordCount do begin if ind=parm[j] then per:=per+1; end; GrPar[i]:=ind; GrPercent[i]:=per/Query1.RecordCount; per:=0; ind:=ind+1; end; Series1.Clear; Chart1.BottomAxis.Title.Caption:='Суммарный балл'; Chart1.BottomAxis.Minimum:=0*NumMarks; Chart1.BottomAxis.Maximum:=ind-1; For i:=0 to 6*NumI+1 do begin Series1.AddXY(GrPar[i],GrPercent[i]); end; if MCon='2' then begin with Query1 do begin Series2.Clear; Chart2.BottomAxis.Maximum:=RecordCount; Chart2.BottomAxis.Minimum:=0; n1:=0; k:=1; coun:=0; First; for i:=1 to RecordCount do begin block1:=FieldValues['MARK1']+FieldValues['MARK2']+FieldValues['MARK3']; block2:=FieldValues['MARK4']+FieldValues['MARK5']+FieldValues['MARK6']; Series2.AddXY(k,block1-block2); if block1-block2>=0 then coun:=coun+1;

Next;

k:=k+1;

end;

end;

n1:=coun/Query1.RecordCount;

Label1.Caption:=’Надежность реализации – ‘+FloatToStr(n1*100)+’%.’;

end;

if MCon=’3′ then

begin

with Query1 do

begin

Series2.Clear;

Series4.Clear;

Series5.Clear;

Chart2.BottomAxis.Maximum:=RecordCount+10;

Chart2.BottomAxis.Minimum:=0;

n1:=0; n2:=0; n3:=0;

k:=1;

coun:=0; coun2:=0; coun3:=0;

First;

for i:=1 to RecordCount do

begin

block1:=FieldValues[‘MARK1’]+FieldValues[‘MARK2’];

block2:=FieldValues[‘MARK3’]+FieldValues[‘MARK4’];

block3:=FieldValues[‘MARK5’]+FieldValues[‘MARK6’];

Series2.AddXY(k,block1-block2);

Series4.AddXY(k,block2-block3);

Series5.AddXY(k,block1-block3);

if block1-block2>=0 then coun1:=coun1+1;

if block2-block3>=0 then coun2:=coun2+1;

if block1-block3>=0 then coun3:=coun3+1;

Next;

k:=k+1;

end;

end;

n1:=coun1/Query1.RecordCount;

n2:=coun2/Query1.RecordCount;

n3:=coun3/Query1.RecordCount;

Label1.Caption:=’Надежность реализации –
‘+FloatToStr(Okrugl(n1*100,2))+’%, ‘+FloatToStr(Okrugl(n2*100,2))+’%,
‘+FloatToStr(Okrugl(n3*100,2))+’%.’;

end;

if MCon=’1′ then

begin

Series2.Clear;

Series4.Clear;

Series5.Clear;

Label1.Caption:=’Параметр не имеет смысла с 1 блоком.’;

end;

Label3.Caption:=’Количество блоков задач – ‘+Mcon;

Label5.Caption:=’Обшее количество участников
‘+IntToStr(Query1.RecordCount)+’.’;

Label4.Caption:=’Максимальный балл равен ‘+IntToStr(NumI)+’.’;

if MCon‘1’ then

begin

Query1.First;

for i:=1 to Query1.RecordCount do

begin

p1[i]:=Query1.FieldValues[‘PARAM1’];

p2[i]:=Query1.FieldValues[‘PARAM2’];

p3[i]:=Query1.FieldValues[‘PARAM3’];

Query1.Next;

end;

kl:=0;

j:=1;

kz:=Query1.RecordCount;

nz:=0;

gr:=0;

for i:=1 to kz do

begin

with Query1 do

begin

Active:=False;

SQL.Clear;

SQL.Add(‘Select * from “‘+Form1.Table1.TableName+'”‘);

SQL.Add(‘where (PARAM1=’+FloatToStr(p1[j])+’) and
(PARAM2=’+FloatToStr(p2[j])+’) and (PARAM3=’+FloatToStr(p3[j])+’)’);

ExecSQL;

Active:=True;

kl:=Query1.RecordCount;

if kl=1 then j:=j+1;

if kl>1 then

begin

j:=j+kl;

nz:=nz+kl;

gr:=gr+1;

end;

end;

end;

Label2.Caption:=’Коэффициент мест –
‘+FloatToStr(Okrugl((kz-nz+gr)/kz,2))+’.’;

end

else Label2.Caption:=’Для одного блока не рассчитывается.’;

//This is a demo-code for KN & KP

try

with Query1 do

begin

Active:=False;

SQL.Clear;

SQL.Add(‘Select * from “‘+Form1.Table1.TableName+'”‘);

ExecSQL;

end;

Query1.Active:=True;

Chart1.Enabled:=True;

except

Application.MessageBox(‘Ошибка инициализации БД. Возможно не
установлен BDE, или база не открыта.’,’Ошибка’,mb_Ok+MB_ICONHAND);

Chart1.Enabled:=False;

Exit;

end;

sbl1:=0; srbl1:=0;

sbl2:=0; srbl2:=0;

sbl3:=0; srbl3:=0;

dx1:=0; dx2:=0; dx3:=0;

sdxq1:=0; sdxq2:=0; sdxq3:=0;

sigm1:=0; sigm2:=0; sigm3:=0;

Query1.First;

if MCon=’2′ then

begin

for i:=1 to Query1.RecordCount do

begin

block1:=Query1.FieldValues[‘MARK1’]+Query1.FieldValues[‘MARK2’]+Query1.F
ieldValues[‘MARK3’];

block2:=Query1.FieldValues[‘MARK4’]+Query1.FieldValues[‘MARK5’]+Query1.F
ieldValues[‘MARK6’];

sbl1:=sbl1+block1;

sbl2:=sbl2+block2;

Query1.Next;

end;

srbl1:=sbl1/Query1.RecordCount;

srbl2:=sbl2/Query1.RecordCount;

Query1.First;

for i:=1 to Query1.RecordCount do

begin

block1:=Query1.FieldValues[‘MARK1’]+Query1.FieldValues[‘MARK2’]+Query1.F
ieldValues[‘MARK3’];

block2:=Query1.FieldValues[‘MARK4’]+Query1.FieldValues[‘MARK5’]+Query1.F
ieldValues[‘MARK6′];

dx1:=dx1+sqr(block1-srbl1);

dx2:=dx2+sqr(block2-srbl2);

Query1.Next;

end;

sdxq1:=dx1/Query1.RecordCount;

sdxq2:=dx2/Query1.RecordCount;

sigm1:=sqrt(sdxq1);

sigm2:=sqrt(sdxq2);

m:=StrToFloat(maxb);

kn[1]:=((m-srbl1)*((m-srbl1)*srbl1-sqr(sigm1))/(m*sqr(sigm1)-(m-srbl1)*s
rbl1))-1;

kp[1]:=1-((srbl1*((m-srbl1)*srbl1-sqr(sigm1)))/(m*sqr(sigm1)-(m-srbl1)*s
rbl1));

kn[2]:=((m-srbl2)*((m-srbl2)*srbl2-sqr(sigm2))/(m*sqr(sigm2)-(m-srbl2)*s
rbl2))-1;

kp[2]:=1-((srbl2*((m-srbl2)*srbl2-sqr(sigm2)))/(m*sqr(sigm2)-(m-srbl2)*s
rbl2));

Series3.Clear;

for i:=1 to 2 do

Series3.AddXY(kn[i],kp[i]);

end;

if MCon=’1’ then

begin

for i:=1 to Query1.RecordCount do

begin

block1:=Query1.FieldValues[‘SUMMARK’];

sbl1:=sbl1+block1;

Query1.Next;

end;

srbl1:=sbl1/Query1.RecordCount;

Query1.First;

for i:=1 to Query1.RecordCount do

begin

block1:=Query1.FieldValues[‘SUMMARK’];

dx1:=dx1+sqr(block1-srbl1);

Query1.Next;

end;

sdxq1:=dx1/Query1.RecordCount;

sigm1:=sqrt(sdxq1);

m:=StrToFloat(maxb);

kn[1]:=((m-srbl1)*((m-srbl1)*srbl1-sqr(sigm1))/(m*sqr(sigm1)-(m-srbl1)*s
rbl1))-1;

kp[1]:=1-((srbl1*((m-srbl1)*srbl1-sqr(sigm1)))/(m*sqr(sigm1)-(m-srbl1)*s
rbl1));

Series3.AddXY(kn[1],kp[1]);

end;

if MCon=’3′ then

begin

for i:=1 to Query1.RecordCount do

begin

block1:=Query1.FieldValues[‘MARK1’]+Query1.FieldValues[‘MARK2’];

block2:=Query1.FieldValues[‘MARK3’]+Query1.FieldValues[‘MARK4’];

block3:=Query1.FieldValues[‘MARK5’]+Query1.FieldValues[‘MARK6’];

sbl1:=sbl1+block1;

sbl2:=sbl2+block2;

sbl3:=sbl3+block3;

Query1.Next;

end;

srbl1:=sbl1/Query1.RecordCount;

srbl2:=sbl2/Query1.RecordCount;

srbl3:=sbl3/Query1.RecordCount;

Query1.First;

for i:=1 to Query1.RecordCount do

begin

block1:=Query1.FieldValues[‘MARK1’]+Query1.FieldValues[‘MARK2’];

block2:=Query1.FieldValues[‘MARK3’]+Query1.FieldValues[‘MARK4’];

block3:=Query1.FieldValues[‘MARK5’]+Query1.FieldValues[‘MARK6’];

dx1:=dx1+sqr(block1-srbl1);

dx2:=dx2+sqr(block2-srbl2);

dx3:=dx3+sqr(block3-srbl3);

Query1.Next;

end;

sdxq1:=dx1/Query1.RecordCount;

sdxq2:=dx2/Query1.RecordCount;

sdxq3:=dx3/Query1.RecordCount;

sigm1:=sqrt(sdxq1);

sigm2:=sqrt(sdxq2);

sigm3:=sqrt(sdxq3);

m:=StrToFloat(maxb);

kn[1]:=((m-srbl1)*((m-srbl1)*srbl1-sqr(sigm1))/(m*sqr(sigm1)-(m-srbl1)*s
rbl1))-1;

kp[1]:=1-((srbl1*((m-srbl1)*srbl1-sqr(sigm1)))/(m*sqr(sigm1)-(m-srbl1)*s
rbl1));

kn[2]:=((m-srbl2)*((m-srbl2)*srbl2-sqr(sigm2))/(m*sqr(sigm2)-(m-srbl2)*s
rbl2))-1;

kp[2]:=1-((srbl2*((m-srbl2)*srbl2-sqr(sigm2)))/(m*sqr(sigm2)-(m-srbl2)*s
rbl2));

kn[3]:=((m-srbl3)*((m-srbl3)*srbl3-sqr(sigm3))/(m*sqr(sigm3)-(m-srbl3)*s
rbl3))-1;

kp[3]:=1-((srbl3*((m-srbl3)*srbl3-sqr(sigm3)))/(m*sqr(sigm3)-(m-srbl3)*s
rbl3));

Series3.Clear;

for i:=1 to 3 do

Series3.AddXY(kn[i],kp[i]);

end;

m:=0;

Series6.Clear;

for i:=0 to 20 do

begin

Series6.AddXY(m,-1*m);

m:=m+2;

end;

end;

end.

Модуль 7.

Этот модуль носит вспомогательный характер. Он необходим для правильного
округления десятичных чисел с указанной степенью точности.

unit foxsoft;

interface

uses SysUtils;

function Okrugl(cs:double;numb:integer):double;

implementation

function Okrugl(cs:Double;numb:integer):double;

var

db,db1,db2:double;

i:int64;

ii,ink,i1:integer;

st:string;

begin

db:=db-int(cs);

ink:=1;

for ii:=1 to numb do ink:=ink*10;

db1:=db*ink;

db2:=cs*ink*100;

i:=trunc(int(db2)/100);

i1:=Trunc(db2-i*100);

if i1>49 then inc(i);

Result:=i/ink;

end;

end.

Литература.

Кирьяков Б. С. Педагогическая модель интеллектуального испытания
школьников. – Рязань: Изд-во «Русское слово», 2002.

Кирьяков Б. С. Педагогическая модель интеллектуального испытания
учащихся/Вестник Рязанского государственного педагогического
университета. Рязань: РГПУ, 2001.

Шарапков А. Н., Кирьяков Б. С. Исследование гуманности режима
соревнования на олимпиадах школьников. // Рязанские физические олимпиады
// Рязань: «РИНФО», 2000. Выпуск 8.

Кирьяков Б. С. Проблемы проведения олимпиад в условиях дифференциации
уровня подготовки школьников // Рязанские физические олимпиады// Выпуск
8, – Рязань: Изд-во «РИНФО», 2000.

Кирьяков Б. С. Параметры интеллектуального испытания учащихся на
олимпиаде// Рязанские физические олимпиады// Выпуск 9, – Рязань, 2001.

Лишер Р. Delphi. Справочник. – Пер. с англ. – СПб.: «Символ-Плюс», 2001.

Фаронов В. В. Delphi 5. Руководство программиста. – М.: «Нолидж», 2001.

Озеров В. Delphi. Советы программистов. – СПб.: «Символ-Плюс», 2003.

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Ответить

Курсовые, Дипломы, Рефераты на заказ в кратчайшие сроки
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020