Наученный калькулятор
Наученный калькулятор
Фирма Casio назвала свое детище довольно загадочно: CFX-9970G, и после его приобретения долго думаешь — а что же все-таки приобрел? Назвать это калькулятором, даже с приставкой «научный», язык (читай: клавиатура) уже не поворачивается, а до КПК — явно недотягивает.
Вскрыв упаковку и легким движением руки отбрасив в сторону 470-страничную инструкцию (на английском языке), я погружаюсь в ностальгию… Впрочем, вспоминать про старые добрые времена, когда оперативная память измерялась в килобайтах, а тактовая частота — в килогерцах, стало не то дурным, не то, наоборот, хорошим тоном, и я не буду повторять эту традицию, а лучше, дабы долго не мучить читателя, перечислю основные характеристики и возможности сего устройства:
64 Кбайт памяти
экран с разрешением 127х63, четыре цвета (включая «фоновый»)
50-кнопочная клавиатура
порт для связи с таким же «калькулятором», компьютером или специальным принтером от Casio
встроенный Бейсик-подобный язык программирования
построение графиков (в том числе и динамических, то есть анимации)
преобразование алгебраических выражений
решение уравнений (численно и аналитически)
интегрирование/дифференцирование выражений (аналитически)
статистика
исследование рекуррентных соотношений
финансовые расчеты
Все, на этом сухие факты, списанные с упаковки, закончились и начались личные впечатления.
Что не впечатлило, так это дизайн. Есть ощущение, что работаешь с калькулятором, а не с чудом техники. Ничего обтекаемого и полупрозрачного. Впрочем, большую роль здесь играет целевая аудитория — видимо, в Casio решили, что тем, кому несколько раз на день приходится считать интегралы и строить графики, дизайн вовсе не нужен. А жаль.
К сожалению, не удалось испытать связь с ПК — устройство, с помощью которого это делается, в комплект, увы, не входит, и стоит… практически столько же, сколько сам «калькулятор». Так что здесь личных впечатлений нет, есть только скудные сведения, которые удалось почерпнуть из инструкции: отправлять/принимать можно практически любые типы данных, начиная от текстов программ и заканчивая картинками и формулами. Еще можно сделать backup — скопировать всю память со всеми «файлами», настройками и т. д., видимо, для последующего восстановления. Есть подобие клавиши «Print Screen» — отправка (или распечатка на Label-Printer’е Casio) текущего экрана… Ну, и хватит о связи — все равно живьем я ее не видел.
А вот впечатлило — все остальное. Возможность посчитать выражение любой сложности мгновенно разучивает продумывать последовательность действий для обычных калькуляторов.
Несмотря на невысокое по современным меркам разрешение, графики функций смотрятся нормально, причем их можно произвольно масштабировать разными способами — задавая границы, визуально, выбирая область, которую нужно увеличить, или автоматически — калькулятор сам определит параметры так, чтобы график полностью умещался на экране. К тому же, предусмотрено даже создание анимаций (так называемый режим Dynamic Graph) — очень похоже на то, что умеет делать программа «Mathematica» от Walfram Research. Кстати, мысль об этом сходстве не покидает меня все время, с момента первого включения «калькулятора» — и не только касательно графиков.
Алгебраический (символьный) режим предлагает различные преобразования выражений — от разложения на множители и раскрытия скобок до интегрирования, дифференцирования и каких-то совсем экзотических процедур. Результаты выводятся не в строчку, а в привычном графическом виде (насколько позволяет разрешение экрана) — радикалы изображаются в виде радикалов, степени — как положено (никаких крышек) и т. д., что, с одной стороны, упрощает восприятие, а с другой — несколько раздражает — когда вся формула на экране не умещается, ее прокрутка занимает довольно много времени из-за медленности построения этого самого графического вида. Конечно, система решения уравнений здесь гораздо слабее, чем в «Математике» (хотя, в отличие от последней, она даже умеет решать неравенства, правда, несложные), но все же сам факт — калькулятор (!) манипулирует с символьными выражениями — уже заслуживает внимания.
Отдельный разговор о программировании. Язык здесь действительно Бейсик-образный (структурный вариант бейсика — то есть оператор Goto практически не используется, зато есть многообразие циклов, условных операторов и т.д.), который не должен показаться сложным для тех, кто знаком с азами сего ремесла. Несколько непривычно, что операторы нельзя набирать буквами, а только выбирать их из списка клавишами F1-F6. Каждая программа или подпрограмма хранится в отдельном «файле» в оперативной памяти. (Несмотря на то, что память — оперативная, информация не стирается даже при смене батареек — Casio предусмотрела резервный аккумулятор для такого случая.) Переменных (не только в программировании, но и везде) только 26 штук, имя каждой — одна буква латинского алфавита. Массивы — одномерные и двумерные — хорошо замаскированы, и поначалу возникает ощущение, что их вообще нет, но после более подробного ознакомления становится ясно, что они скрыты под названиями списков (list) и матриц (matrix), хотя их использования также связано с некоторыми тонкостями — они могут быть задействованы для хранения какой-то информации, так что перед тем как программно записывать что-то в матрицу, следует убедиться, что в ней нет важных данных.
По сравнению с современными языками, очень убого реализованы функции — их нет вообще, есть только подпрограммы (subroutine), которым можно передавать данные только через переменные. К тому же, нет разграничения областей видимости имен (все переменные являются глобальными) — для человека, уже успевшего привыкнуть к объектно-ориентированному программированию, это кажется неслыханным варварством.
Во всем остальном — Бейсик он и есть Бейсик. Если проявить изобретательность, можно заставить эту штуковину работать так, как хочется, а не так, как решили создатели «калькулятора» — и в этом великая сила любого программируемого устройства — возможность быть чем угодно. Естественно, первое, что приходит на ум — написать игру. Тетрис, по началу, слаб_о_, а вот что-нибудь типа «Коров и быков» — пожалуйста, можно даже с несложным искусственным интеллектом (нервных прошу этого не делать — быть обыгранным компьютером — это еще куда ни шло, но вот от поражение от калькулятора — может нанести психическую травму).
Игрушки игрушками, но как же было удивительно после небольшого колдования над клавишами увидеть на крохотном экранчике… фрактал Мандельброта! Ощущение такое, как бывает при первом знакомстве с программируемой техникой — оно может все! И плохенькая графика (относительно современных компьютеров, конечно), и небольшая скорость работы это ощущение только усиливает — вид мерцающего экрана, на котором, бит за битом, пиксель за пикселем, строится какое-то изображение, не может не завораживать людей, в свое время возившихся с «Апогеями» и «Спектрумами»…
Несмотря на сильное желание закончить статью на ностальгической ноте, все-таки придется подвести какой-то итог, актуальный для сегодняшнего дня. Итак, чтобы назвать эту в общем недешевую игрушку (а стоит CFX сейчас около 130 безусловных единиц) словом «КПК», ей не хватает универсальности. Узкая специализация есть и плюс, и минус. Вряд ли имеет смысл приобретать ее для того, чтобы использовать как обычный калькулятор, но если вы из тех, кто жить не может без математики, или вам просто часто приходится проводить громоздкие вычисления, периодически строить графики и считать распределение Фишера, то эта вещь — для вас.