Программирование и решение задач в пакете MathCAD

       

Вызов подпрограммы-функции


                  

                                             

            Рис. 5.3.8. Реализация итерационного цикла примера 5.3.6

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

– означает обращение к элементу, стоящему на пересечении второй строки и четвертого столбца. Поэтому в общем случае для работы с матрицами необходимо использовать так называемый двойной цикл, у которого тело одного цикла, называемого внутренним, «вкладывается» в тело другого – «внешнего» цикла. Каждый из этих циклов имеет свой параметр: параметр внешнего цикла и параметр внутреннего цикла. Следовательно, для организации  такого двойного цикла необходимо  использовать два оператора цикла, один из которых размещен в теле другого (различные варианты вложений операторов цикла приведены на рис. 5.3.9).

 

           

Рис. 5.3.9. Варианты вложений операторов цикла

      

       Пример 5.3.7. Составить описание П-Ф формирующей матрицу по следующему правилу:

                 

.

Описание и вызов П-Ф приведены на рис. 5.3.9. В этой П-Ф параметром внешнего цикла является переменная i, а параметром внутреннего — переменная  j.  ¨



     

                            

      

               

Рис. 5.3.10. Реализация двойного цикла примера 5.3.7

       Пример 5.3.8. Дана матрица

размерности
. Составить описание П-Ф, вычисляющей индексы и значение элемента матрицы, который по модулю максимально близок к заданному  числу c. Описание П-Ф и ее вызов приведены на рис 5.3.10. Напомним, что системная переменная   ORIGIN = 1.  ¨


    

                                                    

   Рис. 5.3.14. Два варианта реализации алгоритма примера 5.3.10

Оператор on error. Этот оператор является обработчиком возникающих при выполнении тех или иных вычислений ошибок и записывается в виде:

 

              <  конструкция 1 >  on error  <  конструкция 2 >.

 

Оператор выполняется следующим образом. Если при выполнении <конструкция 2> возникает ошибка, то выполняется  <конструкция 1>. Если ошибка не возникает, то выполняется  <конструкция 2>.

             Пример 5.3.11. Используем оператор on error для

предотвращения появления ошибки «деление на ноль» при вычислении функции angl(x,y). Фрагмент представлен на рис. 5.3.15. ¦

Ошибка

   «деление на ноль»

               


               


                       

   Рис. 5.3.15. Использование функции on error  в примере 5.3.11

Функция error. Используется для вывода диагностических сообщений при возникновении в вычислениях ошибки и записывается в виде:

 

error ("<  диагностическое сообщение пользователя >").

 

Имя функции вводится с клавиатуры. Функция используется в левом поле условного оператора if, как показано в следующем примере.

 

Пример 5.3.12. Запрограммируем вывод диагностического сообщения при попытке спроецировать вектор  v на нулевой вектор w. Описание П-Ф и ее вызовы приведены на рис. 5.3.16.

 

 



        
              


           Рис. 5.3.16. Использование в П-Ф оператора error

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

           
     


            Рис. 5.3.17. Применение функции error в примере 5.3.12

 

 


Содержание раздела