Программный элемент поиск / 18
.docxПостановка задачи
1. Определить значение максимального элемента среди значений элементов вектора W размерности q, находящихся в диапазоне [a; b].
2. Напечатать индексы первых элементов строк матрицы P, имеющих нулевые значения.
Задание №1.
1. Словесное описание:
Определить значение максимального элемента среди значений элементов вектора W размерности q, находящихся в диапазоне [a; b].
Входные данные: q – целого типа; a, b, {W} – вещественного типа;
Выходные данные: m – вещественного типа;
2. Математическое описание: m=a Если m≤Wi≤b, то m=Wi, где 1 ≤ i ≤ q с шагом 1.
3. Разработка алгоритма
4. Код приложения
Private Sub Command1_Click()
Dim X As Single, i As Integer, q As Integer, W() As Single, Flag As Boolean, a as Single, b as Single
q = InputBox("Введите размерность W")
ReDim W(1 To q)
Print "{W}="
For i = 1 To q
W(i) = InputBox("W(" & i & ")=")
Print W(i) & " ";
Next
a = InputBox("a=")
b = InputBox("b=")
m = a
i = 1
Do While i <= q
If W(i) >= m And W(i) <= b Then
m = W(i)
Flag = True
End If
i = i + 1
Loop
If Flag = True Then
Print "Наибольшее значение в диапазоне [" & a & "; " & b & "]: " & m
Else
Print "Элементов в диапазоне [" & a & "; " & b & "] нет"
End If
End Sub
5. Отладка кода приложения:
Ручной счет: Из чисел 4; -4; 5; 10; -10; 6; 1; 4; 0; 9 наибольшим принадлежащим диапазону [4; 8] является 6.
Задание №2.
1. Словесное описание:
Напечатать индексы первых элементов строк матрицы P, имеющих нулевые значения.
Входные данные: {P} – вещественного типа; m, n – целого типа;
Выходные данные: i, j – целого типа;
2. Математическое описание: Если Pij=0, то напечатать i и j и перейти к следующей строке, где 1 ≤ i ≤ m с шагом 1; 1 ≤ j ≤ n с шагом 1.
3. Разработка алгоритма
4. Код приложения Private Sub Command1_Click() Dim i As Integer, m As Integer, j As Integer, n As Integer, W() As Single m = InputBox("Введите количество строк") n = InputBox("Введите количество столбцов") ReDim W(1 To m, 1 To n)
Print "{W}="
For i = 1 To m
For j = 1 To n
W(i, j) = InputBox("W(" & i & ", " & j & ")=")
Print W(i, j),
Next
Next
Print "Индексы первых элементов =0 в каждой строке:"
Print "i", "j"
For i = 1 To m
For j = 1 To n
If W(i, j) = 0 Then
Print i, j
Exit For
End If
Next
Next
End Sub
5. Отладка кода приложения:
Ручной счет: В 1 строке первый элемент =0 – W1 3; Вo 2 строке первый элемент =0 – W2 2; В 3 строке нет элементов равных 0; В 4 строке первый элемент =0 – W4 2.