2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Программирование VBA. Вложенный цикл, цикл с разветвлением.
Сообщение19.05.2014, 19:40 
Здравствуйте :)
Застопорилась на теме циклов, а именно вложенного цикла. Прошу помощи в написании программки для следующего задания:
Составить программу вычисления суммы и таблицы значений:
$$z=\left \{ \begin{array}{l} \sqrt(x^3+y^2)\ ,\ если  x^3+y^2>0 \\
x^3+y^2\ ,\ если x^3+y^2<0 \end{array}
\right.
$$
где переменная $x$ изменяется в интервале $-5<x<5$ с шагом $h=0,8$; $y$ принимает значения: 4; 0,1; 9; 5; 998.


Загвоздка как раз таки в составлении таблицы, не знаю как заставить программу мне это грамотно вывести.
Сырая заготовка выглядит так:

Код:
For Each y In Array(4, 0.1, 9, 5, 998)
For x = -5 To 5 Step 0.8
x = Sheets("лист2").Cells(2, 2)
Z = x ^ 3 + y ^ 2
If Z > 0 Then Z = Sqr(Z)
Sheets("лист2").Cells(2, 2) = Z
Next
Next
End Sub


Собственно после выполнения выводит в ячейку (2,2) одно значение $Z$. Как изменить/что добавить, чтобы все оформилось в таблицу для каждого из меняющихся $y$ и $x$?

 
 
 
 Re: Программирование VBA. Вложенный цикл, цикл с разветвлением.
Сообщение19.05.2014, 20:53 
Аватара пользователя
 i  Тема перемещена в Карантин.

1. Запишите формулы в соответствии с требованиями Правил форума, т.е. в $\TeX$.
Краткие инструкции можно найти здесь: topic8355.html и topic183.html.
Кроме этого, в теме Видео-пособия для начинающих форумчан можно посмотреть видео-ролик "Как записывать формулы".

2. Приведите свои попытки решения задач и объясните, что конкретно вызывает затруднения.

После того как исправите сообщение, сообщите об этом в теме Сообщение в карантине исправлено.

 
 
 
 Posted automatically
Сообщение19.05.2014, 23:11 
Аватара пользователя
 i  Тема перемещена из форума «Карантин» в форум «Программирование»

 
 
 
 Re: Программирование VBA. Вложенный цикл, цикл с разветвлением.
Сообщение19.05.2014, 23:29 
Добавьте пару счётчиков - один для столбца и один для строки.
Код:
Dim CellColumn As Integer
CellColumn = 2
For Each y In Array(4, 0.1, 9, 5, 998)

    Dim CellRow As Integer
    CellRow = 2
    For x = -5 To 5 Step 0.8

        x = Sheets("лист2").Cells(2, 2)
        Z = x ^ 3 + y ^ 2
        If Z > 0 Then Z = Sqr(Z)
        Sheets("лист2").Cells(CellRow, CellColumn) = Z

        CellRow = CellRow + 1
    Next

    CellColumn = CellColumn + 1
Next

End Sub

(Не знаю в каком порядке в Cells() нужно передавать строку и столбец - возможно надо поменять).

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group