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

    −107.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    w := ord(CHar(Pbyte(Pointer(Integer(IN_BUFFER)+ inpos))^));
    s := ord(Char(Pbyte(Pointer(Integer(IN_BUFFER)+ inpos + 1))^));
    PByte(Pointer(Integer(out_buf)+ outpos))^ := w and 255;        {?????? ?? ?????? ??????}
    PByte(Pointer(Integer(out_buf)+ outpos + 1))^ := w shr 8;
     PByte(Pointer(Integer(out_buf)+ outpos))^ := PByte(Pointer(Integer(out_buf)+ outpos))^ or ((W and 15) shl 4);

    доступ к указателям как к массивам

    guest, 31 Марта 2009

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    b:=['F','G','K','L','N'];
    for i:=1 to 10 do
    for j:=1 to 10 do
    begin
    repeat
    M[i,j] := chr(random(9)+70);
    until M[i,j] in b;
    end;

    Надо заполнить массив случайными буквами из набора. Бросаем монетку, пока не выпадет решка...

    guest, 22 Марта 2009

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

    +152

    1. 1
    for i=1 to 10 do i=i+1- ошибка в дельфи .как отключить эту фишку

    улыбнуло)

    guest, 17 Марта 2009

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

    +153

    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
    var c:longint;
    begin
      c:= 12345;
      write( char(  ( ((( (c div 10000) mod 10 ) mod 2) + 1) mod 2) * (( (c div 10000) mod 10 ) +
             byte( '0' )) + (( (c div 10000) mod 10 ) mod 2) * byte(' ') ) ,
             char(  ( ((( (c div 1000)  mod 10 ) mod 2) + 1) mod 2) * (( (c div 1000)  mod 10 ) +
             byte( '0' )) + (( (c div 1000)  mod 10 ) mod 2) * byte(' ') ) ,
             char(  ( ((( (c div 100)   mod 10 ) mod 2) + 1) mod 2) * (( (c div 100)   mod 10 ) +
             byte( '0' )) + (( (c div 100)   mod 10 ) mod 2) * byte(' ') ) ,
             char(  ( ((( (c div 10)    mod 10 ) mod 2) + 1) mod 2) * (( (c div 10)    mod 10 ) +
             byte( '0' )) + (( (c div 10)    mod 10 ) mod 2) * byte(' ') ) ,
             char(  ( ((( (c div 1)     mod 10 ) mod 2) + 1) mod 2) * (( (c div 1)     mod 10 ) +
             byte( '0' )) + (( (c div 1)     mod 10 ) mod 2) * byte(' ') ) );
    
    readln;
    end.

    На одном чайникофоруме попросили решить задачу на паскале: вывести все чётные цифры пятизначного числа. При этом нельзя пользоваться функциями, циклами и условными операторами. Вот, что у меня из этого получилось :)

    guest, 05 Марта 2009

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

    +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
    15. 15
    16. 16
    VAR FL:TEXTFILE;
        l:string;
        i:integer;
        xmass,itrmass:array [1..100] of real;
    begin
    {...}
     ASSIGNfile(FL,'results.txt');
       reset(fl);
       readln(fl,l);
       i:=1;
        while L[i]<>' ' do begin
         xmass[i]:=strtoint(L[1]);
         i:=i+1;
                           end;
    {...}
    end;

    В файле хранилась последовательность вещественных чисел... Такой вот вариант ее оттуда выкорчевать о_О

    guest, 19 Февраля 2009

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

    +152

    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 currIndex=2 then
          begin
          // разкрываем выделенные узлы
            TreeView_U.Items[r].Expanded:=true;
            if TreeView_U.Items[r].Parent <> nil then
            begin
              TreeView_U.Items[r].Parent.Expanded:=true;
              if TreeView_U.Items[r].Parent.Parent <> nil then
              begin
                TreeView_U.Items[r].Parent.Parent.Expanded:=true;
                if TreeView_U.Items[r].Parent.Parent.Parent <> nil then
                TreeView_U.Items[r].Parent.Parent.Parent.Expanded:=true;
              end;
            end;

    Наткнулся тут в прокете. Поначалу просто кусок закоментировал не разбираясь, потому что просто не нужен. Суть - попытка раскрыть полностью ветвь дерева, если в ней есть хоть один выбранный (с помеченным чекбоксом) элемент, о чём говорит currIndex=2.
    Весь офис валяется под столами :)))

    guest, 13 Февраля 2009

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

    +148

    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 currIndex=2 then
     begin
      // разкрываем выделенные узлы
      TreeView_U.Items[r].Expanded:=true;
      if TreeView_U.Items[r].Parent <> nil then
       begin
        TreeView_U.Items[r].Parent.Expanded:=true;
        if TreeView_U.Items[r].Parent.Parent <> nil then
         begin
          TreeView_U.Items[r].Parent.Parent.Expanded:=true;
          if TreeView_U.Items[r].Parent.Parent.Parent <> nil then
           TreeView_U.Items[r].Parent.Parent.Parent.Expanded:=true;
         end;
       end;

    Это попытка раскрыть полностью ветвь дерева, если в ней есть хоть один выбранный (с помеченным чекбоксом) элемент, о чём говорит currIndex=2
    Вообще-то оно даже работает, ибо вложенность дерева маленькая. Но увеличиться запросто может...

    guest, 13 Февраля 2009

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    { Units of time }
    
      HoursPerDay   = 24;
      MinsPerDay    = HoursPerDay * 60;
      SecsPerDay    = MinsPerDay * 60;
      MSecsPerDay   = SecsPerDay * 1000;

    SysUtils.pas из delphi 6

    guest, 10 Февраля 2009

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

    +141.5

    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
    procedure TForm2.s1;
    var a,a1:real;
    begin
    a:=a+1.8;
    randomize;
    if p<1 then
    begin
    if a<1.9 then
    begin
    a:=999;
    a1:=random(4);
    if a1=2 then
    begin
    GroupBox5.Visible:=True;
    GroupBox6.Visible:=False;
    GroupBox1.Visible:=False;
    end
    else
    if a1=3 then
    begin
    GroupBox5.Visible:=False;
    GroupBox6.Visible:=True;
    GroupBox1.Visible:=False;
    end
    else
    begin
    GroupBox5.Visible:=False;
    GroupBox6.Visible:=False;
    GroupBox1.Visible:=True;
    end
    end
    end
    end;

    0_o

    guest, 31 Января 2009

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

    +138.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
    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
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    1000:
        nume:=0;
        for i:=1 to mmes do work^[i]{^}:=work^[i]{^}+hde;
        iter:=iter+1;
        for j:=1 to 2 do
    begin
        if j=1 then w:=work^[1]{^};
        if j=2 then w:=work^[mmes]{^}  ;
        ab:=2*sqrt(3.*abs(1.-w));
        w1:=ab;
        for i:=1 to 10 do
    begin
        w2:=ab * sqrt(1.+w1);
        if abs(w2-w1)<1.e-6 then goto 18;
        w1:=w2
    end;
    18:
      wkb:=(1.+w2)/w;
      if j=1 then rpsi[1]^:=work^[2]{^}*wkb;
      if j=2 then rpsi[mmes]^:=work^[m1]{^}*wkb
    end;
      b:=rpsi[mmes]^;
      for i:=1 to m1 do
    begin
        npsi:=mmes-i;
        a:=(12./work^[npsi]{^}-10.0)-1./b;
        rpsi[npsi]^:=a;
        b:=a;
        if a<=1. then goto 30
    end;
    30:
      mcross:=npsi;
      rmcros:=a;
      b:=rpsi[1]^;
      for i:=2 to mcross do
    begin
        a:=(12./work^[i]{^}-10.0)-1./b;
        rpsi[i]^:=a;
        b:=a;
        if a<0. then nume:=nume+1
    end;
       if (iter=1) and (nume<num) then writeln('error in initial Eh');
       if nume=num then goto 50;
       if (not bisec) then writeln('give left energy El');
       if (succes) then goto 60;
       if nume>num then eh:=enew;
       if nume<num then el:=enew;
       goto 80;
    50:
      m3:=mcross+1;
      m4:=mcross-1;
      a:=1.-0.5/work^[m3]{^};
      a1:=a*(1./rpsi[m3]^-rpsi[mcross]^);
      b:=1.-0.5/work^[m4]{^};
      b1:=b*(rmcros-1./rpsi[m4]^);
      de:=(a1-b1)*work^[mcross]{^};
      if de>0. then eh:=enew;
      if de<0. then el:=enew;
      it:=it+1;
      goto 70;
    60:
       it:=0;
    70:
       if it>=maxit then goto 100;
    80:
       eold:=enew;
       delta:=(el-eh)*0.5;
       enew:=eh+delta;
       hde:=hsq12*(enew-eold);
       succes:=false;
      {writeln  ('delta=',delta); }
       if abs(delta)>1.e-10 then goto 1000;
      {writeln('enew=',enew);  }
       if nume=num then goto 90;
       writeln ('degeneration : num-state=nume-state ');
       halt;
    90:
    {  lip:=true; }
    100:
      succes:=true;

    1 из 3-х модулей, которые мне нужно оснастить ГУИ, оптимизировать и привнести абстракцию...

    guest, 29 Января 2009

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