Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ЧМ_ЛР.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.56 Mб
Скачать

4.Содержание отчета

    1. Постановлениезадачи.

    2. Описание реализации задачи выбранными методами в средеMathCAD.

    3. Результаты, их анализ и графическиеизображения

Лабораторнаяработа №8

ТЕМА: Операторы программирования , поиск экстремума функций

    1. Обзор программныхоператоров

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

Add Line - создает и при необходимости расширяет жирную вертикальную ли- нию, справа от которой в шаблонах задается запись программного блока;

 - символ локального присваивания (втелемодуля);if - оператор условноговыражения;

for - оператор задания цикла с фиксированным числомповторений;

while - оператор задания цикла типа "пока" (цикл выполняется,покавыпол-няется некотороеусловие);

otherwise - оператор иного выбора (обычно применяется сif);

break -операторпрерывания;continue - операторпродолжения; return - операторвозврата;

on error - оператор обработки ошибок.

Оператор Add Line

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

Оператор внутреннего присваивания 

Оператор выполняет функции внутреннего, локального присваивания.

Например, выражение х 123 присваивает переменной х значение 123. Локаль- ный характер присваивания означает, что такое значение х сохраняет только в теле программы. За пределами тела программы значение переменной х может быть неопределенным либо равно значению, которое задается операторами ло- кального := и глобального = присваивания вне программного блока.

Условный оператор if

Оператор if является оператором для создания условных выражений. Он за- дается в виде:

Выражение if Условие

Если Условие выполняется, то возвращается значение Выражения. Совме- стно с этим оператором часто используются операторы прерывания break и опе- ратор иного выбора otherwise.

Оператор for

Оператор for служит для организации циклов с заданным числом повторе- ний. Он записывается в виде:

for Var Nmin .. Nmax

Эта запись означает, что выражение, помещенное в шаблон, будет выпол- няться для значений переменной Var, меняющихся с шагом +1 от Nmin до Nmax. Переменную счетчика Var можно использовать в исполняемом выражении.

Оператор while

Оператор while служит для организации циклов, действующих до тех пор, пока выполняется некоторое условие. Этот оператор записывается в виде:

while Условие

Выполняемое выражение записывается на место шаблона.

Оператор otherwise

Оператор иного выбора otherwise обычно используется совместно с опера- тором if. Это поясняет следующая программная конструкция:

f(x):= 1 ifх>0 возвращает 1, если х >О

-1otherwise возвращает -1 во всех иныхслучаях

Оператор break

Оператор break вызывает прерывание работы программы всякий раз, как он встречается. Чаще всего он используется совместно с оператором условного вы- ражения if и операторами циклов while и for, обеспечивая переход в конец тела цикла.

Оператор continue

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

Оператор—функция возврата return

Особый оператор return прерывает выполнение программы и возвращает значение своего операнда, стоящего следом за ним. Например, в приведенном ниже случае

return 0 if x<0

будет возвращаться значение 0 при любом х < 0. Оператор on error и функция error

Оператор обработки ошибок позволяет создавать конструкции обра- ботчиков ошибок. Этот оператор задается в виде:

Выражение_1 on error Выражение_2

Здесь, если при выполнении Выражения_2 возникает ошибка, то выполня- ется Выражение_2. Для обработки ошибок полезна также функция error(S), ко- торая, будучи помещенной в программный модуль, при возникновении ошибки возвращает окошко с надписью, хранящейся в символьной переменной S.

    1. Примерыпрограммирования

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

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

Применение условного оператора if в программном блоке:

Group 553 abs(5)  5

abs(5)  5

Применение условного оператора for для вычисления суммы и произве- дения последовательности целых чисел от 1 до n:

Group 549 sum(10)  55

sum(20)  210

Group 545 prod(3)  6

prod(10)

 3.629  106

AutoShape 544 Применение оператора while и break для вычисления факториала:

Fact(n) f 1

while n n  1

F(n) 

f n while 1

f f (n  1)

f

f f (n  1)

n n  1

Fact(3)  6

( break) if n 1

f

AutoShape 542 Line 543 F(3)  6

Пример применения условной функции if

f (y) sin(y)

z(y)  if(f (y) 

0f(y)0)

y  0  0.1 15

Group 531 Group 524

Group 513 Group 503 1

Group 492 Group 486

Group 477 Group 471 Group 462 Group 452 0.5

Group 446 Group 437 z(y)

0

0 5 10 15

y

K(x)  1  x

T  3

P(x) if(x

TK(x)P(xT))

x  0  0.1 15

Group 416 1

0

Line 415 Line 414 P(x)

1

20 5 10 15

x

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

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

    1. Составить программный модуль вычисленияфункции Варианты заданий получить упреподавателя.

8.4.

Поиск минимума методом золотогосечения

комментариями Rem 

Line 412 Золотаяпропорция x a

b x

has solution(s) - попеременнойx

0 )

b x b a

3b

2

3b

2

1a1

Group 409 2 2

1a1

2 2

(ba)

Group 405 (ba)

Функция "Золотое сечение"

Зол_Сеч(a b) 

3b

2

1a1

2 2

(ab)

Group 402 AutoShape 401 AutoShape 400 AutoShape 399 мин_З_С ( y a b) Поиск_минимума_в_интервале_от_a_до_b Rem

AutoShape 398 x1 Зол_Сеч

x2 Зол_Сеч

(ab)y1 y( x1)

AutoShape 396 (ba)y2 y( x2)

Цикл_приближения_к_минимуму Rem

while

AutoShape 392 if

a b

y1 y2

TOL

AutoShape 384 Минимум_слева Rem b x2x2 x1y2 y1

x1 Зол_Сеч

otherwise

(ab)y1 y( x1)

Минимум_справа Rem a x1x1 x2y1 y2

AutoShape 377 AutoShape 376 x2 Зол_Сеч( b a )y2 y( x2)

AutoShape 374 Уточнение_точки_минимума Rem a b

2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]