1. Лучший говнокод

    В номинации:
    За время:
  2. Pascal / Говнокод #4816

    +145

    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
    program bag; var numbers, weight, price : array[1..100] of byte; 
    fraction : array[1..100] of real; n, i, f, max, s, temp_i : byte; 
    temp_r : real; begin writeln('Input number of goods and maximal 
    weight: '); readln(n, max); writeln; randomize; for i := 1 to n do 
    begin numbers[i] := i; weight[i] := random(254) + 1; write(weight[i],
    ' '); price[i] := random(254) + 1; write(price[i], ' '); fraction[i]
    := price[i] / weight[i]; writeln(fraction[i]:0:2); end; f := 1; 
    while (f = 1) do begin f := 0; for i := 1 to n-1 do begin if (
    fraction[i] < fraction[i + 1]) then begin if (price[i] < price[i + 1
    ]) then begin temp_r := fraction[i + 1]; fraction[i + 1] := fraction[
    i]; fraction[i] := temp_r; temp_i := weight[i + 1]; weight[i + 1] := 
    weight[i]; weight[i] := temp_i; temp_i := numbers[i + 1]; numbers[i +
    1] := numbers[i]; numbers[i] := temp_i; f := 1; end; end; end; end; 
    s := 0; i := 1; while (s + weight[i] <= max) do begin writeln(numbers
    [i]); s := s + weight[i]; inc(i); end; readln; end.

    Geany отформатировал код :)

    bazhenovc, 02 Декабря 2010

    Комментарии (16)
  3. PHP / Говнокод #4761

    +144

    1. 1
    2. 2
    3. 3
    <?php
    echo "<html><head><meta http-equiv='Refresh' content='0; url=index.php'></head></html>";
    ?>

    Народ, мне сегодня на собеседовании сказали, что такой редирект - это говнокод. Эт правда?

    master_olegi, 26 Ноября 2010

    Комментарии (16)
  4. Java / Говнокод #4732

    +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
    //-----------------------------------------------------------------------------------------------------------
    // Создаю ПОСВИДЧЕННЯ ПРО ВИДРЯДЖЕННЯ
    // Создаю тело документа
    FunForServices.writeToLog(2, ps, "create PPV");
    
    rs1 = stat1.executeQuery("Select D.DEPAR_Name As Dep, rtrim(L.LDAP_Name) as FIO, P.PEOP_Posit As Pos From IPS..PEOP P, IPS..LDAP L, IPS..DEPAR D Where L.LDA_LDAP_Login=D.LDAP_Login and L.LDAP_Login=P.LDAP_Login and L.LDAP_Login='"+rs.getString("Login")+"'");
    rs1.next();
    rez1="<?xml version=''1.0'' ?><u1><st><![CDATA[";
    rez1+="<table width=\"100%\" border=0><tr><td width=\"33%\" align=right><table width=\"33%\"><tr>";
    rez1+="<td style=\"FONT-WEIGHT: bold; FONT-SIZE: x-small; FONT-FAMILY: Arial; TEXT-ALIGN: center\">";
    rez1+="ЗАТВЕРДЖЕНО</td></tr><tr><td style=\"FONT-WEIGHT: bold; FONT-SIZE: x-small; FONT-FAMILY: Arial; TEXT-ALIGN: center\">";
    rez1+="наказом Державної податкової</td></tr><tr><td style=\"FONT-WEIGHT: bold; FONT-SIZE: x-small; FONT-FAMILY: Arial; TEXT-ALIGN: center\">";
    rez1+="адмiнiстрацiї України вiд</td></tr><tr><td style=\"FONT-WEIGHT: bold; FONT-SIZE: x-small; FONT-FAMILY: Arial; TEXT-ALIGN: center\">";
    rez1+="28.07.97 г. N 260</td></tr></table></td></tr><tr><td><br><br></td></tr><tr><td align=middle><I><B><FONT face=Arial size=4>ПОСВIДЧЕННЯ ПРО ВIДРЯДЖЕННЯ N</FONT></B></I>";
    rez1+="<td>                     </td>";
    //////////////////////////////////////
    //	строк 30 такого
    //////////////////////////////////////
    rez1+="<TR><TD> </TD></TR><TR><TD><TABLE cellSpacing=0 cellPadding=0 width=\"100%\"><TR><TD align=left><STRONG><EM><FONT face=Arial>КЕРIВНИК</FONT></EM></STRONG></TD><TD align=middle id=pod>Пiдпис</TD>";
    rez1+="<TD align=right onclick=StampUtv(\""+sign+"\")><B>"+utvfio+"</B></TD></TR></TABLE></TD></TR><TR><TD> </TD></TR><TR><TD><STRONG><FONT face=Arial>М.П.</FONT></STRONG></TD></TR></TABLE></TD></TR>";
    rez1+="</table>";
    rez1+="]]></tp></u1>";
    
    rs1 = stat1.executeQuery("Declare @Rez int exec GetCardNum "+FunForServices.Year+", '"+rs.getString("Login")+"', 'A', @Rez out Select @Rez");
    rs1.next();
    annNumb1 = rs1.getInt(1);
    
    rs1 = stat1.executeQuery("Declare @Rez int exec GetCardNum "+FunForServices.Year+", '"+rs.getString("Login")+"' , 'C', @Rez out Select @Rez");
    rs1.next();
    ndoc1=rs1.getInt(1);
    FunForServices.CreateBody(ndoc1, 0, "DocB", rez1, stat1);
    FunForServices.writeToLog(2, ps, ndoc1+" for "+rs.getString("Login"));
    
    rs1=stat1.executeQuery("AddDocCard "+rs.getInt("Act")+", '"+utv+"', "+ndoc+", "+rs.getInt("Grup")+", 1, 4,'"+regndoc.substring(0,regndoc.lastIndexOf("-"))+"', 'ПОСВIДЧЕННЯ ПРО ВIДРЯДЖЕННЯ', null,'"+annot+"', 'Нормальный', 4, null, null, null, null, null, null, '"+pk+"', ';"+utv+"', null, ';"+rs.getString("Login")+"', '"+pkdat+"', @IIdDocCard="+ndoc1+", @IIdAttending = "+annNumb1);
    stat1.executeUpdate("Constatation "+ndoc1+", '"+utv+"'");
    FunForServices.writeToLog(6, ps, "");

    лайно з Украïни...

    3.14159265, 24 Ноября 2010

    Комментарии (16)
  5. PHP / Говнокод #4636

    +162

    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
    ..............
    
    $q = mysql_query("SELECT * FROM `$TBL` $WHERE ORDER BY `id`") or die(mysql_error());
    while ($l = mysql_fetch_array($q)) {
    	$result[] = $l;
    	sleep(0.4);
    	$pause = $pause + 0.4;
    
    }
    unset($q);
    
    mysql_close($link);
    
    // получили объект из первой базы
    print ('Получили данные из главной базы N' . $i . '.');
    
    include_once ('start.php');
    
    $sync = rand(10, 99999); // случайное число для проверки синхронизации
    // заносим данные
    
    foreach ($result as $sync_arr) {
    	$id = $sync_arr['id'];
    	//print($id.'<br /><br />');
    	$sch = 0;
    	while ($sch <= 50) {
    		if (isset($sync_arr[$sch])) unset($sync_arr[$sch]);
    		$sch++;
    	}
    
    	$sync_arr['sync'] = $sync;
    
    	$pr = $ExpGlobal['DBCONN']->RowExists($TBL, 'id', $id);
    	if ($pr) {
    		//print_r_pre($sync_arr);
    		$ExpGlobal['DBCONN']->UpdateRow($TBL, $id, $sync_arr);
    		sleep(0.4);
    		$pause = $pause + 0.4;
    
    		$s++;
    	}
    	else {
    		$ExpGlobal['DBCONN']->InsertRow($TBL, $sync_arr);
    		sleep(0.4);
    		$pause = $pause + 0.4;
    
    		$dob++;
    	}
    }
    
    ................

    Что-то вроде синхронизации из одной таблицы с другой...

    Tep, 15 Ноября 2010

    Комментарии (16)
  6. Perl / Говнокод #4594

    −121

    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
    sub captcha {
    	my $msg = $_[0];
    	## make colors for validation image into hex again ##
    	$rgb_foreground =~ s/\#//g;
    	$rgb_shade =~ s/\#//g;
    	$rgb_background =~ s/\#//g;
    	$r_f = substr($rgb_foreground,0,2);
    	$g_f = substr($rgb_foreground,2,2);
    	$b_f = substr($rgb_foreground,4,2);
    	$r_s = substr($rgb_shade,0,2);
    	$g_s = substr($rgb_shade,2,2);
    	$b_s = substr($rgb_shade,4,2);
    	$r_b = substr($rgb_background,0,2);
    	$g_b = substr($rgb_background,2,2);
    	$b_b = substr($rgb_background,4,2);
    // Тут я вырезал кусок никчемного кода
    $ci{' '} = qq~
    .......
    .......
    .......
    .......
    .......
    .......
    .......
    .......
    .......
    .......
    ~;
    $ci{'!'} = qq~
    .......
    ...X...
    ...X...
    ...X...
    ...X...
    ...X...
    .......
    ...X...
    .......
    .......
    ~;
    $ci{'"'} = qq~
    .......
    ..X.X..
    ..X.X..
    ..X.X..
    .......
    .......
    .......
    .......
    .......
    .......
    ~;
    $ci{'#'} = qq~
    .......
    ..X.X..
    ..X.X..
    .XXXXX.
    ..X.X..
    .XXXXX.
    ..X.X..
    ..X.X..
    .......
    .......
    ~;
    $ci{'$'} = qq~
    .......
    ...X...
    ..XXXX.
    .X.X...
    ..XXX..
    ...X.X.
    .XXXX..
    ...X...
    .......
    .......
    ~;
    // Дальше идет вся таблица ASCII

    Вот таким вот образом выводили каптчу в далеком 2009 году. Очень надежный метод :)

    Arigato, 11 Ноября 2010

    Комментарии (16)
  7. PHP / Говнокод #4555

    +145

    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
    /**
         * Получаем права на объект.
         *
         * @param  string $fullHref
         * @param  string $method
         * @param  string $params
         * @param  string $type
         * @return object $this
         * @access public
         */
    
        public function getPermsHref( $object, $method = '*', $params = false, $type = 'module', $url = false )
        {
           $registr = URegistry::getInstance();
           $sql     = $registr->SQuery->getAcl();
    
           if ( $type == 'url' && $url )
             {
               $sql['where'] = "`o`.`type` = 'url' and `o`.`href` = '".$url."'";
               $ac_type      = 'url';
             }
           elseif ( $type == 'module' )
             {
                $sql['where'] = "(`o`.`type` = 'module') and `o`.`name` = '".$object."'";
                if ( $method != '*' )
                    $sql['where'] .= ' or `o`.`href` = "'.$object.'/'.$method.'"';
    
                $ac_type = 'module';
             }
           else
             {
                //TODO:wtf?
             }
    
            $registr->db->build_query($sql)->safe_sql($ac_type, $this->gid)->exec();
            $perms = $registr->db->fetch_object();
    
            if ( !$perms || !$perms->permission || !$perms->groupid )
                throw new NotFoundObject();
    
            $this->perms       = $perms->permission;
            $this->groupObject = explode(',', $perms->groupid);
            $this->priv_lengh  = strlen($perms->permission);
    
            return $this;
        }
    
        /**
         * Проверка прав на объект
         *
         * @param  mixed $priv
         * @return array
         * @access public
         */
    
        public function checkPremsObject( $priv = false )
        {
            $pruf = array();
            $priv = empty($priv) ? $this->perms : $priv;
    
            if ( $this->priv_lengh <= 0 or !in_array($this->gid, $this->groupObject) )
                return false;
    
            for ( $gi = 0; $gi < $this->priv_lengh; $gi++ )
            {
                if ( in_array($priv[$gi], $this->privileges['read']) )   $pruf['read'] = true;
                if ( in_array($priv[$gi], $this->privileges['write']) )  $pruf['write'] = true;
                if ( in_array($priv[$gi], $this->privileges['delete']) ) $pruf['delete'] = true;
            }
    
            return $pruf;
        }

    Проверка прав.
    Что скажите?

    ololo, 07 Ноября 2010

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

    +111

    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
    if Z = 'Pr'
        then
          case N of
          1: Series1.Assign(Series33);
          2: Series2.Assign(Series33);
          3: Series3.Assign(Series33);
          4: Series4.Assign(Series33);
          5: Series5.Assign(Series33);
          end
        else
          if Z = 'ST'
            then
              case N of
              1: case Kolvo_Issledovanii of
                1: Series6.Assign(Series33);
                2: Series34.Assign(Series33);
                3: Series59.Assign(Series33);
                end;
    //пропущено 15 строк 
              5: case Kolvo_Issledovanii of
                1: Series10.Assign(Series33);
                2: Series38.Assign(Series33);
                3: Series63.Assign(Series33);
                end;
              end
            else
              if Z = 'TT'
                then
                  case N of
                  1:
                    case Kolvo_Issledovanii of
                    1: Series11.Assign(Series33);
                    2: Series39.Assign(Series33);
                    3: Series64.Assign(Series33);
                    end;
    //в том же духе, ещё 150 строк
    //вообще-то, в том же духе - весь код, около 5000 строк
    //...
    
    //в другом месте:
      Series1.Clear;
      Series2.Clear;
      Series3.Clear;
      Series4.Clear;
    //пропущено 75 строк
      Series80.Clear;
      Series81.Clear;
      Series82.Clear;
      Series83.Clear;
    //...
    
      Series1.Active:=false;
      Series2.Active:=false;
      Series3.Active:=false;
      Series4.Active:=false;
    //пропущено 75 строк
      Series80.Active:=false;
      Series81.Active:=false;
      Series82.Active:=false;
      Series83.Active:=false;

    Фтопку ООП!
    Такой вот диплом был сдан кем-то в прошлом году.

    maniac, 07 Ноября 2010

    Комментарии (16)
  9. PHP / Говнокод #4535

    +164

    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
    $img_type = ".jpg";
    $s = getimagesize($image);
    if ($s[2] == "1") {
    $img_type = ".gif";
    } elseif ($as2] == "3") {
    $img_type = ".png";
    }
    if ($img_type == ".jpg") {
    $img = imagecreatefromjpeg($image);
    } elseif($img_type == ".gif") {
    $img = imagecreatefromgif($image);
    } elseif ($img_type == ".png") {
    $img = imagecreatefrompng($image);
    }
    $im = add_watermark($img, $image, $watermark);
    if ($img_type == ".jpg") {
    imagejpeg($im, $image, 85);
    } elseif { ($img_type == ".gif")
    imagegif($im , $image);
    } elseif { ($img_type == ".png")
    imagepng($im , $image);
    }

    Накладываем водяной знак на изображение

    Мартин, 04 Ноября 2010

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

    +112

    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
    procedure TfmConf_PA30.btnWritePAClick(Sender: TObject);
    begin
       if WriteByVariable(11,lbLog6) then begin
        if WriteByVariable(12,lbLog6) then begin
         if WriteByVariable(13,lbLog6) then begin
          if WriteByVariable(14,lbLog6) then begin
           if WriteByVariable(15,lbLog6) then begin
            if WriteByVariable(16,lbLog6) then begin
             if WriteByVariable(17,lbLog6) then begin
              if WriteByVariable(18,lbLog6) then begin
               if WriteByVariable(19,lbLog6) then begin
                if WriteByVariable(20,lbLog6) then begin
                 if WriteByVariable(21,lbLog6) then begin
                  if WriteByVariable(22,lbLog6) then begin
                   if WriteByVariable(23,lbLog6) then begin
                    if WriteByVariable(24,lbLog6) then begin
                     if WriteByVariable(25,lbLog6) then begin
                      if WriteByVariable(26,lbLog6) then begin
                       if WriteByVariable(27,lbLog6) then begin
                        if WriteByVariable(28,lbLog6) then begin
                         if WriteByVariable(29,lbLog6) then begin
                          if WriteByVariable(30,lbLog6) then begin
                           lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (30)');
                         end else
                          lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (29)');
                        end else
                         lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (28)');
                       end else
                        lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (27)');
                      end else
                       lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (26)');
                     end else
                      lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (25)');
                    end else
                     lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (24)');
                   end else
                    lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (23)');
                  end else
                   lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (22)');
                 end else
                  lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (21)');
                end else
                 lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (20)');
               end else
                lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (19)');
              end else
               lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (18)');
             end else
              lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (17)');
            end else
             lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (16)');
           end else
            lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (15)');
          end else
           lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (14)');
         end else
          lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (13)');
        end else
         lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (12)');
       end else
        lbLog6.Items.Add('Ошибка: Нет ожидаемого ответа от оборудования (11)');
    end;

    может циклом надо было? :)
    for i:=11 to 40 do...

    pethead, 22 Октября 2010

    Комментарии (16)
  11. VisualBasic / Говнокод #4372

    −99

    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
    10 DEFM 13:VAC
    20 PRINT " Генератор."
    30 FOR N=0 TO 6:Z$(N)="00000":NEXT N
    40 CSR 0,:FOR N=6 TO 0 STEP -1:FOR M=1 TO 5
    50 IF GETC(Z$(N),M)="1";DRAW M-1,N
    60 NEXT M:NEXT N
    70 DRAW X,Y:K$=KEY
    80 DRAWC X,Y:IF K$="" THEN 70
    90 IF GETC(Z$(Y),X+1)="1";DRAW X,Y
    100 IF K$="8";IF Y<6;Y=Y+1:GOTO 70
    110 IF K$="2";IF Y>0;Y=Y-1:GOTO 70
    120 IF K$="4";IF X>0;X=X-1:GOTO 70
    130 IF K$="6";IF X<4;X=X+1:GOTO 70
    140 IF K$=" " THEN 200
    150 IF K$="I" THEN 270
    160 IF K$="C" THEN 30
    170 IF K$="D" THEN 300
    175 IF K$="U" THEN 350
    180 IF K$="P" THEN 400
    185 IF K$=CHR 123 THEN 450
    190 GOTO 70
    200 A$="1"
    210 IF GETC(Z$(Y),X+1)="1";A$="0"
    220 $=Z$(Y)
    230 B$=MID(1,X)
    240 C$=MID(X+2,4-X)
    250 Z$(Y)=B$+A$+C$
    260 GOTO 70
    270 FOR N=0 TO 6:B$="":FOR M=1 TO 5
    280 IF GETC(Z$(N),M)="0";B$=B$+"1":GOTO 290
    285 B$=B$+"0"
    290 NEXT M:Z$(N)=B$:NEXT N:GOTO 40
    300 B$=Z$
    310 FOR N=0 TO 5
    320 Z$(N)=Z$(N+1)
    330 NEXT N
    340 Z$(6)=B$
    345 GOTO 40
    350 B$=Z$(6)
    360 FOR N=6 TO 1 STEP -1
    370 Z$(N)=Z$(N-1)
    380 NEXT N:Z$=B$
    390 GOTO 40
    400 FOR N=0 TO 6
    410 Z$(N+7)=Z$(N)
    420 NEXT N
    430 FOR N=0 TO 6
    440 Z$(N)=Z$(13-N)
    445 NEXT N:GOTO 40
    450 B$="":FOR N=6 TO 0 STEP -1:S=0:L=1
    460 FOR M=5 TO 1 STEP -1
    470 S=S+VAL GETC(Z$(N),M)*L
    475 L=L*2
    480 NEXT M
    490 IF S<10; B$=B$+CHR(48+S):GOTO 510
    500 B$=B$+CHR(55+S)
    510 NEXT N
    520 CSR 2:PRINT "C=";B$;
    530 GOTO 70

    Не VisualBasic, но тоже Бейсик. Программа для микрокомпьютера Электроника МК-85М. Писал ее (и еще много других) лет 10 назад.
    Подробнее о назначении программы в комментарии.

    Arigato, 16 Октября 2010

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