Здравствуйте! Помогите, пожалуйста, написать на паскале этот код, очень нужно:
Код:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<fstream.h>
#include<vector.h>
char mass1[1000]; int coutmass;
int mass(int a,char w[])
{ cout<<endl;
coutmass=0;
while(1)
{while ((int)w[a]!=10)
{mass1[coutmass]=w[a];
cout<<mass1[coutmass];
coutmass++;
a++;
}
mass1[coutmass]=w[a];
cout<<endl;
break;
} return(a+1);
}
int Q1(int a, int a1)
{int q=0;
if (a==1)
{if(a1=='R')
{q=8;
}
else
{q=4;
}
}
else
{ if (a==8)
{if(a1=='R')
{q=2; }
else
{q=1; }
}
else
{if (a==2)
{ if(a1=='R')
{q=4;}
else
{q=8;}
}
else
{if(a1=='R')
{q=1;}
else
{q=2;}
}
}
}
return q;
}
main()
{
int i,e=0,q,glob1=2,a=2,cs=1;
char ww,w[1000];
ofstream ff;
ifstream fi("H:\\1.txt");
for (i=0;i<1000;++i)
{fi.get(ww);
w[i]=ww;
if (!fi.eof())
{cout<<w[i];
e++; }
else
{break; }
}
fi.close();
q=w[0]-'0';
ff.open("H:\\2.txt",ios::trunc);
ff.close();
while(q!=0)
{glob1=mass(glob1,w);
int number=0;
int number1=0,r[1000],t[1000],y=0,u,s,o=0,d=0;
s=1,u=0;
while ((int)mass1[number]!=32)
{number++;}
while ((int)mass1[number1]!=10)
{number1++;}
for (i=0;i<number-1;i++)
{switch(mass1[i])
{case('W'):
if (a==2)
{y=y+1;
r[u]=y;
u++;
break;}
else
{if (a==1)
{y=y-1;
r[u]=y;
u++;
break;}
else
{if(a==4)
{o=o-1;
t[s]=o;
s++;
break;}
else
{o=o+1;
t[s]=o;
s++;
break;}
}
}
case('R'):
a=Q1(a,mass1[i]);
break;
case('L'):
a=Q1(a,mass1[i]);
break;}
}
if (a==2)
{a=1;}
else
{if (a==4)
{a=8;}
else
{if (a==1)
{a=2;}
else
{a=4;}
}
}
for (i=number+2;i<number1-1;i++)
{switch(mass1[i])
{case('W'):
if (a==2)
{y=y+1;
r[u]=y;
u++;
break;}
else
{if (a==1)
{y=y-1;
r[u]=y;
u++;
break;}
else
{if(a==4)
{o=o-1;
t[s]=o;
s++;
break;}
else
{o=o+1;
t[s]=o;
s++;
break;}
}
}
break;
case('R'):
a=Q1(a,mass1[i]);
break;
case('L'):
a=Q1(a,mass1[i]);
break;}
}
int enter=0,maxu=-30000,minf=30000,maxf=-30000,rezf=1;
for (i=0;i<u;i++)
{if (maxu<r[i])
{maxu=r[i]; }
}
for (int i=0;i<1;i++)
t[i]=0;
for (i=0;i<s;i++)
{if (minf>t[i])
{minf=t[i];}
}
for (i=0;i<s;i++)
{if (maxf<t[i])
{maxf=t[i];}
}
enter=enter-minf;
rezf=(rezf+maxf)-minf;
int n=maxu;
int m=rezf;
int matr[100][200];
char matr1[100][200];
char Z[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
for (int i = 0; i < 100; i++ )
{for ( int j = 0; j < 200; j++ )
{matr[i][j] = 0;}
}
int nn=0;
int mm=enter;
matr[0][enter]=1;
a=2;
for (int z=1;z<number-1;z++)
{switch(mass1[z])
{case('W'):
if (a==2)
{ matr[nn][mm]=matr[nn][mm]|2;
nn++;//cout<<nn<<" ";
matr[nn][mm]=matr[nn][mm]|1;
break;}
else
{if (a==1)
{ matr[nn][mm]=matr[nn][mm]|1;
nn--;
matr[nn][mm]=matr[nn][mm]|2;
break;}
else
{if(a==4)
{matr[nn][mm]=matr[nn][mm]|4;
mm--;
matr[nn][mm]=matr[nn][mm]|8;
break;}
else
{matr[nn][mm]=matr[nn][mm]|8;
mm++;
matr[nn][mm]=matr[nn][mm]|4;
break;}
}
}
case('R'):
a=Q1(a,mass1[z]);
break;
case('L'):
a=Q1(a,mass1[z]);
break;}
}
matr[nn][mm]=matr[nn][mm]|a;
if (a==2)
{a=1;}
else
{if (a==4)
{а=8;}
else
{if (a==1)
{a=2;}
else
{a=4;}
}
}
for (int z=number+2;z<number1-1;z++)
{switch(mass1[z])
{case('W'):
if (a==2)
{ matr[nn][mm]=matr[nn][mm]|2;
nn++;
matr[nn][mm]=matr[nn][mm]|1;
break;}
else
{if (a==1)
{ matr[nn][mm]=matr[nn][mm]|1;
nn--;
matr[nn][mm]=matr[nn][mm]|2;
break;}
else
{if(a==4)
{matr[nn][mm]=matr[nn][mm]|4;
mm--;
matr[nn][mm]=matr[nn][mm]|8;
break;}
else
{matr[nn][mm]=matr[nn][mm]|8;
mm++;
matr[nn][mm]=matr[nn][mm]|4;
break;}
}
}
break;
case('R'):
a=Q1(a,mass1[z]);
break;
case('L'):
a=Q1(a,mass1[z]);
break;}
}
cout<<"\n";
for (int i = 0; i < n; i++ )
{for ( int j = 0; j < m; j++ )
{matr1[i][j] = Z[matr[i][j]];
cout<<matr1[i][j]<<" "; }
cout<<endl;}
ff.open("H:\\2.txt",ios::app);
{ff<<"Case#"<<cs<<":\n";
for (int i = 0; i < n; i++ )
{
for ( int j = 0; j < m; j++ )
{ff<<matr1[i][j]<<" "; }
ff<<"\n";}
}
ff.close();
q--;
cs++;
a=2;
getch();}
getch();
}