Читать «Задачник по программированию( для школы )» онлайн

W Cat

Задачник по программированию для школы

Листая старую тетрадь...

Да, нравится мне эта песня, но сейчас, не об этом...

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

На момент написания, для решения задач планировалось использовать Turbo Pascal, время прошло, и эта программа значительно устарела, предлагаю заменить ее на PascalABC.NET – отличная штука, специально создана для обучения программированию, сочетает возможности старого Turbo Pascal и Delphi и много других вкусностей.

Вступление. (которое, можно пропустить)

Задачи здесь, разной сложности, ну, например, такая шутка:

«Все, внимание!!! Всякий кто решит данную задачу за 45 минут, получит годовую 5 не только по информатике, но и по математике. Записываем:

Доказать, что для любых не нулевых значений переменных a, b, c : integer не существует решения следующего уравнения, при n > 2.

an + bn = cn

- Что ты хочешь сказать, Вова?

… ... ...

- Хорошо, Вова, - молодец! За знание классики + 5.

- А почему не годовая?

- Но, ты же не привел доказательства...»

Часто у «продвинутых» учеников возникает вопрос:

- А чё мы должны учить этот древний, никому не нужный Pascal?

Ну, давайте, сравним простейший код:

C++

Pascal

#include <iostream>

#include <cstdlib>

using namespace std;

int main()

{

cout << <Hello, world!< << endl;

system(pause);

return 0;

}

begin

Writeln('Hello, World!');

end.

И дело не в том, что текст на C длиннее.

Учащийся должен понимать, что и как, делает программа.

Если объяснение программы на Паскале займет 2 минуты и можно идти дальше, то в случае С, вы убьете 45 минут на объяснение совершенно не нужной начинающему информации, и совершенно запутаете школьников, т.е - если вам надобно вызвать у учащихся отвращение к программированию то начинайте учить их с С++ или C#.

А после Паскаля, любой си образный язык пойдет «влегкую».

Объясните любопытному, что все процедурные языки, близнецы братья (но Паскаль проще!!!). Для профессионального программиста не составляет большой проблемы перейти с PHP на Java.

Но, как-то, расскажите, что есть не только процедурные языки. Например, о языке Prolog, или такие вкусности как Форт (англ. Forth) или Эйфория.

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

Например:

(1)

Двоичный тренажер

а) Программа задумывает случайное число от 0 до 15 и выдает его в двоичном виде, пользователь должен ввести десятичный(или шестнадцатеричный) аналог.

Полезно решить эту задачу, сюда входят несколько подзадач:

' преобразование числа в двоичный вид

'' контроль введенных пользователем символов

''' разработка интерфейса программы (внешний вид, реакции на ошибки, поощрительные сообщения и т.п.)