Основы алгоритмизации: Практическое пособие к контрольным работам по курсу «Информатика», страница 4

 


Рис.5.2. Графическая иллюстрация табулирования функции на отрезке

           Замечание. Если бы функция  имела вид такой, как у функции, рассмотренной в примере 4.2 (т.е. прежде чем рассчитать ее, нужно выбрать расчетную формулу), то вместо символа процесс, определяющего расчет функции,  в схеме программы нужно поставить структуру ветвление.

5.3. Применение циклов в алгоритмах обработки массивов

Массив – это ограниченный и  упорядоченный определенным образом набор величин одного типа (например, 20 целых чисел, имеющих различные значения, упорядоченные по порядковому  номеру их вхождения в массив: 1 – е число, 2 – е и т.д.).

           Каждая величина, входящая в массив, называется элементом массива. Она снабжается  индексом, при помощи которого из массива можно выбрать нужное значение. Индекс обычно является величиной  целого типа с начальным значением равным 1.

          Например, задан массив x из пяти целых чисел

x1

x2

x3

x4

x5

10

-7

102

201

-78

           Рис.5.3. Схема алгоритма для табуляции функции на отрезке

           Значения его элементов, например, x2=7, можно использовать в различных вычислениях так же, как и значения обычных величин. Массив, элементы которого имеют только один индекс, называется одномерным(другие названия: линейный, вектор). Он представляет собой таблицу, состоящую из одной строки (или одного столбца).

          Если же одни и те же операции производятся над всеми элементами массива (например, по вводу или выводу), то для этой цели уместно использовать циклический алгоритм. Причем параметром цикла будет являться величина, определяющая значения индекса у элементов массива. Обычно ее принято обозначать буквами: i, j,k…, а принимает в цикле эта величина значения, начиная с 1 (начальное значение индекса) до значения, равного количеству элементов в массиве (называемого размерностью), с шагом равным 1 (хотя используется и индексация, начинающаяся с нуля или с шагом, отличным от 1).

          Для организации такого цикла обычно используется типовая структура цикла с предусловием (рис.5.1.(а)).

          Замечание. В ряде задач требуется использовать не все элементы массива, а только некоторую часть. Это потребует несколько иной организации цикла.

          Пример 1. Вычислить сумму элементов массива, стоящих между пятым и двадцатым элементами.

          В этом случае:

-  начальное значение параметра цикла =6;

-  конечное значение параметра цикла =19;

-  шаг изменения =1.

Пример 2.

Вычислить произведение тех элементов массива, которые стоят на четных местах.

В этом случае идет речь только о тех элементах, у которых значение индекса кратно 2. Нужно организовать цикл с параметром цикла, у которого:

- начальное значение =2;

- конечное значение = числу элементов в массиве;

- шаг изменения =2.

5.3.1. Ввод-вывод одномерных массивов

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

Решение. Сначала определим из скольких элементов состоит массив, а затем в цикле по i=1,2,…, N организуем ввод i-ого элемента (рис.5.4(а)).

                 а)                                                                       б)

           Рис.5.4. Схема ввода-вывода элементов массива

                    В дальнейшем, чтобы сократить запись схемы алгоритма мы будем использовать для ввода и вывода одномерных массивов обозначения следующего вида:

подразумевая однако, что под ними подразумеваются схемы, представленные на рис.5.4.

5.3.2.Алгоритм нахождения суммы элементов одномерного массива

            Пусть требуется найти сумму всех элементов одномерного массива X, состоящего из N элементов. Математическая запись этой задачи выглядит следующим образом:

 , а если раскрыть смысл значка суммы, то получим следующее:

. Исходя из этого, для решения задачи воспользуемся следующим циклическим алгоритмом:

1.  Зададим S=0.

2.  Организуем цикл по i=1,2,...,N на каждом шаге которого будем выполнять следующее действие:.