Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тіло файлу з будь-якими виразами

Поиск

Створений m-файл включається в довідкову систему. Коментарі в m-файлі потрібні для того, щоб ознайомитися з призначенням файлу через довідкову систему. Основний коментар виводиться при виконанні команд lookfor і help ім’я_каталогу. Повний коментар виводиться при виконанні команди help ім’я_файла.

Перш ніж програмувати в MatLab, необхідно зрозуміти, що всі програми можуть бути або файл-функціями, або файл-програмами. Файл-програма являється текстовим файлом із розширенням m (M-файлом), у якому записані команди і оператори MatLab. Розберемо, як створити просту файл-програму.

У MatLab наявний редактор M-файлів, для запуску якого слід натиснути кнопку New M-file на панелі інструментів робочого середовища, або вибрати в меню File в пункті New підпункт M-file. На екрані появиться вікно редактора. Наберіть у ньому які-небудь команди, наприклад для побудови графіка:

Проста файл-програма

x=[-1:0.01:1];

y=exp(x);

plot(x,y)

grid on

title('Експоненціальна функція')

Для запуску програми або її частини є декілька способів. Перший, найпростіший — виділити оператори з допомогою мишки, утримуючи ліву кнопку, або за допомогою клавіші із стрілками,, і вибрати в меню View (у версії 5.3), або в меню Text (у версії 6.x) пункт Evaluate Selection. Виділені оператори виконуються послідовно, точно так, як і якби вони були набрані в командному рядку. Очевидно, що працювати в M-файлі зручніше, ніж з командного рядка, оскільки можна зберегти програму, добавити оператори, виконувати окремі команди не пробігаючись по історії команд, як у випадку із командного рядка.

Після того, як програма збережена в M-файлі, приміром в myprog.m, для її запуску можна використовувати пункт Run меню Tools (у версії 5.3), або меню Debug (у версії 6.x), або набрати в командному рядку ім'я M-файлу (без розширення) і натиснути, тобто виконати, як команду MatLab. При таких способах запуску програми слід врахувати важливу обставину шлях до каталогу із M-файлом повинен бути відомий MatLab. Зробіть каталог з файлом myprog поточним.

У MatLab 5.3 в меню File робочого середовища перейдіть до пункту Set Path... Появитися діалогове вікно Path Browser (навігатор шляхів). У рядку введення Current Directory встановите необхідний каталог. Скористайтеся кнопкою, розташованою праворуч від рядка введення, для вибору каталогу.

• У MatLab 6.x установки поточного каталогу проводиться із вікна Current Directory робочого середовища. Якщо це вікно відсутнє, то слід вибрати пункт Current Directory меню View робочого середовища. Для вибору бажаного каталогу на диску натисніть кнопку, розташовану праворуч від списку, що розкривається.

Коли поточний каталог встановлений, то всі M-файли, що перебувають в ньому, можуть бути запущені із командного рядка, або з редактора M-файлів. Всі змінні файл-програми після її запуску доступні в робочому середовищі, тобто являються глобальними. Переконаєтеся в цьому, виконавши команду whos. Більше того, файл-програма може використовувати змінні робочого середовища. Наприклад, якщо була введена команда:

>> a=[0.1 0.4 0.3 1.9 3.3];

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

Файл-функції відрізняються від файл-програм тим, що вони можуть мати вхідні і вихідні аргументи, а всі змінні, визначені усередині файл-функції, є локальними і не показані в робочому середовищі. M-файл, утримуючий файл-функцію, повинен починатися із заголовка, потім у нього записуються оператори MatLab. Заголовок складається із слова function, списку вихідних аргументів, імені файл-функції і списку вхідних аргументів. Аргументи в списках розділяються комою. Наступний приклад містить зразок простої файл-функції із двома вхідними і одним вихідним аргументами.

function c=mysum(а,b)

c=a+b;

Наберіть цей зразок в новому файлі в редакторові і збережіть його. Звернете увагу, що MatLab пропонує як ім'я M-файлу назву файл-функції, тобто mysum.m. Завжди зберігайте файл-функцію в M-файлі, ім'я якого збігатися із ім'ям файл-функції! Переконаєтеся, що каталог із файлом mysum.m є поточним і викличте файл-функцію mysum з командного рядка:

>> s=mysum(2,3)

s =

При виклику файл-функції mysum відбулися наступні події:

• вхідний аргумент а набув значення 2;

• вхідний аргумент b став рівний 3;

• сума а і b записалася у вихідний аргумент С;

• значення вихідного аргументу С отримала змінна s робочого середовища і результат вивівся в командне вікно.

Зауважте, що оператор c=a+b у файл-функції mysum завершений крапкою з комою для придушення виведення локальною змінною С в командне вікно. Для поглядання значень локальних змінних при відладці файл-функції, очевидно, не слід заглушувати виведення на екран значень необхідних змінних.

Практично всі функції MatLab являюся файл-функціями і зберігаються в однойменних M-файлах. Функція sin допускає два варіанти виклику: sin(x) і y=sin(x), в першому випадку результат записується в ans, а в другому — в змінну у. Наша функція mysum поводиться так само. Більше того, вхідними аргументами mysum можуть бути масиви однакових розмірів або масив і число.

Розберемось, тепер, як створити файл-функцію із декількома вихідними аргументами. Список вихідних аргументів в заголовку файл-функції береться в квадратні дужки, самі аргументи відокремлюються комою. Як приклад приведена файл-функція quadeq, яка по заданих коефіцієнтах квадратного рівняння знаходить його корені.

function [x1,x2]=quadeq(а,b,c)

D=b^2-4*a*c;

x1=(-b+sqrt(D))/(2*a);

x2=(-b-sqrt(D))/(2*a);

При виклику quadeq з командного рядка використовуйте квадратні дужки для вказівки змінних, в які будуть занесені значення коренів:

>> [r1,r2]=quadeq(1,3,2)

Зауважте, що файл-функцію quadeq можна викликати без вихідних аргументів, або лише із одним вихідним аргументом. В цьому випадку повернеться тільки перший корінь.

Файл-функція може і не мати вхідних або вихідних аргументів, заголовки таких файл-функцій приведені нижче:

function noout(а,b), function [v,u]=noin, function noarg()

Уміння писати власні файл-функції і файл-програми необхідне як при програмуванні в MatLab, так і при рішенні різних задач засобами MatLab (зокрема, пошуку коренів рівнянь, ітерації, оптимізації). Розберемо тільки один приклад, пов'язаний з побудовою графіка функції на відрізку [0,1]. Запрограмуйте файл-функцію myfun для обчислення f(x). Використовуйте по-елементні операції для того, щоб myfun можна було викликати від вектора значень аргументу і одержати вектор відповідних значень функції.

function y=myfun(x);

y=(sin(x) +0.1*sin(100*pi*x)). *exp(-х);

Графік f(x) можна одержати двома способами. Перший спосіб полягає в створенні вектора значень аргументу, скажемо з кроком 0.01, заповненні вектор значень функції і виклику plot:

>> x=[0:0.01:1];

>> y=myfun(x);

>> plot(x,y)

Однак, непродуманий вибір кроку часто призводить до втрати істотної інформації про поведінку функції. У MatLab є вбудована функція fplot — деякий аналог plot, але з автоматичним підбором кроку при побудові графіка. Першим вхідним аргументом fplot є ім'я файл-функції, а другим — вектор, елементи якого є межі відрізків: fplot('ім'я файл-функції', [а,b]). Побудуйте тепер в новому вікні графік f(x) за допомогою fplot:

>> figure

>> fplot('myfun'[0,1])

Хід роботи

Завдання

1. Написати файл-функції згідно свого варіанту:

№ п/п y
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2. Використовуючи ці файл-функції побудувати їх графіки за допомогою командної строки.

3. Створити файл-програму, яка викликатиме готову файл-функцію і будуватиме графік.

4. Створити файл-функцію розв’язування квадратного рівняння типу

в командній стрічці перевірити роботу цієї функції при:

a – номер варіанту по списку;

b – кількість букв в прізвищі;

5. Знайти площу трикутника за формулою Герона.

Контрольні питання

1. Навеіть поняття функції у системі Matlab.

2. Що являють собою вхідні та вихідні параметри функції?

3. Чому у вхідній мові системи Matlab немає поняття процедури?

4. Який головний недолік для ефективного програмування виникає при реалізації всіх операцій системи через функції? Як можна уникнути цього недоліка та значно підвищити ефективність програмування у таких системах?

5. Наведіть приклад описання зовнішньої функції через файл *.m та виклику цієї функції.


Лабораторна робота № 21
Програмування лінійних обчислювальних процесів засобами VBA.

Теоретичні відомості

Тип даних визначає множина припустимих значень, що може приймати зазначена перемінна. У VBA є такі основні типи даних:

Byte - байт, для запису цілих чисел від 0 до 255;

Boolean - логічний, може приймати одне з двох значень - True - істина, або False - неправда;

Integer - ціле число, може приймати значення від -32768 до 32767;

Long - довге ціле, у якому зберігаються числа до 2147483648;

Single – дійсне число з плаваючою комою, у якому зберігаються числа до 3,4*1038;

Double – дійсне число з плаваючою комою подвійної точності;

Currency - грошовий;

Date - дата і час;

Object - покажчик на об'єкт;

String - рядок символів;

Варіант - будь-який тип даних, обумовлений при присвоюванні значень.

Наприклад:

Dim x As Integer, st As String, d As Date

Для введення даних є функція InputBox:

InputBox ("Текст повідомлення ", "Заголовок вікна", Значення за замовчанням, Xpos, Ypos, Файл довідки)

Для виведення даних є функція MsgBox:

MsgBox("Текст повідомлення ", Кнопки, "Заголовок вікна", Файл довідки)

VBA має великий список функцій для роботи з перемінними різних типів:

Ім’я функції Призначення функції
Abs() Абсолютний розмір - Ix
Atn() Arctg(x)
Cos() Cos(x)
Exp() Експонента, exp(x) - ex
Log() Логарифм натуральний x
Rand() Випадкове число з інтервалу (0,1)
Sin() Sin(x)
Sqr() Квадратний корінь із x
Tan() Tg(x) - тангенс
Int() Ціла частина від аргументу x
CStr() Перетворить аргумент до типу рядок
Now() Поточна дата і час
Day, Month, Year() День, місяць і рік для аргументу типу дата

Хід роботи

  1. Запустити Microsoft Excel, виконати команди Сервіс–> Макрос–> Безпека та встановити низький рівень безпеки.
  2. Виконати команди Сервіс–> Макрос–> Редактор Visual Basic
  3. Створити форму, подібну до тої, що представлена на рис. 21.1.

Рис. 21.1. Приклад форми

  1. У властивості Caption форми задайте значення „Лабораторна робота №1”
  2. У властивості Caption компоненту Label1 задайте значення „А1=”
  3. У властивості Caption кнопок задайте відповідні значення: „Розрахувати”, „Очистити”, „Вихід”.
  4. На кнопку Розрахувати напишіть наступну процедуру:

'Лабораторна робота №21

'Виконав студент групи ХТІ-11

'Кітлер Сергій Іванович

Dim a, A1, y As Single

A1 = Val(TextBox1.Text)

a = Val(InputBox("a="))

y = Sin(A1) + Cos(a)

TextBox2.Text = TextBox2.Text + "sin(" + CStr(A1) + ")+cos(" + CStr(a) + ")=" + CStr(y) + vbCr

  1. На кнопку Очистити напишіть наступну процедуру:

TextBox2.Text = " "

  1. На кнопку Вихід напишіть:

End

  1. Виконайте подібне завдання згідно свого варіанту.

 

Варіант Функція Контрольні значення змінних Значення функції
  x=5.2 a=0.3 2.3767
  x=3.2 a=0.5 b=1.2 -3.1505
  x=2.36 0.2183
  x=-5.2 a=0.3 -21.4134
  a=1.5 x=0.25 2.2278
  a=2.58 x=-3.25 -71.7990
  a=1.25 x=-0.15 -0.2147
  a=-3 x=-1.2 b=0.25 0.0514
  a=-0.17 x=3.5 b=18 -2.6780
  x=3.25 -48.1627
  a=-0.18 x=3.14 0.1667
  a=0.45 x=12 432.9875
  x=4 5.1066
  x=2.36 0.3946
  a=0.13 x=-2.5 b=17 -40.9789
  x=1.2 5.3633
  a=-2.35 x=1.23 0.0642
  a=4.59 x=2.45 10.5212
  a=1.27 x=7.4 6.5568
  a=1.23 x=-3.4 b=8.45 48.7413

Контрольні питання

1. Які типи даних використовуються в VBA.

2. Введення та виведення даних.

3.Для чого необхідні функції InputBox та MsgBox. Наведіть приклади їх використання.

Лабораторна робота № 22
Програмування розгалужених обчислювальних процесів засобами VBA.

Теоретичні відомості

Якщо дії в програмі повинні виконуватись в залежності від виконання чи не виконання певної умови, то використовують умовний оператор, який дозволяє організувати розгалуження в програмі і має формат:

IF умова THEN

інструкції 1

ELSE

інструкції 2

END IF

Алгоритм роботи оператора:

Якщо значення умови дорівнює істині, то виконується інструкція 1 і управління передається на оператор, що слідує за інструкцією2 (тобто інструкція 2 не виконується).

Якщо значення виразу -- неправда, то виконується. Інструкція 2.

Для запису умов можна використовувати операції порівняння =, <, <=, >, >=, <> та логічні операції AND, OR і NOT.

Декілька умов можна перевірити, використовуючи логічні операції або вкладені умовні оператори.

Частина ELSE може бути відсутня

IF умова THEN оператор

Інколи в програмі необхідно вибрати один з кількох варіантів. В цьому випадку буває раціональним використання оператора Case що має такий формат

Select Case выраз

Case список 1 значень виразу

інструкції 1

Case список 2 значень виразу

інструкції 2

..............

Case Else

інструкції для Else

End Select

В першому рядку оператора записується вираз, а потім він порівнюється зі списками значень виразу.. Найчастіше вираз – це числова або строкова змінна. Якщо вираз задовольняє одному зі списків, то виконуються інструкції, записані після цього списку, і оператор закінчує роботу. Списки значень, записані нижче, не перевіряються, тобто виконується тільки одна з інструкцій. Якщо вираз НЕ задовольняє жодному зі списків значений, то виконується інструкція для Else. Проте, остання частина (Case Else) в операторі може бути відсутня.

Хід роботи

  1. Запустити Microsoft Excel, виконати команди Сервіс–> Макрос–> Безпека та встановити низький рівень безпеки.
  2. Виконати команди Вид–> Панели инструментов–>Visual Basic
  3. Повинна з’явитися панель, що зображена на рис. 22.1.

Рис. 22.1. Панель інструментів Visual Basic

  1. Натиснути на кнопку Елементи управління , з’явиться панель як на рис. 22.2.

Рис. 22.2. Елементи управління

  1. Перейти в режим конструктора, натиснувши на кнопці .
  2. Створити шаблон документу, подібний до того, що представлений на рис. 22.3.

Рис. 22.3. Приклад шаблону

  1. Щоб викликати вікно властивостей компонентів потрібно натиснути кнопку .
  2. На кнопку Введіть х напишіть процедуру:

x = Val(InputBox("Введіть Х "))

Cells(20, 2) = x

  1. На кнопку Обчислити напишіть процедуру:

x = Cells(20, 2)

If (x > 1) Then

y = Sin(x) + 5

MsgBox ("Перша умова істинна")

ElseIf (x = 1) Then

y = 5

MsgBox ("Друга умова істинна")

ElseIf (x < 1) Then

MsgBox ("Третя умова істинна")

y = Cos(x) - 5

End If

MsgBox ("y=" & y)

Cells(26, 2) = y

  1. Вийдіть з режиму конструктора, натиснувши кнопку та протестуйте роботу програми.
  2. Виконайте подібну задачу згідно Вашого варіанту.

 

Варіант Функція
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Контрольні питання

1.Для чого необхідні оператори Іf…Else? Наведіть приклади їх використання.

2. Як організувати вибір одного з кількох варіантів?

3. Правила запису логічних виразів. Операції відношення. Логічні операції.

Лабораторна робота № 23
Програмування циклічних обчислювальних процесів засобами VBA.

Теоретичні відомості

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



Поделиться:


Последнее изменение этой страницы: 2016-04-18; просмотров: 356; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.240.14 (0.011 с.)