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

W Cat

(пользователь) 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, Си - да мало ли, что еще возникнет.