25/04/2017

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

Допустим, есть оператор

for p:= 3 to r do 
    if n mod p = 0 then
        <здесь нужно объявить, что число не простое и завершить цикл>;

И вот засада: оператора типа exit или return в Паскале нет, а goto использовать запрещают религиозные убеждения. Можно было бы плюнуть, поскольку в любом промышленном паскалеподобном языке exit есть, но мне хотелось, чтобы дети включили мозг и нашли таки очевидное с моей точки зрения решение. А они не смогли. :(

И еще одна беда. Паскалевский цикл for работает только с приращениями 1 или -1, в нем нет никакого step. Что за психологическая проблема мешает использовать в таком случае while, я не знаю.



Профиль

waspagv: (Default)
DCS Foyle

March 2025

M T W T F S S
     12
3456789
10111213141516
17181920212223
242526272829 30
31      

Style Credit

Expand Cut Tags

No cut tags
Page generated 04/07/2025 00:20
Powered by Dreamwidth Studios