![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
-Александр- |
![]()
Сообщение
#1
|
Гость ![]() |
Возможно ли сделать так, чтобы в TP7 не было ограничений по количеству переменных?
P.S.Написал программу по моделированию движения тел под действие гравитационных сил, а максимум тел которые могу рассматривать всего лишь 140, а очень хочеться больше. |
![]() ![]() |
andriano |
![]()
Сообщение
#2
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Чтобы не было никаких ограничений, сделать, естественно, невозможно в принципе. Но в разных случаях ограничения могут быть различными. Для твоих структур примерно так:
16-разрядный сегмент данных в реальном режиме - 140, 16-разрядный режим с динамической памятью - 1000, 16-разрядный защищенный режим - 30000, 32-разрядный режим при памяти 1 Гбайт - 2000000, Вообще же, ты бы привел структуру данных, которой описываешь объект. Пол-килобайта навскидку кажется многовато для одного объекта. |
Гость |
![]()
Сообщение
#3
|
Гость ![]() |
Вообще же, ты бы привел структуру данных, которой описываешь объект. Пол-килобайта навскидку кажется многовато для одного объекта. У меня в программе 3 графических модуля. Вот их нее верхушки с переменными: const Nn1=10; dim1=3; N1=Dim1*2*Nn1; NPR=1; G_grav=6.67E-11; var Yu,Y,D,YG:array [1..2*N1] of extended; TPR:array [1..NPR] of extended; M,R:array [1..Nn1] of extended; i,ii,j,Pn1,hi,hi1,dn,n0,pp,pp1,PN,PH,BB,C,CLR,Nn,N05,dim,N:longint; Hour,Minute,Second,Sec100:word; sec:array [1..4] of extended; Sm,Sm1,T,EPS,EPS1,H,P,Rr,U,Ek,E0,YY,RT0,RT,TR,t1,wd,dat,data,EUK,Xt,Yt,W:extende d; ch:char; var Gd,Gm,Mx,My:integer; Xpl,Ypl,D,N,C:longint; Xkp,Ykp,Xkp0,Ykp0,Xp,Yp,Xc,Yc:extended; Wxx,Wyy,Wx,Wy:array [1..2] of extended; Xmax,Ymax,Xmin,Ymin:array [1..3] of extended; Px,Py:array [1..2] of longint; AT,AT0:string; const Nn=300; dimm=4; Ntt=2; var X,Y:array [1..Nn,1..dimm,1..Ntt] of extended; Nc,Nt,Nt1:array [1..dimm,1..Ntt] of longint; Dim,N,dtl,ij,J,T:longint; AT0,AT1:string; Ymax,Ymin,Xmax,Xmin,Wy,Wx,Wxx,Wyy,Xc,Yc:array [1..Ntt] of extended; Xp,Yp:extended; D,I:longint; AT:string; Вообще программа не просто моделирует систему из N тел, она расчитана для нахождения наилучшего времени для того чтобы сбить астероид движущийся к Земле(естественно астероид выдуманный ![]() ![]() Немного о переменных, наверное все знают что для того чтобы описать движение N под действием гравитационных полей друг друга надо решить систему состоящую из 2*N дифференциальных уравнений, при этом можно воспользоваться разными методами численного интегрирования(Гира, Рунг- Кутт 1-4). Переменные которые служат для реализация Ронге Кутта 4 порядка: const Nn=140; Количество тел dim=3; Количество измерений(X,Y,Z) N=Dim*2*Nn; Колличество дифференциальных уравнений N05=Dim*Nn; NPR=10; var Y,D,YG:array [1..N] of extended; TPR:array [1..NPR] of extended; I,K1,NP:Longint; T0,TT,TP,H1,H02,H03,H06,EPSM,X,Z,SIGMA,EPSZ,YI:extended; Y0,D0,D02,D02X:array [1..N] of extended; KH:boolean; переменные для того чтобы описать тело R[1..Nn]; M[1..Nn]; Скажу так если работать в программе без каково то не было графического интерфейса то количесво тел которые можно с моделировать равно 250. И вот еще ты пишеш про динамическую память, как ее можно активировать в TP7, Если я не ошибаюсь, то какую то память можно меня через глобальную директиву {$M}, это то или не то? |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 8:54 |