Как в маткаде сделать цикл

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

  • Если заранее точно известно необходимое число выполнений цикла, то целесообразно использовать цикл типа for.
  • Если цикл должен завершиться по выполнении некоторого условия, причем момент выполнения этого условия заранее не известен, то целесообразно использовать цикл типа while.

Цикл типа while управляется истинностью некоторого условия, вследствие чего нет необходимости знать заранее число выполнений цикла. Важно только, чтобы где-нибудь внутри цикла или в другом выполняемом участке программы присутствовал оператор, делающий условие цикла ложным. В противном случае цикл будет выполняться бесконечно. Если выполняемая программа зациклилась, то ее можно остановить нажатием клавиши [Esc].

Чтобы записать цикл типа while, нужно:

  • Щёлкнуть по кнопке “while” в панели программирования.

  • Напечатать условие выполнения в верхнем поле ввода. Обычно это — логическое выражение, подобное показанному.

  • Записать в оставшемся поле ввода выражение, подлежащее повторяющемуся вычислению. Введение дополнительных полей ввода осуществляется путем нажатия кнопки “Add Line” на панели программирования.

На Рисунке 5 показана чуть более объемная программа, включающая цикл типа while. Обнаружив заголовок цикла типа while, Mathcad проверяет условие цикла. Если оно истинно, то Mathcad выполняет тело цикла и снова проверяет условие. Если оно ложно, то Mathcad заканчивает выполнение цикла.

Рисунок 5: Использование цикла типа “while” для отыскания первого вхождения заданного числа в матрицу.

Часто удобно выйти из цикла или остановить исполнение программы при выполнении некоторого условия. Например, для программы на Рисунке 5 существует возможность зацикливания. Если каждый элемент из v меньше, чем thresh, то условие никогда не станет ложным и поиск выйдет за пределы вектора, что приведет к сообщению об ошибке “индекс вне границ”. Чтобы это не случилось, можно использовать оператор break, как показано на Рисунке 6.

Программа на Рисунке 6 возвратит 0 в случае, если не будет найдено ни одного элемента, превосходящего thresh. В противном случае она возвращает индекс и значение первого элемента, превосходящего thresh.

Чтобы ввести оператор break, нужно щёлкнуть по кнопке “break” на панели программирования. Подчеркнем, что в примере на Рисунке 6 нужно сначала щёлкнуть по кнопке “break” и только потом по кнопке “if”.

Рисунок 6: Пример из Рисунка 5, измененный таким образом, чтобы возвращались индекс и значение элемента массива. Оператор “break” использован для предотвращения ошибки в тех случаях, когда величина thresh оказывается слишком большой.

Цикл типа for является циклом, число выполнений которого определено заранее. Число выполнений определятся переменной цикла, задаваемой в его начале.
Для создания цикла типа for:looping;for loopfor loop

  • Щёлкните по кнопке “for” на панели программирования.

  • Напечатайте в поле ввода слева от знака О имя переменной цикла.

  • Введите в поле справа от знака О диапазон значений, в котором должна изменяться переменная цикла. Форма задания диапазона в точности такая же, как и для дискретного аргумента. Подробности см. в Главе “Дискретные аргументы”

  • В оставшееся поле ввода впечатайте выражение, подлежащее повторяющимся вычислениям. Обычно оно включает в себя переменную цикла. Дополнительные поля ввода можно создать щелчком по кнопке “Add Line” в панели программирования.

В верхней половине Рисунка 7 показан цикл типа for, используемый для сложения последовательности целых чисел. Неопределенная переменная на Рисунке 7 напоминает о том, что определение переменной цикла является локальным для программы, ее содержащей, и не видно нигде вне программы.

Читайте также:  Игра где мужик бегает по городу

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

Рисунок 7: Использование цикла типа “for” с переменными цикла двух различных видов .

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter

Для вставки программного кода в документы MathCAD имеется специальная панель инструментов Программирование. Большинство кнопок

этой панели выполнено в виде текстового представления операторов программирования, поэтому их смысл легко понятен.

Программирование имеет ряд преимуществ:

• возможность применения циклов и условных операторов;

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

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

Программный модуль обозначается в MathCAD вертикальной чертой, справа от которой последовательно записываются операторы языка программирования.

Чтобы создать программный модуль, надо:

1. ввести часть выражения, которая будет находиться слева от знака присваивания и сам знак присваивания, например, f(x).

2. нажать на панели Программирование кнопку Add Line (добавить строку программирования), если приблизительно известно, сколько строк будет содержать программа, можно многократным нажатием на эту кнопку ввести соответствующее количество строк. Вставить строку программного кода можно в любой момент с помощью той же кнопки Add Line.

3. в появившиеся местозаполнители ввести желаемый программный код, используя программные операторы.

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

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

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

Язык программирования не был бы эффективным, если бы не позволял создавать внутри программных модулей локальные переменные. Присваивание в пределах программ, в отличие от документов MathCAD, производится с помощью оператора Локальное присваивание (Local Definition), который вставляется с помощью кнопки с изображением стрелки«←». Ни оператор присваивания :=, ни оператор ввода = в пределах программы не применяются.

Пример 1. вычислить значение f(x), заданное выражением f(x):=z+5

Условные операторы (if, otherwise)

Действие условного оператора if состоит из двух частей. Сначала проверяется логическое выражение (условие) справа от него. Если оно истинно, выполняется выражение слева от оператора if. Если ложно, выполнение программы продолжается переходом к ее следующей строке.

Вставить условный оператор можно следующим образом:

• создайте новую строку программного кода, нажав кнопку Add Line,

• нажмите кнопку if и справа от него введите условие (панель Булевы),

• выражение, которое должно выполняться, если условие истинно, введите слева от оператора if,

Оператор otherwise используется совместно с одним или несколькими условными операторами if и указывает на выражение, которое будет выполнено, если ни одно из условий не оказалось истинным.

Читайте также:  Из букв разрезной азбуки составлено слово ананас

Рассмотрим использование оператора if для задания кусочно-гладкой функции.

Можно определить функцию непосредственно, при помощи встроенной функции if:

но это определение хотя и более краткое, но менее наглядное.

Эквивалентное, но намного более сложное, определение этой же функции:

Операторы цикла (for, while, break, continue)

В языке программирования MathCAD имеются два оператора цикла: for и while. Первый из них дает возможность организовать цикл по некоторой переменной, заставляя ее пробегать некоторый диапазон значений. Второй создает цикл с выходом из него по некоторому логическому условию. Если выбран оператор for, то в соответствующие местозаполнители надо вставить имя переменной и диапазон ее значений, если while – то логическое выражение, при нарушении которого должен осуществляться выход из цикла. В нижний местозаполнитель вводится тело цикла, т.е. выражение, которое должно выполняться циклически. Важно, чтобы в программе присутствовал оператор, делающий условие цикла ложным. В противном случае, цикл будет выполняться бесконечно. Если выполняемая программа зациклилась, то ее можно остановить, нажатием клавиши Esc.

Пример 6. Поиск первого элемента вектора, превосходящего заданное

Иногда необходимо досрочно завершить цикл, т.е. не по условию в его заголовке, а в некоторой строке тела цикла. Например, для предыдущей программы существует вероятность зацикливания. Если каждый элемент вектора меньше, чем заданное число, то условие никогда не станет ложным и поиск выйдет за пределы вектора, что приведет к сообщению об ошибке «индекс вне границ». Чтобы этого не случилось, предназначен оператор break.

Пример 7. Поиск первого элемента вектора, превосходящего заданное

значение, с использованием оператора break.

Например, как только значение переменной цикла i достигнет 2, цикл, благодаря оператору break в последней строке программного модуля, прерывается. Соответственно, значение переменной Х остается равным х=0+1+2=3.

Чтобы четче обозначить границы завершения тела цикла, в его конце может использоваться дополнительная строка с оператором continue.

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

• начального определения, предотвращающего бесконечную рекурсию,

• определения функции в терминах предыдущего значения

Основная идея подобна идее математической индукции: если можно получить значение f(n+1) из f(n) и известно f(0), то известна и вся функция f.

Пример 9. Нахождение факториала.

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

Возврат значения (return)

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

| следующая лекция ==>
Нагревание поверхности Земли | Сеть на базе протокола SIP. Сигнализация на основе протокола SIP

Дата добавления: 2017-09-19 ; просмотров: 1592 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

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

  • Создайте в программном модуле новую линию.
  • Вставьте один из операторов цикла for или while нажатием одноименной кнопки на панели Programming (Программирование).
  • Если выбран оператор for (рис. 6.9), то вставьте в соответствующие ме-стозаполнители имя переменной и диапазон ее значений (листинги 6.6 и 6.7), а если while — то логическое выражение, при нарушении которого должен осуществляться выход из цикла (листинг 6.8).
Читайте также:  Имеет ли вино срок годности

Рис. 6.9. Вставка оператора цикла

  • В нижний местозаполнитель введите тело цикла, т. е. выражения, которые должны выполняться циклически.

При необходимости дополните программу другими строками и введите в них нужный код.

Диапазон значений переменной в условии цикла for можно задать как с помощью диапазона ранжированной переменной (листинг 6.6), так и с помощью вектора (листинг 6.7).

Листинг 6.6. Оператор цикла for с ранжированной переменной

Листиг 6.7. Оператор цикла for с вектором

Листинг 6.8. Опратор цикла while

Иногда необходимо досрочно завершить цикл, т. е. не по условию в его заголовке, а в некоторой строке в теле цикла. Для этого предназначен оператор break. Модификации листингов 6.6 и 6.8 с прерыванием цикла оператором break приведены в листингах 6.9 и 6.10, соответственно. Например в листинге 6.9, как только значение переменной цикла i достигает 2, цикл, благодаря оператору break в последней строке программного модуля, прерывается. Соответственно, значение переменной х остается равным 0+1+2=3.

Листинг 6.9. Оператор break внутри цикла for

Листинг 6.10. Оператор break внутри цикла while

Чтобы четче обозначить границы завершения тела цикла, в его конце может использоваться дополнительная строка с оператором continue, который вводится одноименной кнопкой панели Programming. Примеры, модернизирующие листинги 6.7 и 6.8, иллюстрируются листингами 6.11 и 6.12, соответственно. Как видно, на результат программы наличие оператора continue не влияет.

Листинг 6.11. Оператор continue в конце цикла while

Листинг 6.12. Оператор continue в конце цикла for

НОВОСТИ ФОРУМА
Рыцари теории эфира
01.10.2019 – 05:20: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ – Upbringing, Inlightening, Education ->
[center][Youtube]69vJGqDENq4[/Youtube][/center]
[center]14:36[/center]
Osievskii Global News
29 сент. Отправлено 05:20, 01.10.2019 г.’ target=_top>Просвещение от Вячеслава Осиевского – Карим_Хайдаров.
30.09.2019 – 12:51: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ – Upbringing, Inlightening, Education ->
[center][Ok]376309070[/Ok][/center]
[center]11:03[/center] Отправлено 12:51, 30.09.2019 г.’ target=_top>Просвещение от Дэйвида Дюка – Карим_Хайдаров.
30.09.2019 – 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ – Upbringing, Inlightening, Education ->
[center][Youtube]VVQv1EzDTtY[/Youtube][/center]
[center]10:43[/center]

интервью Раввина Борода https://cursorinfo.co.il/all-news/rav.
мой телеграмм https://t.me/peshekhonovandrei
мой твиттер https://twitter.com/Andrey54708595
мой инстаграм https://www.instagram.com/andreipeshekhonow/

[b]Мой комментарий:
Андрей спрашивает: Краснодарская синагога – это что, военный объект?
– Да, военный, потому что имеет разрешение от Росатома на манипуляции с радиоактивными веществами, а также иными веществами, опасными в отношении массового поражения. Именно это было выявлено группой краснодарцев во главе с Мариной Мелиховой.

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

Ссылка на основную публикацию
Adblock detector