|
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Использование циклических операций для обработки массивов
Основным инструментом для работы с массивами являются операторы цикла. С их помощью можно записывать значения в массивы, выбирать значения из массивов, менять элементы массивов местами и т.д. Порядок использования циклических операторов для обработки массивов рассмотрим без потери общности на следующих конкретных примерах. Пример. Составить фрагмент алгоритма, в котором четным элементам массива х(1: 100) будут присвоены значения квадратов индексов, а остальным элементам — нули. Будем формировать массив по следующему правилу: сначала весь массив обнулим, а затем будем присваивать четным элементам нужное значение, т.е. записывать значения в массив с помощью цикла: … Список данных: k — целый; х(1: 100) — вещественный; Цикл по k от 2 до 100 шаг 2; x(k): = k; Конец-цикла; … В данном фрагменте алгоритма (и далее) под записью вида х: =0 (в том случае, конечно, если х — это массив) будем понимать работу с массивом «целиком», т.е. каждый элемент массива х получает значение 0. На самом деле такое присваивание (ввод, вывод и т.д.) можно выполнить, например, в цикле: «... Цикл по k от 1 до 100; x(k): =0; Конец-цикла; ...». Пример. Составить алгоритм вычисления скалярного произведения векторов а и b длиной 10 по формуле
Смысл этой задачи сводится к выбору одноименных элементов из массивов, их перемножению с последующим суммированием полученных произведений. Алгоритм имеет следующий вид: 1. Начало; 2. Список данных: k — целый; а(1: 10), b(1: 10), с — вещественный; 3. Ввод(а, Ь); 4. Вывод(а, Ь); 5. с: =0; 6. Цикл по k от 1 до 10; 7. c: =c+a(k) • b(k); 8. Конец-цикла 6; 9. Вывод (с); 10. Конец. В этом алгоритме для организации накопления значений «с» мы предварительно «очистили» отведенную для этого ячейку памяти. В каждом новом повторе цикла к значению «с» прибавлялось очередное слагаемое. Пример. Составить таблицу отклонений экспериментальных данных V1, V2, ..., V20 от их среднего значения. Сначала необходимо вычислить среднее значение, а затем построчно сформировать и отпечатать таблицу значений. Фрагмент алгоритма решения этой задачи представлен на рис. 22.
Рис. 22. Фрагмент алгоритма вычисления и печати таблицы отклонений от среднего значения
Пример. Построить алгоритм для определения суммы элементов матрицы, состоящей из 2 строк и 3 столбцов, при условии, что первый элемент матрицы больше или равен нулю, или произведения элементов матрицы, если первый элемент меньше нуля. Математическая постановка задачи будет иметь следующий вид: Задана матрица:
Необходимо рассчитать величину R по формуле
Алгоритм решения этой задачи, заданной в форме ГСА, приведен на рис. 23. Рассмотрим еще два примера, иллюстрирующих циклическую обработку массивов.
Рис. 23. Алгоритм обработки матрицы
В задачах такого рода важно определить закономерность изменения индексов элементов массива: в этой задаче нужно увидеть, что сумма индексов элементов, лежащих под дополнительной диагональю, больше 5 (над диагональю — меньше 5; на диагонали — равна 5). Фрагмент алгоритма решения задачи в виде псевдокодов выглядит гак: ... 5. S: =0; 6. Цикл по i от 1 до 4; 7. Цикл по j от 1 до 4; 8. Если (i+j> 5) и (A(i, j)> 0) To 9. S: =S+A(i, j); 10. Конец-Если8; 11. Конец-цикла 7; 12. Конец-цикла 6; 13. Вывод(8); ... Пример. Составить фрагмент алгоритма, позволяющий вычислить
сумму отрицательных элементов, лежащих над (под) главной диагональю матрицы А(4, 4):
В этой задаче важно увидеть, что первый индекс у элементов, лежащих над главной диагональю, меньше второго (под диагональю первый индекс больше второго; на диагонали индексы равны). Фрагмент алгоритма решения задачи очень похож на предыдущий, изменения потребует лишь пункт 8 (изменится проверяемое логическое условие). Фрагмент алгоритма решения этой задачи можно написать самостоятельно. Рассмотрим еще один алгоритм, обеспечивающий сортировку массива. Известно множество методов решения задач такого плана; словесное описание некоторых из них можно найти, например, в [1]. Реализуем алгоритмически «метод сортировки обменами». Пример. Дана последовательность чисел а1 а2,..., а10 (одномерный массив а(10)). Требуется переставить числа в порядке возрастания. Для этого сравниваются два соседних числа aj и ai+1. Если ai > ai+1, то делается перестановка. Так продолжается до тех пор, пока не будут выполнены все перестановки. Алгоритм решения задачи показан на рис. 24.
Рис. 24. Алгоритм сортировки массива
Популярное:
|
Последнее изменение этой страницы: 2016-08-31; Просмотров: 609; Нарушение авторского права страницы