1. Pascal / Говнокод #203

    +142.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Function nSetColorPair(att : integer) : integer;
    var
       i : integer;
    Begin
       bg := att div 16;
       fg := att - (bg * 16);
       While bg > 7 Do dec(bg,8);
       While fg > 7 Do dec(fg,8);
    // . . .

    Кусок модуля nCRT для FreePascal 2.2. У нормальных людей att - это байт. И вообще... Говно код!

    guest, 16 Декабря 2008

    Комментарии (1)
  2. Pascal / Говнокод #147

    +99.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    procedure date_mask(date_edit:TEdit);
    var s:string;
        i:integer;
    begin
      case length(date_edit.Text) of
      2:begin
          date_edit.Text:=date_edit.Text+'.';
          date_edit.SelStart:=3;
        end;
      5:begin
          date_edit.Text:=date_edit.Text+'.';
          date_edit.SelStart:=6;
        end;
      end;
    
      if length(date_edit.Text)=10 then
      begin
        for i:=1 to 9 do
        begin
          s:=s+date_edit.Text[i];
        end;
        date_edit.Text:=s;
        date_edit.SelStart:=9;
      end;
    end;

    чтобы в компонент edit вводить дату)

    guest, 13 Декабря 2008

    Комментарии (0)
  3. Pascal / Говнокод #131

    +150

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    if not MultiThread then
      begin
        GetName(@rec);
        result:=rec.fname;
      end
      else
      begin
        hThread:=CreateThread(0,0,@GetName,@rec,0,tmp);
        if WaitForSingleObject(hThread,100)=WAIT_TIMEOUT then
          TerminateThread(hThread,0)
        else
          result:=rec.fname;
        CloseHandle(hThread);
      end;

    Дельфисты - ущербные люди......

    guest, 12 Декабря 2008

    Комментарии (0)
  4. Pascal / Говнокод #113

    +101.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    if (TableData = 1) or ((TableData = 2) and
        (Pos(FieldDelim + 'Т_НАЦ' + FieldDelim, OpArtFields) > 0)) then
        sSelect := sSelect + ', ' + LMax + 'AR.Percent' + R + ' AR_Percent';
      if (TableData = 1) or ((TableData = 2) and
        (Pos(FieldDelim + 'Т_КАТ' + FieldDelim, OpArtFields) > 0)) then
        sSelect := sSelect + ', ' + LMax + 'AR.ID_ArtCat' + R + ' AR_ID_ArtCat';
      if (TableData = 1) or ((TableData = 2) and
        (Pos(FieldDelim + 'Т_ВЕС' + FieldDelim, OpArtFields) > 0)) then
        sSelect := sSelect + ', ' + LMax + 'AR.Weight' + R + ' AR_Weight';
      if (TableData = 1) or ((TableData = 2) and
        (Pos(FieldDelim + 'Т_ОБЪЕМ' + FieldDelim, OpArtFields) > 0)) then
        sSelect := sSelect + ', ' + LMax + 'AR.Capacity' + R + ' AR_Capacity';
      if (TableData = 1) or ((TableData = 2) and
        (Pos(FieldDelim + 'МИННАЦ' + FieldDelim, OpArtFields) > 0)) then
        sSelect := sSelect + ', ' + LMax + 'AR.MinDiscount' + R + ' AR_MinDiscount';
      if (TableData = 1) or ((TableData = 2) and
        (Pos(FieldDelim + 'Т_МИНКОЛ' + FieldDelim, OpArtFields) > 0)) then
        sSelect := sSelect + ', ' + LMax + 'AR.MinQuantity' + R + ' AR_MinQuantity';
      if (TableData = 1) or ((TableData = 2) and
        (Pos(FieldDelim + 'Т_СТАТУС' + FieldDelim, OpArtFields) > 0)) then
        sSelect := sSelect + ', ' + LMax + 'AR.Status' + R + ' AR_Status';
      if (TableData = 1) or ((TableData = 2) and
        (Pos(FieldDelim + 'Т_ГТД' + FieldDelim, OpArtFields) > 0)) then
        sSelect := sSelect + ', ' + LMax + 'AR.GTD' + R + ' AR_GTD';
      if (TableData = 1) or ((TableData = 2) and
        (Pos(FieldDelim + 'Т_СТРАНА' + FieldDelim, OpArtFields) > 0)) then 
        sSelect := sSelect + ', ' + LMax + 'CO.Name' + R + ' AR_Country';

    Собирание SQL - запроса для выборки полей. И это маленький кусочек :)
    Серьёзная контора с миллиардными оборотами!

    guest, 11 Декабря 2008

    Комментарии (3)
  5. Pascal / Говнокод #88

    +81.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    procedure TForm1.fritb(ie:longint;var fr0:extended);
     begin
    v1:=0;
     for nsf:=1 to 5 do
      begin
       kl11:=0;kl12:=0;kl22:=0;
      for k:=1 to km[nsf] do
        begin
        if (cm^[ie]=cm^[nm^[(ie-1)*kms[ksf+1]+kms[nsf]+k]])and (cm^[ie]=1)
        then      kl11:=kl11+1;
        if (cm^[ie]=cm^[nm^[(ie-1)*kms[ksf+1]+kms[nsf]+k]])and (cm^[ie]=2)
        then      kl22:=kl22+1;
    if (cm^[ie]<>cm^[nm^[(ie-1)*kms[ksf+1]+kms[nsf]+k]])and(cm^[nm^[(ie-1)*kms[ksf+1]+kms[nsf]+k]]<>0)and (cm^[ie]<>0)
        then      kl12:=kl12+1;
         end;
      fr0:=fr0+kl11*(p11[1,nsf])+kl22*p11[2,nsf]+kl12*p11[3,nsf];
      v1:=v1+kl11*(f11[1,nsf])+kl22*f11[2,nsf]+kl12*f11[3,nsf];
       end;
      fr0:=fr0-sqrt(abs(v1));
     end;

    процеДуро

    guest, 09 Декабря 2008

    Комментарии (1)
  6. Pascal / Говнокод #87

    +112.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for i:=sk[(npl-1)*5+1] to sk[(npl-1)*5+2]-1 do
       begin
       l1:=0;l2:=0;l3:=0;l4:=0;l5:=0;l6:=0;l7:=0;l8:=0;l9:=0;l10:=0;
      for j:=1 to 100 do g1[j]:=0;
       for k:=sk[(npl-1)*5+1] to sk[(npl-1)*5+2] do
         if (k<>i )and
       (((abs(xyz^[pxyz^[i]].x-xyz^[pxyz^[k]].x)< dd) or  ((lx-abs(xyz^[pxyz^[i]].x-xyz^[pxyz^[k]].x))<dd))
       and ((abs(xyz^[pxyz^[i]].y-xyz^[pxyz^[k]].y)<dd) or  ((ly-abs(xyz^[pxyz^[i]].y-xyz^[pxyz^[k]].y))<dd))
       and ((abs(xyz^[pxyz^[i]].z-xyz^[pxyz^[k]].z)<dd) or  ((lz-abs(xyz^[pxyz^[i]].z-xyz^[pxyz^[k]].z))<dd)))
       then

    это только заголовок цикла ..

    guest, 09 Декабря 2008

    Комментарии (3)
  7. Pascal / Говнокод #54

    +119.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    function IntToMonth(NumberMonth: Integer): string;
    begin
      сase NumberMonth of
        1: Result := 'Январь';
        2: Result := 'Февраль';
        3: Result := 'Март';
        4: Result := 'Апрель';
        5: Result := 'Май';
        6: Result := 'Июнь';
        7: Result := 'Июль';
        8: Result := 'Август';
        9: Result := 'Сентябрь';
        10: Result := 'Октябрь';
        11: Result := 'Ноябрь';
        12: Result := 'Декабрь';
      else
        Result := 'Август';
      end;
    end;

    Думаю, по названию функции все понятно :)

    guest, 04 Декабря 2008

    Комментарии (21)
  8. Pascal / Говнокод #27

    +149

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    program Project1;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils;
    type
      Деньга = record
        Достоинство:integer;
        Количество:integer;
      end;
    
    var
      Лопатник: array of Деньга;
    
    procedure ПоложитьНаЛопату(Купюра:Integer);
    var
      I: Integer;
      УжеПоложили:Boolean;
    begin
      if Купюра=0 then
        Exit;
      УжеПоложили:=False;
      for I := low(Лопатник) to High(Лопатник) do
        if Лопатник[i].Достоинство=Купюра then
          begin
            inc(Лопатник[i].Количество);
            УжеПоложили:=True;
          end;
      if not(УжеПоложили) then
        begin
          SetLength(Лопатник,Length(Лопатник)+1);
          Лопатник[High(Лопатник)].Достоинство:=Купюра;
          Лопатник[High(Лопатник)].Количество:=1;
        end;
    end;
    
    var
      Купюра:integer;
      i:integer;
      ВсегоНаЛопате:integer;
    begin
      repeat
        Readln(Купюра);
        ПоложитьНаЛопату(Купюра);
      until Купюра=0;
      ВсегоНаЛопате:=0;
      for I := low(Лопатник) to High(Лопатник) do
        begin
          WriteLn(Format('Cost = %d Count - %d',[Лопатник[i].Достоинство,Лопатник[i].Количество]));
          inc(ВсегоНаЛопате,Лопатник[i].Достоинство*Лопатник[i].Количество);
        end;
      WriteLn(Format('All money - %d',[ВсегоНаЛопате]));
      ReadLn;
    end.

    Вообще-то это Delphi, но его в списке не было ;)
    Задача была такая:
    пользователь вводит достоинства купюры в произвольном порядке, ввод прекращ

    guest, 28 Ноября 2008

    Комментарии (8)