Advertisement
Guest User

Untitled

a guest
Jan 24th, 2015
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. daysOfWeek = new Array("Понедельник", "Вторник", "Среда",
  2.                         "Четверг", "Пятница", "Суббота");
  3. var count = daysOfWeek.length;
  4.  
  5. kateSchedule = {
  6.   dayOfWeek: new Array(),
  7.   startLessons: new Array(),
  8.   endLessons: new Array()
  9. };
  10.  
  11. vladSchedule = {
  12.   dayOfWeek: new Array(),
  13.   startLessons: new Array(),
  14.   endLessons: new Array()
  15. };
  16.  
  17. (function Main () {
  18.   addScheduleForKate();
  19.   addScheduleForVlad();
  20.   showShedules();
  21.   analysisShedules();
  22. })();
  23.  
  24. function addScheduleForKate() {
  25.    alert('Ввод расписания Кати');
  26.    for (var i = 0; i < count; i++) {
  27.         kateSchedule.dayOfWeek[i] = daysOfWeek[i];
  28.         kateSchedule.startLessons[i] = prompt("С какой пары начинаются пары в "
  29.                                              + daysOfWeek[i] + "?");
  30.         kateSchedule.endLessons[i] = prompt("По какую?");
  31.    }
  32. }
  33.  
  34. function addScheduleForVlad() {
  35.    alert('Ввод расписания Влада');
  36.    for (var i = 0; i < count; i++) {
  37.         vladSchedule.dayOfWeek[i] = daysOfWeek[i];
  38.         vladSchedule.startLessons[i] = prompt("С какой пары начинаются пары в "
  39.                                              + daysOfWeek[i] + "?");
  40.         vladSchedule.endLessons[i] = prompt("По какую?");
  41.    }
  42. }
  43.  
  44. function showShedules() {
  45.     var div = document.getElementById('info'), string;
  46.     div.innerHTML+='<b>'+"Расписание Кати: "+'</b><br>';
  47.     for (var i = 0; i < count; i++) {
  48.       if (isFreeDay(kateSchedule.startLessons[i], kateSchedule.endLessons[i])) {
  49.         string = daysOfWeek[i]+": "+'<font style="color:green">'+" Выходной день"+'</font><br>';
  50.       }
  51.       else {
  52.         string = daysOfWeek[i]+": с "+ kateSchedule.startLessons[i]+
  53.           " по "+kateSchedule.endLessons[i]+'<br>';
  54.       }
  55.       div.innerHTML+=string;
  56.     }
  57.     div.innerHTML+='<br><b>'+"Расписание Влада: "+'</b><br>';
  58.     for (var i = 0; i < count; i++) {
  59.       if (isFreeDay(vladSchedule.startLessons[i], vladSchedule.endLessons[i])) {
  60.         string = daysOfWeek[i]+": "+'<font style="color:green">'+" Выходной день"+'</font><br>';
  61.       }
  62.       else {
  63.         string = daysOfWeek[i]+": с "+ vladSchedule.startLessons[i]+
  64.         " по "+vladSchedule.endLessons[i]+'<br>';
  65.       }
  66.       div.innerHTML+=string;
  67.     }
  68.     div.innerHTML+='<br><br>';
  69. }
  70.  
  71. // конструктор для объекта с рез-тами анализа
  72. function createObject() {
  73.     this.daysOfWeek = new Array();
  74.     this.freeTimes = new Array();
  75. }
  76.  
  77. function isFreeDay(startLesson, endLesson) {
  78.     return (startLesson == 0 && endLesson == 0) ? true : false;
  79. }
  80.  
  81. function UnionSortArr(A,B)
  82. {
  83.     var N = A.length, M = B.length, C = [];
  84.  
  85.     for (var i=0, j=0, k=0; k<N+M; k++)      
  86.      { if (i==N){ C[k] = B[j++]; continue; }  
  87.        if (j==M){ C[k] = A[i++]; continue; }
  88.        C[k] = (A[ i ]<B[j]) ? A[i++] : B[j++];
  89.      }
  90.  
  91.     for (var i=1, j=C[0], k=1; i<N+M; i++)  
  92.      { if (C[ i ] !== j)                
  93.         { C[k++] = C[ i ]; j = C[ i ]; }
  94.      }
  95.     C.length = k;    
  96.     return C;                
  97. }                  
  98.  
  99. function analysisShedules() {
  100.     var analysisResult = new createObject();
  101.     for (var i = 0; i < count; i++) {
  102.         var A = new Array(), B = new Array();
  103.         for (var j=vladSchedule.startLessons[i]-1;j<=vladSchedule.endLessons[i];j++) A[A.length] = j;
  104.         for (var v=kateSchedule.startLessons[i]-1;v<=kateSchedule.endLessons[i];v++) B[B.length] = v;
  105.         analysisResult.daysOfWeek[i] = daysOfWeek[i];
  106.         A.splice(0,1); B.splice(0,1);
  107.         analysisResult.freeTimes[i] = UnionSortArr(A, B);
  108.     }
  109.     showAnalysisResult(analysisResult);
  110. }
  111.  
  112. function showAnalysisResult(analysisResult)
  113. {
  114.   var div = document.getElementById('info'), string;
  115.   for (var i = 0; i < count; i++) {
  116.         string = analysisResult.daysOfWeek[i]+": "+analysisResult.freeTimes[i]+'<br>';
  117.         div.innerHTML+=string;
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement