Решение задач в Excel на VBA. Применение программных средств в проектировании автомобильных конструкций. Калядин В.И. - 38 стр.

UptoLike

Составители: 

38
Sub Rose() ' Решение примера 3.2.
Const N As Long = 36 ' Число точек на кривой.
Const pi As Single = 3.1415927
i = 1 ' Номер строки для выводимых координат.
For a = 60 To 0 Step -20 ' Цикл по параметру a
Cells(i, 3) = a ' Запись в ячейку Excel значения параметра.
For fi = 0 To 2 * pi + pi / N / 2 Step pi / N ' Цикл по углу fi
r = Abs(20 + a * Abs(Cos(fi) ^ 2 - Sin(fi) ^ 2))
x = r * Cos(fi): Cells(i, 1) = x ' Запись в ячейки Excel
y = r * Sin(fi): Cells(i, 2) = y ' x и y – координат.
i = i + 1 ' Номер следующей строки для вывода координат.
Next fi
i = i + 1 ' Для пропуска строки после вывода координат кривой
Next a
Call GR("A1:B" & i - 2) ' Обращение к процедуре построения ТД
End Sub ' с передачей в неѐ диапазона ячеек "A1:B295".
Sub GR(rng As String) ' Построение Точечной Диаграммы (ТД).
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range(rng)
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers ' Тип ТД.
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range(rng)
End Sub
Рис. 3.2. Результат решения примера 3.2
Sub Rose()                      ' Решение примера 3.2.
Const N As Long = 36                          ' Число точек на кривой.
Const pi As Single = 3.1415927
i=1                       ' Номер строки для выводимых координат.
For a = 60 To 0 Step -20                ' Цикл по параметру a
 Cells(i, 3) = a          ' Запись в ячейку Excel значения параметра.
  For fi = 0 To 2 * pi + pi / N / 2 Step pi / N   ' Цикл по углу fi
    r = Abs(20 + a * Abs(Cos(fi) ^ 2 - Sin(fi) ^ 2))
    x = r * Cos(fi): Cells(i, 1) = x              ' Запись в ячейки Excel
    y = r * Sin(fi): Cells(i, 2) = y              ' x и y – координат.
  i=i+1            ' Номер следующей строки для вывода координат.
 Next fi
 i=i+1       ' Для пропуска строки после вывода координат кривой
 Next a
 Call GR("A1:B" & i - 2)                ' Обращение к процедуре построения ТД
End Sub                                 ' с передачей в неѐ диапазона ячеек "A1:B295".
Sub GR(rng As String)                   ' Построение Точечной Диаграммы (ТД).
  ActiveSheet.Shapes.AddChart.Select
  ActiveChart.SetSourceData Source:=Range(rng)
  ActiveChart.ChartType = xlXYScatterSmoothNoMarkers                        ' Тип ТД.
  ActiveChart.PlotArea.Select
  ActiveChart.SetSourceData Source:=Range(rng)
End Sub




                                            38
                                       Рис. 3.2. Результат решения примера 3.2