циклы или массив

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
tatarin
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 21.09.2005 (Ср) 12:30
Откуда: Russia

циклы или массив

Сообщение tatarin » 01.12.2005 (Чт) 16:48

люди добрые1 помогите плиз!
как правильно записать цикл в цикле, а точнее в 1-ом цикле записать 2-й, во 2-ом - 3-й и т. д. или это можно сделать массивом?

прошу прощения за глупый вопрос :oops:
хочется ведь как - и того и другого и можно без хлеба!

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 01.12.2005 (Чт) 17:05

for i = 0 to 10
for y = 0 to 10
for z = 0 to 10
...
next
next
next
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 01.12.2005 (Чт) 23:01

М.б. человеку нужна была рекурсия? Я, помниться писал когда-то редкостное извращение по данному поводу с использованием массива индексов.
Листинги не горят!

tatarin
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 21.09.2005 (Ср) 12:30
Откуда: Russia

Сообщение tatarin » 02.12.2005 (Пт) 11:55

значит так, привожу пример расчета для одной точки:

Исходные данные
a0 = 55
a1 = 40
b0 = 100
beta0 = 60
beta1 = 65
alfa = 95 (этот угол должен изменяться в диапазоне от 0 до величины введенной в текстбоксе - в данном случае от 0 до 95

градусов)
_______________________
Xp0 = 0
Yp0 = 0
Zp0 = 0.0001
Xp1 = 0
Yp1 = (-(a0))
Zp1 = 0
Xp3 = (-(b0 * Sin((Pi * beta0) / 180)))
Yp3 = (b0 * Sin(((beta0 - beta1) * Pi) / 180)) / (Sin((Pi * beta1) / 180)) + b0 * Cos((Pi * beta0) / 180)
Zp3 = 0
Xp5 = 0
Yp5 = a1
Zp5 = 0
_________________________________
X0 = 0
Y0 = 0
Z0 = 0
X1 = 0
Y1 = -(a0 * Sin((Pi * alfa) / 360))
Z1 = -(a0 * Cos((Pi * alfa) / 360))
X5 = 0
Y5 = a1 * Sin((Pi * alfa) / 360)
Z5 = -(a1 * Cos((Pi * alfa) / 360))
__________________________________
R00 = 0
R01 = ((Xp1 - Xp0) ^ 2 + (Yp1 - Yp0) ^ 2 + (Zp1 - Zp0) ^ 2) ^ 0.5
R03 = Sqr((Xp3 - Xp0) ^ 2 + (Yp3 - Yp0) ^ 2 + (Zp3 - Zp0) ^ 2)
R05 = Sqr(Abs((Xp5 - Xp0) ^ 2 + (Yp5 - Yp0) ^ 2 + (Zp5 - Zp0) ^ 2))
R13 = Sqr(Abs((Xp3 - Xp1) ^ 2 + (Yp3 - Yp1) ^ 2 + (Zp3 - Zp1) ^ 2))
R53 = Sqr((Xp5 - Xp3) ^ 2 + (Yp5 - Yp3) ^ 2 + (Zp5 - Zp3) ^ 2)
________________________________
k3 = ((Y1 - Y0) * (Z1 - Z5)) - ((Y1 - Y5) * (Z1 - Z0))
A3 = -(((Y1 - Y5) * (R01 ^ 2 - R00 ^ 2 - R13 ^ 2 + R03 ^ 2) - (Y1 - Y0) * _
(R01 ^ 2 - R05 ^ 2 - R13 ^ 2 + R53 ^ 2))) / (2 * k3)
B3 = ((X1 - X5) * (Y1 - Y0) - (X1 - X0) * (Y1 - Y5)) / k3
C3 = ((Z1 - Z5) * (R01 ^ 2 - R00 ^ 2 - R13 ^ 2 + R03 ^ 2) - (Z1 - Z0) * (R01 ^ 2 - R05 ^ 2 - R13 ^ 2 _
+ R53 ^ 2)) / (2 * k3)
D3 = ((Z1 - Z0) * ((X1 - X5) * (Y1 - Y0) - (X1 - X0) * (Y1 - Y5))) / _
((Y1 - Y0) * k3) + ((X1 - X0) / (Y1 - Y0))
m3 = 1 + D3 ^ 2 + B3 ^ 2

X3 = ((2 * (X1 - D3 * Y1 + C3 * D3 - A3 * B3 + B3 * Z1) - (Sqr(4 * (D3 * Y1 - X1 - C3 * D3 + A3 * B3 - _
B3 * Z1) ^ 2 - 4 * m3 * (R01 ^ 2 - R13 ^ 2 + C3 ^ 2 + A3 ^ 2 - 2 * C3 * Y1 - 2 * A3 * Z1))))) / (2 * m3)

Y3 = C3 - D3 * X3

Z3 = A3 + B3 * X3

здесь координаты с индексом р - координаты на плоскости
координаты без индекса р - координаты в пространстве (в текущем положении)
величины R - радиус-векторы
A,B,C,D,k,m - коэффициенты
хочется ведь как - и того и другого и можно без хлеба!

beat_swamp
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 107
Зарегистрирован: 05.10.2005 (Ср) 16:16

Сообщение beat_swamp » 02.12.2005 (Пт) 14:56

ох неслабо1 +) ща попробую разобраться и код написать1 +)

beat_swamp
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 107
Зарегистрирован: 05.10.2005 (Ср) 16:16

Сообщение beat_swamp » 02.12.2005 (Пт) 14:58

я передумал1 +))

tatarin
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 21.09.2005 (Ср) 12:30
Откуда: Russia

Сообщение tatarin » 02.12.2005 (Пт) 15:02

жаль... :cry:
хочется ведь как - и того и другого и можно без хлеба!

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 03.12.2005 (Сб) 19:01

beat_swamp писал(а):я передумал1 +))

Если клавиша "1" на клавиатуре западает, её пора менять.... :)
Если всё делать своими ручками, они скоро отвалятся !

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 03.12.2005 (Сб) 19:43

[offtop]
Kovu
Это восклицательный знак, ты просто не узнаешь его )
[/offtop]

А вообще что прога должна делать? (словами) А то в этих обозначениях разбираться действительно не охота.

A,B,C,D,k,m - коэффициенты

Информации почти не несет, что такое углы alpha и betta тоже не ясно...

tatarin
Новичок
Новичок
Аватара пользователя
 
Сообщения: 48
Зарегистрирован: 21.09.2005 (Ср) 12:30
Откуда: Russia

Сообщение tatarin » 04.12.2005 (Вс) 19:03

алгоритм решения для нахождения координат реберных точек 4-х лучевой складчатой структуры.
определяет текущее положение любой реберной точки в пространстве.
a0, a1, b0 длины ребер
beta0, beta1 углы наклона b0 относительно а0 и а1
alfa - угол трансформирования от 0 до определенного значения, т.е. из плоского состояния в сложенную структуру
все это нужно для определения траектории движения точки в пространстве и соответственно - для рисования этой траектории на графике.
хочется ведь как - и того и другого и можно без хлеба!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 180

    TopList