Текущий архив: 2011.11.27;
Скачать: CL | DM;
Вниз
Вычисление значения функции разложением в ряд с точностью N Найти похожие ветки
← →
TUser © (2011-08-03 15:15) [40]
> Думкин © (03.08.11 14:23) [37]
>
> > TUser © (03.08.11 14:11) [36]
>
> Ну, код для разного пишется. Если такое в черном ящике держать
> в полной уверенности его качества - то пусть там хоть как
> написано будет.
>
Речь не только про конкретный код, а про общую эффективность работы программиста - см. [15], если есть очевидный вариант без рекурсии, то в 99% предпочтителен он.
← →
Sha © (2011-08-03 15:16) [41]> MBo © (03.08.11 15:08) [39]
Ага, мне тоже не нравится. Но имя это дано нам от Борланда )
Гораздо больше удручает имя стартовой позиции в оригинале.
О значении результата, когда она не пожительна, даже говорю.
← →
Sha © (2011-08-03 15:25) [42]> Но имя это дано нам от Борланда )
Тут я не прав.
← →
Sha © (2011-08-03 15:42) [43]При переписывании кода [20] [26] [35] было потеряно обнуление счетчика, надо так:
function MyPosEx2(const SubStr, S: AnsiString; Start: integer= 1): integer;
var
SubLen, LastPos, Count: integer;
begin;
SubLen:=Length(SubStr);
LastPos:=Length(S)+1-SubLen;
Count:=0;
if (SubLen>0) and (Start>0)
then while (Start<=LastPos) and (Count<SubLen) do
if SubStr[Count+1]=S[Count+Start]
then inc(Count)
else begin;
inc(Start);
Count:=0;
end;
Result:=Start;
if Count<SubLen then Result:=0
end;
function MyPosEx3(const SubStr, S: AnsiString; Start: integer= 1): integer;
var
SubLen, LastPos, Count: integer;
begin;
SubLen:=Length(SubStr);
LastPos:=Length(S)+1-SubLen;
Count:=0;
if (SubLen>0) and (Start>0)
then while true do
if SubStr[Count+1]<>S[Count+Start]
then begin;
inc(Start);
Count:=0;
if Start>LastPos then begin;
Start:=0;
break;
end;
end
else begin;
inc(Count);
if Count>=SubLen then break;
end
else Start:=0;
Result:=Start;
end;
Страницы: 1 2 вся ветка
Текущий архив: 2011.11.27;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.016 c