Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Сообщения об ошибках и их исправление

Читайте также:
  1. IX. Преступность, наказание, исправление
  2. В теме 103 сообщения
  3. В технике под информацией понимают сообщения, передаваемые в форме знаков или сигналов
  4. Вербальная составляющая рекламного сообщения: слоган, заголовок, основной рекламный текст, эхо-фраза.
  5. Вопр. 26: Понятие, надлежащие получатели и сроки сообщения информации, полученной по результатам аудита.
  6. Г) сообщения самих школьников.
  7. Действия персонала первым заметившим пожар. Средства сообщения о пожаре или загорании.
  8. И исправлением ошибок
  9. иᅟвлиянияᅟнаказанияᅟнаᅟисправлениеᅟосужденногоᅟиᅟнаᅟусловияᅟжизниᅟегоᅟсемьи
  10. Информация. Материальный носитель. Сигнал. Сообщение. Правило интерпретации сообщения.

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

>> sin(0)/0

Warning: Divide by zero.

ans =

NaN

Здесь NAN - сокращение от слов Not-a-Number (не число), принятое для обозначения неопределенного результата (например, 0/0 или Inf/Inf) [см раздел 2.2.3; системные переменные].

При сообщении об ошибке красного цвета (после знаков ???) MATLAB не выдает решение.

Так получится, например, если при вычислении значения с помощью встроенной элементарной функции sqrt (квадратный корень) допустить ошибку:

>> sqr(2)

??? Undefined function or variable 'sqr'.

Это сообщение говорит о том, что не определена переменная или функция, и указывает, какая именно – sqr.

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

Существует несколько способов возврата в строку ввода ранее введенных команд.

Первый способ – с помощью клавиш “↑” и “↓”. Он рассматривался в разделе 2.2.1.3.

Так после возврата (нажатием клавиши “↑”) в строку ввода ошибочно записанной функции sqr с последующими редактированием и нажатием клавиши Enter будет получен следующий результат:

>> sqrt(2)

ans =

1.4142

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

Третий способ – копирование из окна Command History.

Для активизации окна Command History в версии 6 используется соответствующая строчка меню View, а в версии 7 - раздел меню Desktop. В этом окне отображаются дата и время каждого сеанса работы в MATLAB, а также перечень команд, вводимых в течение каждого сеанса. Если в окне Command History дважды щелкнуть левой кнопкой мыши на какой – либо команде, то она будет выполнена. Это равнозначно вводу данной команды в командное окно с последующим нажатием клавиши <Enter>:

 

Если щелкнуть на какой – либо команде окна Command History левой кнопкой мыши (ЛКМ), то данная команда становится текущей (т.е. так же, как это происходит в любом Windows-приложении). Можно выделить нужную последовательность команд также при помощи комбинации клавиш <Shift>+<↑>, <Shift>+<↓>. При щелчке правой кнопкой мыши (ПКМ) на выделенной области окна Command History появляется всплывающее меню (контекстное меню). Выбор пункта Copy приводит к копированию выделенной последовательности в буфер обмена Windows. Вставка из буфера в строку ввода может быть сделана с помощью строки Paste контекстного меню окна Command Window. Весь вставленный в командную строку набор команд отправляется на выполнение нажатием клавиши < Enter>.

До нажатия клавиши <Enter> содержимое набора можно редактировать, используя обычные прием ы редактирования, общие для Windows – приложений, в том числе и с помощью мыши. Можно вносить в команды необходимые изменения, удалять лишние команды и добавлять новые. При редактировании клавиши <↑> и <↓> могут использоваться для перемещения между строками набора.

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

MATLAB совместно с пакетом ToolBox Symbolic Math (2, глава 7) дает возможность визуальной проверки соответствия набранного выражения исходной формуле.

Пример обнаружения и устранения семантической ошибки при записи следующей формулы:

F =

при x=0,1, y=0,2.

Ввести значения переменных x и y. Набрать с клавиатуры арифметическое выражение F и вычислить его значение, нажав клавишу <Enter>. Если редактор MATLAB синтаксических ошибок ввода не обнаружит, то вычислит значение выражения F= 7,2111.

Для того чтобы проверить выражение F на наличие семантических ошибок, ему необходимо придать статус символьного. Символьное выражение F создается с помощью функции sym [2, гл.7], входным аргументом которой является строка с арифметическим выражением, заключенная в апострофы. На рисунке видно, что арифметическое и символьное выражения F синтаксически совпадают (см. 2-ю и 3-ью командные строки):

Функция pretty [2, раздел 7.1] выводит в командное окно символьное выражение F в виде, близком к математической формуле.

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

Пятая командная строка получена редактированием третьей командной строки с целью исправления ошибки ввода. Результат выполнения пятой команды – новое символьное выражение F (без вывода в командное окно).

В шестой команде функции pretty выводит в командное окно новое символьное выражение F в формульном виде. Выведенная формула совпадает с исходной формулой F.

Седьмая командная строка получена редактированием пятой командной строки с целью отмены для исправленного выражения F статуса символьного. Результат выполнения седьмой команды – правильное значение выражения F= -2,6904.




Дата добавления: 2015-04-26; просмотров: 17 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
Вывод справки по функциям.| Ввод векторов и матриц.

lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав