Страница 2 из 2

Re: Помогите решить несколько задачек на паскале!!!! PLEEEEEEEEASE!!!!

Добавлено: 10 янв 2008, 09:59
Serge_Bliznykov
&quot писал(а):Все-таи, "исключительный период" - от 11 до 14, а не до 13 (а то получим в результате текст: 'Возраст составляет 14 года').
Вы правы. согласен. Проколололся... ;-)

Re: Помогите решить несколько задачек на паскале!!!! PLEEEEEEEEASE!!!!

Добавлено: 31 мар 2009, 02:02
Henaro
Serge_Bliznykov писал(а):Black89,

решение:

Код: Выделить всё

const
  MaxArray = 7;
type 
  MyArrayType = array [1..MaxArray, 1..MaxArray] of integer; 
  
procedure Spiral(var M : MyArrayType); 
var 
  k, MaxStep, PosX, PosY : integer;
  i: integer;
BEGIN
  i := 1;
  PosX := 1;
  PosY := 0;
  MaxStep := MaxArray;

  while i <= MaxArray*MaxArray do
  begin
    {движение вправо}
    for k:=1 to MaxStep do
    begin
      Inc(PosY);
      M[PosX, PosY] := i;
      Inc(i);
    end;
    Dec(MaxStep);
    {движение вниз по спирали}
    for k:=1 to MaxStep do 
    begin     
      Inc(PosX);
      M[PosX, PosY] := i;
      Inc(i);
    end;
    {движение влево по спирали}
    for k:=1 to MaxStep do 
    begin     
      Dec(PosY);
      M[PosX, PosY] := i;
      Inc(i);
    end;
    Dec(MaxStep);
    {движение вверх по спирали}
    for k:=1 to MaxStep do 
    begin     
      Dec(PosX);
      M[PosX, PosY] := i;
      Inc(i);
    end;      
  end;
end;

var
  Matrix : MyArrayType;
  i, j   : integer;

BEGIN
  Spiral(Matrix);
  for i:=1 to MaxArray do
    begin
      for j:=1 to MaxArray do
        Write(Matrix[i,j]:4);
      WriteLn;
    end;
END.
Подскажите, в чем ошибка этого алгоритма, если например вместо матрицы порядка 7, будет матрица порядка 88. Не корректно строится она при таком значение.

Re: Помогите решить несколько задачек на паскале!!!! PLEEEEEEEEASE!!!!

Добавлено: 31 мар 2009, 08:53
Naeel Maqsudov
Нет ошибок. Нормально строит. Просто на экране не помещается.