Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.28;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.054 c
14-1123248198
oldman
2005-08-05 17:23
2005.08.28
Господам, понимающим в литературе...


3-1121422673
erika
2005-07-15 14:17
2005.08.28
Формирование запроса для отбора записей


14-1123053696
Jeer
2005-08-03 11:21
2005.08.28
ABC лишилась аккредитации в России


4-1120111271
Nyuk
2005-06-30 10:01
2005.08.28
Что в корзине?


14-1123492515
WonderfulDay
2005-08-08 13:15
2005.08.28
Зажимание шифта