1. VisualBasic / Говнокод #16053

    −125

    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
    Private Sub Command1_Click()
    Dim day, month, year, sum, ost As Integer
    day = Text1.Text
    month = Text2.Text
    year = Text3.Text
    point:
    If ((sum + 30) < 5000) Then
        If (month > 12) Then month = 1
        year = year + 1
        End If
        
        Select Case month
        Case 1
            sum = sum + 31
        Case 2
            If (year Mod 4 = 0) Then sum = sum + 29
            Else
                sum = sum + 28
            End If
        Case 3
            sum = sum + 31
        Case 4
            sum = sum + 30
        Case 5
            sum = sum + 31
        Case 6
            sum = sum + 30
        Case 7
            sum = sum + 31
        Case 8
            sum = sum + 31
        Case 9
            sum = sum + 30
        Case 10
            sum = sum + 31
        Case 11
            sum = sum + 30
        Case 12
            sum = sum + 31
        End Select
        
        month = month + 1
        GoTo point
    End If
     
    If (month > 12) Then
    month = 1
    year = year + 1
    End If
     
    ost = 5000 - sum
     
    If (ost = 0) Then
     
    Select Case month
    Case 1
        ost = 31
    Case 2
        If (year Mod 4 = 0) Then ost = 29
        Else: ost = 28
        End If
    Case 3
        ost = 31
    Case 4
        ost = 30
    Case 5
        ost = 31
    Case 6
        ost = 30
    Case 7
        ost = 31
    Case 8
        ost = 31
    Case 9
        ost = 30
    Case 10
        ost = 31
    Case 11
        ost = 30
    Case 12
        ost = 31
    End Select
     
    End If
     
    Text4.Text = ost
    Text5.Text = month
    Text6.Text = year
     
     
     
    End Sub

    Знакомому надо программу перевести с С++. Я так и не понял как здесь возвращать значения функции и как её вообще объявлять, но не в этом дело. Всплывает сообщение об ошибке при работе программы "else without if" и выделяет мне ELSE на 17 строке. Что я делаю не так? Взято с: http://www.cyberforum.ru/visual-basic/thread1187002.html

    Запостил: invDS, 24 Мая 2014

    Комментарии (14) RSS

    • Парень не написал, что кодит первые 20 минут =)
      Ответить
      • Если парень написал такое за 20 минут своего первого кодерства, надо бросать это дело к черту!
        Ответить
    • cleaned
      Ответить
      • > В остальном - код, как код.
        Но длины месяцев все-таки стоит положить в массив. Тем более их тут два раза юзают.
        Ответить
      • > трудноуловимые баги будут гарантированы
        А почему? Это какие-то зарезервированные имена, или слишком мало смысла в них?

        P.S. Вспомнилось: в PHP можно использовать имена без знака "$", они будут строками (XXX - эквивалентно "XXX"), если не определены. Используя в коде MY_PAAMAYIM_NEKUDOTAYIM, можно пострадать после того, как в новой версии введут MY_PAAMAYIM_NEKUDOTAYIM.
        Ответить
        • > можно использовать имена без знака "$"
          > если не определены
          Нотис будет в логах. Так что нельзя. Это атавизм от пёрла, на который даже там давно забили (подобный код падает с ошибкой при use strict).
          Ответить
          • кстати - использование доллара для переменных - отличный способ избежать случайного совпадения с зарезервированными словами.
            частично спасает венгерская нотация.
            Ответить
            • *плейсхолд для очередного срача избыточно ли ее вообще юзать *
              Ответить
        • cleaned
          Ответить
    • cleaned
      Ответить
    • Встречаются как то два дурака, один на бейсике кодит - второй на плюсах, да так, что код на бейсике прочитать не может... так вот первый второму - "конвертни кодца" а второй - "сложно, моя непонимать, пойду совета просить" а потом весь говно код - "вах-вах-вах".
      Ответить

    Добавить комментарий