Рабочие листы
к вашим урокам
Скачать
1 слайд
Программирование в системе Scilab
2 слайд
Scilab – это кроссплатформенная система компьютерной алгебры.
Изначально это был коммерческий проект под названием Blaise, а затем Basile.
С 2003 года продукт получил новое имя Scilab и стал бесплатным. В настоящее время он распространяется по свободной лицензии CeCILL.
Что такое Scilab
3 слайд
Для удобства написания скриптов (функций) в Scilab имеется встроенный редактор – Scipad.
Редактор SciPad
4 слайд
Встроенный язык Scilab – это язык структурного программирования не имеющий, в отличие от Matlab, средств для работы с объектами.
Стандартные конструкции встроенного языка
5 слайд
Переменные не описываются, а создаются путем присвоения им начального значения, например так:
a = 1
b='Hello'
c= %t
6 слайд
Вследствие Unix-корней системы, важен регистр букв в имени переменных, например:
-->d=3;D='три';
-->d*3
ans =
9.0
-->D*3
!--error 144
Операция для заданных операндов не определена.
-->D+' – это текст'
ans =
три – это текст
7 слайд
def_base=2 //глобальная переменная
function rez=log_b(num, base)
chk_log=%f //локальная переменная
rez=log(num)/log(base)
endfunction
Глобальные и локальные переменные
8 слайд
function [выходные параметры]=имя_функции(входные параметры)
…
тело функции
…
[выходные параметры]=…
endfunction
Описание функции
9 слайд
function [outS]=Hello1(Name)
outS='Привет, '+Name+'!'
endfunction
Вот пример выполнения этой функции:
-->Hello1('незнакомец')
ans =
Привет, Незнакомец!
Линейный процесс вычислений
10 слайд
Укажем массив значений:
Hello1(['Незнакомец';'Инкогнито'])
ans =
!Привет, Незнакомец! !
!Привет, Инкогнито! !
11 слайд
Эти операции служат для выполнения матричных действий по правилам матричной алгебры. Например:
-->a=[1 2 3],b=[3 2 1]
a =
1. 2. 3.
b =
3. 2. 1.
-->a*b
!--error 10
Некорректное умножение.
12 слайд
Согласно правилам матричной алгебры, важен порядок множителей:
-->a*b'
ans =
10.
-->b' * a
ans =
3. 6. 9.
2. 4. 6.
1. 2. 3.
13 слайд
Для выполнения поэлементного умножения двух массивов необходимо поставить перед знаком действия точку:
-->a .* b
ans =
3. 4. 3.
14 слайд
Функция для расчета логарифма числа по произвольному основанию:
function rez=logB(num,base)
rez = log(num)/log(base)
endfunction
Операторы ветвления
15 слайд
if <Условие> then <Выражения>
elseif <условие2> then <Выражения2>
...
elseif <условиеN> then <ВыраженияN>
else <Выражения>end
16 слайд
function [rez]=logB(num, base)
//Проверка размера массивов
if or([length(num)>1, length(base)>1]) then
error('Ошибка: массив не может быть входным параметром');
else
if and([num>0, base>0, base<>1]) then
rez = log(num)/log(base)
else
error('Ошибка: неверные входные данные');
end
end
endfunction
Новый вид функции с проверкой входных данных на корректность:
17 слайд
warning('on') //включение режима вывода предупреждений
warning('сообщение') //вывод сообщения
warning('off') //выключение режима вывода предупреждений
Способ использования прост:
18 слайд
select <переменная>
case <значение 1> then <действия 1>
case <значение 2> then <действия 2>
case <значение 3> then <действия 3>
…
case <значение N> then <действия N>
else
<действия по умолчанию>
end
Общий вид оператора множественного выбора
19 слайд
Рассмотрим функцию, получающую количество информации в байтах и выдающее название наибольшей единицы измерения.
function rez=edIzm(N)
sN = string(N)
select length(sN)
case 1 then rez='Байт'
case 2 then rez='Байт'
case 3 then rez='Байт'
case 4 then rez='Килобайт'
case 5 then rez='Килобайт'
case 6 then rez='Килобайт'
case 7 then rez='Мегабайт'
case 8 then rez='Мегабайт'
case 9 then rez='Мегабайт'
else
warning('on')
warning('Введенное больше чем 999 Мегабайт')
warning('off')
rez='Много'
end //select
endfunction
20 слайд
Счетный (for) и условный (while).
Общий вид оператора счетного цикла следующий:
for <счетчик>=<Выражение>
<тело цикла>
End
Циклы
21 слайд
Рассмотрим описанную нами функцию edIzm.
-->edIzm([1,2,4])
ans =
Байт
-->edIzm([1,23,4])
WARNING: Введенное больше чем 999 Мегабайт
ans =
Много
22 слайд
function [rez]=edIzm(N)
i=0
for iN=N
i=i+1
sN=string(iN)
select length(sN)
case 1 then rez(i)='Байт'
case 2 then rez(i)='Байт'
case 3 then rez(i)='Байт'
case 4 then rez(i)='Килобайт'
case 5 then rez(i)='Килобайт'
case 6 then rez(i)='Килобайт'
case 7 then rez(i)='Мегабайт'
case 8 then rez(i)='Мегабайт'
case 9 then rez(i)='Мегабайт'
else
warning('on')
warning(sN+' больше чем 999 Мегабайт')
warning('off')
rez(i) ='Много'
end //select
end //for
endfunction
Счетный оператор цикла:
23 слайд
Возможен и такой вариант начала функции:
function [rez]=edIzm(N)
NSize=length(N)
for i=1:NSize
sN=string(N(i))
select length(sN)
. . .
24 слайд
Общий вид этого оператора:
while <выражение>
<тело цикла>
end
Цикл while.
25 слайд
Вместо строк
sN=string(N(i))
select length(sN)
можно вставить следующее:
iN=0
NTemp=N(i)
while NTemp>0 do
iN=iN+1
NTemp=int(NTemp/10)
end
select iN
26 слайд
Спасибо за внимание
Рабочие листы
к вашим урокам
Скачать
Scilab – это многоплатформенная система компьютерной алгебры (СКА), обладающая сходным с Matlab синтаксисом встроенного языка. Изначально это был коммерческий проект под названием Blaise, а затем Basile. С 2003 года продукт получил новое имя Scilab и стал бесплатным. В настоящее время он распространяется по свободной лицензии CeCILL.
Для удобства написания скриптов (функций) в Scilab имеется встроенный редактор – Scipad. Он позволяет редактировать тексты функций, выполнять их в режиме отладки, содержит функцию автодополнения кода, а также средства непосредственной передачи текста программы в среду Scilab на выполнение.
6 656 262 материала в базе
Настоящий материал опубликован пользователем Буйнова Дарья Александровна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Удалить материалВаша скидка на курсы
40%Курс профессиональной переподготовки
500/1000 ч.
Курс профессиональной переподготовки
300/600 ч.
Курс повышения квалификации
72 ч. — 180 ч.
Курс повышения квалификации
36 ч. — 180 ч.
Мини-курс
6 ч.
Мини-курс
6 ч.
Мини-курс
3 ч.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.