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

    +101

    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
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    var
      Excel: OleVariant;
      Rows, Cols: integer;
      WorkSheet: OleVariant;
      DebugList: TStringList;
      I, j, CSeek: integer;
      R, ArrV: OleVariant;
      ObjData: TDataContainer;
      D: integer;
    begin
     {$IFDEF DEBUG}
      DebugList := TStringList.Create;
     {$ENDIF}
      try
        Excel := CreateOleObject('Excel.Application');
        Excel.Visible := false;
        Excel.Workbooks.Open[DocPath, 0, True];
        WorkSheet := Excel.ActiveWorkbook.ActiveSheet;
        R := Excel.Intersect(WorkSheet.UsedRange,
          WorkSheet.UsedRange.Offset[14, 0]);
        ArrV := R.Value;
        Rows := VarArrayHighBound(ArrV, 1);
        Cols := VarArrayHighBound(ArrV, 2);
        {$IFDEF DEBUG}
        DebugList.Add(Format('Количество ячеек в таблице = %d', [(Rows) * Cols]));
        DebugList.Add(Format('Rows = %d, Cols = %d', [Rows, Cols]));
        {$ENDIF}
        CSeek := 0;
        D := 1;
        for I := 1 to Rows do
        begin
          if (CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('Итого')) = 0) then
            Break;
          if (CompareStr(Trim(VarToStr(ArrV[I, 1])),
            Trim('отдел')) = 0) or
            (CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('10.05')) = 0) or
            (CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('10.06')) = 0) or
            (CompareStr(Trim(VarToStr(ArrV[I, 1])), Trim('10.09')) = 0) then
          begin
            CSeek := I + 2;
            Continue;
          end;
          if CSeek > I then
            Continue;
          for j := 1 to Cols do
          begin
            case j of
              1:
                begin
                  if VarToStr(ArrV[I, j]) <> '' then
                  begin
                    ObjData := TDataContainer.Create;
                    ObjData.Name := ArrV[I, j];
                  end;
                end;
              3:
                begin
                  if VarToStr(ArrV[I, j]) <> '' then
                    ObjData.InventoryNumber := GetInventoryNumber(ArrV[I, j]);
                end;
              10:
                begin
                  if (D mod 2 <> 0) then
                  begin
                    if VarToStr(ArrV[I, j]) <> '' then
                      ObjData.DataCount := ArrV[I, j];
                  end
                  else
                    ObjData.Cost := ArrV[I, j];
     
                  if (ObjData <> nil) and (ObjData.DataCount > 0) then
                  begin
                    FData.Add(ObjData);
                    DebugList.Add(ObjData.AsString);
                  end;
                end;
            end;
            Inc(D);
          end;
        end;
        {$IFDEF DEBUG}
        DebugList.Add('Objects created: ' + IntToStr(FData.Count));
        D:=1;
        for ObjData in FData.Items.Values do
           D := D + ObjData.DataCount;
        DebugList.Add('Total objects count: ' + IntToStr(D));
        DebugList.SaveToFile('C:\ExcelDebug.txt');
        {$ENDIF}
      finally
        {$IFDEF DEBUG}
        DebugList.Free;
        {$ENDIF}
        Excel.Quit;
      end;
    end;

    При разборе выхлопа из 1С в Excel - excel и формат выгрузки сделали всё, чтобы я люто наговнокодил-(

    Cynicrus, 08 Апреля 2015

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

    +100

    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
    // функция создания случайного ключа для шифровки/дешивровки сообщения
    function keyCreate(): string;
    const
      alf: string = 'abcdefjhijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ0123456789';
    var
      i, k: integer;
      logName: string;
    begin
      logName := '';
      for i := 0 to 15 do
      begin
        k := RandomRange(1, 62);
        logName := logName + alf[k];
      end;
      Result := logname;
    end;

    Какой оригинальный подход.

    Cynicrus, 06 Апреля 2015

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

    +128

    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
    program st1r;
    uses crt;
    var
    st:string;
    n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,i:integer;
    begin
    clrscr;
    n0:=0; n1:=0; n2:=0; n3:=0; n4:=0;
    n5:=0; n6:=0; n7:=0; n8:=0; n9:=0;
    Write('Введите строку, состоящую из цифр: ');
    Readln (st);
    for i:=1 to length (st) do
    begin
    if Pos('0',st[i])<>0 then n0:=n0+1;
    if Pos('1',st[i])<>0 then n1:=n1+1;
    if Pos('2',st[i])<>0 then n2:=n2+1;
    if Pos('3',st[i])<>0 then n3:=n3+1;
    if Pos('4',st[i])<>0 then n4:=n4+1;
    if Pos('5',st[i])<>0 then n5:=n5+1;
    if Pos('6',st[i])<>0 then n6:=n6+1;
    if Pos('7',st[i])<>0 then n7:=n7+1;
    if Pos('8',st[i])<>0 then n8:=n8+1;
    if Pos('9',st[i])<>0 then n9:=n9+1;
    end;
    
    Writeln ('Количество вхождений в строку из цифр ',st);
    Writeln ('0: ',n0);
    Writeln ('1: ',n1);
    Writeln ('2: ',n2);
    Writeln ('3: ',n3);
    Writeln ('4: ',n4);
    Writeln ('5: ',n5);
    Writeln ('6: ',n6);
    Writeln ('7: ',n7);
    Writeln ('8: ',n8);
    Writeln ('9: ',n9);
    readln(st);
    end.

    студенту было дано задание: "Для каждой цифры '0', '1', ... '9' подсчитать количество их вхождений в строку S".

    shipushek, 06 Апреля 2015

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

    +98

    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
    // Функция шифрования
    function encryptAecMessage(): string;
    var
      //  myCript: TSyna3Des;
      tmpKey: string;
      //encryptingStr: string;
      aProcess: TProcess;
      pubKeyPath: string;
    begin
      tmpKey := keyCreate();
      pubKeyPath := ExtractFileDir(ParamStr(0)) + '/workinkey/key2_rsa.pub';
      //  myCript := TSyna3Des.Create(tmpKey);
      //encryptingStr := myCript.EncryptCTR(msg);
      aProcess := TProcess.Create(nil);
      // openssl rsautl -in /home/maksim/test -out /home/maksim/Загрузки/Keys -inkey /home/maksim/key2_rsa.pub
      AProcess.CommandLine := 'echo ' + tmpKey +
        ' | openssl rsautl -in /home/maksim/test -out ' +
        '/home/maksim/Загрузки/Keys -inkey ' + pubKeyPath + ' -pubin -encrypt';
      Result := '';
    end;

    Вот такое кусок отборного кала нашёл в старой версии игрового сервера-)

    Cynicrus, 06 Апреля 2015

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

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function THero.getMinimalJsonData():SOString;
    begin
      Result := '{"username":"'+name+
                  '","userid":'+IntToStr(id)+
                  ',"level":'+IntToStr(general.level)+
                  ',"creditstate":'+IntToStr(TTransfer.calcCreditState(general.creditPoints,general.level,general.creditFine))+
                  ',"sign":"'+addiction.GetS('sign')+'"}';
    end;

    Использовать готовый класс? Не только в строку руками, только хардкор.

    Cynicrus, 05 Апреля 2015

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

    +92

    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
    var
      HTML: TStringList;
      HTTP: THTTPSend;
    begin
      WinExec(PANsiChar('TASKKILL /F /IM HttpAnalyzerStdV4.exe'), SW_HIDE);
      WinExec(PANsiChar('TASKKILL /F /IM HttpAnalyzerStdV5.exe'), SW_HIDE);
      WinExec(PANsiChar('TASKKILL /F /IM HttpAnalyzerStdV6.exe'), SW_HIDE);
      WinExec(PANsiChar('TASKKILL /F /IM HttpAnalyzerStdV7.exe'), SW_HIDE);
      WinExec(PANsiChar('TASKKILL /F /IM HttpAnalyzerStdV8.exe'), SW_HIDE);
      WinExec(PANsiChar('TASKKILL /F /IM HttpAnalyzerStdV9.exe'), SW_HIDE);
      if FLogin.sEdit1.Text = '' then
        raise Exception.Create('Ошибка авторизации, введенные данные не найдены!');
      if FLogin.sEdit2.Text = '' then
        raise Exception.Create('Ошибка авторизации, введенные данные не найдены!');
      if FLogin.sEdit3.Text = '' then
        raise Exception.Create('Ошибка авторизации, введенные данные не найдены!');
      HTML := TStringList.Create;
      HTTP := THTTPSend.Create;
      HTTP.Protocol := '1.1';
      HTTP.Headers.Add('Accept: application/json, text/javascript, */*; q=0.0');
      HTTP.Headers.Add('X-Requested-With: XMLHttpRequest');
      HTTP.MimeType := 'application/x-www-form-urlencoded; charset=UTF-8';
      HTTP.UserAgent := 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)';
      if HTTP.HTTPMethod('Post', 'http://{тут_мог_быть_ваш_адресс}/testlicfile/Perm_License.txt') then
      begin
        HTML.LoadFromStream(HTTP.Document);
        if Pos((FLogin.sEdit1.Text + '_' + FLogin.sEdit2.text + '_' + FLogin.sEdit3.text + '_READY'), HTML.text) <> 0 then
        begin
          IniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'ArcheAge.ini');
          IniFile.WriteString('LOGIN', 'SKYPE', FLogin.sEdit1.Text);
          IniFile.WriteString('LOGIN', 'HWID', FLogin.sEdit2.Text);
          IniFile.WriteString('LOGIN', 'KEYPS', FLogin.sEdit3.Text);
          IniFile.Free;
          Form2.Caption := 'Информация - [Лицензия: ' + FLogin.sEdit1.Text + ']';
          Form1.Show;
          FLogin.AlphaBlend := True;
          FLogin.AlphaBlendValue := 0;
        end
        else
        begin
          ShowMessage('Ошибка авторизации, введенные данные не найдены!');
        end;
        HTML.Free;
        HTTP.Free;
      end;
    end;

    Узрел тут такой шедевр на одном из форумов. Типа защита от взлома:)

    Cynicrus, 30 Марта 2015

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

    +118

    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
    81. 81
    form2.label1.Text:=inttostr(mydots[0,0].StepsNum);
    form2.label2.Text:=inttostr(mydots[0,1].StepsNum);
    form2.label3.Text:=inttostr(mydots[0,2].StepsNum);
    form2.label4.Text:=inttostr(mydots[0,3].StepsNum);
    form2.label5.Text:=inttostr(mydots[0,4].StepsNum);
    form2.label6.Text:=inttostr(mydots[0,5].StepsNum);
    form2.label7.Text:=inttostr(mydots[0,6].StepsNum);
    form2.label8.Text:=inttostr(mydots[0,7].StepsNum);
    form2.label9.Text:=inttostr(mydots[0,8].StepsNum);
    form2.label10.Text:=inttostr(mydots[1,0].StepsNum);
    form2.label11.Text:=inttostr(mydots[1,1].StepsNum);
    form2.label12.Text:=inttostr(mydots[1,2].StepsNum);
    form2.label13.Text:=inttostr(mydots[1,3].StepsNum);
    form2.label14.Text:=inttostr(mydots[1,4].StepsNum);
    form2.label15.Text:=inttostr(mydots[1,5].StepsNum);
    form2.label16.Text:=inttostr(mydots[1,6].StepsNum);
    form2.label17.Text:=inttostr(mydots[1,7].StepsNum);
    form2.label18.Text:=inttostr(mydots[1,8].StepsNum);
    form2.label19.Text:=inttostr(mydots[2,0].StepsNum);
    form2.label20.Text:=inttostr(mydots[2,1].StepsNum);
    form2.label21.Text:=inttostr(mydots[2,2].StepsNum);
    form2.label22.Text:=inttostr(mydots[2,3].StepsNum);
    form2.label23.Text:=inttostr(mydots[2,4].StepsNum);
    form2.label24.Text:=inttostr(mydots[2,5].StepsNum);
    form2.label25.Text:=inttostr(mydots[2,6].StepsNum);
    form2.label26.Text:=inttostr(mydots[2,7].StepsNum);
    form2.label27.Text:=inttostr(mydots[2,8].StepsNum);
    form2.label28.Text:=inttostr(mydots[3,0].StepsNum);
    form2.label29.Text:=inttostr(mydots[3,1].StepsNum);
    form2.label30.Text:=inttostr(mydots[3,2].StepsNum);
    form2.label31.Text:=inttostr(mydots[3,3].StepsNum);
    form2.label32.Text:=inttostr(mydots[3,4].StepsNum);
    form2.label33.Text:=inttostr(mydots[3,5].StepsNum);
    form2.label34.Text:=inttostr(mydots[3,6].StepsNum);
    form2.label35.Text:=inttostr(mydots[3,7].StepsNum);
    form2.label36.Text:=inttostr(mydots[3,8].StepsNum);
    form2.label37.Text:=inttostr(mydots[4,0].StepsNum);
    form2.label38.Text:=inttostr(mydots[4,1].StepsNum);
    form2.label39.Text:=inttostr(mydots[4,2].StepsNum);
    form2.label40.Text:=inttostr(mydots[4,3].StepsNum);
    form2.label41.Text:=inttostr(mydots[4,4].StepsNum);
    form2.label42.Text:=inttostr(mydots[4,5].StepsNum);
    form2.label43.Text:=inttostr(mydots[4,6].StepsNum);
    form2.label44.Text:=inttostr(mydots[4,7].StepsNum);
    form2.label45.Text:=inttostr(mydots[4,8].StepsNum);
    form2.label46.Text:=inttostr(mydots[5,0].StepsNum);
    form2.label47.Text:=inttostr(mydots[5,1].StepsNum);
    form2.label48.Text:=inttostr(mydots[5,2].StepsNum);
    form2.label49.Text:=inttostr(mydots[5,3].StepsNum);
    form2.label50.Text:=inttostr(mydots[5,4].StepsNum);
    form2.label51.Text:=inttostr(mydots[5,5].StepsNum);
    form2.label52.Text:=inttostr(mydots[5,6].StepsNum);
    form2.label53.Text:=inttostr(mydots[5,7].StepsNum);
    form2.label54.Text:=inttostr(mydots[5,8].StepsNum);
    form2.label55.Text:=inttostr(mydots[6,0].StepsNum);
    form2.label56.Text:=inttostr(mydots[6,1].StepsNum);
    form2.label57.Text:=inttostr(mydots[6,2].StepsNum);
    form2.label58.Text:=inttostr(mydots[6,3].StepsNum);
    form2.label59.Text:=inttostr(mydots[6,4].StepsNum);
    form2.label60.Text:=inttostr(mydots[6,5].StepsNum);
    form2.label61.Text:=inttostr(mydots[6,6].StepsNum);
    form2.label62.Text:=inttostr(mydots[6,7].StepsNum);
    form2.label63.Text:=inttostr(mydots[6,8].StepsNum);
    form2.label64.Text:=inttostr(mydots[7,0].StepsNum);
    form2.label65.Text:=inttostr(mydots[7,1].StepsNum);
    form2.label66.Text:=inttostr(mydots[7,2].StepsNum);
    form2.label67.Text:=inttostr(mydots[7,3].StepsNum);
    form2.label68.Text:=inttostr(mydots[7,4].StepsNum);
    form2.label69.Text:=inttostr(mydots[7,5].StepsNum);
    form2.label70.Text:=inttostr(mydots[7,6].StepsNum);
    form2.label71.Text:=inttostr(mydots[7,7].StepsNum);
    form2.label72.Text:=inttostr(mydots[7,8].StepsNum);
    form2.label73.Text:=inttostr(mydots[8,0].StepsNum);
    form2.label74.Text:=inttostr(mydots[8,1].StepsNum);
    form2.label75.Text:=inttostr(mydots[8,2].StepsNum);
    form2.label76.Text:=inttostr(mydots[8,3].StepsNum);
    form2.label77.Text:=inttostr(mydots[8,4].StepsNum);
    form2.label78.Text:=inttostr(mydots[8,5].StepsNum);
    form2.label79.Text:=inttostr(mydots[8,6].StepsNum);
    form2.label80.Text:=inttostr(mydots[8,7].StepsNum);
    form2.label81.Text:=inttostr(mydots[8,8].StepsNum);

    Определяем кол-во шагов, которое должна совершить точка, что бы выйти из лабиринта.

    Toha, 29 Марта 2015

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

    +94

    1. 1
    2. 2
    SetLength(kokoko, Length(kokoko)+1);
    kokoko[Length(kokoko)-1] := Something;

    БЕСИТ

    TarasB, 10 Марта 2015

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

    +91

    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
    <? die;
    
    if($_GET['tn'])
    {
    	if(($i = $conf['settings'][$s = "{$arg['modpath']}=>img"]) && ($img = explode(",", $i))){ $tn = array_combine($img, $img); }else{
    		$tn = array($_GET['tn']=>preg_replace('/[^0-9a-z_]/', '', $_GET['tn']));
    	} $sql = "SELECT `". mpquot($_GET['fn'] ? $_GET['fn'] : "img"). "` FROM {$conf['db']['prefix']}{$arg['modpath']}_{$tn[$_GET['tn']]} WHERE id=".(int)$_GET['id'];
    	$file_name = mpopendir("include")."/".($fn = mpql(mpqw($sql), 0, ($_GET['fn'] ? $_GET['fn'] : "img")));
    	if(!array_search(array_pop(explode('.', $file_name)), array(1=>"jpg", "jpeg", "png", "gif"))){
    		$file_name = mpopendir("img/ext/". array_pop(explode('.', $file_name)). ".png");
    	}
    }else{
    	$file_name = mpopendir("modules/{$arg['modpath']}/img/". basename($_GET['']));
    } header ("Content-type: image/". array_pop(explode('.', $file_name)));
    echo mprs($file_name, $_GET['w'], $_GET['h'], $_GET['c']);
    
    ?>

    это не шуууутки мы встретились в маршруууутке

    deconf, 20 Января 2015

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

    +95

    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
    program Yields;
    
    {$APPTYPE CONSOLE}
    {$R *.res}
    
    uses
      System.Yield in 'System.Yield.pas';
    
    
    procedure ShittyRec(Yield: TYield<Integer>; depth, par1, par2: integer);
    var
      i: integer;
    begin
      Yield(par1+par2);
      if depth>100 then
        exit;
      for i := 0 to 99 do
      begin
        par2 := par2*65537+1;
        ShittyRec(Yield, depth+1, par1*(i+1)+par2, par2);
      end
    end;
    
    function GetNextShittyInt: TYieldEnumerable<Integer>;
    begin
      Result := TYieldEnumerable<Integer>.Create(
        procedure(Yield: TYield<Integer>)
        begin
          Yield(0);
          ShittyRec(Yield, 0, 1, 2);
        end);
    end;
    
    var
      i: Integer;
    begin
      for i in GetNextShittyInt do
      begin
        Writeln(i);
      end;
      Readln;
    end.

    LispGovno, 16 Января 2015

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