2013-03-22 4 views
-4

Мне не хватает единицы из кода, над которым работал другой разработчик.восстановление потерянного кода (InArray) - cont

я смог расшифровать некоторые, и эксперты здесь помог мне с другими,

мне нужна булева функция под названием InArray.

Я знаю, что он принимает TIntArray и целое число и возвращает логическое значение, существует ли или не целое число в TIntArray

TIntArray = array of Integer; 


function InArray (A: TIntArray; n: Integer): Boolean; 
begin 
// result:= 
end; 

Я не знаю, как будет завершено остальное.

любая помощь будет оценена.

Thanx

ответ

4

Скорее всего, функциональные тесты, если n принадлежит к массиву:

function InArray(A: TIntArray; n: Integer): boolean; 
var 
    i: integer; 
begin 
    result := false; 
    for i := low(A) to high(A) do 
    if A[i] = n then 
     Exit(true); 
end; 

Если вы используете старую версию Delphi (< 2009), вы должны сделать

function InArray(A: TIntArray; n: Integer): boolean; 
var 
    i: integer; 
begin 
    result := false; 
    for i := low(A) to high(A) do 
    if A[i] = n then 
    begin 
     result := true; 
     break; 
    end; 
end; 

вместо этого.

+1

Почему назначить дважды Результат? Я стремлюсь к заявлению о возврате родственных языков C. –

+0

Вопрос о вкусе. Для меня я думаю, что моя версия крошечная, крошечная битка легче читать. (Не '' Выйти (retVal) 'count?) –

+0

Вы все еще назначаете дважды. Как математик чистых вкусов, который мягко ревет. Современный выход лучше. Но он по-прежнему является черным параметром var, а не передает значение func для вызывающего, как и на всех других языках. Вентиляционное отверстие. Напыщенная речь. –

1

Как это:

function InArray (A: TIntArray; n: Integer): Boolean; 
var 
    i: Integer; 
begin 
    for i := 0 to high(A) do 
    if A[i]=n then 
    begin 
     Result := True; 
     exit; 
    end; 
    Result := False; 
end; 
+0

Да, сказал то же самое много веков назад! :) –

Смежные вопросы