Выбрать главу

Затем они раздвигаются и в середину записываются две следующие (вторая и предпоследняя) и т.д. в результате строка печатается разъезжаясь из центра.

б) печатаются сначала средние буквы строки (одна или две – в зависимости четное число символов в строке или нет) затем парами печатаются остальные символы.

(6)

Написать программу, в которой строка будет печататься:

а) сверху вниз

б) снизу вверх

в) наискосок

(7)

Написать программу, в которой в середине экрана выводится строка, а затем:

а) буквы по очереди подпрыгивают на 1 или 2 позиции.

б) подпрыгивание с конца строки

г) подпрыгивание случайным образом.

(8)

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

(9)

Написать программу, объединяющую максимальное число вышеперечисленных сценариев.

(10)

Играем в шпионов.

Первый пользователь вводит строку

на следующей строке выводится ее зашифрованный вариант

зашифрованная строка сообщается другому пользователю

и он на другом компьютере ее расшифровывает.

Методы шифровки:

1 - в строке меняется четные и нечетные символы (если длина строки нечетная, она дополняется точкой).

2 - в начале печатается последний символ потом первый затем предпоследний, а потом второй и т.д.

3 - строку делим пополам (если надо дополняем точкой), а потом печатается символ из одной строки затем из другой и т.д.

Дополнительный материал:

Квадрат Полибия, Шифр Цезаря, Решето Кардано, Тарабарская грамота, Диск Энея

(11)

Римские цифры

Программа выводит число в римском стиле, пользователь вводит десятичный аналог. Для оживления программа будет выводить реакции «Долго думал», «Go to the first class», ну, на сколько хватит цензурного юмора.

(12)

Mad string

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

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

Игры с числами

Пятница 13

(13)

Программа должна выдать список из 13 ближайших тринадцатых пятниц, отсчитывая от текущей даты

(14)

Угадай число

Примерный сценарий:

(компьютер) Загадано двух [трех, четырех, пяти] значное число, сколько попыток вам надо для отгадывания?

(пользователь) 8

Попытка №1

50

Больше

Попытка №2

75

Меньше

Попытка №3

58

Поздравляю, вы угадали, затратив 3 попытки!!

Сыграем еще (Да, Нет)?

Да

Целей, при написании такой программы, несколько:

1. сама по себе интересная работа с интерфесом программы;

2. выработка алгоритма угадывания.

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

"Натуральная" случайность

В задаче №1, я упоминал два вида случайностей «машинную» и «человеческую», давайте вспомним еще одну, пожалуй, главную, - «природную».

Найдите информацию о «нормальном распределении», не хочу пересказывать, то, что вы найдете, но там очень много вкусненького.

Задача – написать программу, которая будет генерировать случайные числа по закону нормального распределения.

Для того, чтобы убедиться в правильности работы, постройте графики используя «машинную» и «природную» случайности. Так, сказано невнятно.

Попробую подробнее...

Вот такая программа:

uses GraphABC;

const

Max = 600;

var

Mas : array[0..max] of integer;

n : integer;

begin

for var i:=1 to 200000 do

begin

n := Random(Max+1);

inc(Mas[n]);

SetPixel(25+n,Window.Height - Mas[n],clRandom);

end;

end.

Нарисует график:

Как видите, "машинная" случайность имеет "плоское" распределение. Ваша задача - сделать программу выдающую "нормальное" распределение случайности, это может выглядеть, примерно так:

Как сказал бы Кролик Винни-Пуху "Случайности могут быть разные".

Такие не простые, "простые" числа

1. Выяснить: для чего нужны простые числа, методы их определения. (Уверяю вас, они очень и очень ценны...)

(15)

2. Написать программу для нахождения простых чисел

Счастливый билет

Объясните учащимся, что в древности в автобусах покупали билеты, и на каждом билете был шестизначный номер. И в течении скучной поездки школьники искали счастливые билеты, т. е. сумма первых трех чисел в номере должна быть равна сумме оставшихся (некоторые чудаки съедали их перед экзаменом :).

(16)

Задача: подсчитать число счастливых билетов, в дальнейшем можно выяснить вероятность приобретения «счастья».

Как-то эту задачу на уроке решали двое учеников, и результат получился существенно разный, но был конец урока, и проверять алгоритмы было лень.. А ученики... сейчас, оба, и он и она, профессиональные программисты, и надеюсь, счастливы в браке.

Лирическое отступление

Большинство задач в данном сборнике рассчитано на работу в текстовом режиме. У «знатоков» закономерно возникнет вопрос:

- Зачем нам учиться программировать в устаревшем текстовом режиме.

- Ну, во-первых, мы движемся от простого… далее… сейчас наверно кто-то пишет ПО для утюга или фена, а скоро надо будет писать для зубочистки, это конечно хорошо, программистам есть работа, но учтите, аппаратные возможности таких устройств очень ограничены. Т.е. винды в кастрюлю никто засовывать не станет, и программировать на низком уровне надо будет еще много лет. Освойтесь с основами программирования в Паскале, а дальше Ассемлбер, Java, Си - да мало ли, что еще возникнет.

А, чтобы напомнить возможности текстового режима, смотрите:

Игры с графикой.

Один «информатик» способен поставить столько задач, что не справятся 10 мудрецов из 10а.

The Adventure of the Dancing Men

(17)

В начале, все просто,… а потом ООП.

Рисуем человечка.

Человечек должен иметь двигающиеся конечности. Для начала перемещаем конечности мышкой:

Перемещение мышки в направлении r - конечность сгибается в локте (колене), перемещение в направлении φ – вращение конечности вокруг точки О.

Теперь начинаем наращивать зрелищность.

а) человечек хаотично размахивает конечностями

б) на экране 10 человечков, синхронно размахивающих ручками и ножками

в) на экране толпа, каждый человечек движется независимо