1. JavaScript / Говнокод #19863

    0

    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
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>Task 8_1</title>
      <script type="text/javascript">
      function charRemover(item) {
      var charsMoreThanTwoTimes = "";
      var charsMoreThanTwoTimes2 = "";
      var tmpString="";
      var result = "";
      var almostResult = "";
      var nextWordBeginning = 0;
      for (var a = 0; a < item.length; a++) {
               
       if ((a == nextWordBeginning+1)&&(nextWordBeginning > 0)) {tmpString="";}
       if ((a!=item.length-1)&&((item[a]!=' ') && (item[a]!=',') && (item[a]!='.') && (item[a]!=';') && (item[a]!=':') && (item[a]!='!') && (item[a]!='?')))
       {
         tmpString = tmpString + item[a];
       }        
         
        else if ((a == item.length -1 ) && ((item[a]!=' ') && (item[a]!=',') && (item[a]!='.') && (item[a]!=';') && (item[a]!=':') && (item[a]!='!') && (item[a]!='?')))
         {
         tmpString = tmpString + item[a];
    
        for (var j = 0; j < tmpString.length; j++)
          {
              var counter = 0;
              for (var k = 0; k < tmpString.length; k++)
              {
                  if (tmpString[k] == tmpString[j]) {counter++; }
              }
              if (counter == 1) {almostResult = almostResult + tmpString[j];}
              if (counter > 1) { charsMoreThanTwoTimes = charsMoreThanTwoTimes + tmpString[j];}
          }
        } 
         
      else if ((a != item.length-1)&&((item[a]==' ') || (item[a]==',') || (item[a]=='.') || (item[a]==';') || (item[a]==':') || (item[a]=='!'))){     
         for (var j = 0; j < tmpString.length; j++)
          {
              var counter = 0;
              for (var k = 0; k < tmpString.length; k++)
              {
                  if (tmpString[k] == tmpString[j]) {counter++;}
              }
              if (counter == 1) {almostResult = almostResult + tmpString[j];}
              if (counter > 1) { charsMoreThanTwoTimes = charsMoreThanTwoTimes + tmpString[j];}          
          }
          almostResult = almostResult + item[a];
         nextWordBeginning = a;
        }
       }
      counter = 0;
    
      //пройдемся еще раз и удалим символы, которые встречаются более одного раза
      for (var i = 0; i < almostResult.length; i++)
      {
        var shoundCharToBeRemoved = false;      
         for (var j = 0 ; j < charsMoreThanTwoTimes.length; j++)
         {
             if (almostResult[i] == charsMoreThanTwoTimes[j]) {shoundCharToBeRemoved = true;}
         }
         if (shoundCharToBeRemoved == true) {}
         else {result = result + almostResult[i];}
      }
        return result;
      }
            
      var sourceString = "У попа была собака";   
      var destString = charRemover(sourceString); 
      </script>
    </head>
    <body>
        <script type="text/javascript">
            document.write(destString);
        </script>
    </body>
    </html>

    Только что начал изучать JavaScript. Знаю, что говнокод, так что не судите строго !

    Сама задача: Нanucaть функцuю, нa вxoд кoтoрoй nрuxoдuт cтрoкa, cocтoящaя uз неcкoлькux cлoв. cлoвa
    рaзделены nрoбельнымu cuмвoлaмu (nрoбел, тaбуляцuя) u знaкaмu nреnuнaнuя (?!:;,.). Нужнo
    вернуть cтрoку, в кoтoрoй будут удaлены вcе cuмвoлы, noвтoряющuеcя xoть в oднoм uз cлoв бoлее
    oднoro рaзa.

    Запостил: ololenok, 22 Апреля 2016

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

    • JavaScript не нужен
      Впрочем, как и HTML
      Ответить
    • Во-первых, открой для себя массивы и итерацию по ним. Во-вторых, разбивай на вменяемые куски или даже выделяй их в отдельные методы. Читать этот бойлерплейт нереально...
      Ответить
    • Яваскрипт не нужен.

      var sourceString = Console.ReadLine();
      var charsToDelete = sourceString.Split("?!:;,. \t".ToCharArray())
      	.SelectMany(x => x.GroupBy(y => y)
      		.Where(y => y.Count() > 1)
      		.Select(y => y.Key))
      	.Distinct()
      	.ToArray();
      Console.WriteLine(new string(sourceString.Where(x => !charsToDelete.Contains(x)).ToArray()));
      Console.ReadKey();
      Ответить
    • Как интересно задача написана. Чтобы студенты не смогли прогуглить?
      Ответить
      • Да, придётся не гуглить, а яндексить, потому что Яндекс уже в курсе «оптического» транслита:
        https://yandex.ru/search/?text=n%D1%80%D0%B5nu%D0%BDa%D0%BDu%D1%8F
        Ответить
        • Зато гугл по этому слову показывает ГК ;)
          Ответить
          • Bopeцuu, reнepeцuu, кoбeнaцuu, нamaлuзaцuu, pacnoлoжeнue uнфopмaцuu.
            Ответить
          • ждем когда гугл по запросу "гоатсе" будет показывать ГК
            Ответить
            • Не гоатсе, а roaтce.
              Ответить
              • Не roaтce, а roamce.

                P.S. А нет, не получится:
                http://www.deviantart.com/tag/roamce
                Ответить
              • Кстати: Return on Average Tangible Common Equity (ROATCE).
                Ответить
              • И контрольный в голову: Γοατσε. Хотя, может быть, правильнее так: Γκοατσε.
                Ответить
              • А ещё можно наоборот, латинские буквы подменять кириллицей: gоаtsе.

                P.S. А на этом слове Гугл почему-то догадался о транслите.
                Ответить
      • Не студенты, а преподаватели, которые лабы проверяют.
        Ответить
        • Действительно, что ли? А зачем?

          Тех, кто делает не сам, видно и так. А те, кто честно решают задачи, порою разбираются в теме ещё меньше тех, кто списал.
          Единственное здравое объяснение - что преподавателю настолько скучно, что он начинает флудить и троллить.
          Ответить
    • do =:(((2&(=/\)#}.)@/:~)@>@;:@(#~(=>./)@(',.?:!'&i.))) 
            do2 =: (#~ (= >./)@(i.~ (#~-.@=&' ')@,/@do)) 
            do2 'worlds on worlds sfddas asf a,asf e af...,'
      worl on worl f f ,f e f...,
            do2 'aa dasd fgf hds.,&'
       s g hs.,&
      Ответить
    • ITS Λ VЭЯY IИTЭЯЭSTIИG TΛSK!
      Ответить

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