Всем привет!
История произошла на днях, решил все же кинуть в юмор, а не в алгоритмы ))
Недавно рассказывал одному ребенку об основах программирования и, в том числе о том, к чему приводит деление на ноль. И он спросил меня, — а я вообще не понимаю, почему нельзя делить на ноль, что тут такого? Я экспромтом выдал ему пример, но есть в нем недоработка, помогите исправить плз. Дальше привожу по памяти наш разговор.
— (Я) Так возьми лист бумаги и нарисуй на нем большую цифру 1. Это будет наше число, которое мы будем делить на ноль ))
— (Р) Сделал
— (Я) Теперь раздели лист на две части. Сколько сейчас частей?
— (Р) Две!
— (Я) Это то же самое, что 1/0.5 == 2. А теперь каждую часть раздели еще пополам, сколько частей!
— (Р) Теперь четыре, еще раз поделить все?
— (Я) Да, теперь у тебя восемь частей, то есть 1/0.5/0.5/0.5 == 8. Дальше бумагу портить не будем, смысл ты понял. А сколько кусочков будет после 16 делений?
— (Р) Много!
— (Я) Ты удивишься, но будет 2 в степени 16 == 65536 кусочков. И если у тебя обычный лист формата А4, то у него размер 210*297 мм. То есть у тебя получатся кусочки размером 210*297/65536 == 0.95 кв.мм, но это не важно. А важно то, что при каждом делении количество кусочков увеличивается на два и растет, как снежный ком! И на очередном делении на совсем маленькое число количество кусочков, то есть наш результат станет таким большим, что компьютер не сможет его переварить и программа закроется с ошибкой. (Я объяснил, что такое переполнение, но вам уж повторять не буду

)
— (Р) Да, я теперь понял. Но непонятно, ведь мы делим на все возрастающие числа, 2,3,4,5 ... а ты говоришь про деление на ноль.
Короче, на лицо моя методическая ошибка, как бы этот пример правильно переделать, чтобы и ребенку стало понятно? Что-то не соображу, помогите плз.