Sub aaa() Rows.Clear Dim n As Integer, k As Integer, i As Integer n = CInt(InputBox("n=")) k = 2 * n - 1 ReDim y(1 To k) As Integer Randomize Timer For i = 1 To k y(i) = Int(Rnd * 100 - 50) Next i Dim ry As Range Set ry = Range(Cells(2, 2), Cells(2, k + 1)) ry = y ReDim x(1 To n) As Integer Dim rx As Range Set rx = Range(Cells(3, 2), Cells(3, n + 1)) For i = 1 To n x(i) = y(2 * i - 1) ^ 2 Next i rx = x Cells(2, 1) = "y" Cells(3, 1) = "x" Set ry = Range(Cells(2, 1), Cells(2, k + 1)) Set rx = Range(Cells(3, 1), Cells(3, n + 1)) End Sub
Здесь смешанный язык - алгоритмический. Разберем по строкам 1. алг - говорит что будет цикл (в Паскале for) 2. нач - слишком очевидно, начало 3. цел i,n - значения переменных i и n целые 4. n:=0 - обнуляем n, мало ли в памяти есть какое-то значение для него 5. нц для i от 1 до 13 - начало цикла, который меняется на промежутке [1;13] 6. n:=(n+i)+3 - действие внутри цикла, в данном случае меняем значение n 7. кц 8. вывод n - выводим на экран последнее значение n 9. кон
Как это выглядит на Паскаль: Var i, n: integer; Begin n := 0; for i:= 1 to 13 do n:=n+i+3; write('n = ',n); end.
Эта программа выведет на экран 130 можно посчитать вручную i=1, n = n+i+3 = 0+1+3= 4 i=2, n = n+i+3 = 4+2+3= 9 и т.д. до i = 13.
Rows.Clear
Dim n As Integer, k As Integer, i As Integer
n = CInt(InputBox("n="))
k = 2 * n - 1
ReDim y(1 To k) As Integer
Randomize Timer
For i = 1 To k
y(i) = Int(Rnd * 100 - 50)
Next i
Dim ry As Range
Set ry = Range(Cells(2, 2), Cells(2, k + 1))
ry = y
ReDim x(1 To n) As Integer
Dim rx As Range
Set rx = Range(Cells(3, 2), Cells(3, n + 1))
For i = 1 To n
x(i) = y(2 * i - 1) ^ 2
Next i
rx = x
Cells(2, 1) = "y"
Cells(3, 1) = "x"
Set ry = Range(Cells(2, 1), Cells(2, k + 1))
Set rx = Range(Cells(3, 1), Cells(3, n + 1))
End Sub
Разберем по строкам
1. алг - говорит что будет цикл (в Паскале for)
2. нач - слишком очевидно, начало
3. цел i,n - значения переменных i и n целые
4. n:=0 - обнуляем n, мало ли в памяти есть какое-то значение для него
5. нц для i от 1 до 13 - начало цикла, который меняется на промежутке [1;13]
6. n:=(n+i)+3 - действие внутри цикла, в данном случае меняем значение n
7. кц
8. вывод n - выводим на экран последнее значение n
9. кон
Как это выглядит на Паскаль:
Var i, n: integer;
Begin
n := 0;
for i:= 1 to 13 do
n:=n+i+3;
write('n = ',n);
end.
Эта программа выведет на экран 130
можно посчитать вручную
i=1, n = n+i+3 = 0+1+3= 4
i=2, n = n+i+3 = 4+2+3= 9
и т.д. до i = 13.