- •Касается 2-го задания.
- •3. Касается 2 и 3-го задания.
- •4. Касается 4-го задания.
- •5. Касается 5-го задания.
- •1. Алгоритмы разветвленной структуры
- •2. Ввод-вывод элементов одномерного массива
- •3. Вычисление суммы и произведения элементов массива
- •4. Поиска максимального (минимального) элемента в массиве и его номера.
- •5. Формирование массива в из элементов массива а.
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;
«Хороший» означает, что данный элемент удовлетворяет условию задачи.
