Математический редактор MathCAD

     интернет +для детей программа 898 url cambridge informatika 9 1066    https://www.catalogspot.com/store/deluxe-corp | OnePlus 12 Dubai | oneplus 12 dubai

Математический редактор MathCAD

Mathcad является математическим редактором, позволяющим проводить разнообразные научные и инженерные расчеты, начиная от элементарной арифметики и заканчивая сложными реализациями численных методов. Пользователи Mathcad — это студенты, ученые, инженеры, разнообразные технические специалисты. Благодаря простоте применения, наглядности математических действий, обширной библиотеке встроенных функций и численных методов, возможности символьных вычислений, а также превосходному аппарату представления результатов (графики самых разных типов, мощных средств подготовки печатных документов и Web-страниц), Mathcad стал наиболее популярным математическим приложением.
Mathcad 11, в отличие от большинства других современных математических приложений, построен в соответствии с принципом WYSIWYG ("What You See Is What You Get" — "что Вы видите, то и получите"). Поэтому он очень прост в использовании, в частности, из-за отсутствия необходимости сначала писать программу, реализующую те или иные математические расчеты, а потом запускать ее на исполнение. Вместо этого достаточно просто вводить математические выражения с помощью встроенного редактора формул, причем в виде, максимально приближенном к общепринятому, и тут же получать результат Кроме того, можно изготовить на принтере печатную копию документа или создать страницу в Интернете именно в том виде, который этот документ имеет на экране компьютера при работе с Mathcad Создатели Mathcad сделали все возможное, чтобы пользователь, не обладающий специальными знаниями в программировании (а таких большинство среди ученых и инженеров), мог в полной мере приобщиться к достижениям современной вычислительной науки и компьютерных технологий. Для эффективной работы с редактором Mathcad достаточно базовых навыков пользователя. С другой стороны, профессиональные программисты (к которым относит себя и автор этих строк) могут извлечь из Mathcad намного больше, создавая различные программные решения, существенно расширяющие возможности, непосредственно заложенные в Mathcad.

Начинаем работу
В данной главе рассмотрено назначение приложения Mathcad 11 и, в целях знакомства с его основными возможностями, приведены базовые приемы его использования (см. разд. 1.1—1.2). Если вы уже имели дело с прежними версиями, начиная с Mathcad 7, и у вас неплохие навыки работы с его редактором, то можете смело пропустить эту главу.

Редактирование документов
В данной главе рассматриваются основные приемы редактирования документов Mathcad. Первый раздел посвящен созданию новых документов и сохранению расчетов в файлах (см. разд. 2 1). В трех следующих рассмотрены способы редактирования формул (см. разд. 2.2), текста (см. разд. 2.3) и правки частей документа Mathcad (см. разд. 2.4). В заключение главы приводятся основные сведения по распечатке документов (см. разд. 2.5), рассылке их по электронной почте (см. разд. 2.6) .

Вычисления
Основные инструменты математика — это операции с переменными величинами и функциями. В Mathcad переменные, операторы и функции реализованы в интуитивной форме, т. е. выражения в редакторе вводятся и вычисляются так, как они были бы написаны на листе бумаги. Порядок вычислений в документе Mathcad также очевиден: математические выражения и действия воспринимаются процессором слева направо и сверху вниз.

Типы данных
Наиболее простой и распространенный ввод-вывод данных в Mathcad реализован присваиванием и выводом (либо численным, либо символьным) непосредственно в документе. Переменные и функции, посредством которых осуществляется ввод-вывод, могут иметь значения различных типов (числовые, строковые и т. д.).

Символьные вычисления
Первый способ более удобен, когда требуется быстро получить какой-либо аналитический результат для однократного использования, не сохраняя сам ход вычислений. Второй способ более нагляден, т. к. позволяет записывать выражения в традиционной математической форме и сохранять символьные вычисления в документах Mathcad. Кроме того, аналитические преобразования, проводимые через меню, касаются только одного, выделенного в данный момент, выражения. Соответственно, на них не влияют формулы, находящиеся в документе Mathcad выше этого выделенного выражения (например, операторы присваивания значений каким-либо переменным).

Программирование
Фактически, использование ранжированных переменных — мощный аппарат Mathcad, похожий на применение циклов в программировании. В подавляющем большинстве случаев намного удобнее организовать циклы (в том числе вложенные) с помощью ранжированных переменных, чем заниматься для этого программированием. Полезнее освоить технику, связанную с ранжированными переменными, векторами и матрицами, поскольку на ней основаны главные принципы расчетов в Mathcad, в частности подготовка графиков.

Интегрирование и дифференцирование
Интегрирование в Mathcad реализовано в виде вычислительного оператора. Допускается вычислять интегралы от скалярных функций в пределах интегрирования, которые также должны быть скалярами. Несмотря на то что пределы интегрирования обязаны быть действительными, подынтегральная функция может иметь и комплексные значения, поэтому и значение интеграла может быть комплексным.

Алгебраические уравнения и оптимизация
Первый тип функции root требует дополнительного задания начального значения (guess value) переменной х. Для этого нужно просто предварительно присвоить х некоторое число. Поиск корня будет производиться вблизи этого числа. Таким образом, присвоение начального значения требует априорной информации о примерной локализации корня.

Матричные вычисления
Простейшие операции матричной алгебры реализованы в Mathcad в виде операторов. Написание операторов по смыслу максимально приближено к их математическому действию. Каждый оператор выражается соответствующим символом Рассмотрим матричные и векторные операции Mathcad 11. Векторы являются частным случаем матриц размерности NXI, поэтому для них справедливы все те операции, что и для матриц, если ограничения особо не оговорены (например некоторые операции применимы только к квадратным матрицам NXN). Какие-то действия допустимы только для векторов (например скалярное произведение), а какие-то, несмотря на одинаковое написание, по-разному действуют на векторы и матрицы.

Специальные функции
Функции Бесселя, по определению, являются решениями различных краевых задач для некоторых обыкновенных дифференциальных уравнений (ОДУ).

Обыкновенные дифференциальные уравнения
Для численного интегрирования одного ОДУ у пользователя Mathcad 11 (начиная с версии Mathcad 2000 Pro) имеется выбор — либо использовать вычислительный блок Given/odesoive, либо встроенные функции, как в прежних версиях Mathcad. Первый путь предпочтительнее из соображений наглядности представления задачи и результатов, а второй дает пользователю больше рычагов воздействия на параметры численного метода. Рассмотрим последовательно оба варианта решения.

Краевые задачи
Постановка краевых задач для ОДУ отличается от задач Коши, рассмотренных в главе 11, тем, что граничные условия для них ставятся не в одной начальной точке, а на обеих границах расчетного интервала. Если имеется система N обыкновенных дифференциальных уравнений первого порядка, то часть из N условий может быть поставлена на одной границе интервала, а оставшиеся условия — на противоположной границе.

Дифференциальные уравнения в частных производных
Постановка задач для уравнений в частных производных включает определение самого уравнения (или системы нескольких уравнений), а также необходимого количества краевых условий (число и характер задания которых определяется спецификой уравнения). По своему названию уравнения должны содержать частные производные неизвестной функции и (или нескольких функций, если уравнений несколько) по различным аргументам, например пространственной переменной х и времени t. Соответственно, для решения задачи требуется вычислить функцию нескольких переменных, например u
Математическая статистика
Для моделирования различных физических, экономических и прочих эффектов широко распространены методы, называемые методами Монте-Карло. Их основная идея состоит в создании определенной последовательности случайных чисел, моделирующей тот или иной эффект, например, шум в физическом эксперименте, случайную динамику биржевых индексов и т. п. Для этих целей в Mathcad имеется ряд встроенных функций, реализующих различные типы генераторов псевдослучайных чисел.

Обработка данных
Для построения интерполяции-экстраполяции в Mathcad имеются несколько встроенных функций, позволяющих "соединить" точки выборки данных (xi, yi) кривой разной степени гладкости. По определению интерполяция означает построение функции д(х), аппроксимирующей зависимость у(х) в промежуточных точках (между xi). Поэтому интерполяцию еще по-другому называют аппроксимацией.

Ввод-вывод данных
Наиболее простой и распространенный ввод-вывод данных в Mathcad реализован присваиванием и (либо численным, либо символьным) выводом непосредственно в документе. Фактически документ Mathcad является одновременно и кодом программы и результатом ее выполнения. Поэтому самый простой и распространенный способ ввода-вывода — это непосредственное присвоение и вывод вычисленных значений в документах.

Оформление документов
Перечислим элементы оформления документов, которые допускается применять в Mathcad как, собственно, для проведения математических расчетов, так и в чисто декоративных целях

Математические задачи в пакете MathCAD 12

Mathcad — необычная программа. Она относится к классу приложений, называемых PSE (problem solution environment — программная среда для решения задач). Это подразумевает, что ее работа не определяется однозначно действиями пользователя (как, например, в текстовых редакторах и т. п.), а является (в большей степени) результатом работы встроенных алгоритмов, недоступных взору исследователя. Введя в редакторе Mathcad выражение, даже довольно простое, например, df (x)/dx=, и получив некоторый ответ, многие даже не задумываются о том, что для его вычисления проделывается довольно сложная работа, результат которой заранее не предопределен и зависит от целого ряда факторов, не представленных непосредственно на рабочей области документа (свойств функции f, параметров численного алгоритма дифференцирования, значения системных констант и т. д.). Поэтому, проводя даже очень простые расчеты, вам придется иногда сталкиваться с неочевидным поведением программы, которое нельзя понять без ясного представления об основах работы соответствующих алгоритмов, встроенных в Mathcad.
Приложение Mathcad компании MathSoft — самый популярный из компьютерных математических пакетов, остающийся, бесспорно, на протяжении многих последних лет лидером в своем классе математического и образовательного программного обеспечения (ПО). С его помощью можно решать самые разные математические задачи и оформлять результаты расчетов на высоком профессиональном уровне, и сейчас уже сложно представить современного ученого, не пользующегося Mathcad. При помощи этого пакета осуществляются не только простые и вспомогательные вычисления, но и довольно сложные расчеты и научные исследования, использующие комбинации самых разных численных алгоритмов и аналитических преобразований.

Введение
Книга может использоваться как самоучитель, позволяющий "с нуля" освоить самые главные возможности вычислительной системы Mathcad и научиться с ее помощью решать все основные задачи математики. Тем не менее ее главная цель — изложить материал, делая акцент на решении конкретных математических проблем.

Основные сведения о Mathcad
В данной главе рассмотрены базовые приемы работы с Mathcad 2001—12. Мы дадим самые основные сведения, касающиеся интерфейса и возможностей Mathcad, пользуясь тем, что он интуитивен и похож на другие программы Windows

Алгебраические вычисления
В данной главе рассматриваются простые вычисления, осуществляемые в Mathcad. Во-первых, приведено описание имеющихся встроенных операторов (см. разд. 27) и функций (см. разд. 2.2), при помощи которых можно рассчитать значение алгебраических выражений, построить графики и т. п. Во-вторых, составлен обзор наиболее простых символьных операций, реализующих в Mathcad аналитические преобразования для решения типичных задач алгебры. Они проводятся без применения численных методов и, соответственно, без погрешностей вычислений (см. разд. 2.3)

Дифференцирование
Операция дифференцирования реализована в Mathcad как в численной, так и в аналитической форме и обозначается при помощи традиционного оператора, т. е. соответствующими математическими символами (подобно сложению или умножению). Если расчеты выполняются с помощью вычислительного процессора, необходимо хорошо представлять себе особенности численного алгоритма, действие которого остается для пользователя "за кадром".

Интегрирование
С одной стороны, численное интегрирование — одна из самых простых, с вычислительной точки зрения, операций, с другой — аналитически проинтегрировать можно далеко не каждую функцию. Всегда помните об этом, когда вы сталкиваетесь с численным или аналитическим интегрированием.

Нелинейные алгебраические уравнения
Огромное количество задач вычислительной математики связано с решением нелинейных алгебраических уравнений, а также систем таких уравнений. При этом необходимость решения нелинейных уравнений возникает зачастую на промежуточных шагах, при реализации фрагментов более сложных алгоритмов (к примеру, при расчетах дифференциальных уравнений при помощи разностных схем и т. п.).

Оптимизация
В этой главе рассматриваются задачи на поиск экстремума функций и близкие к ним задачи приближенного решения алгебраических нелинейных уравнений и систем. Задачи поиска экстремума функции означают нахождение ее максимума (наибольшего значения) или минимума (наименьшего значения) в некоторой области определения ее аргументов. С вычислительной точки зрения две задачи являются практически одинаковыми, т. к., например, задача поиска максимума f (х) тождественна проблеме отыскания минимума -f(x).

Линейная алгебра
Задачи линейной алгебры, решаемые в Mathcad, можно условно разделить на два класса. Первый — это простейшие матричные операции, которые сводятся к определенным арифметическим действиям над элементами матрицы. Они реализованы в виде операторов (см. разд. 7.1 и 7.2) и нескольких специфических функций, предназначенных для создания, объединения, сортировки, получения основных свойств матриц и т. п. (см. разд. 7.4). Второй класс — это более сложные действия, которые реализуют алгоритмы вычислительной линейной алгебры, такие как вычисление определителей и обращение матриц

Системы линейных уравнений
Одной из центральных проблем вычислительной линейной алгебры является решение систем линейных уравнений (см. разд. 8.1 и 8.2), отыскание собственных векторов и собственных значений (см. разд. 8.4), а также различные матричные разложения (см. разд. 8.3). Все они будут рассмотрены в данной главе, являющейся, фактически, продолжением предыдущей (которая была посвящена простейшим матричным вычислениям).

Обыкновенные дифференциальные уравнения: динамические системы
В этой главе рассматриваются численные методы решений задач с начальными условиями (называемых задачами Коши) для обыкновенных дифференциальных уравнений (далее используется сокращение ОДУ). Такие задачи требуют нахождения функции (или нескольких функций) одной переменной, если, во-первых, определено дифференциальное уравнение (или система уравнений), содержащее производную функции, и, во-вторых, необходимое количество дополнительных условий, задающих значение функции в некоторой начальной точке.

Обыкновенные дифференциальные уравнения: краевые задачи
Несмотря на то, что, в отличие от задач Коши для ОДУ, в Mathcad не предусмотрены встроенные функции для решения жестких краевых задач, с ними все-таки можно справиться, применив программирование разностных схем, подходящих для решения задач этого класса (см. разд. 104). О подходе к решению нелинейных краевых задач написано в конце главы (см. разд. 10.5).

Дифференциальные уравнения в частных производных
Несмотря на то, что Mathcad обладает довольно ограниченными возможностями по отношению к уравнениям в частных производных, в нем имеется несколько встроенных функций (см. разд. 11.3). Решать уравнения в частных производных можно и путем непосредственного программирования пользовательских алгоритмов (см. разд. 11.2). Автор совершенно сознательно сначала рассматривает численные методы для решения уравнений в частных производных, а уже затем описывает предназначенные для этого встроенные функции, чтобы читатель ясно осознавал, каким образом Mathcad производит расчеты.

Статистика
Во-первых, имеется большое количество встроенных специальных функций, позволяющих рассчитывать плотности вероятности и другие основные характеристики основных законов распределения случайных величин (см. разд. 12.1). Наряду с этим, в Mathcad запрограммировано соответствующее количество генераторов псевдослучайных чисел для каждого закона распределения (см. разд. 12. Г), что позволяет эффективно проводить моделирование методами Монте-Карло. Во-вторых, предусмотрена возможность построения гистограмм и расчета статистических характеристик выборок случайных чисел и случайных процессов, таких как средние, дисперсии, корреляции и т. п. (см. разд. 12.2). При этом случайные последовательности могут как создаваться генераторами случайных чисел (методы Монте-Карло, см. разд. 12.3), так и вводиться пользователем из файлов. В-третьих, имеется целый арсенал средств, направленных на интерполяцию-экстраполяцию данных, построение регрессии по методу наименьших квадратов, фильтрацию сигналов. Наконец, реализован ряд численных алгоритмов, осуществляющих расчет различных интегральных преобразований, что позволяет организовать спектральный анализ различного типа.

Интерполяция и регрессия
Посвятим данную главу самым простым методам обработки данных — интерполяции-экстраполяции и регрессии. Будем считать, что основным объектом исследования будет выборка экспериментальных данных, которые, чаще всего, представляются в виде массива, состоящего из пар чисел (xi,yi) (проблеме ввода/вывода числовых данных во внешние файлы посвящен заключительный раздел этой главы). В связи с этим возникает задача аппроксимации дискретной зависимости y(xi) непрерывной функцией f(x). Функция f (х), в зависимости от специфики задачи, может отвечать различным требованиям

Спектральный анализ
Задачами, непосредственно связанными со спектральным анализом, являются проблемы сглаживания и фильтрации данных (см. разд. 14.3). Они заключаются в построении для исходной экспериментальной зависимости y(xi) некоторой (непрерывной или дискретной) зависимости f (х), которая должна приближать ее, учитывая к тому же, что данные (xi,yi) получены с некоторой погрешностью, выражающей шумовую компоненту измерений. При этом функция f (х) с помощью того или иного алгоритма уменьшает погрешность, присутствующую в данных (xi,yi). Такого типа задачи называют задачами фильтрации. Сглаживание путем построения регрессии данных (см. разд. 13.2) — это частный случай фильтрации.

Приложения
Пользователям предыдущих версий Mathcad
Команды меню и панели инструментов
Сообщения об ошибках
Ресурсы Mathcad

MathCAD 7.0

Посвящено одной из самых мощных и эффективных математических систем — MathCAD 7.0. Она существует в двух вариантах:
Cтандартном MathCAD 7.0 Standard и
Профессиональном MathCAD 7.0 Professional Edition (PRO).
Стандартная версия ориентирована на большинство пользователей, а профессиональная — на профессионалов, серьезно занимающихся математическими расчетами.
Системы MathCAD традиционно занимают особое место среди множества таких систем (Eureka, Mercury, MatLAB, Mathematica 2 и 3, Maple V R3 и R4 и др.) и по праву могут называться самыми современными, универсальными и массовыми математическими системами. Они позволяют выполнять как численные, так и аналитические (символьные) вычисления, имеют чрезвычайно удобный математико-ориентированный интерфейс и прекрасные средства графики [6, 15,16]. Системы начиная с версии 3.9 работают под управлением графических операционных систем Windows 3.1/3.11 [16,17], а новая версия MathCAD 7.0 - под Windows 95/NT.
Системы класса MathCAD предоставляют уже привычные, мощные, удобные и наглядные средства описания алгоритмов решения математических задач. Преподаватели и студенты вузов получили возможность подготовки с их помощью наглядных и красочных обучающих программ в виде электронных книг с действующими в реальном времени примерами. Новейшая система MathCAD PLUS 7.0 PRO настолько гибка и универсальна, что может оказать неоценимую помощь в решении математических задач как школьнику, постигающему азы математики, так и академику, работавшему со сложнейшими научными проблемами. Система имеет достаточные возможности для выполнения наиболее массовых символьных (аналитических) вычислений и преобразований [18, 19].
Более 600 000 только зарегистрированных пользователей владеют ранними версиями системы MathCAD во всем мире, а с выходом новых версии системы это число наверняка заметно увеличится. Ну а незарегистрированных пользователей, пожалуй, еще больше. О системе с такой вычислительной мощью, как у MathCAD 6.0/7.0 PRO, еще пару десятков лет назад не могли мечтать даже разработчики уникальной научной и космической аппаратуры. Но эта мощь нисколько не затрудняет удивительно простое и интуитивно предсказуемое общение с системой на общепринятом языке математических формул и графиков.
Исключительно велика роль систем класса MathCAD в образовании. Облегчая решение сложных математических задач, система снимает психологический барьер при изучении математики, делая его интересным и достаточно простым. Грамотное применение систем в учебном процессе обеспечивает повышение фундаментальности математического и технического образования, содействует подлинной интеграции процесса образования в нашей стране и наиболее развитых западных странах, где подобные системы применяются уже давно. Новые версии MathCAD позволяют готовить электронные уроки и книги с использованием новейших средств мультимедиа, включая гипертекстовые и гипермедиа-ссылки, изысканные графики (в том числе анимационные), фрагменты видеофильмов и звуковое сопровождение.

Предисловие
Миллионы людей занимаются математическими расчетами, иногда в силу влечения к таинствам математики и ее внутренней красоте, а чаще в силу профессиональной или иной необходимости, не говоря уже об учебе. Ни одна серьезная разработка в любой отрасли науки и производства не обходится без трудоемких математических расчетов. Вначале эти расчеты выполнялись на программируемых микрокалькуляторах [1] или с помощью программ на универсальных языках программирования, таких, как Бейсик [2] или Паскаль. Постепенно для облегчения расчетов ' были созданы специальные математические компьютерные системы [3—14].

Основы работы с системой MathCAD 7. 0 PRO
Вскоре после окончания второй мировой войны потребность в автоматизации математических расчетов привела к созданию компьютеров (computer — в буквальном переводе "счетная машина"). Но широкого применения первые поколения таких машин на электронных лампах не получили. Они были дороги и громоздки, а потому доступны лишь специалистам. С развитием микроэлектроники появились специализированные, предназначенные для математических расчетов миниатюрные компьютеры личного пользования — программируемые калькуляторы [I]. Они широко применяются и сейчас. Однако в последние годы массовое распространение получили куда более мощные, быстрые и универсальные персональные компьютеры (ПК), имеющие превосходные графические возможности и используемые практически во всех сферах науки, производства, бизнеса и образования.

Работа с файлами
Файлы документов MathCAD содержат полный текст программы, выводящей документ в окно редактирования, с указаниями координат расположения блоков, фактического содержания и характера выполняемых операций, форматов предоставления информации и т д Таким образом, файл является по сути программой, записанной на внутреннем (промежуточном) языке программирования системы Файлы могут содержать и результаты вычислений Предусмотрена возможность записи документов и в особом формате RTF, созданном для хранения сложных многокомпонентных данных (содержащих тексты и 1рафики)

Редактирование документов
Редактирование документов в ранних версиях системы MathCAD под MS-DOS было в определенном смысле искусством. Следовало помнить десятки сочетаний клавиш для ввода математических спецсимволов, шаблонов и греческих букв, правила стирания и вставки знаков в формулы и т. д. Все эти правила (несмотря на некоторые элементы их интуитивности) быстро забывались, и пользователю приходилось рыться в документах для их поиска или действительно полагаться на свою интуицию. Нередко это вело к тому, что замена в формуле какой-либо переменной или показателя степени легче обеспечивалась повторным набором блока целиком, чем применением напрочь забытых приемов редактирования.

Управление обзором (View)
Как уже не раз отмечалось, пользовательский интерфейс новых версий MathCAD содержит такие элементы, как панель инструментов, панель форматирования и наборные панели для ввода математических символов. Наряду с полезными функциями (облегчение начальной работы с системой) эти средства имеют и недостаток: они заметно сужают полезную область рабочего экрана, уменьшая ее примерно на 3—4 строки. Существует три операции в подменю View (Обзор), позволяющие управлять выводом дополнительных элементов пользовательского интерфейса:

Работа со вставками
Вид подменю позиции Insert главного меню показан на рис. 5. 1. Для создания графиков в системе MathCAD имеется программный графический процессор. Основное внимание при его разработке было уделено обеспечению простоты задания графиков и их модификации с помощью соответствующих опций. Процессор позволяет строить самые разные графики, например в декартовой и полярной системах координат, трехмерные поверхности, графики уровней и т д

Установки форматов объектов системы MathCAD
В соответствии с новой концепцией пользовательского интерфейса системы MathCAD 7. 0 PRO, ориентированной на стандартный Windows-интерфейс, все операции изменения формата сведены в подменю позиции Format (Форматирование) главного меню. В прежних версиях MathCAD операции форматирования были разбросаны по разным позициям главного меню.

Управление вычислительными процессами
По умолчанию MathCAD работает в режиме автоматических вычислений. Однако иногда бывает удобнее работать в ручном режиме, например, если вычисления объектов при их изменении выполняются заново и долго. Ручной режим вводится операцией Calculate (Вычисления) из главного меню. Для ее выполнения надо нажать кнопку со знаком = в панели инструментов или клавишу F9. Разумеется, режим автоматических вычислений при этом должен быть отключен.

Работа с символьным процессором
Системы компьютерной алгебры снабжаются специальным процессором для выполнения аналитических (символьных) вычислений. Его основой является ядро, хранящее всю совокупность формул и формульных преобразований, с помощью которых производятся аналитические вычисления. Чем больше этих формул в ядре, тем надежней работа символьного процессора и тем вероятнее, что поставленная задача будет решена, разумеется, если такое решение существует в принципе (что бывает далеко не всегда).

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

Работа с информационными ресурсами
К информационным ресурсам системы MathCAD 7. 0 PRO относятся подсказка начального уровня Tip of the Day, электронный справочник по системе обучающая программа по ней, примеры применения (шпаргалки), электронные книги, справочные таблицы, доступ в Internet и др. Доступ ко всем этим ресурсам сосредоточен в подменю позиции Help (Справка) главного меню (рис. 10. 1).




Входной язык системы MathCAD 7.0
Система MathCAD практически избавляет нас от необходимости программировать решение многих задач. Уходит в прошлое подход, когда пользователь, прежде чем вычислить определенный интеграл или производную заданной функции либо просто рассчитать ряд ее значений, был вынужден изучать основы программирования на Фортране, Бейсике или Паскале, а затем составлять свои простенькие и не очень надежные программы или же разыскивать их в статьях и книгах, подобных [2], и самостоятельно загружать эти программы в ПК.

Оптимизация вычислений и программирование
Начиная с версии 4. 0 система MathCAD обзавелась новым средством оптимизации вычислений — SmartMath. Это фактически экспертная система, ускоряющая вычисления в тех случаях, когда это возможно. При запущенной системе SmartMath процессор численных операций, приступая к вычислению формульного блока, запрашивает символьный процессор о том, может ли тот произвести упрощение или иное преобразование исходной формулы. Если это возможно, то вычисления производятся уже по упрощенной формуле.

Интегратор приложений MathConnex
В сущности MathConnex является вполне самостоятельным приложением, включенным в систему MathCAD и выполняющим функции системного интегратора. Благодаря ему возможно простое и наглядное установление сложных взаимосвязей между различными приложениями: математической системой MathCAD, матричной системой MatLAB, графической системой Axum, электронными таблицами Excel из пакета Microsoft Office и др. Мощь такой объединенной системы возрастает многократно, позволяет использовать для решения задач пользователя целый арсенал различных программных систем, включая встроенные в них специфические и подчас уникальные функции.

Примеры применения системы
В педагогической среде нередко звучат нарекания, что в системах Math CAD скрыты методы реализации численных расчетов и потому последние не наглядны. Такие нарекания абсурдны, поскольку именно MathCAD позволя ет описать алгоритм любого численного метода на естественном математичес ком языке, не прибегая к таким (скорее программистским, чем математичес ким) понятиям, как условные переходы, циклы и т. д. (хотя реализация алгоритмов с ними также возможна с помощью аппарата ранжированных пе ременных, не говоря уже о применении программных блоков).

MathCAD 7.0 PRO в Internet
В настоящее время ни одна программная система не может претендовать на высокое место в рейтинге качества, если она не поддерживает работу с Internet. Система MathCAD 7. 0 PRO такую поддержку обеспечивает, она позволяет напрямую (т. е. непосредственно из ее среды) отправлять файлы своих документов по электронной почте. Более того, система предоставляет возможность ведения совместной работы над документами, в частности серьезными математическими проектами.

Введение в анализ, синтез и моделирование систем

Можно говорить о наступлении этапа научного, системно-междисциплинарного подхода к проблемам науки, образования, техники и технологии, этапа, концентрирующего внимание не только на вещественно-энергетических, но и на системно-междисциплинарных аспектах, построении и исследовании системно-информационной картины мира, о наступлении этапа системных парадигм.
Системный анализ, чьи основы являются достаточно древними, - все же сравнительно молодая наука (сравнима по возрасту, например, с кибернетикой). Хотя она и активно развивается, ее определяющие понятия и термины недостаточно формализованы (если это вообще возможно осуществить). Системный анализ применяется в любой предметной области, включая в себя как частные, так и общие методы и процедуры исследования.

История, предмет, цели системного анализа
Эта наука, как и любая другая, ставит своей целью исследование новых связей и отношений объектов и явлений. Но, тем не менее, основной проблемой нашей науки является исследование связей и отношений таким образом, чтобы изучаемые объекты стали бы более управляемыми, изучаемыми, а "вскрытый" в результате исследования механизм взаимодействия этих объектов - более применимым к другим объектам и явлениям. Задачи и принципы системного подхода не зависят от природы объектов и явлений.

Описания, базовые структуры и этапы анализа систем
Наука - система, обеспечивающая получение, проверку, фиксацию (хранение), актуализацию знаний общества. Наука имеет подсистемы: математика, информатика, физика, экономика и др. Любое знание существует лишь в форме систем (систематизированное знание). Теория - наиболее развитая система их организации, позволяющая не только описывать, но и объяснять, прогнозировать события, процессы.

Функционирование и развитие системы
Информатизация страны в ее наивысшей стадии - всемерное использование различных баз знаний, экспертных систем, когнитивных методов и средств, моделирования, коммуникационных средств, сетей связи, обеспечение информационной а, следовательно, любой безопасности и др.; это революционное изменение, развитие общества. Компьютеризация общества, региона, организации без постановки новых актуальных проблем, т.е. "навешивание компьютеров на старые методы и технологии обработки информации" - это функционирование, а не развитие.

Классификация систем
Классификацию систем можно осуществить по разным критериям. Проводить ее жестко - невозможно, она зависит от цели и ресурсов. Приведем основные способы классификации (возможны и другие критерии классификации систем).

Система, информация, знания
Процесс познания - это иерархическая система актуализации информации, в которой знания на каждом следующем уровне иерархии являются интегральным результатом актуализации знаний на предыдущем уровне. Это процесс интеграции информационных ресурсов, от получаемых с помощью простого чувственного восприятия и до сложных аксиоматических и абстрактных теорий.

Меры информации в системе
Меры могут быть статические и динамические, в зависимости от того, какую информацию они позволяют оценивать: статическую (не актуализированную; на самом деле оцениваются сообщения без учета ресурсов и формы актуализации) или динамическую (актуализированную т.е. оцениваются также и затраты ресурсов для актуализации информации).

Система и управление
Своевременная и оперативная информация может позволить стабилизировать систему, приспосабливаться и(или) адаптироваться, восстанавливаться при нарушениях структуры и(или) подсистем. От степени информированности системы, от богатства опыта взаимодействия системы и окружающей среды зависит развитие и устойчивость системы.

Информационные системы
Информация используется для управления, но и сама она подвержена управляющим воздействиям. Основная цель этих воздействий - поддержка информационных потоков и магистралей, способствующих достижению поставленных целей при ограниченных материально-энергетических, информационно-организационных, пространственно-временных ресурсах.

Информация и самоорганизация систем
Любая открытая система эволюционирует, начиная с состояния наибольшей энтропии (неопределенности), спиралеобразно, актуализируя все новые связи и отношения, стремясь к организованности и порядку в системе в процессе взаимоотношений со средой, перестраивая свою структуру с целью уменьшения энтропии.

Основы моделирования систем
Модели и моделирование объединяют специалистов различных областей, работающих над решением межпредметных проблем, независимо от того, где эта модель и результаты моделирования будут применены. Вид модели и методы его исследования больше зависят от информационно-логических связей элементов и подсистем моделируемой системы, ресурсов, связей с окружением, используемых при моделировании, а не от конкретной природы, конкретного наполнения системы.

Математическое и компьютерное моделирование
Математическая модель описывается (представляется) математическими структурами, математическим аппаратом (числа, буквы, геометрические образы, отношения, алгебраические структуры и т.д.).
У математических моделей есть и дидактические аспекты - развитие модельного и математического стиля мышления, позволяющего вникать в структуру и внутреннюю логику моделируемой системы.

Эволюционное моделирование и генетические алгоритмы
Потребность в прогнозе и адекватной оценке последствий осуществляемых человеком мероприятий (особенно негативных) приводит к необходимости моделирования динамики изменения основных параметров системы, динамики взаимодействия открытой системы с его окружением (ресурсы, потенциал, условия, технологии и т.д.), с которым осуществляется обмен ресурсами в условиях враждебных, конкурентных, кооперативных или же безразличных взаимоотношений. Здесь необходимы системный подход, эффективные методы и критерии оценки адекватности моделей, которые направлены не только (не столько) на максимизацию критериев типа "прибыль", "рентабельность", но и на оптимизацию отношений с окружающей средой.

Основы принятия решений и ситуационного моделирования
Принятие решения и целеполагающая ресурсоориентированная деятельность человека в социальной, экономической, политической, идеологической, военной сферах тесно связаны. В них крайне нежелательны ошибки, которые могут привести к пагубным последствиям. Но из-за ограниченных информационных возможностей человека ошибки всегда возможны. Поэтому есть настоятельная необходимость применения научного подхода к обоснованию и принятию решений.

Модели знаний
Представление знаний есть процесс, конечная цель которого - представление информации (семантического смысла, значения) в виде информативных сообщений (синтаксических форм): фраз устной речи, предложений письменной речи, страниц книги, понятий справочника, объектов географической карты, мазков и персонажей картины и т.п.

Новые технологии проектирования и анализа систем
Процесс извлечения (получения) информации строится на основе упорядоченных последовательных действий по сбору, накоплению, отражению, преобразованию, актуализации данных; такие процессы в информатике называются информационными технологиями, и их основными элементами являются технические средства и устройства, например, в телеграфе - телетайпное устройство, в телевидении - телевизор и т.д.

Е2Е-проекты по системному анализу и моделированию
Прогноз поливов и величины урожая - важная социально-экономическая и сельскохозяйственная задача. Наиболее известные способы определения влажности почвы - метеорологический и термостатно-весовой. Первый может не дать желаемой точности, а второй связан с большими материальными и временными затратами. Поэтому важно разработать имитационную процедуру, дающую достаточную точность и учитывающую физиологические характеристики сельхозкультур.

Основы объектно-ориентированного программирования

Все мы хотим, чтобы наше ПО было быстродействующим, надежным, легким в использовании, читаемым, модульным, структурным и т.д. Но эти определения описывают два разных типа качества. Наличие или отсутствие таких качеств, как скорость и простота использования ПО, может быть обнаружено его пользователями. Эти качества можно назвать внешними факторами качества.
Под словом "пользователи" нужно понимать не только людей, взаимодействующих с конечным продуктом, но и тех, кто их закупает, занимается администрированием. Такое свойство, например, как легкость адаптации продуктов к изменениям спецификаций - далее определенная в нашей дискуссии как расширяемость - попадает в категорию внешних факторов, поскольку она может представлять интерес для администраторов, закупающих продукт, хотя и не важна для "конечных пользователей", непосредственно работающих с продуктом.
Такие характеристики ПО, как модульность или читаемость, являются внутренними факторами, понятными только для профессионалов, имеющих доступ к тексту ПО.

Внешние и внутренние факторы
Под словом "пользователи" нужно понимать не только людей, взаимодействующих с конечным продуктом, но и тех, кто их закупает, занимается администрированием. Такое свойство, например, как легкость адаптации продуктов к изменениям спецификаций - далее определенная в нашей дискуссии как расширяемость - попадает в категорию внешних факторов, поскольку она может представлять интерес для администраторов, закупающих продукт, хотя и не важна для "конечных пользователей", непосредственно работающих с продуктом.

О критериях
Рассмотрим выбор критериев, позволяющих оценить объектную ориентированность системы (objectness).

Пять критериев
Метод проектирования, который можно называть "модульным", должен удовлетворять пяти основным требованиям: Декомпозиции (decomposability). Композиции (composability). Понятности (understandability). Непрерывности (continuity). Защищенности (protection).

Цели повторного использования
Прежде всего, следует понять, почему так важно улучшать возможности повторного использования ПО. Здесь незачем обращаться к доводам типа "любовь к матери и яблочному пирогу". Как мы увидим, наша борьба за повторное использование преследует надлежащие цели, позволит избежать миражей, и принесет хороший доход от соответствующих инвестиций.

Ингредиенты вычисления
При поиске правильной архитектуры ПО критическим является вопрос о модуляризации: какие критерии нужно использовать при выделении модулей наших программ? Чтобы верно ответить на него, нужно сравнить соперничающих кандидатов.

Различные реализации
Надо сказать, что стеки присутствуют в дидактических представлениях абстрактных типов данных в таком большом количестве, что Э. Дейкстра как-то остроумно заметил, что "абстрактные типы данных являются прекрасной теорией, целью которой является описание стеков". Совершенно справедливо. Но в следующих лекциях курса понятие абстрактных типов данных так часто применяется в гораздо более сложных случаях, что я не чувствую стыда, начиная рассмотрение с этого ключевого примера. Он является простейшим из известных мне примеров, содержащих в себе почти все важные идеи абстрактных типов данных.

Классы, а не объекты - предмет обсуждения
Абстрактные типы данных (АТД) являются математическим понятием, пригодным на этапе подготовки спецификации - в процессе анализа. Понятие класса, предусматривая частичную или полную реализацию, обеспечивает необходимую связь с разработкой ПО на этапах проектирования и программирования. Напомним, класс называется эффективным, если его реализация полна, и отложенным - при частичной реализации.

Объекты
В процессе выполнения ОО-система создает некоторое число объектов. Организация этих объектов и отношения между ними определяют конструкцию времени выполнения. Рассмотрим свойства объектов.

Что происходит с объектами
ОО-программа создает объекты. Предыдущая лекция показала, как полезно полагаться на динамическое создание для получения гибких объектных структур, подстраивающихся автоматически к нуждам системы.

Горизонтальное и вертикальное обобщение типа
Уже изученные механизмы позволяют написать класс, помещенный в центр рисунка - LIST_OF_BOOKS, экземпляр которого представляет список книг. У класса следующие компоненты: put для вставки элемента, remove для удаления элемента, count для подсчета числа элементов и т.д. Очевидны два пути обобщения понятия LIST_OF_BOOKS.

Базисные механизмы надежности
Технические приемы, введенные в предыдущих лекциях, были направлены на создание надежного ПО. Дадим их краткий обзор - было бы бесполезно рассматривать более продвинутые концепции до приведения в порядок основных механизмов надежности. Первым и определяющим свойством объектной технологии является почти навязываемая структура программной системы - простая, модульная, расширяемая, - проще гарантирующая надежность, чем в случае "кривых" структур, возникающих при применении ранних методов разработки. В частности, усилия по ограничению межмодульного взаимодействия, сведения его к минимуму, были в центре дискуссии о модульности. Результатом стал запрет общих рисков, снижающих надежность, - отказ от глобальных переменных, механизм ограниченного взаимодействия модулей, отношения наследования и вложенности.

Базисные концепции обработки исключений
Литература по обработке исключений зачастую не очень точно определяет, что вызывает исключение. Как следствие, механизм исключений, представленный в таких языках программирования как PL/I и Ada, часто неправильно используется: вместо того, чтобы резервироваться только для истинно чрезвычайных ситуаций, они заканчивают службу как внутрипрограммные инструкции goto, нарушающие принцип Защищенности.

Взаимодействие с не объектным ПО
До сих пор, элементы ПО выражались полностью в ОО-нотации. Но программы появились задолго до распространения ОО-технологии. Часто возникает необходимость соединить объектное ПО с элементами, написанными, например, на языках С, Fortran или Pascal. Нотация должна поддерживать этот процесс.

Многоугольники и прямоугольники
Для объяснения основных понятий рассмотрим простой пример. Здесь приведен скорее набросок этого примера, а не полный его вариант, но он хорошо показывает все существенные идеи.

Примеры множественного наследования
Краткий экскурс тем более необходим, что несмотря на элегантность, простоту множественного наследования и реальную потребность в нем, демонстрация этого механизма подчас создает впечатление чего-то сложного и таинственного. И хотя эту точка зрения не подтверждает ни практика, ни теория, она распространилась достаточно широко, и теперь мы просто обязаны потратить немного времени на изучение случаев, в которых множественное наследование действительно совершенно необходимо.

Наследование и утверждения
Обладая изрядной мощью, наследование может быть и опасным. Не будь механизма утверждений, создатели классов могли бы весьма "вероломно" пользоваться повторными объявлениями и динамическим связыванием для изменения семантики операций без возможности контроля со стороны клиента. Утверждения способны на большее: они дают нам боле глубокое понимание природы наследования. Не будет преувеличением сказать, что лишь понимание принципов Проектирования по Контракту позволяет в полной мере постичь сущность концепции наследования.

Проблема типизации
О типизации при ОО-разработке можно сказать одно: эта задача проста в своей постановке, но решить ее подчас нелегко.

Константы базовых типов
Правило стиля - принцип символических констант - гласит, что обращение к конкретному значению (числу, символу или строке) почти всегда должно быть косвенным. Должно существовать определение константы, задающее имя, играющее роль символической константы (symbolic constant), и связанное с ним значение - константа, называемаю манифестной (manifest constant). Далее в алгоритме следует использовать символическую константу. Тому есть два объяснения.

Пособие по практике программирования

Эта книга построена как раз на основных принципах, применимых к информационным технологиям на любом уровне. К таким взаимосвязанным принципам относятся: простота, благодаря которой программы остаются короткими и управляемыми, четкость и ясность, которые облегчают понимание программ и людям, и машинам, обобщенность, означающая, что программа способна корректно работать в широком диапазоне ситуаций и нормально адаптироваться к новым ситуациям, и автоматизация, которая позволяет передавать машине наиболее утомительные и скучные части нашей работы. Рассматривая программирование на различных языках, от алгоритмов и структур данных, через проектирование, отладку, тестирование, до улучшения производительности, мы иллюстрируем универсальные концепции, которые не зависят ни от языка, ни от операционной системы, ни от конкретного задания.
Книга родилась из нашего многолетнего опыта в написании и поддержке разнообразнейших программ, в преподавании программирования и в общении с большим количеством программистов. Мы хотим поделиться знаниями, приобретенными благодаря этому опыту, чтобы помочь программистам всех уровней работать более эффективно и профессионально.

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

Стиль
Есть старое наблюдение, что лучшие писатели иногда пренебрегают правилами риторики. Однако, когда они это делают, читатель обычно находит в тексте какие-то компенсирующие достоинства, достигнутые ценой этого нарушения. Пока кто-то не уверен, что он сможет сделать то же самое, ему, вероятно, лучше всего следовать правилам.

Алгоритмы и структуры данных
Исследование алгоритмов и структур данных является одной из основ программирования, а также богатым полем элегантных технологий и сложных математических изысканий. И это — что-то большее, чем развлечение для теоретически подготовленных: хороший алгоритм или структура данных могут позволить решить в течение нескольких секунд проблему, которая без них решалась бы годы.

Проектирование и реализация
Одним из аспектов этой точки зрения является то, что выбор конкретного языка программирования оказывается сравнительно неважным для общего проектирования. Мы сначала спроектируем программу абстрактно, а потом реализуем ее на С, Java, C++, Awk и Perl. Сравнив реализации, мы увидим, как тот или иной язык может облегчать или, наоборот, затруднять кодирование и в каких аспектах выбор языка не является важным. Выбранный для реализации язык может, конечно, чем-то украсить программу, но не доминирует в ее разработке.

Интерфейсы
Интерфейсы: какой доступ и какой сервис предлагается? Интерфейс, в сущности, является соглашением между поставщиком (программистом) и потребителем. В идеале мы должны предоставлять унифицированные и удобные средства, имеющие достаточно возможностей для того, чтобы их было легко использовать, и в то же время не настолько большие, чтобы стать громоздкими.

Отладка
В предыдущих четырех главах мы продемонстрировали много различного кода и при этом притворялись, что весь этот код работал должным образом с первого раза. Естественно, это было не так: на самом деле было множество "багов". Слово "баг" появилось вовсе не среди программистов, но считается одним из самых распространенных терминов в программировании. Почему программирование столь сложно?

Тестирование
Тестирование и отладка часто упоминаются вместе, однако это две разные вещи. Сильно упрощая, можно сказать, что отладкой называется то, что вы делаете, когда знаете, что программа не работает. Тестирование же — это последовательные, систематические попытки добиться ошибки от программы, которая считается работающей.

Производительность
Когда-то программисты затрачивали огромные усилия на то, чтобы сделать свои программы эффективными, так как компьютеры были очень медленными и очень дорогими. В наши дни компьютеры стали гораздо быстрее и сильно подешевели, так что необходимость в идеальной эффективности заметно снизилась. Стоит ли по-прежнему волноваться из-за производительности?

Переносимость
Написать корректную и эффективную программу трудно. Поэтому если программа уже работает в одной среде, то вам, скорее всего, не захочется повторять пройденный путь ее создания при переходе на другой компилятор, процессор или операционную систему. В идеале программа не должна требовать внесения никаких изменений.

Нотация
Преимущества хорошей нотации — способа записи — появляются при переходе от традиционного программирования к узкоспециальным проблемным областям. Регулярные выражения позволяют использовать компактные (из-за этого подчас превращающиеся в тайнопись) описания классов строк. Язык HTML позволяет определять внешний вид интерактивных документов, нередко используя встроенные программы на других языках, вроде JavaScript. PostScript рассматривает целый документ — например эту книгу — как стилизованную программу. Электронные таблицы и текстовые процессоры часто содержат в себе языки программирования типа Visual Basic, они используются для вычисления выражений, доступа к информации, управления размещением данных в документе.

Приложения
Во многих главах были выделены правила или какие-то основные моменты, подводящие итог обсуждению. Для удобства поиска правила собраны здесь воедино. Не забывайте, что в соответствующих частях книги объясняется назначение и способы применения этих правил.