Главная страница
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.118 c
6-1116058543
Anton.
2005-05-14 12:15
2005.08.28
Подскажите по сокетам...


14-1123073749
Виталий Панасенко
2005-08-03 16:55
2005.08.28
Меркантильная тема...


4-1120717532
dmitry501
2005-07-07 10:25
2005.08.28
Использование таймера в сервисе/службе


14-1123066040
Empleado
2005-08-03 14:47
2005.08.28
Дешевые авиакомпании


11-1106058725
Dimona 33321
2005-01-18 17:32
2005.08.28
Проблема с формами MCK