Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Коссак графіка.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.68 Mб
Скачать

If умова

інструкції

elseif умова

інструкції

else

інструкції

end

Умови записують у вигляді

Вираз_1 Оператор_відношення Вираз_2,

як оператори відношення використовують позначення: ==, <, >, <=, >= або ~=, всі є парами символів без пропусків між ними.

Розглянемо невеликий приклад. Якщо змінна a має значення 1, то надрукувати перше повідомлення, якщо вона не дорівнює 1, перевірити чи вона дорівнює 2. У цьому випадку надрукувати друге повідомлення. Якщо ні перша, ні друга умови не виконуються, надрукувати третє.

if a = = 1

disp('a = 1')

elseif a = = 2

disp('a = 2')

else

disp('wrong value')

end

Зазначимо, що команда if повинна завжди супроводжуватись командою end, яка є в кінці тіла умовного оператора.

Для різнопланового вибору або розгалуження використовують конструкції з перемикачем типу switch-case-otherwise. Якщо вираз після заголовка switch має значення одного з виразів case _Вираз..., то виконується блок операторів case, в іншому випадку – список інструкцій після оператора otherwise. У разі виконання блока case виконуються ті списки інструкцій, для яких case _Вираз збігається з switch_Bиразом. Зверніть увагу на те, що case _Вираз може бути числом, константою, змінною, вектором або рядковою змінною. Ці команди мають такий вигляд:

switch switch_вираз

case case_ вираз

Інструкції

case case_ вираз

Список Інструкцій

otherwise

Список Інструкцій

end

Використаємо ці команди в такому прикладі

switch color

case 'red'

c = [1 0 0];

case 'green'

c = [0 1 0];

case 'blue'

c = [0 0 1];

otherwise

error('invalid choise of color');

end

Команди циклу. Цикли типу for...end, як звичайно, використовують для організації обчислень з заданою кількістю циклів, що повторюються. Команда for задає перше й останнє значення змінній, а також крок. Ця команда повинна завершуватись командою end. Команда for може бути всередині тіла іншої команди for. Конструкція цього циклу має такий вигляд:

for змінна = векторний рядок зі значеннями змінних

інструкція

end

Наприклад:

for i = 1:0.1:10

disp( i );

end

Отриманим результатом буде масив чисел від 1 до 10 з кроком 0,1.

Розглянемо ще один тип циклів - цикли типу while. Вони виконуються доти, доки виконується умова:

while Умова Інструкції end

Команду while зручно використовувати тоді, коли працюють з групою команд і не знають скільки треба зробити циклів, проте відомо, що вони повинні виконуватись доти, доки не будуть задовольнятися деякі умови. Розглянемо ще один приклад

sum = 0;

while sum < 10

sum =sum + 3;

end

5.1.3. Створення і застосування м-файлів

Загалом Matlab має близько 200 базових функцій. Деякі функції вбудовані в середовище Matlab і їхні тексти недоступні для користувача. Інші функції доступні й формують бібліотеку функціональних М-файлів, які є в піддерикторії Matlab. М-файл є звичайним текстовим файлом, який містить набір операторів мови Matlab. Для створення М-файлів можна використовувати як вбудований редактор, так і будь-який текстовий редактор, який підтримує формат ASCII. Підготований і записаний на диску М-файл стає частиною системи, і його можна викликати з командного рядка або з іншого М-файлу. Є два типи М-файлів: скрипт - файли і функції-файли. Важливо, що в процесі створення вони проходять синтаксичний контроль за допомогою вбудованого в систему MATLAB редактора/налаштовувача М-файлів.

Скрипт-файли. М-файл може складатися тільки з фрагмента програми, а саме з деякої послідовності операторів мови Matlab, яка не виділена як окрема функція. Такі файли називають скрипт-файлами (Script files). На відміну від функціональних файлів вони не містять слова "function". Усі змінні, оголошені в скрипт-файлі, стають глобальними для програми, в яку вони включені. Отже, скрипт-файл є просто записом серії команд без вхідних і вихідних параметрів і має таку структуру:

Основний коментар Додатковий коментар Тіло файла з будь-яким виразом

Головним коментарем є перший рядок текстових коментарів, а додатковим – наступні рядки. Важливі такі властивості скрипт-файлів:

  • вони не мають вхідних і вихідних аргументів;

  • працюють з даними з робочої області;

  • у процесі виконання не компілюються;

  • є послідовністю операцій, зафіксованоюй у вигляді файлу, аналогічної до тієї, що використовується в сесії.

Виокремлення деякої частини програми в М-файл виправдане, якщо ця частина складається з великої кількості операторів, використовувана в програмі багаторазова або її наявність у явному вигляді в тексті утруднює читання і роботу програми.

Скрипт-файли працюють з даними з робочої області. Змінні, використовувані в скрипт-файлах, є глобальними, вони діють однаково в командах сесії і всередині програмного блока, яким є скрипт-файли. Тому задання в сесії значення змінних використовують у тілі файла. Імена скрипт-файлів не можна використати, як параметри функцій, оскільки вони не повертають значення. Скрипт-файли – це найпростіші програми мовою програмування MATLAB, їх не можна компілювати, перед компіляцією їх треба перетворити в функції-файли (рис. 5.4).

Рис. 5.4. Скрипт-файл Рис. 5.5. Лого Matlab

Нагадаємо, що як і в змінних, ім'я скрипт-файлу повинно починатись з букви. Недозволено надавати імена вже існуючих змінних. На рис.5.5 показано створення лого Matlab, цей демо- приклад існує в help menu.

Функціональні М-файли. Такого типу файли належать до другої категорії М-файлів. Різниця з скрипт-файлами полягає у тому, що всі змінні є локальними, крім тих які оголошені глобальними. Це означає, що їхня область дії обмежена тілом функції і вони не існують після її завершення. Перший рядок функціональних М-файлів повинен містити ключове слово "function", означає, що це функціональний М-файл. Після того іде тіло функції , а саме - програма написана мовою Matlab. Перший рядок після ключового слова містить ім'я (name) функції, список вхідних параметрів у круглих дужках і список вихідних аргументів перед знаком присвоювання. Якщо функція повертає декілька аргументів, то їхній список поміщений у квадратні дужки, а аргументи відділені комами: function [out 1,…,out n] = name (inp 1,…,inp m).

Для функціонального файла не обовязково мати вхідні або вихідні дані. Тип вхідних і вихідних даних може бути різним, тобто підтримувати числа, рядки, структури, матриці й багато інших типів даних. Важливо в разі роботи з функціями, щоб М-файл мав те ж ім'я, яке було оголошено попередньо (рис. 5.6).

Рис. 5.6. Функціональний М-файл

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

>> d = kyklos( [0 0],1,10);

Тут d є матрицею 10x2, де перший рядок - x- координата точок периметра кола з центром у точці (0,0), одиничним радіусом, другий - y координата.

Усередині тіла функціонального М-файлу доступні змінні nargin і nargout, які означають кількість вхідних і вихідних аргументів, відповідно.

>>[out1,…,outn]=f(in1,inn)

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