Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-Технологический_Практикум_УТС.Б_5.pdf
Скачиваний:
146
Добавлен:
09.02.2015
Размер:
584.23 Кб
Скачать

КФ МГТУ им. Н.Э. Баумана Факультет ЭИУК Учебно-технологический практикум

Лабораторные работы для студентов специальности УТС.Б

1-го семестра обучения.

Разработал: доц. каф. ЭИУ3 - КФ Адкин М.Ю.

Лабораторная работа № 5.

Тема работы:

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ В MATLAB 5.*,6.*,7.*

Цель работы: знакомство студентов с основами программирования в системе MATLAB. Закрепление ранее пройденного материала по графической подсистеме MATLAB.

Приборы и оборудование:

¾Компьютер совместимый с IBM PC, 32-256 Мб. ОЗУ.

¾Операционная система WINDOWS *.

¾Математический пакет MATLAB Version 5.*, 6.*,7.*

Содержание работы:

Управляющие структуры MATLAB: Оператор FOR

Оператор WHILE Оператор IF Оператор SWITCH Оператор BREAK

Операторы и функции отношений Логические операторы и функции Диалоговый ввод-вывод в MATLAB

Функции input,pause,menu,keyboard

Файловый ввод-вывод в MATLAB

Длительность работы: 12 академических часов

Защита работы: Отчет в электронном виде. Собеседование с преподавателем по контрольным вопросам, выполнение индивидуальных заданий.

Краткая характеристика подсистемы программирования

MATLAB

Система MATLAB позиционируется как язык высокого уровня для научнотехнических расчетов. Язык программирования системы MATLAB реализует средства, следующих видов программирования:

-процедурного;

-операторного;

-функционального;

-логического;

-структурного (модульного);

-объектно-ориентированного;

-визуально-ориентированного.

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

Логическое программирование реализуется в MATLAB с помощью логических операторов и функций.

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

Объектно-ориентированное программирование поддерживается в системе MATLAB с помощью приватных каталогов. Оно эффективно при программировании задач графики и задач теории управления.

Визуально-ориентированное программирование представлено в пакете моделирования систем Simulink.

В данной работе будут рассмотрены вопросы структурного

программирования и организация ввода-вывода в системе MATLAB.

Управляющие структуры MATLAB

Существует четыре основных оператора управления последовательностью исполнения инструкций:

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

оператор цикла с предусловием while выполняет группу инструкций в соответствии с логическим условием завершения;

оператор ветвления if в сочетании с операторами else и elseif выполняет группу инструкций в соответствии логическими условиями;

оператор переключения switch в сочетании с операторами case и otherwise выполняет различные группы инструкций в зависимости от значения логического условия.

ЗАМЕЧАНИЕ: Все управляющие структуры должны заканчиваться оператором end !!!

Оператор FOR

Синтаксис:

1-я форма:

for <переменная цикла> = <начальное значение>:<приращение>:<конечное значение>

<инструкции >

end

2-я форма:

for <переменная цикла> = А %A - массив или матрица

<инструкции>

end

Описание:

Оператор 1-й формы выполняет инструкцию или группу инструкций предопределенное число раз. По умолчанию приращение равно 1. Можно задавать любое приращение, в том числе отрицательное. Для положительных индексов выполнение завершается, когда значение индекса превышает <конечное значение>; для отрицательных приращений выполнение завершается, когда значение индекса становится меньше чем <конечное значение>.

Оператор 2-й формы определяет переменную цикла i как вектор,А(:,:,… :,k). Для первого шага цикла k равно 1; для второго - k равно 2 и т. д., пока k не достигнет значения n. То есть цикл выполняется столько раз, сколько столбцов в массиве А. Для каждого шага i - это вектор, содержащий один из столбцов массива А.

Пример 1:

Пример 2:

Скрипт ex2for предназначен для вывода семейства кривых в графическое окно MATLAB:

Результат вызова скрипта:

 

 

 

 

 

1.5

 

Циклическийвывод графика exp(-a*x).sin(x)

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

0.5

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

ось Y

 

 

 

 

 

 

 

-0.5

 

 

 

 

 

 

 

-1

 

 

 

 

 

 

 

-1.5

 

 

 

 

 

 

 

-20

1

2

3

4

5

6

7

 

 

 

 

ось X

 

 

 

Оператор WHILE

Синтаксис:

while <логическое выражение> <инструкции>

end

Описание:

Оператор цикла while выполняет группу инструкций, пока логическое

выражение истинно.

Если выражение использует массив, то все его элементы должны быть истинны.

Логическое выражение это :

или операнд1 оператор_отношения операнд2

или функция_отношения(Аргумент1, Аргумент2)

или <операнд1> оператор_логический операнд2

или функция_логическая(Аргумент1,<Аргумент2>)

или смешанное выражение.

Оператор отношения это: == - равно, <= - меньше или равно, >= - больше

или равно , < - меньше , > - больше , ~= - не равно.

Функкция отношения это: eq – равно ,le- меньше или равно, ge- больше или равно, lt- меньше ,gt- больше ,ne- не равно.

Оператор логический это: & - логическое И, | - логическое ИЛИ, ~ - логическое НЕ.

Функция логическая это: andлогическое И , orлогическое ИЛИ, notлогическое НЕ, xor логическое исключающее ИЛИ, all – истинно, если все элементы массива отличны от нуля, any - истинно, если хотя бы один элемент массива отличен от нуля.

Пример 3: Определить машинный ноль macheps - такое наименьшее число, для которого выполняется условие 1+ macheps > 1

Результат вызова скрипта:

Пример 4: Вычислить сумму ряда с заданной точностью:

k x2k+1

S(x) = (1)

 

 

 

(2k

+1)!

k=0