Основы алгоритмизации и программирования на языке VBA: Практическое пособие к выполнению контрольных работ по курсу «Информатика», страница 8

     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.

3.5.  Циклический алгоритм нахождения максимального элемента массива и его номера

Задача. Найти максимальный элемент массива 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. Максимальный элемент стоит первым