Разложения числа на слагаемые (пример нелинейного урока) – 1

В статье рассматривается пример разработки содержания нелинейного урока по информатике.

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

Рассмотрим построение нелинейного урока информатики на примере решения проблемы разложения числа на слагаемые.

Задача. Дано натуральное число n. Необходимо получить все разложения числа n на сумму натуральных слагаемых.

Задача имеет достаточно простое решение и является классическим примером рекурсивного программирования [2].

Program task;

Var

m: Array [1..n] Of Integer;

count, i, n: Integer;

s: Integer;

Procedure print;

Var i: Integer;

Begin

For i:=1 To count 1 Do Write(m[i], ‘ ‘);

Writeln;

End;

Procedure solve(a,k: Integer);

Var i: Integer;

Begin

For i:=k To a Do Begin

m[count]:=i;

Inc(s, i); Inc(count);

If s=n Then print;

solve(a i, i);

Dec(count); Dec(s, i);

End;

End;

Begin

ReadLn(n);

s:=0; count:=1;

solve(n,1);

ReadLn

End.

Похожие записи

Добавить комментарий