В историческом процессе развития средств и технологий передачи знаний от поколения к поколению можно выделить три революционных события: возникновение письменности, изобретение книгопечатания и глобальное внедрение компьютерных информационных технологий. Мы являемся очевидцами и участниками последнего события.
Любые преобразования, как правило, сопровождаются кризисами различной глубины и различной степени болезненности выхода из них. Если говорить о компьютерных информационных технологиях, то в этой области сегодня наблюдается кризис, который условно называют «кошмаром унаследованного программного обеспечения».
Представим себе некую фирму, корпорацию или университет, которые за 30 – 40 лет интенсивного использования компьютеров разработали и накопили большое количество программ для расчета и моделирования разнообразных процессов, аппаратов и технологии в тех или иных областях науки и техники, а также для создания и управления базами данных (знаний). На смену морально и физически устаревшим компьютерам приходят новые с новыми операционными системами. Компьютеры объединяются в локальные сети, которые, в свою очередь, не остаются в стороне от процесса «глобализации» – интегрируются в Интернет. Модернизация компьютерного парка часто приводит к тому, что старые прикладные программы перестают запускаться на новых или обновленных компьютерах – рабочих станциях и серверах. Иногда просто невозможно считать программу с носителей (перфокарт, перфолент, дискет различного диаметра и др.), т.к. новые компьютеры не имеют соответствующих считывающих устройств. Приходится либо отказываться от таких программ, либо тратить время и средства на создание или приобретение неких утилит (эмуляторов) для запуска старых программ на новых или обновленных компьютерах. Но это еще полбеды. Настоящая беда состоит в том, что из «фирм, корпораций, университетов» уходят специалисты, которые создавали эти программы, а пришедшая им на смену молодежь не может их модернизировать, адаптировать их к новым требованиям. Виной тому и недостаточное документирование кодов, и отсутствие соответствующих инструментальных программных средств и просто невозможность правильно прочесть программу (код), написанную на устаревших (мертвых) языках программирования. Если же все-таки с большим трудом удается воссоздать или модернизировать старую программу, используя старые языки программирования, генерирующие коды, понятные только программистам, то кошмар унаследованного программного обеспечения (такое название носит это явление) через некоторое время всплывет вновь.
В данной книге рассматриваются информационные технологии, позволяющие успешно преодолеть перечисленные трудности.
Историю использования компьютеров для научно-технических расчетов условно можно разбить на три этапа:
работа с машинными кодами;
программирование на языках высокого уровня;
использование математических пакетов, самым ярким представителем которых является Mathcad — "герой" этой серии книг.
Четких границ между перечисленными этапами (информационными технологиями) не существует. Работая в среде Mathcad можно при необходимости вставить в расчет электронную таблицу или собственные функции, написанные на языке C, в код которых вкраплены фрагменты ассемблера. Здесь скорее следует говорить не об изолированных этапах развития компьютерных средств решения инженерных и научно-технических задач, а о расширении и переплетении спектра инструментальных средств, о некой тенденции, которая, в частности, привела к резкому сокращению времени создания и реализации на компьютере расчетных методик и математических моделей, к исключению программиста как дополнительного и часто, пардон, "бестолкового" звена между исследователем и компьютером, к повышению открытости самих расчетов, к возможности видеть не только результат, но и все формулы в традиционном их написании, а также все промежуточные данные, подкрепленные графиками и диаграммами.
Языки программирования не терпят «дилетантства» со стороны исследователя. Из-за трудности в освоении языков программирования многие специалисты в конкретных областях знания (физика, химия, биология, машиностроение и т.д.), а также студенты и школьники не могли эффективно использовать компьютер. Программирование требует от человека максимальной отдачи, что часто влечет за собой частичную потерю квалификации в основной специальности, «подсаживание на иглу» программирования. Математические пакеты, а в первую очередь Mathcad создавались как средство, альтернативное традиционным языкам программирования. Многолетний опыт использования пакета Mathcad, показывает, что он не вызывает у человека такого «болезненного привыкания». Можно не работать с Mathcad полгода, год, но основные навыки общения с этой программой не утрачиваются и, если потребуется, то возникшая задача тут же будет быстро и качественно решена без привлечения сторонних программистов.
Одна из главных причина популярности Mathcad состоит в том, что он имеет очень низкий «порог вхождения». А с появлением русской версии, описываемой в этой книге, этот «порог» станет еще ниже. Школьник, студент, аспирант, инженер или научный работник при необходимости может поставить на свой компьютер пакет Mathcad и уже через несколько часов успешно решать с его помощью довольно сложные задачи. При условии, конечно, если этот человек знаком с азами компьютерной грамотности – умеет, например, вводить тексты в компьютер, хранить их на диске и т.д. Другие же математические программы требуют специальных знаний, которые приобретаются далеко не за «несколько часов». Mathcad также требует от пользователя «специальных знаний». Но эти знания плавно приобретаются пользователем по мере углубления в «недра» пакета и изучения методов решения возникающих специальных задач: решение уравнений и систем уравнений (алгебраических – см. главу 3, дифференциальных – глава 6 и др.), построение графиков (§ 1.7), разбор статических задач (глава 5) и многое другое. При необходимости пакет Mathcad можно дополнить специальными приложениями, расширяющими его возможности и позволяющими решать специальные задачи. Пример – программа WaterSteamPro (www.wsp.ru), подключающая к Mathcad функции по теплофизическим свойствам теплоносителей и рабочих тел энергетики. Функциями из этого пакета иллюстрируются некоторые задачи книги.
Можно сказать и так. У пакета Mathcad нет «порога вхождения», а есть некий «пандус» с низким углом наклона, позволяющий пользователю «быстро и плавно въезжать» на любой уровень сложности использования данного пакета. Автор надеется, что данная книга поможет сделать это.
Автор расширяет круг людей, которым он благодарен за помощь в написании книги и которые перечислены в предисловиях к предыдущим изданиям. Автор делает традиционный upgrade этим благодарностям, а именно дополнительно выражает глубокую признательность команде, с которой автор русифицировал Mathcad: Karen Combi, Наталья Левитина, Sirio Jansen, Андрей Буланов и Ренат Бикматов. Автор также признателен читателям предыдущих изданий книги за ценные советы и пожелания.
Ноябрь 2008