Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Использование циклических операций для обработки массивов



Основным инструментом для работы с массивами являются операторы цикла. С их помощью можно записывать значения в массивы, выбирать значения из массивов, менять элементы массивов местами и т.д. Порядок использования циклических операторов для обработки массивов рассмотрим без потери общности на следующих конкретных примерах.

Пример. Составить фрагмент алгоритма, в котором четным элементам массива х(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. Алгоритм обработки матрицы

 

Пример. Составить фрагмент алгоритма, позволяющий вычислить сумму положительных элементов, лежащих под (над) дополнительной диагональю матрицы А(4, 4):

 
 

В задачах такого рода важно определить закономерность изменения индексов элементов массива: в этой задаче нужно увидеть, что сумма индексов элементов, лежащих под дополнительной диагональю, больше 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; Просмотров: 574; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.)
Главная | Случайная страница | Обратная связь