Занимательное программирование на Паскале 3. Математические “фокусы”.

Программирование в школе – всегда тема очень сложная для понимания. И хотя именно эта тема имеет очевидное практическое применение (а отсутствие такового – причина для ученика, чтобы заявлять, что это ему знать не надо), мало кто из учеников изучает ее с желанием.

Чтобы немного разнообразить изучение программирование, предлагаю несколько уроков посвятить “занимательному” программированию.

Я предлагаю ученикам создать собственные игры. Конечно, консольные.

Под конец – математические “фокусы”. Ничего волшебного в них нет, просто математические закономерности.

Пример задания для учеников.

Фокус первый

Я умею отгадывать задуманные вами числа.

  1. Задумайте число от 1 до 20
  2. Прибавьте к нему 5.
  3. Результат умножьте на 3.
  4. От того, что получилось, отнимите 15 и запомните ответ.
  5. Если вы назовете мне ответ, я скажу какое число вы загадали.

(Для этого названный ответ нужно разделить на 3. Получится число, задуманное пользователем.)

Окно вывода будет следующим:

Исходный код программы:

Наберите текст данной программы.

Опробуйте “фокус” на себе.

Самостоятельно напишите программы для следующих “фокусов”:

 

Фокус второй

Я превращу любое ваше число в 8.

  1. Задумайте число.
  2. Умножьте его на 2
  3. Прибавьте 4
  4. Умножьте на 4
  5. Отнимите 16
  6. Разделите на задуманное число.
  7. У вас получилось число 8.

Поскольку ответ не зависит от того, что загадал пользователь,  спрашивать у него ничего не надо.

Фокус третий

Я знаю, когда ты родился.

  1. День своего рождения (про себя) умножить на два.
  2. К результату прибавить 5.
  3. Полученный результат умножить на 50.
  4. Прибавить номер месяца, в котором родился.
  5. Попросите человека сказать число. Потом просто отнять 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.

 

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.