Файл: Электронное пособие Scilab.pdf

Добавлен: 15.11.2018

Просмотров: 12850

Скачиваний: 228

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

71 

 

 

 

Рис. 1.3.4-16.  Прерывание программы с применением оператора break 

 
Оператор continue передает управление в следующую итерацию цикла, 

пропуская операторы, которые записаны за ним, причем во вложенном цикле 
он  передает  управление  на  следующую  итерацию  основного  цикла.    Ниже 
приведен  пример  вычисления  суммы  и  произведения  положительных 
элементов двумерного массива b(3,3) (рис. 1.3.4-17). 

 

 

 

Рис. 1.3.4-17.  Прерывание программы с применением оператора continue 

 
 


background image

72 

 

1.3.5. 

Примеры решения задач с использованием 

sci-

файлов 

Пример. 1.3.5-1. Даны n чисел  

n

b

b

b

,...

,

2

1

. Требуется вычислить их 

сумму: 

),

(

...

)

(

)

(

2

1

n

b

f

b

f

b

f

где 

.

3

/

;

3

1

,

;

3

,

)

(

2

случаях

остальных

в

x

x

если

x

x

если

x

x

f

 

 
Для  решения  поставленной  задачи  разработана  функция  fb(x)

реализующая  алгоритм  вычисления  текущего  значения  функции.  Функция 
имеет один входной параметр – текущее значение элемента массива b, и один 
выходной  параметр  –  y  (рис.1.3.5-1).      Обращение  к  функции  происходит  в 
цикле, организованном для вычисления суммы (рис. 1.3.5-2). 

 

 

       Рис. 1.3.5-1. Функция, реализующая алгоритм Примера 1

. 

3.5-1 

 

 

 

Рис. 1.3.5-2. Программа, реализующая вычисление суммы чисел 

 
Для  вычисления  суммы  значений  функции  создан  файл  с  именем 

zadashа.sci,  в  котором  сначала  заданы  количество  чисел  (n=10)  и  вектор  их 


background image

73 

 

значений  (b),  а  затем  организован  регулярный  цикл  для  обращения  в 
функции fb() и вычислению суммы. 

Вычисления  производятся  запуском  fb.sci  и  функции  zadash.sci  в 

Командном окне. Результат его выполнения выведен на рис.1.3.5-5. 

 

 

 

Рис. 1.3.5-3. Сборка и выполнение задачи 

 
Пример. 1.3.5-2.Сформировать из произвольных чисел двумерный 

массив  а(3,4).  Вычислить  и  вывести  одномерный  массив  b,  каждый 
элемент 

которого 

есть 

среднее 

арифметическое 

элементов 

соответствующей строки массива а. 

 
На  рис.  1.3.5-4  приведен  script-файл  с  именем  zadasha2,  где  введена 

матрица,  а,  состоящая  из      3-х  строк  и  4-х  столбцов.  Организован  цикл  по 
количеству формируемых элементов массива b путем обращения к функции 
sred_ar().  В  функцию  передается  массив  а,  номер  строки  i  и  количество 
элементов в строке m. Вывод элементов массива предусмотрен в столбец. 

 

 

 

Рис. 1.3.5-4. Программа формирования массива b 

 
Функция  sred_ar() (рис. 1.3.5-5) предназначена для формирования i-го 

элемента  массива  b,  равного  среднему  арифметическому  элементов  строки 
массива а

 


background image

74 

 

 

 

Рис. 1.3.5-5. Функция sred_ar(), вычисляющая среднее арифметическое 

элементов строки массива a 

 
В результате запуска sci-файле с именем zadasha2 в окно Командного 

окна выводится столбец элементов массива 
 

 

 

Рис. 1.3.5-6. . Сборка и выполнение задачи 

 
Пример.  1.3.5-3.    Задать  действительные  числа  a,b,  натуральное  n 

(a<b)  и  вычислить  выражение 

h

F

F

F

s

n

)

...

(

2

1

,  где 

n

a

b

h

,  если 

.

,...,

2

,

1

,

)

2

/

1

(

1

)

2

/

1

(

2

n

i

h

i

h

i

a

F

i

 

Решение  задачи  требует  разработки  2-х  функций:  fab(a,  h,i)

предназначенной для вычисления  i-го слагаемого (рис.1.3.5-7) и  sumf(a,h,n), 
предназначенной для вычисления заданного выражения (рис. 1.3.5-8). 

 


background image

75 

 

 

 

Рис. 1.3.5-7. Функция fab(), вычисляющая значение i-го слагаемого 

 

 

 

Рис. 1.3.5-8. Функция sum_f(), вычисляющая заданное выражение 

 
Запуск на выполнение осуществляется из командного окна  к функции 

sum_f().  Предварительно  переменным  a,  b  и  n  присваиваются  числовые 
значения. Проверка правильности ввода исходных данных  предусмотрена в 
функции sum_f(). Вычисления выполняются и результат выводится на экран 
только в случае если  b>a, иначе в командной строке появляется  сообщение 
«Ошибка в исходных данных b<a» (рис.1.3.5-9).