25/04/2017 12:56
Парадоксы образования
Чем глубже погружаюсь в работу со школьниками, тем больше удивляюсь. Рассматривали на днях задачу как определить, является ли число простым. От тривиального перебора всех возможных делителей перешли к перебору только нечетных чисел, меньших квадратного корня из данного числа. Так вот, совсем не вычисление целочисленного квадратного корня вызвало наибольшие проблемы. В тупик учеников поставила чисто техническая задача: как выйти из цикла до его завершения.
Допустим, есть оператор
for p:= 3 to r do
if n mod p = 0 then
<здесь нужно объявить, что число не простое и завершить цикл>;
И вот засада: оператора типа exit или return в Паскале нет, а goto использовать запрещают религиозные убеждения. Можно было бы плюнуть, поскольку в любом промышленном паскалеподобном языке exit есть, но мне хотелось, чтобы дети включили мозг и нашли таки очевидное с моей точки зрения решение. А они не смогли. :(
И еще одна беда. Паскалевский цикл for работает только с приращениями 1 или -1, в нем нет никакого step. Что за психологическая проблема мешает использовать в таком случае while, я не знаю.
Допустим, есть оператор
for p:= 3 to r do
if n mod p = 0 then
<здесь нужно объявить, что число не простое и завершить цикл>;
И вот засада: оператора типа exit или return в Паскале нет, а goto использовать запрещают религиозные убеждения. Можно было бы плюнуть, поскольку в любом промышленном паскалеподобном языке exit есть, но мне хотелось, чтобы дети включили мозг и нашли таки очевидное с моей точки зрения решение. А они не смогли. :(
И еще одна беда. Паскалевский цикл for работает только с приращениями 1 или -1, в нем нет никакого step. Что за психологическая проблема мешает использовать в таком случае while, я не знаю.
Tags: