Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
ВнизD6 не хочет компилировать следущий код: Найти похожие ветки
← →
Alx2 © (2005-08-08 13:05) [0]
procedure TForm1.Button1Click(Sender: TObject);
type TIndexSet = set of byte;
var Combines: array of TIndexSet;
procedure Combine(n, p: Integer);
procedure MakeCombine(Start, p: Integer; Res: TIndexSet);
var k: Integer;
begin
if p > 0 then
for k := Start to n do
MakeCombine(k + 1, p - 1, Res + [k])
else
begin
SetLength(Combines, Length(Combines) + 1);
Combines[Length(Combines) - 1] := Res;
end;
end;
begin
MakeCombine(1, p, []);
end;
begin
SetLength(Combines, 0);
Combine(5, 4);
end;
---------
Боже, куда катится это мир! :)
← →
Anatoly Podgoretsky © (2005-08-08 13:19) [1]Ваша жалоба принята во внимание, а вопрос есть?
← →
Alx2 © (2005-08-08 13:21) [2]>Anatoly Podgoretsky © (08.08.05 13:19) [1]
Вопроса нет. Есть факт глючности компилятора, коим делюсь.
А пост я отсылал в "Потрепаться". Зачем его перенесли сюда - непонятно.
← →
Alx2 © (2005-08-08 13:27) [3]Вдогонку посту [0]:
Результат компиляции в D6: "Internal error L1030"
← →
Anatoly Podgoretsky © (2005-08-08 13:29) [4]Вот до номера 3, была просто трепология, и зря выбросили из потрепаться, там ей место. А три говорит, что запудрил ты мозги компилятору. Довел его до ручки.
← →
Alx2 © (2005-08-08 13:33) [5]>Anatoly Podgoretsky © (08.08.05 13:29) [4]
>А три говорит, что запудрил ты мозги компилятору
Разве то, что я написал - неверно с точки зрения грамматики языка?
В D5, например, мозги этим не пудрятся.
PS
Трепологии сами не даете умереть. В [4] - она самая :)
← →
Anatoly Podgoretsky © (2005-08-08 13:49) [6]Нет, не удастся тебе стрелки перевести на меня. Бросил кусок кода, и вот теперь догадайтесь о чем это я.
Ты не сомневайся, здесь большие мастера по демагогии.
← →
evvcom © (2005-08-08 13:51) [7]
> Alx2 © (08.08.05 13:33) [5]
У меня-то мозги запудрились от такой никчемной вложенности процедур. Что уж говорить про компилятор?
Хорошо бы такой код подробным комментарием снабдить, чтобы хоть какой-то смысл появился.
← →
Alx2 © (2005-08-08 14:29) [8]>evvcom © (08.08.05 13:51) [7]
>У меня-то мозги запудрились от такой никчемной вложенности
>процедур.
Я выцепил фрагмент и оформил, чтобы кому-нибудь проверить можно было. А мозговая пудра - это плохо. Сочувствую.
И никчемность, она, знаешь, тоже относительна.
>Хорошо бы такой код подробным комментарием снабдить, чтобы хоть
>какой-то смысл появился
Цель - получить список всех сочетаний из n по p. (Биномиальные коэфициенты). Зачем я его получаю в явном виде - проверить одну идею (неважно какую, просто времянка).
procedure TForm1.Button1Click(Sender: TObject);
type TIndexSet = set of byte;
var Combines: array of TIndexSet;
procedure Combine(n, p: Integer); // генерируем все сочетания из n по p
procedure MakeCombine(Start, p: Integer; Res: TIndexSet); // Внутренняя процедура, в которую вводится параметр Start для внесения упорядоченности в список сочетаний.
var k: Integer;
begin
if p > 0 then
for k := Start to n do
MakeCombine(k + 1, p - 1, Res + [k])
else
begin
SetLength(Combines, Length(Combines) + 1);
Combines[Length(Combines) - 1] := Res;
end;
end;
begin
MakeCombine(1, p, []);
end;
begin
SetLength(Combines, 0);
Combine(5, 4); // Просто для примера - список всех сочетаний из 5 по 4
end;
Только зачем эти комментарии тебе нужны? Вопрос ведь в другом - грамматически верный фрагмент не компилируется!
Но он нормально откомпилируется и заработает, если указать
type TIndexSet = set of 0..255;
>Anatoly Podgoretsky © (08.08.05 13:49) [6]
Виноват. Но весь вопрос был в "D6 не хочет компилировать следущий код". Наверное, стоило его задать как "D6 не хочет компилировать следущий, грамматически верный, код"
← →
pasha_golub © (2005-08-08 16:11) [9]А может у тебя byte где-то переопределен?
← →
timon84 © (2005-08-09 00:24) [10]Вот только что проверил в Delphi 7 всё нормально компилиться
← →
Lamer@fools.ua © (2005-08-09 08:33) [11]>>Alx2 © (08.08.05 13:05)
>>Alx2 © (08.08.05 13:27) [3]
Подтверждаю. Не хочет.
Delphi 6.240 (Update Pack 2).
← →
Lamer@fools.ua © (2005-08-09 08:39) [12]Спасает ситуацию замена:
TIndexSet = set of 0 .. 255;
← →
Думкин © (2005-08-09 09:05) [13]Дельфи 6 мастдай, дельфи 7 форева. :)
Ну глючит Д6. Бывает. Напиши в подводные камни.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c