K = K + 1
End If
Next i
'Вывод суммы
If S=0 Then
MsgBox "чисел, принадлежащих(" & a & ", " & b & "] Нет",, _
"Вывод сообщения"
Else
MsgBox "сумма чисел, принадлежащих (" & a & "," & b & ") = " & _
S,, "Вывод суммы"
End If
'Вывод произведения
If K = 0 Then
MsgBox "чисел >0 на чётных местах нет",, "Вывод сообщения"
Else
MsgBox "Произведение чисел >0 на чётных местах =" & P _
& Chr(13) & " их количество = " & K,, "Вывод произведения"
End If
4. Составляем тесты для проверки правильности работы программы.
При тестировании программы нужно рассмотреть все возможные случаи, которые могут возникнуть для разных исходных данных.
а) При вычислении суммы:
· все числа массива Î(a,b];
· все числа массива Ï(a,b];
· часть чисел Î(a,b], а часть – нет.
б) При вычислении произведения:
· все числа, стоящие на четных местах >0;
· на четных местах нет чисел >0;
· на четных местах часть чисел >0, а часть нет.
Указанные ситуации можно создать, подбирая соответствующим образом числа массива и (или), изменяя значения a и b.
Тест№1.
N=6 a=0 b=10
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
1 |
4 |
5 |
2 |
7 |
3 |
Ожидаемые результаты: S=22 P=24 K=3.
Тест№2.
N=6 a=8 b=10
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
1 |
-2 |
3 |
-4 |
7 |
-6 |
Ожидаемые результаты: чисел Î(8,10] нет, чисел >0 на четных местах – нет.
Тест№3.
N=6 a=3 b=6
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
4 |
3 |
5 |
-4 |
6 |
5 |
Ожидаемые результаты: S=20 P=15 K=2.
Задача. Найти максимальный элемент массива X и поменять его местами с предыдущим.
Обозначим:
· максимальное значение – max,
· номер максимального элемента - n_max,
тогда номер предыдущего элемента будет - n_max-1.
1. Составляем фрагмент схемы алгоритма (рис.3.5.).
2. Составляем таблицу соответствия переменных
В схеме |
В программе |
Тип |
Комментарий |
массив x |
x |
Single |
Исходное данное |
max |
max |
Single |
Результат |
n_max |
n_max |
Integer |
Результат |
N |
N |
Integer |
Исходное данное |
i |
i |
Integer |
Вспомогательная переменная |
3. Составляем фрагмент программы
……………………………….
Cells(1, 1) = "Исходный массив"
For i = 1 To N
Cells(2, i) = x(i)
Next i
max = x(1)
n_max = 1
For i = 2 To N
If x(i) > max Then
max = x(i)
n_max = i
End If
Next i
'Перестановка
If n_max = 1 Then
MsgBox "Перестановки невозможна",, "Сообщение"
Else
R = x(n_max)
x(n_max) = x(n_max - 1)
x(n_max - 1) = R
End If
Cells(3, 1) = "Результирующий массив"
For i = 1 To N
Cells(4, i) = x(i)
Next i
…………………………………………….
Рис.3.5. Схема алгоритма примера 3.5.
4. Составляем тесты для отладки программы
Тест №1. Максимальный элемент стоит на произвольном месте
N=4 Исходный массив:
X1 |
X2 |
X3 |
X4 |
-7 |
8 |
12 |
4 |
Ожидаемые результаты:
max=12 n_max=3 Результирующий массив:
X1 |
X2 |
X3 |
X4 |
-7 |
8 |
12 |
4 |
Тест №2. Максимальный элемент стоит первым
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.