Цикл проверки элементов массива А на знак, вычисление суммы (S) отрицательных элементов массива А, формирование массива В из порядковых номеров отрицательных элементов в массиве А
да
нет
Конец
счета
I=1
Вывод S,J
нет
Вывод В[i]
да
I=I+1
Цикл вывода элементов массива В
I< J
Рассмотрим Пример 8
В произвольном массиве найти максимальный и минимальный элементы и поменять их местами.
Возьмем тот же массив из примера 7.
А=2; -3,4; 1; 2; -2; 1,5; 4,4; -3; 10,8; 6
Переменную под максимальный элемент назовем Мax, его местоположение в массиве запишем в переменную Nmax, переменную под минимальный элемент назовем Min, его местоположение в массиве запишем в переменную Nmin. (наименование этих переменных совершенно произвольно, мы такие берем для наглядности).
На процедуре ввода останавливаться не будем, это подробно рассмотрели в примере 7.
(перейдя к пункту 1, мы перейдём к поиску максимума нашего массива и найдём на каком месте он стоит в нашем массиве)
Мах=A[1], Nmax=1 (этими действиями мы присвоили переменной Max значение первого элемента из нашего массива равного 2, а переменной Nmax значение равное 1, т.е. значение места, на котором он стоит. Так оно и будет, если бы на первом месте в массиве стояло самое большое число).
I=2 (переменной I присвоим значение 2, таким образом мы подготовимся к просмотру элемента массива, стоящего на втором месте).
Если A[I]> Max, то переходим к пункту 4, иначе п.5
Max=A[I], а Nmax=I, (т.е. если очередной элемент оказался больше содержимого переменной Max, то значение этого элемента записываем в Max, а значение индекса I, указывающего на каком месте стоит этот элемент в переменную Nmaxи после этого переходим к п.5. Если A[I] окажется меньше содержимого Max, то сразу переходим к подготовке просмотра следующего элемента массива – пункт 5)
Увеличим значение переменнойI,т.е.I=I+1(подготовим следующий элемент)
Все ли элементы массива Апроверены?, т.е. еслиI < =N, то перейти к пункту 3, иначе перейти к пункту 7. ( с пункта 7 начнем поиск минимального элемента аналогично поиску максимального)
Мin=A[1], Nmin=1 (этими действиями мы присвоили переменной Min значение первого элемента из нашего массива равного 2, а переменной Nmin значение равное 1, т.е. значение места, на котором он стоит).
I=2 (переменной I присвоим значение 2, таким образом мы подготовимся к просмотру элемента массива, стоящего на втором месте).
Если A[I] < Min, то пункт 10, иначе п.11
Min=A[I], а Nmin=I (т.е. если очередной элемент оказался меньше содержимого переменной Min, то значение этого элемента записываем в Min, а значение индекса I, указывающего на каком месте стоит этот элемент в переменную Nmin и после этого переходим к п.11. Если A[I] окажется больше содержимого Min, то сразу переходим к пункту 11, т.е. подготовке просмотра следующего элемента массива)
Увеличим значение переменнойI,т.е.I=I+1(подготовим следующий элемент)
Все ли элементы массива Апроверены?, т.е. еслиI < =N, то перейти к пункту 9, иначе перейти к пункту 13.
Мы нашли максимальный и минимальный элементы, нашли их местоположение в нашем массиве. Теперь в пункте 13 надо поменять местами элемент массива A[Nmax] с элементом A[Nmin]. Это задача о двух стаканах. Если у нас 2 стакана с разным содержимым и нам надо поменять содержимое, то придется взять третий стакан. Для роли третьего стакана возьмем переменную V.
13. V=A[Nmax]; A[Nmax]=A[Nmin]; A[Nmin]=A[Nmin]=V (Поменяли местами максимум и минимум).
14. Вывести на печать значение переменных Max, Nmax, Min, Nmin (В нашем примере Max=10,8; Nmax=9; Min= -3,4; Nmin=2)
Еще нам надо организовать цикл на вывод массива A, т.к. мы его видоизменили (меняли местами два элемента. На выходе будет массив А=2; 10,8; 1; 2; -2; 1,5; 4,4; -3,4; -3; 6 ).
15. Присвоим I=1
16. Вывести на печать А[I]
17. Проверить все ли элементы массива А просмотрены, т.е. еслиI<N, то перейти к пункту 18, иначе к пункту 19
18. Увеличить значение переменной I, т.е. I=I+1. Перейти к пункту 16