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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2013, 22:52   #1
kiraone
Новичок
Джуниор
 
Регистрация: 09.06.2013
Сообщений: 4
По умолчанию необходимо перевести код с паскаля на C#

Ребят помогите пожалуйста перевести код с паскаля на с#!
Код:
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var
  n,i,k,dx,dy, m, x1,x2, t:Integer;
  p: array [1..8, 'a'..'h'] of Char;
  j,y1,y2,c:char;
  s:string;
 
procedure swap(var a,b:Char);
var
  t:char;
begin
  t := b;
  b := a;
  a := t;
end;
 
procedure f1(c:char);
begin
  p[i]['b'] := c;
  p[i]['d'] := c;
  p[i]['f'] := c;
  p[i]['h'] := c;
end;
 
procedure f2(c:char);
begin
  p[i]['a'] := c;
  p[i]['c'] := c;
  p[i]['e'] := c;
  p[i]['g'] := c;
end;
 
begin
  Assign(input,'input.txt');
  Assign(output,'output.txt');
 
  Reset(Input);
  Rewrite(Output);
 
  //Readln(n);
 
  for i:= 8 downto 6 do
  begin
    if(i mod 2 = 0) then
      f1('b')
    else
      f2('b');
  end;
 
  for i:=1 to 3 do
  begin
    if(i mod 2 <> 0) then
      f2('w')
    else
      f1('w');
  end;
 
   for i:= 8 downto 1 do
    for j:='a' to 'h' do
      if(p[i][j] <> 'w') and (p[i][j] <> 'b') then
        p[i][j] := ' ';
 
  Readln(n);
 
  for m:=1 to n do begin
    Readln(s);
    if(s[3] = '-') then
    begin
        x1 :=  strtoint(s[2]);
        y1 :=  s[1];
 
        x2 :=  strtoint(s[5]);
        y2 := s[4];
 
        swap( p[ x1 ] [y1 ], p[ x2 ][ y2 ] );
 
     
        if( p[x2][y2] = 'w') and (x2 = 8) then
          p[x2][y2] := 'W';
 
        if( p[x2][y2] = 'b') and (x2 = 1) then
          p[x2][y2] := 'B';
    end
    else
    begin
      k := Pos(':',s);
      while(k <> 0) do
      begin
 
        x1 :=  strtoint(s[2]);
        y1 :=  s[1];
 
        x2 :=  strtoint(s[5]);
        y2 := s[4];
 
 
        dx := -1;
        if(x2 > x1) then
        dx := 1;
 
        dy := -1;
        if(y2 > y1) then
        dy := 1;
 
        c :=  p[ x1 ][ y1 ];
 
        if( p[ x1 ][ y1 ] = 'W' ) or (p[ x1 ][ y1 ] = 'B') then
        begin
            while (x1 <> x2) or (y1 <> y2) do
            begin
              p[x1][y1] := ' ';
 
              Inc(x1,dx);
              Inc(y1,dy);
            end;
        end
        else
        begin
          Inc(x1,dx);
          Inc(y1,dy);
 
          p[x1][y1] := ' ';
        end;
 
        x1 :=  strtoint(s[2]);
        y1 :=  s[1];
 
        x2 :=  strtoint(s[5]);
        y2 := s[4];
 
        p[ x2 ][ y2 ] := c;
 
        p[ x1 ][ y1 ] := ' ';
 
        if( p[x2][y2] = 'w') and (x2 = 8) then
          p[x2][y2] := 'W';
 
        if( p[x2][y2] = 'b') and (x2 = 1) then
          p[x2][y2] := 'B';
 
        Delete(s,1,3);
        k := Pos(':',s);
      end;
    end;
  end;
 
 
   for i:= 8 downto 1 do
  begin
    for j:='a' to 'h' do
    begin
      if(p[i][j] = ' ') then
        begin
          t := Ord(j) - ord('a');
          if ( ( i mod 2 = 0 ) and ( t mod 2  = 0 ) ) or ( ( i mod 2 <> 0 ) and ( t mod 2  <> 0 ) )  then
            write('.')
          else
            write('-');
        end
        else write(p[i][j]);
    end;
    Writeln;
  end;
 
  close(Output);
end.

Последний раз редактировалось Stilet; 09.06.2013 в 23:11.
kiraone вне форума Ответить с цитированием
Старый 09.06.2013, 23:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может лучше задачу опишешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.06.2013, 23:17   #3
kiraone
Новичок
Джуниор
 
Регистрация: 09.06.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Может лучше задачу опишешь?
ой это такая дурацкая задача!
http://informatics.mccme.ru/moodle/m...apterid=1018#1
вот, условие длинное поэтому ссылку дал..
kiraone вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевести код с Паскаля на С++ Arman107 Паскаль, Turbo Pascal, PascalABC.NET 0 29.05.2013 09:13
Перевести код с Паскаля на Си majuw Помощь студентам 0 20.04.2013 13:50
Перевести код из Паскаля в С++. cristianoman Помощь студентам 4 26.03.2013 00:15