Вывод динамического массива

  • Автор темы Kirsan
  • Дата начала
K

Kirsan

#1
VB 6.0

Нужно вывести на форму динамический массив, размерность которого указывается уже при запуске программы пользователем (ограничение = размерность нечётная). В си это сделать проще, а в Бейсике потерялся

Кода нету, т.к. я не знаю просто какой компонент и как использовать, а остальная часть проги работает. Могу выложить аналог проги на Си

Цель задачи - мониторинг процесса заражения со следующими условиями. Рассматривается участок *кожи* NxN (n-нечётное). Центральная клетка заражена вирусом. Каждый отрезок времени она с 50% вероятностью заражает соседнюю клетку, если клетка заражена уже 6 периодов времени, то она вырабатывает иммунитет на 4 следующих хода, а потом становится снова просто здоровой.


#include <iostream.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>


main()
{
srand(time(0));

double** a;
int** b;
int i;
int j;
int z;
int x;
int y;
int m=1;
int n;


cout << "vvedite n\n";

cin >> n;
a = new double* [n];
b = new int* [n];
for( i = 0; i < n; i++)
{ b=new int [n];
a = new double [n];
}

//ввод массива
for( i=0;i<n;++i)
{for( j=0;j<n;++j)
{
a[j]=0;
if (i==(n-1)/2) if (j==(n-1)/2) a[j]=1;


}
}

for( i=0;i<n;++i)
{for( j=0;j<n;++j)
{ b[j]=0;
}
}

//Вывод
cout<<"ishodna9 matrica\n";
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<a[j]<<" ";
}
cout<<endl;
}

do
{
x=0;
y=0;
z=0;


for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
int l1=rand() % 2;
int l2=rand() % 2;
int l3=rand() % 2;
int l4=rand() % 2;
int l5=rand() % 2;
int l6=rand() % 2;
int l7=rand() % 2;
int l8=rand() % 2;
if (a[j]==1)
{
{
if (i-1>=0 && i-1<n && j-1>=0 && j-1<n && a[i-1][j-1]==0 && l1>0)
a[i-1][j-1]=3;
}
{
if (i>=0 && i<n && j-1>=0 && j-1<n && a[j-1]==0 && l2>0)
a[j-1]=3;
}
{
if (i+1>=0 && i+1<n && j-1>=0 && j-1<n && a[i+1][j-1]==0 && l3>0)
a[i+1][j-1]=3;
}
{
if (i-1>=0 && i-1<n && j>=0 && j<n && a[i-1][j]==0 && l4>0)
a[i-1][j]=3;
}
{
if (i+1>=0 && i+1<n && j>=0 && j<n && a[i+1][j]==0 && l5>0)
a[i+1][j]=3;
}
{
if (i-1>=0 && i-1<n && j+1>=0 && j+1<n && a[i-1][j+1]==0 && l6>0)
a[i-1][j+1]=3;
}
{
if (i>=0 && i<n && j+1>=0 && j+1<n && a[j+1]==0 && l7>0)
a[j+1]=3;
}
{
if (i+1>=0 && i+1<n && j+1>=0 && j+1<n && a[i+1][j+1]==0 && l8>0)
a[i+1][j+1]=3;
}
}
}
}

for(i=0;i<n;i++)
{
for(int j=0; j<n; j++)
{
if (a[j]==0) x=x+1;
if (a[j]==2 && b[j]<4)
{
b[j]=b[j]+1;
z=z+1;
continue;
}
if (a[j]==2 && b[j]==4)
{
b[j]=0;
a[j]=0;
x=x+1;
continue;
}
if (a[j]==3 && b[j]<6)
{
a[j]=1;
b[j]=b[j]+1;
y=y+1;
continue;
}
if (a[j]==3 && b[j]==6)
{
b[j]=0;
a[j]=2;
z=z+1;
continue;
}


if (a[j]==1 && b[j]<6)
{
b[j]=b[j]+1;
y=y+1;
continue;
}
if (a[j]==1 && b[j]==6)
{
b[j]=0;
a[j]=2;
z=z+1;
continue;
}

}
}
cout<<"massiv"<<endl;

cout<<"ne zarajeno"<< x <<"kletok"<<endl;
cout<<"zarajeno"<< y <<"kletok"<<endl;
cout<<"imunno"<< z <<"kletok"<<endl;


for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<a[j]<<" ";
}
cout<<endl;
}

cout<<"budem prodoljat'? da=1, net=any other"<<endl;
cin>>m;
}while (m==1);

return 0;
}
 

hosm

* so what *
18.05.2009
2 442
6
#2
The ReDim statement is used to size or resize a dynamic array that has already been formally declared using a Private, Public, or Dim statement with empty parentheses (without dimension subscripts). You can use the ReDim statement repeatedly to change the number of elements and dimensions in an array.
 
K

Kirsan

#3
проблема в том, что я не знаю, что надо использовать для вывода на экран, в остальном более менее разобрался, но вот вывод - проблема