git.iko.soy/ilyakooo0.github.io
on master help sign in
Fixed typos in linal/kollok data. Fixed repeating text in linal.kollok. Added saving of linal/kollok.
commit96d0aa7efff5d03c052ed3a82fa459b83a55c5fe authorilyakooo0 <ilyakooo0@gmail.com> dateTue 29 May 2018, 16:47 (8 years ago) parentc97a350
4 files changed+242−8
javascript/js.cookie.js+165 javascript/kollok.js+73−5 linal/kollok_/kollok.html+1 linal/kollok_/theory.json+3−3
javascript/js.cookie.jsnew file+165
@@ -0,0 +1,165 @@
1+/*!
2+ * JavaScript Cookie v2.2.0
3+ * https://github.com/js-cookie/js-cookie
4+ *
5+ * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
6+ * Released under the MIT license
7+ */
8+;(function (factory) {
9+ var registeredInModuleLoader = false;
10+ if (typeof define === 'function' && define.amd) {
11+ define(factory);
12+ registeredInModuleLoader = true;
13+ }
14+ if (typeof exports === 'object') {
15+ module.exports = factory();
16+ registeredInModuleLoader = true;
17+ }
18+ if (!registeredInModuleLoader) {
19+ var OldCookies = window.Cookies;
20+ var api = window.Cookies = factory();
21+ api.noConflict = function () {
22+ window.Cookies = OldCookies;
23+ return api;
24+ };
25+ }
26+}(function () {
27+ function extend () {
28+ var i = 0;
29+ var result = {};
30+ for (; i < arguments.length; i++) {
31+ var attributes = arguments[ i ];
32+ for (var key in attributes) {
33+ result[key] = attributes[key];
34+ }
35+ }
36+ return result;
37+ }
38+
39+ function init (converter) {
40+ function api (key, value, attributes) {
41+ var result;
42+ if (typeof document === 'undefined') {
43+ return;
44+ }
45+
46+ // Write
47+
48+ if (arguments.length > 1) {
49+ attributes = extend({
50+ path: '/'
51+ }, api.defaults, attributes);
52+
53+ if (typeof attributes.expires === 'number') {
54+ var expires = new Date();
55+ expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
56+ attributes.expires = expires;
57+ }
58+
59+ // We're using "expires" because "max-age" is not supported by IE
60+ attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
61+
62+ try {
63+ result = JSON.stringify(value);
64+ if (/^[\{\[]/.test(result)) {
65+ value = result;
66+ }
67+ } catch (e) {}
68+
69+ if (!converter.write) {
70+ value = encodeURIComponent(String(value))
71+ .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
72+ } else {
73+ value = converter.write(value, key);
74+ }
75+
76+ key = encodeURIComponent(String(key));
77+ key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
78+ key = key.replace(/[\(\)]/g, escape);
79+
80+ var stringifiedAttributes = '';
81+
82+ for (var attributeName in attributes) {
83+ if (!attributes[attributeName]) {
84+ continue;
85+ }
86+ stringifiedAttributes += '; ' + attributeName;
87+ if (attributes[attributeName] === true) {
88+ continue;
89+ }
90+ stringifiedAttributes += '=' + attributes[attributeName];
91+ }
92+ return (document.cookie = key + '=' + value + stringifiedAttributes);
93+ }
94+
95+ // Read
96+
97+ if (!key) {
98+ result = {};
99+ }
100+
101+ // To prevent the for loop in the first place assign an empty array
102+ // in case there are no cookies at all. Also prevents odd result when
103+ // calling "get()"
104+ var cookies = document.cookie ? document.cookie.split('; ') : [];
105+ var rdecode = /(%[0-9A-Z]{2})+/g;
106+ var i = 0;
107+
108+ for (; i < cookies.length; i++) {
109+ var parts = cookies[i].split('=');
110+ var cookie = parts.slice(1).join('=');
111+
112+ if (!this.json && cookie.charAt(0) === '"') {
113+ cookie = cookie.slice(1, -1);
114+ }
115+
116+ try {
117+ var name = parts[0].replace(rdecode, decodeURIComponent);
118+ cookie = converter.read ?
119+ converter.read(cookie, name) : converter(cookie, name) ||
120+ cookie.replace(rdecode, decodeURIComponent);
121+
122+ if (this.json) {
123+ try {
124+ cookie = JSON.parse(cookie);
125+ } catch (e) {}
126+ }
127+
128+ if (key === name) {
129+ result = cookie;
130+ break;
131+ }
132+
133+ if (!key) {
134+ result[name] = cookie;
135+ }
136+ } catch (e) {}
137+ }
138+
139+ return result;
140+ }
141+
142+ api.set = api;
143+ api.get = function (key) {
144+ return api.call(api, key);
145+ };
146+ api.getJSON = function () {
147+ return api.apply({
148+ json: true
149+ }, [].slice.call(arguments));
150+ };
151+ api.defaults = {};
152+
153+ api.remove = function (key, attributes) {
154+ api(key, '', extend(attributes, {
155+ expires: -1
156+ }));
157+ };
158+
159+ api.withConverter = init;
160+
161+ return api;
162+ }
163+
164+ return init(function () {});
165+}));
javascript/kollok.js+73−5
@@ -1,11 +1,11 @@
1−function update() {
1+function generateStore() {
22 let t = $("#kollokTheor").prop("checked")
33 let o = $("#kollokOpr").prop("checked")
44 let k1 = $("#kollok1").prop("checked")
55 let k2 = $("#kollok2").prop("checked")
66 let k3 = $("#kollok3").prop("checked")
77 let k4 = $("#kollok4").prop("checked")
8−
8+
99 let out = []
1010
1111 if (t) {
@@ -37,10 +37,67 @@ function update() {
3737 out = out.concat(opr[3])
3838 }
3939 }
40+
41+ return out
42+}
4043
41− let tt = out[Math.floor(Math.random()*out.length)]
44+function update() {
45+
46+ let obj = Cookies.getJSON('kollok');
47+
48+ let s = generateStore()
49+
50+ let ii = [...s.keys()].filter(function(elt) {return obj.store.indexOf(elt) == -1})
51+
52+ if (ii.length == 0) {
53+ obj.store = []
54+ ii = [...s.keys()]
55+ }
56+
57+ let i = Math.floor(Math.random()*ii.length)
58+
59+ let tt = s.splice(ii[i], 1)[0]
60+ obj.store.push(ii[i])
4261
4362 $("#kollokText").text(tt)
63+
64+ Cookies.set('kollok', obj);
65+}
66+
67+function reevaluate() {
68+ let t = $("#kollokTheor").prop("checked")
69+ let o = $("#kollokOpr").prop("checked")
70+ let k1 = $("#kollok1").prop("checked")
71+ let k2 = $("#kollok2").prop("checked")
72+ let k3 = $("#kollok3").prop("checked")
73+ let k4 = $("#kollok4").prop("checked")
74+ let obj = Cookies.get('kollok');
75+ if ((obj == undefined) || !(t == obj.t && o == obj.o && k1 == obj.k1 && k2 == obj.k2 && k3 == obj.k3 && k4 == obj.k4)) {
76+ obj = {
77+ "t": t,
78+ "o": o,
79+ "k1": k1,
80+ "k2": k2,
81+ "k3": k3,
82+ "k4": k4,
83+ "store": []
84+ }
85+ }
86+ Cookies.set('kollok', obj);
87+}
88+
89+function read() {
90+ let obj = Cookies.getJSON('kollok');
91+
92+ if (obj != undefined) {
93+ $("#kollokTheor").prop("checked", obj.t);
94+ $("#kollokOpr").prop("checked", obj.o);
95+ $("#kollok1").prop("checked", obj.k1);
96+ $("#kollok2").prop("checked", obj.k2);
97+ $("#kollok3").prop("checked", obj.k3);
98+ $("#kollok4").prop("checked", obj.k4);
99+ }
100+
44101}
45102
46103var opr = []
@@ -51,7 +108,18 @@ window.onload = function() {
51108 $.getJSON("/linal/kollok_/theory.json", function(result) {
52109 opr = result["opr"]
53110 theor = result["theor"]
111+
112+ read()
113+
114+ reevaluate()
115+
116+ $("#kollokTheor").change(reevaluate)
117+ $("#kollokOpr").change(reevaluate)
118+ $("#kollok1").change(reevaluate)
119+ $("#kollok2").change(reevaluate)
120+ $("#kollok3").change(reevaluate)
121+ $("#kollok4").change(reevaluate)
122+ $("#fightMeKollok").click(update);
123+
54124 });
55−
56− $("#fightMeKollok").click(update);
57125}
linal/kollok_/kollok.html+1
@@ -6,6 +6,7 @@ tag: Linal
66custom_js:
77 - kollok
88 - jquery
9+ - js.cookie
910---
1011
1112 <h1 id="sosalovoCenter">kollok</h1>
linal/kollok_/theory.json+3−3
@@ -33,7 +33,7 @@
3333 ],
3434 [
3535 "Сформулируйте теорему о структуре общего решения однородной системы линейных алгебраических уравнений.",
36− "Сформулируйтетеоремуоструктуреобщегорешениянеоднороднойсистемылинейныхалгебраическихуравнений.",
36+ "Сформулируйте теорему о структуре общего решения неоднородной системы линейных алгебраических уравнений.",
3737 "Что такое алгебраическая и тригонометрическая форма записи комплексного числа?",
3838 "Дайте определения модуля и аргумента комплексного числа. Что такое главное значение аргумента комплексного числа?",
3939 "Сложение, умножение комплексных чисел. Что происходит с аргументами и модулями комплексных чисел при умножении?",
@@ -136,14 +136,14 @@
136136 "Сформулируйте определения ядра и образа линейного отображения.",
137137 "Сформулируйте утверждение о связи размерностей ядра и образа линейного отображения.",
138138 "Дайте определения собственного вектора и собственного значения линейного оператора.",
139− "Дайте определения характеристического уравнения и характеристического многочлена квадратной матри- цы.",
139+ "Дайте определения характеристического уравнения и характеристического многочлена квадратной матрицы.",
140140 "Сформулируйте утверждение о связи характеристического уравнения и спектра линейного оператора.",
141141 "Дайте определение собственного подпространства.",
142142 "Дайте определения алгебраической и геометрической кратности собственного значения. Какое неравенство их связывает?",
143143 "Дайте определение следа матрицы. Как меняется след матрицы оператора при замене базиса?",
144144 "Каким свойством обладают собственные векторы линейного оператора, отвечающие различным собственным значениям?",
145145 "Сформулируйте критерий диагональности матрицы оператора.",
146− "Сформулируйте критерий диагонализируемости матрицы оператора с использованием понятия геометриче- ской кратности.",
146+ "Сформулируйте критерий диагонализируемости матрицы оператора с использованием понятия геометрической кратности.",
147147 "Сформулируйте теорему Гамильтона-Кэли.",
148148 "Дайте определение жордановой клетки. Сформулируйте теорему о жордановой нормальной форме матрицы оператора."
149149 ],