Программный элемент поиск / 4
.docxПостановка задачи
1. Найти наименьший из положительных элементов одномерного массива S размерности k.
2. Найти и напечатать первые положительные элементы строк матрицы А размерности m×k.
Задание №1.
1. Словесное описание:
Найти наименьший из положительных элементов одномерного массива S размерности k.
Входные данные: k – целого типа; {S} – вещественного типа;
Выходные данные: Smin – вещественного типа;
2. Математическое описание: Если Si>0, то min=i где 1 ≤ i ≤ k с шагом 1. Если 0<Si<Smin, то min=i, где 1 ≤ i ≤ k с шагом 1.
3. Разработка алгоритма
4. Код приложения
Private Sub Command1_Click()
Dim i As Integer, k As Integer, S() As Single, min As Integer, F As Boolean
k = InputBox("k=")
ReDim S(1 To k)
Print "{S}="
For i = 1 To k
S(i) = InputBox("S(" & i & ")=")
Print S(i) & " ";
Next
For i = 1 To k
If S(i) > 0 Then
min = i
F = True
End If
Next
If F = False Then
Print "Все эл. <0"
Else
For i = 1 To k
If S(i) > 0 And S(i) < S(min) Then
min = i
End If
Next
Print "Наименьший положительный эл.: S(" & min & ")=" & S(min)
End If
End Sub
5. Отладка кода приложения:
Ручной счет: Из чисел -3; 2; 0; 1; 9 наименьшим положительным числом является 1.
Задание №2.
1. Словесное описание:
Найти и напечатать первые положительные элементы строк матрицы А размерности m×k.
Входные данные: {A} – вещественного типа; m, k – целого типа;
Выходные данные: i, j – целого типа;
2. Математическое описание: Если Aij>0, то напечатать i и j и перейти к следующей строке, где 1 ≤ i ≤ m с шагом 1; 1 ≤ j ≤ k с шагом 1.
3. Разработка алгоритма
4. Код приложения Private Sub Command1_Click() Dim i As Integer, m As Integer, j As Integer, k As Integer, A() As Single, Flag As Boolean m = InputBox("m=") k = InputBox("k=") ReDim A(1 To m, 1 To k) Print "{A}=" For i = 1 To m For j = 1 To k A(i, j) = InputBox("A(" & i & ", " & j & ")=") Print A(i, j), Next Print Next Print "Индексы первых положительных эл. в каждой строке:" i = 1 Do While i <= m Flag = False j = 1 Do While j <= k If A(i, j) > 0 Then Print "A(" & i & ", " & j & ")=" & A(i, j) Flag = True j=k End If j = j + 1 Loop If Flag = False Then Print "В " & i & " строке все эл. <0" End If i = i + 1 Loop End Sub
5. Отладка кода приложения:
Ручной счет: Из чисел -1; 0; 1 первое положительное: 1; Из чисел 1; 2; 3 первое положительное: 1; Из чисел 0; -1; 9 положительных нет; Из чисел -3; 1; 2 первое положительное: 1.