Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Формирование двумерного массива

37K
10 июня 2008 года
sieras_a
9 / / 10.06.2008
Никак неполучается сформировать двумерный массив. Идея такая:
в начале задачи задаются величины:
H= 100;
L=200;
r=0.005;
исхоя из этого расчитывается следующее:
h=r/10;
M=L/h;
N=H/h;

Вот здесь у меня и проблема с формирование двумерного массива:

array[1...M,1...N] of real;

Как выкрутиться? Заранее благодарен.
431
10 июня 2008 года
sherry
207 / / 16.10.2006
Цитата: sieras_a
Никак неполучается сформировать двумерный массив. Идея такая:
в начале задачи задаются величины:
H= 100;
L=200;
r=0.005;
исхоя из этого расчитывается следующее:
h=r/10;
M=L/h;
N=H/h;

Вот здесь у меня и проблема с формирование двумерного массива:

array[1...M,1...N] of real;

Как выкрутиться? Заранее благодарен.



Ну, во-первых, размерность массива есть величина целочисленного типа. А выкрутиться тут можно, к примеру, вот так:

Код:
const
  H= 100;
  L=200;
  r=0.005;
var  
  ms: array [1..10000, 1..10000] of real;
  M,N: integer;
  h: real;
begin
  h:= r/10;
  M:=L div h;
  N:=H div h;
  {далее работаем с массивом ms, учитывая размерность M*N (ну или N*M - как Вам больше понравится)}
end.
37K
11 июня 2008 года
sieras_a
9 / / 10.06.2008
СПАСИБО!!! Да, что размерность массива - величина целочисленного типа, это известно (что в моем случае не может радовать). Но благодаря Вам, надеюсь, задачу как нибуть осилю... СПАСИБО.


P.S. Если я правильно понял, здесь "M" и "N" не ограничиваються 10000?
431
11 июня 2008 года
sherry
207 / / 16.10.2006
Цитата: sieras_a

Если я правильно понял, здесь "M" и "N" не ограничиваються 10000?


Числа M и N ограничиваются размерностью массива ms:
[COLOR="Navy"]ms: array [1..10000, 1..10000] of real;[/COLOR]

37K
11 июня 2008 года
sieras_a
9 / / 10.06.2008
... " V:Array[1..10000, 1..10000] of Real;" выдает ошибку - structure too large.

И еще: величины H, L, r - пороизвольные, т.е. величина массива может быть любая... Как быть???
431
11 июня 2008 года
sherry
207 / / 16.10.2006
Гм.. Даже при данным значениях - размерности 10000*10000 будет маловато. Зачем Вам такой массив?
Это часть какой-то задачи? Поделитесь уж полным условием - может по-другому как-то сделаем..
37K
11 июня 2008 года
sieras_a
9 / / 10.06.2008
Здесь я пытаюсь рассчитать "поле" методом конечных разностей (метод сеток). Здесь L и H - длина и высота поля (x,y). h - шаг по сетке.
В этом поле, в произвольной точке (x,y) задается потенциал (величина). Задача - расчитать распостранение потенциала...

"Извените что так медленно. На клавиатуре нет русских букв..."
17K
11 июня 2008 года
ALEX_
40 / / 19.04.2007
Можно сделать через указатели и динамическое выделение памяти:
Код:
uses crt;
var mas,p:^Real;
m,n,i,j,k:integer;  {array[1..m,1..n]}
begin
M:=10;
N:=10;
k:=1;
Getmem(mas,m*n*sizeof(real));
for i:=1 to m do
for j:=1 to n do
begin
       p:=ptr(seg(mas^),ofs(mas^)+(i-1)*n*SizeOf(real)+j*SizeOf(real));
       p^:=k;
       inc(k);
end;
for i:=1 to m do
begin
writeln;
for j:=1 to n do
begin
       p:=ptr(seg(mas^),ofs(mas^)+(i-1)*n*SizeOf(real)+j*SizeOf(real));
       write(p^:6:1,' ');
end;
end;
readln;
FreeMem(mas,m*n*sizeof(real));
end.
37K
12 июня 2008 года
sieras_a
9 / / 10.06.2008
Спасибо за совет. Обязательно попробую...
37K
15 июня 2008 года
sieras_a
9 / / 10.06.2008
Отлично!!! Вроде работает. Но как сейчас заставить программу считать по формуле:
V[I,J]=0.25*(V[I,J-1]+V[I,J+1]+V[I-1,J]+V[I+1,J]);
Здесь V[I,J] - значение потенциала в точке [I,J].
Второй день бьюсь над этим - неполучается. Помогите и на этот раз. ПОЖАЛУЙСТА!
1.9K
15 июня 2008 года
andriano
474 / / 10.01.2008
Коль скоро речь идет о конечных разностях, то подозреваю, что считать нужно
V1[I,J]=0.25*(V0[I,J-1]+V0[I,J+1]+V0[I-1,J]+V0[I+1,J]);
где V0 и V1 - два разных массива.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог