Показать сообщение отдельно
Старый 21.05.2015, 18:15   #6 (permalink)
MagentaTiger
Специалист
 
Аватар для MagentaTiger
 
Регистрация: 27.04.2015
Адрес: Москва
Сообщений: 1,423
Записей в дневнике: 4
Сказал(а) спасибо: 52
Поблагодарили 53 раз(а) в 16 сообщениях
Репутация: 18120
По умолчанию

обычно в паскале размерность массивов с единицы начинают (если вам все же надо с нуля, то код надо будет переписать, учитывая что длина массива получится на единицу больше)

Код:
const 
HEIGHT_MATRIX=10, {первая размерность массива }
WIDTH_MATRIX=10; {это длина строки будет, вторая размерность массива }


function TEST(A:array[1..HEIGHT_MATRIX][1..WIDTH_MATRIX] of Integer;k:Integer):Boolean;
{* функция сравнения одномерных массивов. 
Сравниваем только на равенство *}
  function cmpmatrix(s,d:array [1..WIDTH_MATRIX] of Integer):Boolen;
   var i:Integer;
  begin
      Result:=true;
      for i:=1 to WIDTH_MATRIX do
         if s[i]<>d[i] then 
            begin
               Result:=false;
               break;
            end;
  end; 
   
begin
 Result:=false;
 if k>HEIGHT_MATRIX then exit; {* что бы не вылететь за размерность массива *}

  {* тут я подозреваю что вместо 10 нужно HEIGHT_MATRIX, 
   но в условии четко сказано про число 10 :),
   при HEIGHT_MATRIX=10 это не существенно *}
   if ((k=10) AND cmpmatrix(A[10],A[1])) OR ((k<>10) AND cmpmatrix(A[k],a[k+1]))      
     then Result:=true;
end;
MagentaTiger вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070