ВУЗ: Московский технический университет связи и информатики
Категория: Учебное пособие
Дисциплина: Информатика
Добавлен: 15.11.2018
Просмотров: 12850
Скачиваний: 228
71
Рис. 1.3.4-16. Прерывание программы с применением оператора break
Оператор continue передает управление в следующую итерацию цикла,
пропуская операторы, которые записаны за ним, причем во вложенном цикле
он передает управление на следующую итерацию основного цикла. Ниже
приведен пример вычисления суммы и произведения положительных
элементов двумерного массива b(3,3) (рис. 1.3.4-17).
Рис. 1.3.4-17. Прерывание программы с применением оператора continue
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) и вектор их
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. Вывод элементов массива b предусмотрен в столбец.
Рис. 1.3.5-4. Программа формирования массива b
Функция sred_ar() (рис. 1.3.5-5) предназначена для формирования i-го
элемента массива b, равного среднему арифметическому элементов строки
массива а.
74
Рис. 1.3.5-5. Функция sred_ar(), вычисляющая среднее арифметическое
элементов строки массива a
В результате запуска sci-файле с именем zadasha2 в окно Командного
окна выводится столбец элементов массива b
Рис. 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).
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).