Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (методичка).doc
Скачиваний:
276
Добавлен:
03.03.2016
Размер:
1.43 Mб
Скачать

7. Алгоритмы, содержащие вспомогательные подзадачи

При решении многих расчетных задачах возникает необходимость повторить несколько раз одну и ту же последовательность действий в разных частях алгоритма. В этом случае рационально выделить повторяющуюся последовательность действий в отдельную подзадачу – подпрограмму. Разработав алгоритм вспомогательной подзадачи, при составлении блок-схемы основного алгоритма необходимо предусмотреть обращение (вызов) к этой подзадаче.

Пример 7.Составить подпрограмму вычисления суммы элементов массива, которую использовать для обработки массивов A[Na], B[Nb]. Элементы массивов вычислять по формулам:Ar=0.3 r21.2r; Bt=0.5t2+1.7t.

При решении поставленной задачи можно выделить несколько подзадач:

1. Подзадача вычисления (формирования) элементов исходных массивов А и В. Для этого следует обратить внимание на формульные зависимости по которым вычисляются элементы массивов и вывести общую зависимость. В нашем случае она будет иметь вид: Xi = k1 i2+k2 i.

2. Подзадача вывода элементов исходных массивов.

3. Подзадача вычисления суммы элементов массивов.

На рис. 7.1 приведена блок-схема алгоритма подзадачи вычисления элементов внутреннего одномерного массива Х. В качестве исходных данных в подзадачу передаются: массив Х, размерность массива M, коэффициентыk1 иk2.

На рис. 7.2 приведена блок-схема алгоритма подзадачи вывода элементов внутреннего массива Х. В качестве исходных данных в подзадачу передаются: массив Х, размерность массива M.

На рис. 7.3 приведена блок-схема алгоритма подзадачи вычисления суммы элементов внутреннего массива Х. В качестве исходных данных в подзадачу передаются: массив Х, размерность массива M. Результатом работы подзадачи будет вычисленное значение суммы элементов массиваS.

На рис. 7.4 приведена блок-схема основного алгоритма решения задачи. Вначале алгоритма вводятся размерности обрабатываемых массивов А и В (блок 2). Блок 3 выполняет обращение к подпрограмме расчета элементов массива рр1 и передает в неё фактические параметры массива А и коэффициенты для формульной зависимости. После завершения работы подпрограммы рр1 в основной алгоритм будет возвращен сформированный массив А. Затем в блоке 4 выполняется вызов подпрограммы вывода элементов массива рр2, в которую также передаются фактические параметры массива А. Завершается обработка 1-го массива обращением к подпрограмме рр3 (блок 5), которая возвратит в переменную Saзначение вычисленной суммы элементов массива А.

Аналогичным образом в блоках 6-8 обрабатывается массив В. Завершает работу основного алгоритма вывод результирующих сумм Sa иSb(блок 9).

Использование вспомогательных подзадач позволило избежать повторения одних и тех же по сути фрагментов блок-схемы алгоритма.

Задания к контрольной работе Задание №1.Организация линейного и разветвляющегося

вычислительных процессов

Задание. Составить блок-схему алгоритма и программу решения поставленной задачи, которая в соответствии с исходными данными вычисляет значения заданных выражений.

Пример.Составить алгоритм и программу для вычисления значенияy в соответствии с исходными даннымиxиa.

Блок-схема алгоритма:

Программа на языке Турбо Паскаль:

Program Pr1;

Label m1;

Var

a, x, y: real;

Begin

Write(‘Ввод а и х’);

Readln(a,x);

If (x >= -1.5) And (x <= 1.5) Then y := Sqr(a)+ Sin(Pi / 2 * x)

Else If (x >= 2.5) And (x <= 3.5) Then y := abs(a + x)

Else If x - a > = 0 Then y := Sqrt(x - a)

Else Begin Writeln(‘Корень не существует’); Goto m1; End;

writeln(‘y=’, y : 6 : 2);

m1:

End.