}
}
cout lt; lt; nПроізведеніе елементів масиву між мінімальним і максимальним: lt; lt; P;
cout lt; lt; nУпорядочений масив: n raquo ;;
for (int i=0; i lt; n; i ++)//сортування масиву по зменшенням
{
for (int j=i; j lt; n; j ++)
{
if (mas [i] lt; mas [j])
{
int temp=mas [i];
mas [i]=mas [j];
mas [j]=temp;
}
}
cout lt; lt; lt; lt; mas [i];
}
getch ();
delete [] mas;
return 0;
}
4. ТЕСТУВАННЯ
. 1 Тестування алгоритму
Спочатку виконаємо трасування тих функцій (підпрограм), які формують результати. А саме функції:
MinPoModuluElement (M, N) - функція знаходження мінімального за модулем елемента масиву M,
SumPoslePervogo0 (M, N) - функція знаходження суми модулів елементів масиву M, розташованих після першого елемента, рівного нулю, (M, N) - функція перетворення масиву M таким чином, щоб у першій половині розташовувалися елементи , що стоять в парних позиціях масиву, а в другій половині - елементи, які стоять в непарних позиціях.
трасувальні таблиця для функції MinPoModuluElement (M, N) з вихідними даними N=5 і M={1,2,0, - 3,5}:
Номер шагаОпісаніе кроку функції MinPoModuluElement для N=5 і M={1,2,0, - 3,5} NMminiM i | min | gt; | M i | 5Визов функції MinPoModuluElement для N=5 і M={1,2,0, - 3,5} 5 {1,2,0, - 3,5} 5.1min=M 0 15.2Для i пробігаємо значення від 0 до (N - 1): i=0015.2.1Т.к. | min |=| M i |, то переходимо до п.5.2ЛОЖЬ5.2Для i пробігаємо значення від 0 до (N - 1): i=i + 1125.2.1Т.к. | min | lt; | M i |, то переходимо до п.5.2ЛОЖЬ5.2Для i пробігаємо значення від 0 до (N - 1): i=i + 1205.2.1Т.к. | min | gt; | M i |, то переходимо до п.5.2.1 + .1ІСТІНА5.2.1 + .1min=M i 05.2Для i пробігаємо значення від 0 до (N - 1): i=i + 13-35.2.1Т.к. | min | lt; | M i |, то переходимо до п.5.2ЛОЖЬ5.2Для i пробігаємо значення від 0 до (N - 1): i=i + 1455.2.1Т.к. | min | lt; | M i |, то переходимо до п.5.2ЛОЖЬ5.2Для i пробігаємо значення від 0 до (N - 1): i=i + 1. Так як i перейшло за межу діапазону, тобто i? N, то завершуємо цикл і переходимо до п. 5.355.3Возвращаем з функції значення змінної min
трасувальні таблиця для функції SumPoslePervogo0 (M, N) з вихідними даними N=5 і M={1,2,0, - 3,5}:
Номер шагаОпісаніе кроку функції SumPoslePervogo0 для N=5 і M={1,2,0, - 3,5} NMNayden Perv0SiM i M i=0 і NaydenPerv0=ЛОЖЬ6Визов функції SumPoslePervogo0 для N=5 і M={1,2,0, - 3,5} 5 {1,2,0, - 3,5} 6.1NaydenPerv0=ЛОЖЬЛОЖЬ6.2S=006.3Для i пробігаємо значення від 0 до (N - 1): i= 0016.3.1Т.к.M i? 0, то переходимо до п. 6.3.2ЛОЖЬ6.3.2Т.к. NaydenPerv0=БРЕХНЯ, то переходимо до п. 6.36.3Для i пробігаємо значення від 0 до (N - 1): i=i + 1126.3.1Т.к.M i? 0, то переходимо до п. 6.3.2ЛОЖЬ6.3.2Т.к. NaydenPerv0=БРЕХНЯ, то переходимо до п. 6.36.3Для i пробігаємо значення від 0 до (N - 1): i=i + 1206.3.1Т.к.M i=0 і NaydenPerv0=БРЕХНЯ, то переходимо до п. 6.3. 1 + .1ІСТІНА6.3.1 + .1NaydenPerv0=ІСТІНАІСТІНА6.3.2Т.к. NaydenPerv0=ІСТИНА, то переходимо до п. 6.3.2 + .16.3.2 + .1S=S + | M i | 06.3Для i пробігаємо значення від 0 до (N - 1): i=i + 13-36.3.1Т.к.M i? 0, то переходимо до п. 6.3.2ЛОЖЬ6.3.2Т.к. NaydenPerv0=ІСТИНА, то переходимо до п. 6.3.2 + .16.3.2 + .1S=S + | M i | 36.3Для i пробігаємо значення від 0 до (N - 1): i=i + 1456.3.1Т.к.M i? 0, то переходимо до п. 6.3.2ЛОЖЬ6.3.2Т.к. NaydenPerv0=ІСТИНА, то переходимо до п. 6.3.2 + .16.3.2 + .1S=S + | M i | 86.3Для i пробігаємо значення від 0 до (N - 1): i=i + 1. Так як i перейшло за межу діапазону, тобто i? N, то завершуємо цикл і переходимо до п. 5.36.4Возвращаем значення змінної S
Аналогічно тут же потрібно привести трасувальні таблицю функцій PreobrazovanieMassiva (M, N).
трасувальні таблиця для програми Main з вихідними даними N=5 і M={1,2,0, - 3,5}:
Номер шагаОпісаніе кроку алгорітмаNN? 0MMinPoModulu Element (M, N) SumPosle Pervogo0 (M, N) 1N=002Пока (N lt;=0) виконуємо п.2.1ІСТІНА2.1Вводім N53Визов функції ZapolnenieMassiva (M, N) {1,2,0, - 3,5} 4Визов функції PechatMassiva (M, N) 5Визов функції MinPoModuluElement (M, N) і висновок результату цієї функціі06Визов функції SumPoslePervogo0 (M, N) і висновок результату цієї функціі87Визов функції PreobrazovanieMassiva (M, N)