добрый вечер всем) как решить эту задачу? Даны координаты точек х1, y1, x2, y2,...,x20,y20 и уравнение прямой y=ax+b; b=-2.1; a=1.34. Сформировать и вывести на печать массив С, состоящий из ординат точек, принадлежащих этой прямой, и определить их количество.
добрый вечер всем) как решить эту задачу? Даны координаты точек х1, y1, x2, y2,...,x20,y20 и уравнение прямой y=ax+b; b=-2.1; a=1.34. Сформировать и вывести на печать массив С, состоящий из ординат точек, принадлежащих этой прямой, и определить их количество.andreyboluk
Взять массив, составить уравнение и проверить истинно ли оно при значениях взятых из массива, если истина, то добавить в массив С ординату, и потом вывести на печать (это устаревшее понятие, но пусть останется) этот массив и его размер, или сразу выводить значение на печать прибавляя 1 к счетчику, который также вывести на печать после всего цикла.
Взять массив, составить уравнение и проверить истинно ли оно при значениях взятых из массива, если истина, то добавить в массив С ординату, и потом вывести на печать (это устаревшее понятие, но пусть останется) этот массив и его размер, или сразу выводить значение на печать прибавляя 1 к счетчику, который также вывести на печать после всего цикла.
Sub Example() Dim A, B Dim x, y ' координаты Dim i, k, s() Dim c() As Integer ' массив с координатами Dim xx As Single ' уравнение B = -3 A = 2 ReDim c(1 To 3, 1 To 2) '- можно сразу объявить размерность массива
For i = 1 To 3 x = Val(InputBox(" Введіть число x")) y = Val(InputBox(" Введіть число y")) c(i, 1) = x c(i, 2) = y Next i
k = 1 For i = LBound(c) To UBound(c) xx = A * c(i, 1) + B If xx = c(i, 2) Then ReDim Preserve s(1 To k) s(k) = "Точка с координатами: " & "(" & c(i, 1) & ";" & c(i, 2) & ")" & _ " принадлежит данной функции" k = k + 1 End If Next i Cells(1, 1).Resize(UBound(s), 1) = Application.Transpose(s) Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = "Количество точек, принадлежащих функции:" Cells(Rows.Count, 1).End(xlUp).Offset(0, 1) = UBound(s) End Sub
[/vba]
andreyboluk, вот например, с выгрузкой на лист:
[vba]
Код
Sub Example() Dim A, B Dim x, y ' координаты Dim i, k, s() Dim c() As Integer ' массив с координатами Dim xx As Single ' уравнение B = -3 A = 2 ReDim c(1 To 3, 1 To 2) '- можно сразу объявить размерность массива
For i = 1 To 3 x = Val(InputBox(" Введіть число x")) y = Val(InputBox(" Введіть число y")) c(i, 1) = x c(i, 2) = y Next i
k = 1 For i = LBound(c) To UBound(c) xx = A * c(i, 1) + B If xx = c(i, 2) Then ReDim Preserve s(1 To k) s(k) = "Точка с координатами: " & "(" & c(i, 1) & ";" & c(i, 2) & ")" & _ " принадлежит данной функции" k = k + 1 End If Next i Cells(1, 1).Resize(UBound(s), 1) = Application.Transpose(s) Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = "Количество точек, принадлежащих функции:" Cells(Rows.Count, 1).End(xlUp).Offset(0, 1) = UBound(s) End Sub