Программирование в школе – всегда тема очень сложная для понимания. И хотя именно эта тема имеет очевидное практическое применение (а отсутствие такового – причина для ученика, чтобы заявлять, что это ему знать не надо), мало кто из учеников изучает ее с желанием.
Чтобы немного разнообразить изучение программирование, предлагаю несколько уроков посвятить “занимательному” программированию.
Я предлагаю ученикам создать собственные игры. Конечно, консольные.
Под конец – математические “фокусы”. Ничего волшебного в них нет, просто математические закономерности.
Пример задания для учеников.
Фокус первый
Я умею отгадывать задуманные вами числа.
- Задумайте число от 1 до 20
- Прибавьте к нему 5.
- Результат умножьте на 3.
- От того, что получилось, отнимите 15 и запомните ответ.
- Если вы назовете мне ответ, я скажу какое число вы загадали.
(Для этого названный ответ нужно разделить на 3. Получится число, задуманное пользователем.)
Окно вывода будет следующим:
Исходный код программы:
Наберите текст данной программы.
Опробуйте “фокус” на себе.
Самостоятельно напишите программы для следующих “фокусов”:
Фокус второй
Я превращу любое ваше число в 8.
- Задумайте число.
- Умножьте его на 2
- Прибавьте 4
- Умножьте на 4
- Отнимите 16
- Разделите на задуманное число.
- У вас получилось число 8.
Поскольку ответ не зависит от того, что загадал пользователь, спрашивать у него ничего не надо.
Фокус третий
Я знаю, когда ты родился.
- День своего рождения (про себя) умножить на два.
- К результату прибавить 5.
- Полученный результат умножить на 50.
- Прибавить номер месяца, в котором родился.
- Попросите человека сказать число. Потом просто отнять 250 от получившегося, и готово. Получится 4 или 3 цифры. Первые 2 (может быть и одна цифра) – день, а две последние – месяц.
Месяц всегда занимает два числа (например, июнь – 06).
Получить месяц можно операцией a mod 100
Пример сообщения на экране:
Вы родились 1 08
Исходный код первого фокуса
program focus1; var a:integer; begin writeln('Загадайте число от 1 до 20. Запомните это число. Как только справитесь, нажмите Enter...'); readln; writeln('Прибавьте к нему 5. Как только справитесь, нажмите Enter...'); readln; writeln('Результат умножьте на 3. Как только справитесь, нажмите Enter...'); readln; writeln('От того, что получилось, отнимите 15. Как только справитесь, нажмите Enter...'); readln; writeln('Введите число, которое у вас в результате получилось.'); readln(a); writeln(' Вы загадали ',a/3:5:0); end.
ЩФ