Блочное программирование в системе Scilab

Scilab –это кроссплатформенная система компьютерной алгебры (СКА), обладающая сходным с Matlab синтаксисом встроенного языка. Разработка системы Scilab ведется сотрудниками французского Национального института информатики и автоматизации (INRIA – InstitutNationaldeRechercheenInformatiqueetAutomatique) с 80-х годов прошлого века. Изначально это был коммерческий проект под названием Blaise, а затем Basile. С 2003 года продукт получил новое имя Scilab и стал бесплатным. В настоящее время он распространяется по свободной лицензии CeCILL.

Скачать:

ВложениеРазмер
Файл prezentatsiya.pptx425.32 КБ

Предварительный просмотр:

Чтобы пользоваться предварительным просмотром презентаций создайте себе аккаунт (учетную запись) Google и войдите в него: https://accounts.google.com

Подписи к слайдам:

Слайд 1

БЛОЧНОЕ ПРОГРАММИРОВАНИЕ В SCILAB Макарова Юлия

Слайд 2

Что такое Scilab Scilab – это кроссплатформенная система компьютерной алгебры. Изначально это был коммерческий проект под названием Blaise , а затем Basile . С 2003 года продукт получил новое имя Scilab и стал бесплатным. В настоящее время он распространяется по свободной лицензии CeCILL .

Слайд 3

Редактор SciPad Для удобства написания скриптов (функций) в Scilab имеется встроенный редактор – 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 <счетчик>=<Выражение> <тело цикла> E nd

Слайд 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 . Общий вид этого оператора: while <выражение> <тело цикла> end

Слайд 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