- •Приложение б алгоритмизация вычислительных процессов
- •1. Этапы подготовки и решения задачи на эвм
- •2. Алгоритм и формы его представления
- •3. Линейные и разветвляющиеся алгоритмы
- •4. Алгоритмы циклической структуры
- •4.1. Цикл с простой переменной
- •4.2. Циклические алгоритмы формирования и обработки одномерных массивов
- •4.3. Организация сложных (вложенных) циклов
- •4.5. Циклы с неизвестным числом повторений
- •4.4. Алгоритмы обработки двухмерных массивов.
- •5. Использование подпрограмм в алгоритмах
- •6. Алгоритмы вычисления суммы и произведения
- •7. Алгоритмы нахождения наибольшего и наименьшего значения
- •8. Алгоритмы сортировки
- •8.1. Сортировка обменом (пузырьковая сортировка)
- •8.2. Сортировка выбором
- •8.3 Метод перестановок
- •8.4. Сортировка вставкой
4.4. Алгоритмы обработки двухмерных массивов.
Двухмерный массив — это некоторая матрица с определенным числом строк и столбцов. Каждый элемент такого массива определяется двумя индексами: первый из них указывает номер строки, а второй номер столбца, на пересечении которых размещен данный элемент. Например, в системе линейных алгебрагических уравнений
совокупность неизвестных величины x1, x2,..., x10 и правых частей b1, b2,..., b10 образует одномерные массивы (векторы), так как положение элементов в них определяется одним индексом. Матрица коэффициентов ai,j (i=1.. 10, j=1..10) этой системы уравнений служит примером двухмерного массива, который состоит из 10 строк и 10 столбцов.
Пример. Для матрицы целых чисел B(5,4) найти произведение отрицательных (P) и сумму положительных (S) элементов.
Исходный массив B содержит 5 строк и 4 столбца. Решение этой задачи сводится к проверке в цикле знака элемента исходного массива и накоплению произведения, если этот элемент отрицательный, накоплению суммы, если он положительный. Для данной задачи можно организовать просмотр массива по строкам (внешний цикл по первому индексу, внутренний по второму индексу) или по столбцам (наоборот).
Блок-схема этого алгоритма изображена на рис. 6.
Здесь блоки 2, 3, 4 организуют ввод элементов массива B (поэлементно, по строкам). В блоке 5 присваиваются начальные значения сумме и произведению элементов. Блоки 6, 7 организуют вложенный цикл, параметрами которого являются номер строки и номер столбца элементов массива В. В блоке 8 проверяется знак элемента массива, в блоке 9 накапливается произведение, если он отрицательный, а в блоке 10 - накапливается сумма положительных элементов (и нулевых, так как на результат S они не влияют). Блок 11 выводит результаты расчета.
Рисунок 6 - Блок-схема алгоритма обработки двухмерного массива
4.5. Циклы с неизвестным числом повторений
В циклах с неизвестным числом повторений вычислительный процесс завершается при выполнении некоторого условия, поэтому количество повторений цикла заранее не определено. Для подсчета количества повторений цикла необходимо организовать счетчик, который следует обнулить к началу цикла.
Пример. Вычислить значения y по формуле
для
Вычисления y выполнять до тех пор, пока значение x3 станет больше a. Определить количество вычисленных значений y. Вывести все значения y и их количество k.
Особенностью этой задачи есть то, что для организации цикла невозможно использовать блок модификации, так как неизвестно конечное значение параметра x, при котором будет достигнуто условие x3>a.
Блок-схема этого алгоритма изображена на рис. 7. Блок 2 организует ввод значений a, xn. В блоке 3 присваиваются начальные значения переменной x, счетчику количества повторений цикла k, константе . В блоке 4 проверяется условие окончания цикла: пока оно выполняется, вычисляются значения y в блоке 5, выводятся значения переменных x и y в блоке 6, готовятся значения переменных x и k для следующего шага цикла. Как только x достигнет такого значения, при котором x3>a, выводится значение параметра k (блок 8) и алгоритм заканчивает свою работу.
Рисунок 7 - Блок-схема алгоритма с неизвестным числом повторений
