ідно виконати наступне:
. 3.1) якщо i-й елемент масиву дорівнює 0 і перший нуль ще не знайдений (тобто M i=0 і NaydenPerviy0=false), то:
. 3.1 + .1) прапору «Знайдена перша нуль» присвоюємо значення ІСТИНА (NaydenPerv0=true).
. 3.2) якщо перша нуль уже знайдений (тобто NaydenPerviy0=true), то:
. 3.2 + .1) змінну S збільшуємо на модуль значення i-го елемента масиву (S=S + | M i |).
. 4) Повертаємо значення змінної S.
) Перетворення масиву M в новий масив Mnew таким чином, щоб у першій половині нового масиву розташовувалися елементи, які стоять в парних позиціях масиву M, а в другій половині - елементи, які стоять в непарних позиціях масиву M:
. 1) Для кожного індексу i, пробігаючи значення від 0 до (N - 1) (тобто 0? i lt; N), необхідно виконати наступне:
. 3.1) якщо індекс i не досяг середини масиву (тобто i lt; цілої частини від розподіл N/2), то:
. 3.1 + .1) i-му елементу нового масиву M new i присвоюємо значення (2i + 1) -го елемента масиву M 2i + 1, (тобто елемента знаходиться в непарній позиції з урахуванням, що позиції нумеруються з 0, а не з 1); інакше (тобто коли індекс знаходиться в другій половині масиву):
. 3.1-.1) i-му елементу нового масиву M new i присвоюємо значення (i - 2 * (ціле від N/2)) - го елемента масиву M i - 2 * Ціле (N/2), (тобто елемента знаходиться в парній позиції).
. 2) Виведення масиву M new, тобто виконання пункту 4 для масиву M new.
Пункти 3-7 було вирішено виділити в окремі алгоритми (підпрограми), звернення до яких здійснюється з основного алгоритму (головної програми).
. 2 Блок-схема
Блок-схема спроектованого алгоритму представлена ??на малюнку нижче:
3. РЕАЛІЗАЦІЯ
Для реалізації знаходження результату завдання розроблений раніше алгоритм був реалізований за допомогою мови програмування C ++. Код вийшла програми представлений нижче:
# include lt; iostream gt;
# include lt; conio.h gt;
# include lt; windows.h gt; namespace std; main ()
{
SetConsoleOutputCP (тисяча двісті п'ятьдесят одна);
int n;// розмір масиву
cout lt; lt; Введіть розмірність масиву: raquo ;;
cin gt; gt; n;
int * mas=new int [n];// виділяємо пам'ять під масив
int S=0;// сума підлогу. ел. масиву
for (int i=0; i lt; n; i ++)
{
cout lt; lt; Введіть lt; lt; i lt; lt; елемент масиву: raquo ;;
cin gt; gt; mas [i];// введення масиву
if (mas [i] gt; 0)//якщо ел. мас. gt; 0
{
S +=mas [i];// додаємо його до суми
}
}
cout lt; lt; nСумма позитивних елементів масиву: lt; lt; S;
int min=abs (mas [0]);
int indexMin=0;
int max=abs (mas [0]);
int indexMax=0;
for (int i=0; i lt; n; i ++)
{
if (abs (mas [i]) gt;=abs (max))
{
max=mas [i];
indexMax=i;
}
if (abs (mas [i]) lt;=abs (min))
{
min=mas [i];
indexMin=i;
}
}
cout lt; lt; nМінімальний по модулю елемент масиву: lt; lt; min lt; lt; його індекс: lt; lt; indexMin;
cout lt; lt; nМаксімальний по модулю елемент масиву: lt; lt; max lt; lt; його індекс: lt; lt; indexMax;
int P=1;// твір
//обчислення твори
if (indexMin lt; indexMax)
{
for (int i=indexMin; i lt; indexMax; i ++)
{
P *=mas [i];
}
}
else
{
for (int i=indexMax; i lt; indexMin; i ++)
{
P *=mas [i];
...