kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

Презентация "Блочное программирование в Scilab"

Нажмите, чтобы узнать подробности

Презентация "Блочное программирование в Scilab"

Просмотр содержимого документа
«Презентация "Блочное программирование в Scilab"»

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

БЛОЧНОЕ ПРОГРАММИРОВАНИЕ В SCILAB

Митронина Виктория

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

Что такое Scilab

Scilab   – это кроссплатформенная система компьютерной алгебры.

Изначально это был коммерческий проект под названием Blaise , а затем Basile .

С 2003 года продукт получил новое имя Scilab и стал бесплатным. В настоящее время он распространяется по свободной лицензии CeCILL .

Редактор SciPad   Для удобства написания скриптов (функций) в Scilab имеется встроенный редактор – Scipad .

Редактор SciPad

Для удобства написания скриптов (функций) в Scilab имеется встроенный редактор – Scipad .

Стандартные конструкции встроенного языка Встроенный язык Scilab – это язык структурного программирования не имеющий, в отличие от Matlab , средств для работы с объектами.

Стандартные конструкции встроенного языка

Встроенный язык Scilab – это язык структурного программирования не имеющий, в отличие от Matlab , средств для работы с объектами.

Переменные не описываются, а создаются путем присвоения им начального значения, например так:
  • Переменные не описываются, а создаются путем присвоения им начального значения, например так:

a = 1

b='Hello'

c= %t

Вследствие Unix-корней системы, важен регистр букв в имени переменных, например:
  • Вследствие Unix-корней системы, важен регистр букв в имени переменных, например:

--d=3;D='три';

--d*3

ans =

9.0

--D*3

!--error 144

Операция для заданных операндов не определена.

--D+' – это текст'

ans =

три – это текст

Глобальные и локальные переменные def_base=2 //глобальная переменная  function rez=log_b(num, base)  chk_log=%f //локальная переменная   rez=log(num)/log(base) endfunction

Глобальные и локальные переменные

def_base=2 //глобальная переменная

function rez=log_b(num, base)

chk_log=%f //локальная переменная

rez=log(num)/log(base)

endfunction

Описание функции function [выходные параметры]=имя_функции(входные параметры) …  тело функции …  [выходные параметры]=… endfunction

Описание функции

function [выходные параметры]=имя_функции(входные параметры)

тело функции

[выходные параметры]=…

endfunction

Hello1('незнакомец') ans = Привет, Незнакомец!" width="640"

Линейный процесс вычислений

function [outS]=Hello1(Name)

outS='Привет, '+Name+'!'

endfunction

  • Вот пример выполнения этой функции:

--Hello1('незнакомец')

ans =

Привет, Незнакомец!

Укажем массив значений:
  • Укажем массив значений:

Hello1(['Незнакомец';'Инкогнито'])

ans =

!Привет, Незнакомец! !

!Привет, Инкогнито! !

a=[1 2 3],b=[3 2 1] a = 1. 2. 3. b = 3. 2. 1. --a*b !--error 10 Некорректное умножение." width="640"

Эти операции служат для выполнения матричных действий по правилам матричной алгебры. Например:

--a=[1 2 3],b=[3 2 1]

a =

1. 2. 3.

b =

3. 2. 1.

--a*b

!--error 10

Некорректное умножение.

a*b' ans = 10. --b' * a ans = 3. 6. 9. 2. 4. 6. 1. 2. 3." width="640"

Согласно правилам матричной алгебры, важен порядок множителей:

--a*b'

ans =

10.

--b' * a

ans =

3. 6. 9.

2. 4. 6.

1. 2. 3.

a .* b ans = 3. 4. 3." width="640"

Для выполнения поэлементного умножения двух массивов необходимо поставить перед знаком действия точку:

--a .* b

ans =

3. 4. 3.

Операторы ветвления Функция для расчета логарифма числа по произвольному основанию: function rez=logB(num,base)  rez = log(num)/log(base) endfunction

Операторы ветвления

Функция для расчета логарифма числа по произвольному основанию:

function rez=logB(num,base)

rez = log(num)/log(base)

endfunction

if   then   elseif   then   ... elseif  then  else   end

if then

elseif then

...

elseif then

else end

1, length(base)1]) then error('Ошибка: массив не может быть входным параметром'); else if and([num0, base0, base1]) then rez = log(num)/log(base) else error('Ошибка: неверные входные данные'); end end endfunction" width="640"

Новый вид функции с проверкой входных данных на корректность:

function [rez]=logB(num, base)

//Проверка размера массивов

if or([length(num)1, length(base)1]) then

error('Ошибка: массив не может быть входным параметром');

else

if and([num0, base0, base1]) then

rez = log(num)/log(base)

else

error('Ошибка: неверные входные данные');

end

end

endfunction

Способ использования прост: warning('on') //включение режима вывода предупреждений warning('сообщение') //вывод сообщения warning('off') //выключение режима вывода предупреждений

Способ использования прост:

warning('on') //включение режима вывода предупреждений

warning('сообщение') //вывод сообщения

warning('off') //выключение режима вывода предупреждений

Общий вид оператора множественного выбора select   case  then   case  then   case  then  …  case  then   else   end

Общий вид оператора множественного выбора

select

case then

case then

case then

case then

else

end

Рассмотрим функцию, получающую количество информации в байтах и выдающее название наибольшей единицы измерения. 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

Рассмотрим функцию, получающую количество информации в байтах и выдающее название наибольшей единицы измерения.

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

Циклы Счетный ( for ) и условный ( while ). Общий вид оператора счетного цикла следующий: for =   End

Циклы

Счетный ( for ) и условный ( while ).

Общий вид оператора счетного цикла следующий:

for =

End

edIzm([1,2,4]) ans = Байт --edIzm([1,23,4]) WARNING: Введенное больше чем 999 Мегабайт ans = Много" width="640"

Рассмотрим описанную нами функцию edIzm.

--edIzm([1,2,4])

ans =

Байт

--edIzm([1,23,4])

WARNING: Введенное больше чем 999 Мегабайт

ans =

Много

Счетный оператор цикла: 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

Счетный оператор цикла:

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

Возможен и такой вариант начала функции:  function [rez]=edIzm(N)  NSize=length(N)  for i=1:NSize  sN=string(N(i))  select length(sN) . . .

Возможен и такой вариант начала функции:

function [rez]=edIzm(N)

NSize=length(N)

for i=1:NSize

sN=string(N(i))

select length(sN)

. . .

Цикл while. Общий вид этого оператора:  while    end

Цикл while.

Общий вид этого оператора:

while

end

Вместо строк sN=string(N(i)) select length(sN) можно вставить следующее:
  • Вместо строк

sN=string(N(i))

select length(sN)

  • можно вставить следующее:

iN=0

NTemp=N(i)

while NTemp0 do

iN=iN+1

NTemp=int(NTemp/10)

end

select iN

Спасибо за внимание

Спасибо за внимание


Получите в подарок сайт учителя

Предмет: Информатика

Категория: Презентации

Целевая аудитория: Прочее

Скачать
Презентация "Блочное программирование в Scilab"

Автор: Митронина Виктория Владимировна

Дата: 02.03.2020

Номер свидетельства: 541697

Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства