Программный элемент поиск / 19 (2)
.docx«ПРОГРАММНЫЙ ЭЛЕМЕНТ ПОИСК»
Словесное описание задачи:
Найти и напечатать значения и индексы первых K и последних N положительных элементов вектора G8 размерности M. Проанализировать выполнение программы на примере:
K=3; N=4; G8={-1; 3; 10; -8; 7; 0; 1; 20; -4; 6}
1.2 Описание постановки задачи
Состав входных и выходных данных:
Входные данные: K – переменная целого типа, N – переменная целого типа, M – переменная целого типа, {G8} – массив вещественных чисел.
Выходные данные: Fj – индексы положительных элементов, переменная целого типа, – значения положительных элементов, переменная вещественного типа. Lj – индексы положительных элементов, переменная целого типа, – значения положительных элементов, переменная вещественного типа.
Математическое описание задачи:
Если G8i>0, то Fj=i
где i=1, 2, … M; j=1, 2, … K
Если G8i>0, то Lj=i
где i=M, M-1, M-2, …1; j=1, 2, … N
Схема алгоритма решения задачи:
Листинг кода программы:
Private Sub Command1_Click()
Dim G8() As Single, i As Integer, K As Integer, N As Integer, M As Integer, F() As Integer, L() As Integer, j As Integer, Flag As Boolean
K = InputBox("K=")
N = InputBox("N=")
M = InputBox("M=")
ReDim G8(1 To M), F(1 To K), L(1 To N)
Print "G8=";
For i = 1 To M
G8(i) = InputBox("G8(" & i & ")=")
Print G8(i) & " ";
Next
Flag = False
i = 1
j = 1
Do While j <= K
If G8(i) > 0 Then
F(j) = i
Flag = True
j = j + 1
End If
i = i + 1
If i > M Then
K = j - 1
Print "Положительных эл. меньше K! Значение заменено на " & K
Exit Do
End If
Loop
i = M
j = 1
Do While j <= N
If G8(i) > 0 Then
L(j) = i
Flag = True
j = j + 1
End If
i = i - 1
If i = 0 Then
N = j - 1
Print " Положительных эл. меньше N! Значение заменено на " & N
Exit Do
End If
Loop
If Flag = True Then
Print "Первые K положительных элементов:"
For j = 1 To K
Print "G8(" & F(j) & ")=" & G8(F(j))
Next
Print "Последние N положительных элементов:"
For j = 1 To N
Print "G8(" & L(j) & ")=" & G8(L(j))
Next
Else
Print "Положительных элементов нет"
End If
End Sub
1.6 Выполнение проекта:
2.1 Словесное описание задачи:
Определить наибольший элемент K-го столбца матрицы Q размерности N×L.
Для отладки программы значения N, L, K и Q выбрать самостоятельно.
2.2 Описание постановки задачи
Состав входных и выходных данных:
Входные данные: N – переменная целого типа, L – переменная целого типа, K – переменная целого типа, {Q} – массив вещественных чисел.
Выходные данные: m – индекс строки наибольшего элемента в столбце K, переменная целого типа, qm,K – значение наибольшего элемента, переменная вещественного типа.
2.3 Математическое описание задачи:
m=1 Если qi,K>qm,K, то m=i где i=2, 3, 4, … N
2.4 Схема алгоритма решения задачи:
2.5 Листинг кода программы:
Private Sub Command1_Click()
Dim Q() As Single, m As Integer, K As Integer, N As Integer, L As Integer, i As Integer, j As Integer
N = InputBox("N=")
L = InputBox("L=")
ReDim Q(1 To N, 1 To L)
Print "Q="
For i = 1 To N
For j = 1 To L
Q(i, j) = InputBox("Q(" & i & ", " & j & ")=")
Print Q(i, j) & " ";
Next
Next
K = InputBox("K=")
m = 1
For i = 2 To N
If Q(i, K) > Q(m, K) Then
m = i
End If
Next
Print "Наибольший элемент " & K & "-го столбца: Q(" & m & ", " & K & ")="; Q(m, K)
End Sub
2.6 Выполнение проекта: