ЙажаСценарий / Говнокод #19863 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 ololenok, (Updated )

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

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

    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();
    Ответить
  • Как интересно задача написана. Чтобы студенты не смогли прогуглить?
    Ответить
    • Не студенты, а преподаватели, которые лабы проверяют.
      Ответить
      • Действительно, что ли? А зачем?

        Тех, кто делает не сам, видно и так. А те, кто честно решают задачи, порою разбираются в теме ещё меньше тех, кто списал.
        Единственное здравое объяснение - что преподавателю настолько скучно, что он начинает флудить и троллить.
        Ответить
  • 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.,&
    Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8