iPhones.ru

Dev Story Умножение без таблицы. История для тех, кто хочет научиться умножать быстрее

Информатор avatar | 26
FavoriteLoading В закладки
Умножение без таблицы. История для тех, кто хочет научиться умножать быстрее

Нам пишет Александр Мокрушин.

Идея приложения возникла летом этого года, когда мой 10-летний сын во время летних каникул решил обучаться программированию. В качестве языка программирования он выбрал язык Java. Я краем глаза посматривал как он ковыряется в среде разработки Eclipse, переписывая код из книжки, и каждый раз дремлющий во мне проджект-менеджер голосом кота Матроскина ворчал: «Ой, чой-то мы зря его кормим не используем этого джуниор-программера, пусть пользу приносит». Надо было срочно придумать задачу по программированию, несложную, но вместе с тем полезную.

Покопавшись в списке отложенных до лучших времен задач, я все-таки смог найти подходящее задание – написать код для «волшебного» умножения чисел от 2 до 12. В свое время, учась в советской средней школе, я интересовался различными математическими фокусами, хитрыми приемами и т.п. Помню, меня просто потрясла история нашего соотечественника Якова Трахтенберга, который, будучи узником нацистского лагеря, чтобы не сойти с ума от окружавшего его ужаса, придумал свою систему быстрых вычислений в уме. Впоследствии эту (или подобную) систему использовали люди-вычислители, которые поражали воображение окружающих, быстро перемножая в уме огромные числа. Помимо основных алгоритмов вычисления эта система содержала также и специальные методы умножения малых чисел от 2 до 12 на произвольные целые числа. С тех давних пор я запомнил только правило «волшебного» умножения 2-значного числа на 11. Например, чтобы умножить на 11 число 43, нужно «раздвинуть» цифры 4 и 3, написав между ними их сумму 7, т.е. результат будет 473.

Вот мы и решили сделать полезное приложение, которое бы обучало подобным правилам умножения без заучивания таблицы. Может, в процессе разработки и сами так умножать научимся!

Технология разработки

Как я уже написал, ребенок хотел учиться писать именно Java-код. Где он такого нахватался – неизвестно, что с этим делать – поначалу было непонятно. Поразмыслив, я решил сделать так:

  1. Сначала код, реализующий правила умножения, пишется на Java.
  2. После небольшой «обработки напильником» делаем из него код JavaScript. В нашем конкретном случае объем «обработки» оказался относительно невелик. Весь остальной код пишется сразу на JavaScript + HTML.
  3. Далее – готовое HTML-приложение «оборачивается» простым native-кодом, вызывающим отображение нашего HTML-приложения внутри WebView-элемента.

Данный подход имеет свои плюсы и минусы.

ПЛЮСЫ:

  • одно и то же приложение не нужно переделывать для каждой мобильной платформы отдельно, оно делается один раз для всех платформ;
  • HTML очень хорош для создания «резиновых» экранных форм, прилично выглядящих на устройствах с различными размерами экранов (особенно актуально для Android, в меньшей степени – для iOS);
  • у меня уже был опыт создания подобных приложений.

МИНУСЫ:

  • WebView-элемент не является полноценным браузером и может не поддерживать те или иные особенности HTML. На практике оказалось, что самый капризный – UIWebViewв iOS, а самый беспроблемный – в BlackBerry 10 (там вообще есть штатная поддержка таких HTML-приложений);
  • если увлечься стилями и создать «тяжелый» HTML (с градиентами, полупрозрачностью у многих элементов и т.п.), приложение начинает ощутимо «тормозить».

В общем и целом, данная технология – вполне пригодна для небольших и несложных приложений. И главная цель достигнута – ребенок пишет простой, но полезный код на Java.

«Каша из топора»

Изначально все выглядело радужно – процесс понятен, взрослые и дети хлопают в ладоши делают свою часть работы, все счастливы. В реальности все оказалось не так, как было запланировано.

Во-первых, оказалось, что «простой» код, который должен был писать 10-летний ребенок, не такой уж и простой. Если с самим кодом, реализующим умножение путем преобразования строк, сын справлялся, то код, генерирующий попутные комментарии о применении того или иного правила, был ему не под силу. А без этих комментариев пропадал весь смысл работы – умножить в коде можно было и просто так. Во-вторых, летом дети должны не работать, а отдыхать! Мой, например, закрыл книжку, выключил компьютер и уехал в «Артек». В-третьих, сама задача стала разрастаться – для тренировок и тестирования понадобилась форма, внешне похожая на калькулятор, которая позволяла бы вводить цифры произведения справа-налево, отмечать перенос десятков в следующий разряд и т.п. В-четвертых, я решил сделать сразу поддержку помимо русского еще английского и немецкого языков…

Но главное в программировании – начать! Дальше работа затягивает, как в той сказке – топор в котле, все остальное потихоньку к нему добавляется!

Название приложения

Когда приложение уже было готово, я задумался над названием. С одной стороны, я хотел, чтобы название содержало фамилию Якова Трахтенберга, придумавшего все эти правила. С другой стороны, сейчас эта фамилия вызывает ассоциации с чем угодно, но только не с математикой. Русскоязычные пользователи мобильных устройств, скорее всего, вспомнят шоумена Романа Трахтенберга. Англоязычные – американскую актрису Мишель Трахтенберг. Назвать просто по фамилии будет явно недостаточно – неясно, что речь именно о профессоре математики, а не о прочих Трахтенбергах.

Подумав, я решил сделать несколько названий:
1. На устройстве – приложение называется «Трахтенберг» (Trachtenberg), это самый короткий вариант названия.

2. На главном экране внутри приложения – «Умножение без таблицы» (Multiply Without Times Table), это отражает смысл приложения.

3. В AppStore – используется полное название, позволяющее, помимо прочего, использовать дополнительные ключевые слова – «Яков Трахтенберг – Система быстрого счета – Научись выполнять умножение чисел от 2 до 12 без знания таблицы умножения» (по-английски короче – Trachtenberg Speed System – Basic Multiplication Without Times Table).

В процессе перевода названия, я узнал, что по-немецки таблица умножения называется Einmaleins, что переводится как «одиножды один». А еще говорят, что у немцев нет чувства юмора!

Для кого это приложение

Приложение может быть полезно многим:

  • Детям – многие дети испытывают трудности при механическом запоминании каких-то фактов, цифр и т.п. Проблемы могут быть вызваны, в том числе, и расстройством развития – «синдромом рассеянного внимания», которым в той или иной форме страдают 3–5% процентов людей (статистика по США, данные из Википедии). Система Трахтенберга предлагает вместо заучивания чисел запомнить и применять набор правил вида: «Добавить к текущей цифре ее соседа справа».
  • Пожилым людям – с годами у человека возрастает необходимость проводить «тренировки для мозга». Решение головоломок, тренировка памяти, устный счет помогают мозгу оставаться «в форме», замедляют процесс его старения. С этой точки зрения, система Трахтенберга – один из возможных «тренажеров» для извилин.
  • Взрослым людям – среди нас немало тех, кто сохранил интерес или даже любовь к различным математическим фокусам и развлечениям. «Умножение без таблицы» – это разновидность таких развлечений. Данным методом можно проверить – сколько будет 7×8 или 6×9 в случаях, когда сомневаешься или подзабыл. Я, работая над приложением, лично для себя запомнил правила умножения на 11 и на 12. Во-первых, эти правила оказались очень простыми, а во-вторых, таблица на 11 и 12 не входила в школьный курс, это было для меня новым знанием.

Сколько стоит и кто покупает

Изначально я планировал сделать приложение бесплатным, добавив несколько in-app покупок, для того, чтобы можно было сделать donate. Но сын настоял на том, чтобы приложение было платным (а то нам вообще ничего не заплатят). В итоге, установили цену в $0.99. Приложение размещено в магазинах для 3-х мобильных платформ:

1. iOS – AppleAppStore (универсальное приложение).
2. Android – Google Play, Amazon, Samsung Apps, Barnes & Noble.
3. BlackBerry 10 – BlackBerry World (универсальноеприложение).

Продажи пока невелики. Приятно, что большая часть покупок делается нашими соотечественниками. Ниже – фрагмент отчета из сервиса AppAnnieс процентами продаж по странам в App Store.

Вместо заключения

В данном приложении рассмотрены лишь специальные методы для умножения маленьких чисел (до 12). Ознакомиться с полной системой можно в книге Э. Катлер, Р. Мак-Шейн «Система быстрого счета по Трахтенбергу», изданной в издательстве «Просвещение», Москва, 1967. Настоятельно рекомендую эту книгу всем, кто заинтересовался системой быстрого счета. Книга содержит еще очень много материала, не попавшего в приложение. Соответственно, в качестве развития приложения в будущем можно рассматривать реализацию того, что еще есть в этой книге – основного метода быстрого умножения (уже с использованием таблицы), быстрого деления, возведения в квадрат и взятия квадратного корня. В идеале, приложение должно стать кратким справочником и тренажером для отработки правил, изложенных в книге. Надеюсь, приложение будет востребовано. Спасибо!

iPhone: 33 руб. [Скачать из App Store] + сайт приложения

Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (1 голосов, общий рейтинг: 5.00 из 5)
undefined
iPhones.ru
Нам пишет Александр Мокрушин. Идея приложения возникла летом этого года, когда мой 10-летний сын во время летних каникул решил обучаться программированию. В качестве языка программирования он выбрал язык Java. Я краем глаза посматривал как он ковыряется в среде разработки Eclipse, переписывая код из книжки, и каждый раз дремлющий во мне проджект-менеджер голосом кота Матроскина ворчал:...
Здесь можно оставить комментарий! Для этого авторизуйтесь или зарегистрируйтесь на iPhones.ru.

26 комментариев

Форум →
  1. rslw avatar
    rslw 21 октябрь 2013
    0

    вот это интерфейс..

    Артур Малосиев avatar
    Артур Малосиев21 октябрь 2013
    0

    @rslw, написано же, что ребенок делал прогу.

    WrongLie avatar
    WrongLie21 октябрь 2013
    0

    @Артур Малосиев, это наглая ложь.

    Alexander Mokrushin avatar
    Alexander Mokrushin21 октябрь 2013
    0

    @WrongLie, ребенок участвовал (см. текст истории). Внешний вид мы пытались сделать в “школьном” стиле: фон – листок в клеточку, шрифт – как-бы написанный от руки, заголовок – цвета школьной доски. Тут нигде не приведена главная форма, можно посмотреть по ссылке “Скачать из App Store”.
    Если есть конкретные замечания – напишите, постараемся исправить.

    Войди на сайт, чтобы ответить
    Ответить
  2. AnnaBublik avatar
    AnnaBublik 21 октябрь 2013
    0

    А почему оно не бесплатное? Это же одно из условий рубрики было раньше. Так бы скачала – посмотрела…

    Артур Малосиев avatar
    Артур Малосиев21 октябрь 2013
    0

    @AnnaBublik, нет такого условия в Девстори.
    Это только в рубрике Краш-тест.

    Войди на сайт, чтобы ответить
    Ответить
  3. dio45rus avatar
    dio45rus 21 октябрь 2013
    0

    Думаю, для большинства скачивающих, Трахтенберг, прежде всего, Роман и внутри их ждёт некоторое разочарование.

    Alexander Mokrushin avatar
    Alexander Mokrushin21 октябрь 2013
    0

    @dio45rus, поэтому в iTunes приложение называется так длинно, и помимо фамилии указано и имя Яков. Кстати, Мишель Трахтенберг – тоже довольно популярна, если верить поисковикам.

    Войди на сайт, чтобы ответить
    Ответить
  4. Aliva avatar
    Aliva 21 октябрь 2013
    0

    Перевод сайта приложения на русский язык с помощью встроенного гугла – далеко не самое хорошее решение. Хотя бы на русский стоило перевести нормально, а не эти “Хотели бы Вы размножаться без использования запомнил таблицу умножения? Похоже ли это невозможно?”

    Alexander Mokrushin avatar
    Alexander Mokrushin21 октябрь 2013
    0

    @Aliva, извиняюсь, сайт – только на английском.
    В iTunes написано на нормальном русском, кликайте по первой ссылке “Скачать из App Store”.

    Войди на сайт, чтобы ответить
    Ответить
  5. Язь avatar
    Язь 21 октябрь 2013
    0

    Сомнительное приложение. Сегодня оно будет полезно разве что юным владельцам айДевайсов, а таких сейчас очень много. К тому же школьники 5 класса уже могут найти на iPhone калькулятор, а значит данная программа не будет востребована у большинства населения.

    Язь.

    Alexander Mokrushin avatar
    Alexander Mokrushin21 октябрь 2013
    0

    @Язь, данное приложение – не альтернатива калькулятору. Оно для тех, кому хочется научиться умножать не так, как учат в школе. С калькулятором можно вовсе не учиться умножать :)

    Язь avatar
    Язь22 октябрь 2013
    0

    @Alexander Mokrushin, Пользы от умножения в уме сейчас немного.

    Язь.

    Войди на сайт, чтобы ответить
    Ответить
  6. rudaltsov avatar
    rudaltsov 21 октябрь 2013
    0

    Короче, пора бы вводить рейтинги новостей, и яростно плюсовать/минусовать их :)

    Артур Малосиев avatar
    Артур Малосиев21 октябрь 2013
    0

    @rudaltsov, первым делом введем для комментариев – 5 минусов = бан, ыыыы.

    Войди на сайт, чтобы ответить
    Ответить
  7. robot1 avatar
    robot1 21 октябрь 2013
    0

    спасибо за наводку. обязательно обучу парочке приемов своего малого. “3-5%” – это про нас(

    Войди на сайт, чтобы ответить
    Ответить
  8. DarkLadyDarina avatar
    DarkLadyDarina 21 октябрь 2013
    0

    Интересно, я не пожалела 33р и скачала пригодится.

    Войди на сайт, чтобы ответить
    Ответить
  9. lxprost avatar
    lxprost 21 октябрь 2013
    0

    Не поленился и зашел в гугл. Профит 33 рубля. Затраченное время – 3 секунды. Освоить можно за 1 час.

    Alexander Mokrushin avatar
    Alexander Mokrushin21 октябрь 2013
    0

    @lxprost, освоить можно. Можно найти книгу, про которую я написал, там все есть. Только осваивать придется с бумажкой и ручкой, а в приложении есть спец. форма для тренировок и тестирования. И еще в приложении примеров неограниченно много – они налету генерируются.

    Войди на сайт, чтобы ответить
    Ответить
  10. EugeneD avatar
    EugeneD 21 октябрь 2013
    0

    2 УМНОжить на 3 = 8 это по моему))) , а по Вашему? И вопрос # 2 – это какая таблица?

    Alexander Mokrushin avatar
    Alexander Mokrushin22 октябрь 2013
    0

    @EugeneD, по-моему, 2*3=6. У Вас, скорее, не умножение, а возведение в степень. Речь идет о таблице умножения, которую учат в младших классах. Она, обычно, печатается на задней стороне тетради в клеточку )

    EugeneD avatar
    EugeneD22 октябрь 2013
    0

    @Alexander Mokrushin, 2*3=2*2*2=2в3степени=8. А по Вашему 2*3=2+2+2=6 возведение в степень и есть умножение. Вы будете удивлены, но на задней стороне тетради нам с Вами печатали таблицу сЛОЖения которую мы и знаем. Нас давно и всех дурят.

    Alexander Mokrushin avatar
    Alexander Mokrushin22 октябрь 2013
    0

    @EugeneD, это каким словом договориться называть. Сложение одинаковых чисел, проведенное несколько раз подряд договорились называть умножением. Аналогично – многократное умножение самого на себя – возведением в степень. Вообще, хватает неточностей в определениях. Например, то, что в русском языке называют 1-м, 2-м и 3-м склонением правильно было бы называть “типами склонения”. Ведь само по себе склонение – это изменение по падежам. Так что со сложением-умножением еще все более-менее нормально названо :)

    Войди на сайт, чтобы ответить
    Ответить
  11. EugeneD avatar
    EugeneD 22 октябрь 2013
    0

    Рыбников Ю.С. В интернете Вам много нового расскажет. И проще чем он у меня врядли получится.

    Войди на сайт, чтобы ответить
    Ответить
  12. Lexsurian avatar
    Lexsurian 28 октябрь 2013
    0

    Хорошая софтинка и обзор качественный.

    Alexander Mokrushin avatar
    Alexander Mokrushin28 октябрь 2013
    0

    @Lexsurian, спасибо за поддержку! Мы старались!

    Войди на сайт, чтобы ответить
    Ответить
Помни о правилах — если начал оффтопить, то не удивляйся потом.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.