Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка1.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
251.39 Кб
Скачать

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

Дан массив X, состоящий из n элементов. Найти сумму (произведение) элементов этого массива. Процесс накапливания суммы элементов массива: переменной S присваивается значение равное нулю, затем последовательно суммируются элементы массива X. Блок-схема алгоритма расчета суммы приведена на рис. 5. .

Решение задачи вычисления произведения сводится к тому, что значение переменной Р, в которую предварительно была записана единица, последовательно умножается на

значение i–го элемента массива. Блок-схема алгоритма приведена на рис.6.

Рис.5. Алгоритм вычисления Рис. 6. Вычисление произведения

суммы элементов массива элементов массива

s: = 0; p: =1;

for i:=1 to n do

begin

s = s + x[i] ;

p = p * x[i] ;

end;

4. Поиска максимального (минимального) элемента в массиве и его номера.

Дан массив X, состоящий из n элементов. Найти максимальный (минимальный) элемент массива и номер, под которым он хранится в массиве.

Алгоритм решения задачи следующий. Пусть в переменной с именем Max (Min) хранится значение максимального (минимального) элемента массива, а в переменной с именем Nmax (Nmin)– его номер. Предположим, что первый элемент массива является максимальным (минимальным), и запишем его в переменную Max (Min), а в Nmax (Nmin) – занесем его номер, то есть – «1». Затем все элементы, начиная со второго, сравниваем в цикле с максимальным (минимальным) значением. Если текущий элемент массива оказывается больше максимального (минимального), то записываем его в переменную Max (Min), а в переменную Nmax (Nmin) – текущее значение индекса i.

Процесс определения максимального элемента в массиве приведен в таблице 1 и изображен при помощи блок-схемы на рис. 7.

Алгоритм поиска минимального элемента в массиве будет отличаться от приведенного выше лишь тем, что в условном блоке знак поменяется с > на <.

Таблица 1. Определение максимального элемента и его номера в массиве

Номера элементов

1

2

3

4

5

6

7

Исходный массив

4

7

3

8

9

2

5

Значение переменной Max

4

7

7

8

9

9

9

Значение переменной Nmax

1

2

2

4

5

5

5

Рис. 7. Поиск максимального элемента в массиве и его номера.

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

Если требуется поиск максимума (минимума) в сочетании с условием отбора, то величина первого элемента, удовлетворяющего условию, не известна. В связи с этим переменной, в которой будет "накапливаться" минимум, присваивают значение +, под которым понимают величину, заведомо большую, чем любой из элементов массива, удовлетворяющих заданному условию. На блок-схеме разрешается писать этот знак (или - для максимума), но в программе вместо + или - надо указывать конкретное число, которое часто можно определить из формулировки задачи. Например, если дан массив зарплат сотрудников некоего учреждения и надо найти наибольшую зарплату, ясно, что за - можно взять, скажем, -1.

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

Фрагмент программы поиска минимального элемента массива без условия (1) и с условием (2).

Фрагмент 1 Фрагмент 2

max: = x[1]; max: = -32765;

nmax = 1; nmax = 0;

for i:=2 to n do for i:=1 to n do

if max <= x[i] if max <= x[i] and x[i] = «хороший»

then begin then begin

max: = x[i]; max: = x[i];

nmax = i; nmax = i;

end; end;

«Хороший» означает, что данный элемент удовлетворяет условию задачи.