| 
| 
 | Вопрос # 3 906/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты! Помогите пожалуйста решить такую задачу (см. приложение). Сам пробовал никак не получается. Помогите пожалуйста! 
|  |   Вопрос задал: prog-mer (статус: Посетитель)Вопрос отправлен: 20 марта 2010, 20:58
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Паровоз Здравствуйте, prog-mer!
 program Prog;
 
{$APPTYPE CONSOLE}
 
uses SysUtils;
 
const
  n=2;
 
var
  i,j,s:Integer;
  a,b:array[1..2*n+1,1..2*n+1] of Integer;
  ss,st:String;
 
begin
  for i:=1 to 2*n+1 do for j:=1 to 2*n+1 do b[i,j]:=0;
  a[n+1,n+1]:=0;a[n,n+1]:=1;
  b[n+1,n+1]:=1;b[n,n+1]:=1;
  i:=n;j:=n+1;s:=1;
  repeat
    inc(s);
    if (i<n+1)and(j=n+1) then dec(j) else
    if (i<n+1)and(j<n+1) then
      if b[i+1,j]=0 then inc(i) else dec(j) else
    if (i=n+1)and(j<n+1) then inc(i) else
    if (i>n+1)and(j<n+1) then
      if b[i,j+1]=0 then inc(j) else inc(i) else
    if (i>n+1)and(j=n+1) then inc(j) else
    if (i>n+1)and(j>n+1) then
      if b[i-1,j]=0 then dec(i) else inc(j) else
    if (i=n+1)and(j>n+1) then dec(i) else
    if (i<n+1)and(j>n+1) then
      if b[i,j-1]=0 then dec(j) else dec(i);
    b[i,j]:=1;
    a[i,j]:=s;
  until (i=1)and(j=2*n+1)or (s=(2*n+1)*(2*n+1));
  for i:=1 to 2*n+1 do
  begin
    st:='';
    for j:=1 to 2*n+1 do
    begin
      ss:=IntToStr(a[i,j]);
      if Length(ss)=1 then ss:=' '+ss+' '
      else if Length(ss)=2 then ss:=ss+' ';
      st:=st+' '+ss+' ';
    end;
    Writeln(st);
  end;
  Readln;
end.
|  | Ответ отправил: Паровоз (статус: 10-ый класс)Время отправки: 21 марта 2010, 18:56
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 3; последнее сообщение — 21 марта 2010, 11:43; участников в обсуждении: 2. 21 марта 2010, 00:07: Вопрос перемещён из тематического раздела Delphi » Алгоритмы, преобразования в раздел Лабораторный практикум » Delphi модератором min@y™ Причина: Явная лаба 
|   | min@y™ (статус: Доктор наук), 21 марта 2010, 00:08 [#1]:Я готов сделать эту лабу. Пиво будет?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | prog-mer (статус: Посетитель), 21 марта 2010, 11:33 [#2]:А сколько надо? |  
|   | min@y™ (статус: Доктор наук), 21 марта 2010, 11:43 [#3]: Цитата (prog-mer): А сколько надо?  Пару бутылочек туборга.
   Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |