- •Основи роботи в scilab
- •Користування Scilab Виклик довідки
- •Робота в редакторі
- •Робота з Workspace
- •Команди керування середовищем
- •Засоби програмування. Оператори і команди
- •Створення .Sce та .Sci файлів
- •Конструкції мови
- •Короткий синтаксис і приклади основних конструкцій.
- •Основні команди і оператори мови SciLab та їх призначення
- •Робота з векторами і матрицями
- •Створення векторів та матриць
- •Звертання до елементів матриць і векторів
- •Логічні функції над масивами
- •Знищення рядків, стовпців, елементів
- •Створення матриць спеціального виду
- •Інші операції над масивами
- •Елементарні операції над векторами і матрицями
- •Множення і ділення векторів і матриць
- •Функції обробки даних для матриць і векторів
- •Можливості вводу і виводу неграфічної інформації
- •5. Робота з графікою
- •Двовимірні графіки
- •Трьохвимірні графіки
- •Контурні графіки
- •Гістограми
- •Зображення геометричних фігур
- •Експорт зображень
- •6. Графічний інтерфейс (gui)
- •Основні функції gui
- •Створення діаграми
- •Основні блоки Xcos
- •8. Висновки
- •9. Література
Короткий синтаксис і приклади основних конструкцій.
Умовний оператор if
Найпростіший випадок – для виконання блоку команд, якщо виконується деяка умова:
синтаксис:
if умова then
команди SciLab
end
приклад:
if ((a >= 0.90) & (d >= 60)) then
pass = 1;
end;
Складніший варіант для - для організації алгоритмів розгалуження:
у дві гілки:
синтаксис:
if умова then
команди SciLab
else
команди SciLab
end
приклад:
if ((a >= 0.90) & (d >= 60)) then
pass = 1
else
pass=0
end;
у декілька гілок:
синтаксис:
if умова1 then
команди SciLab
else
if умова2 then
команди SciLab
else
if умова3 then
команди SciLab
else
команди SciLab
end
end
end
приклад:
if a<b then
x = a
else
if b<a then
x = b
else
if c<a+b then
x = c
else
x = d
end
end
end
у декілька гілок, без вкладених операторів if:
синтаксис:
if умова1 then
команди SciLab
elseif умова2 then
команди SciLab
elseif умова3 then
команди SciLab
else
команди SciLab
end
приклад:
if a<b then
x = a
elseif b<a then
x = b
elseif c<a+b then
x = c
else
x = d
end
В залежності від виконання однієї з умов, працює відповідна гілка програми, якщо ж всі умови невірні, то виконуються команди після else. Кількість гілок може бути довільною, їй відповідає кількість elseif, або кількість вкладених операторів if.
Оператор select
Цей оператор призначений для виконання перемикання між умовами. Кожна гілка розгалуження визначається оператором case, перехід в неї виконується, коли змінна оператора select приймає значення, вказане після case. Після виконання однієї з гілок, відбувається вихід зі select, при цьому значення, задані в інших case вже не перевіряються. Якщо жодне значення не співпало з визначеними в case, то виконується гілка програми, що відповідає else.
синтаксис:
select вираз
case вираз1
команди SciLab
case вираз2
команди SciLab
...
else
команди SciLab
end
приклад:
select (a+b)
case 0
disp(‘a+b= 0’)
case 1
disp(‘a+b=1’)
case 2
disp(‘a+b= 2’)
else
disp(‘a+b>2’)
end
Оператор циклу for
Оператор for застосовується для повторення деякої дії задане число разів. Найчастіше використовується числовий лічильник, що пробігає ряд значень.
синтаксис:
for змінна циклу = початкове значення : крок : кінцеве значення
команди SciLab
end
приклад:
for m = -1:0.1:2
for n = 1:10
a(n) = 1/(m+n -1);
end
end
якщо крок циклу пропущений, то він становить 1 (за замовчуванням).
Оператор циклу while
Оператор while призначений для повторення деякого блоку інструкцій до тих пір, поки умова циклу залишається істинною.
синтаксис: Приклад
while умова
команди SciLab
end
Приклад:
eps = 1;
x = 4;
while (1+eps+x) > 1
eps = eps/2;
x=x-0.2;
end
eps = eps*2
Оператори break, continue
При організації циклічних обчислень, варто передбачити виникнення помилок всередині циклу. Для цього існує оператор break. Він дозволяє виходити з циклу в довільний момент часу. У випадку вкладених циклів цей оператор здійснює вихід з внутрішнього циклу. Його можна застосовувати як для циклу while так і для циклу for.
приклад:
eps = 1;
x=4;
while (1+eps+x) > 1
eps = eps/2;
x=x-0.2;
if x==0
break
end
end
приклад:
for m = -1:0.1:2
for n = 1:10
a(n) = 1/(m+n -1);
if a(n)<=-10
break
end
end
end
Інструкція continue дозволяє негайно перейти до виконання наступної ітерації, пропустивши команди, наступні після continue в тілі циклу.
Зустрівши команду continue, інтерпретатор Scilab переходить до заголовку циклу, перевіряє умову продовження, і, якщо воно істинне, робить наступну ітерацію.
Наступний приклад демонструє обчислення суми s = 1 +3 +5 +7 +9 = 25. Використана тут функція modulo (i, 2) повертає 0 за умови, якщо i парне. У даному випадку скрипт нарощує значення i та використовує инструкцію continue для переходу до наступної ітерації:
приклад:
s = 0
i = 0
while ( i < 10 )
i = i + 1
if ( modulo ( i , 2 ) == 0 ) then
continue
end
s = s + i
end
Обробка виняткових ситуацій - оператор try … catch.
Цей оператор дозволяє обійти виняткові ситуації (прогнозовані помилки) і прийняти певні міри при їх виникненні, не завершуючи програму.
синтаксис:
try
команди SciLab, виконання яких може привести до помилки
catch
команди SciLab, які треба виконати при виникненні помилки в блоці між try і catch
end
приклад:
try
a=load(‘my_file’);
pie(a)
catch
disp(‘file not found’)
end;
x=[1.3,2,3]
x=2*x
таким чином, при відсутності потрібного файлу, програма видасть відповідне повідомлення але продовжить свою роботу.
