Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДПРЕПИНФ_Лекции_2013.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
624 Кб
Скачать
☆

7.7. Тесты

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

Основным является тест с вариантами ответов, из которых надо выбрать один или несколько правильных. Вот несколько примеров теста с вариантами ответа.

Дан код:

void fun (int x, int *y)

{ *y=x*10; } //1

void main()

{ int a=5,

*b=new int (2); //2

????????;

cout<< a<< “ “<< (*b); //3

getch() ; }

Как вызвать функцию на месте ????????, чтобы вывести 5 50?

Варианты ответов: 1) ошибка в строке //1. 2) ошибка в строке //2. 3) ошибка в строке //3.

4) fun6(a,&b); 5) fun6(a, b); 6) fun6(a, *b);

Из предложенных вариантов правильных может быть несколько. Например, …………..

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

7.8. Комплекс взаимосвязанных задач

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

Пусть дана матрица А(25,10), где a[i,j] – оценка i-го учени­ка по j-мy предмету за одну четверть. Примером комплекса однотипных задач являются следующие:

1) Для каждого ученика найти количество пятерок.

2) По каждому предмету найти количество пятерок.

3) Во всей матрице найти количество пятерок.

В алгоритме первой задачи внутренний цикл по номеру строки, а внешний – по номеру столбца, а во второй задаче наоборот. В алго­ритме третьей задачи несущественно, какой цикл внутренний, какой внешний. Но в отличие от первых двух задач, в которых оператор K5:=0, где K5 – количество пятерок, записывается между операторами цикла, в третьей задаче этот оператор должен быть перед внешним циклом.

Примером последовательности задач с усложнением являются сле­дующие задачи:

1) Найти наибольшее из двух чисел.

2) Найти наибольшее из трех чисел.

3) Найти наибольшее число в одномерном массиве.

  1. Найти наибольшее и наименьшее числа в одномерном массиве и их номера.

  2. Найти второе наибольшее число и количество его повторений.

6) Рассортировать одномерный массив, используя метод выбора (т.е. с помощью нахождения наибольшего элемента).

7) Найти наибольший элемент среди наименьших элементов строк матрицы А[10,20].

8)Найти k-й наибольший элемент в одномерном массиве.

В такой последовательности задач решение следующей задачи ос­новывается на предыдущих.

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

а) массив не рассортирован;

б) массив рассортирован по возрастанию;

в) массив рассортирован по убыванию.

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

Для того, чтобы лучше понять отличие двух базовых управляющих структур “цикл пока” (оператор while) и “цикл до” (оператор repeat языка pascal), можно решить две следующее задачи. Задан массив и число х. Найти сумму чисел, предшествующих числу х, 1) не включая это число, 2) включая его. Для каждой из них можно рассмотреть два случая: 1) число х есть в массиве, 2) числа х может не быть в мас­сиве.

Это были примеры последовательности задач, которые используются при изучении различных тем (оператор if, одномерные табличные величины и оператор цикла, сложные циклы, двумерные табличные величины). Такой же комплекс задач можно решать и при изучении одной темы. Например, в теме “Строки” можно рекомендовать следующую последова­тельность задач c возрастающей сложностью:

1) В слове найти количество буквы “а”.

2) В слове найти, какие буквы встречаются чаше других.

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

4) В тексте найти слова, в которых чаще всего встречается за­данная буква, если между словами один символ-разделитель (; , ! , ? и т.п.) без пробелов.

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

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

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