Снег Север писал(а):Повторю еще раз
Вы что, пытаетесь мне отказать в праве высказать свою точку зрения?
Кмк я не оспаривал чьи-либо религиозные убеждения, поскольку, безусловно, понимаю, что это абсолютно бессмысленно.
Модератор: Модераторы
Снег Север писал(а):Повторю еще раз


zub писал(а):бреак выйдет из блока кода, гото может прыгать куда угодно
zub писал(а):это входит в какойто стандарт или следствие внутренней fpc реализации?

 "
 "не имеет нормальная программа множественных вложенных циклов.

Снег Север писал(а):Соответственно, код, который малопонятен и нечитабелен - это говнокод. Вне зависимости от его прочих свойств.
zub писал(а):и чему там равно a3?
Ничему - в 1 ты не знаешь цикл отработал или прервался.
for a3:=1 to z2[0] do begin
     if z2[a3]=0 then goto 1;
     if a3=z2[0] then goto 1;
                               end;
goto 2;
1:zub писал(а): С учетом того что в fpc на это не приделан варнинг, поиск и исправление этих ошибок в чужих исходниках (любителей гото и прочих извращений) превращается в грандиозный нетрадиционный секс
zub писал(а):Добавлено спустя 4 минуты 47 секунд:
https://bugs.freepascal.org/view.php?id=34248 после обновления компилятора программа перестала работать на ровном месте, циклы там рвались как goto так и бреак. конечно это не совсем в тему, но как пример пример наказания за чужие "лайфхаки"
for a3:=1 to 100 do begin
     if z2[a3]=0 then goto 1;
2:
     if a3=100 then goto 3;
                               end;
goto 3;
1: if .............. then goto 2;
3:

 , а вот тема с GoTo, походу, всегда будет завораживающей. )))
 , а вот тема с GoTo, походу, всегда будет завораживающей. )))ООП - это очень хорошая задумка! И очень плохая реализация... Лезут все кому не лень, не зная программирования. Но ведь ООП терпит, в отличии от процедурного программирования, почему бы не навалить кучу кода? А потом этот код за основу берётся... )))Сквозняк писал(а):Какое замечательное описание ООП!
unit anysort;
{$ifdef fpc}{$mode delphi}{$endif}
interface
type
  TCompareFunc = function (const elem1, elem2): Integer;
procedure AnySort(var Arr; Count: Integer; Stride: Integer; CompareFunc: TCompareFunc);
implementation
procedure AnyQuickSort(var Arr; idxL, idxH: Integer;
  Stride: Integer; CompareFunc: TCompareFunc; var SwapBuf);
var
  ls,hs : Integer;
  li,hi : Integer;
  mi    : Integer;
  ms    : Integer;
  pb    : PByte;
begin
  pb:=@Arr;
  li:=idxL;
  hi:=idxH;
  mi:=li+(hi-li) div 2;
  ls:=li*Stride;
  hs:=hi*Stride;
  ms:=mi*Stride;
  repeat
    while CompareFunc( pb[ls], pb[ms] ) < 0 do begin
      inc(ls, Stride);
      inc(li);
    end;
    while CompareFunc( pb[ms], pb[hs] ) < 0 do begin
      dec(hs, Stride);
      dec(hi);
    end;
    if ls <= hs then begin
      Move(pb[ls], SwapBuf, Stride);
      Move(pb[hs], pb[ls], Stride);
      Move(SwapBuf, pb[hs], Stride);
      if li = mi then
        ms := hs
      else
        if hi = mi then
          ms := ls;
      inc(ls, Stride); inc(li);
      dec(hs, Stride); dec(hi);
    end;
  until ls>hs;
  if hi>idxL then AnyQuickSort(Arr, idxL, hi, Stride, CompareFunc, SwapBuf);
  if li<idxH then AnyQuickSort(Arr, li, idxH, Stride, CompareFunc, SwapBuf);
end;
procedure AnySort(var Arr; Count: Integer; Stride: Integer; CompareFunc: TCompareFunc);
var
  buf: array of byte;
begin
  if Count > 1 then
    begin
      SetLength(buf, Stride);
      AnyQuickSort(Arr, 0, Count-1, Stride, compareFunc, buf[0]);
    end;
end;
end.
Seenkao писал(а):iskander, честно говоря, не до сортировки массивов сейчас
procedure BubbleSort(var a: array of Integer);
var
  I, Tmp: Integer;
  Done: Boolean;
begin
  if Length(a) > 1 then
    repeat
      Done := True;
      for I := 1 to High(a) do
        if a[I - 1] > a[I] then begin
          Done := False;
          Tmp := a[I];
          a[I] := a[I - 1];
          a[I - 1] := Tmp;
        end;
    until Done;
end; 
runewalsh писал(а):Там, кстати, автор — @скалогрыз, можешь его трясти.
runewalsh писал(а):Вторая ошибка — ^array[word] of byte вместо просто pByte.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1