8.2.4. Вопросы программирования
Система Mathcad обладает широким набором стандартных функций, позволяет самостоятельно создавать оригинальные функции пользователя. Тем не менее при решении нестандартных задач возникает необходимость в разработке особенных алгоритмов вычислений. Для этих случаев предусмотрен собственный язык системы, с помощью которого можно решать уникальные (редкие) задачи. Заметим, что возможность программирования не является главным достоинством системы Mathcad. Главное достоинство системы – возможность решения множества типичных задач без программирования.
Рассмотрим порядок составления простейших программ на примере базовых структур программирования.
Предположим, что необходимо вычислить сумму ряда
Найти это значение в системе Mathcad можно просто, выбрав на соответствующей палитре знак суммы и заполнив пустые поля.
Для учебных целей нахождение суммы ряда выполним путем использования программы, текст которой приведен ниже (базовая структура программирования «Цикл»).
В верхней части программы приведено описание функции пользователя, а далее эта функция применена для нахождения результата.
Ввод функции пользователя с именем sum(n) осуществляется с помощью палитры «Программирование», показанной слева. Вертикальная линия вводится с помощью кнопки Add Line, а ключевое слово for и стрелка (локальный оператор присваивания) – с помощью одноименных кнопок.
В первой строке функции пользователя происходит обнуление результата, во второй строке формируется заголовок регулярного цикла, в третьей строке записано тело цикла, в котором идет накопление суммы.
Кроме регулярных циклов существуют итерационные циклы, в которых вычисление ведется до выполнения какого-либо условия, например, достижения заданной погрешности.
В качестве примера использования итерационных циклов рассмотрим порядок расчета иррационального числа π с помощью сходящегося ряда. Точность вычисления этого числа будет зависеть от вводимой пользователем допустимой абсолютной погрешности.
Основная идея подобных программ состоит в том, что на очередном типовом цикле вычислений (другими словами, на очередной итерации) происходит сравнение вычисленного значения члена сходящегося ряда с выбранной самим пользователем допустимой погрешностью. Если рассчитанное значение по модулю больше допустимой погрешности, то циклический процесс продолжается. В момент, когда очередной член ряда становится меньше допустимой абсолютной погрешности, вычисления прекращаются.
Для итерационных циклических процессов трудно заранее предсказать, сколько потребуется итераций (т. е. циклов) для достижения результата с заданной точностью. На продолжительность расчетов влияет вид функции (а значит и скорость сходимости) и выбранная программистом погрешность вычислений.
Рассмотрим порядок разработки программы для вычисления . Расчетная формула выглядит так:
Для наглядности запишем несколько членов этого знакочередующегося ряда и каждый член ряда обозначим символами аi:
Чтобы получить компактную программу, выведем рекуррентную формулу, которая позволяет рассчитать последующий член ряда по известному предыдущему члену ряда. На основании предыдущей формулы запишем п + 1-й член ряда:
Возьмем отношение п + 1-го члена ряда к n-му члену ряда:
Теперь с помощью полученного коэффициента q любой, последующий член ряда может быть выражен через предыдущий член ряда:
Блок-схема алгоритма для вычисления константы /4 приведена на рисунке.
На рисунке приняты такие обозначения:
pogr – абсолютная погрешность, с которой вычисляется число ; summa – результат (сумма, накопленная при вычислении); а – значение очередного члена ряда; п – число членов ряда; q – коэффициент.
В программе используется оператор while (пока), который обеспечивает многократные вычисления в теле цикла, пока выполняется условие, записанное после этого оператора.
Результаты вычислений накапливаются в переменной summa. Первоначально ее значение обнуляется, а первый член ряда принимается равным единице.
Завершается программа выводом значения переменной pi (0.00001). В скобках указано принятое значение абсолютной погрешности вычислений.
Полученный результат существенно отличается от истинного значения иррационального числа π. Это объясняется большим значением выбранной погрешности.
Рассмотрим, как программно реализуется базовая структура «Ветвление». Предположим, что требуется сделать вычисления в соответствии со следующей системой уравнений:
Блок-схема алгоритма для решения этой задачи, – текст программы на языке Mathcad и результаты, полученные при расчете, – приведена ниже.
Вычисления будут осуществляться с помощью функции пользователя. Для получения результата необходимо позаботиться о введении исходных данных и выводе полученных результатов.
Прокомментируем составленную программу.
Смысл первых двух строк очевиден (аналогичные конструкции есть во многих языках программирования высокого уровня – операторы условной передачи управления). Условие ветвления в третьей строке могло быть записано по-другому: if > 4. Английское слово otherwise означает «иначе» (во всех других случаях), т. е. при х большем 4.
Во второй строке использован специальный знак равенства, который берется на палитре «Булевы операторы».
После определения функции пользователя приведен пример ее использования. С этой целью выполнен расчет для аргумента, изменяющегося от – 6 до 6 с шагом 2.
- Александр Петрович Алексеев Информатика 2002
- 129337, Г. Москва, а/я 5
- Ответственный за выпуск: с. Иванов
- Isbn 5-93455-128-0 © а.П. Алексеев Введение
- Предисловие ко второму изданию
- 1. Основные понятия
- 1.1. Основные понятия об информации и информатике
- 1.2. Понятие об информационных технологиях
- К.А. Гельвеций
- 1.3. Этапы развития вычислительной техники
- 1.4. Хронология возникновения Интернета
- 1.5. Сферы использования вычислительной техники
- 1.6. Развитие отечественной вычислительной техники
- 2. Арифметические и логические основы работы эвм
- 2.1. Системы счисления
- 2.2. Арифметические основы работы эвм
- 2.3. Логические основы работы эвм
- 3. Организация данных в эвм
- 3.1. Представление данных в эвм
- 3.2. Представление команд в эвм
- 3.3. Кодовая таблица
- 3.4. Файловая система
- 4. Аппаратные средства
- 4.1. Структурная схема эвм
- 4.2. Принцип действия основных устройств эвм
- 4.2.1. История развития процессоров
- 4.2.2. Принцип действия процессора
- 4.2.3. Память
- 4.2.3.1. Оперативная память
- 4.2.3.2. Внешние запоминающие устройства
- 4.2.4. Устройства ввода информации
- 4.2.5. Устройства вывода информации
- 4.3. Классификация эвм
- 5. Системное программное обеспечение
- 5.1. Понятие об операционной системе
- 5.2. Методы архивации
- 5.3. Принципы сжатия информации
- 5.4. Вирусы и антивирусные программы
- 5.5. Основные понятия программирования
- 5.5.1. Языки программирования
- 5.5.2. Основные свойства и способы представления алгоритма
- 5.5.3. Базовые структуры программирования
- 5.5.4.VisualBasic– основные сведения*
- 6. Прикладное программное обеспечение
- 6.1. Текстовые редакторы
- К. Прутков
- 6.2. Графические редакторы
- 6.3. Электронные таблицы
- 6.4. Базы данных
- 6.5. Искусственный интеллект
- 6.6. Экспертные системы
- 6.7. Мультимедиа
- 6.8. Виртуальная реальность
- 6.9. Системы автоматизированного проектирования
- 7. Основные понятия моделирования
- 7.1. Основные понятия и определения моделирования
- 7.2. Обзор систем моделирования рэу
- 7.3. СистемаElectronicsWorkbench
- 7.4. Система CircuitMaker
- 7.5. СистемаMicro-Cap
- 8. Математические и статистические системы
- 8.1. Обзор математических и статистических систем
- 8.2. Математическая системаMathcad
- 8.2.1. Пользовательский интерфейс
- 8.2.2. Компьютерная алгебра
- 8.2.3. Операции с комплексными числами
- 8.2.4. Вопросы программирования
- 8.3. Аппроксимация с помощью пакетов тсwiNи тс 3d
- 9. Сетевые информационные технологии
- 9.1. Локальные сети
- 9.2. Глобальные сети
- 9.3. Браузеры
- 9.4. Поисковые системы и каталоги
- 9.5. Электронная почта
- Фильтры для приходящей почты
- 9.6. Введение вHtml
- Html – язык для создания Web-страниц
- 9.7. Основные понятияWeb-дизайна
- 9.7.1. Теоретические основыWeb-дизайна
- 9.7.2. Сетевые технологииWeb-дизайна
- 9.7.5. Понятие о баннерах
- 9.7.4. Инструментальные средстваWeb-дизайна
- 9.8. Основные понятия криптографии и стеганографии
- 9.8.1. Шифрование сообщений различными методами
- 9.8.2. Криптографическая система с открытым ключом
- 9.8.3. Понятие о стеганографии
- 10. Компьютер и здоровье
- 11. Перспективы развития вычислительной техники
- Заключение
- 12. Приложения Глоссарий
- Список аббревиатур
- Список литературы
- Содержание
- 7. Основные понятия моделирования 150
- 8. Математические и статистические системы 179
- 9. Сетевые информационные технологии 201
- 10. Компьютер и здоровье 268
- 11. Перспективы развития вычислительной техники 273
- 12. Приложения 277