Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2013, 10:20   #1
Миша!
Пользователь
 
Регистрация: 15.11.2012
Сообщений: 10
Восклицание Написать на паскале

Здравствуйте! Помогите, пожалуйста, написать на паскале этот код, очень нужно:
Код:
#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();
}
Миша! вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу на Паскале. Elvina Помощь студентам 1 22.12.2012 18:33
Написать Калькулятор в паскале CuMnCoH Помощь студентам 2 09.10.2012 22:35
написать задачу на паскале! roman zubanov Помощь студентам 0 06.04.2012 14:39
Написать прогу в паскале Алеся666 Паскаль, Turbo Pascal, PascalABC.NET 2 13.12.2010 08:42