N7Ved

Лабораторная работа №1 ДМ

Apr 21st, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="ru">
  3.   <head>
  4.     <title>Лабораторная работа №1</title>
  5.     <meta charset="UTF-8" />
  6.   </head>
  7.   <body>
  8.     <script>
  9.       var peremenn = "";
  10.       var prog = 0;
  11.  
  12.       /*
  13.        *проверка введённых данных на правильность
  14.        *
  15.        *проверка каждого символа на соответствие
  16.        *
  17.        *@глобальные переменные res, str
  18.        *@param mass
  19.        *return res
  20.        */
  21.  
  22.       function validate(mass) {
  23.         var res = true;
  24.         var str = "";
  25.         for (var i = 0; i < mass.length; i++) {
  26.           if (
  27.             mass[i][0] < "A" ||
  28.             mass[i][0] > "z" ||
  29.             mass[i][1] < "0" ||
  30.             mass[i][1] > "9" ||
  31.             mass[i].length >= 3
  32.           ) {
  33.             str += "Ошибка в " + i + " элементе\n";
  34.             res = false;
  35.           }
  36.         }
  37.         if (!res) alert(str);
  38.  
  39.         return res;
  40.       }
  41.  
  42.       /*
  43.        *объединение множеств
  44.        *
  45.        *вывод всех уникальных значений из 2 множеств
  46.        *
  47.        *@глобальные переменные res
  48.        *@param A,B;
  49.        *return res;
  50.        */
  51.  
  52.       function Union(A, B) {
  53.         var res = [],
  54.           str = "";
  55.         var t = A.length;
  56.         res = A;
  57.  
  58.         for (var i = 0; i < B.length; i++) {
  59.           var odin = false;
  60.           for (var j = 0; j < res.length; j++) {
  61.             if (B[i] == res[j]) odin = true;
  62.           }
  63.           if (odin == false) {
  64.             res[t] = B[i];
  65.             t++;
  66.           }
  67.         }
  68.         return "Результат объединения массивов:" + res;
  69.       }
  70.  
  71.       /*
  72.        *пересечение множеств
  73.        *
  74.        *вывод уникальных элементов которые находятся в 2 множествах одновременно
  75.        *
  76.        *@глобальные переменные res,str,t;
  77.        *@param A,B;
  78.        *return res;
  79.        */
  80.  
  81.       function Crossing(A, B) {
  82.         var res = [],
  83.           str = "";
  84.         var t = 0;
  85.         for (var i = 0; i < A.length; i++)
  86.           for (var j = 0; j < B.length; j++)
  87.             if (A[i] == B[j]) {
  88.               var odin = false;
  89.               for (var k = 0; k < res.length; k++)
  90.                 if (res[k] == B[j]) odin = true;
  91.               if (odin == false) {
  92.                 res[t] = B[j];
  93.                 t++;
  94.               }
  95.             }
  96.         return "Результат пересечения массивов:" + res;
  97.       }
  98.  
  99.       /*
  100.        * Исключение множества
  101.        *
  102.        * Вывод всех уникальных значений из множества А за исключением тех элементов которые находятся в B
  103.        *
  104.        *@глобальные переменные res,str,t;
  105.        *@param A,B;
  106.        *return res;
  107.        */
  108.  
  109.       function Сomplement(A, B) {
  110.         var res = [],
  111.           str = "";
  112.         var t = A.length;
  113.         res = A;
  114.         for (var i = 0; i < A.length; i++)
  115.           for (var j = 0; j < B.length; j++)
  116.             if (A[i] != B[j]) {
  117.               var odin = false;
  118.               for (var k = 0; k < res.length; k++)
  119.                 if (res[k] == B[j]) odin = true;
  120.               if (odin == false) {
  121.                 res[t] = B[j];
  122.                 t++;
  123.               }
  124.             }
  125.         return "Результат дополнения массивов:" + res;
  126.       }
  127.  
  128.       /*
  129.        * Cимметрическую разность множеств
  130.        *
  131.        * Вывод всех уникальных значений из 2 множеств за исключением тех элементов где они повторяются
  132.        *
  133.        *@глобальные переменные res,str,t;
  134.        *@param A,B;
  135.        *return str;
  136.        */
  137.  
  138.       function sim(A, B) {
  139.         var res = [],
  140.           str = "";
  141.         var t = 0;
  142.         for (var i = 0; i < A.length; i++)
  143.           for (var j = 0; j < B.length; j++)
  144.             if (A[i] == B[j]) {
  145.               var odin = false;
  146.               for (var k = 0; k < res.length; k++)
  147.                 if (res[k] == B[j]) odin = true;
  148.               if (odin == false) {
  149.                 res[t] = B[j];
  150.                 t++;
  151.               }
  152.             }
  153.         for (var i = 0; i < A.length && i < B.length; i++)
  154.           for (var j = 0; j < res.length; j++)
  155.             if (A[i] != res[j]) str += " " + A[i];
  156.             else if (B[i] != res[j]) str += " " + B[i];
  157.  
  158.         return "Результат симметрической разности массивов:" + str;
  159.       }
  160.  
  161.       /*
  162.        * Отрицание множества
  163.        *
  164.        * Все элементы универсалльного множества за исключением множества А
  165.        *
  166.        *@глобальные переменные G,str,t;
  167.        *@param A;
  168.        *return str;
  169.        */
  170.  
  171.       function otr(A) {
  172.         var G = [],
  173.           str = "",
  174.           res = [];
  175.         var t = 0;
  176.  
  177.         for (var i = "0".codePointAt(0); i <= "9".codePointAt(0); i++) {
  178.           for (var j = "A".codePointAt(0); j <= "Z".codePointAt(0); j++) {
  179.             G[t] = String.fromCodePoint(j);
  180.             G[t] += String.fromCodePoint(i);
  181.             t++;
  182.           }
  183.           for (var j = "a".codePointAt(0); j <= "z".codePointAt(0); j++) {
  184.             G[t] = String.fromCodePoint(j);
  185.             G[t] += String.fromCodePoint(i);
  186.             t++;
  187.           }
  188.         }
  189.         t = 0;
  190.  
  191.         for (var i = 0; i < A.length; i++)
  192.           for (var j = 0; j < G.length; j++) {
  193.             if (A[i] == G[j]) {
  194.               G[j] = 0;
  195.             }
  196.           }
  197.         for (var j = 0; j < G.length; j++) {
  198.           if (G[j] != 0) str += " " + G[j];
  199.         }
  200.         return "Результат отрицания:" + str;
  201.       }
  202.  
  203.       function getDataUser() {
  204.         var A = document.getElementById("massA").value;
  205.         A = A.split(" ");
  206.         if (!validate(A)) return;
  207.  
  208.         var B = document.getElementById("massB").value;
  209.         B = B.split(" ");
  210.         if (!validate(B)) return;
  211.         if (prog == 1)
  212.           document.getElementById("result").innerHTML = Union(A, B);
  213.         else if (prog == 2)
  214.           document.getElementById("result").innerHTML = Crossing(A, B);
  215.         else if (prog == 3)
  216.           document.getElementById("result").innerHTML = Сomplement(A, B);
  217.         else if (prog == 4)
  218.           document.getElementById("result").innerHTML = sim(A, B);
  219.         else if (prog == 5)
  220.           document.getElementById("result").innerHTML = otr(A);
  221.       }
  222.     </script>
  223.  
  224.     <form>
  225.       Первый массив <input name="A" id="massA" /> <br />
  226.       Второй массив <input name="B" id="massB" /> <br />
  227.       <input
  228.         type="button"
  229.         value="Объединение"
  230.         onClick="prog = 1;getDataUser() "
  231.       />
  232.       <input
  233.         type="button"
  234.         value="Пересечение"
  235.         onClick="prog = 2;getDataUser() "
  236.       />
  237.       <input
  238.         type="button"
  239.         value="Дополнение"
  240.         onClick="prog = 3;getDataUser() "
  241.       />
  242.       <input
  243.         type="button"
  244.         value="Симметрическая разность"
  245.         onClick="prog = 4;getDataUser()"
  246.       />
  247.       <input
  248.         type="button"
  249.         value="Отрицание"
  250.         onClick="prog = 5;getDataUser() "
  251.       />
  252.     </form>
  253.  
  254.     <div id="result"></div>
  255.     <div>
  256.       <h1>Примеры</h1>
  257.       <p>Первый массив: a1 g3 h6</p>
  258.       <p>Второй массив: g3 j6 f4</p>
  259.     </div>
  260.   </body>
  261. </html>
Add Comment
Please, Sign In to add comment