Содержание
- 2. Функції в Scilаb відіграють роль підпрограм. Виділення послідовності інструкцій в окрему функцію, яку можна повторно використовувати,
- 3. Значення кожного з трьох елементів виклику функції наведено нижче: myfunction - представляє собою найменування функції, що
- 4. Кількість вхідних і вихідних аргументів функції необмежена. Синтаксис виклику функції з фіксованим числом аргументів такий: [o1
- 5. Ключові слова та інструкції Scilab, що використовуються при роботі з функціями. function – відкриває визначення функції;
- 6. varargout – вектор, що представляє змінне число вихідних аргументів функції; fun2string – генерує текстове визначення (вихідний
- 7. listfunctions – відображає властивості функцій, які викликалися раніше в даній сесії; macrovar – повертає списки вхідних
- 8. Функція, як правило, призначена для неодноразового використання, вона має вхідні параметри і не виконується без їх
- 9. deff ('[ім'я1, ..., ім'яN] = ім'я_функції (змінна_1,..., змінна_M)', 'ім'я1 = вираз1; ...; ім'яN = виразN') де
- 10. Далі наведено найпростіший спосіб застосування оператора deff. У наступному прикладі створена функція myfunction, яка приймає параметр
- 11. Другий спосіб створення функції це застосування конструкції виду: function [ім'я1,..., ім'яN] = ім'я_функції (змінна_1, ..., змінна_M)
- 12. Всі імена змінних всередині функції, а також імена зі списку вхідних і вихідних параметрів сприймаються системою
- 13. У наступному прикладі створена функція myfunction, яка приймає параметр x, множить його значення на 2 і
- 14. Рядок function y = myfunction (x) є заголовком функції, в той час як тіло функції містить
- 15. 1) По-перше, можна ввести тіло функції безпосередньо в консолі Scilab, інструкція за інструкцією. Зустрівши запис на
- 16. 2) Більш зручним варіантом є визначення функції в окремому файлі. Цей спосіб застосовується в більшості випадків.
- 17. -->exec("C:\myscripts\examples-functions.sce ") --> function y = myfunction ( x ) --> y = 2 * x
- 18. Щоб цього уникнути, після інструкції exec необхідно поставити ";": exec("C:\myscripts\examples-functions.sce"); Того ж результату можна досягти, вибравши
- 19. Зауважимо, що присвоєння вихідному аргументу y значення (в даному випадку y=2*x) є обов'язковим. Для того щоб
- 20. Спробуємо тепер викликати цю функцію, задавши їй значення 1: --> myfunction ( 1 ) !-- error
- 21. При вирішенні деякої задачі часто виникає потреба у визначенні більш ніж однієї функції. Часто на практиці
- 22. Бібліотеки функцій Бібліотека є набором функцій, написаних мовою Scilab, які зберігаються в окремих файлах. Якщо набір
- 23. Розробка власного модуля не представляє труднощів, проте вимагає більш детального знайомства з внутрішньою будовою пакету Scilab.
- 24. Розглянемо створення простої бібліотеки функцій Scilab, а також способи її автоматичного завантаження при запуску пакета. Припустимо,
- 25. Перед тим як приступити до розгляду прикладу, необхідно визначити основні правила створення бібліотек функцій в Scilab:
- 26. 3) Файл .sci має збігатися з ім'ям загальнодоступної функції в цьому файлі. Наприклад, якщо ім'я функції
- 27. Тепер перейдемо до прикладу створення конкретної бібліотеки. Припустимо, що ми працюємо на комп'ютері під керуванням ОС
- 28. C:\samplelib\function2.sci: function y = function2 ( x ) y = 2 * x endfunction
- 29. Для отримання бінарних версій цих функцій використовуємо інструкцію genlib. --> genlib (" mylibrary ", "C:\samplelib ")
- 30. Функція genlib генерує і поміщає в каталог C:\samplelib наступні файли: 1) function1.bin: бінарна версія файлу function1.sci,
- 31. Отримані файли *.bin і файл lib можуть без змін використовуватися версіями Scilab для Windows, Linux і
- 32. Звичайно, кожен раз генерувати бібліотеку заново не потрібно. Готову бібліотеку можна завантажити за допомогою команди lib,
- 33. При великому числі бібліотек, що завантажуються зручно помістити виклики lib в стартовий скрипт Scilab. У цьому
- 34. --> SCIHOME SCIHOME =C:\ Users \ username \ AppData \ Roaming \ Scilab \ scilab -5.5.0
- 35. // Load my favorite library. mylibrary = lib ("C:/samplelib/") В результаті бібліотека mylibrary буде завантажуватися щоразу
- 36. Керування вихідними змінними Кожна функція Scilab може мати один або декілька вхідних і вихідних аргументів. У
- 37. Припустимо, що функція simplef визначена з двома вхідними і вихідними аргументами: function [y1 , y2] =
- 38. При виконанні функції можна вказати два, один або жодного вихідного аргументу. Якщо не вказано жодного вихідного
- 39. --> simplef ( 1 , 2 ) ans = 2. -->y1 = simplef ( 1 ,
- 40. Таким чином, навіть найпростіше визначення функції допускає деяку свободу щодо числа вихідних аргументів. Гнучкішим способом завдання
- 41. Рівні стеку викликів Як і в інших мовах програмування, в Scilab виклики функцій можуть бути вкладеними,
- 42. Команди Scilab для роботи зі стеком викликів. whereami - відображає поточне дерево викликів; where - представляє
- 43. function y = fmain ( x ) y = 2 * flevel1 ( x ) endfunction
- 44. При виконанні функції fmain в консоль буде виведено: --> fmain (1) whereami called at line 3
- 45. Як бачимо, відображається три рівні стека викликів, які відповідають викликаним функціям. Значення рівнів стека викликів в
- 46. Налагоджувальні інструкції Scilab. Pause – призупинити виконання функції і чекати команд користувача; Resume – продовжити виконання
- 47. Інструкція return Інструкція return дозволяє завершити виконання функції і повернути управління коду, який викликається. Представлена нижче
- 48. function y = mysum ( istart , iend ) if ( istart y = 0 return
- 49. Наступний фрагмент дозволяє переконатися, що функція mysum працює саме так, як задумано: --> mysum ( 1
- 51. Скачать презентацию